Showing posts with label HCI. Show all posts
Showing posts with label HCI. Show all posts

Friday, April 29, 2011

The Human Semantic Web - Further Reflection

The web is a useful environment for enabling people to add their knowledge in both a less structured Web 2.0 way (development of less structured but interactive web tools/programs), and a more structured Semantic Web way. The greater interaction in the Web 2.0 approach at least makes it more likely that Semantic disagreements will be spotted, but it takes the structuring in the Semantic Web approach to then show the meaning of terms more clearly and unambiguously so that agreement or disagreement about and mapping of terms can be reached. This then makes possible Naeve’s (2005) ‘Semantic Collaboration’ through and also defining the ‘Human Semantic Web’ that Naeve advocates. This then enables moving on from the Web being an environment only for simple tasks to one where sophisticated programs and models could be run that enable calculation and decision support.

This combination in approaches of enabling greater human interaction, and more definition of semantics can be illustrated by adapting the table displayed in my previous post.

Table - Language and Tool Mapping - Further Development



















Thus Increased Semantic Structuring and Collaboration from right to left, combined with Increased Human Interaction from bottom to top makes it more possible to undertake modelling and programming because the information is then well mapped and structured, and made available for visualisation and human interaction. On reflection AJAX/Web 2.0 technology spans more than one part of this diagram depending on the emphasis of whether to structure it and/or enable greater interaction. To reach the top left of the diagram requires layered use of technology as per the diagram developed by Berners-Lee (2000) and also McGuinness (2003). This layering of technology is needed in order to translate from the computer centred representations in the bottom right to the human centred representations and modelling in the top left. Human centred representations are too abstract for computers and computer centred representations are too abstract for humans. Therefore the technologies in the top left are not superior to those below and to the right as they need to be built on those technologies. Further there is more than one way to reach the top left, e.g. along the diagonal arrow from Naeve’s (2005) Semantic Isolation through Semantic Coexistence to Semantic Collaboration, or by moving up then left, or left then up. Following the diagonal arrow based on Naeve’s analysis is best for planning and building such a project from the start, but the other forms of navigation might be the best way to build on an existing project that has already been moving in a particular direction, that is not on this diagonal arrow.

References

Berners-Lee, T., (2000) Semantic Web on XML – Slide 10 - http://www.w3.org/2000/Talks/1206-xml2k-tbl/slide10-0.html

McGuinness, D. L., 2003. Ontologies Come of Age. 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.

Naeve, A., 2005, The Human Semantic Web – Shifting from Knowledge Push to Knowledge Pull. International Journal of Semantic Web and Information Systems (IJSWIS), Vol 1(3) (July-September 2005) pp 1-30.

Naeve - http://kmr.nada.kth.se/wiki/Amb/HomePage

Tuesday, April 26, 2011

The Human Semantic Web

My thoughts on the work of Naeve http://kmr.nada.kth.se/wiki/Amb/HomePage and Enoksson on the Human Semantic Web and implementation of Concept Maps.

Enoksson (2006) explains the advantages for extensibility of an open standard language, he used RDF for Conceptual Browsing on the Semantic Web. Enoksson (2006) models things with concept maps that break an overall ontology down into concept sub-ontologies/taxonomies.

Naeve (2005) argue that “combining the human semantics of UML with the machine semantics of RDF enables more efficient and user-friendly forms of human-computer interaction.” Using UML for production of ontologies is as advocated by Baclawski et al. (2001) and Kogut et al. (2002), and Enoksson (2006). Naeve (2005) examines this strong separation between types (classes), and instances (objects) and considers this to be a weakness, which he rectifies for ULM (Unified Language Modeling) developed from UML.

Naeve (2005) gives an example of the need for “semantic mapping” between different words with the same meaning such as ‘author’ in one ontology and ‘creator’ in another ontology in order to establish interoperability and machine readability.

The Table below shows tools, technologies, and languages that can assist in this, and where they are based in a hierarchy from low level information centred interaction to high level user centred interaction (bottom to top), and computing focused to human focused representation (right to left). The Table also shows how each tool fits in with Naeve’s (2005) analysis based on “characteristics of the three different semantic stages” of “Semantic Isolation, Semantic Coexistence, and Semantic Collaboration” :-

Table - Language and Tool Mapping















Naeve (2005) describes Semantic Isolation where databases are available but hidden behind web portals, though the portals advertise their address. Semantic Coexistence is achieved by databases being structured in such a way that it is possible to search them without having to know their location. Naeve gives the example of RDF Schema - RDF(S), this standardises the structuring of the information across RDF(S) databases. RDF(S) provides standardised elements for the description of ontologies, so assisting to enable Semantic mapping. Semantic mapping enables Semantic Coexistence due to Semantic mapping enabling agreement on terms. For the table above the argument presented is that high level user centred interaction (bottom to top), and computing focused to human focused representation (right to left), enable Semantic Coexistence. The tools in the top left are built from those below and to the right of them so the Semantic Coexistence is built from Berners Lee’s (2000) Layered Architecture. Naeve (2005) argues the need for semantics that are understandable to humans as well as machines. That is an important objective of the research outlined in my thesis as without semantics that are understandable to humans, it is not possible for non programmer domain experts to undertake collaborative modelling. Naeve (2005) discusses a bottom up approach where there is a set process of deciding what can be agreed on, what cannot, and on documenting both.

Naeve (2005) argues that where knowledge is tacit it is vital to keep track of the individuals or groups who have this tacit knowledge, and that also the ‘Human Semantic Web’ can help elevate tacit knowledge to explicit.

References

Baclawski, K., Mieczyslaw, K., Kogut, P., Hart, L., Smith, J., Holmes, W., Letkowski, J., Aronson, M., 2001. Extending UML to Support Ontology Engineering for the Semantic Web. In: Proceedings of the 4th International Conference on The Unified Modeling Language, Modeling Languages, Concepts, and Tools, pp 342-360.

Berners-Lee, T., (2000) Semantic Web on XML – Slide 10
http://www.w3.org/2000/Talks/1206-xml2k-tbl/slide1-0.html

Enoksson, N. (2006) Serverside Solution for Conceptual Browsing on the Semantic Web. MSc. Dissertation, Stockholm University.

Kogut, P., Cranefield, S., Hart, L., Dutra, M., Baclawski, K., Kokar, M., Smith, J., 2002. UML for Ontology Development. The Knowledge Engineering Review Vol 17(1) pp 61-64.

Naeve, A., 2005, The Human Semantic Web – Shifting from Knowledge Push to Knowledge Pull. International Journal of Semantic Web and Information Systems (IJSWIS), Vol 1(3) (July-September 2005) pp 1-30.

Thursday, December 31, 2009

Methodology for creation of modelling systems

This approach is based on creation of systems that can be customised to produce other systems and models, and translation from abstract diagrammatic representations to computer representations.The conclusion explains how this approach to modelling and end-user programming enables interoperability, and collaboration, and that this assists with Maintenance, Extensibility, Ease of Use, and Sharing of Information.

This methodology can be seen as an attempt to semi-automate knowledge acquisition and representation approaches such as the SEPA Funnel (Systems Engineering Process Activities) . This methodology was prototyped in the research that led to the User Driven Modelling/Programming Approach. This provides a translation process from Knowledge Acquisition to modelling (User Driven Modelling), and automated translation of model to software (User Driven Programming), and so takes this SEPA Funnel to a further stage of translation/transformation of the model/system design specification. This can be facilitated by using XML (eXtensible Markup Language) as a programming language, for the representation of data and formulae, and of the user interface e.g. XAML (eXtensible Application Markup Language).

The methodology suits top-down ontology and model creation e.g. from those responsible for the root item in a product data structure downwards, and bottom-up ontology development, e.g. alternative solutions, tagging of items to allow discussion and enable disambiguation, and agreement on terminology, and mapping of alternative names to each other. This dual approach is facilitated by the translation being provided in both directions.

This model-driven approach examines how links between engineers and modellers/modelling tools can be improved, by visualising a modelling structure that mirrors the structure of the engineering product design. This provides traceability for calculation and decision making in a more clear, structured and visualised way than the audit trail in spreadsheets. This work concentrates mainly on requirements (Airbus, Rolls-Royce), software, and HCI aspects of systems. The main method for this is diagrammatic modelling which was used in gathering requirements, and is also implemented within the modelling system developed.

Making the structure of a model be the same as the structure of the engineering component modelled, and visualising both turns two problems into one. This speeds up co-operation in prototyping of both the software model and the component. Both rapid prototyping and rapid application design/development involve iterative fast development with prototypes communicated for feedback and refinement.

Requirements emerge gradually as part of this process, so early stage design can begin, in co-operation with life-cycle management, marketing, accounts etc. To get full benefit from this all staff who are part of this design process, manufacturing, management, and life-cycle management need to be able to access the models. The longer term aim is to enable direct modelling/prototyping of this by customers of the modelling tool e.g. engineers/end-user programmers. Such a system documents itself as the structure of the engineering product and software model are displayed/visualised. This would make it possible for emergent properties of a system to become known.

Despite object-oriented programming techniques being heavily influenced by the approach used by engineers for Bill of Materials/Product Data Structure modelling this link is difficult. Much of object-oriented programming was developed before graphical user interfaces became practical and common. So objects/classes are often represented mainly by text with visualisation/representation being added as an afterthought. This is not useful for engineers who are used to objects being physical things, or at least diagrams. A further problem has been an over-emphasis on encapsulation (hiding an objects' details, while creating an interface for its use, and re-use). This can lead to errors due to re-use of objects not fully understood. So the classes/objects must be visualised, even if the user does not intend to change their contents, then the user of objects has sufficient understanding of how to use them. This would improve the link and co-operation between engineers and modellers/models. The advantage is that engineers can iterate back and forth between problem and solution, this avoids two risks - going straight to a solution too early, or the problem being so abstract that no solution is achieved. Rapid iteration that semi-automating of the system provides enables an improved chance for finding a good solution. This approach is particularly suitable to taxonomy tree structures, so is best applied for process modelling (business and engineering), product data and work breakdown structures, and scientific taxonomies/phylogenies.

A requirement for use of such a system by engineers (or business and science) is to eliminate or minimise the need for code writing. This then would enable engineers to create models by linking of formulae, as they do when using spreadsheets, but provide a more structured (tree based) representation and visualisation of model(s). To find alternative ways of representing models that do not require the user to write code it must be easier to interact with and change the models, and to share and develop information with colleagues. It would also be useful to more closely align and link UML, and code development environments. Too much need for coding leads engineers to lose influence on the system to be developed, as the model needs to be created by software experts who have less understanding of the engineering problem.

Conclusion
This work involved development of a system for creating systems. Advantages of this approach are Maintenance, Extensibility, Ease of Use, and Sharing of Information. The use of open standards and representation enables this system to interact and interoperate with other systems and enable collaboration. This makes this system a ‘white box’ which can interact with and be viewable to other systems rather than a proprietary ‘black box’. This systematic design and representation of engineering modelling systems, enables semi-automated translation. This enables rapid iteration around a cycle of knowledge acquisition, specification of the problem, prototypes, and alternate potential solutions. This assists with deciding when to adapt and re-use existing solutions and when to innovate.

Such a system could be used to rebuild the system engineering for aerospace capabilities at UWE, and is being developed further at Bath University. A further advantage of the approach outlined here is that it shows promise for use in the SALT (Sharing Approaches to Learning and Teaching) project and for the Tearfund disaster relief project, so the flexibility built into it makes the process applicable to problems for which it was not envisaged and designed. Although these tools can be regarded as software related, they are also and more importantly a way of empowering computer literate end-users (e.g. engineers) with the autonomy to collaboratively model problems more free of constraints of software development. This enables better collaboration across disciplines and more independent of management structure and hierarchy.

SEPA Funnel - http://www.umcs.maine.edu/~ftp/wisr/wisr9/final-papers/Barber.html - K. Suzanne Barber, Thomas J. Graser, and Stephen R. Jernigan.

Systems Engineering MSc Module Assignment - Main part - http://docs.google.com/View?id=dgp7zcg6_344cxn8sxhs - Appendix - http://docs.google.com/View?id=dgp7zcg6_352c8j2w5cg.

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.