From: Dan Connolly ([email protected])
Date: 11/30/01
Dan Connolly wrote: [...] > Then... let's write these expressions using only 2-place predicates, > conjunction, and existential quantification. (i.e. in RDF triples) To check my work, I wrote A and B in RDF/n3: ex:x a [ ont:unionOf (ex:a [ ont:intersectionOf (ex:b ex:c) ] ) ]. ex:x a [ ont:intersectionOf ( [ont:unionOf (ex:a ex:b)] [ ont:unionOf (ex:a ex:c)] ) ]. then (put the relevant namespaces on top and) translated to RDF/xml; see attached. I've got some code that convers RDF/xml to a KIF dialect; it produced: ------ ;; RDF parsed by Id: sax2rdf.py,v 1.15 2001/11/10 23:21:14 connolly Exp (prefix-kludge "" "http://www.w3.org/2000/10/swap/log#") (prefix-kludge "ex" "http://example/daml-entailment#") (prefix-kludge "ont" "http://www.daml.org/2001/03/daml+oil#") (prefix-kludge "rdf" "http://www.w3.org/1999/02/22-rdf-syntax-ns#") (exists (?_rdfxg0 ?_rdfxg1 ?_rdfxg2 ?_rdfxg3 ?_rdfxg4 ?_rdfxg5 ?_rdfxg6 ?_rdfxg7 ?_rdfxg8 ?_rdfxg9 ?_rdfxg10 ?_rdfxg11 ) (and (rdf:type ex:x ?_rdfxg1 ) (ont:unionOf ?_rdfxg1 ?_rdfxg3 ) (ont:first ?_rdfxg3 ex:a ) (ont:rest ?_rdfxg3 ?_rdfxg5 ) (ont:first ?_rdfxg5 ?_rdfxg7 ) (ont:intersectionOf ?_rdfxg7 ?_rdfxg9 ) (ont:first ?_rdfxg9 ex:b ) (ont:rest ?_rdfxg9 ?_rdfxg11 ) (ont:first ?_rdfxg11 ex:c ) (ont:rest ?_rdfxg11 ont:nil ) (ont:rest ?_rdfxg5 ont:nil ) ) ) ------ > A= ... becomes: > > (exists (?uaibc ?liabc ?libc ?ibc ?lbc ?lc) > (and > (type X ?uaibc) > (unionOf ?uaibc ?laibc) > (first ?laibc a) (rest ?laibc ?libc) > (first ?libc ?ibc) (rest ?libc nil) > (intersectionOf ?ibc ?lbc) > (first ?lbc b) > (rest ?lbc ?lc) > (first ?lc c) > (rest ?lc nil) )) 11 triples. check. > B= becomes... > > (exists (?iabbc ...) > (and > (type X ?iuabubc) > (intersectionOf ?iuabubc ?luabubc) > (first ?luabubc ?uab) (rest ?luabubc ?lubc) > (first ?lubc ?ubc) (rest ?lubc nil) > (unionOf ?uab ?lab) > (first ?lab a) (rest ?lab ?lb) (first ?lb b) (rest ?lb nil) > (unionOf ?ubc ?lbc) > (first ?lbc b) (rest ?lbc ?lc) (first ?lc c) (rest ?lc c) > ) ) ------ ;; RDF parsed by Id: sax2rdf.py,v 1.15 2001/11/10 23:21:14 connolly Exp (prefix-kludge "" "http://www.w3.org/2000/10/swap/log#") (prefix-kludge "ex" "http://example/daml-entailment#") (prefix-kludge "ont" "http://www.daml.org/2001/03/daml+oil#") (prefix-kludge "rdf" "http://www.w3.org/1999/02/22-rdf-syntax-ns#") (exists (?_rdfxg0 ?_rdfxg1 ?_rdfxg2 ?_rdfxg3 ?_rdfxg4 ?_rdfxg5 ?_rdfxg6 ?_rdfxg7 ?_rdfxg8 ?_rdfxg9 ?_rdfxg10 ?_rdfxg11 ?_rdfxg12 ?_rdfxg13 ?_rdfxg14 ?_rdfxg15 ?_rdfxg16 ?_rdfxg17 ) (and (rdf:type ex:x ?_rdfxg1 ) (ont:intersectionOf ?_rdfxg1 ?_rdfxg3 ) (ont:first ?_rdfxg3 ?_rdfxg5 ) (ont:unionOf ?_rdfxg5 ?_rdfxg7 ) (ont:first ?_rdfxg7 ex:a ) (ont:rest ?_rdfxg7 ?_rdfxg9 ) (ont:first ?_rdfxg9 ex:b ) (ont:rest ?_rdfxg9 ont:nil ) (ont:rest ?_rdfxg3 ?_rdfxg11 ) (ont:first ?_rdfxg11 ?_rdfxg13 ) (ont:unionOf ?_rdfxg13 ?_rdfxg15 ) (ont:first ?_rdfxg15 ex:a ) (ont:rest ?_rdfxg15 ?_rdfxg17 ) (ont:first ?_rdfxg17 ex:c ) (ont:rest ?_rdfxg17 ont:nil ) (ont:rest ?_rdfxg11 ont:nil ) ) ) ------ 16 triples. Check. [...] > If ?c2 is ?ibc, blah blah blah and the result > follows again. > > Hence, by proof by cases, QED. There's a guy in the #rdfig developing a KIF reasoner that groks this dialect of KIF (i.e. with namespaces). I wonder if I could get him to check that there's a straightfoward proof of B from A-with-DAML-axioms. -- Dan Connolly, W3C http://www.w3.org/People/Connolly/ <!-- Processed by Id: cwm.py,v 1.82 2001/11/15 22:11:23 timbl Exp --> <!-- using base file:/home/connolly/w3ccvs/WWW/2000/10/swap/test/daml-ent.n3--> <rdf:RDF xmlns="http://www.w3.org/2000/10/swap/log#" xmlns:ex="http://example/daml-entailment#" xmlns:ont="http://www.daml.org/2001/03/daml+oil#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="http://example/daml-entailment#x"> <rdf:type rdf:parseType="Resource"> <ont:unionOf rdf:parseType="Resource"> <ont:first rdf:resource="http://example/daml-entailment#a"/> <ont:rest rdf:parseType="Resource"> <ont:first rdf:parseType="Resource"> <ont:intersectionOf rdf:parseType="Resource"> <ont:first rdf:resource="http://example/daml-entailment#b"/> <ont:rest rdf:parseType="Resource"> <ont:first rdf:resource="http://example/daml-entailment#c"/> <ont:rest rdf:resource="http://www.daml.org/2001/03/daml+oil#nil"/> </ont:rest> </ont:intersectionOf> </ont:first> <ont:rest rdf:resource="http://www.daml.org/2001/03/daml+oil#nil"/> </ont:rest> </ont:unionOf> </rdf:type> </rdf:Description> </rdf:RDF> <!-- Processed by Id: cwm.py,v 1.82 2001/11/15 22:11:23 timbl Exp --> <!-- using base file:/home/connolly/w3ccvs/WWW/2000/10/swap/test/daml-ent-conc.n3--> <rdf:RDF xmlns="http://www.w3.org/2000/10/swap/log#" xmlns:ex="http://example/daml-entailment#" xmlns:ont="http://www.daml.org/2001/03/daml+oil#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="http://example/daml-entailment#x"> <rdf:type rdf:parseType="Resource"> <ont:intersectionOf rdf:parseType="Resource"> <ont:first rdf:parseType="Resource"> <ont:unionOf rdf:parseType="Resource"> <ont:first rdf:resource="http://example/daml-entailment#a"/> <ont:rest rdf:parseType="Resource"> <ont:first rdf:resource="http://example/daml-entailment#b"/> <ont:rest rdf:resource="http://www.daml.org/2001/03/daml+oil#nil"/> </ont:rest> </ont:unionOf> </ont:first> <ont:rest rdf:parseType="Resource"> <ont:first rdf:parseType="Resource"> <ont:unionOf rdf:parseType="Resource"> <ont:first rdf:resource="http://example/daml-entailment#a"/> <ont:rest rdf:parseType="Resource"> <ont:first rdf:resource="http://example/daml-entailment#c"/> <ont:rest rdf:resource="http://www.daml.org/2001/03/daml+oil#nil"/> </ont:rest> </ont:unionOf> </ont:first> <ont:rest rdf:resource="http://www.daml.org/2001/03/daml+oil#nil"/> </ont:rest> </ont:intersectionOf> </rdf:type> </rdf:Description> </rdf:RDF>
This archive was generated by hypermail 2.1.4 : 04/02/02 EST