On Mar 28, 2014, at 15:12, Reto Stöckli wrote:

>> 
>> No, it definitely should not be WOK, because if anything, WOK is not in any 
>> way a database. It may be WOS.
> 
> The thing is, WOK is a valid databaseID after TR. We should not call this 
> "ALL", since then we need to translate the Database settings entered by the 
> user with if() statements to the matching databaseID. And yes, searching 
> other databases of WOK, such as "BIOSIS", will now also work. It will however 
> not be able to interpret all resulting fields (such as patent number etc.). 
> But we could implement more field retrievals if users want that feature.
> 

Sorry, I did not know that.

>> 
>> But I am a bit worried with backward compatibility if this is changed to 
>> databaseID etc. All this data from the old groups and servers is around on 
>> computers everywhere with the old settings. Perhaps then we need to take 
>> care of this and explicitly check for the known available DBs, and if the 
>> setting is not one of them use WOS instead.
> 
> That is a valid point. For backward compatibility I could check in the code 
> whether the database setting is named "SCI", "SSCI" or similar and change the 
> setting to "WOK" or "WOS" by default?
> 
> The other pragmatic option for now is (my current choice): ignore the group 
> setting database option in the search and simply search "WOS" by default. 
> This does not break anything and WORKS GREAT!
> 
> Reto

We could also allow both. For instance "WOS" would be the default. Power users 
who want to search only certain editions (I guess that's faster if you know 
what you're interested in) can use something like "WOS SCI" or "WOS SCI SSCI". 
Basically, the first in a space separated list is interpreted as the 
databaseID, the rest is interpreted as editions to restrict the search to. For 
backward compatibility we implicitly put WOS in front when the first item is 
not a valid databaseID, so the old setting "SCI will be interpreted as "WOS 
SCI". 

NSArray *IDs = [database componentsSeparatedByString:@" "];
NSString *dbID = [ids firstObject];
NSArray *editionIDs = nil;

if ([knownDataseIDs containsObject:dbID] == NO) {
        dbID = WOS_DB_ID;
        editionIDs = IDs;
} else if ([IDs count] > 1) { 
        editionIDs = [IDs subArrayWithRange:NSMakeRange(1, [IDs count] - 1)]; 
}

Christiaan

------------------------------------------------------------------------------
_______________________________________________
Bibdesk-develop mailing list
Bibdesk-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bibdesk-develop

Reply via email to