Friday, March 31, 2006

Building Developer Communities

I'm looking for communities and sites that have a mix of those with advanced software skills who want to encourage and enable others to learn to program, and of new starters who want to learn. I'm interested in those who are willing to try out new techniques to make it easier for newstarters (I retrained with vocational courses and Government schemes myself). Anyone interested can reply to this post, or email me at peter2.hale@uwe.ac.uk. I'll link my home page and blog to such sites.

I'm intending to share modelling knowledge by using semantic web techniques to enable a wide range of people to create web models to visualise common problems. Semantic web software will be used to categorise and manage these models. Events would take place to allow a community of developers and users to share their knowledge.

I'm putting examples, and explanations of every form of programming that I've done, and there are 2 others in our team who have also been doing this. I'm also meeting with other semantic web researchers about this idea. I'm particularly interested in SVG, XML, and JavaScript as good languages for web visualisation. I think my page http://www.cems.uwe.ac.uk/~phale/InteractiveSVGExamples.htm has my best examples as they are very interactive SVG examples for IE and Firefox, and I can't find such examples anywhere else, also I can automate the production of these examples from a database. I'm also linking my examples of all types to examples from other web sites. So I'm interested in anyone who has relevant examples.

Friday, March 24, 2006

Thoughts on Complexity - Ontologies

here is another take on complexity (my last post, referring also to Kurt Cagles' http://www.understandingxml.com/), and the problems that arise from complexity. Representing information is another problem where complexity can preclude any single approach to the problem. In order to find our way around large quantities of information it needs to be structured. But the information already exists and is still being created, so this makes it a moving target. I'm sure such matters will be covered at the www2006 conference at Edinburgh 23-26 May http://www2006.org/.

The structuring of ontologies from the top down can be useful, but can only be achieved where the ontology developers have some control over the information. Much of web development and other creation of information is bottom up, in that there is no controlling authority. This is good for inclusiveness and speed of development, and something that encourages community, and encourages individuals to create their own content, which is a good thing. In his interview with the British Computer Society Tim Berners-Lee http://dig.csail.mit.edu/breadcrumbs/blog/4 in answer to a question on ontologies, talks of a top level ontology that can be created to hold certain terms and the need to find, out who is using these terms so that other web pages and databases can be categorised. This would be achieved using URIs and RDF. In answer to what Tim hopes to achieve, he talks of this bottom up development that is going on, using blogs, and wikis etc and a possible approach of 'web science' - 'the science and engineering of web based things that have a bottom up Web-like structure'.

I think this approach is highly relevant to my PhD research of user-driven programming. With UWE (University of the West of England), I'm putting forward a proposal for us and others to be involved in such an approach. In keeping with the open standard and open source approach I advocate above, the draft is available at http://www.cems.uwe.ac.uk/amrc/seeds/semanticwebmodelling.htm. This proposal is to allow creation and use of models by a community and to provide ways of sorting, searching and navigating these models.

Tim-Berners-Lee's interview - http://www.bcs.org/server.php?show=ConWebDoc.3337.

This talk by Nigel Shadbolt explains research about coping with diverse sources of information - http://www.bcs.org/server.php?show=ConWebDoc.3043.

This article by Bill Thompson for the BBC technology site examines new developments in Web 2.0 technologies - http://news.bbc.co.uk/1/hi/technology/4842498.stm.

Monday, March 13, 2006

Thoughts on Complexity - Kurt Cagle

The web site of Kurt Cagle http://www.understandingxml.com/ is an excellent source of information on specific technologies such as XML, XSLT, XUL, SVG, Java, and on the general direction of software and web research. The article 'Thoughts on complexity', which is also available at http://www.oreillynet.com/lpt/wlg/9280 explains the paradoxes involved in trying to make software easier to create and use. This article discusses complexity and abstraction as a complexity management tool. I recommend this is a site to go into the favourites of anyone involved in software development, and will be adding this to my links.

Wednesday, March 01, 2006

Automated Generation of Modelling Programs using Jena and Protégé

Abstract

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é.

Introduction

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' http://www.w3.org/People/Berners-Lee/Weaving/Overview.html. 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.

Collaboration

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 http://en.wikipedia.org/wiki/Main_Page, the Mozilla Firefox browser development http://www.mozilla.org/ and the Semantic Web Environmental directory (SWED) http://www.swed.org.uk/swed/about/. 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.

Methods

A web based collaborative approach is demonstrated on our SEEDS team web site at http://www.cems.uwe.ac.uk/amrc/seeds/. 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://protege.stanford.edu/, Jena http://jena.sourceforge.net/, and Kaon http://kaon.semanticweb.org/ 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) http://jena.sourceforge.net/ARQ/ 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 http://www.rainbowportal.net/ or the Zope Community Content Management Framework (CMF) http://www.zope.org/, which is currently used at UWE could be considered. Ajax techniques for creation of highly interactive web pages may assist in this http://ajaxpatterns.org/wiki/index.php?title=Whats_Ajax%3f.

Translation

This approach is to enable a type of very high level Meta programming. Meta-programming and structured language is explained by Dmitriev http://www.onboard.jetbrains.com/is1/articles/04/10/lop/ 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 http://jena.sourceforge.net/, Protégé http://protege.stanford.edu/, Exist XQuery http://exist.sourceforge.net/, Orbeon Xforms http://www.orbeon.com/. 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 http://www.meta-language.net/ and Simkin http://www.simkin.co.uk/Links.shtml. 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) http://www.cems.uwe.ac.uk/~phale/InteractiveSVGExamples.htm 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 http://www.vanguardsw.com/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.

Conclusions

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 http://www.cems.uwe.ac.uk/~phale/. This project would give people more access to software for modelling, education, and allow them to develop their own software.

References

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.