Re: scope of _:existentials in N3Logic?

Hi Yves,

Let me first say that I really like your Henry work esp. the N3 DCG.
Also thanks to Graham for sharing his Swish experience.

As you say, in Euler we can use Skolem functions via the e:tuple builtin
but in the latest Euler yap engine we don't need the Skolem functions
anymore, we use a "Skolem machine" and "labelvars" instead,
see the predicates sem/1, sem/4 and labelvars/4 in the code at
http://eulersharp.sourceforge.net/2006/02swap/euler.yap

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



Yves Raimond <yves.raimond@gmail.com> 
03/01/2010 10:57 AM

To
Graham Klyne <GK-lists@ninebynine.org>
cc
Jos De Roo/AMDUS/AGFA@AGFA, connolly@w3.org, public-cwm-talk@w3.org, 
public-cwm-talk-request@w3.org
Subject
Re: scope of _:existentials in N3Logic?







Hello!

FWIW, I ran into some similar problems when playing with Swish and 
inference rules - handling bnodes got rather messy.  Eventually I figured 
(but didn't get round to implementing) that I could convert to some kind 
of unique generated id on loading the data, and use similar when 
introducing existentials in inferences, treat these like any other URI for 
inference purposes, than convert back to bnodes when saving the data.


When implementing the N3 reasoning part of Henry [1], I found that 
skolemisation [2] was critical to make bnode handling relatively simple 
and efficient - it is also fairly easy to implement. I believe Euler is 
also using it.

Cheers,
y

[1] http://code.google.com/p/km-rdf/
[2] http://en.wikipedia.org/wiki/Skolem_normal_form

Received on Monday, 1 March 2010 11:01:37 UTC