Re: putting entailment into SPARQL

On Tuesday 20 December 2005 15:48, Pat Hayes wrote:
> >On 13 Dec 2005, at 23:27, Pat Hayes wrote:
> >>Pattern Solution.
> >>A variable substitution is a substitution function on a subset of V
> >>to RDF-T. A pattern solution on the pattern V to the dataset G is a
> >>variable substitution whose domain includes all the variables in V,
> >>whose range is a subset of the set of RDF terms occurring in G, and
> >>which matches the dataset DS.
> >
> >Pat, by restricting the domain in this way you rule out RDF(S)
> >entailment, since there are terms which should be in any RDF(S)
> >graph, even if not explicitly mentioned (e.g. rdf:type or
> >rdf:Property).
>
> We  should discuss this. I intended to restrict in this way for all
> entailments. That is, I do not think that tautological queries should
> succeed against an empty graph, even when they are entailed. The
> point of querying is not primarily to test entailment, but to find
> out what is in the actual graph.

Well, this is true for simple entailment anyway. I think that when you use 
RDF(S) entailment, then you expect the following query to succeed:

ASK { rdf:type rdf:type rdf:Property }

otherwise you'd gather that the server is not really doing RDF entailment. If 
someone's interested in just the actual graph contents, then simple 
entailment is there. 

Note that, even with simple entailment you don't need to explicitly restrict 
the variable bindings to the active domain, because it is implicit in the 
definition of simple entailment. Restricting to the active domain is just 
necessary to prevent arbitrary bnodes from sneaking into the query answer.

> >My understanding is that this restriction should be enforced for bnodes
> > only.
>
> IMO that would be too narrow. But if you think the global restriction
> is too tight, can you show some examples?

If you accept that 

ASK { rdf:type rdf:type rdf:Property }

succeeds, then the fact that 'rdf:type' is not among the results of the query 

SELECT * { ?x rdf:type rdf:Property }

would be rather odd.


--sergio

Received on Wednesday, 21 December 2005 13:39:15 UTC