- From: Dan Connolly <connolly@w3.org>
- Date: Mon, 25 Sep 2006 12:37:59 -0500
- To: "Boley, Harold" <Harold.Boley@nrc-cnrc.gc.ca>
- Cc: "Public-Rif-Wg (E-mail)" <public-rif-wg@w3.org>
- Message-Id: <1159205879.5616.684.camel@dirk>
On Thu, 2006-09-14 at 13:23 -0400, Boley, Harold wrote: > Michael & I have completed our Horn semantics and syntax > actions from Tuesday, as part of the RIF Extensible Design: > http://www.w3.org/2005/rules/wg/wiki/B._Extension%3A_RIF_Rule_Language > http://www.w3.org/2005/rules/wg/wiki/B.1_Horn_Rules The code I wrote to translate N3-rules also translates RDF/XML. So I can run it on the OWL tests... for example, attached find ,statecode.xml, the output of running it on... http://www.w3.org/2002/03owlt/I5.1/premises001 and ,list.xml, the output of running it on http://www.w3.org/2002/03owlt/I5.5/conclusions005 The RDF parser in swap/cwm treats turns first/rest triples into something more like a function term. So that's the way I have written them out in RIF: <Atom> <Rel>holds</Rel> <Ind iri="http://www.w3.org/1999/02/22-rdf-syntax-ns#type" /> <Expr> <Fun>list</Fun> <Ind iri="http://www.w3.org/2002/03owlt/I5.5/premises005#a" /> </Expr> <Ind iri="http://www.w3.org/1999/02/22-rdf-syntax-ns#List" /> </Atom> Specifying a list function symbol and the relationship to first/rest involves induction, I suppose. I think it's worth doing, though. My approach to RDF "triples" is to use a 3-place "holds" relation: <Atom> <Rel>holds</Rel> <Ind iri="http://example.org/vocab#stateCode" /> <Var>g3</Var> <Data>KS</Data> </Atom> This allows us to write rules corresponding to the RDFS semantics and parts of OWL, as in the owl pD* paper http://www.websemanticsjournal.org/ps/pub/2005-15 I transcribed those rules into N3 and then played around with them a bit... http://www.w3.org/2000/10/swap/util/owlth.n3 Jos has done something similar... http://www.agfa.com/w3c/euler/rpo-rules.n3 Attached find ,rpo.xml , the output of my N3-to-RIF translator on that rpo-rules.n3. For example {?P rdfs:domain ?C. ?S ?P ?O} => {?S a ?C}. turns into... <Implies> <And> <Atom> <Rel>holds</Rel> <Ind iri="http://www.w3.org/2000/01/rdf-schema#domain" /> <Var>P</Var> <Var>C</Var> </Atom> <Atom> <Rel>holds</Rel> <Var>P</Var> <Var>S</Var> <Var>O</Var> </Atom> </And> <Atom> <Rel>holds</Rel> <Ind iri="http://www.w3.org/1999/02/22-rdf-syntax-ns#type" /> <Var>S</Var> <Var>C</Var> </Atom> </Implies> FYI, I have a couple versions of RDFS semantics in rules; one transcribed faithfully from the spec... http://www.w3.org/2000/10/swap/util/rdfs-rules.n3 and one that omits "boring" rules like "everything is a Resource"... http://www.w3.org/2000/10/swap/util/rdfs-nice.n3 and for those who want to play along at home, this is the exact command line I'm using: ~/w3ccvs/WWW/2000/10/swap$ PYTHONPATH=.. python2.4 n3absyn.py http://www.w3.org/2002/03owlt/I5.1/premises001 --rif |tidy -i -xml >,statecode.xml and this assumes you have swap checked out, per http://www.w3.org/2000/10/swap/doc/cwm#dev And if you want to use tidy... http://tidy.sourceforge.net/ -- Dan Connolly, W3C http://www.w3.org/People/Connolly/ D3C2 887B 0F92 6005 C541 0875 0F91 96DE 6E52 C29E
Attachments
- application/xml attachment: _statecode.xml
- application/xml attachment: _rpo.xml
- application/xml attachment: _list.xml
Received on Monday, 25 September 2006 17:38:16 UTC