Tuesday, May 01, 2007

End User Programming Implementation Using Semantic Web Technologies

This article is about research to provide an environment for computer literate non-programmers to create software. Technologies that assist with this are Semantic Web languages, visualization, and modeling. Visualization of Semantic Web information can make it possible to use this information as a programming environment to be used without the need to write code.

It is possible to create an end-user programming environment using Semantic Web technologies, especially for modeling of information, where this approach is well suited. This can make translation from humans to computers easier and more reliable than current software systems and languages. The use of Semantic Web languages as programming languages would assist greatly with interoperability as these languages are standardized for use in a wide range of computer systems. To provide this solution, a translator will be created using pure XML or RDF/XML (Resource Description Framework) (World Wide Web Consortium, 2007) programming so the entire solution would be in XML based languages. This needs to be combined into a comprehensive application that is usable for end user programming of a large range of modeling problems. This involves programming with Semantic Web languages rather than just using them for information representation. This will make translation from humans to computers easier and more reliable than current software systems and languages, and further improve the maintainability of the whole system. The use of Semantic Web languages as programming languages would assist greatly with interoperability as these languages are standardized for use in a wide range of computer systems. A flexible interface built with Semantic Web Languages will provide an interactive programming environment for computer literate non-programmers to manipulate information and construct their own solution oriented models.
The metaphor behind the provision of this End-User programming environment is that of visual representation of interlinked information snippets. These snippets will be visualised as nodes or translated to other views. The nodes can be linked via equations. An example of this is an engineering component, which can be viewed as interconnected nodes of information or as a diagram. The same information can be viewed and translated both ways. The information can be further translated into computer languages to make use of compilers and interpreters that can run models that perform calculation. This research is a test case for a whole new approach that could be possible, of collaborative end user programming by domain experts. The end user programmers will be enabled to use a visual interface where the visualization of the software exactly matches the structure of the software itself, making translation between user and computer, and vice versa, much more practical. Berners-Lee and Fischetti (1999) stated "the world can be seen as only connections, nothing else. We think of a dictionary as the repository of meaning, but it defines words only in terms of other words. A piece of information is really defined only by what it's related to and how it's related." He also writes "There is really little else to meaning. The structure is everything." So connectivity and structure are the crucial factors, enabling users to create and follow the information connections that are required for solving a problem and specify this to the computer. These are the main factors in taking this research and enabling end user programming.
This research is a test case for a whole new approach that could be possible, of collaborative end user programming by domain experts. The end user programmers can use a visual interface where the visualization of the software exactly matches the structure of the software itself, making translation between user and computer, and vice versa, much more practical. Jackiw and Finzer (1993) describe an example where a diagram is translated to a graph representation, the authors explain this as 'spatial programming'. Jackiw and Finzer explain that this type of programming removes the distinction between programmers and users, and helps people to 'understand how a geometric construction can be defined by a system of dependencies'. The thesis research has tended to work the opposite way around, translating graph and tree representations to diagrammatic visualisations, but this translation is valid in either direction. Semantic Web languages are ideal for representing graphs and trees in an open standard way. The spatial, and tree/graph forms both have the same underlying semantics, and therefore can both be translated to computer languages. In fact it would be much better in the long run to use the Semantic Web languages as standardised programming languages for such problems as this would avoid the need to further translate into other programming languages, and systems. The advantage to this is in using Semantic Web languages for representation of information, meta programming, and translation to a visual display for users. The use of Semantic Web languages as a connectivity environment for connecting information, and for connecting users to the information held in Semantic Web data sources enables an environment that could be made easy to use, install and maintain.

References
Berners-Lee, T., Fischetti, M., 1999. Weaving the Web. http://www.w3.org/People/Berners-Lee/Weaving/ - Harper San Francisco; Paperback: ISBN:006251587X

Jakiw, R. N., Finzer, W. F., 1993. The Geometer's Sketchpad:Programming by Geometry. In: A. Cypher, ed. Watch What I Do: Programming by Demonstration. MIT Press, Chapter 1 -http://www.acypher.com/wwid/Chapters/13Sketchpad.html - ISBN:0262032139.

World Wide Web Consortium (W3C) Resource Description Framework (RDF) - http://www.w3.org/RDF/

My Research - http://www.cems.uwe.ac.uk/~phale/.
Modelling - http://www.cems.uwe.ac.uk/amrc/seeds/Modelling.htm
Semantic Web Modelling - http://www.cems.uwe.ac.uk/amrc/seeds/ModellingSemanticWeb.htm

No comments: