Dark triples are inherently nonmonotonic.
The dark triples idea is to provide a way to indicate that some triples
have their RDF meaning cancelled when read as OWL. Since the only point
of doing this is to allow OWL to be a same-syntax extension of RDF, we will
assume that this indication of darkness is itself an RDF statement, though
of course its OWL *meaning*
will go beyond the RDF MT itself.
The most recent proposal was to 'darken' a uriref simply by asserting a
triple of the form
<ex:aaa> <rdf:type> <owl:Dark>
(say that this triple 'darkens' the ex:aaa) and assume that this means that
any triple using the ex:aaa term is not required to have the same meaning
in OWL as it has in RDF, and to assume that
<owl:Dark> <rdf:type> <owl:Dark>
but the exact details do not matter to the point being made here.
Now, since this darkening is expressible in RDF, one can imagine a situation
where an RDF graph G contains some vocabulary and another RDF graph GD darkens
that vocabulary. The result of merging the two graphs then would also darken
the vocabulary, even in the first graph, so that any conclusions made in
OWL from the first graph that depended on the RDF meaning of that vocabulary
would become invisible, and hence no longer OWL-entailed by, the merged
graph. This is a classical non-monotonic situation: something is entailed
by A but is no longer entailed (A and B) for some B.
(There are many examples of nonmonotonic inference from AI using a construction
due to McCarthy called the ab predicate. Ab stands for 'abnormal' and the
idea is that one is allowed to infer that things will happen normally (when
planning actions) until the predictions go wrong, and then one infers that
something was abnormal. (This was one way to deal with the notorious frame
problem.) If the 'not-abnormal' assumptions are made explicit the reasoning
is monotonic, but the idea is to not make them explicit, but to non-monotonically
assume that everything is normal until it goes wrong, then change one's
mind. Obviously it would be easy to map this kind of reasoning into the
dark-triples framework by darkening all the 'ab' vocabulary. Then the planning
inference would be done in OWL but one would have to revert to RDF when
things went wrong, and the conclusions would differ in each case. One can
do similar tricks to recreate the classical 'Tweety' examples, by darkening
the 'unless it is a penguin' exception case statements.
One might argue that it should be impossible to infer any darkening triple
in OWL, since part of the convention is that <owl:Dark> is itself
darkened, so any antecendents which involve it will not be visible to OWL.
This response is only partly satisfactory, however. The darkened vocabulary
is not *invisible*
to OWL;it simply no longer has its RDFS
meaning; and since owl:Dark does obviously have a meaning in OWL, albeit
an unusual one, there is no a priori reason why it should not take part
in OWL inferences. Moreover, if we ever make "imports" a first class language
construct, which can get inferred, then an OWL ontology might import an
ontology which darkens part of its own vocabulary.
All this applies pretty much unchanged whether the darking is done in RDF
or in OWL; the only difference is which language gets to be nonmonotonic.
The only way to ensure a modicum of global monotonicity would be to strictly
restrain the ways that the darkening machinery can be deployed. For example,
we might require that all OWL graphs must darken certain parts of the RDFS/OWl
vocabulary, and no other parts. This would produce such a rigid convention
that it hardly seems worth incorporating the darkening process into the
triples-store at all, however; it could be simply built into the OWL model
theory as a global OWL assumption.
R. V. Guha