- From: Sandro Hawke <sandro@w3.org>
- Date: Thu, 28 Aug 2003 08:05:18 -0400
- 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