Thursday, October 26, 2006

Aims and Future Work 2

The proposed project involves creation of an elaborator or translator that converts the diagrammatic representation of the problem into software. Translations can be performed into any programming or meta-programming language or open standard information representation language, the visualisation of the model created can displayed on the web.



Fig 1: Translation

The tool will enable users to build their taxonomy representation of the model from a library held in an open standard ontology. Flexibility is essential when different organisations are not all using the same systems. An important reason for creating the open standards ontology is that it can be accessed by many different users and/or applications. The open standard OWL (Web Ontology Language) will be used and is explained in [19].
Software that is been investigated for representing ontologies and translating to program code and visualisation is Stanford Univeristy's Protégé [20], Jena [21], Kaon [22]. Applications that are built with ontology tools such as the above and include a development environment for calculation and decision support are Metatomix m3t4 [23], TopBraid Composer [24], and General Electric's ACUITy enterprise modelling tool [25]. These tools include Java Eclipse extensions for high level programming. We have also investigated transformations that can translate the ontology into representations in other languages and tools. We have prototyped this translation for decision support tools DecisionPro [26] and Cost Estimator [27], and languages including XML (eXtensible Markup Language), and Java. XML has mainly been used as a neutral format for representing information, but its rich structure makes it suitable for use as a programming language e.g. AspectXML [28]. Further research can be undertaken into representing the information in meta languages such as metaL [29] and Simkin [30]. The result documents could be searched using XQuery within Exist [31] and SPARQL (Simple Protocol and RDF Query Language) [32] and edited using XForm editors such as Orbean XForms [33].
The elaborator needs to follow a structured taxonomy to establish how related concepts represented visually can be represented in equivalent code and vice versa. The visualisation can be either as a tree (that can be colour coded to represent different types of information) or as an interactive SVG (Scalable Vector Graphics) diagram of a component to be modelled. This example shows a tree based representation of an aircraft spar [34], this uses software by Rhodes et al. explained in [35]. This example [36] shows how a tree based representation is converted into an interactive diagrammatic representation, and explains how this transformation is performed.
Figure 2 shows a plan for weaving Aspect-Oriented Programming [37] into translation that are provided for end-user-computer communication. Aspect-Oriented Programming can be used where certain tasks or properties do not fall within a natural hierarchy. These are called Cross-Cutting Concerns [37], these Cross-Cutting Concerns could be tasks the program needs to perform such as providing printing or security. This same technique could also be used for attributes that the program is to model for example if the program is to model an aircraft wings, a user with sufficient computer literacy skills can model the representation of the wing as a hierarchical diagram. The user can specify relationships between these items that make it possible to make calculations and decisions. For this model some parameters such as efficiency, weight and cost might not fit well in this hierarchical representation. So the parameters could be weaved into the program as cross-cutting concerns in a similar way to the computing parameters.
Once all parameters are weaved into the program it can be translated from a format most suitable to visualisation and user interaction (e.g. OWL Web Ontology Language) to users into a computer language such as Java for implementation. The program would calculate results, and these could be translated back to the user. These results would be fed back in the language used for user interaction and visualisation. The results could be visualised using stylesheets and interactive software, and where useful translated further into other kinds of representations other than trees e.g. SVG (Scalable Vector Graphics) diagrams and graphs.

The diagram shows a plan for weaving Aspect-Oriented Programming http://aosd.net/ into translation that are provided for end-user-computer communication. Aspect-Oriented Programming can be used where certain tasks or properties do not fall within a natural hierarchy.

Fig 2: Translation and Aspect-Oriented Programming

Highly interactive web pages that act like programs to provide a user interface can be used to provide an interactive user driven programming environment. These interactive web pages could be modelled on Visual Programming Languages such as Alice [38] Interactive web programs can also be created using scripting languages and XML combinations such as AJAX (Asynchronous JavaScript And XML) is an overall name for techniques to create highly interactive web pages. Ajax techniques for creation of highly interactive web pages may assist computer literate end-users in programming tasks on the web [39].

References

[19] Bechhofer S., Carrol J. (2004) Parsing owl dl: trees or triples? Proceedings of the 13th international conference on World Wide Web, NY, USA pp 266 - 275.
[20] Protégé http://protege.stanford.edu/
[21] Jena http://jena.sourceforge.net/
[22] Kaon http://kaon.semanticweb.org/
[23] Metatomix m3t4 http://www.metatomix.com/news/060307.html
[24] TopBraid Composer http://www.topbraidcomposer.com/
[25] Aragones, A., Bruno, J., Crapo, A., Garbiras M. (2006) An Ontology-Based Architecture for Adaptive Work-Centered User Interface Technology. Jena User Conference 2006, Bristol, UK.
[26] DecisionPro http://www.vanguardsw.com/decisionpro/
[27] Koonce, D., Judd, R., Keyser, T., Bailey, M. A. (2000) Cost Estimation Tool Integrated into FIPER, American Institute of Aeronautics and Astronautics http://www.engineous.com/resources.htm
[28] AspectXML Project - http://www.aspectxml.org/
[29] MetaL http://www.meta-language.net/
[30] Simkin http://www.simkin.co.uk/Links.shtml
[31] Exist http://exist.sourceforge.net/
[32] SPARQL - http://dret.net/glossary/sparql - Simple Protocol and RDF Query Language
[33] Orbeon Xforms http://www.orbeon.com/
[34] Spar - Tree based representation http://www.cems.uwe.ac.uk/~phale/Flash/FlashHCI.htm
[35] Rhodes, G., Macdonald, J., Jokol, K., Prudence, P., Aylward, P., Shepherd, R., Yard, T., 2002. A Flash Family Tree, in: Flash MX Application and Interface Design Flash MX Application and Interface Design ISBN:1590591585 http://www.friendsofed.com/books/1590591585/
[36] Interactive Examples http://www.cems.uwe.ac.uk/~phale/InteractiveSVGExamples.htm
[37] Elrad, T., Filman, R. E., Bader, A., (2001) Aspect-oriented programming: Introduction. Communications of the ACM, 44, 10, 28-32.
[38] Alice http://www.alice.org/
[39] Cagle K, AJAX on the Enterprise, AJAXWorld conference, October 4, 2006 http://www.oreillynet.com/xml/blog/2006/10/ajax_on_the_enterprise.html

Friday, October 20, 2006

Aims - Future Work

The intention behind my work is to enable users to program integrated applications. It is intended that tools are created to enable users to develop software in a way familiar to many, from their use of spreadsheets and web page creation tools. End User Programming is an important area of research because many people who are experts in their domain want to create software models to aid their decision making [1]. Semantic Web Techniques can be used to assist non-programmers to create software. This software could allow interactive visual modelling of information. This corresponds to the type of work normally undertaken using spreadsheets. In order to model complex problems in spreadsheets it is necessary to use macro languages, and track relationships between values in cells. These can be difficult tasks, and mistakes lead to incorrect answers, this has led to a spreadsheet crisis where incorrect and undocumented spreadsheets are produced by individuals who have little formal training [2] [3]. It is essential to find alternative ways of representing these models, which do not require the user to write code. The software created must make it easy to interact with and change models, and easy to share information with colleagues. The main application areas of the tools would be Knowledge Management, Decision support, and Simulation. The system created could also be used to promote engineering to a sceptical public who see the profession as poorly paid and dirty, House of Lords Select Committee on Science and Technology report science and society [4].

The main aim of the research is User Driven Model Development. This research unites approaches of object orientation, the semantic web, relational databases, and event driven programming. [5] explain the opportunities for and importance of this kind of research. Tim Berners-Lee defined the semantic web as 'a web of data that can be processed directly or indirectly by machines' [6]. The research would examine ways of structuring information, and enabling processing and searching of the information to provide a modelling capability. Ways of increasing user involvement in software can be investigated, and the possibility of providing templates to enable non-programmers to develop modelling software for the purposes that interest them. The advantages of increasing user involvement in software development are explained by [7]. To assist in this, it is essential that new ways of enabling collaboration between all those involved in software creation and use are investigated.

This involves co-operation with the Institute for End User Computing (IEUC) [8]. Other End-User Programming Consortiums are End-Users Shaping Effective Software (EUSES) [9] and Network of Excellence on End User Development (EUD.Net) [10]. Program Transformation allows for writing in one representation or language, and translating to another. This is particularly useful for language independent programming, or for high level and End User Programming that can then be translated to a language more easily interpreted by computer systems. Techniques such as Generative Programming [11][12], Aspect Oriented Programming [13], Model Driven Programming [5][11] and Meta Programming and Language Oriented Progamming [14] are likely to be used to create the modelling environment for End Users.

Dissemination of research will be via a web network, this has been prototyped by Vanguard [15] and several universities including ours, and companies. We will create community pages such as this one for our Protégé work [16]. A web site for dissemination of information [17] has been created and explanations and examples of our research have been added. Many of the pages allow for editing and interactivity and the intention here is to create individual learning objects [18] which will be freely available. These will be created using open standard languages for ease of searching and reuse. These objects will enable people to create their own modelling web pages.

[1] Scaffidi, C., Shaw, M., Myers, B. (2005). Estimating the Numbers of End Users and End User Programmers, IEEE Symposium on Visual Languages and Human-Centric Computing, (VL/HCC'05): 207-214 Dallas, Texas.
[2] Select Committee on Science and Technology Third Report Chapter 2: Public Attitudes and Values - Attitudes to engineering 2.39 - http://www.publications.parliament.uk/pa/ld199900/ldselect/ldsctech/38/3804.htm
[3] Erwig M, Abraham R, Cooperstein I, Kollmansberger S, Automatic Generation and Maintenance of Correct Spreadsheets, 2005, ICSE 2005 27th International Conference on Software Engineering p 136- 145.
[4] Scanlan J, Rao A, Bru C, Hale P, Marsh R, DATUM Project: Cost Estimating Environment for Support of Aerospace Design Decision Making, 2006, Journal of Aircraft - 2006 vol. 43 no. 4
[5] Frankel D., Hayes, P., Kendall E., McGuinness, D. (2004) The Model Driven Semantic Web - 1st International Workshop on the Model-Driven Semantic Web (MDSW2004) Enabling Knowledge Representation and MDA® Technologies to Work Together.
[6] Berners-Lee T., 1999, Weaving the Web, Harper San Francisco, ISBN 0062515861.
[7] Olsson, E. (2004) What active users and designers contribute in the design process. Interacting with Computers 16, 377-401.
[8] Institute for End User Computing http://www.ieuc.org/home.html.
[9] Network of Excellence on End User Development EUD.Net http://giove.cnuce.cnr.it/eud-net.htm.
[10] End-Users Shaping Effective Software (EUSES) http://eusesconsortium.org/
[11] Gray J, Zhang J, Lin Y, Roychoudhury S, Wu H, Sudarsan R, Gokhale A, Neema S, Shi F, and Bapty T, Model-Driven Program Transformation of a Large Avionics Framework, 2004, Third International Conference on Generative Programming and Component Engineering GPCE.
[12] Marsh R, Hill T, J Scanlan, Dunkley M, Cleevely P, 2001, Probabilistic Pseudo-generative Cost Modelling Through Virtual Template Propagation CEAS Conference on Multidisciplinary Aircraft Design and Optimization June 2001 Maternushaus Koln, Germany.
[13] Murphy G C, Walker R J, Baniassad E L A, Robillard M P, Lai A, Kersten M A, Does aspect-oriented programming work?, 2001, Communications of the ACM, Volume 44 Issue 10 (October 2001) Pages: 75 - 77, ISSN:0001-0782
[14] Dmitriev S, Language Oriented Programming: The Next Programming Paradigm -http://www.onboard.jetbrains.com/is1/articles/04/10/lop/
[15] Global Knowledge Portal - http://wiki.vanguardsw.com/
[16] Protégé Community Wiki - User Driven Progamming - http://protege.cim3.net/cgi-bin/wiki.pl?UserDrivenProgramming
[17] SEEDS team Navigation Page http://www.cems.uwe.ac.uk/amrc/seeds/
[18] Polsani P R, Use and Abuse of Reusable Learning Objects,, 2003, Journal of Digital Information, Volume 3 Issue 4

Tuesday, October 17, 2006

One Day in history

Thousands of people across Britain are expected to contribute to a project aiming to create an online archive of a day in the life of the country.
The National Trust is encouraging people to record a diary of their day on a website, as part of what is being called "Britain's biggest blog".

The blogs will then be stored by the British Library and at other locations.

The trust says it will create a "fascinating social history archive" of everyday life for future generations.

Links

BBC Technology News - http://news.bbc.co.uk/1/hi/technology/6048392.stm

One Day in history - http://www.historymatters.org.uk/output/page96.asp

My Day

7.40 Got up - breakfast - Cous Cous with sauces, usual routine of walking to work except took the long route 2 miles instead of the short one 1 and a bit on cycle path in order to go to post office.

Started collecting money for St Peter's Hospice walk I took part in last Saturday.

Morning - Updated new Modelling page for our computer modelling research team. Commited to going to talk tomorrow morning on Business XML. Emailed my wonderful wife. Playing football so will have late lunch, eat fruit in late morning to keep sugar level normal for Football. Tuesday is lunchtime football day, organised by Applied Science Faculty members.
Afternoon - Packed Lunch - Sandwiches then work on Semantic Web Project Proposal.
Evening - Walked Home 6pm - Mexican tea and evening in with My wife.

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.

Tuesday, October 10, 2006

AJAX World - Kurt Cagle XML.com

This report from Kurt Cagle is interesting reading, as he summarises presentations at this conference. There is also a link to the conference web page.

Live From AJAX World

Report 1 - http://www.oreillynet.com/xml/blog/2006/10/ajax_world_first_report.html - O'Reilly XML.com - Kurt Cagle - October 3, 2006.

AJAX on the Enterprise - Kurt Cagle

This is a transcript of the talk Kurt gave at the AJAXWorld Conference

http://www.oreillynet.com/xml/blog/2006/10/ajax_on_the_enterprise.html - Friday October 6.

Other AJAXWorld conference Information

This AJAXWorld conference was held on 2-4 October, The conference link is http://www.ajaxworldexpo.com/.

On the conference web site there is also a call for papers and date and location of the next conference

Call For Papers Open for AJAXWorld 2007
Rich Internet Applications – AJAX, Web 2.0, Flex, Flash, and Beyond...


SYS-CON Events is proud to announce the second AJAXWorld Conference & Expo for April 1-3, 2007 in New York City.

There is also a Web conference next year in Canada.

Web Directions North - http://north.webdirections.org/ - Vancouver Canada, February 6-10th 2007.