Copyright © 2010 - 2011 Jiří Procházka, Richard Cyganiak, Toby Inkster and Bob Ferris |
|
This work is licensed under a Creative Commons Attribution License. This copyright applies to the Property Reification Vocabulary Specification and accompanying documentation in RDF. Regarding underlying technology, the Property Reification Vocabulary uses W3C's RDF technology, an open Web standard that can be freely used by anyone.
The Property Reification Vocabulary specification provides a vocabulary for describing the ontology design pattern of property reification on/ for the Semantic Web. That
means the semantic relation of a shortcut relation (subject, predicate, object) with its detailed description of the relationship. This document contains a RDFa description of the
Property Reification Vocabulary and some additional information and examples.
Note: this is only a proposal/draft of the Property Reification Vocabulary and parts of it might be changed in the near future (work in progress)
The Property Reification Vocabulary is design after a proposal made by Jiří Procházka, Richard Cyganiak and Toby Inkster and extended by Bob Ferris. It should reflect the important use case and ontology design pattern of property reification,
which is different from statement reification (see also background and this explanation). This gives ontology designers the freedom to separate such property reification definitions
from their core ontology and enable hence the opportunity to make them optional.
The template of this specification is derived from the FOAF Vocabulary Specification, which was created by Dan Brickley and Libby Miller, and the
Music Ontology Specification, which was created by Yves Raimond. It was modified and extended by Bob Ferris. Furthermore, a modified
and extended version of Danbri's SpecGen version was used to generate most of the RDFa statements of the
Property Reification Vocabulary for this specification (see here for SpecGen version 6 by Bob Ferris).
This document is created by combining the RDFS/OWL machine-readable Property Reification Vocabulary with a human-readable HTML representation that includes RDFa annotations. Future versions may incorporate multilingual translations of term definitions. The RDF/XML version of the specification is also available directly from the namespace URI. RDF/N3 representations could be access via the links above.
The authors welcome comments on this document, preferably via the author's email addresses.
The prv:PropertyReification concept as graph with relations:
An a-z index of Property Reification Vocabulary terms, by class (categories or types) and by property.
Classes: | PropertyReification |
Properties: | object_property | reification_class | reified | shortcut | shortcut_property | subject_property |
RDF/Turtle representation of a simple property reification definition example created with help of the Property Reification Vocabulary (see also RDF and N3 for downloadable representations of this example) that includes also an example of its application:
@prefix prv: <http://purl.org/ontology/prv/core#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix ex: <http://example.org/> . ex:ReadReification a prv:PropertyReification ; prv:shortcut ex:hasRead ; prv:reification_class ex:ReadingEvent ; prv:subject_property ex:reader ; prv:object_property ex:book . # The quick way <#alice> ex:hasRead <#beekeeping> . # The detailed way <#myreadingevent> a ex:ReadingEvent ; ex:reader <#alice> ; ex:book <#beekeeping> ; ex:when "2010-11-01"^^xsd:date .
In the example above one can see a property reification definition that utilize some temporarily defined terms and an example of its application. The example includes a
property reification definition for the shortcut relation property ex:hasRead. Thereby, this property reification definition utilizes the
reification class ex:ReadingEvent. Furthermore, the subject property is ex:reader and the object property is ex:book.
Due to the property reification definition from above and the shortcut relation and property reification rules (see here) one can clearly
reason that the shortcut relation (see "The quick way") and reification class instance (see "The detailed way") in the example are belonging semantically together. The
detailed description is additionally associated with a date (ex:when), that represents when the person (<#alice>) read the book (<#beekeeping>).
The property reification definition of this example makes especially use of the reification class (prv:reification_class) to utilize a reification class and a shortcut relation
property (prv:shortcut) as identification terms to establish the semantic relation between a
shortcut relation and its belonging reification class instance(s).
RDF/Turtle representation of a property reification definitions example of the Cognitive Characteristics Ontology created with help of the Property Reification Vocabulary (see also RDF and N3 for downloadable representations of this example):
@prefix prv: <http://purl.org/ontology/prv/core#> . @prefix cco: <http://purl.org/ontology/cco/core#> . @prefix ex: <http://example.org/> . ex:SkillReification a prv:PropertyReification ; prv:shortcut cco:skill ; prv:shortcut_property cco:characteristic ; prv:reification_class cco:CognitiveCharacteristic ; prv:subject_property cco:agent ; prv:object_property cco:topic . ex:ExpertiseReification a prv:PropertyReification ; prv:shortcut cco:expertise ; prv:shortcut_property cco:characteristic ; prv:reification_class cco:CognitiveCharacteristic ; prv:subject_property cco:agent ; prv:object_property cco:topic . ex:InterestReification a prv:PropertyReification ; prv:shortcut cco:interest ; prv:shortcut_property cco:characteristic ; prv:reification_class cco:CognitiveCharacteristic ; prv:subject_property cco:agent ; prv:object_property cco:topic . ex:BeliefReification a prv:PropertyReification ; prv:shortcut cco:belief ; prv:shortcut_property cco:characteristic ; prv:reification_class cco:CognitiveCharacteristic ; prv:subject_property cco:agent ; prv:object_property cco:topic . ex:SettingReification a prv:PropertyReification ; prv:shortcut cco:setting ; prv:shortcut_property cco:characteristic ; prv:reification_class cco:CognitiveCharacteristic ; prv:subject_property cco:agent ; prv:object_property cco:topic .
In the example above one can see property reification definitions that utilize terms of the Cognitive Characteristics Ontology. The example includes property reification definitions for the
shortcut relation properties cco:skill, cco:expertise, and cco:interest. Thereby, every property reification definition utilizes the same
reification class, cco:CognitiveCharacteristic.
Furthermore, also the subject and object property are in every definition the same, cco:agent (as subject property) and cco:topic (as object property).
Due to the property reification definitions from above and the shortcut relation and property reification rules (see here) one can clearly
reason that the shortcut relations and reification class instances in the soccer example of the Cognitive Characteristics Ontology are belonging semantically together (here pairwise).
The property reification definitions of this example make especially use of the shortcut property (prv:shortcut_property) to utilize a reification class for several
shortcut relation properties (property reification definitions). Finally, these definitions are described in the Cognitive Characteristics Ontology - Property Reification Mappings.
The graphic above illustrates the prv:PropertyReification concept and its related properties as extension of RDFS. It associates
of a property reification definition. This design provides the opportunity to utilize a reification class for several property reification definitions. That means, at least also for several shortcut relation definitions (properties), due to a matching between the shortcut relation property defined in a property reification definition by prv:shortcut and the associated shortcut relation property by the shortcut property (prv:shortcut_property) in a reification class instance.
The Property Reification Vocabulary should enable a reasoning engine to apply the following implications, which are represented as N3 rules (see also shortcut relation rule and property reification rule for downloadable representations of these rules):
@prefix prv: <http://purl.org/ontology/prv/core#> . { ?pr a prv:PropertyReification ; prv:shortcut ?sc ; prv:reification_class ?rc ; prv:shortcut_property ?scp ; prv:subject_property ?sp ; prv:object_property ?op . ?r a ?rc ; ?scp ?sc ; ?sp ?s ; ?op ?o . } => { ?s ?sc ?o } .
The shortcut relation rule above means, if a prv:PropertyReification instance ?pr exists, which includes
then a shortcut relation can be constructed, which has
@prefix prv: <http://purl.org/ontology/prv/core#> . { ?s ?sc ?o . ?pr a prv:PropertyReification ; prv:shortcut ?sc ; prv:reification_class ?rc ; prv:shortcut_property ?scp ; prv:subject_property ?sp ; prv:object_property ?op . } => { ?r a ?rc ; ?scp ?sc ; ?sp ?s ; ?op ?o . } .
The property reification rule above means, if a shortcut relation exists, which has
and a prv:PropertyReification instance ?pr exists, which relates
then an instance ?r of a reification class ?rc can be constructed, which relates
With help of the property reification and shortcut relation rule a reasoning engine should not only
be able to infer (construct) related representations, but also to reason that existing shortcut relations
and instances of reification classes belonging semantically together.
Both rules are also described with help of SPIN (SPARQL Inferencing Notation) and
are available via the namespace URI 'http://purl.org/ontology/prv/rules#
'. Thus, one can directly retrieve a description of the property reification rule and the shortcut relation rule and use these descriptions to feed a reasoning engine.
It seems that there is still a lack in modelling contextual information for Semantic Graph triples and deploying
this knowledge representation reusable in a distributed Linked Data environment. Although, there exists probably applicable solutions for representing external context*,
e.g. Named Graphs or N-Quads. However,
these methods are not really appropriated to represent internal context* by keeping clear semantics regarding their described Semantic Graph triples (information resource).
Even the existing method for RDF statements, RDF Reification (statement reification), has no clear semantics between the statement triple(s) and their
reification information resource(s). Furthermore, this method is intended to be applied at the instance level. Although, it might be good to be able to apply reification definition also on
the vocabulary level. That means, to reify the semantic relation that is established by a property. This kind of reification is then called property reification.
Therefore, the simple semantic relation, represented by subject, predicate and object, is now defined as shortcut relation. Thereby, the predicate is always the same property for a
single shortcut relation definition. Beyond, the class that enables a detailed description of such a n-ary relation is called reification class.
Due to the reason, that there wasn’t a published vocabulary that addresses a mapping and its semantics between shortcut relations and reification classes and vice versa,
Bob Ferris co-designed the Property Reification Vocabulary. This vocabulary is designed after a proposal made by Jiří Procházka, Richard Cyganiak and Toby Inkster and was also extended by Bob Ferris to enable further functionality. It should
reflect the important use case and ontology design pattern of property reification. This gives ontology designers the freedom to separate such property reification
definitions from their core ontology definition and enable hence the opportunity to make them optional.
*) see "Understanding Data by their Context Using RDF" [Tolle, Karsten;
2004] for a definition of external and internal context
TODO
TODO
This specification serves as the Property Reification Vocabulary "namespace document". As such it describes the Property Reification Vocabulary and the terms (RDF classes and properties) that constitute it, so that Semantic Web applications can use those terms in a variety of RDF-compatible document formats and applications.
This document presents the Property Reification Vocabulary as a Semantic Web vocabulary or Ontology. The Property Reification Vocabulary is pretty simple, pragmatic and designed to allow simultaneous deployment and extension. The Property Reification Vocabulary is intended for widescale use, but its authors make no commitments regarding its suitability for any particular purpose.
The Property Reification Vocabulary is identified by the namespace URI
'http://purl.org/ontology/prv/core#
'. Revisions and
extensions of the Property Reification Vocabulary are conducted through edits to this document,
which by convention is accessible in the Web via the namespace URI.
For practical and deployment reasons, note that we do not
update the namespace URI as the vocabulary matures.
The evolution of the Property Reification Vocabulary is best considered in terms of the stability of individual vocabulary terms, rather than the specification as a whole. As terms stabilise in usage and documentation, they progress through the categories 'unstable', 'testing' and 'stable'. Older terms are marked 'archaic' which allows the possibility of older forms to become modern again.
The Property Reification Vocabulary introduces the following classes and properties. There is a link at the top of this document to the RDF/XML and RDF/N3 versions.
Classes: | PropertyReification |
Properties: | object_property | reification_class | reified | shortcut | shortcut_property | subject_property |
Status: | testing | |
---|---|---|
Properties include: | shortcut reification_class shortcut_property object_property subject_property | |
Sub class of | rdfs:Class | |
RDFS Class |
[#] [back to top]
Status: | testing | |
---|---|---|
Domain: | Property Reification | |
Range: | rdf:Property | |
RDF Property |
[#] [back to top]
Status: | testing | |
---|---|---|
Domain: | Property Reification | |
Range: | rdfs:Class | |
RDF Property |
[#] [back to top]
Status: | testing | |
---|---|---|
Domain: | rdfs:Resource | |
Range: | owl:Thing | |
RDF Property |
[#] [back to top]
Status: | testing | |
---|---|---|
Domain: | Property Reification | |
Range: | rdf:Property | |
RDF Property |
[#] [back to top]
Status: | testing | |
---|---|---|
Domain: | Property Reification | |
Range: | rdf:Property | |
RDF Property |
[#] [back to top]
Status: | testing | |
---|---|---|
Domain: | Property Reification | |
Range: | rdf:Property | |
RDF Property |
[#] [back to top]
The description of the terms in the Property Reification Vocabulary 'dictionary' make reference to classes and properties elsewhere. This section of the Property Reification Vocabulary
specification provides a placeholder reference for any Property Reification Vocabulary mention of externally defined terms. For example, sometimes we might say that Counter
Ontology property has a domain or range of an externally defined class, or that a Property Reification Vocabulary class is a sub-class of an external class, or 'disjoint with'
such a class (ie. has no common members). Such claims help fix the intended meaning of Property Reification Vocabulary terms in relationship to other 'peer' vocabularies.
Currently, the Property Reification Vocabulary sub classes:
Each term in the Property Reification Vocabulary is annotated with properties from the SemWeb Vocab Status Ontology
Note that this mechanism is itself somewhat experimental and evolvin. The definitions of 'stable', 'unstable', 'archaic' and 'testing' cannot be defined as global absolutes, but only in relationship to the practices, expectations and social structures around some vocabulary. For their use in the Property Reification Vocabulary, future versions of this specification could usefully offer more detail about what to expect from a term labelled 'stable'.
I would like to thank very much the creators the first proposal of the Property Reification Vocabulary - Jiří Procházka, Richard Cyganiak and Toby Inkster. Furthermore, Dan Brickley, Libby Miller and Yves Raimond to provide the basis for this specification.
============================ Version 0.11 (February 2011) ============================ * ADDED: PRV rules description in SPIN * ADDED: prv:reified - to relate an statement identifier of a shortcut relation with an instance of a reification class. Although, this is at the moment not really applicable, because it requires a notation for statement identifier as optional fourth element of a tuple; that means, triple + statement identifier * IMPORTED: PRV rules library with spin:imports to the vocabulary specification ============================ Version 0.1 (September 2010) ============================ * ADDED: prv:PropertyReification - the class, which describes the relations of a property reification. That means, its "shortcut relation", its reification class, and the properties that are relating to the subject and object of the "shortcut relation" * ADDED: prv:shortcut - relates to the property of the "shortcut relation" (its predicate) * ADDED: prv:reification_class - relates to the reification class, which can be related to the object and subject property to be able to associate the object and subject of the "shortcut relation". The reification class should provide detailed descriptions of the relationship that is described in a simple form by the "shortcut relation" * ADDED: prv:subject_property - relates to the property of the reification class, which relates to the subject of the "shortcut relation" * ADDED: prv:shortcut_property - elates to the property of the reification class, which relates to the predicate of the "shortcut relation". So that the specific property reification can be "verified" (the property of the prv:shortcut relation and this one associated by the referred shortcut property should be equal) * ADDED: prv:object_property - relates to the property of the reification class, which relates to the object of the "shortcut relation"