W3C home > Mailing lists > Public > public-rif-comments@w3.org > August 2009

initial RIF experiences

From: <jos.deroo@agfa.com>
Date: Tue, 11 Aug 2009 22:10:42 +0200
To: public-rif-comments@w3.org
Message-ID: <OF20A2829A.CAE01F3E-ONC125760F.0067FEEC-C125760F.006ED7B1@agfa.com>
A few days ago I started making an initial rif-dtb plugin
for Eye http://eulersharp.sourceforge.net/README#eye
plus some initial test cases at
http://eulersharp.sourceforge.net/2007/07test/rifP.n3 
and the actual N3 formulation of RIF builtins is following 

(args) func:xxx value. 
(args) pred:xxx true.

The test result of 

eye --nope --plugin 
http://eulersharp.sourceforge.net/2006/02swap/rif-plugin.yap 
http://eulersharp.sourceforge.net/2007/07test/rifP.n3 --query 
http://eulersharp.sourceforge.net/2007/07test/rifQ.n3 

is looking like 

#Processed by $Id: euler.yap 3080 2009-08-06 12:40:36Z josd $ 

@prefix func: <http://www.w3.org/2007/rif-builtin-function#>. 
@prefix pred: <http://www.w3.org/2007/rif-builtin-predicate#>. 
@prefix e: <http://eulersharp.sourceforge.net/2003/03swap/log-rules#>. 
@prefix : <http://eulersharp.sourceforge.net/2007/07test#>. 
@prefix var: <http://localhost/var#>. 
@prefix r: <http://www.w3.org/2000/10/swap/reason#>. 
@prefix n3: <http://www.w3.org/2004/06/rei#>. 

{((0 1 2) 3) func:append (0 1 2 3)} a :PASS. 
{((0 1 2) 3 4) func:append (0 1 2 3 4)} a :PASS. 
{((1 1) (1) (1) ((1))) func:append (1 1 (1) (1) ((1)))} a :PASS. 
{(() 1) func:append (1)} a :PASS. 
{(1 1) func:numeric-add 2} a :PASS. 
{(5 2) func:numeric-divide 2.5} a :PASS. 
{(5 2) func:numeric-integer-divide 2} a :PASS. 
{(10 3) func:numeric-mod 1} a :PASS. 
{(6 -2) func:numeric-mod 0} a :PASS. 
{(4.5 1.2) func:numeric-mod 0.9} a :PASS. 
{(123.0 6.0) func:numeric-mod 3.0} a :PASS. 
{(5 2) func:numeric-multiply 10} a :PASS. 
{(5 2) func:numeric-subtract 3} a :PASS. 
{(1 1.0) pred:numeric-equal true} a :PASS. 
{(1.0 0) pred:numeric-greater-than true} a :PASS. 
{(1.0 1) pred:numeric-greater-than-or-equal true} a :PASS. 
{(2.0 3) pred:numeric-less-than true} a :PASS. 
{(3 5.0) pred:numeric-less-than-or-equal true} a :PASS. 
{(1 1.01) pred:numeric-not-equal true} a :PASS. 
{("""abracadabra""" """bra""") pred:matches true} a :PASS. 
{("""abracadabra""" """^a.*a$""") pred:matches true} a :PASS. 


#ENDS 8 msec 


and we are really looking forward to Chimezie's Fuxi's RIF/XML->N3
to test RIF-BLD and later RIF-FOL (Eye uses First-order coherent logic
and every FOL theory has a conservative extension that is equivalent to a
Coherent Logic theory, a result that goes back to Skolem).

Harold provided us a test where the extrapolated case of 30 million rules
would take Eye (using Yap) 7 minutes, EyeS (using SWI-prolog) 11 years
and EyeJ (using JLog) 77 years.
The demand driven indexing of Yap is the best I have seen in years!

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
Received on Tuesday, 11 August 2009 20:11:27 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 11 August 2009 20:11:27 GMT