Dan Connolly | 17 Feb 2011 06:31

equality reasoning with functions and existentials?

I discovered powerloom the other day via a tweet
  http://twitter.com/danja/status/37660228791042048

It looks pretty nifty.

I'm trying to tell it:

 state-code is unambiguous (i.e. its inverse is a function).
 There's a place with state-code "KS" and population 28000.
 There's also a place with state-code "KS" and state-bird western-meadowlark.

and then ask it:
 Is there a place with population 28000 and state-bird western-meadowlark?

The attached is my attempt. It's *almost* working, but not quite. I
don't understand why not.

Clues, please, anyone?

--
Dan Connolly
http://www.madmode.com/
Attachment (,same-state.plm): application/octet-stream, 1507 bytes
_______________________________________________
powerloom-forum mailing list
powerloom-forum <at> isi.edu
http://mailman.isi.edu/mailman/listinfo/powerloom-forum
(Continue reading)

Hans Chalupsky | 17 Feb 2011 21:26
Picon
Favicon

Re: equality reasoning with functions and existentials?

The problem is that PowerLoom's just-in-time forward inference isn't complete
enough here to pick up all that's required, and you have to run forward rules
explicitly.  When you define an "inverse" for a relation, the required rules
are created by forward inference which isn't triggered by the JIT in this
case.  As an aside, inverse relations in a logic system like PowerLoom are
redundant and generally a bad idea for performance reasons.  Also, if you
declare an inverse on one relation, you shouldn't also do it on the inverse,
since it will generate redundant rules.  I know, PowerLoom should adivse users
on that, but currently it doesn't :-)

Anyway, after you do a "run-forward-rules" in the trace below, you get the
answer you are looking for.

Hans

STELLA(99): (clear-module pl-user)
:VOID
STELLA(100): (deffunction the (?i) :-> (?x Thing))
|f|THE
STELLA(101): (defrelation state-code (?s ?c)
  :axioms (inverse code-state state-code))
|r|STATE-CODE
STELLA(102): (deffunction code-state (?c ?p)
  :axioms (inverse state-code code-state))   ;; this is redundant and should be avoided
|f|CODE-STATE
STELLA(103): (defrelation state-bird (?place ?birdtype))
|r|STATE-BIRD
STELLA(104): (defrelation population (?place ?pop))
|r|POPULATION
STELLA(105): (assert (exists (?x) (and (state-code (the ?x) "KS")
(Continue reading)

Dan Connolly | 19 Feb 2011 05:01

is the OWL/RDF support available at all? SQL/RDB?

I didn't see it in the 4.x beta release.
Did I just miss it?

Am I likely to have better luck in the CVS snapshot?

The SQL interface is tantalizing, too. I look forward to trying it out.

--

-- 
Dan Connolly
http://www.madmode.com/
Pierre Grenon | 22 Feb 2011 21:52
Picon

Setting inference depth

Hello,

apologies if this is documented somewhere and has escaped my
attention, I'm wondering how to set inference depth when querying, in
particular using command line. I find myself a bit frustrated by depth
cutoff, if I understand what that is correctly, when backward chaining
and would be willing to wait a bit longer in exchange of a few extra
results..

many thanks in advance,
pierre
Hans Chalupsky | 25 Feb 2011 22:44
Picon
Favicon

Re: is the OWL/RDF support available at all? SQL/RDB?

The OWL/RDF support hasn't been released yet.  I recently extended an initial
version created by Tom Russ and used that fairly extensively in an application
that required semantic web support.  The code is in fairly good shape but
needs some refactoring, cleanup and extension before it can be released.  As
always, this last step takes more time than one would hope.  If you want to
experiment with that drop me a line and we can iterate on whether what we have
would support your needs and how to get that to you and eventually the larger
community.

With respect to SQL support, the current 4.0 beta version has all the
PowerLoom support necessary to access a MySQL or Oracle database via JDBC.
All you need is to get a JDBC driver library, copy it into the native/java/lib
directory and follow the instructions in this forum post:

http://mailman.isi.edu/pipermail/powerloom-forum/2006/000369.html

Hans

>>>>> Dan Connolly <dckc <at> midwestwebsense.com> writes:

> I didn't see it in the 4.x beta release.
> Did I just miss it?

> Am I likely to have better luck in the CVS snapshot?

> The SQL interface is tantalizing, too. I look forward to trying it out.

> -- 
> Dan Connolly
> http://www.madmode.com/
(Continue reading)

Hans Chalupsky | 25 Feb 2011 22:48
Picon
Favicon

Re: Setting inference depth

You can set the maximum inference depth via the :maximum-depth option to "ask"
or "retrieve".  For example,

(retrieve all (needs-lots-of-rules ?x ?y)
              :maximum-depth 120)

The default depth setting is 25.  And yes, it looks like this option is
undocumented, sorry.  We'll add that to the documentation for "ask" and
"retrieve" for the next release.

Hans

>>>>> Pierre Grenon <pierregrenon <at> gmail.com> writes:

> Hello,
> apologies if this is documented somewhere and has escaped my
> attention, I'm wondering how to set inference depth when querying, in
> particular using command line. I find myself a bit frustrated by depth
> cutoff, if I understand what that is correctly, when backward chaining
> and would be willing to wait a bit longer in exchange of a few extra
> results..

> many thanks in advance,
> pierre
> _______________________________________________
> powerloom-forum mailing list
> powerloom-forum <at> isi.edu
> http://mailman.isi.edu/mailman/listinfo/powerloom-forum

Gmane