The DAIA Ontology defines an encoding of document availability information in RDF. The Ontology aligned with Document Availability Information API (DAIA).
Updates and sources of this document can be found in a public git repository at http://github.com/gbv/daia-rdf. The master file daia.md is written in Pandoc’s Markdown. PAIA Ontology in in RDF/Turtle, in RDF/XML and this HTML document are generated from the master file with makespec. The specification can be distributed freely under the terms of CC-BY-SA.
The Document Availability Information Ontology (DAIA ontology) defines a set of RDF classes and RDF properties to express DAIA data in RDF. RDF data that makes use of DAIA ontology is also referred to as DAIA/RDF.
The DAIA data model basically consists of abstract documents, concrete holdings of documents, and document services, with an availability status.
RDF Serializations of DAIA Ontology are available in RDF/Turtle (daia.ttl
) and in RDF/XML (daia.owl
).
The DAIA/RDF Ontology is identified by the URI http://purl.org/ontology/daia/ which is also used URI namespace. Both may be changed to http://purl.org/ontology/daia#. The namespace prefix daia
is recommeded.
DAIA ontology is based on the following RDF ontologies:
Ontology | relevant classes | relevant properties |
---|---|---|
Document Service Ontology (DSO) | dso:DocumentService dso:Loan dso:Presentation dso:Interloan dso:OpenAccess |
- |
Service Ontology | service:ServiceLimitation | service:limits / service:limitedBy service:delay |
Holding Ontology | … | holding:exemplar holding:narrowerExemplar holding:broaderExemplar holding:heldby / holding:holds holding:label … |
FOAF | foaf:Organization … |
foaf:primaryTopicOf foaf:name … |
Bibliographic Ontology (bibo) | bibo:Document | - |
FRBR | frbr:Item | - |
DCTerms | … | dct:description dct:hasPart / dct:isPartOf |
In addition:
+-----------+ daia:availableFor +---------------------+
| |------------------------->| |
| |<-------------------------| |
| | daia:availableOf | |
| frbr:Item | | dso:DocumentService |
| | daia:unavailableFor | |
| |------------------------->| |
| |<-------------------------| |
+-----------+ daia:unavailableOf +---------------------+
The URI namespace of DAIA ontology is http://purl.org/ontology/daia#
. The namespace prefix daia
is recommended. The URI of DAIA Ontology as as a whole is http://purl.org/ontology/daia.
@prefix daia: <http://purl.org/ontology/daia#> .
@base <http://purl.org/ontology/daia> .
The following namspace prefixes are used to refer to related ontologies:
@prefix cc: <http://creativecommons.org/ns#> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix dso: <http://purl.org/ontology/dso#> .
@prefix holding: <http://purl.org/ontology/holding#> .
@prefix frbr: <http://purl.org/vocab/frbr/core#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ssso: <http://purl.org/ontology/ssso#> .
@prefix service: <http://purl.org/ontology/service#> .
@prefix holding: <http://purl.org/ontology/holding#> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix voaf: <http://purl.org/vocommons/voaf#> .
@prefix vs: <http://www.w3.org/2003/06/sw-vocab-status/ns#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
In Turtle syntax, the ontology is defined as following:
<> a owl:Ontology, voaf:Vocabulary ;
dct:title "Document Availability Information Ontology"@en ;
rdfs:label "DAIA" ;
vann:preferredNamespacePrefix "daia" ;
vann:preferredNamespaceUri "http://purl.org/ontology/daia#" ;
dct:modified "2015-04-22"^^xsd:date ;
owl:versionInfo "0.0.1+1" ;
foaf:isPrimaryTopicOf <http://purl.org/NET/DAIA> ;
cc:license <http://creativecommons.org/licenses/by/3.0/> ;
dct:creator "Jakob Voß"
.
DAIA ontology does not define new classes but makes use of classes defined in related ontologies.
…
ssso:ServiceEvent a owl:Class ;
rdfs:isDefinedBy <http://purl.org/ontology/ssso> .
A storage is a place where items are stored.
daia:Storage a owl:Class .
…
daia:availableFor a owl:ObjectProperty ;
rdfs:label "availableFor"@en ;
rdfs:domain frbr:Item ;
rdfs:range dso:DocumentService ;
owl:inverseOf daia:availableOf ;
rdfs:subPropertyOf dso:hasService ;
rdfs:seeAlso daia:unavailableFor ;
rdfs:isDefinedBy <> ;
vs:term_status "testing" .
daia:availableOf a owl:ObjectProperty ;
rdfs:label "availableOf"@en ;
rdfs:domain dso:DocumentService ;
rdfs:range frbr:Item ;
owl:inverseOf daia:availableFor ;
rdfs:subPropertyOf dso:hasDocument ;
rdfs:seeAlso daia:unavailableOf ;
rdfs:isDefinedBy <> ;
vs:term_status "testing" .
The following appendixes are informative only.
Examples of DAIA/JSON to DAIA/RDF mappings:
{
"version" : "0.5",
"schema" : "http://ws.gbv.de/daia/",
"timestamp" : "2009-06-09T15:39:52.831+02:00",
"institution" : { }
}
# In DAIA/RDF there is no timestamp unless one uses N-Quads or reification
[ ] a foaf:Organization .
{
"document" : [ {
"href" : "https://kataloge.uni-hamburg.de/DB=1/PPNSET?PPN=57793371X",
"id" : "gvk:ppn:57793371X",
"item" : [ { }, { }, { } ]
} ]
}
<gvk:ppn:57793371X> a bibo:Document ;
foaf:primaryTopicOf <https://kataloge.uni-hamburg.de/DB=1/PPNSET?PPN=57793371X> ;
holding:exemplar [ ], [ ], [ ] .
{
"item" : [ {
"id" : "id:123",
"message" : [ { "lang": "en", "content": "foo" } ],
"department" : { "id": "id:abc" },
"label" : "bar",
"available" : [ {"service" : "presentation"},
{"service" : "loan"},
{"service" : "interloan"} ],
"unavailable" : [ {"service" : "openaccess"} ]
} ]
}
<id:123> a frbr:Item ;
dct:description "foo"@en ;
holding:label "bar" ;
holding:heldBy <id:abc> ;
daia:availableFor [ a dso:Presentation ] ;
daia:availableFor [ a dso:Loan ] ;
daia:availableFor [ a dso:Interloan ] ;
daia:unavailableFor [ a dso:Openaccess ] ;
<id:abc> a foaf:Organization ; dct:isPartOf [
a foaf:Organization ; dct:hasPart <id:abc> ] .
In DAIA/RDF, an Item element corresponds to an instance of frbr:Item.
{
"available": [ { "service":"loan", "delay":"PT2H"
}
[ ] daia:availableFor [
a dso:Loan ;
service:delay "PT2H"^^xsd:duration
] .
{
"unavailable": [ {
"service":"presentation",
"delay":"PT4H"
} ]
}
[ ] daia:unavailableFor [
a dso:Presentation ;
service:delay "PT4H"^^xsd:duration
] .
{
"institution" : { "href" : "http://www.tib.uni-hannover.de/" }
...
"department" : {
"id" : "info:isil/DE-7-022",
"content" : "Library of the Geographical Institute, Goettingen University"
}
...
"limitation" : { "content" : "3 day loan" }
}
[ ] a foaf:Organization ;
foaf:homepage <http://www.tib.uni-hannover.de/> .
<info:isil/DE-7-022> a foaf:Organization ;
foaf:name "Library of the Geographical Institute, Goettingen University"@en .
[ ] a service:ServiceLimitation ;
schema:name "3 day loan" . # TODO: schema:name (???)
The main difference of this specification to DAIA 0.5 is the inclusion of DAIA/RDF which was formerly defined in a separate document. Major parts of the DAIA ontology have been moved to independent micro-ontologies, involving the change of URIs. In particular, DAIA services are now defined in the Document Service Ontology. The following URIs are deprecated:
Removed:
Moved to Document Service Ontology (DSO):
Moved to Simple Service Status Ontology (SSSO):
Moved to Holding Ontology:
Nur sure about:
DAIA Ontology
daia:perform, daia:baseURL … (?)
http://purl.org/ontology/daia/unavailableFor changed to http://purl.org/ontology/daia#unavailableFor.
If department and institution have same id, the department SHOULD be ignored.