- 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