This blog is about my PhD research (now finished) at University of the West of England into User Driven Modelling. This is to make it possible for people who are not programmers to create software. I create software that converts visual trees into computer code. My web site is http://www.cems.uwe.ac.uk/~phale/. I'm continuing this research and the blog. My PhD is at http://eprints.uwe.ac.uk/17918/ and a journal paper at http://eprints.uwe.ac.uk/17817/.
Friday, August 03, 2007
Drag and Drop Programming
Lieberman [1] blames end user programming difficulties on hard to understand programming languages and techniques and argues for visualisation and translation to code to enable end-user programming. To make end-user programming easier it is possible to develop high level visualised templates and translate these into program code. The Dagstuhl report [2] argues that existing programming languages are not sufficiently dependable for end-users to reliably use. De Souza [3] argues that the goal of human-computer interaction (HCI) will evolve from making systems easy to use to making systems that are easy to develop. A template system will assist in this. Ko [4] explains that end-user programmers must be allowed to focus on their goals, and an important part of the solution is to visualise the whole program execution not just the output, so it is necessary to show the user the whole program flow not just text based bug reports. A simple illustration of the techniques that can be used to further this research area is a demonstrator for meta-programming of XML (eXtensible Markup Language) based drag and drop trees [5], this example was created with AJAX (Asynchronous JavaScript And XML), a Java applet or Python were other options investigated. The code acts as a translator between the XML representation of the trees and interactive graphical representations. This allows open standards platform independent end-user programming. The example is based on the Scand dhtmlxTree [6] and this makes it possible to enable many other programming actions such as adding and deleting nodes, and to create other controls. Repenning [7] argues that visual programming languages using drag and drop mechanisms as a programming approach make it virtually impossible to create syntactic errors, allowing for concentration on the semantics", and Rosson [8] also advocates this technique. Such techniques could be used with other Semantic Web-based information representations implemented with languages and structures such as XML, RDF (Resource Description Framework), and OWL (Web Ontology Language), and provision of other controls. These controls could then be used as graphical components of a simulation system made available over the web. As well as being used for web-based visual programming an environment such as this could also be employed as an interface to PC based software, or as a translator between systems. Semantic languages provide a higher level declarative view of the problem to be modelled. Coutaz [9] explains that "An interactive system is a graph of models related by mappings and transformations." This would fit in well with the structure of RDF, which is also a graph structure.
It is important to investigate new ways of enabling collaboration between all those involved in software creation and use. The use of Semantic Web languages for declarative programming can ease the translation between different representations of information, and ease interoperability between systems. This translation or 'Program Transformation' allows for writing in one representation or language, and translating to another. This is particularly useful for language independent programming, or for high level and end-user translation to a language more easily interpreted by computer systems. The solution to many interoperability and software problems involves programming with Semantic Web languages rather than just using them for information representation. This will make translation for interoperability easier and more reliable, and further improve the maintainability of software systems. The research will involve using and building a visualised Semantic programming layer on languages such as AspectXML, XForms, SPARQL, and XQuery all explained in [10] and Meta languages [11][12] to create software and to build an environment for high level end-user programming. This programming environment can be used for creating programs and an environment for end-user programming. The environment can be computer language and system independent as one representation can be translated into many computer languages or Meta languages. Tools such as Amaya [13] can be used for creating and editing Semantic Web applications and documents. This research is a test case for an approach of collaborative end-user programming by domain experts. The end-user programmers can use a visual interface where the visualisation of the software exactly matches the structure of the software itself, making translation between user and computer, and vice versa, much more practical.
To enable generic end-user programming functionality it is important to develop ‘information representation languages’ based on Semantic Web declarative programming languages. Standardisation in XML/RDF enables use of declarative rules for web services. This environment also has to provide a visual development interface for end-users in a similar way to that of Unified Modeling Language (UML) for professional developers. Repenning [7] and Engels [14] argue this.
References
1] Lieberman, H., 2007. End-User Software Engineering Position Paper. In: End-User Software Engineering Dagstuhl Seminar - http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1092.
[2] Burnett M M, Engels G, Myers B A, Rothermel G, 2007, End-User Software Engineering Dagstuhl Seminar, http://eusesconsortium.org/docs/dagstuhl_2007.pdf.
[3] De Souza, C., 2007. Designers Need End-User Software Engineering. In: End-User Software Engineering Dagstuhl Seminar.[4] Ko, A. J., 2007. Barriers to Successful End-User Programming. In: End-User Software Engineering Dagstuhl Seminar - http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1083.
[5] Drag and Drop, 2007, http://www.cems.uwe.ac.uk/amrc/seeds/Ajax/components.html.
[6] Scand dhtmlxTree, 2007, http://www.scbr.com/docs/products/dhtmlxTree/index.shtml.
[7] Repenning, A., 2007. End-User Design. In: End-User Software Engineering Dagstuhl Seminar - http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1099.
[8] Rosson, M. B., A., 2007. Position paper for EUSE 2007 at Dagstuhl. In: End-User Software Engineering Dagstuhl Seminar. - http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1094.
[9] Coutaz, J., 2007. Meta-User Interfaces for Ambient Spaces: Can Model-Driven-Engineering Help?. In: End-User Software Engineering Dagstuhl Seminar - http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1082.
[10] Programming with XML, 2007, http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/XML/XML.htm#ProgrammingwithXML.
[11] Dmitriev S, 2007, Language Oriented Programming: The Next Programming Paradigm - http://www.onboard.jetbrains.com/is1/articles/04/10/lop/.
[12] Mens K, Michiels I, Wuyts R, 2002, Supporting Software Development through Declaratively Codified Programming Patterns, Expert Systems with Applications Vol 23.
[13] Quint V, Vatton I, 2005, Towards Active Web Clients, DocEng Bristol United - http://wam.inrialpes.fr/publications/2005/DocEng05-Quint.html.
[14] Engels, G., 2007. Model-Driven Development for End-Users, too!? In: End-User Software Engineering Dagstuhl Seminar http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1085.
Other Information -
Drag and Drop Programming - http://www.cems.uwe.ac.uk/amrc/seeds/Ajax/ajax.htm#DragandDropProgramming.
Example Interfaces - http://www.cems.uwe.ac.uk/amrc/seeds/EndUserProgramming.htm#ExampleInterfaces.
Saturday, July 28, 2007
Dagstuhl Seminar End-User Software Engineering - Part 4 - Final Part
End-User Software Engineering - Dagstuhl Seminar - Summary - http://www.dagstuhl.de/en/program/calendar/semhp/?semnr=2007081 - PDF Abstracts and links to papers - http://eusesconsortium.org/docs/dagstuhl_2007.pdf - Margaret M. Burnett, Gregor Engels, Brad A. Myers and Gregg Rothermel - From 18.01.07 to 23.02.07
In 'Meta-User Interfaces for Ambient Spaces: Can Model-Driven-Engineering Help?' http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1082 Joƫlle Coutaz explains how Model Driven Engineering and Service Oriented Architecture can be combined -
"Our approach to UI plasticity brings together MDE (Model Driven Engineering) and SOA (Service Oriented Architecture) within a unified framework that covers both the development stage and the runtime phase of interactive systems."
Coutaz also explains that -
"An interactive system is a graph of models related by mappings and transformations."
This would fit in well with the structure of RDF (Resource Description Framework) a Semantic Web standard which is also a graph structure.
In 'Model-Driven Development for End-Users, too!?' http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1085 Gregor Engels of University of Paderborn explains that UML (Unified Modeling Language) should be extended to allow development of user interfaces in order to assist end-users to program -
"The UML is strong in modelling the internal functionality of a software system, but weak in modelling user interface aspects of a system. Thus, with respect to the well-known MVC (Model-View-Controller) pattern, the UML supports the Model aspect, while neglecting the View and Controller aspect."
In 'Position Paper for Dagstuhl 2007 EUSE Workshop' http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1094 Mary Beth Rosson of Pennsylvania State University explains their development of a drag and drop interface for web based visual programming.
In 'Rethinking the Software Life Cycle: About the Interlace of Different Design and Development Activities' http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1084 Yvonne Dittrich of University of Copenhagen argues that more research is needed into the software lifecycle and methods and tools needed for end-user developers, especially when they are collaborating. These end-users often need to adjust old software for new purposes.
In 'Software environments for supporting End-User Development' http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1081 Maria Francesca Costabile, Antonio Piccinno also explain that new methodologies and environments are required for supporting end-user collaborative development.
In 'What is an End-User Software Engineer?' http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1080 Steven Clarke of Microsoft examines the characteristics of end-user developers in order to assist with meeting their needs.
My home page is http://www.cems.uwe.ac.uk/~phale/.
I have a page on End-User Programming at http://www.cems.uwe.ac.uk/amrc/seeds/EndUserProgramming.htm.
Friday, July 27, 2007
Dagstuhl Seminar End-User Software Engineering - Part 3
End-User Software Engineering - Dagstuhl Seminar - Summary - http://www.dagstuhl.de/en/program/calendar/semhp/?semnr=2007081 - PDF Abstracts and links to papers - http://eusesconsortium.org/docs/dagstuhl_2007.pdf - Margaret M. Burnett, Gregor Engels, Brad A. Myers and Gregg Rothermel - From 18.01.07 to 23.02.07
In 'Exploiting Domain-Specific Structures For End-User Programming Support Tools' http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1086 Robin Abraham and Martin Erwig of Oregon State University integrate spreadsheet modelling into the UML modelling process.
In 'Interdisciplinary Design Research for End-User Software Engineering' http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1078 Alan Blackwell explains the need for interdisciplinary research on the end-user programming problem to identify techniques within software engineering that can assist with this problem.
In 'Meta-Design: A Conceptual Framework for End-User Software Engineering' http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1087 Gerhard Fischer of University of Colorado, Center for LifeLong Learning and Design (L3D) explains the concept of Meta-Design -
"Meta-design is an emerging conceptual framework aimed at defining and creating social and technical infrastructures in which new forms of collaborative design can take place. It extends the traditional notion of system design beyond the original development of a system. It is grounded in the basic assumption that future uses and problems cannot be completely anticipated at design time, when a system is developed."
Fischer also explains that it is the mismatches between their needs and the software support that enables new understandings.
Fischer argues the need for allowing end-users to design software -
"A great amount of new media is designed to see humans only as consumers. The importance of meta-design rests on the fundamental belief that humans (not all of them, not at all times, not in all contexts) want to be and act as designers in personally meaningful activities. Meta-design encourages users to be actively engaged in generating creative extensions to the artifacts given to them and has the potential to break down the strict counterproductive barriers between consumers and designers."
Fischer also argues that software development can never be completely delegated to software professionals because domain experts are the only people that fully understand the domain specific tasks that must be performed.
He puts forward a hypothesis that this emphasis on end-user development also changes the emphasis on testing -
"Software testing is conducted differently. Because domain expert developers themselves are the primary users, complete testing is not as important as in the case when the developers are not the users."
He also argues for an approach to enabling end-user programming possible that makes it interesting to end-users -
"Many times the problem is not that programming is difficult, but that it is boring (as we were told by an artist). Highly creative owners of problems struggle and learn tools that are useful to them, rather than believing in the alternative of "ease-of-use," which limits them to preprogrammed features."
My home page is http://www.cems.uwe.ac.uk/~phale/.
I have a page on End-User Programming at http://www.cems.uwe.ac.uk/amrc/seeds/EndUserProgramming.htm.
Thursday, July 26, 2007
Dagstuhl Seminar End-User Software Engineering - Part 2
End-User Software Engineering - Dagstuhl Seminar - Summary - http://www.dagstuhl.de/en/program/calendar/semhp/?semnr=2007081 - PDF Abstracts and links to papers - http://eusesconsortium.org/docs/dagstuhl_2007.pdf - Margaret M. Burnett, Gregor Engels, Brad A. Myers and Gregg Rothermel - From 18.01.07 to 23.02.07, the Dagstuhl Seminar 07081 End-User Software Engineering was held in the International Conference and Research Center (IBFI), Schloss Dagstuhl. During the seminar, several participants presented their current research, and ongoing work and open problems were discussed.
I have been reading this abstracts paper from the Dagstuhl Seminar End-User Software Engineering and it has lots of interesting points to make.
In 'End-User Design' http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1099 Professor Alexander Repenning of University of Lugano explains the need for enhancements to UML (Unified Modeling Language) to aid end-user programming.
He makes the point that
"Visual programming languages using drag and drop mechanisms as programming approach make it virtually impossible to create syntactic errors."
So -
"With the syntactic challenge being – more or less – out of the way we can focus on the semantic level of end-user programming."
In 'End-User Development Techniques for Enterprise Resource Planning Software Systems' http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1097 Michael Spahn, Stefan Scheidl, and Todor Stoitsev explain SAP research into End-User Programming, they explain -
"End-users of ERP systems are domain experts but not necessarily IT professionals, limiting their ability to adapt the software by themselves to their own needs and forcing them to indirectly influence the adaptation processes by communicating their needs to IT professionals. Empowering the end-users to adapt the software by themselves is an important step in reducing customization costs and enabling high-quality tailoring of software and working environments to the needs of modern information and knowledge workers."
They explain that users must be empowered to explore, process, and analyse information in a user friendly way, and create and adapt reports and queries. An abstraction layer should ease this by hiding technical details to allow for concentrating on business needs.
In 'End-User Software Engineering and Professional End-User Developers' http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1095 Judith Segal of the Open University examines issues and problems in Professional end-user development, the author explains -
"These developers are distinguished from other end-user developers in two ways. The first is that, consistent with their being familiar with formal notations and logical scientific reasoning, they tend to have few problems with coding per se. The second is that, as a class, they have a history of developing their own software which long predates the advent of the PC."
In 'End-User Software Engineering Position Paper' http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1092 by Henry Lieberman of MIT Media Laboratory he asks -
"Why is it so much harder to program a computer than simply to use a computer application? I can't think of any good reason why this is so; we just happen to have a tradition of arcane programming languages and mystically complex software development techniques. We can do much better."
He goes on to explain -
"HCI has amassed an enormous body of knowledge about what makes interfaces easy to use, and this has been applied widely to many computer applications for end users. Oddly, little of this has been applied to making interfaces for programming easier to use. Non-experts tend to believe that programmers practice a kind of voodoo, perceived to be naturally arcane and mysterious. Since they can handle it so well, programmers aren't perceived as needing ease of use. But we all pay the price for this misconception."
Lieberman explains the goal of this research -
"Finally, as much as is possible, we should make this process as automatic as we can, though the use of program transformation, dependency maintenance, automated reasoning, mixed-initiative interfaces, visualization, and machine learning. Otherwise, I think it will be too much overhead for a non-expert user themselves to keep track of the myriad facets that software development entails. If we succeed in this, people will become End-User Software Engineers without their even realizing it."
My home page is http://www.cems.uwe.ac.uk/~phale/.
I have a page on End-User Programming at http://www.cems.uwe.ac.uk/amrc/seeds/EndUserProgramming.htm.
Wednesday, July 25, 2007
Dagstuhl Seminar End-User Software Engineering - Part 1
End-User Software Engineering - Dagstuhl Seminar - Summary - http://www.dagstuhl.de/en/program/calendar/semhp/?semnr=2007081 - PDF Abstracts and links to papers - http://eusesconsortium.org/docs/dagstuhl_2007.pdf - Margaret M. Burnett, Gregor Engels, Brad A. Myers and Gregg Rothermel - From 18.01.07 to 23.02.07, the Dagstuhl Seminar 07081 End-User Software Engineering was held in the International Conference and Research Center (IBFI), Schloss Dagstuhl. During the seminar, several participants presented their current research, and ongoing work and open problems were discussed.
I have been reading this abstracts paper from the Dagstuhl Seminar End-User Software Engineering and it has lots of interesting points to make.
In the introduction the report http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1098 states - "The number of end users creating software is far larger than the number of professional programmers. These end users are using various languages and programming systems to create software in forms such as spreadsheets, dynamic web applications, and scientific simulations. This software needs to be sufficiently dependable, but substantial evidence suggests that it is not."
This is a good point, and can be related to a point in 'Barriers to Successful End-User Programming' http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1091 by Andrew Ko http://www.cs.cmu.edu/~ajko Carnegie Mellon University about end-user programmers
"Some of them are scientists, some are artists, others are educators and other types of professionals. One thing that all of these people have in common is that their goals are entirely unrelated to producing code."
Andrew Ko explains how this causes a problem -
"the fact that end-user programmers are motivated by their domain and not by the merits of producing high-quality, dependable code, means that most of the barriers that end users encounter in the process of writing a program are perceived as distractions. This is despite the fact that such barriers can represent fundamental problems in end-users' program's or their understanding of how to use a programming language effectively."
the problem is -
"how can tools help end-user programmers' improve their programs' dependability, while allowing them to remain focused on their goals, rather than their code?"
An important part of the solution is to visualise the whole program execution not just the output. Andrew Ko states -
"when a user was trying to diagnose their program's failure, they had to base their hypothesis of what caused the failure just on what they could see in the program's output, rather than on information about the program's execution. In many of these situations, users premature decisions led to errors."
A further problem is that of programs which were intended to be temporary and owned by a particular person becoming central to a company, this often happens with spreadsheets. Ko explains -
"We frequently hear anecdotes about how a one-off excel spreadsheet meant to be temporary became the centerpiece of some accounting logic. How often do such organizational dependencies occur, and how important do such program's become? What can tools do to help the future owners of these programs learn about the program's history and design?"
Mark D Gross explains Carnegie Mellon University work involving end-user programming by designers using diagrams and scratchpads in "Designers Need End User Software Engineering" http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1090.
In "End User Programming for Scientists: Modelling Complex Systems" http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1077 Andrew Begel of Microsoft Research explains -
"Model creation cannot be turned over to a programmer-for-hire without causing the model to become a black box. In order to ensure the validity of the model and stand behind its experimental results, the scientist must be intimately knowledgeable about its innards as well as its outward behaviors."
Text based Computer languages are often too obscure for end-user programmers, Bagel explains -
"Learning a text-based programming language is difficult for novices who want to be programmers. In the first few weeks of learning a language, syntax rules are often the most difficult to comprehend, with semantics interleaved. Non-programmers face these problems, in addition to lacking an engineering mindset to help form mental models of how they want to make the computer do what they want."
In 'End-user (further) development: A case for negotiated semiotic engineering' http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1083 Clarisse Sieckenius de Souza of Departamento de InformƔtica, PUC-Rio makes the Quote Liberman et al -
"We think that over the next few years, the goal of human-computer interaction (HCI) will evolve from just making system easy to use (even though that goal has not yet been completely achieved) to making systems that are easy to develop"
From
Lieberman, H.; Parternò, F.; Klann, M.; Wulf, V. (2006) End-user development: An emerging paradigm. In End-User Development (Lieberman, Paternò and Wulf, Eds.). Springer. p. 1.
My home page is http://www.cems.uwe.ac.uk/~phale/.
I have a page on End-User Programming at http://www.cems.uwe.ac.uk/amrc/seeds/EndUserProgramming.htm.
Monday, July 23, 2007
User Driven Modelling - Detailed Explanation - Part 5 - Conclusion
I compared the approach of developing decision support models using a spreadsheet, for design and costing, to the approach of User Driven Modelling, with open standards languages, and a web interface for this purpose. I conclude that the use of spreadsheets for this purpose is beset by problems. These relate to Maintenance, Extensibility, Ease of Use, and Sharing of Information.
But an alternative is required so modellers can continue their work without having to rely on software developers. The alternative approach involves development of a system, where a model builder, via visual editing of library taxonomies can undertake maintenance and extension of information. As yet a prototype only has been created for this, and a great deal more work is required to finalise the structure for the holding of this information, and agree standards for terminology. Also I need to provide more validation of user input.
However dealing with this proof of concept has indicated to us that it is far easier to maintain, search and share information using this approach than it is using spreadsheets. The ability to visualise, search and share the information using structured languages and web-pages, is a huge advantage, and allows us to create dynamic image views and decision support models over the web.
Home Page - http://www.cems.uwe.ac.uk/~phale/.
End User Programming - http://www.cems.uwe.ac.uk/amrc/seeds/EndUserProgramming.htm.
Semantic Web Modelling - http://www.cems.uwe.ac.uk/amrc/seeds/ModellingSemanticWeb.htm.
Friday, July 20, 2007
User Driven Modelling - Detailed Explanation - Part 4 - Translation
The approach involves adapting or creating software systems to provide the visual editor for the source tree, and model builders would create a model by editing this. By doing so they would create a generic model for a particular modelling subject. This is enabled by provision of translation software to translate the taxonomy into a decision support and modelling system. The model users could then use this decision support and modelling system to create their models. These models are a more specific subset of the generic model, and could be applied for their own analyses. Current research is on provision of a translation mechanism to convert information or models into other languages (primarily web based), and to visualise this information. This mechanism has been used in projects with two major aerospace companies. Examples of this are shown later in the article.
The alternative approach involves creation of an elaborator that can output code, in various computer languages or a Meta-programming syntax such as metaL [8] or Simkin [9]. The elaborator needs only a few pieces of information. All information other than that dependant on user interaction, including the names of each node and its relationships to other nodes, needs to be held in a standardised data structure, e.g. a database or structured text file(s). A visual interface to this ontology is required so that model builders can maintain and extend it.
Each node (elaborator) needs to be provided with the following pieces of information -
1) A trigger sent as a result of user action. This is a variable containing a list of value(s) dependant on decisions or requests made by the user the last time the user took action. Each time the user makes a request or a decision, this causes the production of a tree or branch to represent this. This trigger variable is passed around the tree or branch as it is created. The interface to enable this is connected to and reads from the ontology.
2) Knowledge of the relationship between this node and its' immediate siblings e.g. parents, children, attributes. So the elaborator knows which other elaborators to send information to, or receive from.
3) Ability to read equations. These would be mathematical descriptions of a calculation that contains terms that are items in the ontology. The equation would be contained within an attribute of a class, e.g. The class Material Cost would have an attribute Material Cost Calculation that holds an equation.
4) Basic rules of syntax for the language of the code to be output.
The way the elaborator finds the information held in 2 and 3 is dependent on the action that is taken in 1. Thus, if a suitable ontology is created the basis of the rules of construction of the code to be created are defined 4, and the user has made choices, the user needs to take no further action and just wait for the necessary code to be output.
The translation mechanism is illustrated on my web site http://www.cems.uwe.ac.uk/~phale/ using a simple example - http://www.cems.uwe.ac.uk/~phale/RectangleDemo/RectangleDemo.viewlet/RectangleDemo_launcher.html.
References
1 Ambler, S. W. (2003). The Object-Relational Impedance Mismatch, http://www.agiledata.org/essays/impedanceMismatch.html.
2 Hunter, A. (2002). Engineering Ontologies, http://www.cs.ucl.ac.uk/staff/a.hunter/tradepress/eng.html.
3 Fluit, C., Marta S., Harmelen F. V. (2003). Supporting User Tasks through Visualisation of Light-weight Ontologies, http://www.cs.vu.nl/~frankh/abstracts/OntoHandbook03Viz.html.
4 Bechhofer, S. and Carrol, J. (2004). Parsing owl dl: trees or triples?, Proceedings of the 13th international conference on World Wide Web, NY, USA: 266 - 275.
5 Corcho, O. and 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.
6 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.
7 Noy, N.F. (2004). Semantic Integration: A Survey Of Ontology-Based Approaches. SIGMOD Record, Special Issue on Semantic Integration, 33 (4).
8 Lemos, M. (2006). MetaL: An XML based Meta-Programming language, http://www.meta-language.net/.
9 Simkin. (2006). A high-level lightweight embeddable scripting language which works with Java or C++ and XML, http://www.simkin.co.uk/.
Tuesday, July 17, 2007
User Driven Modelling - Detailed Explanation - Part 3 - Criteria Necessary
Translating concepts into an implementation is difficult. The difficulty of trying to explain the subjects of interest in a call for papers, or proposals illustrates this problem. Because of the ambiguity of words, there is always going to be a problem of interpretation between those who specify the requirements, and those who need to understand and interpret them.
For software development, a good way to reduce the level of misunderstandings is to go through the loop from concept to design to implementation quickly and efficiently so that feedback can be returned from the software model. Then mistakes can be seen and corrected quickly. It becomes much easier to achieve this high speed development, if the interface for development is made sufficiently easy to understand, so that a domain expert can use it to create the software, or at least a simple prototype that a developer can then work with and improve. Even if the aim of the users is to specify requirements rather than create programs, creating working programs conveys requirements much better than any other form of requirement specification.
It may also prove possible to work in reverse from implementation to design, or design to conceptual model. A UWE paper explains how ontologies could be mapped to conceptual models, El-Ghalayini Et al. [1]. This process can be made easier if the same open standard software representations, languages, and structures are used throughout this process. This would be useful for checking software is designed well or re-using software designs.
User involvement is important in the development of software but a domain expert does not necessarily possess expertise in software development, and a software developer cannot have expertise in every domain to which software might apply. So it is important to make it possible for software to be created using methods as close as possible to that which the domain expert normally uses. The proportion of domain experts in a particular domain (aerospace engineering) for example who can develop their own programs is fairly low, but the proportion that are computer literate in the everyday use of computers is much higher. If this computer literacy is harnessed to allow the domain experts to develop and share models, the productivity for software development will be increased and the proportion of misunderstandings between domain experts and developers reduced. The domain experts can then explore a problem they are trying to solve and produce code to solve it. The role of developers would then become more that of a mentor and enabler rather than someone who has to translate all the ideas of experts into code themselves. Other developers may work at providing better translation software for the experts.
User Driven Model Development
The intention of the research into User Driven Modelling (UDM) and more widely User Driven Programming (UDP) 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. The research involves developing 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. To achieve this, visual editors are used to create and edit taxonomies to be translated into code. To make this possible, it is also important to examine visualisation, and visualisation techniques to create a human computer interface that allows non-experts to create software.
The research mainly concentrates on using the above technique for modelling, searching and sorting. The technique should be usable for other types of program development. Research relevant to User Driven Programming in general is covered, as this could be applied to the problem in future.
This research 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' [2]. The research examines ways of structuring information, and enabling processing and searching of the information to provide a modelling capability.
UDM could help increase user involvement in software, by providing templates to enable non-programmers to develop modelling software for the purposes that interest them. If more users of software are involved in creation of software and the source of the code is open, this allows for the creation of development communities that can share ideas and code and learn form each other. These communities could include both software experts, and domain experts who would be much more able to attain the expertise to develop their own models than they are using current software languages.
Criteria necessary for User Driven Model Development
This section explains the theory behind the User Driven Modelling approach, and the factors necessary to make this approach possible. For this research the focus is on combining the development of dynamic software created in response to user actions, with object oriented, rule based and semantic web techniques. Research has examined ways of structuring information, processing and searching this information to provide a modelling capability. Research by Aziz et al. [1] examines how open standards software can assist in an organisations collaborative product development, and Wang et al. [2] outline an approach for integrating distributed relational database systems. Our automated production of software containing recursive Structured Query Language (SQL) queries enables this. This approach is a type of very high level Meta-programming. Meta-programming, and structured language is explained by Dmitriev [3] and Mens et al. [4]. The approach proposed is intended to solve the problems of cost and time over-run, and failure to achieve objectives that are the common malaise of software development projects. The creation of a web based visual representation of the information will allow people to examine and agree on information structures.
Firstly it is necessary to find a way for people with little programming expertise, to use an alternative form of software creation, that can later be translated into program code. The main approach taken was the use of visual metaphors to enable this creation process, although others may investigate a natural language approach. The decision on what combination of diagrammatic or natural language to use in the representation may be influenced by the type of user and the domain to be modelled. Engineers usually deal with diagrams as a regular part of their work, so understand this representation particularly well. In fact developers also use metaphors from engineering diagrams in order to provide a user interface for software design. This is explained in Tollis [5].
A translation method can then be provided that converts this representation into program code in a number of languages, or into a Meta-language that can then be further translated. In order to achieve this, it is necessary for the translator to understand and interpret equations that relate objects in the visual definition and obtain the results. In order for the user to understand the translation that has been performed it is then important to visualise the translated code, and this must be accessible to others who use the translated implementation. Web pages are a useful mechanism for this as they are widely accessible.
This visualisation of results is essential to express clearly their meaning. Words in a report document can be ambiguous. So the relationship of results to inputs must be clearly shown.
References
1 El-Ghalayini, H., Odeh, M., McClatchey, R., Solomonides, T. (2005). Reverse engineering ontology to conceptual data models, http://www.uwe.ac.uk/cems/graduateschool/news/posters/conference/conference2005.pdf, Graduate School Conference, 114-119.
2 Berners-Lee, T. (1999). Weaving the Web, Orion business - now Texere, http://www.w3.org/People/Berners-Lee/Weaving/Overview.html.
3 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.
4 Wang, C.-B., Chen, T.-Y., Chen, Y.-M., Chu, H.-C. (2005). Design of a Meta Model for integrating enterprise systems, Computers in Industry, 56: 205-322.
5 Dmitriev, S. (2004). Language Oriented Programming: The Next Programming Paradigm, http://www.onboard.jetbrains.com/is1/articles/04/10/lop/.
6 Mens, K., Michiels, I., Wuyts, R. (2002). Supporting Software Development through Declaratively Codified Programming Patterns, Expert Systems with Applications, 23: 405-413.
7 Tollis, I. G. (1996). Graph Drawing and Information Visualization, ACM Computing Surveys, 28A(4).
My Home Page is at http://www.cems.uwe.ac.uk/~phale/.
More Information on End-User Programming research is at - http://www.cems.uwe.ac.uk/amrc/seeds/EndUserProgramming.htm.
More information on Semantic Web research is at - http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/RDF/RDF.htm.
Friday, July 13, 2007
User Driven Modelling - Detailed Explanation - Part 2 - Research Approach
The research applies this User Driven technique to aerospace engineering but it should be applicable to any subject. The basis of the research is the need to provide better ways for people to specify what they require from computer software using techniques that they understand, instead of needing to take the intermediate steps of either learning a computer language(s) or explaining their requirements to a software expert. These intermediate steps are expensive in terms of time, cost, and level of misunderstanding. If users can communicate intentions directly to the computer, they can receive quick feedback, and be able to adapt their techniques in a quick and agile way in response to this feedback.
A modelling environment needs to be created by software developers in order to allow users/model builders/domain experts to create their own models. This modelling environment could be created using an open standard language such as XML (eXtensible Markup Language). As the high level translation though this would depend on tools developed using lower level languages, this is why tools such as Protege and DecisioPro http://www.vanguardsw.com/are used. Vanguard are creating a modelling network where universities can share decision support models over a network [Vanguard 2006]. This tool was used because it was selected during a project to evaluate, and then use software to solve costing problems. We are creating a modelling network that will link to that of Vanguard http://www.cems.uwe.ac.uk/amrc/seeds/models.htm.
Until recently XML has been used to represent information but languages such as Java, C++, and Visual Basic have been used for the actual code. Semantic languages such as XML could be used in future for software development as well as information representation, as they provide a higher level declarative view of the problem.
A requirement of this research is that open standard semantic languages are used to represent information, to be used both as input and output of the model. These languages are based on XML. These same open standard languages can be used for developing the program code of models. It is proposed that software and information represented by the software, be separated but represented in the same open standard searchable way. Software and the information it manipulates are just information that has different uses, there is no reason why software must be represented differently represented differently from other information. So XML can be used both as the information input and output by the application, and for the definition of the model itself. The model can read or write information it represents, and the information can read from or write to the model. This recursion makes 'meta-programming' possible. Meta programming is writing of programs by other programs. The purpose of this is to provide a cascading series of layers that translate a relatively easy to use visual representation of a problem to be modelled, into code that can be run by present day compilers and interpreters. This is to make it easier for computer literate non-programmers to specify instructions to a computer, without learning and writing code in computer languages. To achieve this, any layer of software or information must be able to read the code or the information represented in any other. Code and information are only separated out as a matter of design choice to aid human comprehension, they can be represented in the same way using the same kinds of open standard languages.
Dynamic software systems such as outlined by Huhns [1]. Huhns explained that current techniques are inadequate, and outlines a technique called Interaction-Oriented Software Development, concluding that there should be a direct association between users and software, so that they can create programs, in the same way as web pages are created today. Paternò [2] explains research that identifies abstraction levels for a software system. These levels are task and object model, abstract user interface, concrete user interface, and final user interface. Stages take development through to a user interface that consists of interaction objects. This approach can be used for automating the design of the user interface and the production of the underlying software. Paternò states that 'One fundamental challenge for the coming years is to develop environments that allow people without a particular background in programming to develop their own applications'. Paternò goes on to explain that 'Natural development implies that people should be able to work through familiar and immediately understandable representations that allow them to easily express relevant concepts'.
The methods used for this representation and translation will be explained in the rest of this document.
References
1 Huhns, M. (2001). Interaction-Oriented Software Development. International Journal of Software Engineering and Knowledge Engineering, 11: 259-279.
2 Paternò, F. (2005). Model-based tools for pervasive usability. Interacting with Computers, 17(3): 291-315.
My Home Page is www.cems.uwe.ac.uk/~phale/.
Thursday, July 05, 2007
User Driven Modelling - Detailed Explanation - Part 1 - Research Aim
User Driven Programming (UDP) and User Driven Modelling (UDM) are techniques of End-User Programming, http://www.cs.cmu.edu/~bam/papers/EUPchi2006overviewColor.pdf explains End User Programming. A diagram from this presentation illustrates how small a proportion of development is carried out by professional developers.
Categories of User
It is important to distinguish between the two different types of users for the system, as they would work on different parts of the overall system. However a person may be represented in either or both categories.
Model Builders
Model builders create or edit the semantic representation of the model in an ontology editor in order to create models. Model builders do not need knowledge of a programming language, but do need training in how to use the ontology interface to create a model, and some knowledge of the domain to which it is to be applied.
Model Users
Model users make decisions based on their domain knowledge. This type of user manipulates the tree representation to obtain a result based on the input values they know, or otherwise based on default values. They will want to be able to use a model to evaluate a problem in order to help in decision making.
Expertise of Users
Within this paper the terms user, and domain expert are used interchangeably. The user is a domain expert who wants a problem represented and modelled using software. The domain is engineering but our research could be applied to other domains. The users/domain experts may well be computer literate and able to model certain problems using a software tool such as a spreadsheet. For reasons that will be explained later, this is only sufficient for simpler problems. The reasons that spreadsheets should not be used to represent complex models are connected with difficulties in maintaining, extending, and reusing spreadsheet models. This might not be such a problem in future if research such as that of Oregon State and Houston Universities can succeed in automatically generating correct spreadsheets, and solving errors of meaning (semantic errors) [2].
For now, to be able to model a complex problem, the users/domain experts currently must specify their requirements to other software experts, who may or may not have domain knowledge themselves. It is difficult to find and afford those who have sufficient expertise in both the software and the domain. Someone without the domain knowledge may not understand the requirements. Putting the right team together is a difficult balancing act, and sometimes may be difficult or impossible.
Software development is time consuming and error prone because of the need to learn computer languages. If people could instruct a computer without this requirement they could concentrate all their effort on the problem to be solved. This is termed User Driven Programming (UDP) within this paper, and for the examples demonstrated the term User Driven Modelling (UDM) is used to explain the application of User Driven Programming to model development. This research aims to create software that enables people to program using visual metaphors. Users enter information in a diagram, which for these examples is tree based. Tree based visualisation is often a good way of representing information structures and/or program code structures. The software developed as part of this research translates this human readable representation into computer languages. The tree also shows the flow of information. This technique is a kind of End User Programming, research in this area is undertaken by the EUSES (End Users Shaping Effective Software) research collaboration [3].
Our research is explained with examples at www.cems.uwe.ac.uk/~phale/.
References
1 Olsson, E. (2004). What active users and designers contribute in the design process, Interacting with Computers, 16: 377-401.
2 Stanford University. (2006). Stanford University - Welcome to protƩgƩ, protege.stanford.edu/.
3 EUSES. (2006). End Users Shaping Effective
Wednesday, June 27, 2007
E-Learning using Semantic Web and End-User Programming Techniques
Introduction Although there are web modelling tools available it still needs considerable effort to adapt these tools for educational use. Research is needed into creation of Semantic Web models for educators to use in order to create learning objects and models. This educational modelling research should focus on the creation of a web based knowledge management system, and migration of simple models that are normally created in spreadsheets to a shared learning environment.
With the development of technologies under the broad terms of Semantic Web and Web 2.0 there are opportunities to establish a highly interactive web based learning environment. The constructionist approach to understanding problems is to learn about them by modelling them. This approach can be used in combination with research into enabling end-user programming techniques in order to provide an environment for non programmers to model their problems. Visualisation and interaction provide rapid feedback that gives a powerful representation of the environment to be modelled.
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 features that are provided for them. A further constraint is the cost of software, and it is important to develop free software and encourage a community of end-user developers, and modellers. The aim should be to create a software development environment that enables people to customise their own software solution. This is an alternative to provision of software as a finished article that can't be changed. The e-learning software can be customised without requiring programming expertise.
Methodology A Semantic Web modelling infrastructure could be created to be the basis of future research in learning systems. In order to achieve these aims it is important to examine applications that assist in model building and critically review them. The system we could be used to promote engineering to a skeptical public who see the profession as poorly paid and dirty, 'House of Lords Select Committee on Science and Technology report science and society' [1], and remote from the public [2]. The aim of this research is to try to bring together the areas of E-Learning, End-User Programming and the Semantic Web.
Since Engelbart's Augment [3] there have been attempts to create systems to aid learning. Papert [4] and Smith [5] built on the Augment research to develop a method of Human Computer Interaction (HCI) that can be applied to e-learning. These systems were defined prior to the Semantic Web. It is important now to re-examine and apply this research using Semantic Web/Web 2.0 tools and techniques. Some examples are available [6], more information about the history of end-user programming is available [7].
Mechanisms of Web 2.0 [8] applications include Google web spreadsheets [9]. These applications are increasing in popularity, and can provide modelling capability over the Web, the use of Web 2.0 for public policy is examined in [10]. 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 also allows the untapped potential to be developed of those who do not have an official research position. This includes 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 expertise provided by anyone involved can be applied to feedback on usefulness, or ease of use of software, as well as actual involvement in software development. This means feedback would be sought from users of software even if they were not software experts. Researchers would benefit the community by providing education tools online and for libraries. This is different from other open source communities in that the intention is to make the software easier to use and develop, and so involve those who have not previously been capable of participating in software development.
An E-Learning and Modelling tool could bring together experts in science, engineering, systems modelling, computing, web development, and Human Computer Interaction. In any location there are likely to be several researchers examining a different part of a related overall subject, such as web based systems. This means there is a need to co-ordinate researchers, in computing and engineering in a project to link together work on information management and visualisation for modelling and decision support.
Many people who are experts in their domain want to create software models. Scaffidi et al [11] show that most people who develop software are end users not professional programmers. End-user programming is particularly important in this research to make it possible for people who do not have a programming background to create their own educational tools. Semantic Web tools and techniques can be used to create a web based end-user programming environment, these aims are also explained in [12]. People can then use this to create their own software. This software could allow interactive visual modelling of information. This corresponds to the type of work normally undertaken using spreadsheets for modelling, and web editors for knowledge management.
Semantic/Web 2.0 Web Tools The need is for an alternative way of representing these models, which does not require the user to write code. The tool created must make it practical to interact with and change educational models and to share information with others. Such a project can involve use of editing tools such as wikis [13][14][15], blogs, and semantic web editors [16][17][18] to allow discussion and explanation of the models.
There is an urgent need for Semantic Web tools to illustrate the benefits this technology can provide for education, 'EASE: The European Association Semantic Web Education' [19] explains this need. Some Semantic Web tools are available, explained by EASE and in the Jena User Conference [20] or being developed at present, but they are still difficult for people to make use of as they require a good deal of development expertise. REASE (the repository of EASE for learning units) [21] provides a way to find and create learning materials for industrial applications of Semantic Web technologies.
The key problem is enabling a Semantic Web infrastructure that will be the basis for future research in learning systems. To achieve this, a modelling environment needs to be created in order to allow people to customise their own models. This environment can be created using an open standard language such as XML (eXtensible Markup Language). As the high level translation this infrastructure would depend on tools developed in order to assist the user, provide an interface and manage the user interface. This is why tools should be used such as ProtƩgƩ [13], Amaya [16][17][18]. Until recently XML has been used to represent information, and programming languages used for actual code. Semantic languages such as XML can be applied to software development as well as information representation, as they provide a higher level declarative view of the problem. Semantic Web techniques should be used because they can facilitate computer based communication. Berners-Lee defined the Semantic Web as 'a web of data that can be processed directly or indirectly by machines' [22]. Flexibility is essential when different people are not all using the same systems. To achieve this flexibility ontology languages such as the open standard OWL (Web Ontology Language) [23] can be used. OWL can be searched using SPARQL [24] because it is based on RDF (Resource Description Framework)/XML, and can be searched and accessed using XQuery [25] and XForms [26].
End-User Programming An end-user programming project could involve co-operation with the Institute for End User Computing (IEUC) [27]. Other End-User Programming Consortiums are End-Users Shaping Effective Software (EUSES) [28] and Network of Excellence on End User Development (EUD.Net) [29]. An end-user programming environment can make use of 'Program Transformation'. Program Transformation allows for writing in one representation or language, and translating to another. This is particularly useful for language independent programming, or for high level end-user programming that can then be translated to a language more easily understood by computer systems. This research is influenced by the theory of constructionism explained in [30] and the use of Logo for teaching [31] and [32]. This research could be particularly focused on the web environment, as this is cheap to support and allows for distributed modelling, and learning [30].
Human Computer Interaction Use of the Semantic Web is to be a means for open standard representation of learning material, transformation into different representations as required, and for provision of a high level interface as a tool for model creation, and translation to educational objects. To achieve this is necessary to create a translator that converts the diagrammatic representation of a problem into e-learning objects. Translations could be performed into any programming or meta-programming language or open standard information representation language, the visualisation of the model created could be displayed on the web. A two way translation is needed between human and computer, and between different software environments. This definition used by Simons and Parmee [33] explains the aim "a kind of action that occurs as two or more objects have an effect on each other. The idea of a two-way effect is essential to the concept of interaction, as opposed to a one way causal effect".
This communication strategy improves opportunities for end-user programming, sharing of information, and education of both users and computer software. The analogy of educating computer software to do what the user intends is called programming by demonstration in 'Watch What I Do: Programming by Demonstration' [34]. The user has the role of an educator of the software which acts as an apprentice to learn what is required. Learners are thus able to instruct the software and so program solutions, using an adaptive modelling tool. The education is then a two way process of the user learning from computer based software, and the software learning to do what the user requires. In order to enable understanding of the models and e-learning objects it is essential to visualise them and allow interaction. The visualisation can be depicted in various ways. Two examples are: as a tree (that can be colour coded to represent different types of information) and as an interactive SVG (Scalable Vector Graphics) diagram of a component to be modelled. SVG is an XML based syntax so can be searched and modelled as such. Examples show a tree based representation of engineering components [35], and how a tree based representation is converted into an interactive diagrammatic representation [36]. Transformations are performed between a taxonomy representation of information into many different visualisations and software representations. This process converts an abstract representation of a problem to a concrete model created with the aid of two way communication between the user and the modelling tool.
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 can be based on visual programming languages such as Alice [37]. Interactive web programs can also be created using scripting languages and XML combinations such as AJAX (Asynchronous JavaScript And XML), which is an overall name for techniques to create highly interactive web pages. Ajax techniques for creation of interactive web models will assist computer literate end-users in programming tasks on the web [38].
Collaborative Modelling Huhns [39] and Paternò [40] both explain that alternatives to current software development approach are required. The need is to translate from a model-based visual representation understood by users to software. Johnson [41] explains that successful interaction requires mapping between levels of abstractions and that translation between these abstraction levels required by users and computers is difficult. He explains that this problem often means systems are created that make the user cope with the problems of mis-translation. The representation of rules and information can be illustrated diagrammatically. It is possible to describe algorithms through concrete examples rather than abstractly. Models must be designed and visualised so that they convey to users a representation of a problem that assists with their vision of it. This subject is explored in [42] and is the basis of our visualisation techniques that enable users to create and understand models, which are translated into software representations.
Conclusion Advantages of this research are : -
- Creation of an open standard online e-learning environment that is usable by non-programmers. - Enabling of creation of e-learning objects by non programmers. - Enabling widespread dissemination and sharing of models over the web. - Provision of an educational resource for students, scientists, engineers, software developers, arts, and business. - Increased user involvement in e-learning development to allow savings in cost and time taken for this development, and enable greater creation and use of educational tools. - Availability of e-learning models and interactive visualisation of educational objects much more widely using browser based software. - Enabling many more people to program. - Opening up opportunities to people currently outside formal education.
This research can bridge the gap between computer literate people and e-learning software creation. This can give a practical illustration of the benefits end-user programming and Semantic Web techniques could provide for e-learning.
References [1] Select Committee on Science and Technology Third Report Chapter 2: Public Attitudes and Values - Attitudes to engineering 2.39 - http://www.publications.parliament.uk/pa/ld199900/ldselect/ldsctech/38/3804.htm.
[2] Canavan B, Magill J, Love D, A Study of the Factors Affecting Perception of Science, Engineering and Technology (SET) in Young People (2002), International Conference on Engineering Education, August 18-21, 2002, Manchester, U.K.
[3] Augment - http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/EndUserHistory/Augment.htm.
[4] Seymour Papert - Logo - http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/EndUserHistory/Logo.htm.
[5] Smith, D. C., 1977. A Computer Program to Model and Stimulate Creative Thought. Basel: Birkhauser.
[6] Examples Page - http://www.cems.uwe.ac.uk/amrc/seeds/models.htm.
[7] History of End User Programming - http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/EndUserHistory.htm.
[8] Mayo, E., Steinberg, T., The Power of Information, 2007 http://www.cabinetoffice.gov.uk/publications/reports/power_information/power_information.pdf?id=3965 Cabinet Office - An independent review.
[9] Google, 2007. Create and share your work online https://www.google.com/accounts/ManageAccount.
[10] JISC (Joint Information Systems Committee) Technology and Standards Watch. 2007. What is Web 2.0? Ideas, technologies and implications for education.
[11] Scaffidi, C., Shaw, M., Myers, B. (2005). Estimating the Numbers of End Users and End User Programmers, IEEE Symposium on Visual Languages and Human-Centric Computing, (VL/HCC'05): 207-214 Dallas, Texas.
[12] Stutt, A., Motta, E., 2004. Semantic Learning Webs. Journal of Interactive Media in Education, 2004 (10). Special Issue on the Educational Semantic Web. ISSN:1365-893X - http://www-jime.open.ac.uk/2004/10.
[13] ProtƩgƩ Community Wiki - User Driven Progamming - http://protege.cim3.net/cgi-bin/wiki.pl?UserDrivenProgramming.
[14] Vanguard Software Modelling Wiki - http://wiki.vanguardsw.com/bin/browse.dsb?dir/Engineering/Aerospace/.
[15] Visual Knowledge http://www.visualknowledge.com - Semantic Wiki.
[16] Quint, V., Vatton, I., 2004. Techniques for Authoring Complex XML Documents, DocEng 2004 - ACM Symposium on Document Engineering Milwaukee October 28-30 - http://wam.inrialpes.fr/publications/2004/DocEng2004VQIV.html.
[17] Quint, V., Vatton, I., 2005. Towards Active Web Clients, DocEng 2005 - ACM Symposium on Document Engineering Bristol United Kingdom 2-4 November - http://wam.inrialpes.fr/publications/2004/DocEng2004VQIV.html.
[18] Amaya, 2007. Welcome to Amaya - W3C's Editor/Browser http://www.w3.org/Amaya/.
[19] Diederich, J, Nejdl, W, Tolksdorf R, 2006, EASE: The European Association for SemanticWeb Education, SWET2006 Beijing, China.
[20] Jena User Conference, 2006, Bristol, UK http://jena.hpl.hp.com/juc2006/proceedings.html - Proceedings (2006).
[21] REASE the repository of EASE for learning units http://ubp.l3s.uni-hannover.de/ubp.
[22] Berners-Lee, T, 1999, Weaving the Web, Harper San Francisco, ISBN 0062515861.
[23] 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.
[24] SPARQL http://dret.net/glossary/sparql - Simple Protocol and RDF Query Language
[25] World Wide Web Consortium (W3C), 2006. XQuery 1.0: An XML Query Language http://www.w3.org/TR/xquery/.
[26] Bruchez, E, 2006. XForms: an Alternative to Ajax?. XTech 2006: Building Web 2.0 16-19 May 2006, Amsterdam, The Netherlands.
[27] Institute for End User Computing http://www.ieuc.org/home.html.
[28] Network of Excellence on End User Development EUD.Net http://giove.cnuce.cnr.it/eud-net.htm.
[29] End-Users Shaping Effective Software (EUSES) http://eusesconsortium.org/.
[30] Resnick, M., 1996. Distributed Constructionism. In: Proceedings of the International Conference on the Learning Sciences Association for the Advancement of Computing in Education, Northwestern University - http://llk.media.mit.edu/papers/Distrib-Construc.html.
[31] Papert, S., 1999. What is Logo? And Who Needs it? An essay. LCSI's book, Logo Philosophy and Implementation. http://www.microworlds.com/company/philosophy.pdf.
[32] MIT Logo Foundation, 2006. What is Logo? http://el.media.mit.edu/Logo-foundation/logo/index.html.
[33] Simons, C. L. Parmee, I. C., 2006, A manifesto for cooperative human / machine interaction, object-oriented conceptual software design, Advanced Computation in Design and Decision Making group Technical Report TR091006 - http://www.cems.uwe.ac.uk/~clsimons/Publications/CooperativeInteraction.pdf.
[34] Cypher, A, 1993, Watch What I Do Programming by Demonstration, MIT Press, ISBN:0262032139.
[35] Hale P, http://www.cems.uwe.ac.uk/~phale/Flash/FlashHCI.htm - Spar - Tree based representation.
[36] Hale P, http://www.cems.uwe.ac.uk/~phale/InteractiveSVGExamples.htm - Interactive Examples.
[37] Alice http://www.alice.org/ - Alice v2.0 - Learn to Program Interactive 3D Graphics.
[38] Cagle K, AJAX on the Enterprise, AJAXWorld conference, October 4, 2006 - http://www.oreillynet.com/xml/blog/2006/10/ajax_on_the_enterprise.html.
[39] Huhns M, 2001, Interaction-Oriented Software Development, Journal of Software Engineering and Knowledge Engineering.
[40] Paternò F, 2005, Model-based tools for pervasive usability, Interacting with Computers Vol 17(3), pp 291-315.
[41] Johnson, P., 2004. Interactions, Collaborations and breakdowns. ACM International Conference Proceeding Series; Proceedings of the 3rd annual conference on Task models and diagrams Vol 86.
[42] Crapo A W, Waisel L B, Wallace W A, Willemain T R, 2002, Visualization and Modelling for Intelligent Systems, Intelligent Systems: Technology and Applications, Vol I Implementation Techniques pp 53-85.
E-Learning - http://www.cems.uwe.ac.uk/~phale/ELearning.htm
End-User History - http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/EndUserHistory.htm
Models - http://www.cems.uwe.ac.uk/amrc/seeds/models.htm
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 as 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 useful for many employees that have insufficient time to learn programming languages.
Thursday, June 21, 2007
User Driven Programming - Research Areas
The main focus of my research is that something is a class until it is used. So all the things in an ontology, taxonomy or any database that is the source of the information I think of as a class. When a user does something that gets this information and uses it for their own purpose, e.g. for a calculation, or to create their own web page I think of that as an instance for that person. So it always follows this sequence -
Ontology - Model - Interface (e.g. web page) - User Output
So this way many users can share use of the ontology and modelling system to produce their own output with the shared information. So the model takes classes and converts them to instances for use by the user e.g. a generic wing component cost and all its classes becomes a specific wing component cost and all its objects.
I am keen to represent rules as equations not as software code, so the user enters equations, these are visualised and linked together, and they are then translated to code for the computer but the user can read them without having to know a computer language. I'm interested in XForms and Web Forms as they are a way of visualising information while maintaining the structure. I have been looking at XForms, I think the quickest way to get into that is to go to http://www.formfaces.com/faces/Examples/index.html because code can be downloaded for these examples and run without having to install anything, it just works from a formfaces.js JavaScript file that you put in the folder with your XForms pages. For background I would recommend reading anything by Kurt Cagle and this book http://xformsinstitute.com/essentials/ downloadable from that site or can be bought. I have it all linked from http://www.cems.uwe.ac.uk/amrc/seeds/Ajax/ajax.htm#XForms. It is also worth looking at combining this with XQuery http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/XML/XML.htm#XQuery but this involves installing something such as eXist http://exist.sourceforge.net/ and learning to use that.
This is an area of research that I think is lacking sufficient research effort as yet - http://www.cems.uwe.ac.uk/~phale/#LanguageToolMapping. I call this User Driven Modelling or User Driven Programming. This is the area marked in yellow on the diagram, and below that is a map of tools, that links to a description of each tool that can be used for this subject area. Even this is a large research area. The idea of this is to add ease of use and freedom to develop user driven content to model driven programming, and make the needs of the ordinary end-user central to research. The aim also is to take the Web 2.0 approach to creation of dynamic highly interactive user interfaces, and use the structured language approaches of Semantic Web research combined as technologies to enable the User Driven Modelling.
These references http://www.jisc.ac.uk/media/documents/techwatch/tsw0701b.pdf and http://www.cabinetoffice.gov.uk/publications/reports/power_information/power_information.pdf?id=3965 ask universities and the UK Government to get more involved in the enabling and use of user driven content. The model driven programming approach can be used to enable this, read an ontology and drive technologies such as XForms for the user interface.
Friday, June 15, 2007
Markup Languages
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) is used in my thesis and is explained by (Bechhofer and Carrol), and there are several markup languages that can be used to represent structured information.
McGuinness (2003) explains the role of markup languages in defining content to be machine readable, McGuinness cites a diagram from a presentation by Berners-Lee (2000) that contains a diagrammatic representation of the place of each language in a stacked representation alongside the purpose of the language. This is shown in below.
Architecture, sourced from Berners-Lee (2000) - http://www.w3.org/2000/Talks/1206-xml2k-tbl/slide10-0.html.
XML may not be sufficient on its own for defining ontologies. The XML syntax defines relationships by their position within the text file. Thus XML syntax always implies a sequence whereas in reality the order of items may be unimportant, also there is no explicit way of representing associations between items, or differentiating between an Inheritance and a Contains relationship. XML schemas and DTDs (Document Type Definitions) can be helpful in defining these relationships, but there is then scope for differences in the way they are defined. RDF has provided a layer of standardised semantics which overlays the basic XML. The RDF text can be embedded within XML.
I have chosen to use RDF represented using RDF/XML as this allows me to continue using XML tools for visualising or searching the RDF/XML while also allowing the use of tools available for representing RDF. Vehicle'. RDF consists of a resource, a property, and a property value. This 'Triple' corresponds to 'Subject', 'Predicate', and 'Object' in logic. Each RDF triple represents a fact. So RDF structures information into individual facts that link as a graph, each fact is a triple. This can be thought of as a sentence representing a fact such as 'Aircraft is a Vehicle'. An example of an RDF graph is shown in the figure below and the table illustrates rows of facts that make up the graph. More information is available here - Quick Intro to RDF.
RDF Graph Example, RDF Description of Aircraft
Resource | Property | Value | |
Subject | Predicate | Object | |
Fact | Aircraft | Is a | Vehicle |
Fact | Aircraft | Flown by | Pilot |
Fact | Aircraft | Has | Engine |
Fact | Plane | Is an | Aircraft |
Fact | Plane | Has | Wings |
Uniform Resource Identifier (URI) |
A Resource is anything that can have a URI (uniform resource identifier). A URI can look like a web address and can actually be a web address, but this is not always the case, it is a way of representing an entity. A URI consists of the name and location of the entity. An RDF Resource is described through a collection of properties and property values called an RDF Description. RDF provides a mechanism for describing collections, which are special kinds of resources, and a sequence is an ordered collection. A collection does not have to possess its own URI but it can.
RDF/XML has provided a layer of standardised semantics which overlays the basic XML. RDF does not have to be based on XML there is also a format called N3 http://rdfabout.com/quickintro.xpd. RDF extends the XML model and syntax to be specific for describing resources. For example Engine Ring Manufacture sequence can be represented as a sequence of groups of sequential operations as in this example. RDF is a W3C (World Wide Web Consortium) Recommendation, this means it is a stable specification and therefore a standard. Because a resource can represent anything, knowledge from any domain can theoretically be represented in RDF, this together with it's standardised syntax that allows it to be machine understandable are the reasons why RDF is such a useful and important technology for the Semantic Web.
RDF/XML Web pages can be linked to each other indefinitely, which is why it is such an important technology for the Semantic Web. If a web page exists for a URI there could be further information possibly represented using RDF on this web page. This allows resources to be linked to each other, which is why it is such an important technology for the semantic web. Because it is XML based, an RDF/XML Web page can be linked to an XSL stylesheet to produce a visual representation of the structure as in this example. This is also explained in this paper http://www.cems.uwe.ac.uk/~phale/ISPECE2003.htm, and by (Cayzer, 2004) who uses RDF to provide structure for Semantic blogging. Oren et al (2006) also use this approach of combining RDF and Semantic Web use with ease of editing in a Semantic Wiki.
SPARQL Simple Protocol and RDF Query Language is a query language and protocol for RDF being recommended to the W3C.
RDF/XML can be used to encode an ontology. (Fensel et al. 1998) and (Fensel et al. 2001) describe Ontobroker and the use of XML and RDF within this ontology tool. The use of ontologies is being driven by e-commerce and e-procurement where trading is online (UN/CEFACT and ebXML 2007).
References
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.
Berners-Lee, T., 2000. Semantic Web on XML http://www.w3.org/2000/Talks/1206-xml2k-tbl/slide1-0.html.
ebXML 2002, ebXML Enabling a Global Electronic Market. http://www.ebxml.org/, OASIS & UN/CEFAC, accessed on 9th January 2007.
Cayzer, S. 2004. Semantic Blogging and Decentralized knowledge Management. Communications of the ACM. Vol. 47, No. 12, Dec 2004, pp. 47-52. ACM Press.
Fensel, D. & Angele, J. & Decker, S. & Erdmann, M. & Shnurr, H. & Studer, R. & Witt, A. 1998. On2broker: Lessons Learned from Applying AI to the Web. http://www.aifb.uni-karlsruhe.de/WBS/Publ/2000/llfaattw_dfeetal_2000.pdf, accessed on 9th January 2007.
Fensel, D. Van Harmelen, F. Horrocks, I. McGuinness, D. Patel-Schneider, P. F., 2001. OIL: An ontology infrastructure for the semantic web. IEEE Intelligent Systems, 16(2), pp 38-45. - http://www.cs.man.ac.uk/~horrocks/Publications/download/2001/IEEE-IS01.pdf.
McGuinness D. L., 2003. Ontologies Come of Age. http://www-ksl.stanford.edu/people/dlm/papers/ontologies-come-of-age-mit-press-(with-citation).htm In: Dieter Fensel, Jim Hendler, Henry Lieberman, and Wolfgang Wahlster, ed. Spinning the Semantic Web: Bringing the World Wide Web to Its Full Potential. MIT Press, 2003.
Oren, E., Breslin, J. G., Decker, S., 2006. How Semantics Make Better Wikis - WWW 2006, May 23-26, 2006, Edinburgh, Scotland.
Relevant Web Pages
Semantic Web Page - http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/RDF/RDF.htm
Monday, June 11, 2007
Semantic Web Development
Semantic Web Development and dealing with complexity is a tricky issue. Representing information is a problem where complexity can preclude any single approach. 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. Kurt Cagle refers to this in his article on complexity on his Understanding XML blog at http://www.understandingxml.com/
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 answers a question on ontologies. He 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 (Universal Resource Identifier) and RDF (Resource Description Framework). In answer to what Tim Berners-Lee 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 on user-driven programming, with University of the West of England (UWE - Bristol). Not everyone has the time to learn programming especially if their main expertise is elsewhere. They then have to ask others to do the development for them and this leads to delays and mis-understandings. The approach advocated here could enable visual creation of software by members of a community. Members of this community would not need advanced programming skills if other members with more advanced development skills could create a suitable interface for the creation of software. This could be achieved in a similar way to that used in visual web page creation tools, or word processor and spreadsheet software. Also the members who do possess advanced skills could provide ways of sorting, searching and navigating the programs created using the visual development tools. Members could work with either or both groups, according to their skills and interests.
A good first step would be to link 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. This could involve those who are willing to try out new techniques to make it easier for new starters to train learn and gain experience.
Sir 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.
I am a Researcher in the final year of my PhD at the University of the West of England, Bristol UK. 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.
I am a member of the Institute for End User Computing.
My Home Page is http://www.cems.uwe.ac.uk/~phale/
Language and Tool Mapping - http://www.cems.uwe.ac.uk/~phale/#LanguageToolMapping
Semantic Web Page - http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/RDF/RDF.htm
Semantic Web History - http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/EndUserHistory/Semanticweb.htm
Semantic Web Modelling Page - http://www.cems.uwe.ac.uk/amrc/seeds/ModellingSemanticWeb.htm
Friday, June 01, 2007
User Driven Modelling
In order to make user driven modelling and programming possible, it is essential that a communication mechanism is established, which allows users to generate changes and receive changes generated by the modelling system.
Types of Change
There are two types of change that can be applied to the model driven programming system, User Generated, and Model Generated.
User Generated
Figure 1 shows a user initiating a change, which is to delete a node from the bottom left and attach a new node to a branch in the top tight. The tree is translated to structured text, and this is further translated to Code.
Figure 1 - User Generated Change
For the second user generated change shown in figure 2 an object represented by a tree is visualised as a diagram. The user can amend either the diagram or the tree, in either case the change is filtered to the alternative representation and translated to the structured text and code.
Figure 2 - User Generated Change, Alternative Interfaces
Model Generated
A model generated change is initiated by the model itself, which changes the code and the structured text in response to a calculation (that may have been requested by the user). The model passes a translated result tree to the user interface to let the user know that the recalculations have been finished, and give the user the results using a suitable visualisation. This is shown in figure 3.
Figure 3 - Model Generated Change
More Information on this research is available on my Website at http://www.cems.uwe.ac.uk/~phale/.
and on my End user programming page at http://www.cems.uwe.ac.uk/amrc/seeds/EndUserProgramming.htm.