- From: Seaborne, Andy <andy.seaborne@hp.com>
- Date: Wed, 02 May 2007 15:22:08 +0100
- To: Dan Connolly <connolly@w3.org>, Sandro Hawke <sandro@w3.org>
- CC: timbl@w3.org, public-cwm-talk@w3.org
A SPARQL CONSTRUCT behaves like cwm - the label scope is the individual
template instantiation. This is by design.
Andy
Dan Connolly wrote:
> On Mon, 2007-04-30 at 20:17 -0400, Sandro Hawke wrote:
>> Here's a test (motivated by a current discussion in RIF-WG):
>>
>> <a> <b> <c>.
>> <a> <b> <d>.
>> { <a> <b> ?x } => { _:x <b_inferred> ?x. }.
>> _:x <b_given> <c>.
>> _:x <b_given> <d>.
>>
>> The (relevant) output I get from cwm is:
>>
>> [ <b_given> <c>, <d> ].
>> [ <b_inferred> <c> ].
>> [ <b_inferred> <d> ].
>>
>> which makes it clear that the "_:x" inside the rule conclusion does not
>> name the same thing as the other "_:x"'s in the file do. In other
>> words, b-nodes in rule conclusions get an implicit existential
>> quantifier inserted. They don't just use the implicit one around the
>> file.
>>
>> Two questions: (1) is that as it should be?
>
> yes, I'm pretty sure that's by design.
> I'm pretty sure we captured that design decision in tests.
>
>> (2) how strongly do you feel that way? (would it
>> be reasonable to do it the other way, perhaps?)
>
> It might be reasonable to say "don't do that" in response
> to using _:x in different scopes, but I don't
> think it's reasonable to use the syntax above to mean something else.
>
--
Hewlett-Packard Limited
Registered Office: Cain Road, Bracknell, Berks RG12 1HN
Registered No: 690597 England
Received on Wednesday, 2 May 2007 14:22:22 UTC