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.
2. CONCEPT MAPS.
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
[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
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
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.
3. PORTABLE CONCEPT MAPPING TOOLS FOR THE INTERNET AND THE
WORLD WIDE WEB.
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
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
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
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.
4. JKSIMAPPER AND JKSIMAPPLET.
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
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].
4.1. THE JCMAP CLASS HIERARCHY.
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
[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.
4.2. RUNTIME SYSTEM ARCHITECTURE.
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.
4.2.1. CLIENT SYSTEMS.
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
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.
4.2.2. SERVER PROCESS.
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
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
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
[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: http://ksi.cpsc.ucalgary.ca/articles/CSCL95CM/
[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: http://ksi.cpsc.ucalgary.ca/articles/WWW/WWW4WM/
[Kremer 1996] Kremer, R. (1996) Multi-user Interactive
Concept Maps for the Learning Web. World Conference on Educational
Multimedia and Hypermedia, 1997.
Available at: http://www.cpsc.ucalgary.ca/~kremer/edmedia97/edmed97.html
[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: http://www.cpsc.ucalgary.ca/~kremer/papers/sigdoc94.html
[KSI 1996] Knowledge Science Institute (1996). CMap:
KSI's Concept Mapping Interface Library. Knowledge Science Institute,
University of Calgary, 1996.
Available at: http://www.cpsc.ucalgary.ca/~kremer/CMap/index.html
[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 Communications Corporation, 1996.
[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: http://ksi.cpsc.ucalgary.ca/articles/LearnWeb/EM95J/
[Novak and Gowin 1984] Novak, J.D. & Gowin, D.B.
(1984). Learning How To Learn. New York: Cambridge University
[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: http://ksi.cpsc.ucalgary.ca/articles/LearnWeb/EM96Exp/
[Sowa 1984] Sowa, J.F. (1984). Conceptual Structures:
Information Processing in Mind and Machine. Addison-Wesley, Reading,
[Sun 1996] Sun Microsystems (1996). The Java Programming
Language. Sun Microsystems, Inc., 1996.
Available at: http://java.sun.com/
[van Rossum 1996] van Rossum, G. (1996). Python Reference
Manual. Corporation for National Research Initiatives, 1996.
Available at: http://www.python.org/
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).