Form generation in Déductions project - Summary for AI researchers

Jean-Marc Vanel - 2009-04-30

I'm wondering on the pertinence of the generation of a Graphical User Interface with a RETE rule engine. There may be better architectures. And I'd like to hear from other attempts in this field.

I'm not wondering about the feasibility, as I have a prototype [1] actually running a RETE rule engine to generate forms from model in milliseconds.

Why taking pains to use AI in a domain where procedural code does well ?

Example: bank account transfer on Internet. There are only 2 existing accounts (checking and saving). Having chosen one of the accounts, the other is determined, so the application must not propose a choice.

Here is a sketch of the architecture.

The Knowledge Base includes:

The Knowledge Base is an Object Oriented RETE Working Memory that only holds RDF (Resource Description Format) triple statements [3]. The rules are writen in N3 logic [4]. The Object Oriented RETE engine is Drools [6].

The user events considered are classical:

The user events are fed to the rule engine, and rules are fired.

As consequences the user data, GUI objects and past user actions are updated in the KB. Then implementation GUI objects are added, removed or updated, reflecting the KB update. This part is currently in the works and the prototype is not clean here. Also exceptions can be sent from the KB to the implementation GUI, e.g. to forbid a non-valid user input.

REFERENCES

[1] Java Swing application generator from OWL model and N3 logic rules - http://deductions.svn.sourceforge.net/viewvc/deductions/html/GUIgenerator.html

[2] Runtime behavior for GUI's generated by the Déductions framework - http://deductions.svn.sourceforge.net/viewvc/deductions/html/runtime-behavior.html

[3] http://en.wikipedia.org/wiki/Resource_Description_Framework

[4] Primer: Getting into RDF & Semantic Web using N3 : http://www.w3.org/2000/10/swap/doc/Overview.html

The N3 specification: http://www.w3.org/TeamSubmission/n3/

[5] Web Ontology Language (OWL) - http://www.w3.org/2004/OWL/

[6] Drools, Rules Engine implementation - http://www.jboss.org/drools/