Fork me on GitHub

Holding Ontology

Carsten Klee

Jakob Voß

2015-12-08 (version 0.1.2+35)

Table of Contents

1 Introduction

The Holding Ontology is a vocabulary to express (library) holdings in RDF. Connections to related ontologies are included wherever possible.

The Holding Ontology deals with items and their relations to agents and documents. An item is a copy or exemplar of a document. Items are also referred to as holdings, but a holding is moreover the description of an agents inventory and access information for the item. Items may further be connected to services, locations, and chronologies.

1.1 Status of this document

This document is an early draft, created by a DINI AG KIM Working Group. See https://wiki.dnb.de/display/DINIAGKIM/Bestandsdaten+Gruppe for more resources.

1.2 Namespaces and Ontology

The URI namespace of this ontology is http://purl.org/ontology/holding#. The namespace prefix holding is recommeded. The URI of this ontology as a whole is http://purl.org/ontology/holding.

@prefix holding: <http://purl.org/ontology/holding#> .
@base            <http://purl.org/ontology/holding> .

The following namspace prefixes are used to refer to related ontologies:

@prefix bf:      <http://bibframe.org/vocab/> .
@prefix bibo:    <http://purl.org/ontology/bibo/> .
@prefix cc:      <http://creativecommons.org/ns#> .
@prefix daia:    <http://purl.org/ontology/daia/> .
@prefix dct:     <http://purl.org/dc/terms/> .
@prefix dso:     <http://purl.org/ontology/dso#> .
@prefix ecpo:    <http://purl.org/ontology/ecpo#> .
@prefix foaf:    <http://xmlns.com/foaf/0.1/> .
@prefix frbr:    <http://purl.org/vocab/frbr/core#> .
@prefix gr:      <http://purl.org/goodrelations/v1#> .
@prefix org:     <http://www.w3.org/ns/org#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix rdaa:    <http://rdaregistry.info/Elements/a/> .
@prefix rdam:    <http://rdaregistry.info/Elements/m/> .
@prefix rdac:    <http://rdaregistry.info/Elements/c/> .
@prefix rdai:    <http://rdaregistry.info/Elements/i/> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix schema:  <http://schema.org/> .
@prefix service: <http://purl.org/ontology/service#> .
@prefix skos:    <http://www.w3.org/2004/02/skos/core#> .
@prefix ssso:    <http://purl.org/ontology/ssso#> .
@prefix vann:    <http://purl.org/vocab/vann/> .
@prefix voaf:    <http://purl.org/vocommons/voaf#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .

The Holding Ontology is defined in RDF/Turtle as following:

<> a owl:Ontology, voaf:Vocabulary ;
    dct:title "Holding Ontology"@en ;
    rdfs:label "Holding Ontology"@en ;
    vann:preferredNamespacePrefix "holding" ;
    vann:preferredNamespaceUri "http://purl.org/ontology/holding#" ;
    dct:description "A vocabulary to express (library) holdings in RDF" ;
    dct:modified "2015-12-08"^^xsd:date ;
    owl:versionInfo "0.1.2+35" ;
    cc:license <http://creativecommons.org/licenses/by/3.0/> ;
    dct:creator "Carsten Klee", "Jakob Voß" .

2 Overview

Overview
Overview
Classes
(defined by this ontology)
Classes
(defined by other ontologies)
Properties
(defined by this ontology)
Properties
(defined by other ontologies)
Item
Agent
Document
DocumentService
Location
Chronology
collectedBy
collects
heldBy
holds
exemplar
exemplarOf
broaderExemplar
broaderExemplarOf
narrowerExemplar
narrowerExemplarOf
label
daia:availableFor
daia:availableOf
daia:unavailableFor
daia:unavailableOf
dso:hasService
dso:hasDocument
service:providedBy
ecpo:hasChronology
ecpo:hasChronologyGap
gr:availableAtOrFrom
org:siteOf
gr:name

3 Holding Classes

The holding ontology defines three classes Item, Agent, and Document based on existing classes defined in other ontologies. Relations between and properties of the holding classes are explained below as holding relationships and holding properties.

3.1 Item

An Item is a particular copy or exemplar of a Document. The holding ontology recommends to use class bf:HeldItem from the Bibframe Vocabulary, class frbr:Item from the FRBR Ontology or class rdac:Item from the RDA Vocabularies.

holding:Item a owl:Class ;
    rdfs:label "Item"@en ;
    rdfs:comment "Use one of bf:HeldItem frbr:Item rdac:Item"@en ;
    owl:unionOf (bf:HeldItem frbr:Item rdac:Item) .

3.2 Agent

An Agent is a person, organization, group or any other entity that can held items and provide services. The holding ontology recommends to use class foaf:Agent from the FOAF Ontology, class bf:Agent from the Bibframe Vocabulary, class schema:Organization from Schema.org or class rdac:Agent from the RDA Vocabularies.

holding:Agent a owl:Class ;
    rdfs:label "Agent"@en ;
    rdfs:comment "Use one of bf:Agent or foaf:Agent"@en ;
    owl:unionOf (bf:Agent foaf:Agent schema:Organization schema:Person rdac:Agent) .

3.3 Document

A Document is a body of information used designed with the capacity (and usually intent) to communicate. A document may manifest symbolic, diagrammatic or sensory-representational information. Documents may include both abstract works, such as the story of “Romeo and Juliet”, and more concrete entities, such as a specific edition of a book. Abstract documents are exemplified by Items. Some documents, such as unique physical pieces of art, may also be be refered to as both abstract and concrete. For this reason the classes Document and Item are not disjoint.

The holding ontology recommends to use class bibo:Document from the Bibliographic Ontology, class foaf:Document from the FOAF Ontology, class bf:Work or bf:Instance from the Bibframe Vocabulary or schema:CreativeWork from Schema.org.

holding:Document a owl:Class ;
    rdfs:label "Document"@en ;
    rdfs:comment "Use one of bibo:Document, foaf:Document, bf:Work or bf:Instance"@en ;
    owl:unionOf (bibo:Document foaf:Document bf:Work bf:Instance schema:CreativeWork) .

4 Holding Relationships

The holding classes can be connected by the following holding relationships to express collection (between documents and agents), possession (between items and agents), and exemplification (between documents and items). The main relationships are illustrated below.

holding-classes-relation
holding-classes-relation

4.1 Between Documents and Agents

A Document can be collected or described by an Agent, for instance in a bibliography or catalog. The properties collectedBy and collects can be used to express this relationship. The properties can also be used for Items which are collected by an Agent. The sub-properties heldBy and holds should be preferred when an item is not only collected by description but also by possession.

4.1.1 collectedBy

Relates a Document and/or Item to an Agent who collects the document or item by selecting, arranging, describing and/or cataloging it in a collection. This property may coincode with rdai:collector from RDA Vocabularies.

holding:collectedBy a owl:ObjectProperty ;
    rdfs:label "collected by"@en ;
    rdfs:comment "Relates a document and/or item to an agent who collects it."@en ;
    rdfs:domain [
      a owl:Class ;
        owl:unionOf (holding:Document holding:Item )
     ] ;
    rdfs:range holding:Agent ;
    owl:inverseOf holding:collects ;
    rdfs:seeAlso rdai:collector .

4.1.2 collects

Relates an Agent to an Item and/or Document that is collected by the agent. This property may coincode with rdaa:collectorOf from RDA Vocabularies.

holding:collects a owl:ObjectProperty ;
    rdfs:label "collects"@en ;
    rdfs:comment "Relates an agent to a document and/or item that is collected by the agent."@en ;
    rdfs:domain holding:Agent ;
    rdfs:range [
     a owl:Class ;
       owl:unionOf (holding:Document holding:Item )
    ] ;
    owl:inverseOf holding:collectedBy ;
    rdfs:seeAlso rdai:collectorOf .

4.2 Between Items and Agents

4.2.1 heldBy

Relates an Item to an Agent who holds the item. This property may coincide with rdai:owner or rdai:currentOwner from RDA Vocabularies. The heldBy property is a sub-property of collectedBy: an item that is held is also collected by the same agent.

holding:heldBy a owl:ObjectProperty ;
    rdfs:label "held by"@en ;
    rdfs:comment "Relates an item to an agent who holds the item."@en ;
    rdfs:domain holding:Item ;
    rdfs:range holding:Agent ;
    owl:inverseOf holding:holds ;
    rdfs:seeAlso bf:heldBy ;
    rdfs:seeAlso rdai:currentOwner ;
    rdfs:seeAlso rdai:owner ;
    rdfs:subPropertyOf holding:collectedBy .

4.2.2 holds

Relates an Agent to an Item which the agent holds. This property may coincide with rdai:ownerOf or rdai:currentOwnerOf from RDA Vocabularies. The holds property is a sub-property of collects: if an agent holds an item that the agent also collects the item.

holding:holds a owl:ObjectProperty ;
    rdfs:label "holds"@en ;
    rdfs:comment "Relates an agent to an item which the agent holds."@en ;
    rdfs:domain holding:Agent ;
    rdfs:range holding:Item ;
    rdfs:seeAlso rdaa:currentOwnerOf ;
    rdfs:seeAlso rdaa:ownerOf ;
    rdfs:subPropertyOf holding:collects ;
    owl:inverseOf holding:heldBy .

4.3 Between Documents and Items

The exemplar relation is used to state that a concrete Item is a copy of an abstract Document. Additional relations exist for items that only contain parts of a document and for items that contain multiple documents (for instance a collection that the document is part of).

item-doc-relation
item-doc-relation

To give an example:

Items and Documents may further be connected to other Documents that describe the connected item or document (also known as metadata). Such documents can be linked with properties foaf:page and foaf:primaryTopicOf as illustrated below:

item-description-relation
item-description-relation

4.3.1 exemplar

Relates a Document to an Item that is an exemplar or copy of the Document. This property may coincide with frbr:exemplar from the FRBR Ontology and rdam:exemplarOfManifestation from RDA Vocabularies but the holding ontology does not imply a “manifestation” class.

An exemplar should include all parts of a document but there may be gaps and omissions. See Chronology for examples. If an exemplar only includes parts of a documents that can be identfied as other documents, one should better use property narrowerExemplar.

holding:exemplar a owl:ObjectProperty ;
    rdfs:label "has exemplar"@en ;
    rdfs:comment "Relates a document to an item that is an exemplar of the document."@en ;
    rdfs:domain holding:Document ;
    rdfs:range holding:Item ;
    rdfs:seeAlso frbr:exemplar ;
    rdfs:seeAlso rdam:exemplarOfManifestation ;
    owl:inverseOf holding:exemplarOf .

4.3.2 exemplarOf

Relates an Item to the Document that is exemplified by the item.

holding:exemplarOf a owl:ObjectProperty ;
    rdfs:label "is examplar of"@en ;
    rdfs:comment "Relates an item to the document that is exemplified by the item."@en ;
    rdfs:domain holding:Item ;
    rdfs:range holding:Document ;
    rdfs:seeAlso bf:holdingFor ;
    rdfs:seeAlso rdai:manifestationExemplified ;
    owl:inverseOf holding:exemplar .

4.3.3 broaderExemplar

Relates a Document to an Item that contains a part of the document as exemplar.

holding:broaderExemplar a owl:ObjectProperty ;
    rdfs:label "broader exemplar"@en ;
    rdfs:comment "Relates a document to an item that contains an exemplar of the document as part."@en ;
    rdfs:domain holding:Document ;
    rdfs:range holding:Item ;
    rdfs:seeAlso rdai:containedInItem ;
    owl:inverseOf holding:broaderExemplarOf .

4.3.4 broaderExemplarOf

Relates an Item to a Document which is partly exemplified by (exemplarOf) the item.

holding:broaderExemplarOf a owl:ObjectProperty ;
    rdfs:label "broader exemplar of"@en ;
    rdfs:comment "Relates an item to a document which is partly exemplified by the item."@en ;
    rdfs:domain holding:Item ;
    rdfs:range holding:Document ;
    rdfs:seeAlso rdai:containsItem ;
    owl:inverseOf holding:broaderExemplar .

4.3.5 narrowerExemplar

Relates a Document to an Item that is an exemplar of a part of the document.

holding:narrowerExemplar a owl:ObjectProperty ;
    rdfs:label "narrower exemplar"@en ;
    rdfs:comment "Relates a document to an item that is an exemplar of a part of the document."@en ;
    rdfs:domain  holding:Document ;
    rdfs:range holding:Item ;
    rdfs:seeAlso rdai:containsItem ;
    owl:inverseOf holding:narrowerExemplarOf .

4.3.6 narrowerExemplarOf

Relates an Item to a Document which is partly exemplified by (exemplarOf) the item.

holding:narrowerExemplarOf a owl:ObjectProperty ;
    rdfs:label "narrower exemplar of"@en ;
    rdfs:comment "Relates an item to a document which is partly exemplified by the item."@en ;
    rdfs:domain holding:Item ;
    rdfs:range holding:Document ;
    rdfs:seeAlso rdai:containedInItem ;
    owl:inverseOf holding:narrowerExemplar .

5 Holding Properties

5.1 label

A call number, shelf mark or similar label of an item.

holding:label a owl:DatatypeProperty ;
    rdfs:label "label"@en ;
    rdfs:comment "A call number, shelf mark or similar label of an item"@en ;
    rdfs:domain holding:Item ;
    rdfs:range rdfs:Literal ;
    rdfs:seeAlso bf:label ;
    rdfs:seeAlso bf:shelfMark ;
    rdfs:seeAlso rdai:identifierForTheItem ;
    rdfs:seeAlso gr:hasStockKeepingUnit ;
    rdfs:seeAlso schema:sku ;
    rdfs:seeAlso schema:name ;
    rdfs:subPropertyOf dct:identifier .

6 Additional Classes

6.1 Chronology

A Chronology is the description of enumeration and chronology of a periodical. The Chronology class is defined by the Enumeration and Chronology of Periodicals Ontology.

ecpo:Chronology a owl:Class ;
    rdfs:label "Chronology"@en ;
    rdfs:isDefinedBy <http://purl.org/ontology/ecpo> .

6.2 Location

A Location is a point or area of interest from which a particular Item or DocumentService is available. The property gr:availableAtorFrom should be used to indicate the location of an offered DocumentService for an Item. The Location class is defined by GoodRelations.

gr:Location a owl:Class ;
    rdfs:label "Location"@en ;
    owl:equivalentClass schema:Place ;
    rdfs:isDefinedBy <http://purl.org/goodrelations/v1> .

6.3 DocumentService

A DocumentService is a service that is related to one or more documents. The service involves a service provider (e.g. a library) and an optional service consumer (e.g. a library patron). Both service provider and service consumer SHOULD be instances of Agent. The DocumentService class is defined by the Document Service Ontology.

dso:DocumentService a owl:Class ;
    rdfs:label "DocumentService" ;
    rdfs:isDefinedBy <http://purl.org/ontology/dso> .

7 Additional Relationships

7.1 Relating to Chronologies

To relate an Item to a Chronology use ecpo:hasChronology or ecpo:hasChronologyGap. To be more specific on the nature (current or closed) of a Chronology use ecpo:CurrentChronology or ecpo:ClosedChronology. To simply express the fact that an Item has a current chronology or a closed chronology without giving further information one MAY use ecpo:Current or ecpo:Closed.

7.2 Relating to Services

item-offering-relation
item-offering-relation

An Item may be available for a specific DocumentService. While an Agent provides a DocumentService for an Item this often implies an offer (gr:Offering and/or schema:Offer) to an unknown Agent.

Thus

$alicecopies
    daia:availableFor [
        a dso:Presentation ;
        gr:hasStockKeepingUnit "HB 17 Rg 500" ;
        service:providedBy <http://ld.zdb-services.de/resource/organisations/DE-1a> ;
    ] .

is a shortcut for

<http://ld.zdb-services.de/resource/organisations/DE-1a>
    gr:offers [
        a gr:Offering ;
        gr:hasBusinessFunction [
            dso:Presentation;
            gr:hasStockKeepingUnit "HB 17 Rg 500" ;
        ] ;
        gr:includes $alicecopies
    ] .

To relate an Item to a DocumentService one should use the properties dso:hasService, daia:availableFor or daia:unavailableFor.

To relate a DocumentService to an Item one should use the properties dso:hasDocument, daia:availableOf or daia:unavailableOf.

7.3 Relating to Locations

When a DocumentService is offered for an Item, one should use the property gr:name from GoodRelations to name the location where the DocumentService should be provided.

The property gr:availableAtOrFrom from GoodRelations should be used to relate an offering of a DocumentService for an Item with a Location.

The property service:providedBy from the Service Ontology should be used to relate a DocumentService with an Agent who offered the service.

The property org:siteOf from Organization Ontology should be used to relate a Location with an Agent if the location belongs to the agent.

8 References

8.1 Normative References

8.2 Informative References

Examples

A book series, fully held by a library

The series is a document, consisting of multiple volumes

$series a bibo:Periodical 
    dct:hasPart $volume1, $volume2, $volume3 .

$volume1 a bibo:Book ; bibo:volume "1" .
$volume2 a bibo:Book ; bibo:volume "2" .
$volume3 a bibo:Book ; bibo:volume "3" .

One chapter in Volume 1

$chapter3 a bibo:Document ;
    dct:isPartOf $volume1 .

A copy of the full series

$librarycopies 
    holding:exemplarOf $series ;
    holding:heldBy $library ;
    ecpo:hasChronology [
        a ecpo:CurrentChronology ;
        ecpo:hasBeginVolumeNumbering "1"
    ] .

A particular copy of volume 1, located in the library

$librarycopyofvolume1
    holding:exemplarOf $volume1 ;
    holding:narrowerExemplarOf $series ;
    holding:broaderExemplaOf $chapter3 .

The same series, partially held by Alice

A copy of volume 1 and 2

$alicecopies 
    holding:exemplarOf $series ;  
        # alteratively: holdings:narrowerExemplarOf $series
    dct:hasPart $volume2, $volume3
    holding:heldBy $alice ;
    ecpo:hasChronology [
        a ecpo:CurrentChronology ;
        ecpo:hasBeginVolumeNumbering "1" ;
        ecpo:hasEndVolumeNumbering "2" 
    ] .

Alice`s copies of volume 1

$alicescopyofvolume1
    holding:exemplarOf $volume1 ;
    holding:narrowerExemplarOf $series ;
    holding:narrowerExemplarOf $alicescopies .

Offering a Service for an Item

$alicecopies
    daia:availableFor (
        [
            a dso:Presentation ;
            gr:hasStockKeepingUnit "HB 17 Rg 500" ;
            service:providedBy <http://ld.zdb-services.de/resource/organisations/DE-1a> ;
            gr:availableAtOrFrom [
                a gr:Location ;
                gr:name "Leesesaal" ;
                org:siteOf <http://ld.zdb-services.de/resource/organisations/DE-1a>
            ]
        ] [
            dso:Loan ;
            gr:hasStockKeepingUnit "Zsn 70488" ;
            service:providedBy <http://ld.zdb-services.de/resource/organisations/DE-1a> ;
        ]
    ) .