Automated Generation of Modelling Programs Using Jena and Protege


This paper explains a technique of User Driven Model Development that could be part of a wider approach of User Driven Programming. This approach involves the creation of a visual environment for software development, where modelling programs can be created without the requirement of the model developer to learn programming languages. The theory behind this approach is explained but the main practical work in creation of this system is in its’ early stages. The basis of this approach is modelling of the software to be produced in Ontology systems such as Jena and Protégé.


The Systems Engineering Estimation and Decision Support (SEEDS) team is part of the Aerospace Manufacturing Research Centre (AMRC) at the University of the West of England (UWE). SEEDS expertise is in applying techniques in managing, categorising and visualising information to provide decision support for design and manufacturing.

The SEEDS team have completed large projects and are experienced in creation of software for costing and decision support modelling. The SEEDS team recently completed the DATUM (Design Analysis Tool for Unit cost Modelling) project with Rolls-Royce aerospace. For this the team created sophisticated decision support models and web output.

The research outlined in this paper unites approaches of object orientation, the semantic web, relational databases, and event driven programming. Tim Berners-Lee defined the semantic web as ‘a web of data that can be processed directly or indirectly by machines’ This research examines ways of structuring information, and enabling processing and searching of the information to provide a modelling capability, and enable the automation of model production.

The main ontology tool used in the research so far is Protégé – home page The projects that use Protégé page links to information about other projects that use this tool. Further research involves the use of Jena to develop the web based view of our ontology, and further Protégé and Jena based tools to develop the user interface for automated programming by end users for this system. Some research of others that have explored this further than us is at []. A particular paper of interest to us, for our research in semantic web based decision support systems is that on the ACUITy system. The presentation and paper for this are at [] and [].


To achieve the aims outlined above it is necessary to allow model developers (who would be users of our software) to collaborate to share and develop models. The method of enabling this is to provide templates to enable non-programmers to develop software models for the purposes that interest them. [Olsson] explains the advantages of increasing user involvement in software development. Collaboration and knowledge sharing would be important in this process with models being sharable over the web. This form of collaboration would be based on the ‘open source’ method of co-operation where source code and explanations are added to a web site and comments and improvements would be encouraged. Some examples of this form of co-operation are the Wikipedia collaborative online encyclopaedia, the Mozilla Firefox browser development and the Semantic Web Environmental directory (SWED) []. The intention is to create an online community that can provide and use free software for modelling and education.

The advantages of open source collaboration are that as well as allowing researchers to co-operate and work together where they share an interest; it will also allow the untapped potential to be developed of those who do not have an official research position. This could include students, people employed outside the academic environment, retired people and amateurs’ who have useful expertise. Astronomy for example has harnessed skills of this very diverse range of people to make new discoveries. The advantage of this wide involvement could be in getting feedback on usefulness, or ease of use of software, as well as their actual involvement in model development.

[Aziz et al.] Examine how open standards software can assist in an organisations’ collaborative product development. The methods used and success of others that had used an approach of web based collaboration have been examined. This approach is outlined in [Ciancarini et al.]; [Huang and Mak]; [Kim et al.]; [Li]; [Morris et al.]; [Nidamarthi et al.]; [Reed et al.]; [Zhang et al.]. The above research reinforced our view that this is a sensible approach.


A web based collaborative approach is demonstrated on our SEEDS team web site at Examples of semantic web costing, searching, and decision support techniques will be freely available and could be used within universities and in outside industry and the community. Such modelling would be useful for, but not limited to, decision support for design and manufacture of products, simulation of manufacturing processes or business processes, economic forecasting, scientific modelling, medicine, business decision making, construction, and cost benefit analysis. It could also be used for modelling of systems for educational use. These models would illustrate and explain processes. Such modelling would be useful to universities as an illustration of concepts to students, and as a chance to participate in the development of modelling systems.

Software Approach

[Huhns] and [Paternò] both explain that alternatives to the current approach to software development are required. This should allow translation from a model-based representation of software to the actual software. This could involve automatically producing software for a semantic web site from visual representations of the problem. The core of this modelling infrastructure would be automated generation of models written using World Wide Web Consortium (W3C) standards based languages and the visualisation of information represented in such W3C standard ways.

Ontology systems such as Protégé [http://prot]égé, Jena, and Kaon either individually or in combination will be used to create our ontology. So far Protégé and Jena have been investigated for this. The use of RDF/XML (Resource Description Framework using Extensible Markup Language syntax) allows XQuery and SPARQL (SPARQL Protocol And RDF Query Language) to be used for searching. The ability of Jena and Protege to save in relational database format also makes it possible to use SQL (Structured Query Language). Using these standards it is possible to represent information in Jena, Protégé, or other ontology systems. All this flexibility is useful when different organisations are not all using the same systems. An important reason for creating an open standards central ontology is that it can be accessed by many different applications. The open standard OWL (Web Ontology Language) is explained by [Bechhofer and Carroll]. Research of others in this field have been investigated [Corcho]; [Corcho and Gómez-Pérez] and [Noy]. Issues involved in visualisation of lightweight ontologies are examined by [Fluit et al.].

This ontology could then be read into a decision support system which outputs results in web formats, this would also allow information that is relevant to different faculties or organisations to be shared. To enable creation of web pages by people who are not experts in this task, open source content management tool such as Rainbow Portal or the Zope Community Content Management Framework (CMF), which is currently used at UWE could be considered. Ajax techniques for creation of highly interactive web pages may assist in this


This approach is to enable a type of very high level Meta programming. Meta-programming and structured language is explained by Dmitriev and [Mens et al]. This is intended to mitigate the problems of cost and time over-run, and failure to achieve objectives that are the common malaise of software development. The creation of a web based visual representation of the information will allow people to examine and agree on information structures. It is envisaged that a translation system to create software from diagrams that represent the problem is developed. The Figure illustrates our approach to provision of a system to enable users to create and/or use their own models.

Translation Process

To achieve this requires –

1 Search trigger(s) resulting from user actions.

2 Knowledge of the relationships between nodes in the tree.

3 Ability to read equations held in a standardised mathematical form.

4 Rules of syntax for the language of the code to be output.

The SEEDS teams’ approach involves creation of an elaborator or translator that converts the diagrammatic representation of the problem into software, in various computer languages or a meta-programming syntax. The software created falls into two categories. The first category is structuring, sorting, and searching of information Jena, Protégé [http://prot]égé, Exist XQuery, Orbeon Xforms This kind of software can be both the ontology editor and the output format. The other category of software would be used for modelling and would be an output, this includes Cost Estimator [Koonce et al.] [Wujek et al.], metaL and Simkin The elaborator needs to follow a structured taxonomy to establish how related concepts represented visually can be represented in equivalent code. The visualisation can be either as a colour coded tree or an interactive SVG (Scalable Vector Graphics) diagram of a component to be modelled.

The research undertaken aims to adapt or create software systems to provide the visual editor for the source tree, and allow model builders to create a model by editing this. By doing so the model builders would create a generic model for a particular modelling subject. DecisionPro can be used to convert the taxonomy into a decision support and modelling system. Vanguard is making their server available for collaborative model development. The model users could then use this decision support and modelling system to create their models. These models would be a more specific subset of the generic model, and could be applied for their own analysis. Our team would also provide a translation mechanism to convert information or models into other languages (primarily web based), and to visualise this information. Researchers could also create individual learning objects for education.


The technique of User Driven Programming can be achieved through the use of highly structured languages and visualisation of these structures to allow editing. Examples of software created this way are available at This project would give people more access to software for modelling, education, and allow them to develop their own software.


Aziz, H., Gao, J., Maropoulos, P., Cheung, W. M. (2005) Open standard, open source and peer-to-peer tools and methods for collaborative product development. Computers in Industry, 56, 260-271.

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.

Ciancarini, P. & Rossi, D. & Vitali, F. (2001) Designing a document-centric coordination application over the Internet. Interacting with Computers, 13 677-693.

Corcho, O., Gómez-Pérez, A. (2000) A Roadmap to Ontology Specification Languages. Proceedings of the 12th International Conference on Knowledge Engineering and Knowledge Management. Chicago, USA.

Corcho, O. Fernández-López, M., Gómez-Pérez, A. (2003). Methodologies, Tools and Languages For Building Ontologies. Where is their Meeting Point?. Data and Knowledge Engineering, 46, 41-64.

Fluit C., Marta S., Harmelen F. V., Staab S., Studer R. (2003) Handbook on Ontologies in Information Systems. Springer-Verlag.

Huang, G. Q., Mak, K. L. (2001) Issues in the development and implementation of web applications for product design and manufacture. Computer Integrated Manufacturing, 14 (1), 125-135.

Huhns, M. (2001) Interaction-Oriented Software Development. International Journal of Software Engineering and Knowledge Engineering, 11 259-279.

Kim Y., Choi Y., Bong Yoo S. (2001) Brokering and 3D collaborative viewing of mechanical part models on the Web, Computer Integrated Manufacturing, 14 (1), 28-41.

Li, W. D. (2005) A Web-based service for distributed process planning optimization. Computers in Industry, 56, 272-288.

Mens, K., Michiels, I., Wuyts, R. (2002) Supporting Software Development through Declaratively Codified Programming Patterns. Expert Systems with Applications 23, 405-413.

Morris, S., Neilson, I., Charlton, C., Little, J. (2001) Interactivity and collaboration on the WWW – is the ‘WWW shell’ sufficient?. Interacting with Computers, 13, 717-730.

Nidamarthi S., Allen R. H., Ram D. S. (2001) Observations from supplementing the traditional design process via Internet-based collaboration tools, Computer Integrated Manufacturing, 14 (1), 95-107.

Noy N.F. (2004) Semantic Integration: A Survey Of Ontology-Based Approaches. SIGMOD Record, Special Issue on Semantic Integration, 33 (4).

Olsson, E. (2004) What active users and designers contribute in the design process. Interacting with Computers 16, 377-401.

Paternò, F. (2005) Model-based tools for pervasive usability. Interacting with Computers 17 (3), 291-315.

Reed, J. A., Follen, G. J., Afjeh A. A. (2000) Improving the Aircraft Design Process Using Web-Based Modeling and Simulation. ACM Transactions on Modeling and Computer Simulation, 10 (1), 58-83.

Zhang, S., Weimen, S., Hamada, G. (2004) A review of Internet-based product information sharing and visualization. Computers in Industry, 54, 1-15.

I am a Researcher in the final year of my PhD. I specialise in applying Semantic Web techniques. My current research is on a technique of ‘User Driven Modelling/Programming’. My intention is to enable non-programmers to create software from a user interface that allows them to model a particular problem or scenario. This involves a user entering information visually in the form of a tree diagram. I am attempting to develop ways of automatically translating this information into program code in a variety of computer languages. This is very important and useful for many employees that have insufficient time to learn programming languages. I am looking to research visualisation, and visualisation techniques to create a human computer interface that allows non experts to create software.

Article Source: