- From: Matt Perry <matthew.perry@oracle.com>
- Date: Tue, 05 Jan 2010 08:39:24 -0500
- To: Andy Seaborne <andy.seaborne@talis.com>
- CC: W3C SPARQL Working Group <public-rdf-dawg@w3.org>, steve.harris@garlik.com, "Das,Souripriya" <souripriya.das@oracle.com>
Hi,
I wanted to get one clarification. See the comment below.
Thanks,
Matt
Andy Seaborne wrote:
>
>
> On 04/01/2010 9:50 PM, Matt Perry wrote:
>> Hi,
>>
>> Overall, the draft looks very good. I have some detailed comments below.
>>
>> Thanks,
>> Matt
>>
>> ** General Questions:
>>
>> 1) What is the expected behavior for GRAPH queries inside GRAPH queries
>> (this nesting could occur in a lot of situations)?
>> I couldn't find a discussion of this in the docs.
>>
>> For example,
>> { GRAPH ?g1 { ?a :p1 ?b GRAPH ?g2 { ?c :p2 ?d } }
>>
>> Does triple ?c :p2 ?d have to belong to both g1 and g2, or only g2, etc.
>
> Just graph ?g2.
>
> GRAPH changes the "active graph" (the one matched against) and there
> is only one active graph at any one point in the query.
>
> See "Definition: Evaluation of a Graph Pattern"
> http://www.w3.org/TR/rdf-sparql-query/#defn_evalGraph
>
>> ** Section 8 Negation:
>>
>> 1) Why have different variable scope for FILTER and non-FILTER cases for
>> EXISTS and NOT EXISTS? What would we lose by having the non-filter form
>> apply to the whole group in which the EXISTS / NOT EXISTS appears
>> instead of only variables defined earlier in the pattern? I'm not sure
>> why we need this extra complication.
>
> Because order of patterns is more important for negation. In a BGP,
> the order of matching does not matter as to the final answers. But
> with negation, if a variable name appears in the negated pattern and
> also in the pattern outside the negation, order does matter.
>
> The use in FILTER allows combining (with || because && does not add
> anything - FILTERS in evolving && can be split up ) with other filter
> tests e.g.
>
> FILTER ( EXISTS{:x :age "validated"} || ?age >= 21 )
>
Could we control the ordering with extra {} and just have EXISTS / NOT
EXISTS apply to the whole pattern?
Would
{ ?a :p1 ?b
NOT EXISTS ( ?a :p2 ?c )
?a :p3 ?c }
be equivalent to
{ { ?a :p1 ?b
NOT EXISTS ( ?a :p2 ?c ) }
{ ?a :p3 ?c } }
>> ** Section 13.1.2 SELECT expressions:
>>
>> 1) As far as SPARQL grammar is concerned, is "Expression" here the same
>> as "Expression" in FILTER and ORDER BY? If so, that answers the next
>> question.
>
> Yes.
>
>> 1) Are constants allowed in SELECT expressions (e.g. SELECT ?s
>> (<http://myProp> as ?p) ?o WHERE ... )? If so, it may be worth adding an
>> example with a constant.
>
> Yes.
>
> (I've made a note on my ToDo list to put in a constant example if when
> we revise the examples, it makes sense)
>
>>
>> ** Minor Comments:
>>
>> 1) In "Status of this Document": "In this publication,
>> new content is gathered together for ** easy => ease ** of review of
>> these new features."
>
> Fixed.
>
> Thanks for the comments,
> Andy
>
Received on Tuesday, 5 January 2010 13:42:32 UTC