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 >> >
This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 1 October 2009 14:42:08 GMT