Thursday, October 12, 2006

User Driven Programming - Summary

My current research approach builds on previous work undertaken for a large aerospace company to allow designers and manufacturers to visualise and share cost information. During this project one task was to automatically produce tree representations of information requested by the user. Information held in a relational database was visualised and exported in structured languages.

The theory behind this is that of showing examples of a program in whatever way most puts across the information in an understandable way. This must illustrate the concept that the information represents. This allows a user to manipulate the information and get immediate feedback on what has changed. This is related to Programming by Example, which is explained below.

In the mid 1970s Smith introduced the technique of Programming by Example with a program called Pygmalion. This demonstrated the need to describe algorithms through concrete examples rather than abstractly. 'Example-based Programming: a pertinent visual approach for learning to program' University of Poitiers explains and expands on Smiths work with an example demonstrating how numbers fail to reveal the concept behind them. The example is a numerical representation of a triangle. This representation is 'fregean' because it does not show the concept of a triangle. Next to this is a diagram of the triangle that does show the concept.

The examples take the tree representations of a component and according to the properties of each feature of the component, a conversion tree in Vanguard Studio transforms the tree representation e.g this Spar into an SVG interactive diagrammatic representation.

This diagram explains the transformation process.

This diagram explains the transformation process

Figure 1 - Translation Process

These example images show some of the translation steps

These example images show some of the translation steps - Protégé to Vanguard Conversion

Figure 1 - Protégé to Vanguard Conversion
These example images show some of the translation steps - Web Tree View

Figure 2 - Web Tree View
These example images show some of the translation steps - Web Diagram View

Figure 3 - Web Diagram View

A Flash movie that explains how these are created using a simple example - User Driven Modelling Demonstration.

A taxonomy representation is translated into a computer model. Relationships can be conveyed to a software model that evaluates them. Information is translated from the taxonomy and is visualised in tree form in a decision support tool with the example of spar manufacture information. The visualisation of the information of a tree can be further translated into visualisation as an interactive diagram. The representation can be translated into differennt languages, to allow for language independence.

The process is also explained here - User Driven Programming, and here - Translation and Aspect-Oriented Programming, and Translation for De-abstraction.

This is my MSc research that I've based this SVG approach on - MSc Research Summary - The earliest research was into providing a user driven model development example that would enable the kind of user interface and visualisation required for interactive costing.

Examples both my own and those of others in this research field and explanations - http://www.cems.uwe.ac.uk/~phale/#SVGScalableVectorGraphics

How the examples are generated - Spar - Vanguard Studio software used to generate SVG from Protégé - Spar Example.

Programming by Example - Links


Alan Kay, Allen Cypher - Watch What I Do - Programming by Example.

Cypher A. (1993) Watch What I Do: Programming by Demonstration, The MIT Press

Example-based Programming: a pertinent visual approach for learning to program (2004) - University of Poitiers - Nicolas Guibert - Patrick Girard - Laurent Guittet - Proceedings of the working conference on Advanced visual interfaces - Pages: 358 - 361 - ISBN:1-58113-867-9.

Programming by Example - http://web.media.mit.edu/~lieber/PBE/index.html - Massachusetts Institute of Technology - MIT Lab.

Programming by Example Tutorial - http://giove.cnuce.cnr.it/EUD-NET/slides-workshop/PBE-Tutorial2.ppt - Henry Lieberman - MIT Lab - EUD-Net.

Pygmalion: A Computer Program to Model and Stimulate Creative Thought. Stuttgart, Basel - University of Calgary Summary - Smith, D. C. 1977.

Smith, D. C. (1977) A Computer Program to Model and Stimulate Creative Thought. Basel: Birkhauser. 187p.

Teaching and Learning Programming with a Programming by Example System - International Symposium on End User Development - Schloss Birlinghoven, Sankt Augustin (Bonn), Germany - October 6-7, 2003 - Nicolas Guibert, Patrick Girard.

No comments: