Hi all
This morning I attacked the translation of complex OWL expressions into N3
rules. I took the people and pets example from aceview
Examples<http://attempto.ifi.uzh.ch/aceview/#Examples>
.
>From there I translated an OWL subclass assertion involving anonymous
classes into N3 rules , e.g.
[from Ace View example] Every person that has-as-pet at least 3 things is an
animal-lover.
in Manchester syntax:
person and ( has-as-pet min 3 thing ) SubClassOf animal-lover
In N3:
[ a :Class;
rdfs:subClassOf people_pets_ace:animal-lover;
:intersectionOf (
people_pets_ace:person
[
a :Restriction;
:minCardinality "3"^^xsd:nonNegativeInteger;
:onProperty people_pets_ace:has-as-pet ] ) ].
Translation in N3 logic:
{ ?X a person.
_:d e:findall (?P {?X has-as-pet ?P} ?Y).
?Y math:memberCount ?C.
?C math:greaterThan 2 .
} => { ?X a animal-lover }.
The EulerGUI project for this case is :
http://deductions.svn.sourceforge.net/viewvc/deductions/n3_new/owl-subclass-assertions-to-rules.n3p
The plan is now :
1. add more OWL expressions types to this OWL ==> N3 translator
2. in a post-load step in EulerGUI (after project load) , automatically
run his OWL ==> N3 translator, so that the rules are available for
inferencing (similar to what is already done for SWRL rules, see [1] )
3. in a post-load step also add all the implementation by rules in N3
logic for most of OWL concepts [2] from the Euler project
4. complete the SWRL to N3 translator [1] with SWRL builtins, and pass
SWRL test suite from [3] ;
5. for running translated SWRL rules on the Drools / N3 engine, define an
API and Java implementation for SWRL builtins that can be shared with Martin
O'Connor's forthcoming Drools engine for SWRL
6. work on a translator from N3 logic to Drools rules, by populating an
RDF graph of Drools rule objects conforming to the Drools API [4], using
rule based techniques similar to the above translators; the goal is to
completely replace the current Java implementation of a translator from N3
logic to Drools rules [5]
[1] Euler GUI Manual: Translator from SWRL to N3 logic :
http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/documentation.html#L2219
[2]
http://eulersharp.svn.sourceforge.net/viewvc/eulersharp/trunk/2003/03swap/owl-rules.n3
[3] http://semwebcentral.org/projects/swrl-test-suite/
[4]
https://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/trunk/target/javadocs/unstable/drools-core/org/drools/rule/Rule.html
[5] translator from N3 logic to Drools rules
http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/documentation.html#Translatin
--
Jean-Marc Vanel
Consulting, services, training,
Rule-based programming, Semantic Web
http://jmvanel.free.fr/
+33 (0)6 89 16 29 52 -- +33 (0)1 39 55 58 16
( we rarely listen to voice messages, please send a mail instead )
|