- 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