The preceding announce on this list was on february 23:
http://www.nabble.com/EulerGUI-released---IDE-for-semantic-Web-with-Drool...
In short, EulerGUI is an IDE centered around a Semantic Web language called
N3 <
http://www.w3.org/2000/10/swap/Primer>. N3 is a good candidate for a
universal data + models + rules + queries textual language. The RDF subset
of N3 is perfectly isomorphic to RDF, but as human readable as can be. And
it is readable by Protégé, Jena, and others tools. The OWL (ontology)
modeling language, being expressed as RDF, is thus also expressible in N3.
Here is an example for an OWL model :
:Person a owl:Class .
:name a owl:DatatypeProperty ;
rdfs:domain :Person ;
rdfs:range xsd:string ;
rdfs:comment "First name and last name" ;
rdfs:label "name" .
:Address a owl:Class .
:hasAddress a owl:ObjectProperty ;
rdfs:domain :Person ;
rdfs:range :Address ;
rdfs:comment "click to enter address"@en ;
rdfs:label "address" .
Here is an example of a simple rule in N3 logic :
{ ?C hasParent ?P. ?P hasBrother ?B } => { ?C hasUncle ?B }.
This rule is translated into Drools, giving this:
rule "family-rules.n3 0"
when
Triple( $C : subject, predicate ==
"<file:/home/jmv/family-rules.n3#hasParent>",
$P : object )
Triple( subject == $P, predicate ==
"<file:/home/jmv/family-rules.n3#hasBrother>",
$B : object )
not(
Triple( subject == $C, predicate ==
"<file:/home/jmv/family-rules.n3#hasUncle>",
object == $B ) )
then
Triple newTriple;
newTriple = new Triple( $C, "<file:/home/jmv/family-rules.n3#hasUncle>",
$B );
insert( newTriple );
endncle>", $B ); insert( newTriple );
end
As you can see, a negation of the consequent (RHS) is added in the
antecedent, to avoid extra responses.
This is one of the new features. The others are :
- thanks to relative file or URL's for source files and subprojects, a
whole project can be opened from a single URL
- subprojects and pipeline of projects (alias post-processing project)
- open UML or eCore documents; they are translated into N3
- drag'n'drop of URL ending with .n3, .rdf, .owl, .uml, .xmi, or .ecore,
- rule sets to translate UML and eCore class models into OWL; for example
EulerGUI translates the whole of the UML 2 metamodel from an eCore file
The rule base, the models, and the data are exportable for using with Drools
independently. So, for the Drools community, EulerGUI allows to import
models and data from N3, RDF, OWL, UML, eCore documents. Also for some
people, writing N3 rules can be easier than Drools language.
As you see above, the translation makes use of a particuliar form of Drools
language, which makes use of a single Java class, Triple, that models RDF
statements. This is quite far from the intended Drools usage, but it shows
the power and flexibility of Drools. When embedded into generated Java Swing
applications, a Drools engine is able to generate a form in a few
milliseconds from the class model! Also this design, based on a single Java
class, allows to add and remove business classes at runtime.
The EulerGUI
documentation<http://eulergui.svn.sourceforge.net/viewvc/eulergui/trun...
.
Déductions is a Java Swing application generator from OWL models and N3
logic rules.
The User Manual for the application
generator<http://deductions.svn.sourceforge.net/viewvc/deductions/html...;.
--
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 )