Re: Signalling entailment in queries

On Jul 20, 2010, at 4:28 PM, Sandro Hawke wrote:

>> SELECT * FROM NAMED <g1>
>> USING <http://www.w3.org/ns/entailment/RDFS>
>> WHERE { GRAPH <g1> { ?x rdfs:subClassOf ?y } }
>> 
>> or shorter with prefix with a query for the default graph:
>> 
>> PREFIX ent: <http://www.w3.org/ns/entailment/>
>> SELECT * USING ent:RDFS WHERE { ?x rdfs:subClassOf ?y }
> 
> Those are nice.   I wonder if we can come up with a common syntax for
> both the name-graph and default-graph case.    I suppose this could
> work:
> 
>        SELECT * FROM NAMED <g1>
>        WHERE { GRAPH <g1> USING ent:RDFS { ?x rdfs:subClassOf ?y } }

Was this meant to include something relating entailment to the default graph? Also, are you suggesting that this syntax would be required of all queries (including those using ent:Simple)? This seems to break backwards compatibility with any existing implementation that supports entailment, though since such support is based on SPARQL 1.0's extension mechanism, I'm not sure if that's as serious a problem as breaking compatibility with plain (simple entailment) implementations.

I've always considered it a feature that an endpoint could use entailment on the underlying data and the user would use the same query syntax. I'd be very hesitant about a syntax that requires the user to specify an entailment regime to use, especially if the system only supports one entailment regime and will throw an error if you request others. I don't want to be in the position of trying to submit a query by hand and having to guess the supported entailment repeatedly or having to download the service description and pick through it to figure out what entailment regime the endpoint supports.

.greg

Received on Tuesday, 20 July 2010 21:13:37 UTC