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

4 comments:

Alessandro Vernet said...

Peter,

I like your idea of publishing your research as you go, maybe getting feedback and tips from your readers, but also exposing your finding to a much wider audience.

On the subject of XForms, you mention Orbeon Forms, which is the product I am working on. The product implements the standard XForms technology, which lets people who are not necessarily programmers implement web forms. Take that form you have on paper, and create a web version of it, with all it validation and business logic. If I can help with anything in your research, just let me know!

Alex

Unknown said...

Thank You

I've investigated XForms, and intend to go look at it again. I hope we'll have it installed at our University soon, so we can test it's use for online forms.

Alessandro Vernet said...

Hi Peter,

Note that even if you don't have Orbeon or another XForms engine installed, you can write your XForms file locally, and upload it in the XForms sandbox, which will run your XForms right there.

Alex

Anonymous said...

Very interesting blog. With valuable information and tips.
It is a pleasure to read, even the archives.
Take the time to visit the following info at Click Here!"