W3C home > Mailing lists > Public > public-cwm-talk@w3.org > January to March 2010

scope of _:existentials in N3Logic?

From: Dan Connolly <connolly@w3.org>
Date: Tue, 23 Feb 2010 16:16:15 -0600
To: public-cwm-talk@w3.org
Message-ID: <1266963375.30230.125.camel@pav.lan>
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


  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
#  Notation3 generation by
#       notation3.py,v 1.200 2007/12/11 21:18:08 syosi Exp

#   Base was:
     @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  [
             ] .
        } .

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 Tuesday, 23 February 2010 22:16:18 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:01:06 UTC