- From: Sandro Hawke <sandro@w3.org>
- Date: Wed, 03 Sep 2008 20:49:36 -0400
- To: Ian Horrocks <ian.horrocks@comlab.ox.ac.uk>
- cc: W3C OWL Working Group <public-owl-wg@w3.org>
> The idea we came up with on the teleconf was to say that
> implementations MUST issue a warning when they can't be sure about a
> False answer, and to add that implementations not wanting to check
> the conditions could simply return Unknown instead of False. On
> closer examination, this doesn't make total sense and/or seems
> unnecessarily complicated.
>
> In the first place, it is strange to say that implementations MUST do
> something, and then say that they can do something else instead. In
> the second place, it doesn't seem to make much sense to return False
> with a warning that this answer can't be trusted -- surely it would
> be much more sensible to return Unknown under these circumstances.
> This would allow the conformance conditions on OWL RL checkers to be
> greatly simplified, i.e., to say that they can only return False when
> the entailment doesn't hold (just like for the other checkers). We
> could then add a note for implementers pointing out that Theorem 1
> tells them just when it is safe for rule-based implementations to
> return False (when the conditions are satisfied and the entailment
> isn't found by the rules). The note can also say that if they don't
> want to implement the check they can simply avoid returning False.
>
> To make this clearer/more concrete, I implemented this in the
> Conformance document [1].
...
> [1] http://www.w3.org/2007/OWL/wiki/Conformance
I agree with all this. But I see there's no longer a difference between
OWL Full and OWL RL entailment checking. Hmmm.
Maybe the difference is that OWL 2 RL entailment checkers SHOULD return
True if FO(O1) <union> R entails FO(O2)? I guess that's what I'd
expect them to do.
> Still to do: add something about what this would mean in the case of
> query answering, to the effect that a warning MAY/SHOULD/MUST be
> issued if "Unknown" would be the answer to any relevant entailment
> problem.
To phrase it more positively, maybe:
Systems which do query answering using OWL SHOULD return an
indication of whether the performed OWL reasoning was complete or
incomplete.
Is this practical? I'm not sure.
I personally like query interfaces to provide this information, but I
realize they often don't. (It comes up without inference when you use
something like a LIMIT clause.)
In SPARQL (which doesn't provide this information), we can do an in-band
query for reasoner metadata like this:
SELECT ?completeness [...your vars...] {
?g1 { [...your pattern...] }
{ ?g1 owlq:completenessLevel ?completeness }
}
I think this works (thanks to Eric Prud'hommeaux for working it out with
me), but it would require standardizing one RDF predicate (written here
as owlq:completenessLevel). It's kind of an outlier -- it's certainly
not part of the OWL language -- but we could be defined in some normative
appendix.
-- Sandro
Received on Thursday, 4 September 2008 00:51:24 UTC