Friday, June 23, 2006

Research Summary - Enabling End User Programming

The intention of the research into User Driven Modelling (UDM) and more widely User Driven Programming (UDP) is to enable non-programmers to create software from a user interface that allows them to model a particular problem or scenario. This involves a user entering information visually in the form of a tree diagram. The research involves developing ways of automatically translating this information into program code in a variety of computer languages. This is very important and useful for many employees that have insufficient time to learn programming languages, and for amateurs, home users and open source communities. To achieve this, visual editors are used to create and edit taxonomies to be translated into code. To make this possible, it is also important to examine visualisation, and visualisation techniques to create a human computer interface that allows non-experts to create software.

Translation

So far in my research I have edited the ontology representation of the program to be created in an ontology tool Protégé, and investigated Jena. For each node in the tree there is a value (end nodes), or a mathematical formula that relates that node to other nodes. The ontology created is saved in a database and then read by a Decision Support tool Vanguard Studio. This tool interates through the ontology, and for each tree, and each node in the tree calculates the results of all the formulae. The calculated tree is then displayed with the results and a full visual description of the calculation e.g. Spar Tree.

The results can also be exported into representations using various combinations of HTML, XML, Java, Javascript or Flash as required, for a web page view and could be output in virtually any language by adapting my existing outputter code. Links from my home page demonstrate this. A further transformation can be made to translate the tree based representation of a component e.g. a spar to a diagrammatic view of the design.

program-transformation.org - Program Transformation - - Program-Transformation.Org: The Program Transformation Wiki.

Ontology Editing

There is a strong need for uniting of the approaches of top down ontology definition by a small group of experts with that of the bottom up approach of allowing all users to define the ontology. Software applications are needed that allow users with little software knowledge to edit and update ontologies themselves. The extent to which an organisation allows this depends on its structure but if this is completely prevented or not enabled in the first place, there will be user dissatisfaction resulting from their lack of involvement. It is also likely that progress in defining and editing the ontology would be delayed.

Capturing Information

One possibility that I have begun investigating is the use of XForms based web forms to capture the information required for each node in a tree. The XForms could be made to look like a web page, spreadsheet, or whatever tool the user is most familiar with. This could be used as a way to capture the information from the users for an ontology.

Some useful links for this are

FormFaces - http://www.formfaces.com/main.html - XForm - XML Form editing tool Tool.
FormsPlayer - http://www.formsplayer.com/content/index.html - XForm - XML Form editing tool Tool.
Orbeon - http://www.orbeon.com/ - Orbeon XForms Presentation Server.


Final Research - Putting it all together

Further possibilities for automation of the User-Driven interface involve the use of additional components to ontology tools, that would allow for integration and higher level manipulation of the ontology, translation software, calculation software, and the visual interface. This would allow me to concentrate more on the creation of the user interface for end-users, and the software architecture required for this rather than on the translation software itself, and enable me to create a fully finished User-Driven Programming application environment.

Some useful links for this are

Genral Electric ACUITy application - presentation.
Genral Electric ACUITy application - paper.

Metamomix - m3t4 and Metamomix Wiki

2 comments:

Alessandro Vernet said...

Very interesting post, and thank you Peter for having mentioned PresentationServer, the open source Ajax-based XForms engine.

Alex
--
Blog (XML, Web apps, Open Source):
http://www.orbeon.com/blog/

Unknown said...

Alessandro Vernet

You're welcome, good luck with future developments in this project. I'll continue to research use of your application.

Peter Hale