- From: Bijan Parsia <bparsia@cs.man.ac.uk>
- Date: Mon, 8 Sep 2008 19:53:32 +0100
- To: W3C OWL Working Group <public-owl-wg@w3.org>
On Sep 8, 2008, at 7:25 PM, Ivan Herman wrote:
> Sandro Hawke wrote:
>>
>> 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.
>
> But the down side is that we, sort of, require to modify all relevant
> SPARQL implementations to return this information.
That's going to have to happen anyway to handle owl semantics. Shrug.
Gotta get working on the SPARQL/OWL spec :)
But, really, it's not that hard a mod, yes? All you need to do is add
the relevant triple (for the dumb version). It wouldn't require more
than a single line on load.
> This also means that
> one is supposed to use SPARQL in a particular way when using such a
> store.
If you care.
> I am not sure this is realistic or worth pushing...
[snip]
> Unless we go along with the extra stuff above, I'm still not fully
> sure
> what this whole thing means for the implementation pattern where a,
> say,
> forward chaining engine like Oracle's expands the graph (that include
> the ontology) and then SPARQL queries are issued on the result. After
> all, SPARQL queries do not usually return True or False, they either
> bindings to patterns or they do not return any binding. My rough
> reading
> is that applications should interpret an empty binding return as
> 'unknown', and that is it; the underlying OWL-RL implementation
> does not
> necessarily have anything else to do.
Yes. Think of it this way, you can convert a sparql query into an
entailment check (via construct) or just by doing an ask query on a
ground BGP. If you query an implementation which is incomplete for
atomic subsumption with the following query:
ASK { :C rdfs:subClassOf :D }
then, obviously, you cannot interpret no answers as anything other
than unknown. But this isn't surprising, yes? Of course, the
application *can* treat the no answer as a no, but it does so at its
own risk.
I can imagine an extension that allowed a reasoner to provide extra
information, e.g., that this no answer is really a no.
> (I know implementation may
> implement more rules than those listed in our document, but that is
> another issue.)
>
> Is that correct? It does not feel 100% right, but I cannot put my
> finger
> on it...
Cheers,
Bijan.
Received on Monday, 8 September 2008 18:54:10 UTC