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.


Figure 10 - Architecture, sourced from Berners-Lee (2000)


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


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


Language and Tool Mapping


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.


User Generated Change.


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.


User Generated Change, Alternative Interfaces.


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.


Model Generated Change.


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.

Friday, May 25, 2007

Language and Tool Mapping

My Research Area - This aim of my research is to try to bring together the areas of End User Programming, Modelling and the Semantic Web. So I'm examining the area marked in yellow. These research areas are enabled by a visual interface with the end user.


My Research Area - This aim of my research is to try to bring together the areas of End User Programming, Modelling and the Semantic Web.  So I'm examining the area marked in yellow.


My intention is to examine tools and technologies that can translate from a domain representations and/or and abstract representation of a problem into program code, and examine a systematic way to make this possible. Technologies to enable this, with links to explanations of them are shown below :-

Please let me know if you think a particular tool or technology is represented wrongly.


Domain Representation


Modelling/Programming


Abstract Representation


Structured Data File


ACUITy


KAON


Metatomix M3t4


TopBraid Composer


Jena


Ontolingua


Protégé


Semantic Wikis


PSL, STEPml, PMXML, XML with domain schemas


AspectXML, AJAX/Web2.0, XQuery, XForms, SPARQL


RDF, RDFS, DAML+OIL, OWL, RSS, SVG, VRML, UML, XMI, MathML, RuleML


XML, Databases



The intention of this research is to enable users to navigate between tools such as these without necessarily being aware of which tool or technology they are using. The way to achieve this is through an end-user programming environment that makes use of these technologies. A person should be able to model their domain using a visual modelling language, this modelling language should then translate the representation to an abstract representation, which can be translated to open standard formats, able to be held as structured data files that can be understood by computer software. The Modelling/Programming layer provides a translation service and can perform calculations, therefore converting a source tree to a result tree. The intention is for the user to be able to use the domain layer tool without having to interact directly with any of the layers below. The results are then fed back to the user, who can drill down through the result tree in order to find the reasoning behind the results.


Relevant Conferences/Events


Where 2.0 Conference - http://conferences.oreillynet.com/where2007/ - The third annual O'Reilly Where 2.0 Conference brings together the people, projects, and issues building the new technological foundations and creating value in the location industry. There's no better place to meet the people behind the mash-ups and platforms, and the folks looking ahead to the future of geospace. - San Jose - California - May 29-30.


ESTC2007 - http://www.estc2007.com/ - 1st European Semantic Technology Conference initiates a new conference series in Semantic technologies in Europe. ESTC2007 is a new European meeting ground for customers, developers and researchers to discuss the applicability and commercialization of Semantic technologies in corporate settings - May 31st - June 1st - Vienna - Austria.


ICE 2007 the 13th International Conference on Concurrent Enterprising - http://www.ice-conference.org/ - Sophia-Antipolis, France, June 04 - 06, 2007.


History of Programming Languages Conference (HOPL-III) - http://research.ihost.com/hopl/ - The Third ACM SIGPLAN - History of Programming Languages Conference (HOPL-III) - San Diego, California, June 9-10, 2007 - (co-located with FCRC 2007, June 9-16, 2007) - in cooperation with ACM SIGSOFT.


8th Annual Enterprise Architecture Conference - Designing a flexible foundation - IRM UK - Enterprise Architecture Conference Europe 2007, 11-13 June 2007, London.


GC 2007expo - http://www.gcexpo.com/ - 12-13th June 2007 - Earls Court One - London - GC 2007 is simply THE most exciting and dynamic public sector ICT exhibition and conference event of the year for public sector technologists.


SOAWorld 2007: Enterprise Open Source: http://www.soaeosconference.sys-con.com/ - June 25-27 2007 - New York.


IADIS Multi Conference on Computer Science and Information Systems 2007 http://www.mccsis.org/ - Lisbon, Portugal 3 - 8 July 2007.


Summer School on Ontological Engineering and the Semantic Web (SSSW'07) - http://knowledgeweb.semanticweb.org/sssw07/frames.jsp - July 8, 2007 - July 14, 2007. Cercedilla (Spain).


ISPE - The 14th ISPE International Conference on Concurrent Engineering:Research and Applications - http://ce2007.lit.inpe.br/ - ISPE - http://www.ispe-org.net/ - July 16-20, 2007 - São José dos Campos, SP, Brazil.


ACM - DocEng 2007 - http://doceng07.cs.umanitoba.ca/ - ACM Symposium on Document Engineering - 28-31 August 2007 - Winnepeg, Canada.


Engineering the Semantic Desktop (SemDeskEng 2007) - http://semdeskeng2007.semanticdesktop.org/ - 1st Workshop on Engineering the Semantic Desktop - co-located with ESEC/FSE 2007 - 3 September 2007, Dubrovnik, Croatia.


SVG.Open - http://www.svgopen.org/ - SVG.Open 2007 Conference, Tokyo, Japan - 4 -7 September 2007 - The SVG Open 2007 conference will be held in Tokyo, Japan, organized by Opera and Keio University, the Asian W3C host. The conference will be hosted September 4-7 at a university campus of Keio University. A call for papers and contributions will be issued later on this webpage.


VLC'2007 - International Workshop on Visual Languages and Computing - http://www.ksi.edu/seke/vlc07.html - Hotel Sofitel, San Francisco Bay, 6-8 September 2007 - Organized by Knowledge Systems Institute - Digital Arts and Sciences Lab, UF, and Visual Computing Lab, UT-Dallas.


IEEE International Conference on Semantic Computing - http://icsc2007.eecs.uci.edu/ - September 17-19, 2007 - Irvine, California, USA - The field Semantic Computing applies technologies in natural language processing, data and knowledge engineering, software engineering, computer systems and networks, signal processing and pattern recognition, and any combination of the above to extract, access, transform and synthesize the semantics (contents) of multimedia, texts, services and structured data.


2007 IEEE Symposium on Visual Languages and Human-Centric Computing - http://vlhcc07.eecs.wsu.edu/ - Coeur d'Alène, Idaho, USA - 22-26 September 2007.


ESM'2007, October 22-24, 2007 - European Simulation and Modelling Conference - Westin Dragonara Hotel, St. Julian's, Malta.


Web 2.0 Conference - http://www.web2con.com/web2006/ - November 7-9 2007 - San Francisco.


The 6th International Semantic Web Conference and the 2nd Asian Semantic Web Conference, 2007 - http://iswc2007.semanticweb.org/ - Busan, Korea - November 11 (Sunday) - 15 (Thursday), 2007.


IASTED 2008 - Software Engineering - http://www.iasted.org/conferences/home-598.html - SE 2008 - as part of the 26th IASTED International Multi-Conference on APPLIED INFORMATICS - February 12 - 14, 2008 Innsbruck, Austria.

Links

Events Page - http://www.cems.uwe.ac.uk/~phale/Events.htm


My Home Page - http://www.cems.uwe.ac.uk/~phale/


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


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


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


End User Programming - http://www.cems.uwe.ac.uk/amrc/seeds/EndUserProgramming.htm


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


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


Tuesday, May 22, 2007

Meta-Languages and their usefulness for User Driven Programming

Meta-languages describe the structure of information to enable this information to be searched more easily by software systems. XML (eXtensible Markup Language) has emerged as the most important of these Meta-languages and is the base for many languages. XML standards are important for the Semantic Web, many computer based reasoning systems, and for communication between different software applications. Alternative representations of information should not be used in any system being developed now unless the author has examined XML based standards and found them insufficient. Such a situation is highly unlikely. Any software system that does not use these standards will have difficulty communicating with other software systems. Use of a generic standard keeps open the possibility of communication with the widest possible range of other software systems. Use of a domain specific standard targets the communication to a particular domain.

Extensible Markup Language XML is an important standard in the development of ontologies. This language allows for the construction of text documents in which the relationship between concepts is represented. Because it is an accepted standard it is possible to use XML on any type of computer. Further developments such as Resource Description Framework RDF add a layer of standardisation of semantics, above the standardised syntax of XML. It is also possible to represent diagrammatic, and graphical information using a variety of XML called Scalable Vector Graphics (SVG).

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

Meta Language Links

Dmitriev, S. (2004). Language Oriented Programming: The Next Programming Paradigm, http://www.onboard.jetbrains.com/is1/articles/04/10/lop/.

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


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

I am a member of the Institute for End User Computing - http://www.ieuc.org/home.html.

My Home Page is http://www.cems.uwe.ac.uk/~phale/.

A web page for this article is at http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/EndUserHistory.htm.

Thursday, May 17, 2007

History of End User Programming

1960s

In the 1960s Dartmouth BASIC programming language [7] was designed and implemented at Dartmouth College by John Kemeny and Thomas Kurtz. Over time BASIC became a popular language for home users, and business use, it introduced many people to programming as a hobby or career. Many of the modern concepts of computer graphics, dynamic objects and object oriented programming were prototyped by Ivan Sutherland in 1963 in Sketchpad [13][14]. In the mid 1960s Seymour Papert, a mathematician who had been working with Piaget in Geneva, came to the United States where he co-founded the MIT Artificial Intelligence Laboratory with Marvin Minsky. Papert worked with the team from Bolt, Beranek and Newman, led by Wallace Feurzeig that created the first version of Logo [25] in 1967. In the late sixties Alan Kay [2][3][17] used the term 'personal computer' and created a concept prototype, the FLEX Machine, he also envisaged a 'Dynabook' machine, the sketches for this look very similar to the laptop computers of recent years. The Simula [28] language was developed by Ole-Johan Dahl and Kristen Nygaard and this included Object-Oriented concepts. Douglas Engelbert's worked on a project to augment the human intellect, as part of the Augment [8] project he demonstrate Hypertext and video conferencing.

1970s

Alan Kay joined the Xerox Palo Alto Research Center (PARC) [17][19] California in 1971. Throughout the seventies the group at PARC led by Dr. Kay developed an integrated programming language and programming environment called Smalltalk [10]. In the early seventies the Alto personal computer was created at the PARC. The Alto eventually featured the world's first What-You-See-Is-What-You-Get (WYSIWYG) editor, a commercial mouse for input, a graphical user interface (GUI), and bit-mapped display, and offered menus and icons, and linked to a local area network. The Alto provided the foundation for Xerox's STAR 8010 Information System. There was still a need to find a common use for a personal computer that would increase the demand for it. In 1978, Harvard Business School student, Daniel Bricklin, came up with the idea for an interactive visible calculator. Bricklin and Bob Frankston then co-invented the software program VisiCalc [1]. VisiCalc was a spreadsheet, and the first 'killer' application for personal computers as this application provided a justification for using personal computers as a productive tool.

1980s

During the 1980s ownership of personal computers became increasingly popular and many home users programmed using BASIC. In the early eighties IBM developed the first personal computer built from off the shelf parts (called open architecture) [15]. This included a command line operating system written by Microsoft and the Microsoft BASIC programming language. Apple developed the GUI further for the Lisa [5] that later became the Macintosh (Mac). The IBM style PC became most popular for business applications, while the Apple Mac was often used for Desktop publishing.

1990s

End User Programming research has continued to the present day. Research has continued in techniques of Visual Programming [9] e.g. Alice [4], Programming by Example [2][21], programming with automated assistance [20], and Natural Language Programming [27]. Squeak and Croquet[6] have developed from the early work in Smalltalk.

Tim Berners-Lee [23] developed HyperText Markup Language (HTML), and has been involved with the World Wide Web Consortium (W3C) [29] in developing standards base languages for the Web. This has encouraged the growth of the 'Semantic Web' [11] which allows both humans and computers to search and interact with pages more and so encouraged the development of interactive web pages and communities.

2000s

Recent, present and future research can enable the use of semantic web technologies, (developed from HTML by Tim Berners-Lee [23] and others), to enable End User Programming. This fusion of research and technologies is illustrated by Henry Lieberman's home page [12] which has explanations of both areas of research. Examples of this fusion include Protégé [22], Jena [16], TopBraid Composer [24], and OpenCyc [18]. Information about these technologies is available in my semantic web page - http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/RDF/RDF.htm. A related development is that of web 2.0. Visual development environments based on AJAX (Asynchronous JavaScript And XML) [26] aim to reproduce on the web, the functionality provided by office tools such as Excel (which is often used as an End User Programming Environment). Information about Ajax and Web 2.0 is available in my Ajax/web2.0 page - http://www.cems.uwe.ac.uk/amrc/seeds/Ajax/ajax.htm.

References

1. A Brief History of Spreadsheets - http://dssresources.com/history/sshistory.html - Decision Support System Resources - by D. J. Power, Editor, DSSResources.COM.

2. Alan Kay - http://www.acypher.com/wwid/FrontMatter/index.html - Watch What I Do - Programming by Example.

3. Alan Kay ETech 2003 presentation - http://www.lisarein.com/alankay/tour.html - Lisa Rein's Tour Of Alan Kay's Etech 2003 Presentation.

4. Alice v2.0 - http://www.alice.org/ - Learn to Program Interactive 3D Graphics.

5. Apple Lisa - http://fp3.antelecom.net/gcifu/applemuseum/lisa2.html - The First Affordable GUI - Lisa 1 Jan-83 Jan-84, Lisa 2 Jan-84 Apr-85.

6. Croquet - http://www.opencroquet.org/ - a new open source software platform for creating deeply collaborative multi-user online applications.

7. Dartmouth BASIC - http://en.wikipedia.org/wiki/Dartmouth_BASIC - Wikipedia.

8. The Demo - http://sloan.stanford.edu/mousesite/1968Demo.html - Stanford University.

9. Dmoz Open Directory Project - http://dmoz.org/Computers/Programming/Languages/Visual/ - Visual Languages - Programming Languages Reference - Visual Languages.

10. The Early History Of Smalltalk by Alan Kay - http://www.smalltalk.org/smalltalk/TheEarlyHistoryOfSmalltalk_II.html - 1967-69--The FLEX Machine, a first attempt at an OOP-based personal computer - Alan Kay - Smalltalk.org.

11. Fifteen Years of the Web - http://news.bbc.co.uk/1/hi/technology/5243862.stm - Internet Timeline - BBC Technology.

12. Henry Lieberman - http://web.media.mit.edu/~lieber/ - Research Scientist - MIT Media Laboratory.

13. History of HCI - http://www.idemployee.id.tue.nl/g.w.m.rauterberg/presentations/HCI-history - Key systems, people and ideas - Presentation by Matthias Rauterberg.

14. History of HCI - Sketchpad (1963) - http://www.idemployee.id.tue.nl/g.w.m.rauterberg/presentations/HCI-history/sld020.htm - Ivan Sutherland - MIT Lab - Presentation by Matthias Rauterberg.

15. Inventors of the Modern Computer - http://inventors.about.com/library/weekly/aa031599.htm -The History of the IBM PC - International Business Machines.

16. Jena - http://jena.hpl.hp.com/juc2006/proceedings.html - First Jena User Conference - Proceedings.

17. Kyoto Prize Laureates 2004 - http://www.kyotoprize.org/commentary_kay.htm - 2004 Kyoto Prize Laureates - Dr. Alan Curtis Kay (U.S.A., b. 1940) - Computer Scientist, President, Viewpoints Research Institute.

18. OpenCyc - http://www.opencyc.org/ - OpenCyc.org - General knowledge base and commonsense reasoning engine.

19. Palo Alto Research Center (PARC) - History - http://www.parc.xerox.com/about/history/default.html - PARC History.

20. The Programmer's Apprentice - http://portal.acm.org/citation.cfm?id=87912&dl=ACM&coll=GUIDE - The ACM Digital Library.

21. Programming by Example - http://web.media.mit.edu/~lieber/PBE/index.html.

22. Protege - http://protege.stanford.edu/ - Protégé Home - Ontology Development Environment.

23. Tim Berners - http://www.w3.org/People/Berners-Lee/Lee - Tim Berners-Lee.

24. TopBraid - http://www.topbraidcomposer.com/ - Semantic Modeling Toolset - Visual modeling environment.

25. What is Logo? - http://el.media.mit.edu/Logo-foundation/logo/index.html - MIT Logo Foundation, What is Logo.

26. Wikipedia - http://en.wikipedia.org/wiki/Ajax_(programming) - Ajax (programming).

27. Wikipedia - http://en.wikipedia.org/wiki/Natural_language_and_computation - Natural language processing.

28. Simula - http://en.wikipedia.org/wiki/Simula - Simula.

29. World Wide Web Consortium (W3C) - http://www.w3.org/ - Leading the Web to Its Full Potential....

Useful End User Programming Links

"A History of Haskell: being lazy with class", Paul Hudak (Yale University), John Hughes (Chalmers University), Simon Peyton Jones (Microsoft Research), Philip Wadler (Edinburgh University), http://research.microsoft.com/~simonpj/papers/history-of-haskell/index.htm - The Third ACM SIGPLAN History of Programming Languages Conference (HOPL-III) San Diego, California, June 9-10, 2007.

Alan Blackwell - University of Cambridge - Human Computer Interaction - End User Programming.

BBC Technology news - Free tool offers 'easy' coding - http://news.bbc.co.uk/1/hi/technology/6647011.stm - A free programming tool that allows anyone to create their own animated stories, video games and interactive artworks has been developed - Jonathan Fildes - 14 May 2007.

Celebrating the creator of Cobol - http://news.bbc.co.uk/1/hi/technology/6168489.stm - BBC News - Mark Ward December 11th 2006.

The Centre for Advanced Learning Technologies - The Centre for Advanced Learning Technologies - studying the impact of new media and technologies on the business environment.

Computer History Museum - Exhibits - Timeline.

Computer Languages History - http://www.levenez.com/lang/ - Computer Languages Timeline - Éric Lévénez. - O'Reilly Poster based on Éric Lévénez diagram.

Constructivist Computer Assisted Learning: Theory and Techniques - http://www.ascilite.org.au/conferences/adelaide96/papers/21.html - Barney Dalgarno - Information Services Division - University of Canberra - The changes that have occurred in accepted approaches to teaching and learning in recent years have been underpinned by shifts in psychological and pedagogical theory, culminating in moves towards a constructivist view of learning.

Dmoz Open Directory Project - Programming Languages - Programming Languages Reference - Alphabetic List of Programming Languages - Definitions and Links.

DSpace - http://www.dspace.org/ - The DSpace digital repository system captures, stores, indexes, preserves, and distributes digital research material.

Euses End Users Shaping Effective Software research collaboration - Welcome to EUSES - Research Collaboration.

Euses Presentation - End User Programming - Invited Research Overview - Brad Myers, Andrew Co, Margaret Burnett - Carnegie Mellon, Oregon State Universities.

Generative Programming - Generative Programming - Methods, Tools, and Applications - Krzysztof Czarnecki and Ulrich W. Eisenecker - Addison-Wesley, June 2000.

Hackety Hack - http://hacketyhack.net/ - In this century, you may have dozens of programming languages lurking on your machine. But how to use them?? A fundamental secret! Well, no more. We cannot stand for that. Hackety Hack will not stand to have you in the dark!!

History of Computing - http://www.ieuc.org/end-user-computing/references/notes/HistoryofComputing.html - One of the best works in this regard can be found in the volumes devoted to The History of Programming Languages. - The Insititute for End User Computing.

History of End User Programming - Article - Peter Hale.

History of Haskell - http://haskell.org/haskellwiki/History_of_Haskell.

How the internet transformed business - BBC Business - By Steve Schifferes Business editor, BBC News website.

How the Spectrum began a revolution - http://news.bbc.co.uk/1/hi/technology/6572711.stm - In April 1982 a small British company, lead by Sir Clive Sinclair, launched the ZX Spectrum computer and sparked a revolution. - 23 April 2007 - BBC News Technology.

How the web went world wide - BBC Technology - Mark Ward Technology Correspondent, BBC News website.

IBM developerWorks Interviews: Rod Smith - http://www-128.ibm.com/developerworks/podcast/dwi/cm-int062806.html - IBM vice president of Emerging Internet Technologies on the business of watching, encouraging, and leveraging new technologies.

IBM QED Wiki - IBM eyes programming for the masses - By Martin LaMonica - CNET News.com.

I think, therefore I Woz - http://news.bbc.co.uk/1/hi/technology/6077374.stm - BBC News - Technology - Steve Wozniak,Apple - 25th October 2006.

In pictures: Commodore computers - http://news.bbc.co.uk/1/hi/in_pictures/6454113.stm - The rise, fall and rise again of gaming icon Commodore - 15 March 2007.

ISTI-CNR, Pisa, Italy - Model-based Tools for Pervasive Usability - Fabio Paternò.

John Backus (1924-2007) - John W. Backus, who built and led the IBM team that created Fortran, the first widely used programming language, which helped to open the door to modern computing, died on 17 March at his home in Ashland, Oregon, USA. He was 82.

Journal of Visual Languages and Computing - Journal Home Page - Elsevier.

Network of Excellence on End User Development - Network of Excellence on End User Development - EUD-Net

Oregan State and Houston University - Automatic Generation and Maintenance of Correct Spreadsheets - Martin Erwig, Robin Abraham, Irene Cooperstein, Steve Kollmansberger.

Palo Alto Research Center (PARC) - http://www.parc.com/ - Palo Alto.

Raskin Center - http://rchi.raskincenter.org/index.php?title=Home - Exploting New Interface Directions.

Science Museum - http://www.sciencemuseum.org.uk/collections/subject_themes/computing.asp - Computing and Information Technology.

Semantic Information Processing - Semantic Information ProcessingMarvin L. Minsky - The MIT Press.

Software Abstractions - Resources and Additional Materials - Book with sample chapters online - Daniel Jackson.

Socratic Arts - http://www.socraticarts.com/ - Online learning services.

Software componentry - http://en.wikipedia.org/wiki/Software_componentry - Wikipedia - Software componentry.

The beauty of software - British Computer Society Turing Lecture March 2007 Grady Booch - Full write up - http://www.bcs.org/server.php?show=ConWebDoc.10367 - This year's Turing Lecture was given by Grady Booch under the title 'The promise, the limits, the beauty of software.' - 13 March 2007

The Dangers of End-User Programming - Portland State University - Warren Harrison.

The Geometer's Sketchpad:Programming by Geometry - http://www.acypher.com/wwid/Chapters/13Sketchpad.html - R. Nicholas Jackiw and William F. Finzer - from Watch What I Do: Programming by Demonstration - edited by Allen Cypher co-edited by Daniel C. Halbert, David Kurlander, Henry Lieberman, David Maulsby, Brad A. Myers, and Alan Turransky.

The History of Computer Programming Languages - http://www.princeton.edu/~ferguson/adw/programming_languages.shtml - Stephen Ferguson - Princeton University Library.

The History of Computing Project - http://www.thocp.net/.

The Institute for End User Computing, Inc. The Chronicles of End User Computing... http://www.ieuc.org/home/chronicles.html as edited on Saturday, January 22, 2005.

The Institute for End User Computing, Inc. The IEUC Homepage - http://www.ieuc.org/home.html - as edited on Wednesday, May 17, 2006.

The Institute for End User Computing - The Market's Failure to Meet End User Needs - http://www.ieuc.org/home/market-failure.html.

The Magic of the 80's - http://www.ieuc.org/end-user-computing/references/notes/themagicofthe80s.html - For a wonderful cultural history of the early days of the PC revolution, see S. Levy, Hackers : heroes of the computer revolution - The Insititute for End User Computing.

Twenty five years of the IBM PC - BBC News - Technology.

UK home computer pioneer honoured - http://news.bbc.co.uk/1/hi/technology/6217447.stm - BBC News - British technology pioneer Andrew Hopper becomes a CBE in the New Year Honours list.

Universidad Autónoma de Madrid - Dr José A. Macías - publications - Research - End User Development (EUD).

University of the West of England - UWE Student Project - http://www.cems.uwe.ac.uk/amrc/seeds/Web%20Semantic/Index.html - Investigating and implement the idea of 'ModConsWest' (Modelling and Constructionism with Web based E-Learning Semantic Tools)" - Lee Ediagbonya and Awaab Eltahir.

Where does the web go from here? - BBC Technology - Bill Thompson.


Useful Publications

A Computer Program to Model and Stimulate Creative Thought, Smith, D. C. (1977), Basel: Birkhauser. 187p.

A History of Haskell: being lazy with class, Paul Hudak (Yale University), John Hughes (Chalmers University), Simon Peyton Jones (Microsoft Research), Philip Wadler (Edinburgh University), http://research.microsoft.com/~simonpj/papers/history-of-haskell/index.htm - The Third ACM SIGPLAN History of Programming Languages Conference (HOPL-III) San Diego, California, June 9-10, 2007.

Estimating the Numbers of End Users and End User Programmers, Scaffidi, C., Shaw, M., Myers, B. (2005). IEEE Symposium on Visual Languages and Human-Centric Computing, (VL/HCC'05): 207-214 Dallas, Texas.

Example-based Programming: a pertinent visual approach for learning to program (2004) - University of Poitiers - Nicolas Guibert - Patrick Girard - Laurent Guittet - Proceedings of the working conference on Advanced visual interfaces - Pages: 358 - 361 - ISBN:1-58113-867-9.

History of Programming Languages, Bergin T J, Gibson R G, 1996, Volume 2, ISBN-10: 0-201-89502-1; ISBN-13: 978-0-201-89502-5.

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

Model-based tools for pervasive usability, 2005, Paterno Fabio, Interacting with Computers 17, 291-315.

The Programmer's Apprentice, 1990, Rich C, Waters R C, The ACM Digital Library - ISBN:0-201-52425-2.

Watch What I Do: Programming by Demonstration - Cypher, A, 1993, MIT Press, ISBN:0262032139.

http://www.acypher.com/wwid/ - Watch What I Do: Programming by Demonstration - The entire text of this book is included on this web site. Access it through the Table of Contents.

http://www.acypher.com/wwid/FrontMatter/index.html.

Your Wish is My Command: Giving Users the Power to Instruct their Software - http://web.media.mit.edu/~lieber/Your-Wish/ - Henry Lieberman, editor.


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


I am a member of the Institute for End User Computing - http://www.ieuc.org/home.html.


My Home Page is http://www.cems.uwe.ac.uk/~phale/.


A web page for this article is at http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/EndUserHistory.htm.

Sunday, May 13, 2007

Programming with Semantic Web Languages

For my PhD thesis in User Driven Programming I've been experimenting with using Semantic Web Languages as programming languages. The two approaches I've used are:-

Option 1 - To put all the data in Semantic Web languages e.g XML, SVG, RDF/XML, OWL, and then display them using a programming language such as Flash, or Java (applets) -http://www.cems.uwe.ac.uk/~phale/Flash/FlashHCI.htm

http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/JavaTree/AutomaticaOutputSpar/classes/TreeOutput.html.

Option 2 - To use the above languages as meta languages for actual programming -

http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/SparMenu.xml

http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/SparMenu.html

Some of these solutions have used aspects of both approaches. These examples use SVG and JavaScript -http://www.cems.uwe.ac.uk/~phale/InteractiveSVGExamples.htm.

It is becoming increasingly practical to program completely in the Semantic Web languages. These languages enable declarative programming where we tell the computer what we want to do, and a translation is performed either using languages such as JavaScript or Java, or into JavaScript or Java.

The advantages of this form of declarative programming are that we can use a language that is at a much higher level of abstraction, closer to the way people think. I have been creating these programs by editing them in Protege (ontology editor) and using a translator to convert them to whatever code is needed. This makes it possible to perform visual programming in a meta language (OWL) Web Ontology Language (option 2), without needing to worry about how it's implemented. The possibilities for this are that it becomes sufficiently intuitive, so that people can eventually create their own software for a wide variety of tasks, in a point and click way and using similar tools to web page editors. This would enable anyone who is computer literate to program the computer themselves to do their tasks, and if this is of interest to others, they can release their solution over the web.

Technologies such as XForms - http://www.cems.uwe.ac.uk/amrc/seeds/Ajax/ajax.htm#XForms, XQuery - http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/XML/XML.htm#XQuery, and SPARQL - http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/RDF/RDF.htm#SPARQL

make it possible to provide the sort of collaborative interactivity that Tim Berners-Lee calls 'Intercreativity' in Weaving the Web - http://www.w3.org/People/Berners-Lee/Weaving/. In this book he also discussed the use of Semantic Web Languages as programming languages. He makes the point that it isn't the power of the language that is important in providing this intercreativity. The simplicity of a language such as RDF makes it easier to provide interconnected solutions to complex problems, without becoming bogged down with the complexity of the language itself, and interoperability problems. Tim Berners-Lee sums up the advantage of a Semantic Web program over programs in other languages. He writes "The advantage of putting the rules in RDF is that in doing so, all the reasoning is exposed, whereas a program is a black box: you don't see what happens inside it." If these rules are also visualised, they are exposed to everyone, including non-programmers.

These advances make it practical to develop a high level visual interface that can allow people to develop open source, open standard, interoperable programs and share them. This can allow the development of open source communities similar to those developing software currently, but only requiring the level of skill it takes to get started in visual collaboration tools such as MySpace.

In Weaving the Web Tim Berners-Lee writes "The Semantic Web, like the Web already, will make many things previously imposible just obvious". I think visual Semantic Web programming is one of those obvious things.

Semantic Web Languages could also be a useful programming tool for creation and editing of E-Learning objects (Stutt and Motta, 2004).

References

Bechhofer, S., Carrol, J., 2004. Parsing owl dl: trees or triples?. In: Proceedings of the 13th international conference on World Wide Web, NY, USA, pp 266-275.

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

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.

World Wide Web Consortium (W3C), 2007. Extensible Markup Language (XML) http://www.w3.org/XML/.

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

World Wide Web Consortium (W3C), 2007. Scalable Vector Graphics (SVG) XML Graphics for the Web http://www.w3.org/Graphics/SVG/.

World Wide Web Consortium (W3C), 2006. SPARQL Query Language for RDF http://www.w3.org/TR/rdf-sparql-query/.

World Wide Web Consortium (W3C), 2006. XQuery 1.0: An XML Query Language http://www.w3.org/TR/xquery/.

Monday, May 07, 2007

Translation for Visual End User Programming

Research Theory influencing this Translation Mechanism


The use of the Semantic Web in my thesis is to be a means for open standard representation of information (built on XML), transformation into different representations as required, and for provision of a high level interface as a tool for model creation, and translation to program code. An 'elaborator', is used, this is a translator that converts the diagrammatic representation of the problem into software code. Translations can be performed into any programming or meta-programming language or open standard information representation language, the visualisation of the model created can be displayed on the web. This translation builds on research in program and model transformation. The translation software performs transformations as required between different programming languages and visual model views. This has been prototyped, but it is important to further this research in order to establish a user base, and make the translation generic. Figure 1 shows the process.



Figure 1 - Translation Process


Implementation


Translation Process


This research involves finding alternative ways of representing models, which do not require the user to write code. The intention is to make it easier to interact with and change the models, and to share information with colleagues. The information used in the models resides in an ontology, and from this ontology models can be automatically produced via a recursive translation tool that has been prototyped.



The research for my thesis uses a technique of interpreting information in order to create decision support programs automatically in response to user choices. This technique is then extended for use in the automatic creation of programs in other computer languages and systems. This can be achieved by automated translation of the Vanguard Studio information into other languages. The basis of this is that elaborators are nodes in the tree, which are automatically created and dynamically write objects. This allows the wing box definition to be translated to the decision support system for costing and then to other software such as web pages for further processing or visualization. An open standard semantic editor Protégé created by Stanford University (2007) was used to structure this information into related taxonomies. This ontology holds the definitions of nodes representing information, and calculations to be performed. Taxonomies are created in Protégé for 'Parts', 'Materials', 'Consumables', 'Processes', 'Rates', and 'Tooling' for a prototype costing system. 'Parts' is the core taxonomy. New categories can be produced as required. Domain experts would edit the taxonomies; these experts can specify the relationships of classes and the equations to be used via a visual user interface in Protégé. These relationships are evaluated and translated to produce computer code. Figure 2 illustrates how code is produced from the semantic relationships.



Figure 2 - Translation Process Implementation


This model can be used as it is, or be a template for the generation of a further model(s). An example interface, a section from a model produced automatically, is shown in figure 3. This information is saved using a generic structure based on keys that define all relationships, into a relational database. This enables storage of hierarchical data in a relational database and also allows for separation of information into tables according to category, and the use of SQL (Structured Query Language) to automatically query and structure the information as required. Vanguards' tree based decision support tool Vanguard Studio (2007) reads this information and represents it as colour-coded nodes. The code written for this thesis automatically queries the taxonomies that make up the ontology and links the information as required for the model. The code builds in all the links required for the equations and thus links up information from different taxonomies, the information is colour coded according to which taxonomy it is from. This same code can be reused for any modelling problem, it builds the equations and follows the links to build each equation tree, and attach this to the rest of the tree. The decision support tool can perform calculations and so output results. Figure 3 shows how the decision support tool can automatically construct and represent a branch in the tree, visualize an equation and calculate a result. Red nodes represent processes, green nodes represent the part definition and magenta nodes represent resources. This illustrates how 3 taxonomies have been automatically linked because they are needed in this calculation. In this prototype hundreds of calculations have been related to each other, this example illustrates that 'Area' was also calculated, and that this forms part of the tree for the 'Hand Layup Tool Cleaning Cost', which in turn is passed into other calculations. Hundreds of calculations using information from all the taxonomies are linked as required in this costing example. The time taken to perform the translation from the ontology and to perform all the calculations is a less than a second.




Figure 3 Ontology to Model Conversion



References


Stanford University, 2007. Welcome to protégé - http://protege.stanford.edu/.


Vanguard Studio, 2007. Global Knowledge Portal http://wiki.vanguardsw.com/.



My Research - http://www.cems.uwe.ac.uk/~phale/.


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


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


Visualization - http://www.cems.uwe.ac.uk/amrc/seeds/Visualisation.htm