Showing posts with label UML. Show all posts
Showing posts with label UML. Show all posts

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.

Friday, April 02, 2010

Unified Computing For Engineering, Business and Science

The research undertaken and described here crosses the boundary between engineering and computing. This is achieved by reusing the same approach for computer modelling and engineering modelling, thus applying computing use case and tree based node and object design. This approach is usable for any kind of tree and network based modelling e.g. engineering process modelling, workflow, business process modelling. The approach makes use of nodes linked by equations, or pure taxonomies if equations aren't required, thus making this useful for taxonomies, and useful for representing computing structures, biology, and engineering structure. When these taxonomies are linked up, they can then be used for a colour coded visualised ontology super taxonomy, of sub taxonomies e.g. processes, materials, components (engineering or computer software), resources, and cost rates.

The visualisation represents the structure of the model, and the structure of the problem, creating a unified approach for systematic program and model, computing and engineering, business, and biology structure representation. This makes structured representation much clearer than it can be in a flat structure such as a spreadsheet, and makes auditing and keeping track of changes easier.

This unified approach then enables representation of the problem at a high level of abstraction and if the optional equations are included aids process modelling and decision support. This high level of abstraction and structured representation and visualisation makes errors more obvious and findable, aiding auditing. Semantic Web and Web 2.0/3.0 technologies make this approach feasible for moving this approach from more complex to simple low end computing and networking the approach where useful or necessary.

Friday, August 17, 2007

User-Driven Model-Driven Programming

A model-driven approach is important for enabling of user-driven programming. User-Driven Model-Driven Programming is the way to make it possible for a much wider range of people to do their own programming. This combines the approaches of End-User Programming, the Semantic Web and Modelling. The mechanism for this is program transformation, translating from user view to model to code. The diagram below shows this approach.


User Driven Model Driven Programming Diagram

User Driven Model Driven Programming

Ways my research is pursued in order to make User Driven Programming possible are :-

1 Semantic Web and Web 2.0 approach to enabling User Generated Content - http://www.cems.uwe.ac.uk/amrc/seeds/Ajax/ajax.htm.
2 User Centric Extensions to UML (Unified Modelling Language) e.g. http://www.himalia.net/ this approach also ventures into 1 and 3).
3 Visual Programming Extensions to spreadsheet type formulae based modelling, an example is http://wiki.vanguardsw.com/ enabled using approach 1.

This research links with the approach of enabling User Generated Content and providing a Visual Programming System. While my thesis concentrates mainly on 1 and 3, 2 is just as important and is referenced.

So there is considerable overlap between these three approaches and they must be integrated within interdisciplinary research to enable user driven programming. One approach to this is a Semantic User Interface, this is explained here -http://www.himalia.net/docs_semanticUI.html. This can enable Drag and Drop programming http://www.cems.uwe.ac.uk/amrc/seeds/Ajax/ajax.htm#DragandDropProgramming that combines the benefits of all three research approaches. The important factor is to connect the user interface with the underlying code, so the two share the same structure and users can properly see how their actions can change the underlying code.

The next step is to make possible collaborative user-driven programming by sharing the visualisation of models across computer networks and between collaborators. 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.

My pages on subjects related to this are -

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

Language and Tool Mapping - http://www.cems.uwe.ac.uk/~phale/#LanguageToolMapping.

Model-Driven Programming -http://www.cems.uwe.ac.uk/amrc/seeds/softwareengineering.htmModelDrivenProgramming.

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

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

Saturday, July 28, 2007

Dagstuhl Seminar End-User Software Engineering - Part 4 - Final Part

End-User Software Engineering - Dagstuhl Seminar - Summary - http://www.dagstuhl.de/en/program/calendar/semhp/?semnr=2007081 - PDF Abstracts and links to papers - http://eusesconsortium.org/docs/dagstuhl_2007.pdf - Margaret M. Burnett, Gregor Engels, Brad A. Myers and Gregg Rothermel - From 18.01.07 to 23.02.07

In 'Meta-User Interfaces for Ambient Spaces: Can Model-Driven-Engineering Help?' http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1082 Joëlle Coutaz explains how Model Driven Engineering and Service Oriented Architecture can be combined -

"Our approach to UI plasticity brings together MDE (Model Driven Engineering) and SOA (Service Oriented Architecture) within a unified framework that covers both the development stage and the runtime phase of interactive systems."

Coutaz also explains that -

"An interactive system is a graph of models related by mappings and transformations."

This would fit in well with the structure of RDF (Resource Description Framework) a Semantic Web standard which is also a graph structure.

In 'Model-Driven Development for End-Users, too!?' http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1085 Gregor Engels of University of Paderborn explains that UML (Unified Modeling Language) should be extended to allow development of user interfaces in order to assist end-users to program -

"The UML is strong in modelling the internal functionality of a software system, but weak in modelling user interface aspects of a system. Thus, with respect to the well-known MVC (Model-View-Controller) pattern, the UML supports the Model aspect, while neglecting the View and Controller aspect."

In 'Position Paper for Dagstuhl 2007 EUSE Workshop' http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1094 Mary Beth Rosson of Pennsylvania State University explains their development of a drag and drop interface for web based visual programming.

In 'Rethinking the Software Life Cycle: About the Interlace of Different Design and Development Activities' http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1084 Yvonne Dittrich of University of Copenhagen argues that more research is needed into the software lifecycle and methods and tools needed for end-user developers, especially when they are collaborating. These end-users often need to adjust old software for new purposes.

In 'Software environments for supporting End-User Development' http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1081 Maria Francesca Costabile, Antonio Piccinno also explain that new methodologies and environments are required for supporting end-user collaborative development.

In 'What is an End-User Software Engineer?' http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=1080 Steven Clarke of Microsoft examines the characteristics of end-user developers in order to assist with meeting their needs.


My home page is http://www.cems.uwe.ac.uk/~phale/.

I have a page on End-User Programming at http://www.cems.uwe.ac.uk/amrc/seeds/EndUserProgramming.htm.

Wednesday, March 07, 2007

End User Modelling Tools

This article examines the need for users to be enabled to program, and the tools that could be created to assist this. It also examines how UML (Unified Modeling Language) tools could be adapted to enable developers to provide an environment for users to program, and how new UML tools could be created to help users to develop software themselves.

User involvement is important in the development of software but a domain expert does not necessarily possess expertise in software development, and a software developer cannot have expertise in every domain to which software might apply. So it is important to make it possible for software to be created, using methods that are as close as possible to that which the domain expert normally uses. The proportion of domain experts in a particular domain (aerospace engineering) for example who can develop their own programs is fairly low, but the proportion that are computer literate in the everyday use of computers is much higher. If this computer literacy is harnessed to allow the domain experts to develop and share models, the productivity for software development will be increased and the proportion of misunderstandings between domain experts and developers reduced. The domain experts can then explore a problem they are trying to solve and produce code to solve it. The role of developers would then become more that of a mentor and enabler rather than someone who has to translate all the ideas of experts into code themselves. Other developers may work at providing better translation software for the experts.

In my research I examined the role of UML (Unified Modeling Language). However there are important gaps in the functionality of UML tools for user centred design. Palanque and Bastide (2003) identify these gaps "For the team of methodologists (Rumbaugh, Jacobson, Booch) that shaped the UML, User Centred Design was not a central concern." These gaps are of even greater importance when attempting to make it possible for people who are not programmers to create software. UML tools could assist software developers in creating a modelling environment suitable for domain experts to use to solve their problems. To achieve this would require a major change in UML tools to enable modelling of user interaction as the core concern. Enabling users themselves to create software using UML type tools would require development of a new type of UML tool specifically designed for ordinary users. This would be compact and simple, but provide enough capabilities to ensure users' designs are robust. This would also fill a gap left by engineering and scientific modelling tools which are powerful but do not have collaboration, communication, and ease of use as central concerns.

Palanque, P., Bastide R., 2003. UML for Interactive Systems: What is Missing INTERACT 2003 Closing the Gaps: Software Engineering and Human-Computer Interaction Zürich, Switzerland - http://www.se-hci.org/bridging/interact/p96-99.pdf.

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

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