- From: Peter F. Patel-Schneider <pfps@research.bell-labs.com>
- Date: Tue, 31 Dec 2002 12:02:20 -0500 (EST)
- To: www-webont-wg@w3.org
Here is a different characterization of OWL/DL graphs. There are probably
bugs remaining, but the idea is, I think, viable.
peter
Informal Description of OWL/DL Graphs
Let G be an RDF graph.
LISTS:
A node x1 in G is an non-empty list in G with elements e1,...,en if there
is a set of triples of the form
x1 rdf:type rdf:List .
x1 rdf:first e1 .
x1 rdf:rest x2 .
...
xn rdf:type rdf:List .
xn rdf:first en .
xn rdf:rest rdf:nil .
where each xi is a distinct blank node that appears as the object of exactly
one triple in G and x1 does not appear as the object of an rdf:rest triple.
The definition triples of x1 are the triples above plus the definition
triples of e1,...,en.
DESCRIPTIONS:
A node x in G is a description in G if x is a blank node and there is a set
of triples of one of the following forms, where
1/ r is an object property or a datatype property in G.
2/ if r is an object property in G then d is a description or a class;
if r is a datatype property in G then d is a data range or a datatype.
3/ if r is an object property in G then i is an individual and URI reference;
if r is a datatype property in G then i is a typed or untyped literal.
4/ n is a typed literal whose data value is a non-negative integer.
5/ ds is rdf:nil or a non-empty list whose elements are descriptions or classes.
6/ dc is a description or a class.
7/ is is rdf:nil or a non-empty list whose elements are individuals that
are also URI references.
allValuesFrom form:
x rdf:type owl:Restriction .
x owl:onProperty r .
x owl:allValuesFrom d .
someValuesFrom form:
x rdf:type owl:Restriction .
x owl:onProperty r .
x owl:someValuesFrom d .
hasValue form:
x rdf:type owl:Restriction .
x owl:onProperty r .
x owl:hasValue i .
minCardinality form:
x rdf:type owl:Restriction .
x owl:onProperty r .
x owl:minCardinality n .
maxCardinality form:
x rdf:type owl:Restriction .
x owl:onProperty r .
x owl:maxCardinality n .
cardinality form:
x rdf:type owl:Restriction .
x owl:onProperty r .
x owl:cardinality n .
unionOf form:
x owl:unionOf ds .
intersectionOf form:
x owl:intersectionOf ds .
complementOf form:
x owl:complementOf dc .
oneOf form:
x owl:oneOf is .
The definition triples of the description are the triples above plus the
definition triples of any description, data range, or list in the triples
above.
A node x in G is a data range in G if x is a blank node there is a set of
triples of the form
x owl:oneOf rdf:nil .
or
x owl:oneOf is .
where is is a non-empty list whose elements are typed or untyped literals.
The definition triples of the data range are the triples above plus the
definition triples of the list.
PROPERTIES:
A node x in G is a datatype property if x is a URI reference and there is a
triple of the form
x rdf:type owl:DatatypeProperty .
The assertions about x in G are the triples in G of the following forms,
where y is a datatype property in G, d is a description or class in G, and
r is a data range or datatype in G
x rdf:type owl:DatatypeProperty .
x rdfs:subPropertyOf y .
x rdfs:domain d .
x rdfs:range r .
x rdf:type owl:FunctionalProperty .
x owl:samePropertyAs y .
plus the definition triples of any description or data range in these triples.
A node x in G is an object property if x is a URI reference and there is a
triple of the form
x rdf:type owl:ObjectProperty .
The assertions about x in G are the triples in G of the following forms,
where y is an object property in G, d is a description or class in G
x rdf:type owl:ObjectProperty .
x rdfs:subPropertyOf y .
x rdfs:domain d .
x rdfs:range d .
x owl:inverse y .
x rdf:type owl:SymmetricProperty .
x rdf:type owl:FunctionalProperty .
x rdf:type owl:InverseFunctionalProperty .
x rdf:type owl:TransitiveProperty .
x owl:samePropertyAs y .
plus the definition triples of any description in these triples.
CLASSES:
A node x in G is a class if x is owl:Thing or owl:Nothing or x is a URI
reference and there is a triple of the form
x rdf:type owl:Class .
The assertions about x in G are the triples in G of the following forms,
where d is a top-level description or class in G
x rdf:type owl:Class .
x rdfs:subClassOf d .
x owl:sameClassAs d .
x owl:disjointFrom d.
A node x in G is a top-level description if x is a description that is not
in the definition triples of any other description in G.
The assertions about x in G are the triples in G of the following forms,
where d is a top-level description or class in G
x rdf:type owl:Class .
x rdfs:subClassOf d .
x owl:sameClassAs d .
x owl:disjointWith d .
plus the definition triples of x.
INDIVIDUALS:
A node x in G is an individual if there is a triple of the form
x rdf:type c .
where c is a description or class.
The assertions about x in G are the triples of G of the following forms,
where c is a description or class, rd is a datatype property, v is a typed
or untyped literal, ro is an object property, and i is an individual.
x rdf:type c .
x rd v .
x ro i .
x owl:sameAs i .
x owl:differentFrom i .
plus the definition triples of any description in these triples.
ONTOLOGIES:
A node x in G is an ontology if x is a URI reference and there is a triple
of the form
x rdf:type owl:Ontology .
The assertions about x are the triples of G of the following form
x rdf:type owl:Ontology .
x owl:imports y .
where y is a URI reference that is not a datatype property, an object
property, a class, or an individual.
OWL/DL GRAPHS:
An RDF graph is an OWL/DL graph if:
1/ The datatype properties of G, the object properties of G, the classes of
G, the individuals of G, and the ontologies of G are pairwise disjoint
and disjoint from the RDF, RDFS, and OWL vocabularies (except owl:Thing
and owl:Nothing).
2/ The definition triples of any description or datarange are disjoint from
the definition triples of other description or data range except for any
description or data range that is a node of some triple in the definition
triples of the description or data range. (Therefore the definition
triples of any description or datarange form a tree.)
3/ The triples of the graph can be disjointly partitioned such that each
partition is either
a/ the assertions about a datatype property, object property, class,
top-level description, individual, or ontology;
b/ (annotation) triples whose subject is a datatype property, an object
property, a class, or an individual and whose predicate is not a
datatype property, an object property, a class, an individual, nor
any URI reference from the RDF, RDFS, or OWL namespaces; or
c/ (ontology annotation) triples whose subject is an ontology and whose
predicate is not a datatype property, an object property, a class, an
individual, or any URI reference from the RDF, RDFS, or OWL
namespaces except the ontology annotation predicates.
Received on Tuesday, 31 December 2002 12:02:28 UTC