Programming Distributed Collaboration Interaction Through the World Wide Web

University of Calgary, Department of Computer Science
MSc Thesis © Roberto A. Flores June, 1997




CHAPTER 4
Implementing a Java Concept Mapping Tool



The purpose of the systems implemented as test cases for this research is to provide support for distributed interaction of concept maps on the Internet and the Web. To achieve this goal, two primary steps were required: first, to develop a class structure to support the manipulation of concept maps; and second, to extend such a system to allow multi-user elicitation of concept maps on the World Wide Web.

The work required to accomplish these steps was not done under isolated circumstances, but as part of a previously established effort to promote the use of concept maps in several areas of expertise. In particular, the test case systems implemented were highly influenced by previous developments at the Knowledge Science Institute of the University of Calgary. These developments, and their path of influence, are briefly described on the following section.


4.1 PREVIOUS WORK.

The Knowledge Science Institute has a comprehensive history of concept mapping development. Initial implementations have encouraged the development of subsequent systems, as shown on Figure 8. In this figure, links are used to construct a development hierarchy where nodes depict diverse systems and class libraries. Nodes are differentiated by their shape and fill color. Ellipse nodes represent class libraries (in this case, CMap and jCMap); rectangular nodes represent standalone applications; and shaded rectangular nodes represent Web-embeddable applets and plug-ins.


Figure 8. Concept Mapping Development at the Knowledge Science Institute.

Each of these concept mapping developments is briefly explained as follows (Gaines, Kremer and Flores, 1996): Of the programs and classes described above, four were specifically implemented for this research. These are the jCMap class library, the jKSImapper standalone application, the jKSImapplet Java applet, and jKSImapplet Navigator. jKSImapplet Navigator has been included as an example of the application of jKSImapplet as a Web navigational tool.


4.2 SYSTEM REQUIREMENTS.

The purpose of this section is to describe the requirements for the test case systems. As mentioned at the beginning of this chapter, there are two general requirements for the test case system: it should be able (a) to handle concept maps, and (b) to allow multi-user manipulation of those concept maps on the Web. These issues are addressed on the following sections.


4.2.1 DEVELOPMENT FRAMEWORK.

The creation of a development framework requires the definition and understanding of the components of the system to construct. In this case, the definition and understanding of the entity concept map will help to elicit the requirements for a concept mapping system.

Unfortunately, the term "concept map" eludes a concise description and definition. In Chapter 1, concept maps were defined as diagrams composed of links and nodes of different types. However, this description is too broad and ambiguous to be useful.

Instead, a definition for concept maps can be found by examining their use under the light of three levels of analysis (Gaines and Shaw, 1995b):

Each of the perspectives mentioned above represents one of three layers that can be supported by concept mapping tools. In the case of the test case application presented, the class library used to implement it supports each of these perspectives to certain extend, as explained as follows:

4.2.2 SUPPORTING MULTI-USER ENVIRONMENTS.

In recent years, computers have evolved from being purely a computational machine to a symbolic manipulator (word processors, graphics applications, databases) and, more recently, to a vehicle for human communication (e-mail) and knowledge repository (artificial intelligence, expert systems) (Gaines, 1991). Eventually, computers have matured to interact with the surrounding human environment. The first computers viewed data as the center of computation, with almost no human interaction as part their execution process. As time passed, this scenario evolved, and computers started to support interaction not just with single users but with entire communities of users working together.

Currently, most software systems are designed to support interaction between user and computer. However, market exigencies urge for software that also supports interaction between users, since much of an individual's work is within the context of a group. Organizations are not made up of people working individually at their desks, but rather people cooperating and collaborating as groups or teams. In this context, Computer Supported Collaborative Work (CSCW) is an area that studies the use of computers to enhance and extend people's natural abilities to collaborate for achieving their goals (Kremer, 1993). As shown in Table 4 (Ellis, Gibbs and Reln, 1991), CSCW systems must provide support for individuals working alone or in sub-groups, and at the same or at different times.

Same Place
Different Place
Same Time
face-to-face meetings
synchronous remote interaction
Different Time
asynchronous interaction
asynchronous remote interaction

Table 4. Interaction modes of CSCW systems.

The interaction modes shown in this table are explained as follows: The four interaction models mentioned above are covered by the present test case implementations. Remote interaction is supported by a server process that acts as a command broadcaster and central repository of information. Further information regarding the server implementation is detailed on Chapter 5, under the Section "5.2. Runtime System Architecture."


4.3 JKSIMAPPER.

This section describes the features implemented by the standalone Java concept mapping system, which is named jKSImapper. This system is based on the Java jCMap class library, which descends from a previous developed C++ class library known as the CMap class library.

jKSImapper is a standalone Java application that allows the generation and manipulation of concept maps. This system uses a graphical user interface based on windows, dialogs and menus to handle user requests. A pointing device is also required to modify specific attributes of objects, such as position, size and link attachment.


Figure 9. jKSImapper components.

As shown on Figure 9, jKSImapper is composed of two general component types: a Windows Manager and a group of zero or more Concept Map Windows.


4.3.1 THE WINDOWS MANAGER.

As its name suggests, the Windows Manager is designed to control and to organize several windows, which in this case will contain one concept map per instance. The Windows Manager can be seen more as an abstract tracker of displayed windows, than a part of the concept mapping process.

One advantage of using this approach is that one single Java interpreter supports all the concept maps that a user might want to utilize at a given time. If each concept map window has been implemented to use its own instance of the interpreter, it would have resulted on more resources being consumed to maintain each one of those independent instances.


Figure 10. The Windows Manager.

The Windows Manager implements procedures that allow users to display and access concept mapping elicitation windows. As shown on Figure 10, there are three options on the menu bar of a Windows Manager. These options are:

4.3.2 THE CONCEPT MAP WINDOW.

Concept Map Windows provides the core functionality for concept mapping elicitation. As shown in Figure 11, Concept Map Windows can manipulate nodes, links, and context boxes, to construct complex structures.


Figure 11. A formal concept map describing the sentence "Tom believes that Mary wants to marry a sailor."

In this figure, a graph created using the formal representation language known as Conceptual Graphs (Sowa, 1984) is used as an example. This graph represents the sentence "Tom believes that Mary wants to marry a sailor." The structure shown on the concept map can be read as "There exists a belief whose experiencer is Tom and whose patient is the proposition that there exists a want whose experiencer is Mary and whose patient is the situation that there exists a marriage whose agent is something (Mary) and whose patient is some sailor."

Concept Map Windows rely on a set of predefined operations to modify the composition of concept maps. As shown in Table 5, these operations are applied to one or several target elements and can be activated by using specific user interface components.

Target Element
Operation
Node
Link
Context Box
Concept Map
Creation
Deletion
or
or
or
Selection
Move
Resize
Attach/Detach
Text Label
and
and
and
Font
Color
Shape
Line Segments
Arrow Heads
Undo/Redo
Save
and
User Interface Mediums: Menu Mouse Keyboard

Table 5. Operations performed in Concept Map Windows.

The operations shown in this table are explained as follows:

4.4 JKSIMAPPLET.

As described in previous chapters, Java applets running inside Web browsers confront more restrictions than Java applications do when it comes to accessing resources on client computers. For example, it is possible for an application to access the client's file system, or to open simultaneous communication channels to different servers on the Internet. However, such competence is not granted to applets, which are limited by security mechanisms enforced by Web browser implementations. These security mechanisms prevent applets (a) to access local storage resources, and (b) to open network connections to computers other than the server from where the applet was downloaded.

Limiting the functionality of programs is one method to provide a secure environment for the execution of downloadable code in the Web. Another method might be to support well-defined security mechanisms to restrict the access to computer resources according to user-defined access policies. This method has the advantage of just restricting the functionality of those programs that do not conform to the level of trustworthiness granted by the user. Unfortunately, the absence of this (or a similar) security method has lead to the implementation of more restrictive (but simpler) security mechanisms.

Under this scenario, implementing jKSImapplet required the modification of some functions available on jKSImapper. Prominent adjustments were performed on two specific areas:

Figure 17 shows an instance of jKSImapplet embedded on a Web document, along with the widgets provided to interface with the user. Most operations available as menu options on jKSImapper were implemented in jKSImapplet by using buttons and combo boxes. A detailed description of the implementation of these widgets is found in Chapter 5 under "Runtime System Architecture."


Figure 17. HTML widgets interacting with jKSImapplet through JavaScript.


4.4.1 JKSIMAPPLET NAVIGATOR.

Systems that allow multi-user manipulation of concept maps across the Internet are valuable assets for sharing ideas and information. Users might find it useful to have tools supporting their work without requiring their presence in a meeting room to achieve their goals. In this case, groups can benefit from using jKSImapper and jKSImapplet as tools for eliciting concept maps from members spread across different locations.

However, concept maps are not just aimed to communicate and gather ideas; they can also be used to organize information in different levels of abstraction. Concept maps can provide an active hypermedia interface by supporting hyperlinks to access resources. In the case of the Web, concept mapping tools can be used as hypermedia components to access Internet resources. To this end, jKSImapplet Navigator was developed as an example of the potential of concept maps to act as hypermedia navigator tools on the Web.


Figure 18. jKSImapplet Navigator.

jKSImapplet Navigator adds URL access capabilities to jKSImapplet. This modification permits read-only access to concept maps using URLs. It is also possible for the system to open a multi-user concept mapping session if the downloaded concept map comes from a server where a jKSImapper server process is under execution.

Figure 18 shows a Netscape Navigator window being displayed as a response to a user selection on a concept map displayed on a separate window.


4.5 CHAPTER SUMMARY.

This chapter has described an informal concept mapping tool application. This application, known as jKSImapper, was explicitly developed as the test case for this research. It was implemented based on the jCMap class library, which was developed using the Java programming language. jKSImapper has been extended to perform as a Java applet inside Web browsers. This applet, called jKSImapplet, was further extended to perform as a navigator tool for the Web, resulting on a new applet named jKSImapplet Navigator. jKSImapplet Navigator allows access to HTML documents and concept maps addressed by URLs.

jKSImapper is based on work previously developed at the Knowledge Science Institute, as it was described on the first section of this chapter. Such systems were invaluable as a guide for the implementation of the test case systems presented.

The description of previous developments was followed by a discussion of the system requirements. A general development framework was determined by addressing the abstract, visualization and disclosure perspectives. Multi-user support was devised by analyzing the quadrants required for CSCW systems. These requirements were implemented in jKSImapper.

The last part of this chapter was devoted to introducing the operations performed by jKSImapper, jKSImapplet, and jKSImapplet Navigator. jKSImapper was described as composed of two elements: a Windows Manager and Concept Map Windows. The operations performed by jKSImapper were described in detail on Sections 4.3.1 and 4.3.2. jKSImapplet was introduced as a generic concept mapping applet derived from jKSImapper. One of several possible applications for jKSImapplet was depicted by jKSImapplet Navigator, which is an applet capable of accessing Web resources and hypermedia concept maps inside Netscape Navigator.

The next chapter (Chapter 5) will discuss the implementation of the applications described in this chapter. This chapter will start with a description of the jCMap Java class library, which will be followed by a discussion of the implementation of the runtime system architecture for the systems presented. Chapter 5 will end with an account of the lessons learned while porting C++ code to Java.



© Roberto A. Flores June, 1997