W3C home > Mailing lists > Public > www-archive@w3.org > August 2003

cwm not being maintained

From: Sandro Hawke <sandro@w3.org>
Date: Thu, 28 Aug 2003 08:05:18 -0400
Message-Id: <200308281205.h7SC5Ifn012828@roke.hawke.org>
To: wware@alum.mit.edu
Cc: www-archive@w3.org

[[cc'ing www-archive@w3.org to keep this public, so others can join
in, like on IRC]]

I see on IRC:

<WillWare> I was tinkering with cwm before I found rdflib, but it seemed to be falling into disrepair. Does it do stuff that rdflib doesn't? I notice that cwm has a "--think" option, which sounds very intriguing.
<GabeW> well
<GabeW> its a forward chaining inferencer
<GabeW> it contains RDF/XML and n3 parsers
<GabeW> but you wouldn't use it neccesarily for building applications that don't do the first order logic stuff I don't think
<WillWare> I guess the main thing I'm looking for in a library is translation to an in-memory graph (anything reasonable) so that I don't have to think about XML. Somehow, attempting to roll my own inferencer sounds like a lot of fun.
<WillWare> Maybe that's because I've never tried it and know very little about it.
<WillWare> I tried this with cwm:  [[ ./cwm.py --rdf test.rdf --ntriples > test.dot ]] followed by [[ ./cwm.py --ntriples test.dot --rdf > foo.rdf ]] and when I compared test.rdf and foo.rdf, it seemed that an awful lot of information had been lost. So that made me a little suspicious of cwm. That, and I had to comment out an import in one file to avoid an exception, which suggests to me that the code might be poorly maintained.

to which I wanted to reply:

Arg!  Ooops!   It's all my fault!

The truth is cwm is being quite actively worked on, but it's not being
all that carefully release-engineered.  You're working with the live
developers tree, and once in a while someone screws up and checks in
something that wont even pass the regression tests.  That was me.  :-(
(It passed them on my machines, because after I deleted
LX/defaultns.py, I still had an LX/defaultns.pyc lying around, so I
didnt notice the broken reference.  I should have known better, of
course.)  We should probably have specific releases every month or two;
or just be more careful.

Onto your bigger questions: yes, inference is a lot of fun.  Cwm takes
a very straightforward approach, based on simple rules to say what
should be inferred, when you use --think.  But it's still Turing
Complete,; you can write anything in cwm rules.  Other people have
used Prolog [1] (you'll find Bijan on #rdfig a lot).  Some other
people use traditional first-order logic theorem provers; I'm using
one called Otter a lot now.  There's code in in the LX directory for
interfacing with Otter, and I've been experimenting a bit with given
cwm a --engine=otter.  And you can just write your own, as I did some
years ago and TimBL did in cwm.

On Gabe's comment: it's pretty nice for even simple translations and
re-mapping for RDF terms.  It's not really good at FULL first-order
logic (it's really only Horn-expressive).

On your data-loss experiment.  Hm.  It's not obvious to me what the
problem was... can I see your test.rdf?

   -- sandro

[1] http://www.xml.com/pub/a/2001/04/25/prologrdf/
Received on Thursday, 28 August 2003 08:06:42 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 22:32:09 UTC