OWL-MeT mapping to RDF graphs

OWL-MET Ontology Language Semantics and Abstract Syntax.

Mapping to RDF Graphs.


(Draft)
Last revision is: 1.12
Date is: 02 April 2007 08:52 AM

OWL-MET partially extends OWL Lite and OWL DL. OWL-MET re-defines several constructs of OWL Lite and OWL DL, such as: unionOf, intersectionOf, complementOf, Disjoint Classes, Equivalent Classes, Subclasses.
The definitions of mapping of all unchanged constructs of OWL Lite and OWL DL are described in OWL Web Ontology Language Semantics and Abstract Syntax Section 4. Mapping to RDF Graphs.

The Transformation Table gives transformation rules that transform the abstract syntax to the OWL-MET exchange syntax.
As in OWL transformation rules, there are triples that may or may not be generated. These triples are marked with [opt]. In some cases one of two triples must be generated. This is indicated by separating the triples with OR. These non-determinisms allow the generation of more RDF Graphs.
The left column of the table gives a piece of abstract syntax (S); the center column gives its transformation into triples (T(S)); and the right column gives an identifier for the main node of the transformation (M(T(S))), for syntactic constructs that can occur as pieces of directives.
Repeating components are listed using ellipses, as in description_1 … description_n, this form allows easy specification of the transformation for all values of n allowed in the syntax. Optional portions of the abstract syntax (enclosed in square brackets) are optional portions of the transformation (signified by square brackets). As well, for any of the built-in OWL datatypes, built-in OWL classes, built-in OWL annotation properties, and built-in OWL ontology properties the first rdf:type triple in the translation of it or any axiom for it is optional.
For many directives these transformation rules call for the transformation of components of the directive using other transformation rules. When the transformation of a component is used as the subject, predicate, or object of a triple, even an optional triple, the transformation of the component is part of the production (but only once per production) and the main node of that transformation should be used in the triple.
Bnode identifiers here must be taken as local to each transformation, i.e., different identifiers should be used for each invocation of a transformation rule. Ontologies without a name are given a bnode as their main node; ontologies with a name use that name as their main node; in both cases this node is referred to as O below
Transformation definitions given here are only those that extend the transformation rules for OWL Lite and OWL DL.

OWL-MET transformation table


Abstract Syntax (and sequences) – STransformation – T(S) Main Node – M(T(S))
tclassID tclassID rdf:type owlmet:TClass .
tclassID rdf:type rdfs:Class . [opt]
tclassID
instantID instantID
TClass( tclassID partial
annotation_1 … annotation_m
description_1 … description_n)
tclassID rdf:type owlmet:TClass .
tclassID rdf:type rdfs:Class . [opt]
tclassID T(annotation_1) … tclassID T(annotation_m) .
tclassID rdfs:subClassOf T(description_1) . …
tclassID rdfs:subClassOf T(description_n) .
TClass( tclassID complete
annotation_1 … annotation_m
description_1 … description_n)
tclassID rdf:type owlmet:TClass .
tclassID rdf:type rdfs:Class . [opt]
tclassID T(annotation_1) … tclassID T(annotation_m) .
tclassID owlmet:intersectionOf T(SEQ description_1 …description_n) .
TClass( tclassID complete
annotation_1 … annotation_m
description)
tclassID rdf:type owlmet:TClass .
tclassID rdf:type rdfs:Class . [opt]
tclassID T(annotation_1) … tclassID T(annotation_m) .
tclassID owlmet:equivalentClass T(description) .
TClass( tclassID complete
annotation_1 … annotation_m
unionOf(description_1 … description_n))
tclassID rdf:type owlmet:TClass .
tclassID rdf:type rdfs:Class . [opt]
tclassID T(annotation_1) … tclassID T(annotation_m) .
tclassID owlmet:unionOf T(SEQ description_1 …description_n) .
TClass( tclassID complete
annotation_1 … annotation_m
complementOf(description))
tclassID rdf:type owlmet:TClass .
tclassID rdf:type rdfs:Class . [opt]
tclassID T(annotation_1) … tclassID T(annotation_m)
tclassID owlmet:complementOf T(description) .
EnumeratedTClass(tclassID [Deprecated] annotation_1 … annotation_m iID_1 … iID_n) tclassID rdf:type owlmet:TClass .
tclassID rdf:type rdfs:Class . [opt]
[tclassID rdf:type owl:DeprecatedClass . ]
tclassID T(annotation_1) … tclassID T(annotation_m) .
tclassID owl:oneOf T(SEQ iID_1…iID_n) .
DisjointClasses(description_1 … description_n) T(description_i) owlmet:disjointWith T(description_j). OR
T(description_j) owlmet:disjointWith T(description_i) . 1≤i<j≤n
T(description_i) owlmet:disjointWith T(description_j) . [opt] 1≤i≠j≤n
EquivalentClasses(description_1 … description_n) T(description_i) owlmet:equivalentClass T(description_j) .
for all <i,j> in G where G is a set of pairs over {1,...,n}x{1,...,n}
that if interpreted as an undirected graph forms a connected graph for {1,...,n}
SubClasses(description_1 description_2) T(description_1) rdfs:subClassOf T(description_2) .
unionOf(description_1 … description_n) _:x rdf:type owlmet:TClass .
_:x rdf:type rdfs:Class . [opt]
_:x owlmet:unionOf T(SEQ description_1…description_n) .
_:x
intersectionOf(description_1 … description_n) _:x rdf:type owlmet:TClass .
_:x rdf:type rdfs:Class . [opt]
_:x owlmet:intersectionOf T(SEQ description_1…description_n) .
_:x
complementOf(description) _:x rdf:type owlmet:TClass .
_:x rdf:type rdfs:Class . [opt]
_:x owlmet:complementOf T(description) .
_:x
trestriction(allfuture(description)) _:x rdf:type owlmet:TRestriction .
_:x rdf:type owlmet:TClass . [opt]
_:x rdf:type rdfs:Class . [opt]
_:x owlmet:allfuture T(description) .
_:x
trestriction(allpast(description)) _:x rdf:type owlmet:TRestriction .
_:x rdf:type owlmet:TClass . [opt]
_:x rdf:type rdfs:Class . [opt]
_:x owlmet:allpast T(description) .
_:x
trestriction(future(value) description ) _:x rdf:type owlmet:TRestriction .
_:x rdf:type owlmet:TClass . [opt]
_:x rdf:type rdfs:Class . [opt]
_:x owlmet:future “value”^^xsd:nonNegativeInteger .
_:x owlmet:happens T(description) .
_:x
trestriction(past(value) description ) _:x rdf:type owlmet:TRestriction .
_:x rdf:type owlmet:TClass . [opt]
_:x rdf:type rdfs:Class . [opt]
_:x owlmet:past “value”^^xsd:nonNegativeInteger .
_:x owlmet: happens T(description) .
_:x
trestriction(somefuture description ) _:x rdf:type owlmet:TRestriction .
_:x rdf:type owlmet:TClass . [opt]
_:x rdf:type rdfs:Class . [opt]
_:x owlmet:somefuture T(description) .
_:x
trestriction(somepast description )
_:x rdf:type owlmet:TRestriction .
_:x rdf:type owlmet:TClass . [opt]
_:x rdf:type rdfs:Class . [opt]
_:x owlmet:somepast T(description) .
_:x
trestriction(at(instantID) description ) _:x rdf:type owlmet:TRestriction .
_:x rdf:type owlmet:TClass . [opt]
_:x rdf:type rdfs:Class . [opt]
_:x owlmet:at instantID .
_:x owlmet:happens T(description) .
_:x
TimeStructure(instantID_1 … instantID_n) _:x rdf:type rdf:Seq
_:x rdf:_1 instantID_1…_:x rdf:_1 instantID_n
instantID_1 rdf:type owlmet:Instant … instantID_n rdf:type owlmet:Instant
_:x