Re: rdf list support

Quoting jos.deroo@agfa.com:

> 
> given
> 
> ### test-rules.n3
> @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. 
> @prefix : <test#>.
> 
> :Z :allOf (:A :B :C).
> 
> {?L rdf:first ?I} => {?L :item ?I}.
> {?L rdf:rest ?R. ?R :item ?I} => {?L :item ?I}.
> ###
> 

This is NOT a bug. This is just how cwm's foreward chainer works. ?L rdf:first
?I would run a builtin, and cwm will never simply try every node to see if the
builtin will run. You need some way of narrowing down to select a node.

These rules can become something like:

:Z :allOf (:A :B :C).
{?m :allOf ?x} => {:x a :NeedsItem}
{?L a :NeedsItem; rdf:first ?I; rdf:rest ?x} => {?L :item ?I; ?x a :NeedsItem}.
{?L a :NeedsItem; rdf:rest ?R. ?R :item ?I} => {?L :item ?I}.

and then they should work.


Yosi Scharf

Received on Sunday, 13 March 2005 01:27:14 UTC