I was thinking a bit more about the problem of the negative guards and
the static rule set we wish to provide for OWL RL.
We established that without negative guards, we cannot provide a finite
static ruleset, because the rules would depend on the literals actually
being used in the ontology.
Now, a property of the OWL 2 language is that there is a strict
separation between the object and data domains, both in the syntax and
the semantics. For example, it is not possible to assert that an IRI is
a member of a datatype, nor is it possible to assert equality between
and IRI and a concrete data value.
Most importantly, the values of object properties can only be IRIs and
the values of data properties can only be literals. And, in OWL 2 RL we
only need to take individuals into account that are explicitly
represented using IRI or literals.
Therefore, a statement like t[rdf:type -> DT], where DT is a datatype
can never be derived if t is not a literal. Consequently, we only need
to do type checking of the form at the bottom of section 4.4.2 of [1]
for literal values.
So, I believe that a restricted form kind of negative guard, namely one
that is restricted to the domain of literals (e.g.,
isNonIntegerLiteral), is sufficient for this static ruleset.
Best, Jos
[1] http://www.w3.org/2005/rules/wiki/OWLRL
--
Jos de Bruijn debruijn@inf.unibz.it
+390471016224 http://www.debruijn.net/
----------------------------------------------
No one who cannot rejoice in the discovery of
his own mistakes deserves to be called a
scholar.
- Donald Foster