DTTF: darkest africa

150 years ago, Darkest Africa was an evil place
filled with cannibals who sacrificed their children 
to devils.

Or perhaps, it was merely that part of the continent
that had not been mapped by white europeans.

I suggest that we should identify the dark graphs
of web ont. These being the graphs that we treat
as of undefined semantics rather than consistent
or inconsistent. These being marked on the map
as unmapped.

Possible text would be:

[[[
RDF graphs are assigned a truth value true or
false depending on whether they have any interpretations
according to a model theory.
RDFS Model Theory assigns all graphs true.
OWL Model theory assigns certain RDF graphs the value
false because they are self-contradictory in OWL.

There are some graphs which cause particular problems
to the current OWL model theory, and this version
of OWL leaves their interpretation as undefined.
These graphs are known as 'dark graphs'.
More precisely, an implementation should issue a
warning message indicating that the semantics of
such graphs is undefined, and that there wil be
interoperability problems. Having done so, an
implementation may treat a dark graph as 
having entailments of the implementation's
chosing. The simplest behaviour is to treat the 
graph as self-contradictory.

Dark graphs are identified because either they
directly contain a dark triple, or because they 
RDFS entail a dark triple.

Dark triples are triples that match any of the 
following (using * as a wildcard).

(owl:* does not match owl:Thing)

* rdfs:subClassOf owl:* .
* owl:sameClassAs owl:* .
* rdfs:subPropertyOf owl:* .
* rdfs:subPropertyOf rdf:type .
* rdfs:subPropertyOf rdfs:subPropertyOf .
* rdfs:subPropertyOf rdfs:subClassOf .
* rdfs:subPropertyOf rdfs:range .
* rdfs:subPropertyOf rdfs:domain .
* owl:samePropertyAs owl:* .
* owl:samePropertyAs rdf:type .
* owl:samePropertyAs rdfs:subPropertyOf .
* owl:samePropertyAs rdfs:subClassOf .
* owl:samePropertyAs rdfs:range .
* owl:samePropertyAs rdfs:domain .
* owl:onProperty rdf:type .
* owl:onProperty rdfs:subPropertyOf .
* owl:onProperty rdfs:subClassOf .
* owl:onProperty rdfs:domain .
* owl:onProperty rdfs:range .
* owl:onProperty owl:* .
* owl:toClass owl:* .
* owl:toClass rdf:Property .
* owl:hasClass owl:* .
* owl:hasClass rdf:Property .
* owl:sameIndividualAs owl:nil .
* owl:equivalentTo owl:* .
* owl:equivalentTo owl:* .
* owl:equivalentTo rdf:type .
* owl:equivalentTo rdfs:subPropertyOf .
* owl:equivalentTo rdfs:subClassOf .
* owl:equivalentTo rdfs:range .
* owl:equivalentTo rdfs:domain .
* owl:equivalentTo owl:nil .


These either allow an ontology to attempt to
describe itself or try and extend the OWL language.
]]]

I suspect my list is incomplete, the rules for
completing it are:
- when in doubt add the triple
- the only reason for not adding the triple is
  + it seems genuinely useful
and
  + it expresses something that can be expressed
    in mainstream description logic.
I am assuming that the List vocabulary is in the
owl namespace. Otherwise it would need to be
explicitly treated in the black list. 


Of course, we could address the RDFS layering issue
simply by deciding that all the dark graphs identified
above are contradictions. Then we would respect all
their RDFS entailments (trivially). I wouldn't like
that much but could live with it, and would prefer it
to making RDF Model Theory non-normative.

If we wanted to stress conformance with RDFS then
we would have slightly different text

[[[
implementation may treat a dark graph as 
having its RDFS entailments and any others
of the implementation's chosing. The simplest
implementation is to treat a dark graph as
self-contradictory.

]]]

(I doubt there would be group consensus for that).

If we wished to stress the dangers of paradox we
would have text

[[[
implementors should note that at least some
dark graphs appear self-contradictory in
interesting ways e.g.
  testA, testB, testC
]]]


Jeremy

Received on Thursday, 30 May 2002 05:31:16 UTC