- 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