<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jakoblog &#187; DAIA</title>
	<atom:link href="http://jakoblog.de/tag/daia/feed/" rel="self" type="application/rss+xml" />
	<link>http://jakoblog.de</link>
	<description>Das Weblog von Jakob Voß</description>
	<lastBuildDate>Sun, 20 May 2012 13:49:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>DAIA-Server erstellen mittels Screenscraping</title>
		<link>http://jakoblog.de/2012/02/22/daia-server-erstellen-mittels-screenscrapin/</link>
		<comments>http://jakoblog.de/2012/02/22/daia-server-erstellen-mittels-screenscrapin/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 12:59:17 +0000</pubDate>
		<dc:creator>jakob</dc:creator>
				<category><![CDATA[de]]></category>
		<category><![CDATA[DAIA]]></category>

		<guid isPermaLink="false">http://jakoblog.de/?p=1233</guid>
		<description><![CDATA[Um die aktuelle Verfügbarkeit von Büchern und anderen Medien in GBV-Bibliotheken über eine standardisierte API abrufen zu können, entwickle ich derzeit einen zentralen DAIA-Server under daia.gbv.de. Da die verschiedenen Bibliotheken ihre lokalen Bibliothekssysteme allerdings sehr unterschiedlich konfiguriert haben, dauert die Bereitstellung von DAIA für alle Bibliotheken noch eine Weile. Eine alternative Lösung, die auch für [...]]]></description>
			<content:encoded><![CDATA[<p>Um die aktuelle Verfügbarkeit von Büchern und anderen Medien in GBV-Bibliotheken über eine standardisierte API abrufen zu können, entwickle ich derzeit einen zentralen <a href="http://purl.org/NET/DAIA">DAIA-Server</a> under <a href="http://daia.gbv.de/">daia.gbv.de</a>. Da die verschiedenen Bibliotheken ihre lokalen Bibliothekssysteme allerdings sehr unterschiedlich konfiguriert haben, dauert die Bereitstellung von DAIA für alle Bibliotheken noch eine Weile. </p>
<p>Eine alternative Lösung, die auch für Bibliotheken funktioniert, die nicht im GBV sind und/oder PICA-LBS einsetzen, ist die Erstellung eines eigene DAIA-Servers. Als Grundgerüst habe ich dafür das Perl-Modul <a href="http://search.cpan.org/dist/Plack-App-DAIA/">Plack::App::DAIA</a> entwickelt und stelle es als Open Source zur Verfügung. Das Modul enthält zudem Routinen, um eigene DAIA-Server ausbgiebig auf korrekte Umsetzung zu testen &#8211; schließlich sind technische Standards, die nicht (automatisch) getestet werden können, eher unverbindliche Absichtserklärungen als wirkliche Standards. Das Perl-Modul enthält <a href="http://cpansearch.perl.org/src/VOJ/Plack-App-DAIA-0.44/examples/daia-ubbielefeld.pl">ein Beispielskript</a>, das mittels Sceeenscraping (dank des Moduls <a href="http://search.cpan.org/dist/pQuery/">pQuery</a>), dem Katalog der <a href="http://www.ub.uni-bielefeld.de/">Universitätsbibliothek Bielefeld</a> eine DAIA-Schnittstelle aufsetzt.</p>
]]></content:encoded>
			<wfw:commentRss>http://jakoblog.de/2012/02/22/daia-server-erstellen-mittels-screenscrapin/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Request for comments: final specification of DAIA</title>
		<link>http://jakoblog.de/2012/01/06/request-for-comments-final-specification-of-daia/</link>
		<comments>http://jakoblog.de/2012/01/06/request-for-comments-final-specification-of-daia/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 10:13:49 +0000</pubDate>
		<dc:creator>jakob</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[code4lib]]></category>
		<category><![CDATA[DAIA]]></category>

		<guid isPermaLink="false">http://jakoblog.de/?p=1204</guid>
		<description><![CDATA[When I started to create an API for availability lookup of document in libraries in 2008, I was suprised that such a basic service was so poorly defined. The best I could find was the just-published recommendation of the Digital Library Federation (DLF-ILS). Even there availability status was basically a plain text message (section 6.3.1 [...]]]></description>
			<content:encoded><![CDATA[<p>When I started to create an API for availability lookup of document in libraries in 2008, I was suprised that such a basic service was so poorly defined. The best I could find was the just-published <a href="http://old.diglib.org/architectures/ilsdi/">recommendation of the Digital Library Federation</a> (DLF-ILS). Even there availability status was basically a plain text message (section 6.3.1 and appendix 4 and 5). Other parts of the DLF-ILS GetAvailability response were more helpful, so they are all part of the <a href="http://purl.org/NET/DAIA">Document Availability Information API</a> (DAIA). Here is a simple mapping from DLF-ILS to DAIA:</p>
<ul>
<li>bibliographicIdentifer (string) → document (URI)</li>
<li>itemIdentifier (string) → item (URI)</li>
<li>dateAvailable (dateTime) → expected (xs:dateTime or  xs:date or &#8220;unknown&#8221;) or delay (xs:duration or &#8220;unknown&#8221;)</li>
<li>location (string) → storage (URI and/or string, plus optional URL)</li>
<li>call number (string) → label (string)</li>
<li>holdQueueLength (int) → queue (xs:nonNegativeInteger)</li>
<li>status (string) and circulating (boolean) → available/unavailable (with service type and additional information)</li>
</ul>
<p>So you could say that DAIA implements the abstract GetAvailability function from DLF-ILS. I like abstract, language independent specifications, but they must be precise and testable (see Meek&#8217;s forgotten paper <a href="http://dx.doi.org/10.1109/SESS.1995.525971">The seven golden rules for producing language-independent standards</a>). DAIA is more than an implementation: it provides both, an abstract standard and bindings to several data languages (XML, JSON, and RDF). The conceptual DAIA data model defines some basic concepts and relationships (document, items, organisations, locations, services, availabilities, limitations&#8230;) <em>independent</em> from whether they are expressed in XML elements,  attributes, RDF properties, classes, or any other <a href="http://aboutdata.org/">data structuring method</a>. The only reference to specific formats is the requirement that <em>all unique identifiers must be URIs</em>. Right now there is an <a href="http://purl.org/NET/DAIA/schema.xsd">XML Schema</a> if you want to express DAIA in XML and <a href="http://purl.org/ontology/daia/">an OWL ontology</a> for RDF.</p>
<p>In its fourth year of development (see my previous posts <a href="http://jakoblog.de/2009/10/23/how-to-encode-the-availability-of-documents/">from 2009</a>) DAIA seems to have enough momentum to finally get accepted in practice. We use it in GBV library union (public server at <a href="http://daia.gbv.de/">http://daia.gbv.de/</a>), there are independent implementations such as in <a href="http://doctor-doc.com">Doctor-Doc</a>, there is client-support in VuFind and I heard  rumors that DAIA capabilities will be build into EBSCO and Summon Discovery Services. Native support in Integrated Library Systems, however, is still lacking &#8211; I already have given up hope and prefer a clean DAIA wrapper over a broken DAIA-implementation anyway. If you are interested in creating your own DAIA server/wrapper or client, have a look at my reference implementation <a href="http://search.cpan.org/perldoc?DAIA">DAIA</a> and <a href="http://search.cpan.org/perldoc?Plack::App::DAIA">Plack::App::DAIA</a> at CPAN and Oliver Goldschmidt&#8217;s PHP implementation in <a href="https://github.com/gbv/daia">our common github repository</a>. A conceptual overview as tree (DAIA/JSON, DAIA/XML) and as graph (DAIA/RDF) <a href="http://www.gbv.de/wikis/cls/Document_Availability_Information_API_(DAIA)#Overview">can be found here</a>.</p>
<p>Still there are some details to be defined and I&#8217;d like to solve these issues to come to a version DAIA 1.0. These are</p>
<ul>
<li>How to deal with <strong>partial publications</strong> (you requested an article but only get the full book or you requested a series but only get a single volume).</li>
<li>How to deal with <strong>digital publications</strong> (especially its possible service types: is &#8220;download&#8221; a service distinct to &#8220;loan&#8221; or is &#8220;presentation&#8221; similar to online access restricted to the library&#8217;s intranet?).</li>
<li>Final agreement on <strong>service types</strong> (now there are <strong>presentation</strong>: item can be used <em>in</em> the institution, <strong>loan</strong>: item can be used outside of the institution  for a limited time, <strong>interloan</strong>: item can be send to another institution, <strong>openaccess</strong>: item can be access unrestricted, just get a free copy). Some <a href="http://wiki.code4lib.org/index.php/DAIA_extensions">extensions</a> have been proposed.</li>
<li>A set of common <strong>limitation types</strong> (for instance IP-based access restriction, permission-based access etc.).</li>
</ul>
<p>I&#8217;d be happy to get some more feedback on these issues, especially concrete use cases. We are already discussing on the <a href="http://sourceforge.net/mailarchive/forum.php?forum_name=daia-devel">daia-devel mailing list</a> but you can also comment in your own blog, at <a href="http://lists.w3.org/Archives/Public/public-lld/">public-lld</a>, <a href="http://dewey.library.nd.edu/mailing-lists/code4lib/">code4lib</a>, <a href="https://groups.google.com/forum/#!forum/ils-di">ils-di</a> etc.).</p>
]]></content:encoded>
			<wfw:commentRss>http://jakoblog.de/2012/01/06/request-for-comments-final-specification-of-daia/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Can SOBR help publishing library holdings?</title>
		<link>http://jakoblog.de/2011/12/02/can-sobr-help-publishing-library-holdings/</link>
		<comments>http://jakoblog.de/2011/12/02/can-sobr-help-publishing-library-holdings/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 23:08:32 +0000</pubDate>
		<dc:creator>jakob</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[DAIA]]></category>
		<category><![CDATA[FRBR]]></category>
		<category><![CDATA[lod]]></category>
		<category><![CDATA[sobr]]></category>

		<guid isPermaLink="false">http://jakoblog.de/?p=1176</guid>
		<description><![CDATA[I just participated in the German conference Semantic Web in Bibliotheken which took place in Hamburg this week. This year there were two slots for lightning talks, but unfortunately participants did not catch on, so we only had four of them. Lightning talks are a good chance to present something unfinished that you need input [...]]]></description>
			<content:encoded><![CDATA[<p>I just participated in the German conference <a href="http://swib.org/">Semantic Web in Bibliotheken</a> which took place in Hamburg this week. This year there were two slots for lightning talks, but unfortunately participants did not catch on, so we only had four of them. Lightning talks are a good chance to present something unfinished that you need input for, <a href="http://www.slideshare.net/nichtich/voss-111129-sobr">so I presented</a> the Simplified Ontology for Bibliographic Resources (SOBR) as &#8220;FRBR light&#8221;. You can find the current  specification of SOBR <a href="https://gist.github.com/1331983">at github</a>, which means the specification is still evolving and I&#8217;d like to get more feedback.</p>
<p>SOBR was caused by a discussion on the <a href="http://lists.w3.org/Archives/Public/public-lld/">Library Linked Data mailing list</a> about the (disputed) disjointedness of FRBR classes. SOBR has a history in the <a href="http://purl.org/NET/DAIA">Document Availability Information API</a> (DAIA), which SOBR might be merged into. The use case of both is publishing information about holdings from library catalogs as Linked Open Data. The information most requested is probably connected to holdings: library users only ask &#8220;where is it?&#8221; and &#8220;how can I get it?&#8221;. In this questions, the little word &#8220;it&#8221; refers to a specific publication. In the answers, however, &#8220;it&#8221; usually refers to some holding or copy of this publication. Sometimes the holding contains more than the publication (for instance if you ask for an article in a book) and sometimes you get multiple holdings (for instance if you ask for a a large work that is split in multiple volumes). Sometimes there are multiple holdings with different content to choose from, because there are different editions, forms, translations etc. of the requested publication.</p>
<p>A long time ago, some librarians thought about similar questions and answers and came up with the Functional Requirements for Bibliographic Records (FRBR). I tried hard to accept FRBR (I even draw this ugly diagrams that people find when they look up <a href="http://en.wikipedia.org/wiki/Functional_Requirements_for_Bibliographic_Records">FRBR in Wikipedia</a>). But FRBR does not help me to publish existing library catalogs as Linked Open Data. In <a href="http://uri.gbv.de/database/">our catalog databases</a> we have <b>records that refer to editions</b>, connected with <b>records that refer to holdings</b> (I&#8217;ll ignore the little exceptions and nasty special cases such as multiple holdings described by one look-like-a-holding-record). In addition there are some records that refer to series, works, and other types of abstract <b>documents without direct holdings</b>, which are connected to records that refer to editions.</p>
<p>Maybe we can simplify this to two entities: general documents (<a href="http://purl.org/ontology/bibo/Document">bibo:Document</a>) and items (with <a href="http://purl.org/vocab/frbr/core#Item">frbr:Item</a>) as special kind of documents. The current design of SOBR also contains a class for editions, but I am not sure whether this class is also needed. At least we need <b>three properties</b> to relate documents to items (<a href="http://purl.org/ontology/daia/exemplar">daia:exemplar</a>), to relate documents to editions (daia:edition?) and to relate documents to its parts (dcterms:hasPart). To avoid the need of blank nodes, I&#8217;d also define properties that relate documents to partial items (<a href="http://purl.org/ontology/daia/exemplar">daia:extract</a> = dcterms:hasPart + daia:exemplar) and to relate documents to partial editions (daia:editionPart?)</p>
<p>Feedback on SOBR is welcome, especially if you provide examples with existing URIs (or at least local identifiers to already existing data) instead of theoretical FRBR-like-made-up examples. The best way to find a good ontology for publishing library holdings is to actually publish data that describes library holdings! The following image is based on an example that connects a work <a href="http://www.librarything.com/work/70394">from LibraryThing</a> and <a href="http://dbpedia.org/resource/Living_My_Life">from DBPedia</a> with a partial edition <a href="http://www.worldcat.org/oclc/656754414">from Worldcat</a>, a full edition <a href="http://d-nb.info/1001703464">from German National Library</a>, and a holding <a href="http://uri.gbv.de/document/opac-de-18:epn:1220640794">from Hamburg University</a>:</p>
<pre>@prefix bibo: &lt;http://purl.org/ontology/bibo/&gt; .
@prefix daia: &lt;http://purl.org/ontology/daia/&gt; .
@prefix frbr: &lt;http://purl.org/vocab/frbr/core#&gt; .
@prefix owl: &lt;http://www.w3.org/2002/07/owl#&gt; .
@prefix dct: &lt;http://purl.org/dc/terms/&gt; .
@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .

&lt;http://www.librarything.com/work/70394&gt; a bibo:Document ;
  owl:sameAs &lt;http://dbpedia.org/resource/Living_My_Life&gt; ;
  daia:edition &lt;http://d-nb.info/1001703464&gt; , [
    a bibo:Collection # , daia:Document
    ; dct:hasPart &lt;http://www.worldcat.org/oclc/656754414&gt;
  ]
    ;
  # daia:exemplar &lt;http://d-nb.info/1001703464&gt; ; ?
  daia:editionPart &lt;http://www.worldcat.org/oclc/656754414&gt; .

&lt;http://d-nb.info/1001703464&gt; a frbr:Item , bibo:Document ;
   daia:exemplar &lt;http://uri.gbv.de/document/opac-de-18:epn:1220640794&gt; .
</pre>
<p><center><br />
<a href="http://jakoblog.de/wp-content/uploads/2011/12/sobr-example.png"><img src="http://jakoblog.de/wp-content/uploads/2011/12/sobr-example-1024x258.png" alt="" title="sobr-example" width="512" height="129" class="aligncenter size-large wp-image-1181" /></a><br />
<small>image created with <a href="http://search.cpan.org/perldoc?rdfdot">rdfdot</a></small><br />
</center></p>
]]></content:encoded>
			<wfw:commentRss>http://jakoblog.de/2011/12/02/can-sobr-help-publishing-library-holdings/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>An impression of the OPDS/OpenPub catalog data model</title>
		<link>http://jakoblog.de/2010/05/27/an-impression-of-the-opdsopenpub-catalog-data-model/</link>
		<comments>http://jakoblog.de/2010/05/27/an-impression-of-the-opdsopenpub-catalog-data-model/#comments</comments>
		<pubDate>Wed, 26 May 2010 22:05:58 +0000</pubDate>
		<dc:creator>jakob</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[ATOM]]></category>
		<category><![CDATA[DAIA]]></category>
		<category><![CDATA[Data Modeling]]></category>
		<category><![CDATA[OPDS]]></category>
		<category><![CDATA[openpub]]></category>

		<guid isPermaLink="false">http://jakoblog.de/?p=830</guid>
		<description><![CDATA[A few days ago Ed Summers pointed me to the specification of the Open Publication Distribution System (OPDS) which was just released as version 0.9. OpenPub (an alias for OPDS) is part of the Internet Archive&#8217;s BookServer project to build an architecture for vending and lending digital books over the Internet. I wonder why I [...]]]></description>
			<content:encoded><![CDATA[<p>A few days ago Ed Summers pointed me to the specification of the <a href="http://opds-spec.org/">Open Publication Distribution System (OPDS)</a> which was just released as version 0.9. <a href="http://code.google.com/p/openpub/">OpenPub</a> (an alias for OPDS) is part of the Internet Archive&#8217;s <a href="http://www.archive.org/bookserver">BookServer</a> project to build an architecture for  vending and lending digital books over the Internet. I wonder why I have not heard more of BookServer and OpenPub at recent library conferences, discussion lists, and journals but maybe current libraries prefer to stay in the physical world to become museums and archives. Anyway, I had a look at OpenPub, so here are my public notes of the first impressions &#8211; and my answer to the <a href="http://groups.google.com/group/openpub/browse_thread/thread/e51af9510f150d55">call for comments</a>. <a href="#comments">Please comment</a> if you have corrections or additions (or <a href="http://code.google.com/p/openpub/issues/entry">create an issue</a> in the tracker)!</p>
<p>OPDS is a syndication format for electronic publications based on Atom (<a href="http://tools.ietf.org/html/rfc4287">RFC 4287</a>). Therefore it is fully based on HTTP and the Web (this place that current libraries are still about to discover). Conceptually OPDS is somehow related to <a href="http://www.openarchives.org/ore/">OAI(-ORE)</a> and <a href="http://daia.sourceforge.net/">DAIA</a> but it is purely based on XML which makes it difficult to compare with RDF-based approaches. I tried to reengineer the conceptual data model to better seperate model and serialization like I did with DAIA. The goal of OPDS catalogs is &#8220;to make Publications both discoverable and straightforward to acquire on a range of devices and platforms&#8221;.</p>
<p>OPDS uses a mix of <a href="http://dublincore.org/documents/dcmi-terms/">DCMI Metadata Terms</a> (DC) elements and ATOM element enriched with some new OPDS elements. Furthermore it interprets some DC and ATOM elements in a special way (this is common in many data formats although frequently forgotten).</p>
<p><b>Core concepts</b></p>
<p>The core concepts of OPDS are <b>Catalogs</b> which are provided as ATOM Feeds (like <a href="http://www.jangle.org/">Jangle</a> which should fit nicely for library resources), Catalog <b>Entries</b> that each refer to one publication and <b>Aquisition Links</b>. There are two disjunct types of Catalogs: <i>Navigation Feeds</i> provide a browseable hierarchy and <i>Acquisition Feeds</i> contain a list of Publication Entries. I will skip the <a href="http://opds-spec.org/specs/opds-catalog-0-9-20100525/#Catalog_Relations">details on Navigation Feeds</a> and search facities (possible via <a href="http://www.opensearch.org/">OpenSearch</a>) but focus on Elements and Aquisition.</p>
<p><b>Catalog Elements</b></p>
<p>The specification distinguishes between Partial and Complete Catalog Entries but this is not relevant on the conceptual level. There we have two concepts that are not clearly seperated in the XML serialization: the <b>Catalog Record</b> and the <b>Publication</b> which a Catalog Record describes are mixed in one Catalog Element. The properties of a Catalog Record are:</p>
<dl>
<dt><tt>atom:id</tt></dt>
<dd>identifier of the catalog entry (MANDATORY)</dd>
<dt><tt>atom:updated</tt></dt>
<dd>modification timestamp of the catalog entry (MANDATORY)</dd>
<dt><tt>atom:published</tt></dt>
<dd>timestamp of when the catalog entry was first accessible</dd>
</dl>
<p>The properties of a Publication are:</p>
<dl>
<dt><tt>dc:identifier</tt></dt>
<dd>identifier of the publication</dd>
<dt><tt>atom:title</tt></dt>
<dd>title of the publication (MANDATORY)</dd>
<dt><tt>atom:author</tt></dt>
<dd>creator of the publication (possibly with sub-properties)</dd>
<dt><tt>atom:contributors</tt></dt>
<dd>additional contributors to the publication (dito)</dd>
<dt><tt>atom:category</tt></dt>
<dd>publication&#8217;s category, keywords, classification codes etc. (with sub-properties scheme, term, and label)</dd>
<dt><tt>dc:issued</tt></dt>
<dd>first publication date of the publication</dd>
<dt><tt>atom:rights</tt></dt>
<dd>rights held in and over the publications</dd>
<dt><tt>atom:summary</tt> and <tt>atom:content</tt></dt>
<dd>description of the publication (as plain text or some other format for atom:content)</dd>
<dt><tt>dc:language</tt></dt>
<dd>language(s) of the publication (<a href="http://code.google.com/p/openpub/issues/detail?id=35">any format?</a>)</dd>
<dt><tt>dc:extend</tt></dt>
<dd>size or duration of the publication (<a href="http://code.google.com/p/openpub/issues/detail?id=34">?</a>)</dd>
<dt><tt>dc:publisher</tt></dt>
<dd>Publisher of the publication</dd>
</dl>
<p>Moreover each publication may link to related resources. Unfortunately you cannot just use arbitrary RDF properties but the following relations (from <a href="http://tools.ietf.org/html/draft-nottingham-http-link-header-10">this draft</a>):</p>
<dl>
<dt><tt>alternate</tt></dt>
<dd>alternative description of the publication</dd>
<dt><tt>copyright</tt></dt>
<dd>copyright statement that applies to the catalog entry</dd>
<dt><tt>latest-version</tt></dt>
<dd>more recent version of the publication</dd>
<dt><tt>license</tt></dt>
<dd>license associated with the catalog entry</dd>
<dt><tt>replies</tt></dt>
<dd>comment on or discussion of the catalog entry</dd>
</dl>
<p>I consider this relation types one of the weakest points of OPDS. The domain and range of the links are not clear and there are much better vocabularies for links between publications, for instance in <a href="http://vocab.org/frbr/core.html">FRBR</a>, the <a href="http://bibliontology.com/">Bibliographic Ontology</a>, the <a href="http://www.crossref.org/CrossTech/2009/03/citation_typing_ontology.html">citation type ontology</a>, <a href="http://www.mementoweb.org/">Memento</a>, and <a href="http://sioc-project.org/">SIOC</a> (which also overlaps with ODPS at other places).</p>
<p>In addition each publication must contain at least one <tt>atom:link</tt> element which is used to encode an <i>Aquisition Link</i>.</p>
<p><b>Aquisition Links</b></p>
<p>OPDS defines two Aquisition types: &#8220;Direct Acquisition&#8221; and &#8220;Indirect Acquisition&#8221;. Direct Aquisition links must directly lead to the publication (in some format) without any login, meta or catalog page in front of it (!) while Indirect Acquisition links lead to such a portal pages that then links to the publications. There are five Aquisition types (called &#8220;Acquisition Relations&#8221;) similar to <a href="http://purl.org/NET/DAIA#2.4._Available_element">DAIA Service types</a>:</p>
<dl>
<dt><tt>odps:acquisition</tt></dt>
<dd>a complete representation of the<br />
publication that may be retrieved without payment</dd>
<dt><tt>odps:acquisition/borrow</tt></dt>
<dd>a complete representation of the publication<br />
that may be retrieved as part of a lending transaction</dd>
<dt><tt>odps:acquisition/buy</tt></dt>
<dd>a complete representation of the publication<br />
that may be retrieved as part of a purchase</dd>
<dt><tt>odps:acquisition/sample</tt></dt>
<dd>a representation of a subset of the publication</dd>
<dt><tt>odps:acquisition/subscribe</tt></dt>
<dd>a complete representation of the publication that may be retrieved as part of a subscription</dd>
</dl>
<p><tt>odps:acquisition</tt> can be mapped to <tt>daia:Service/Openaccess</tt> and <tt>odps:acquisition/borrow</tt> can be mapped to <tt>daia:Service/Loan</tt> (and vice versa). <tt>odps:acquisition/buy</tt> is not defined in DAIA but could easily be added while <tt>daia:Service/Presentation</tt> and <tt>daia:Service/Interloan</tt> are not defined in ODPS. At least the first should be added to ODPS to indicate publications that require you to become a member and log in or to physically walk into an institution to get a publication (strictly limiting OPDS to pure-digital publications accessible via HTTP is stupid if you allow indirect aquisition).</p>
<p>The remaining two acquisition types somehow do not fit between the others: <tt>odps:acquisition/sample</tt> and <tt>odps:acquisition/subscribe</tt> should be orthogonal to the other relations. For instance you could subscribe to a paid or to a free subscription and you could buy a subset of a publication.</p>
<p>In addition Aquisition links may or must contain some other properties such as <tt>odps:price</tt> (containing of a currency code from ISO4217 and a value).</p>
<p><b>Cover and artwork links</b></p>
<p>Beside Aquisition links the relations <tt>opds:cover</tt> and <tt>opds:thumbnail</tt> can be used to relate a Publication with it&#8217;s cover or some other visual representation. The thumbnail should not exceed 120 pixles in height or width and images must be either GIF, JPEG, or PNG. Thumbnails may also be directly embedded via the &#8220;data&#8221; URL schema from RFC2397.</p>
<p><b>Final thoughts</b></p>
<p>OPDS looks very promising and it is already used for benefit in practise. There are some minor issues that can easily be fixed. The random selection of relation types is surely I flaw that can be repaired by allowing arbitrary RDF properties (come on XML fanboys, you should notice that RDF is good at least at link types!) and the list of acquisition types should be cleaned and enhanced at least to support &#8220;presentation&#8221; without lending like DAIA does. A typical use case for this are National Licenses that require you to register to access the publications. For more details I would like to compare OPDS in more depth with models like DAIA, FRBR, SIOC, OAI-ORE, Europeana etc. &#8211; but not now.</p>
]]></content:encoded>
			<wfw:commentRss>http://jakoblog.de/2010/05/27/an-impression-of-the-opdsopenpub-catalog-data-model/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>First complete draft of DAIA Ontology</title>
		<link>http://jakoblog.de/2010/01/07/first-complete-draft-of-daia-ontology/</link>
		<comments>http://jakoblog.de/2010/01/07/first-complete-draft-of-daia-ontology/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 17:06:21 +0000</pubDate>
		<dc:creator>jakob</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[DAIA]]></category>
		<category><![CDATA[Data Modeling]]></category>

		<guid isPermaLink="false">http://jakoblog.de/?p=782</guid>
		<description><![CDATA[I just finished the first complete draft of an OWL ontology of the DAIA data model. Unless the final URI prefix is sure, the ontology is available in GBV Wiki in Notation3 syntax, but you can also get RDF/XML. There is also a browsable HTML view created with OWLDoc (I only wonder why it does [...]]]></description>
			<content:encoded><![CDATA[<p>I just finished the first complete draft of an <a href="http://ws.gbv.de/daia/daia.owl.n3">OWL ontology of the DAIA data model</a>. Unless the final URI prefix is sure, the ontology <a href="http://www.gbv.de/wikis/cls/DAIA_Format/RDF">is available in GBV Wiki</a> in Notation3 syntax, but you can <a href="http://convert.test.talis.com/?data-uri=http%3A%2F%2Fws.gbv.de%2Fdaia%2Fdaia.owl.n3&#038;input=&#038;output=rdf&#038;callback=">also get RDF/XML</a>. There is also a <a href="http://ws.gbv.de/daia/doc/">browsable HTML view</a> created with OWLDoc (I only wonder why it does not include URI prefixes like in the same <a href="http://bibotools.googlecode.com/svn/bibo-ontology/trunk/doc/index.html">view of the Bibliographic Ontology</a>).</p>
<p>It turned out that mapping the <a href="http://purl.org/NET/DAIA">XML format DAIA/XML</a> to RDF is not trivial &#8211; although I kept in mind doing so when I designed DAIA. XML is mostly based on a closed world tree data model but RDF is based on an open world graph model. Last month Mike Bergman wrote a good article about <a href="http://www.mkbergman.com/852/the-open-world-assumption-elephant-in-the-room/">the clash of Open World Assumption and Closed World Assumption</a>. I think as long as you only view data in form of tables, lists, and trees, you will not grasp the concept of the Semantic Web. I don&#8217;t know whether I have fully grasped the concept of document availability with DAIA and the ontology surely needs some further review, but it&#8217;s something to start with &#8211; just have a look!</p>
]]></content:encoded>
			<wfw:commentRss>http://jakoblog.de/2010/01/07/first-complete-draft-of-daia-ontology/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to encode the availability of documents</title>
		<link>http://jakoblog.de/2009/10/23/how-to-encode-the-availability-of-documents/</link>
		<comments>http://jakoblog.de/2009/10/23/how-to-encode-the-availability-of-documents/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 10:50:53 +0000</pubDate>
		<dc:creator>jakob</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[DAIA]]></category>
		<category><![CDATA[Library]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://jakoblog.de/?p=772</guid>
		<description><![CDATA[Since almost a year I work on a simple encoding format and API to just get the current (!) availability status of documents in libraries. Together with Reh Uwe (hebis network) and Anne Christensen (beluga project) we created the Document Availability Information API (DAIA) which is defined as data model with encoding in XML and [...]]]></description>
			<content:encoded><![CDATA[<p>Since almost a year I work on a simple encoding format and API to just get the current (!) availability status of documents in libraries. Together with Reh Uwe (<a href="http://www.hebis.de/">hebis network</a>) and <a href="http://twitter.com/xenzen">Anne Christensen</a> (<a href="http://beluga-blog.sub.uni-hamburg.de/">beluga project</a>) we created the <a href="http://www.gbv.de/wikis/cls/DAIA">Document Availability Information API</a> (DAIA) which is <a href="http://purl.org/NET/DAIA">defined as data model</a> with encoding in XML and JSON (whichever you prefer).</p>
<p>This week I finished and published a <a href="http://search.cpan.org/perldoc?DAIA">reference implementation of the DAIA protocol</a> as open source Perl-module at CPAN. The implementation includes a simple <a href="http://search.cpan.org/perldoc?daiaformat.pl">DAIA validator and converter</a>. A <a href="http://ws.gbv.de/daia/validator/">public installation</a> of this validator is also available. The next tasks include implementing server and client components <a href="http://www.librarytechnology.org/ltg-displaytext.pl?RC=13803">for several ILS software</a>. Every library has its own <a href="http://iandavis.com/blog/2009/09/being-structured-and-having-semantics-is-not-enough">special rules and schemas</a> &#8211; Jonathan Rochkind already wrote about the problems to implement DAIA because of <a href="http://bibwild.wordpress.com/2009/09/02/daia-and-ils-complexity/">ILS complexity</a>. 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 &#8211; which DAIA provides.</p>
<p><a href="http://www.gbv.de/wikis/cls/Document_Availability_Information_API_(DAIA)#Conceptual_Data_Model"><img src="http://jakoblog.de/wp-content/uploads/2009/10/Daiamodel-extract.png" alt="Core components of the DAIA data model" title="Core components of the DAIA data model" width="285" height="193" class="alignnone size-full wp-image-773" /></a></p>
<p>With <a href="http://search.cpan.org/perldoc?DAIA">the DAIA Perl package</a> you can concentrate on writing wrappers from your library systems to DAIA and easily consume and evaluate DAIA-encoded information. Why should everyone write its own routines to grab for instance the HTML OPAC output and parse availability status? One mapping to DAIA should fit most needs, so others can build upon. DAIA can not only be helpful to connect different library systems, but also to create mashups and services like &#8220;Show me on a map, where a given book is currently hold and available&#8221; or &#8220;Send me a tweet if a given books in my library is available again&#8221; &#8211; If you have more cool ideas for client applications, just let me know!</p>
<p>In the context of ILS Discovery Interface Task Force and <a href="http://diglib.org/architectures/ilsdi/">their official recommendation</a> DAIA implements the GetAvailability method (section 6.3.1). There are <a href="http://jakoblog.de/2007/11/30/relevant-apis-for-digital-libraries/">numerous APIs</a> for several tasks in library systems (SRU/SRW, Z39.50, OpenSearch, OAI-PMH, Atom, unAPI etc.) but there was no open, usable standard way just to query whether a copy of given publication &#8211; for instance book &#8211; is available in a library, in which department, whether you can loan it or only use it in the library, whether you can directly get it online, or how long it will probably take until it is available again (yes, I looked at alternatives like Z39.50, ISO 20775, NCIP, SLNP etc. but they were hardly defined, documented, implemented and usable freely on the Web). I hope that DAIA is easy enough so non-librarians can make use of it if libraries provide an API to their system with DAIA. Extensions to DAIA can be discussed for instance <a href="http://wiki.code4lib.org/index.php/DAIA_extensions">in Code4Lib Wiki</a> but I&#8217;d prefer to start with this basic, predefined services:</p>
<ul>
<li><b>presentation:</b> an item can be used inside the institution (in their rooms, in their intranet etc.).</li>
<li><b>loan</b>: an item can be used outside of the institution (by lending or online access). </li>
<li><b>interloan</b>: an tem can be used mediated by another institution. That means you do not have to interact with the institution that was queried for this item. This include interlibrary loan as well as public online ressources that are not hosted or made available by the queried institution.</li>
<li><b>openaccess</b>: an item can be used imediately without any restrictions by the institution, you don&#8217;t even have to give it back. This applies for Open Access publications and free copies.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://jakoblog.de/2009/10/23/how-to-encode-the-availability-of-documents/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

