- From: Seaborne, Andy <andy.seaborne@hp.com>
- Date: Mon, 29 Jan 2007 14:56:09 +0000
- To: 'RDF Data Access Working Group' <public-rdf-dawg@w3.org>
- Message-ID: <45BE0B09.4070606@hp.com>
It seems some people received this with all the attachments in-lined, which
looses the names, which indicate good/bad tests.
Let's try again - zip file attached.
Andy
Seaborne, Andy wrote:
> In the mail archive the attachments have been inlined.
>
> syn-bad-39.rq is
>
> PREFIX : <http://example.org/>
> SELECT *
> WHERE
> {
> _:a ?p ?v . FILTER(true) . [] ?q _:a
> }
>
>
> Seaborne, Andy wrote:
>> 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, 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
>>
>
Attachments
- application/x-zip-compressed attachment: syn-bnode-label-scope.zip
Received on Monday, 29 January 2007 14:56:35 UTC