- From: Yosi Scharf <syosi@MIT.EDU>
- Date: Mon, 15 Oct 2007 10:03:21 -0400
- To: "Sean B. Palmer" <sean@miscoranda.com>
- Cc: public-cwm-bugs@w3.org
On Oct 15, 2007, at 5:15 AM, Sean B. Palmer wrote:
>
> $ cat filter.n3
> @prefix log: <http://www.w3.org/2000/10/swap/log#> .
>
> { ?s ?p ?o } => { [ ?p [] ] } .
>
> $ echo ':Bob :knows :Steve . :John :knows :Fred .' | \
> cwm --filter=filter.n3 --ntriples
> _:g13 <file:///tmp/#knows> _:g14 .
>
> I think that should be generating two triples.
>
You would think it would be generating two triples. However, that
graph would not be lean by the definition given in http://www.w3.org/
TR/rdf-mt/#deflean .
When writing cwm's rule engine, the decision was made to try to not
entail redundant triples. A set of triples is redundant if the graph
after those triples are added is rdf-entailed by the graph
beforehand. Because of this, the following will not loop forever
echo '{?x ?p ?y} => {[] ?p []} . :a :b :c . ' | cwm --think
There may be cases where cwm does create reduntant triples with
rules, because the code to stop it is not perfect --- it does stop
that particular infinite loop. Therefore, in filter mode, the same
code is run and only one triple was generated. It was, however, not
wrong, as the result it gave was semantically equivalent to the
result you wanted. Therefore, this is not a bug, and will not be fixed.
Yosi
> Using the CVS cwm I updated several seconds ago.
>
> --
> Sean B. Palmer, http://inamidst.com/sbp/
>
Received on Monday, 15 October 2007 14:03:55 UTC