Requirement: negation

Given RDF nodes for people and the property "hasAccountant" I think
we've all agreed on the need to answer questions along the lines of "get
me everyone with an accountant" and "get me everyone whose accountant is
Fred".

I think there's also a requirement to query for people who *don't* have
accountants, or who don't have Fred as an accountant.

Those on the telecon noted that negation is a bit complex in a system
with incomplete information: what if somebody does have an accountant,
but you just haven't heard about it yet?

The thing is, such an assumption goes way beyond RDF semantics. RDF has
no way of declaring, whether implicitly or explicitly, that a particular
relationship does not exist, thus there is *never* any distinction
between "don't know" and "definitely not" within a particular RDF model.

In terms of a single RDF model, negation really is as simple as it
sounds. If a triple doesn't exist, then it doesn't exist, and that's the
end of it.

The proposed requirement is that queries be able to be phrased in terms
of non-existence of some triple(s).


It's a common misconception that OWL ontologies and such simply add new
triples to existing RDF models, but this case demonstrates that it's
abolutely not the case. OWL ontologies can declare the non-existence of
a relationship, which can't be encoded in an RDF model.

In practice, I see the true relationship between OWL and RDF as being
that each of the many many different interpretations of an OWL ontology
can be viewed as an RDF model. Some triples exist in every
interpretation (e.g. the explicit triples, and a whole lot of inferred
triples), some are present in only some interpretations (the realm of
"incomplete information"), and some are not present in any
interpretations (those which the ontology has inferred are
impossible/contradictory).

The query language developed at Network Inference makes this situation
explicit, and in the process makes negation a very sensible operation.
The non-existence of a triple is a perfectly fine thing to use as a
boolean query predicate, and the distinction between the "maybe"s
(incomplete information; triples in some models but not others) and the
"no"s (triples which are present in no interpretation) is revealed by
summarizing results over all possible models.

(There's obviously a lot more to say about our particular query
language, but I still think this working group shouldn't get too bogged
down in actual languages yet. All I wanted to illustrate was how
negation relates to RDF and OWL.)

Received on Thursday, 1 April 2004 12:22:43 UTC