Rob Kremer, kremer@cpsc.ucalgary.ca

CHAPTER 1

INTRODUCTION


Aim

The aim of this research is to motivate, design, implement, and test a class library to support shared interactive use of concept mapping techniques in a business environment.

Motivation

Over the years, the computer has moved from being a calculating machine and a data repository to become the personal computer -- an almost indispensable work assistant to many people. However, "the personal computer has become a little too personal" [Johansen 88]. Organizations are not made up of people working individually at their stations, but rather people cooperating and collaborating as groups or teams -- the lifeblood of an organization is interaction [Winograd 88]. Most current software is designed for interaction between the user and computer, but what is needed more is software that also supports interaction between users since much of an individuals work is within the context of a group [Ellis 91].

Although the concept of having computers support collaboration among humans has been with us for over twenty years, there have been few highly successful implementations. One possible reason for this is that the theories we have in related areas, such as organizational coordination, do not offer much guidance when applied to the design of a computer implementation. Furthermore, Computer Supported Collaborative Work (CSCW) systems are still too new for researchers to accurately specify their requirements. Field studies can help researchers gain more experience. Field studies involve constructing many different systems, implementing many different ideas, to be tested in the field. Even systems showing success in the field must iterate through many cycles of testing and modification to fine-tune the results.

The construction and modification of these systems is extremely difficult and is poorly supported by current tools and building blocks (operating systems, software development environments and code libraries). Although some current tools do provide some of the necessary building blocks, such as windows and inter-process and inter-machine communication channels, they are generally at too low an abstraction level to be easily used to develop experimental systems. Sufficiently flexible experimental CSCW systems are too difficult and expensive to build from scratch and maintain to forward study in the area.

It is the contention of the author that there is enough commonality among certain classes of CSCW systems to abstract out building blocks that can facilitate the development of new, easy-to-modify, experimental systems. By way of a proof, there already exists several "toolkit" systems such as GroupKit [Roseman 92] and Lotus Notes [Schlack 91]. Unfortunately, none of these systems were practical as a basis for the work of this thesis for various reasons such as platform incompatibility, high cost, or difficulty of modification.

What CSCW researchers and developers need is a wide range of compatible building blocks from which to fabricate systems. Each of these blocks should:

apply to some specific facet of CSCW needs,

have the ability to integrate with one another,

be capable of being built up to provide more specific functionality, and

be easy to modify.

These needs could be met by the use of a class library developed using the object oriented programming paradigm [Cox 91]. To this end, the kernel of a C++ class library of CSCW building blocks was chosen as a concrete development artifact with the objective of making the classes as flexible and extendible as possible. This library cannot support all aspects of the universe of possible CSCW systems, but limits itself to the support of hypermedia databases and concept mapping. Due to the limit on resources and time, the class library implementation was confined to the Microsoft Windows 3.x environment on the IBM personal computer and compatibles.

The class library is being tested by using it to develop a CSCW application called Accord. Accord is being field tested in a large oil company. The test environment is the day-to-day work of the users. While only superficial testing has taken place in the time frame of this thesis, subsequent work will involve more extensive testing in the real-world environment. Additionally, there will be continued extension and modification of the class library. It is almost impossible to initially design a good class library, it must evolve [Basili 92].

The class library aims specifically at support for concept mapping and hypermedia in the CSCW context. The remainder of this chapter gives an overview of CSCW, concept maps, hypermedia, their relationships, and how they may be tied together in a class library. These topics will be further expanded in chapter 2.

CSCW

Computer Supported Collaborative Work is the use of computers to enhance and extend people's natural abilities to collaborate to achieve their goals. This simple definition may lead the reader to believe that CSCW seeks to find a better telephone or meeting room facility, but CSCW is much more than that. The dynamics of groups are extremely complex and not well understood [Grudin 89]. Designing successful CSCW systems is not easy and involves many complex problems. For example, a practical CSCW system must maintain a history, or at least the state, of the collaboration so that the work can be conveniently set aside and continued at a later date. Furthermore, as human work groups change over time (old members leave and new members enter), the history or state must not only serve to refresh continuing members but also to bring new members up to date. Another important point is that groups are composed of individuals whose existence transcends the intermittent existence of the group as a unit: Successful CSCW systems must therefore provide support for individuals working alone or in sub-groups on the group's task.

Computer Supported Collaborative Work is currently a very active research area, and for good reason. In recent years, the computer has 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 91b]. It is the computer's recent roles as a communicator and knowledge repository that are least understood. Yet the technologies (cheap hardware, pervasive networks, fast machines, graphics environments, hypermedia, and the object oriented programming) are fast becoming widely available to harness these roles. CSCW is commonly thought of as the study of the computer's communication role. But, if it is to fulfill its potential, many CSCW applications must also at least partially encompass the knowledge repository role (at least to the extent of knowledge representation) since part of what is being communicated is knowledge which must persist in the system in some recognizable form (more than just text). Furthermore, the state or history of the group discourse is a form of knowledge that must also be maintained for reasons stated above.

Although there is little doubt that many CSCW systems must support knowledge representation of some sort, there is much leeway in exactly what form the knowledge is represented. If knowledge is stored in forms that are understandable (computable?) to the computer, such as those forms used by various expert system shells or artificial intelligence programs, then it will be too difficult for untrained human users to understand the knowledge represented or to express themselves in the knowledge representation language. On the other hand, if the only knowledge representation is free form text, it will be quite easy for human users to express themselves and to understand small bits of knowledge from others; but it will be difficult to organize large packets of knowledge, and almost impossible for the computer to understand enough of the discourse to provide any form of automated assistance or tools. The middle ground of this issue has been addressed by Malone with his semi-structured messages [Lai 88, Malone 89, Malone 92], and by Gaines in his K-Map system using concept mapping and links out to a hypermedia system [Gaines 91a]. Both of these strategies look extremely promising as powerful "backbone" building blocks to be provided by a CSCW support library, and they are by no means mutually exclusive. But it is concept mapping that has been chosen as the initial candidate, primarily because of local expertise at the University of Calgary.

Concept Maps

Concept maps are a intuitive visual knowledge representation technique. They appear to have more "computational efficiency" [Lambiotte 89] than some other forms of knowledge presentation such as pure text or predicate logic [Nosek 90].

Concept maps are graphs consisting of nodes and arcs, representing relationships between nodes [Lambiotte 89]. The nodes are labeled with descriptive text, representing the "concept", and the arcs are labeled (sometimes only implicitly) with the relationship type (see figure 1).


Figure 1: An example concept map.

Concept maps can represent knowledge on the very formal level, as in Gaines' KRS system, where concept map structures act as a complete interface to the KSSn knowledge representation language [Gaines 91a]. But they can also represent knowledge on a much less formal level if the system puts fewer constraints on the graphical "syntax". Concept maps tend to be much easier for human users to understand than other knowledge representations such as predicate logic [Nosek 90]. These two factors, intuitive understanding and both formal and informal knowledge representation, are of great importance: They lead to the possibility of novice users being able to express themselves informally and understandably to other users; and, as their proficiency increases, novices can gradually formalize their knowledge as represented in the concept map. As the represented knowledge is formalized, users will avail themselves to more and more assistance from the knowledge interpretation systems in the machine.

While concept maps are useful building blocks, a CSCW application must provide the means for the user to navigate among different concept maps (and other building blocks). Flexible building blocks should not place inordinate restrictions (such as hierarchical arrangement) on how the navigational nodes should be organized, but should be flexible enough to handle most organizational types from linear lists to n-ary trees to cyclic graphs, as well as dynamic search. One technology that can subsume all of these is hypermedia.

Hypermedia

This thesis uses the word hypermedia as the more general term to include both of what is referred to in the literature as hypertext and hypermedia. While there are no universally accepted definitions of hypertext or hypermedia, Akscyn provides a good definition of its characteristic features [Akscyn 88]:

Information is "chunked" into small units, variously called notecards, frames, notes, etc. Units may contain textual information. In hypermedia systems, units also contain other forms of information such as video graphics, bit mapped images, sound and animation.

Units of information are displayed one per window (systems vary in the number, size and arrangement of windows permitted.)

Units of information are interconnected by links. Users navigate in a hypermedia database by selecting links in order to travel from unit to unit.

By creating, editing, and linking units, users build up information structures for various purposes (e.g. authoring documents, developing on-line help systems).

In shared hypermedia systems, multiple users may simultaneously access the hypermedia database. Shared systems may be implemented as distributed systems, in which portions of the database are distributed across multiple workstations and file servers on a network.

Full hypermedia is only now becoming readily and inexpensively available for low-end, desk-top computers. Hypermedia (and its predecessor, hypertext) started in the 1970's on large and expensive machines and eventually propagated to inexpensive desk-top machines, but it has lost some of its functionality (such as network browsing) along the way. Apple's HyperCard on the Macintosh and Asymetrix's Toolbook on the IBM PC are examples of the recent commercially available systems that contain many powerful features, such as embedded programming languages, but conspicuously lack graphical browsers. Recent public acceptance of hypermedia can be seen by its use in many pervasive software packages, such as the help system in Microsoft's Windows 3.x.

Hypermedia and concept maps are a natural combination in the CSCW context since concept maps require a navigational tool (provided by hypermedia links) to provide partitioning and organization of large concept graphs; while hypermedia systems require graphical browsers (provided by concept maps) to help prevent the user from getting "lost in hyperspace" [Conklin 87a]. It seems quite natural to allow concept maps as hypermedia nodes where each of the concept nodes in the concept maps act as hyperlink buttons to other (more detailed) concept maps or to other types of hypermedia nodes. Both technologies support and benefit each other.

Class Libraries

How can all these components be made available to the developer? The object oriented programming model [Booch 91, Cox 91] fills the need nicely by supporting the software engineering requirements of abstraction, encapsulation, modularity and hierarchy [Booch 91]. All the CSCW building blocks can be supplied as classes to be instantiated directly or to be extended by inheritance to more specialized classes. A class library abstracts most of the details of the classes' implementations to provide easily understandable class interfaces. At least this is the promise of object oriented programming [Cox 91]. The reality does not yet fulfill the promise: no current object oriented programming language is ideal [Booch 91]. Nonetheless, a class library approach appears to be the most practical option currently available.

Preview

It is the objective of this work to build a class library to support a subset of CSCW requirements, particularly supporting basic hypermedia and concept mapping techniques (see figure ). The class library has been named HyperC, and has been built up, not in isolation, but in direct support of a field-testable CSCW application called Accord. The reasoning behind using a specific application as both a motivation and a test bed for the library is the contention that good class libraries are not designed, but evolved through use in applications [Basili 92]. Several application would make a better test bed, but time and resource limitations restrict this possibility. For this work, C++ was used as the implementation language due to its current wide acceptance and availability.


Figure 2: The relationship between the class library, hypermedia, concept mapping, and CSCW applications.

Chapter 2 provides a brief survey of the current state of the art in CSCW, hypermedia, and concept mapping. Chapter 3 gives the requirements specification for the implemented CSCW class library and application. Chapter 4 discusses the actual implementation of the HyperC class library and the Accord application built upon the library. Chapter 5 provides an evaluation of the implementation and presents possible paths for future work and research.

Rob Kremer, kremer@cpsc.ucalgary.ca