information description of OWL/DL graphs

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