Tuesday, August 14, 2007

Systems Enginering and Simulation

The intention of this project is to create a way for non programmers to create software in high level open standards based declarative languages built with Semantic Web technologies. The reasoning behind this is that if Semantic Web languages can represent data, they can also represent programs, as programs are just a specialised kind of data. The non programmer would program with this declarative language by means of a diagrammatic visualisation.


Many people would like to make greater use of computer technology but are hampered by the need to learn programming languages if they are to fully interact with software. Instead they are limited to the use of certain generic features that are provided for them. A further constraint is the cost of software, and for this project we will develop free software and encourage a community of end-user developers, and modellers.


We aim to provide Semantic Web based modelling and simulation tools that are usable and programmable by end-users. This is in order to ease the difficulties involved in translating requirements between software experts and domain experts. Our research will develop, extend, and combine existing research in provision of web page development tools for end-users, meta-programming, and web based modelling and simulation tools. The diagram below explains the research area we intend to explore.


This research will be part of co-ordinated efforts to enable end-user programming for knowledge management (including e-learning), modelling and decision support, and simulation. Therefore the research will concentrate mainly on translation for simulation and enabling non programmers to create web-based simulation systems. This is illustrated in the figure below.


End User Programming Diagram - Research Aim - Illustrating need to translate between human and computer and the increase in amount of calculation between domains of knowledge management, decision support and simulation. The increase in complexity is of calculation in the direction from knowledge management to decision support to simulation, and of information in the other direction from simulation to decision support to knowledge management.


The main research area will be the interface between Meta-Programming, Modelling and Simulation, and Semantic Web Model Creation, shaded in the figure below. This could allow end-users to develop their own Semantic Web based simulation and modelling tools using a graphical visual interface.


End User Programming Diagram - Research Aim - Illustrating need to translate between human and computer and the increase in amount of calculation between domains of knowledge management, decision support and simulation. The increase in complexity is of calculation in the direction from knowledge management to decision support to simulation, and of information in the other direction from simulation to decision support to knowledge management.


A simple illustration of the techniques that can be used to further this research area is a demonstrator we completed for meta-programming of XML (eXtensible Markup Language) based drag and drop trees. Python is used as a translator between the XML representation of the trees and interactive graphical representations of them. This allows open standards platform independent end-user programming. Such techniques could be used with other Semantic Web based information representations based on languages and structures such as XML, RDF (Resource Description Framework), and OWL (Web Ontology Language), and provision of other controls. These could then be used as graphical components of a simulation system made available over the web. This demonstrator furthered the research of Anderson and Krause [1]. Whiteside also used XML based meta programming to allow end user programming of games with Simkin [2]. Semantic languages provide a higher level declarative view of the problem to be modelled.


Standardisation in XML/RDF enables use of declarative rules for web services. Rules play an important role in artificial intelligence, knowledge-based systems, and for intelligent agents. To allow information sharing and reuse, interoperability, and collaboration an ontology centric approach can be used [3]. Ontologies are defined by Gruber in [4], and he also examines how equations and quantities can be represented in an ontology. Extending such work can enable functions and calculations to be represented in OWL and called by a Semantic Web based programming language.


References


[1] Sample code using drag & Drop with a tree - http://lists.wxwidgets.org/archive/wxPython-users/msg11332.html - Drag and Drop contributed by Sam Anderson, reposted by Dirk Krause.


[2] Simkin - http://www.simkin.co.uk/Links.shtml.


[3] COSMOA: An Ontology-Centric Multi-Agent System For Coordinating Medical Responses To Large-Scale Disasters. Bloodsworth, P., Greenwood, S., 2005. AI Communications Vol 18 (3) Agents Applied in Health Care pp 229-240.


[4] Toward Principles for the Design of Ontologies Used for Knowledge Sharing - Gruber T. R. 1993, http://www2.umassd.edu/SWAgents/agentdocs/stanford/onto-design.pdf - In Formal Ontology in Conceptual Analysis and Knowledge Representation, edited by Nicola Guarino and Roberto Poli, Kluwer Academic Publishers, in press. Substantial revision of paper presented at the International Workshop on Formal Ontology, March, 1993, Padova, Italy. Available as Technical Report KSL 93-04, Knowledge Systems Laboratory, Stanford University.


Other Pages on this subject


http://www.cems.uwe.ac.uk/amrc/seeds/ModellingSemanticWeb.htm.


http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/RDF/RDF.htm.


http://www.cems.uwe.ac.uk/amrc/seeds/softwareengineering.htm.

No comments: