© Jean-Marc Vanel - $Date: 2012-06-03$ - under Creative Commons
License
TOC
Deployment of an EulerGUI project
There is a lot of flexibility for deployment of an EulerGUI runtime.
Inference engine
Here are the options for the pure expert system part ( business rules +
possibly some RDFS + OWL generic rules ).
- Java platform : "pure" expert system, not stateful : use Euler engine jar
( < 8Mb ) + EG jar ( < 1Mb )
- Java platform : stateful Knowledge Base with Drools : drools-core (<
2.2 Mb ) + EG jar ( < 1Mb ) + compiled rule base in cache
- any platform supporting Yap prolog engine : call a Yap run with a system
exec call or the Yap C API, on a set of N3 data and rules representing an
EulerGUI project (one N3 data file has to be populated prior to calling
Yap, and the result has to be parsed, which is easy with --no-qnames Euler
option)
- any platform supporting Python : use Python N3 engines : CWM or FuXi
- any platform : useEulerGUI
server (work in progress ) , or Euler server based on URL-encoding an
argument string for stateless processing
- PHP platform : there is a RETE engine for PHP: PHP rules; a translator from
N3 rules to PHP rules format couls be developped (with rules and
templates)
Database access
Now for database access here are the options:
- use existing SPARQL source in EulerGUI (not sure if currently the query
is re-done at every inference launch), and a choice of SPARQL server (Jena
TDB or SDB, Virtuoso, Redland, Sesame, etc )
- use one of the relational to RDF bridges : D2R, DataMaster, etc
User interface
And for user interface generation here are the options. This is very
promising, but it's work in progress.
- there is a nice OWL ==> Swing form generator, completely automatic,
that is working at runtime with the Drools engine, but it is not feature
complete;
with the new architecture for embedding Java objects in KB, Java objects
are activable by rules.
- of course one can reuse an existing framework for form generation, or an
existing code base
- we are working on a rule base generating GUI for several platforms :
Swing , Apache Wicket, TCL/TK, HTML+PHP ; leveraging on an ontology of
atomic user interactions (see
Building Applications with the
EulerGUI + Déductions framework ) , and on Euler capabilities to
produce formatted strings ( builtin e:format )
- Web applications are possible via Apache Wicket, see Web applications with GUI generation via embeded
EulerGUI