Blog
Skip to end of metadata
Go to start of metadata

Update 29 May 2012: While discussing with Jakob about my implementation of DAIA, we found some problems. Thus, I corrected the text and RDF below, aligning it with the usage in Jakob's and my presentation at the German Bibliothekartag (see slides). - Adrian

I wrote a post in Übertext: Blog about describing items, services and organisations in RDF using the DAIA ontology and other vocabularies. I'd like to provide a concrete example here of how to describe items and services and link them together using the DAIA. This example is based on data in the LOD service lobid.org (some of it being fed in to the triple store particularly for this example).

Assumed I am writing my PHD thesis somewhere in Bochum, it is 6 pm on a Saturday. In a bibliography of some article I find references to a book that seems quite relevant, "System und Performanz" by Christian Stetter. Thus,I want to borrow a copy of this book.

As I don't want to go more than 5 kilometres for obtaining the item, I do a geo-based search in lobid.org (see the underyling SPARQL query here) and get back one item. The item's RDF description looks like this (in turtle syntax):

 @prefix daia: <http://purl.org/ontology/daia/>
 @prefix frbr: <http://purl.org/vocab/frbr/core#>.
 @prefix foaf: <http://xmlns.com/foaf/0.1/> .

 <http://lobid.org/item/HT014576567%3AHWB25011>
   daia:label "HWB25011" ;
   frbr:exemplarOf <http://lobid.org/resource/HT014576567>
   frbr:owner <http://lobid.org/organisation/DE-294> ;       # also possible is "daia:heldBy"
   daia:storage <http://lobid.org/service/DE-294-servicetheke> ;
   a frbr:Item ;
   foaf:isPrimaryTopicOf <https://opac.ub.ruhr-uni-bochum.de/webOPACClient/start.do?Language=De&amp;Query=010%3D%22HT014576567%22> .

 <http://lobid.org/organisation/DE-294>
   a foaf:Organization ;
   foaf:name "Ruhr-Universität Bochum, Universitätsbibliothek" .

OK, I can see that this item is linked to the University Library of Bochum as holding institution. But there are several questions now:

  1. Is the item currently available or is it already lent by another user?
  2. Can I get access to the item right now? Where and how?

Current Availability

Question number one currently can be answered by clicking on the "Weitere Informationen" link that takes you to the library's OPAC description of the item. If the library would provide a DAIA server we could request the item's status and could get the information in RDF looking like this:

@prefix daia: <http://purl.org/ontology/daia/> .
@prefix daiaserv: <http://purl.org/ontology/daia/Service> .
@prefix frbr: <http://purl.org/vocab/frbr/core#>.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://lobid.org/item/HT014576567%3AHWB25011>
   a frbr:Item ;
   daia:unavailableFor [
       a daiaserv:Loan ;
       daia:expected "2012-06-19"^^xsd:date ;
       daia:queue "0"^^xsd:nonNegativeInteger
   ] .

Or - if available:

   daia:availableFor [
       a daiaserv:Loan
   ] .

Related Service and Opening Hours

To get an answer to question #2, I could follow the link to the library's website and look at the opening hours. That's the usual way to do it I think. But fortunately, in this case the item is linked to a specific service from where it is generally available (using the property daia:storage) and the service's opening hours are specified in RDF. The RDF looks like this:

 @prefix gr: <http://purl.org/goodrelations/v1#> .
 @prefix dcmitype: <http://purl.org/dc/dcmitype/> .
 @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
 @prefix daia: <http://purl.org/ontology/daia/> .
 @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .


 <http://lobid.org/service/DE-294-servicetheke>
   a dcmitype:Service ;
   rdfs:label "Servicetheke der Universitätsbibliothek der Ruhr-Universität Bochum"@de ;
   daia:providedBy <http://lobid.org/organisation/DE-294> ;
   gr:hasOpeningHoursSpecification [
   a gr:OpeningHoursSpecification ;
   gr:opens "08:00:00"^^xsd:time ;
   gr:closes "24:00:00"^^xsd:time ;
   gr:hasOpeningHoursDayOfWeek gr:Monday ;
   gr:hasOpeningHoursDayOfWeek gr:Tuesday ;
   gr:hasOpeningHoursDayOfWeek gr:Wednesday ;
   gr:hasOpeningHoursDayOfWeek gr:Thursday ;
   gr:hasOpeningHoursDayOfWeek gr:Friday
   ] ,
   [
   a gr:OpeningHoursSpecification ;
   gr:opens "11:00:00"^^xsd:time ;
   gr:closes "20:00:00"^^xsd:time ;
   gr:hasOpeningHoursDayOfWeek gr:Saturday
   ] ,
   [
   a gr:OpeningHoursSpecification ;
   gr:opens "11:00:00"^^xsd:time ;
   gr:closes "18:00:00"^^xsd:time ;
   gr:hasOpeningHoursDayOfWeek gr:Sunday
   ] .

I now can see immediately that I can obtain the item I need and have four hours left to do it.

Different items, different services

This is only an example. In the same way an exemplar of an encyclopedia volume that can't be borrowed like this one would be linked - using daia:storage - to a corresponding reading room where it is generally available. The item would then be indicated as available for <http://purl.org/ontology/daia/Service/Presentation>.

Problems and Perspectives

This is just a proof of concept. There are several things missing here that should be added to provide rich end-user services:

  • Obviously, you would have to improve the user interface to make this interesting for end-users.
  • It would be nice to show current availability (kind of a green or red light) besides the item information instead of the user having to follow the link to the OPAC. That's where DAIA implementation in library systems would come handy so that I could query the local database on the fly and get the information whether the item is available for lending or already checked out by another user and - if so - when the item will be available again.
  • It is also important to add user-relevant information about a service, like adress, geo coordinates, contact details (person, phone, email) etc. They should be able to easily find the service and ask somebody questions about it.
  • Thinking even further, users would have their own library account information publicly or privately represented in RDF and would be associated with a specific user groups with specific rights. As most services are only available for specific user groups, search results could be customized to user profiles.

Presentation

Have a look at the slides (in German) from Bibliothekartag 2012 where Jakob and me presented the benefits of publishing and integrating holding and availability information in RDF: