- From: Tim Berners-Lee <timbl@w3.org>
- Date: Thu, 25 Feb 2010 14:22:42 -0500
- To: Jakub Kotowski <jakubkotowski@gmx.net>
- Cc: jos.deroo@agfa.com, connolly@w3.org, public-cwm-talk@w3.org, public-cwm-talk-request@w3.org
Jakub,
When adding new facts to the same graph, as you suggest,
the same blank node is used:
$ echo ':bob :likes _:s1. {:bob :likes ?X} => {:fred :likes ?X}.' | cwm --think --quiet
@prefix : <#> .
@forAll :X.
@forSome :_g0 .
:bob :likes :_g0 .
:fred :likes :_g0 .
{
:bob :likes :X .
} <http://www.w3.org/2000/10/swap/log#implies> {:fred :likes :X .
} .
Tim
On 2010-02 -25, at 04:59, Jakub Kotowski wrote:
> Jos and Dan,
>
> So it means that rule bodies match graphs and rule heads create
> different graphs...? Why is it so? Rule heads could well "create"
> triples in the same graph that matched the body and then the blank-node
> wouldn't and shouldn't have to be renamed.
>
> I am wondering what happens if a rule body variable binds to a
> blank-node and rule head creates a new triple with this binding.
>
> For example:
>
> :bob :likes _:somebody_1.
> {bob likes ?X} => {fred likes ?X}
>
> is the blank node in the new fred likes ... triple different from
> _:somebody_1 too?
>
> Regards,
> Jakub
>
>
> jos.deroo@agfa.com schrieb:
>> It took us 10 years to realize that the scope of blank nodes is the
>> graph in which they occur :-)
>> The answer we get from euler is the same as you got from cwm:
>>
>> eye --nope varscope1.n3 --pass
>> #Processed by $Id: euler.yap 3310 2010-02-24 21:31:52Z josd $
>>
>> @prefix : <evarscope1#>.
>> @prefix var: <http://localhost/var#>.
>> @prefix e: <http://eulersharp.sourceforge.net/2003/03swap/log-rules#>.
>> @prefix r: <http://www.w3.org/2000/10/swap/reason#>.
>> @prefix n3: <http://www.w3.org/2004/06/rei#>.
>>
>> :bob :likes _:somebody_1.
>> :fred :likes _:somebody_1.
>> :alice :likes :trina.
>> :trina :likes _:sk0.
>>
>>
>> Kind regards,
>>
>> Jos De Roo | Agfa HealthCare
>> Senior Researcher | HE/Advanced Clinical Applications Research
>> T +32 3444 7618
>> http://www.agfa.com/w3c/jdroo/
>>
>> Quadrat NV, Kortrijksesteenweg 157, 9830 Sint-Martens-Latem, Belgium
>> http://www.agfa.com/healthcare
>>
>>
>> *Dan Connolly <connolly@w3.org>*
>> Sent by: public-cwm-talk-request@w3.org
>>
>> 02/23/2010 11:16 PM
>>
>>
>> To
>> public-cwm-talk@w3.org
>> cc
>>
>> Subject
>> scope of _:existentials in N3Logic?
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> I'm re-implementing N3Logic in scala... in particular, parsing
>> N3 syntax into Coherent formulas. I'm trying to figure
>> out how existential variables work in N3, and I'm surprised about
>> something.
>>
>> Consider:
>>
>> There's somebody that Bob likes and Fred likes.
>> And everybody that Alice likes also likes this somebody.
>> Also, Alice likes Trina.
>>
>> Does Trina like this somebody?
>>
>> Of course Trina does, but when I try to write the problem
>> down in N3, cwm doesn't handle it as I'd expect. cwm concludes
>> that Trina likes something, but not that Trina likes
>> the same somebody that Bob and Fred like.
>>
>> $ cat ...varscope1.n3
>> @prefix : <evarscope1#>.
>> @keywords is, of, a.
>>
>> bob likes _:somebody.
>> fred likes _:somebody.
>> { alice likes ?X } => { ?X likes _:somebody }.
>> alice likes trina.
>>
>> $ cwm.py ...varscope1.n3 --think
>> #Processed by Id: cwm.py,v 1.197 2007/12/13 15:38:39 syosi Exp
>> # using base
>> file:///home/connolly/projects/rdfsem/src/test/resources/varscope1.n3
>>
>> # Notation3 generation by
>> # notation3.py,v 1.200 2007/12/11 21:18:08 syosi Exp
>>
>> # Base was:
>> file:///home/connolly/projects/rdfsem/src/test/resources/varscope1.n3
>> @prefix : <evarscope1#> .
>> @prefix va: <#> .
>>
>> @forAll va:X.
>> @forSome va:_g0 .
>>
>> :alice :likes :trina .
>>
>> :bob :likes va:_g0 .
>>
>> :fred :likes va:_g0 .
>>
>> :trina :likes [
>> ] .
>> {
>> :alice :likes va:X .
>>
>> } <http://www.w3.org/2000/10/swap/log#implies>
>> {va:X :likes [
>> ] .
>> } .
>>
>> #ENDS
>>
>> The surprise is bad news, but the good news is that cwm's
>> way of reading this formula does fit inside coherent logic,
>> which makes my coding goal straightforward...
>>
>> --
>> Dan Connolly, W3C http://www.w3.org/People/Connolly/
>> gpg D3C2 887B 0F92 6005 C541 0875 0F91 96DE 6E52 C29E
>>
>>
>>
>>
>
>
>
Received on Thursday, 25 February 2010 19:22:46 UTC