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!


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ß <jakob.v...@gbv.de>, 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

Reply via email to