- From: Chimezie Ogbuji <chimezie@gmail.com>
- Date: Tue, 01 Jul 2008 22:08:49 -0400
- To: <jos.deroo@agfa.com>
- CC: fuxi-discussion <fuxi-discussion@googlegroups.com>, <public-cwm-talk@w3.org>, <helen.chen@agfa.com>
Jos. On 6/30/08 3:55 AM, "jos.deroo@agfa.com" <jos.deroo@agfa.com> wrote: > Hey Chime, that's perfect now and even more than 5 times faster.. Waw! > Will look in detail to see how it all works :) Taking http://www.w3.org/TR/owl-test/byFunction#function-allValuesFrom for example. The DLP [1] algorithm is the difference between using this rule: { ?X a first:r . ?X first:p ?BdxmVKgO15 } => { ?BdxmVKgO15 a first:c } Instead of: {?R owl:onProperty ?P; owl:allValuesFrom ?A. ?X ?P ?Y; a ?R} => {?Y a ?A}. Where ?BdxmVKgO15 is a skolem (or open) variable term. In the first case, the rule antecedent requires much fewer Join conditions than in the second (general) case . The first rule is generated automatically, so this suggests a natural inference mechanism that consists of taking an RDF graph that includes OWL assertions, generating the corresponding rete network / rule set, and passing the RDF graph through the (very concise) decision network to calculate a conflict set of entailed RDF triples. [1] http://www.cs.man.ac.uk/~horrocks/Publications/download/2003/p117-grosof.pdf > jdroo@jdroo-laptop:~/fuxi/test$ python testOWL.py > testOwl (__main__.OwlTestSuite) ... Time to build production rule (RDFLib): > 0.0163600444794 seconds > OWL/InverseFunctionalProperty/premises003 > OWL/InverseFunctionalProperty/conclusions003 > <OWL/InverseFunctionalProperty/conclusions003.rdf> :- > <OWL/InverseFunctionalProperty/premises003.rdf> > ########## Finished Building decision network from DLP ########## > <Network: 21 rules, 69 nodes, 0 tokens in working memory, 0 inferred tokens> > Time to calculate closure on working memory: 9.13095474243 milli seconds > <Network: 21 rules, 69 nodes, 35 tokens in working memory, 1 inferred tokens> > === Passed! === > ---------------------------------------------------------------------- > Ran 1 test in 0.596s > > OK > > Kind Regards, > > Jos De Roo | Agfa HealthCare > Senior Researcher | HE/Advanced Clinical Applications Research > T +32 3444 6256 > > Quadrat NV, Kortrijksesteenweg 157, 9830 Sint-Martens-Latem, Belgium > http://www.agfa.com/healthcare/ > R.O.: Septestraat 27, B-2640 Mortsel, Belgium | RLE Antwerp | VAT BE > 0403.003.524 | IBAN BE03570124715584 | Citibank International PLC, B-1050 > Brussels > Click on link to read important disclaimer: > http://www.agfa.com/healthcare/maildisclaimer > > -----public-cwm-talk-request@w3.org wrote: ----- > >> To: fuxi-discussion <fuxi-discussion@googlegroups.com> >> From: Chimezie <chimezie@gmail.com> >> Sent by: public-cwm-talk-request@w3.org >> Date: 06/30/2008 01:17AM >> cc: public-cwm-talk@w3.org >> Subject: Re: Recent changes to FuXi >> >> >> Hey Jos. thanks for the test run. I forgot to update testOWL.py. >> I've done so now. Let me know if the update doesn't allow that >> particular test to pass >> >> On Jun 29, 7:24 am, jos.de...@agfa.com wrote: >>> Hi Chime, >>> The testrun is fine when skipping >>> 'OWL/intersectionOf/Manifest001.rdf' ,#can't calculate identical class >>> extensions >> >> See: http://code.google.com/p/python-dlp/source/detail?r=203 >> >>> As an aside, I also started rewriting our OWL rules as >>> Coherent Logic rules to be used in our Skolem Euler Machine >>> http://eulersharp.sourceforge.net/GUIDE >>> and it makes things much more straightforward to have >>> existentials in the conclusion of rules which is a form of the >>> more general case of disjunction in the conclusion of rules. >>> That works pretty well and is performant as well :) >> >> Do you skolemize each fired existential in a consequent? >> >> -- Chimezie >> >> >
Received on Wednesday, 2 July 2008 09:24:04 UTC