Hi,
I just wanted to announce that I finished a reference implementation of
the Document Availability Information API (DAIA) as CPAN module at
http://search.cpan.org/perldoc?DAIA. More information about DAIA can be
found in the specification at http://purl.org/NET/DAIA and at
http://www.gbv.de/wikis/cls/DAIA. The basic structure is:
[Document] -- 1-to-n --> [Item]
[Item ]-- 1-to-n --> [Service] (which is either [Available] or
[Unavailable])
We created DAIA for German library networks as interchange format and
API to encode information about the current availability of a specific
document (or any copy of it) in a given library. There are numerous APIs
for several tasks in library systems (SRU/SRW, Z39.50, OpenSearch,
OAI-PMH, Atom, unAPI etc.) but no standard way to just query whether a
copy of given - for instance book - is available in a library, in which
department, whether you can loan it or only use it in the library (or
even read it online) or if it is not available how long it will probably
take until it is available again. Obviously such an API would be helpful
not only to connect different library systems but to create mashups and
services ("Show me on a map, where a given book is currently hold and
available", "Send me a tweet if a given books in my library is available
again" etc.). DAIA was createt to fill this gap. In the context of ILS
Discovery Interface Task Force and its official recommendation
(http://diglib.org/architectures/ilsdi/) DAIA fits to the
GetAvailability method (section 6.3.1).
At the moment the format and API are pretty stable so the main work is
to create server and client components for several ILS software. Every
library has its own special rules and schemas - Jonathan Rochkind
already wrote about the problems to implement DAIA because of ILS
complexity:
http://bibwild.wordpress.com/2009/09/02/daia-and-ils-complexity/ . We
cannot erase this complexity by magic (unless we refactor and clean the
ILS) but at least we can try to map it to a common data model which DAIA
provides. With the DAIA Perl package you can concentrate on writing the
wrapper without dealing with DAIA parsing and serialization issues. Why
should everyone write its own routines to grab for instance the HTML
OPAC output to parse availability status? One mapping to DAIA should fit
most needs, so others can build upon. A public DAIA converter/validator
is available at http://ws.gbv.de/daia/validator
Extensions to DAIA can be discussion in the Code4Lib Wiki
http://wiki.code4lib.org/index.php/DAIA_extensions but I'd prefer no to
start with the extensions but with basic services. If you have more cool
ideas for client applications, just let me know!
Cheers,
Jakob
P.S: Yes, there are some other awkward attemts to encode availability
(Z39.50 Holdings, ISO 20775 Holdings, NCIP, SLNP...) but I found all of
them underdefined and not publically documented or openly usable based
on Web standards.
--
Jakob Voß <[log in to unmask]>, skype: nichtich
Verbundzentrale des GBV (VZG) / Common Library Network
Platz der Goettinger Sieben 1, 37073 Göttingen, Germany
+49 (0)551 39-10242, http://www.gbv.de
|