Overwegingen gebruik dcterms:subject

(verslag van de meeting tussen Lieke Verhelst en Marco Brattinga op zoek naar een goede keuze om de relatie tussen owl:Class en skos:Concept uit te drukken, vrijdag 17 juli 2015).

Lieke geeft aan dat vooral van belang is om te bepalen wat de relatie precies uit moet drukken, en wat je wilt dat een reasoner doet met het statement. Marco geeft daarop aan dat het gaat om het onderscheid tussen een model waarin de formele betekenis wiskundig wordt uitgedrukt (owl) en een model waarin de betekenis wordt uitgedrukt in een model dat door mensen is te begrijpen. De relatie tussen de (instantie van een) owl:Class en de (instantie van een) skos:Concept moet dan vooral worden gelezen als: "deze instantie van een owl:Class kan (door mensen) worden gezien in de betekenis zoals bedoeld met de instantie van een skos:Concept).

Lieke geeft aan dat deze relatie dan geen owl:ObjectProperty mag zijn, maar bijvoorbeeld wel een owl:AnnotationProperty. Hiermee is voor inference engines duidelijk dat zij met deze relatie niets hoeven te doen, en is voor mensen duidelijk hoe zij de relatie moeten interpreteren. Het is ook mogelijk om een rdf:Property te kiezen die als domain en range geen waarde heeft, en vervolgens deze rdf:Property in je ontologie te casten als owl:AnnotationProperty: bijvoorbeeld: <http://purl.org/dc/terms/subject> rdf:type owl:AnnotationProperty.

Feitelijk is het nu al mogelijk om een eigenschap als skos:definition te gebruiken om de menselijke definitie bij een instantie van een owl:Class neer te zetten. Dit is mogelijk omdat skos:definition een owl:AnnotationProperty is, en geen rdfs:domain en rdfs:range kent.

Voorgesteld wordt om dcterms:subject te gebruiken en deze als owl:AnnotationProperty te casten. De argumentatie hierachter is als volgt:

  1. dcterms:subject (anders dan dc:subject) is bedoeld om twee niet-literals met elkaar te verbinden;
  2. er worden door een reasoner geen ongewenste triples gegenereerd
  3. de betekenis van dcterms:subject sluit aan met wat we willen uitdrukken;
  4. het gebruik van dcterms:subject als owl:AnnotationProperty sluit aan bij het gebruik in de praktijk van dcterms properties in een OWL context;
  5. hoewel het gebruikelijk is om de dublin core properties te gebruiken om eigenschappen van documenten te beschrijven, is dit niet beperkt tot documenten en zijn andere resources ook denkbaar. Zo kent de dcterms:subject geen rdfs:domain, waardoor het formeel gezien mogelijk is dat hiervoor een instantie van een owl:Class wordt gebruikt.

DBPedia maakt veel gebruik van dcterms:subject voor het verbinden van een (instance van een) owl:Thing met een (instantie van een) skos:Concept.


Er is nog wel een aandachtspunt: op dit moment is er geen owl beschrijving van de Dublin Core vocabulaire. Van belang is dat als er een owl versie van zou komen, dat dcterms:subject een owl:AnnotationProperty zou zijn, en geen owl:ObjectProperty. Gezien het gebruik van de Dublin Core vocabulaire verwachten we dat mocht er ooit een owl beschrijving komen, dat hier dan ook voor wordt gekozen.