Roberto A. Flores
Knowledge Science Institute
University of Calgary
Alberta, Canada T2N 1N4
robertof (at)

Abstract: Concept maps are graphical representations used for organizing and communicating knowledge. In conjunction with computer mediated communication, concept maps can be used to support distributed collaboration workgroups on the Internet and the World Wide Web (the Web). However, the diversity of computer platforms conforming the Internet makes desirable the implementation of portable applications to avoid discriminating computer platforms or overworking on diverging versions for multiple operating systems. This paper describes the implementation of jKSImapper and jKSImapplet, which are portable Java concept mapping tools used as instruments for supporting workgroup collaboration on the Internet and the Web.


The learning web [Norrie & Gaines 1995], was envisioned as part of a learning society where individuals are submerged in a life-lasting process of acquiring knowledge for coping with evolving environments. Individuals will not longer succeed in isolation or with a fixed amount of knowledge, but rather operate as part of integrated collaborative workgroups, where digital networks will be used for communication and collaboration [Shaw & Gaines 1996].

Under this scheme, tools are required for supporting the communication and sharing of knowledge, and for transmitting that knowledge to each member of a community. Computer mediated communication has been very effective in empowering human intelligence, resulting on the selection of digital computers and networks as the appropriate transmission media.

This paper will address the implementation of a portable concept mapping tool as a support for workgroup knowledge sharing on a learning environment, having the Internet as the transmission infrastructure, and Java as a viable solution for providing cross-platform execution of code among the diversity of computer architectures found on the Internet.


One of the mechanisms for organizing and communicating knowledge among individuals are concept maps [Gaines & Shaw 1995a]. Concept maps encompass a wide variety of diagrammatic knowledge representations. They can be defined as diagrams composed of links and nodes of different types. Concept maps can graphically represent and organize arguments and thoughts, thus providing an alternative to natural languages as a means to communicate knowledge.

[Fig. 1] shows a concept map constructed to visualize features found in the Java programming language. In this figure circular nodes were used to represent concepts, rectangular nodes to represent specific instances, and labeled arrows to represent relationships.

Figure 1: Concept map on the Java language.


Concept maps have been applied on areas ranging from education [Novak & Gowin, 1984] and management [Axelrod 1976] to artificial intelligence [Quillian 1968] and knowledge acquisition [McNeese, Zaff, Peio, Snyder, Duncan & McFarren 1990]. Even when some of these disciplines may require specific constraints (also called formalisms) for interpreting and organizing information, the developments described on this paper do not enforce any of them. As a result, jKSImapper and jKSImapplet can be described as informal concept mapping systems that can be extended to enforce particular formalisms.

Scenarios where concept maps can be used as a groupware tool include:

The generality of these applications shows the diversity of possibilities for the use of concept maps in collaborative workgroups in many disciplines, including education.


While concept mapping systems are a valuable tool for the single user, their potential is fully achieved in multi-user environments. On such environments, concept mapping tools can provide a user interface to shared resources, and can support a range of group processes such as brainstorming and join development of knowledge structures [Kremer & Gaines 1994]. The use of a networking environment is required for supporting timely and geographically dispersed communities. From existing computer networks, the Internet presents the most suitable environment for multi-user applications, due to its wide extension and vast number of users. Additionally, hypermedia is supported on the Internet by the means of the World Wide Web.

Previous developments at the Knowledge Science Institute have also addressed the need for supporting concept mapping tools on the Web. Such developments were successfully integrated as helper applications and Netscape plug-ins under the Macintosh, MS-Windows and Unix operating systems [Gaines & Shaw 1995b] [Kremer 1996] [Lapsley 1995]. Unfortunately, such tools implemented dissimilar user interfaces, and often produced concept mapping data that was incompatible between computer platforms. These differences are the result of code designed and developed differently on each computer architecture.


The existence of many computer architectures integrated to the Internet demands a viable solution for cross-platform execution of code. In other words, programs need to be constructed with characteristics that allow their execution on many computer platforms, without modification. Programs with such ability are called portable or cross-platform.

For the sake of clarity, let us imagine ourselves as publishers of a to-be-released book. In choosing a suitable market for our publication we may decide to print editions in English, French and Spanish. This selection of markets (due to idiomatic, geographic or economical reasons) specifies not just our commitment to publish three versions of the book, but it also excludes our publication from other markets, such as Japanese or Portuguese, for example. This circumstance leads us to wonder if it would not be desirable to have a single version of the publication for all possible markets. This is the main argument of portability advocates.

Portable code can be classified into two categories depending on the transformation that the application source code receives:

Java was chosen for the current implementation because the efficiency of the intermediate code produced (also called bytecode) and its availability on major Web browsers, such as Netscape Navigator and MS-Internet Explorer.


jKSImapper and jKSImapplet are systems designed to support multi-user concept mapping elicitation on the Internet and the World Wide Web. These systems were entirely implemented using the Java programming language, which provides features for producing safe and portable programs on the Internet, and allows to embed applications within the hypermedia environment supported by the Web. Features implemented on these systems allow asynchronous elicitation of concept maps by multiple users distributed over the Internet.

jKSImapplet was developed based on the Java jCMap class library. This class library implements the functionality required for supporting the manipulation of abstract visual representations. This library can be extended for implementing concept mapping systems that enforce formal knowledge constraints, such as Conceptual Graphs [Sowa, 1984].


Previous projects at the Knowledge Science Institute have produced a class hierarchy suitable for implementing an open-architecture concept mapping system. This class hierarchy, which is known as CMap [KSI 1996], was constructed using the C++ programming language. The aim of this hierarchy was to isolate the functionality of a concept mapping application from representations inherent to specific operating environments, thus improving source code portability.

[Fig. 2] shows the Java jCMap class hierarchy, which is derived from the CMap class hierarchy. This figure, which was created using jKSImapper, contains different visual elements for representing entities, inheritance and runtime relationships. Rectangular nodes were used to represent classes; ellipse nodes, for depicting interfaces; shaded nodes, for showing abstraction on classes and interfaces (which are abstract by default); and non-shaded nodes, for representing instanceable classes. Links also carry different meanings. Non-labeled links are used for representing inheritance, and labeled links are used for showing association between objects at runtime.

Figure 2: Relevant classes from the jCMap class hierarchy.


The systems described on this work were designed as client/server applications. jKSImapper and jKSImapplet perform as client programs that interact with a server process. While client systems are designed to perform as elicitation agents for constructing concept maps, server processes are planed as central coordinators of elicitation sessions and as data repositories.


Concept mapping client systems developed from the jCMap class library can be executed as Java applets or as Java standalone applications. As explained next, the differences between applets and applications are evident on the context of their use:

[Fig. 3] shows a jKSImapper standalone application and a jKSImapplet applet running inside an instance of Netscape's Navigator. In this example, both programs collaborate for constructing a conceptual graph describing the sentence "No student read the book the teacher wrote." In this figure, jKSImapper and jKSImapplet share the same concept map contained on a remote session maintained by a server process.

Figure 3: Groupware Concept Mapping Collaboration using jKSImapper and jKSImapplet.

jKSImapplet and jKSImapper are aimed to the construction of concept maps. However, these programs hold slight differences on their implementation, specially on the user interface and the storage of data. jKSImapper implements menu options, and it can save concept mapping data either on the local disk or on remote servers. On the other hand, jKSImapplet does not implement menus and does not allow to save data locally. Applets do not implement menus since they do not own a window context (it belongs to the Web browser). Additionally, applets are not allowed to use certain client resources (such as secondary storage) due to security reasons. As shown on [Fig. 3], menus on jKSImapplet were replaced by widgets embedded on the Web documents containing the applets. These widgets are designed to interact with JavaScript for triggering functions on jKSImapplet, thus effectively satisfying the need of menus. In the case of saving concept mapping data, jKSImapplet just allows storage on the server process to which it is connected.


The jKSImapper Server is a process executed by server computers. This program has been designed to receive and maintain networking connections with client concept mapping programs, and to support multiple multi-user concept mapping elicitation sessions. Server processes are able to store concept mapping data on secondary storage.

Clients connected to a server process can send and receive commands generated as part of a concept mapping elicitation session. Such commands are stored by the server process on the history list of the session where the client is currently active. Commands are then broadcast to all the participants in the session (including the sender) for execution.

Figure 4: jKSImapplet Execution Structure.

[Fig. 4] and [Fig. 5] show the execution structure for jKSImapplet and jKSImapper, respectively. jKSImapplet is an applet that performs inside Web browsers. During Web navigation, browsers routinely download HTML documents containing links to hypermedia resources. In the case of jKSImapplet, when browsers detect the applet linked to a Web document, they will use their embedded Java interpreter for obtaining the corresponding classes from the server. Once downloaded, the classes will be used for executing the applet. After initialization, jKSImapplet will request a communication channel to the server for engaging on a multi-user concept mapping elicitation session. The applet will have access to secondary storage on the server for saving concept mapping data.

Figure 5: jKSImapper Execution Structure.

On the other hand, jKSImapper is a standalone application. Differently from jKSImapplet, jKSimapper classes are located on the client computer, and a Web browser is not required for their execution. However, a Java interpreter is still needed for running the program. Once invoked, the interpreter will load and execute the classes corresponding to the program. After initialization, jKSImapper may or may not request a connection to a server process for engaging to a remote session. Such session can be shared with other jKSImapper and jKSImapplet programs. If a networking connection is not requested, jKSImapper will work on its own single-user elicitation session. jKSImapper applications can access disk storage on client and remote server computers.


Concept maps are a valuable tool for supporting visual thought processes. This characteristic has been reflected in the development of computer-based tools to represent concept maps graphically. The increasing availability of shared resources on the Internet and the Web, and the development of portable programming languages, such as Java, have opened new possibilities for distributed real-time collaboration. This paper has described the implementation of the jKSImapper and jKSImapplet multi-user concept mapping systems. These developments, which are fully operational as groupware tools for the Internet and the World Wide Web, can provide effective support for many significant conceptual processes in the learning web.


[Axelrod 1976] Axelrod, R. (1976). Structure of Decision. Princeton, New Jersey: Princeton University Press. 1976.

[Gaines and Shaw 1995] Gaines, B.R. & Shaw, M.L.G. (1995). Collaboration through Concept Maps. Computer Supported Cooperative Learning. Bloomington, October, 1995.
Available at:

[Gaines and Shaw 1995] Gaines, B.R. & Shaw, M.L.G. (1995). WebMap: Concept Mapping on the Web. World Wide Web Journal, Fourth International World Wide Web Proceedings, O'Reilly & Associates, Inc., December, 1995.
Available at:

[Kremer 1996] Kremer, R. (1996) Multi-user Interactive Concept Maps for the Learning Web. World Conference on Educational Multimedia and Hypermedia, 1997.
Available at:

[Kremer and Gaines 1994] Kremer, R. & Gaines, B.R. (1994). Groupware Concept Mapping Techniques. ACM 12th Annual International Conference on Systems Documentation. pp.156-165. New York: ACM Press, 1994.
Available at:

[KSI 1996] Knowledge Science Institute (1996). CMap: KSI's Concept Mapping Interface Library. Knowledge Science Institute, University of Calgary, 1996.
Available at:

[Lapsley 1995] Lapsley, A. Z. (1995). Development of a Mediator System on the World-Wide Web to Model the Concurrent Manufacturing Life Cycle. Master Thesis, Department of Computer Science and Department of Mechanical Engineering, 1995.

[McNeese, Zaff, Peio, Snyder, Duncan and McFarren 1990] McNeese, M.D., Zaff, B.S., Peio, K.J., Snyder, D.E., Duncan, J.C. & McFarren, M.R. (1990). An Advanced Knowledge and Design Acquisition Methodology for the Pilot's Associate. Harry G Armstrong Aerospace Medical Research Laboratory, Wright-Patterson Air Force Base, Ohio. 1990.

[Netscape 1996] Netscape (1996). The JavaScript Guide. Netscape Communications Corporation, 1996.
Available at:

[Norrie and Gaines 1995] Norrie, D.H. & Gaines, B.R. (1995). The Learning Web: A System View and an Agent-Oriented Model. International Journal of Educational Telecommunications 1(1) 23-41, 1995.
Available at:

[Novak and Gowin 1984] Novak, J.D. & Gowin, D.B. (1984). Learning How To Learn. New York: Cambridge University Press. 1984.

[Ousterhout 1994] Ousterhout, J. (1994). Tcl and Tk Toolkit. Addison-Wesley, 1994.

[Quillian 1968] Quillian, M.R. (1968). Semantic memory. Semantic Information Processing. MIT Press, Cambridge, Massachusetts. p. 216-270, 1968.

[Shaw and Gaines 1996] Shaw, M.L.G., & Gaines, B.R. (1996). Experience with the Learning Web. World Conference on Educational Multimedia and Hypermedia, 1996.
Available at:

[Sowa 1984] Sowa, J.F. (1984). Conceptual Structures: Information Processing in Mind and Machine. Addison-Wesley, Reading, Massachusetts, 1984.

[Sun 1996] Sun Microsystems (1996). The Java Programming Language. Sun Microsystems, Inc., 1996.
Available at:

[van Rossum 1996] van Rossum, G. (1996). Python Reference Manual. Corporation for National Research Initiatives, 1996.
Available at:


The work presented on this paper would not have being possible without the input and support received by many people. In particular, I would like to thank Brian Gaines, Robert Kremer and Lee Chen. Without their feedback, motivation and patience this work would be far from its present state.

The research presented on this paper was supported by the Consejo Nacional de Ciencia y Tecnología (CONACYT).