The aim of this research is to enable effective management of information by creation of a visual document, programming, and information management system and interface. The means for this is creation of a visual development environment for programming using XML based technologies. This will enable interactivity with and further development of this system by end-users such as administrative staff. An objective is to investigate use and improve visual environments and create proof of concept software for free distribution between academics, and amongst others, of this interactive environment. This will enable editing of the program structure using a visual representation of the software over the web that can be translated directly into code. Users will be able to change the program without ever needing to see the XML (eXtensible Markup Language) code. This will allow people to create interactive software that is well structured and searchable, and the best options for making this creation as straightforward as possible will evaluated. There are many techniques, tools and languages available for structuring and searching web pages, these will be applied to management of information.
Mayo and Steinberg [1] authored a cabinet office report for the UK Government recommending government partners with other providers to make use of User generated content and enable provision of information that helps achieve public policy objectives. A JISC (Joint Information Systems Committee) report explains the power of networks and how important it is for educational establishments to make proper use of them [2]. The flexibility of information representation languages could enable administrative users to maintain, adapt and extend a system themselves. This goes beyond open source development to enable development of communities of end-user programmers. Users can interact with XML via programs written in interpreted languages such as JavaScript. The user will not require any software except for a web browser as the development environment will be web-based.
XML is used for structuring information so different software systems can interpret it. This language can be used to structure web pages so that they can represent and link to programming objects. XML can be used as a way to manage workflow within and between organisations. XML provides the basis for creation of taxonomies and ontologies. Using Meta-tags defined with XML it is possible to create documents that define their own structure and to provide a consistent and understandable user interface. A further objective of this research is automating the conversion of information between formats, to assist organisations to manage their information.
Mechanisms for this Research
The intention is to prototype the creation an environment based on Semantic Web languages such as OWL (Web Ontology Language), RDF (Resource Description Framework) [3] and XML, not just for search but also combined into a comprehensive application that is usable for end-user programming of a large range of problems. To allow users to create Rich Internet Applications we intend to create a translator using XML or RDF/XML programming so the entire solution would be in XML based languages. This involves programming with Semantic Web languages rather than just using them for information representation. This will make the translation from visualisation to code easier and more reliable, and further improve the maintainability of the software created.
It is essential that new ways of enabling collaboration between all those involved in software creation and use are investigated. An important part of the research will be to investigate the use of Semantic Web languages for programming, rather than just for representation of information, this would expand on languages such as SPARQL (Simple Protocol and RDF Query Language) [3] and XQuery [4]. The use of Semantic Web languages for declarative programming can ease the translation between different representations of information, and ease interoperability between systems.
End-User XML Editing
An XML based drag and drop programming example has been created [5], this example was created with AJAX (Asynchronous JavaScript And XML). XML can be manipulated directly from the browser rather than requiring a specialist XML editor. 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 editing controls. It will be possible to make use of XML based meta programming to allow end-user programming, Simkin [7] and Lemos [8] are examples of this approach. We intend to investigate and extend this approach to create meta language tools for programming, including for the display interface. Semantic languages provide a higher level declarative view of the problem to be modelled. We will develop declarative programming with XML based languages. Examples of research into XML as a programming language are AspectXML [9], and the Minimal Imperative Language XIM [10]. Interactive web programs can be created using scripting languages and XML combinations such as AJAX (Asynchronous JavaScript And XML) [11], which is a name for techniques to create highly interactive web pages. Web 2.0 technologies (often making use of Ajax) aim to reproduce on the web the functionality provided by office software and this can be extended to enable users to create their own programs using XML and a visual interface.
Even where documents are represented using XML or other structured languages, it is important to structure the contents and semantics using an ontology, Erdmann and Studer [12] experiment with this.
References
[1] Mayo E, Steinberg T, 2007, The Power of Information, Cabinet Office independent review - http://www.cabinetoffice.gov.uk/publications/reports/power_information/power_information.pdf?id=3965.
[2] JISC (Joint Information Systems Committee) Anderson P, 2007, Technology and Standards Watch What is Web 2.0? Ideas, technologies and implications for education - http://www.jisc.ac.uk/media/documents/techwatch/tsw0701b.pdf.
[3] World Wide Web Consortium (W3C), 2007, SPARQL Query Language for RDF, http://www.w3.org/TR/rdf-sparql-query/.
[4] McGovern J, Cagle K, Bothner P, Nagarajan V, Linn J, 2003, XQuery Kick Start.
[5] Drag and Drop, 2007, http://www.cems.uwe.ac.uk/amrc/seeds/Ajax/samples/components.html.
[6] Scand dhtmlxTree, 2007, http://www.scbr.com/docs/products/dhtmlxTree/index.shtml.
[7] Whiteside S, 2007, Simkin the embeddable scripting language, http://www.simkin.co.uk/.
[8] Lemos M, 2007, MetaL: An XML based Meta-Programming language, http://www.meta-language.net.
[9] Peterson M D, 2005, O'Reilly XML.com - [Part 3] Assets, Atom Feeds, and AspectXML - The Triple Threat of Web Development? - http://www.oreillynet.com/xml/blog/2005/09/part_3_assets_atom_feeds_and_a.html.
[10] Bayram Z, Onder R, 2007, XSL Transformations A delivery medium for executable content over the Internet, http://www.ddj.com/web-development/198800555.
[11] Cagle K, 2006, AJAX on the Enterprise, AJAXWorld conference, October 4, 2006 - http://www.oreillynet.com/xml/blog/2006/10/ajax_on_the_enterprise.html.
[12] Erdmann M, Studer R, 1999, Ontologies as Conceptual Models for XML Documents, Proceedings of the 12th Workshop on Knowledge Acquisition, Modelling and Management.
More Information
Ajax/Web2.0 - http://www.cems.uwe.ac.uk/amrc/seeds/Ajax/ajax.htm.
Drag and Drop Programming - http://www.cems.uwe.ac.uk/amrc/seeds/Ajax/ajax.htmDragandDropProgramming.
RDF, OWL, Semantic Web - http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/RDF/RDF.htm.
XML - http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/XML/XML.htm.
XML Programming - http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/XML/XML.htmProgrammingwithXML.
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/.
Showing posts with label AJAX. Show all posts
Showing posts with label AJAX. Show all posts
Friday, August 24, 2007
Friday, August 03, 2007
Drag and Drop Programming
This post examines how drag and drop programming and other forms of interactive software development can assist end-users to program via the web. AJAX (Asynchronous JavaScript And XML) software is used to provide a Web 2.0 style interactive interface. This can be linked to applications and to Semantic Web information.
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.
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.
Subscribe to:
Posts (Atom)