Print

Print


https://bugs.launchpad.net/openlibrary/

Cloutman, David wrote:
> I hadn't thought that far ahead. I just didn't know if my issue was
> reasonable or not. Basically, I would like to have low overhead in terms
> of programmatic data manipulation and data serialization.
>
> Is there a bug tracker for this project?
>
> ---
> David Cloutman <[log in to unmask]>
> Electronic Services Librarian
> Marin County Free Library
>
> -----Original Message-----
> From: Code for Libraries [mailto:[log in to unmask]] On Behalf Of
> Karen Coyle
> Sent: Thursday, June 05, 2008 1:34 PM
> To: [log in to unmask]
> Subject: Re: [CODE4LIB] Open Library API
>
>
> I see no reason not to send this along to the developers. I don't know
> if "key" has some special significance or if something else could be
> easily substituted. The API is very new and hasn't been used much, so
> it's good to surface things of this nature. (Note: I consult on the bib
> data aspect of the OL, but also took a stab at expanding some of the
> text in the API document because the first version was terser than
> terse.)
>
> Do you have someone in mind to send it to? If not, Alexis can probably
> forward it to the right people.
>
> kc
>
> Cloutman, David wrote:
>
>> Inspired by a thread on this list yesterday, I started playing with
>>
> the
>
>> Open Library API. In order to query through the API, you must pass a
>> query as a JSON serialized object. That's good, and it could be great,
>> given that for Java and PHP (at least) there already exists the
>>
> ability
>
>> to serialize a native data type into and out of JSON. The problem that
>> I'm noticing is that at least the querying process, the naming
>> conventions used by the API complicate this.
>>
>> For instance, in order to do a pattern search of the "key" field, one
>> must pass the identifier of that field with a tilde (~) appended to
>>
> that
>
>> field, so that a query would read like this:
>>
>> {
>>     "key~": "\/about\/*"
>> }
>>
>> The problem is that for the two programming languages I use, Java and
>> PHP the variable name key~ and $key~ is illegal, and I believe that is
>> the case for most programming languages. Thus, in this PHP class (an
>>
> its
>
>> Java analog) would fail at compile / parse time:
>>
>> class OpenLibraryQuery {
>>         public $key~;
>>
>>         __construct ($keyValue) {
>>                 $this->key~ = $keyValue;
>>         }
>> }
>>
>> This is a problem, because ideally, I would like to be able to do
>> essentially this:
>>
>> $query = json_encode(new OpenLibraryQuery('\/about\/*');
>>
>> which, if the above class did parse, would automatically assign $query
>>
> a
>
>> valid JSON string, similar to what is above. Instead, I either have to
>> rename my variable, or use string manipulation to make the string
>>
> work.
>
>> Note that
>>
>> $query = json_encode(array('key~'=>'\/about\/*'));
>>
>> will not be parsed through the API, and results in an error message.
>>
>> This leaves me with three questions:
>>
>> 1. Is there an easy way around this, other than string manipulation,
>> that I am missing? Does the solution work for most or all programming
>> languages?
>>
>> 2. Does this strike readers as a significant enough issue to raise
>>
> with
>
>> the API developers?
>>
>> 3. Given that Open Library runs on Infogami and has other
>>
> dependencies,
>
>> does this strike readers as something that can be remedied?
>>
>>
>> - David
>>
>>
>> ---
>> David Cloutman <[log in to unmask]>
>> Electronic Services Librarian
>> Marin County Free Library
>>
>> Email Disclaimer:
>>
> http://www.co.marin.ca.us/nav/misc/EmailDisclaimer.cfm
>
>>
>>
>
>
> --
> -----------------------------------
> Karen Coyle / Digital Library Consultant
> [log in to unmask] http://www.kcoyle.net
> ph.: 510-540-7596   skype: kcoylenet
> fx.: 510-848-3913
> mo.: 510-435-8234
> ------------------------------------
>
>
>


--
-----------------------------------
Karen Coyle / Digital Library Consultant
[log in to unmask] http://www.kcoyle.net
ph.: 510-540-7596   skype: kcoylenet
fx.: 510-848-3913
mo.: 510-435-8234
------------------------------------