- From: Bijan Parsia <bparsia@cs.man.ac.uk>
- Date: Wed, 6 May 2009 18:14:25 +0100
- To: SPARQL Working Group <public-rdf-dawg@w3.org>
There are some questions that pretty much all more or less expressive
entailment regimes have to answer to be a sane SPARQL entailment regime:
1) If you entail BNodes, what/how many BNodes do you return?
Example (Simple Entailment):
s p o entails s p _:g.
Should SELECT ?X WHERE {s p ?X} return both s and _:g? (No!)
Compare with:
s p o.
s p _:g.
Where we do *now* get 2 answers (and should).
Example (OWL):
s rdf:type [a owl:Restriction;
owl:onProperty :p;
owl:someValuesFrom owl:Thing]
entails s p _:g.
Should SELECT ?X WHERE {s p ?X} return anything? (I say no) But
s rdf:type [a owl:Restriction;
owl:onProperty :p;
owl:someValuesFrom owl:Thing].
s p _:g.
should return one answer.
2) If your data is contradictory, what should you return?
Typically, contractions entail everything, thus infinite answers.
Obvious solution is to return a fault (with no answers) and suggest
using a weaker entailment regime.
3) If your query contains "higher order" variables, what do you return?
Example (OWL):
?C rdfs:subClass ?D
Always has infinite answers, e.g., owl:Thing, UnionOf(owl:Thing,
owl:Thing), etc.
Solution (in SPARQL-OWL) restrict solution set to names of classes.
Pretty standard. RDFS gets this for free as it has no compound classes.
4) Controlling variable range (related to 1)
In OWL systems (such as Pellet, RacerPro, and KAON2) there are two
kinds of variables "distinguished" and "non-distinguished" which are
distinguishable by what sorts of bindings they allow: names only (and
maybe "static" bnodes) or arbitrary elements of the domain. (See
around slide 24 of <http://www.cs.man.ac.uk/~bparsia/2006/row-
tutorial/index.html>.) It's good to allow for both sorts since
distinguished variables are much cheaper to compute but non-
distinguished variables get you more answers.
5) I've lost it :)
There are different answers one could make at various points. For
example, with 2, you could try to return some answers, or the
contradictory bits. For 3, you could return solutions drawn from the
set of subconcepts of the ontology. However, I think in each case
there is an obvious, simple, implementable, compatible with current
sparql answer that is quite reasonable for most applications and is
"upwards compatible" with future elaborations.
I'll also note that the answers to these questions that I propose
make specing Simple, RDF, RDFS,
Cheers,
Bijan.
Received on Wednesday, 6 May 2009 17:10:36 UTC