Re: Test cases for blank node label scope - and a case for discussion

>Attached are some tests (positive and negative) for reuse of blank 
>nodes labels only within BGPs.
>
>There is one case to point out: syn-bad-39.rq
>
>{
>    _:a ?p ?v .  FILTER(true) . <x> ?q _:a
>}
>
>1/ By the principle that FILTERs apply to the whole group,

Didnt we decide this, some time ago? That is, groups with filters are 
equivalent to the same group with all the filters at the end of the 
group. Which would rule out your 2/ interpretation, below.

Pat

>  it could be taken as like:
>   { _:a ?p ?v . <x> ?q _:a . FILTER(true) }
>which is one BGP.
>
>[Filter true
>   [BGP
>     _:b0 ?p ?v
>     <x> ?q _:b0
>   ]]
>
>2/ By the principle that BGPs are adjacent triple patterns, it has 
>appearance as if it were two BGPs like:
>
>   { BGP( _:a ?p ?v . ) FILTER(true) BGP( [] ?q _:a . ) }
>
>so it would be:
>[Filter true
>   [Join
>     [BGP _:a ?p ?v]
>     [BGP <x> ?q _:a]
>   ]]
>which is illegal (_:a spans BGPs).
>
>Blank node labels can't appear in FILTERs so this also makes sense 
>by saying FILTERs end the blank node label scope.
>
>
>
>Just at the moment, I think I prefer (2), emphasizing the immediate 
>appearance, and the fact blank node labels can't appear in filters.
>
>(This example, either way round, will affect optimizations moving 
>the filter around if BGPs are sent to an external systems like a DL 
>reasoner.)
>
>	Andy
>
>
>PREFIX : <http://example.org/>
>SELECT *
>WHERE
>{
>   _:a ?p ?v . { _:a ?q 1 }
>}
>PREFIX : <http://example.org/>
>SELECT *
>WHERE
>{
>   { _:a ?p ?v . } _:a ?q 1 }
>}
>PREFIX : <http://example.org/>
>SELECT *
>WHERE
>{
>   { _:a ?p ?v . } UNION { _:a ?q 1 } }
>}
>PREFIX : <http://example.org/>
>SELECT *
>WHERE
>{
>   { _:a ?p ?v . } _:a ?q 1 }
>}
>PREFIX : <http://example.org/>
>SELECT *
>WHERE
>{
>   _:a ?p ?v . OPTIONAL {_:a ?q 1 }
>}
>PREFIX : <http://example.org/>
>SELECT *
>WHERE
>{
>   _:a ?p ?v .  _:a ?q 1
>}
>PREFIX : <http://example.org/>
>SELECT *
>WHERE
>{
>   { _:a ?p ?v .  _:a ?q _:a } UNION { _:b ?q _:c }
>}
>PREFIX : <http://example.org/>
>SELECT *
>WHERE
>{
>   _:a ?p ?v .  FILTER(true) . [] ?q _:a
>}


-- 
---------------------------------------------------------------------
IHMC		(850)434 8903 or (650)494 3973   home
40 South Alcaniz St.	(850)202 4416   office
Pensacola			(850)202 4440   fax
FL 32502			(850)291 0667    cell
phayesAT-SIGNihmc.us       http://www.ihmc.us/users/phayes

Received on Monday, 29 January 2007 16:06:32 UTC