Tailoring Groupware: The Cooperative

Tailoring Groupware:
The Cooperative Hypermedia Approach
Weigang Wang and Jörg M. Haake
GMD - German National Research Center for Information Technology
IPSI - Integrated Publication and Information Systems Institute
Dolivostr. 15, 64293 Darmstadt, Germany
E-Mail: {wwang, haake}@darmstadt.gmd.de
Abstract.
Tailoring groupware has to deal with adapting properties of a shared information space
as well as with adapting properties of the cooperation support to the group's needs. In this
paper, an approach for tailoring both aspects of groupware in an integrated fashion is proposed. This approach uses cooperative hypermedia as a unifying representation of shared
information structures, functionality, and the coordination medium of a shared application.
It enables cooperative definition of shared information structures, shared process models and
their access models not only before collaboration starts, but also on the fly, when emergent
processes evolve. The proposed approach addresses tailoring at all stages of the development
and use of a groupware application. A prototype system called CHIPS is presented and different possibilities of tailoring in CHIPS are discussed. Examples of CHIPS demonstrate that
the cooperative hypermedia approach to tailoring groupware can support the adaptation to
different evolving tasks and processes performed by changing teams.
Keywords: Cooperative hypermedia, Tailoring, Meta-model, Group process, Information
structure, Flexibility, Access control
1. Introduction
Groupware supports a group of team members in performing a common task
by providing an interface to a shared environment (Ellis and Rein, 1991).
Since the variability of co-operation styles, common tasks, and work processes is extremely high, it is difficult for groupware designers to develop
groupware that matches the needs of every usage situation.
A similar problem exists for applications aiming at individual users. In
the past, one approach to overcoming this problem has been to allow tailoring of the application's functionality. Tailoring is based on the general
applicability of an application and allows end users to add specific support
for a certain usage situation. Usually, applications are tailored with respect
to their behavior in terms of their user-interface, the information structures
(e.g., templates or Document Type Definitions) and operations (e.g., macros)
provided. This enables users to adapt the functionality of the application to
their specific needs.
c 1998 Kluwer Academic Publishers. Printed in the Netherlands.
jcscwf.tex; 23/11/1998; 18:36; p.1
2
Weigang Wang and Jörg M. Haake
In the case of groupware one can argue that tailoring becomes more
difficult: First, tailoring becomes a group activity. It must not only allow
adaptation to individual needs but to the needs of individual team members
and the whole team at the same time. Second, tailoring cannot be confined
anymore to the structure, presentation and functionality of the (now shared)
information space. It must now also provide means for tailoring groupware
support for the group process itself. Furthermore, the above two dimensions
of tailorability in groupware systems, i.e. the properties of the shared information space and the properties of group process support, need to be addressed
in an integrated fashion. A solution needs to provide tailorability on both
dimensions in a consistent way. Finally, such a tailorable groupware system
must be easy to use so that the intended user community can actually tailor
the system frequently during its use.
In this paper, we discuss a solution to the groupware tailorability problem and present an example system illustrating this approach. The main ideas
in this approach can be characterized as follows:
1. Use of a cooperative hypermedia system for providing a shared workspace.
This hypermedia system provides end-user ad-hoc modifiable schemata
for representing the shared information space. These schemata are also
used to define the operations on the shared information space. This enables groups of users to adapt information structures and operations to
their task at hand. Furthermore, since all the tools of the hypermedia system are cooperative, teams can define and manipulate their information
space together.
2. Group process support is provided as part of the cooperative hypermedia
system. This is done by modeling group processes (e.g., workflow like
co-ordination structures) as hypermedia structures. This way, groups can
define their work processes in a cooperative manner, change processes
ad-hoc and even develop emerging processes. Furthermore, groups can
execute the group process cooperatively.
3. In addition to process support - which is used mainly for co-ordination
of group members or subgroups - a flexible role-based access model has
been added. By automating changes of the access structures and by simplifying the use of the access model by end-users, teams can easily deal
with changing team composition and changing roles of team members.
Together, these three components of our approach enable the resulting
cooperative hypermedia system to offer tailorability on both dimensions: the
information space dimension as well as the group process support dimension.
Thus, a more integrated view of the tailoring activity is now possible. The
remainder of this paper is organized as follows: In the next section we present
jcscwf.tex; 23/11/1998; 18:36; p.2
Tailoring Groupware: The Cooperative Hypermedia Approach
3
a more detailed analysis of the groupware tailorability problem. Section 3
proceeds with an analysis of previous work. In section 4 we introduce our
approach and illustrate it by CHIPS, an example system implementing our
approach, and its techniques for tailoring. Section 5 discusses tailoring of
different aspects of groupware in an integrated fashion. Finally, we compare
our approach to related work and discuss future work.
2. Analysis of groupware tailorability
Tailoring groupware can help to overcome certain problems that groupware
faces in a dynamic environment: First, since groups may change dynamically
(see, for example, virtual organizations) and the joint task of the team may
also change - or even evolve - over time, groupware needs to be adapted in
order to continue to provide optimal support. Second, since these factors are
dynamic in nature and not known beforehand, end users must be able to adapt
groupware to their needs. Tailoring seems a useful approach to address these
problems.
2.1. A S CENARIO
We begin the analysis of groupware tailorability with a simplified scenario
describing a collaboration process. Imagine a group of people which form
a new project team. There is a project manager and several team members.
Since this is not a full-time project, all members are also working on other
tasks in parts of their time. The part-time nature of the project will certainly
lead to mixtures of asynchronous and synchronous collaboration. The team
task is to select appropriate software for a larger organizational unit. Thus, a
co-decision making process is at hand. What impact will possible decisions
of the team, with respect to their style of collaboration and their approach to
solving the task, have on the collaboration functionality required and thus on
the tailorability needed in an ideal collaboration environment?
Let's assume the team meets at the beginning to discuss their approach.
In such a meeting they would create an outline of their next steps. Possibly, these could be (1) creation of ideas and requirements, (2) discussion of
alternative solutions, and (3) making a decision.
At the beginning, the creation of ideas and requirements could be done
using a brainstorming approach where team members contribute their ideas
either asynchronously or synchronously to a shared workspace. Simple functionality of the shared workspace may suffice at this stage since only different
ideas or contributions need to be separated and viewed.
The next step requires some more advanced support. Discussing alternative solutions needs means for identifying solutions and associating them with
jcscwf.tex; 23/11/1998; 18:36; p.3
4
Weigang Wang and Jörg M. Haake
ideas and for representing and relating solutions, arguments and positions
(e.g., in the form of an IBIS structure (Conklin, 1988)). Thus, the shared
workspace would now need to offer corresponding support. Note, that the
need for exactly this kind of support (e.g., the IBIS structure) arises from
the nature of the task and their work plan. Other tasks and other teams
might come up with different requirements! Thus, tailoring is needed to
adapt the shared workspace to the group's needs. In our scenario the team
would now tailor the shared workspace on-the-fly to provide appropriate IBIS
functionality. This can be regarded as tailoring for situated work.
The transition to the third step (i.e. decision-making) again changes the
required support from the collaboration environment. Until now, a manually
coordinated work procedure (where dates and progress were negotiated informally via e-mail and direct communication) was adequate for the team.
Now, the group decides to work more asynchronously on comparing different alternatives. Thus, more formal coordination is required. The group
decides to define different roles and a more formal work process connecting
different subtasks to form a whole decision process. This work process is
actually not defined ad-hoc and once-and-for-all but emerges over a period
when team members work on the tasks, discover missing steps, inadequate
procedures or wrong assignments, and adapt the process structure on-thefly. Since changes have impact on the whole team, they need a mechanism
that helps to perform these adaptations cooperatively. During their work, the
collaboration environment needs to support their collaboration by (i) helping them to coordinate their efforts by informing actors about next possible
steps, (ii) forwarding information between steps, (iii) enabling adaptation of
process structure, (iv) facilitating cooperation among multiple team members
working on the same task or sharing the same data while working on different
tasks, and (v) maintaining consistent states of the shared workspace (also by
ensuring that only valid changes/actions corresponding to the respective team
member's role occur). Since the required support again depends on the team's
task and work style, tailoring for emergent processes is required.
Initially, access control for the lower structured process steps was less
important since the structure was more emergent. Now, the collaboration
process in our scenario (which started with low structure and very informal,
and which included increasing process structure in steps 2 and 3) becomes
more formal. In order to maintaining the integrity of the process definition,
access control on the shared workspace is required.
Throughout the work process described in the above scenario, different steps require different support for tailoring the collaboration support.
Furthermore, since each team might have their specifics leading to different
tailoring needs no single predefined collaboration environment could provide
optimal support to all these teams. Thus, the need for tailoring for each in-
jcscwf.tex; 23/11/1998; 18:36; p.4
Tailoring Groupware: The Cooperative Hypermedia Approach
5
dividual team arises. In the next subsection, we discuss the more technical
requirements of tailoring a groupware application.
2.2. W HAT DOES
TAILORING MEAN FOR GROUPWARE ?
Tailoring groupware primarily means to adapt different properties of the
shared environment and of the interface to this environment. These properties
include:
Design of the shared information space
Coordination means
Organizational context and access control
User interface to the shared environment
In the following, we discuss requirements on tailoring each of these properties
of groupware.
2.2.1. Design of the shared information space
The design of the shared information space provided by a groupware application is determined by its structure (i.e. types of objects and relationships
among them) and by the operations (i.e. functions and constraints) provided
on these objects and relationships. Obviously, structure and operations need
to match the requirements of the task at hand (as exemplified by the IBIS
structure added in the shared workspace of our scenario). Due to the large
variability present within the set of possible tasks, end-users need to be able
to adapt the structure and operations to their needs. Furthermore, since different sub tasks might require different structures and operations, corresponding
sub spaces of the overall information space should be supported. In order to
deal with emerging and/or changing tasks, dynamic changes of structure and
operations as well as additions and transformations of sub spaces need to be
supported. In our scenario, reusing parts of the resulting structures of earlier
steps as data to be used in process steps added later may serve as an example
here.
2.2.2. Coordination means
Coordination enables a team to tackle the common task in an orderly manner.
Thus, there is a need for some kind of process support. Teams might adopt
many different style of coordination. The selection of the `right' coordination
style for the group depends, e.g., on the task at hand, the current task phase,
the working style of the group, the individual members' experience level,
etc. Possible coordination styles (or means) range from strict, pre-planned
jcscwf.tex; 23/11/1998; 18:36; p.5
6
Weigang Wang and Jörg M. Haake
workflow to ad-hoc or emerging workflow to informal coordination. Coordination styles adopted by a team are reflected in the group's task structure,
the assignment of sub groups to sub tasks, the distribution of authority etc.
This effect showed in our scenario when different steps or phases required
different cooperation support. Furthermore, different styles might be used for
different sub tasks. This can lead to a mixture of different coordination means
in an overall group work process, each one suited to it's corresponding sub
task and sub group. Thus, there is a need to support different coordination
styles as well as transitions between them.
2.2.3. Organizational context and access control
Organizational context and access control are used in groupware applications
to enable groups to deal with changing members - potentially from different
organizations - and to maintain trust and privacy within a shared environment.
Access control can be used to restrict access to those trusted and to protect
privacy. In our scenario this became more important when dealing with a
more formal process. In groupware dealing with changing environments, the
specification of possible access to a shared information space and of coordination styles cannot be based on specifying individuals anymore. This is
due to the complexity involved in adapting access control structures to new
or changing group members.
2.2.4. User interface to the shared environment
The user interface to the shared environment defines the presentation and
interaction means for displaying and interacting with the shared information
space. Here, tailoring must facilitate the accommodation of individual preferences as well as simultaneously maintaining a shared space. Otherwise,
if shared objects are displayed and manipulated in totally different ways
team members might not be able to adequately communicate with each other
on such objects. Thus, some kind of consistent shared interface must be
maintained for certain phases of group work.
2.2.5. Dependencies between tailoring different properties
From above discussion it can be seen that the above properties are not
independent from each other. Examples for these interdependencies include:
changes in the cooperation style might require changes of access control
(as, e.g., changing from synchronous to asynchronous cooperation may
require other techniques for coordinating actions);
changes in group membership might impact the coordination style;
changes of the task structure might require corresponding changes of
the information structures used in different sub tasks etc (as, e.g., seen
jcscwf.tex; 23/11/1998; 18:36; p.6
Tailoring Groupware: The Cooperative Hypermedia Approach
7
in the scenario when new steps required new functionality for decisionmaking).
Thus, an integrated view of tailoring is required!
3. Previous work
Related work can be found in a number of areas. Initially, tailoring was raised
as an issue when designing information systems in general. Here, tailoring
the user interface and functionality of single user applications are examined.
However, these approaches neglect the problem of tailoring group process
support. In the following, we discuss approaches that are more closely related
to tailoring groupware applications.
Trigg (Trigg et al., 1987) identified four ways that a system can be
adaptable: a system is flexible (providing generic objects that can be used
differently), parameterized (selecting among a range of alternatives), integratable (integrated with other facilities and connected to remote facilities),
and tailorable (changing the system itself, say by specializing and adding
functionalities).
Hypermedia systems provide flexible ways of structuring an information space. Different approaches to adapting the information space to
specific needs can be distinguished: Many hypermedia systems support predefined types created by system developers, see e.g., SEPIA (Streitz et al.,
1992; Knopik and Bapat, 1994), gIBIS (Conklin, 1988), and PHIDIAS (McCall et al., 1990). However, since end users are usually not system developers,
tailoring by end users is not supported by these systems. Another approach is
to provide certain formal representations to allow knowledge structures to be
defined by schema designers. Examples are Aquanet (Marshall et al., 1991)
and MacWeb (Nanard and Nanard, 1991). These systems are closer to end
users, but still require specially trained schema designers. A third approach is
to support templates (i.e. parametrized adaptation as provided by NoteCards
(Trigg et al., 1987)). Templates capture a reusable hypertext structure which
can be defined and used by end users. However, the components of a template
are constrained to those object types provided by the system. Thus, tailorability is limited. Finally, in systems like HyperCard (Goodman, 1987), users
can tailor the system by using its internal scripting language. This, however,
requires the end user to become a programmer. In most of these systems, to
effectively use a scripting language takes a fair amount of expertise (Halasz,
1991). Although many hypertext systems have some built-in tailoring facilities to allow people to adapt the system to their particular needs, the tailoring
facilities were really aimed at system implementors and programmers. As
Halasz pointed out, the challenge is to bring tailorability into the hands of the
non-programmer user (Halasz, 1991).
jcscwf.tex; 23/11/1998; 18:36; p.7
8
Weigang Wang and Jörg M. Haake
Cooperative hypermedia systems support asynchronous or synchronous
sharing of hypermedia spaces. Usually, the process support provided is limited to one or a few cooperation modes, as in SEPIA (Haake and Wilson,
146; Streitz et al., 1992), Aquanet (Marshall et al., 1991), or KMS (Akscyn
et al., 1988), and cannot be tailored by end users. Trellis used a Petrinet-based model to represent document structures with browsing semantics,
cooperation protocols, and software processes (Furuta and Stotts, 1994).
Here, users capable of defining Petri-nets can define new cooperation behavior. Finally, in the versioned cooperative SEPIA system (Haake and Haake,
1993) a group can define a shared task structure and execute the shared task
on the shared information space. Integrated versioning support enabled more
fine-grained access to and parallel work on the shared information space.
However, there was no automatic execution support as, for example, provided
by workflow systems.
Research in the CSCW area related to tailoring can be roughly divided
into two groups: Firstly, there are studies on how tailoring and adaptation of
groupware works in the field. Secondly, there are some technical approaches
to provide support for tailoring in groupware applications.
Trigg et al. (Trigg and Bodker, 1994) analyzed how people working in
a governmental labor inspection agency tailor their shared PC environment.
Their study shows that tailoring is a collective process, reshaping standard
technologies in use. They advocate interactive tailoring environments and
abstract systems thinking, which support the tailors' need to move toward
abstraction and systematization. Trigg et al. believe that the cooperation between local developers (tailors) and systems developers offers a valuable and
challenging opportunity for the years to come.
Okamura et al. (Okamura et al., 1994) argue that well-managed mediation may be a useful mechanism for shaping technologies to evolving
contexts of use, and that it extends our understanding of the powerful role that
intervenors can play in helping CSCW applications succeed. Rogers (Rogers,
1994) examines the co-evolution process involved in tailoring a CSCW system to fit in with the current organizational structure, whilst concurrently
adapting the working practices to enable the system to support collaboration.
The more established a working practice has become, the more resistance
there is to changing it. Likewise, the more radical a change proposed to adapt
a CSCW system is, the more resistance there is to accepting it.
Some more technical approaches for tailoring groupware have emerged
in the past: One of these is Oval (Malone et al., 1992). Oval is a messaging
system with four basic abstractions: Objects, Views, Agents, and Links. Oval
has a visual programming language for a form of end-user programming. An
application can be constructed by defining a set of objects, creating agents
to trigger behaviors on input or computation, and providing an appropriate
set of visualizations. Oval allows neither new abstractions nor new forms of
jcscwf.tex; 23/11/1998; 18:36; p.8
Tailoring Groupware: The Cooperative Hypermedia Approach
9
existing abstractions (such as a new view) to be introduced into the system.
Since Oval supports asynchronous collaboration via message exchange using
a single-user user interface, sharing and collaboration remain largely outside
its domain.
Prospero (Dourish, 1995) applies computational reflection to the design
of a CSCW toolkit. Prospero provides the flexibility for application programmers to manipulate, control and specialize its toolkit components and
mechanisms to meet the need of a wide range of CSCW applications. Prospero supports two levels of programming. The base level programming makes
use of four abstractions (streams, actions, promises, and guarantees) provided
by Prospero. Meta level programming addresses how the abstractions are realized. The meta level programming employs the metaobject protocol (MOP)
technique. CSCW programmers can tailor the toolkit behavior to their specific
needs. The tailorability it supports is largely targeted for programmers, rather
than end-users.
In summary, one can state that there is no approach that facilitates tailoring of groupware by end users and which at the same time specifically
addresses tailoring properties of the shared information space and properties
of the group process support. In the next section we introduce our approach
to this problem.
4. CHIPS and its techniques for tailoring groupware
In this section, we first introduce CHIPS, its modeling concepts, and three
levels of abstractions of the concepts. Then, methods, tools, and examples of
tailoring across the three levels are introduced.
4.1. CHIPS
IN A
N UTSHELL
CHIPS stands for Cooperative Hypermedia Integrated with Process Support.
It aims at providing flexible process support in a cooperative hypermedia
environment. Flexible process support includes
support for defining processes with different degrees of formality (from
manually coordinated, to suggested but modifiable, and to mandatory
scheduled processes),
support for enacting these processes, and
support for changing processes and developing emergent processes.
In addition to asynchronous cooperation, team members can also work
together synchronously in defining and executing cooperative processes.
jcscwf.tex; 23/11/1998; 18:36; p.9
10
Weigang Wang and Jörg M. Haake
The high-level abstractions of the CHIPS system are cooperative hypermedia based active spaces, whose modeling components include typed
hypermedia objects (nodes, links, multimedia objects, and node content pages
(composites)), objects for a role-based organizational context (people, teams,
and roles), and objects providing the linkage between an activity space and
its user interface (sessions).
A hypermedia based activity space provides task-specific hypermedia
structures and operations. A process space is an activity space that can represent and execute processes. A role-based organizational context includes
role-based organization structures and role-based access control upon activity
spaces. A session provides a run-time context for team members to coordinate
their access to a shared activity space. These four concepts correspond to
the four high level adaptable groupware properties identified in the previous
analysis section. Next, we describe each of them in more detail.
4.1.1. Activity Space
The basic elements of the hypermedia-based activity space model are links,
nodes, node content pages, and other multimedia objects. This model describes an activity space from three semantic dimensions: structural, relational, and computational. Structural semantics describe the graph type of a
hypermedia structure. Along this dimension, links are classified into two categories: organizational and referential. Organizational links are used for those
relations which have structural constraints, such as a acyclic graph constraint
required for `is a' relation and `part of' relation. Referential links are used for
cross-reference type relationships. They do not have structural constraints.
Relational semantics describe the relationship between typed hypermedia objects. Along this dimension, links and nodes are further classified into many
application-specific semantic types, and the allowable relationships between
them are specified. Computational semantics define task-specific actions or
operations upon hypermedia objects.
Figure 1. Logical structure of an activity space
jcscwf.tex; 23/11/1998; 18:36; p.10
Tailoring Groupware: The Cooperative Hypermedia Approach
11
The logical structure of an activity space is illustrated by Figure 1. Large
squares are node content pages (composites), and small squares within pages
are node representations, which in this model are anchors of embedded links
that point to the content pages of the nodes. The straight arrows between
node representations are independent links. The straight dotted arrow lines
are embedded organizational links, and curved arrow lines are embedded
referential links. Also, other multimedia objects can be included on a page.
The shade under a page indicates that there is a page schema for each page.
The structure of a composite is determined by its root node page schema,
because the structures of its components are recursively defined along embedded organizational links. For details on the activity spaces model see also
(Wang and Haake, 1997).
A cooperative activity space provides multiple users with synchronous
or asynchronous access to a shared hypermedia workspace (Streitz et al.,
1992). In addition to access, cooperative activity spaces provide group
awareness by showing collaborators' presence and activities in the shared
workspace. Our cooperative activity space is built on a shared information
space, which is based on the COAST cooperative application systems toolkit
(Schuckmann et al., 1996).
4.1.2. Process Space
Our approach to process modeling is to integrate task and process computational semantics into the cooperative hypermedia based activity space. As
both the structural and relational semantics are directly applicable to process
structures, what is needed is to incorporate task related semantics, such as
state, time, and state transition semantics into hypertext nodes, and to incorporate control flow and data flow semantics into hypertext links. Thus, a
process is represented as a set of task nodes connected by process links. These
form a hypermedia composite consisting of potentially nested task nodes and
process links between task nodes. Actors are identified by an attribute of a task
node. The process computational semantics, such as those reflected in the task
node types and process link types, are assigned to typed hypermedia nodes
and links at the process definition phase. They become part of the properties
of the typed nodes and links to be used for creating process space instances.
As the process space is a special case of activity space, the distinction between information space and process definition is blurred. They are
two views on a unified hypermedia model. This enables smooth transitions
between these two views, and supports cooperative work on defining and
manipulating process and information structures in an integrated fashion. For
details on hypermedia-based process modeling also see (Wang and Haake,
1998).
jcscwf.tex; 23/11/1998; 18:36; p.11
12
Weigang Wang and Jörg M. Haake
4.1.3. Role-based Organization Context and Access Control
A role-based organizational context in CHIPS includes people, teams (a set of
people working in the same work unit or project), organizational roles (a set
of people having the same job function), the relationship among them, and the
role-based access control upon activity spaces. In CHIPS, individuals, teams,
and organizational roles are uniformly modeled as roles (three types of the
role objects). The user authorization is specified using two independent tools:
an editor that assigns users to roles, and a dialogue box which assigns access
permission for objects (or object types) to roles. The team concept plays an
important part in our access model. It is used to identify relevant people from
a set of people taking the same organizational roles. A user can perform an
operation on an object, only if he or she belongs to an organizational role
having such an access permission to the object (or the type of the object) and
at the same time belongs to a team working on the object.
The essence of role-based access control is that permissions are assigned
to roles rather than to individual users. Users acquire these permissions by
virtue of being assigned membership in appropriate roles (Sandhu and Samarati, 1996). With such a role-based approach, users can be easily reassigned
from one role (or team) to another without modifying the underlying access structure. Roles can be granted new permissions as new applications
and actions are incorporated, and permissions can be revoked from roles as
needed. This provides the necessary support for dynamically adapting access
permissions for changing teams.
4.1.4. Sessions and User Interface Linkage
The linkage between activity spaces and their user interface is provided
by session objects. Session objects in CHIPS are persistent. They register
the participating users of a session for providing group awareness, control
the coupling of the shared aspects of participating browsers, and provide a
user interface (session browsers) for manipulating shared objects in activity
spaces. The aspects to be coupled or decoupled may be user interface aspects
(such as positions of scrollbars) or hypermedia object aspects (attributes).
When an interface aspect is coupled via a session, all participating browsers
will have equal access to it and share the same view of and control on it.
Hypermedia object aspects can be coupled via session with two options: either to let participating browsers directly access individual object instances,
or indirectly affect the instances by accessing their type definition. The former option will only affect one object instance; while the later will affect all
instances of the same type. In either case, the dynamically updated views of
the object instances will be shared by all participating browsers. The tailoring
of the coupling of the shared aspects in a session can be done modifying its
coupling attribute list (i.e., a list of name and value pairs). In the attribute list,
the names are the attributes to be coupled and the values may be `user' , `ses-
jcscwf.tex; 23/11/1998; 18:36; p.12
Tailoring Groupware: The Cooperative Hypermedia Approach
13
sion' , `instance' , and `type' . These values provide parameters for the access
operations.
4.2. I MPLEMENTATION T ECHNIQUES
Since it becomes relevant in later sections, a brief introduction to the COAST
cooperative application systems toolkit and some CHIPS implementation details are provided as follows. COAST provides means for representing shared
artifacts, maintaining consistent replicas, and accessing shared objects via
session objects (Schuckmann et al., 1996). COAST is a cooperative modelview-controller framework. Whenever an aspect of a model changes, its view
will be dynamically updated in all its session browsers. In addition to the
normal class inheritance hierarchy, COAST provides a prototype inheritance
hierarchy among the instances of a class. All the CHIPS hypermedia object
classes are subclasses of a prototype class, which in turn is a subclass of
the COAST Model class. Corresponding to each of the hypermedia object
classes, there are at least a view class and a controller class that are subclasses of the COAST View and Controller classes. Using this framework,
CHIPS inherits all the cooperation support provided by the COAST toolkit. A
prototype is an initialized object that can be used as a template (type) for new
objects (Tyugu, 1991). New object instances created from prototypes only
need to initialize those attributes whose values differ from the attribute values
of their prototypes. For the prototype mechanism to work, for each class, at
least one base prototype has to be created. The search for an attribute value
starts at a given level where the concerned instance is located in the prototype
inheritance hierarchy and then goes to higher levels, until a valid value (not
nil) is found. An instance at a lower level of the hierarchy may overwrite an
inherited attribute value, or may switch back to its default inherited value by
setting a nil value to it.
The activity space modeling makes extensive use of the prototype mechanism to model different types (i.e., semantic types) of objects in the same
class. For instance, `Red scribble' and `White scribble' may be two semantic
types of a scribble object class. A page prototype is determined by the component object prototypes that are allowed in this page prototype. For example,
a page type `Chalkboard' can be defined by setting its color to `black' and
setting light colors to all the component object prototypes (such as the `Red
scribble' and `White scribble) allowed in the page type (i.e., page schema).
4.3. TAILORING T ECHNIQUES
For each of the modeling components (or objects) identified in its cooperative
hypermedia model, CHIPS provides three levels of abstraction. In a topdown order, they are meta-models, models, and instances. Abstractions at the
meta-model level are `classes' and `base prototypes' which are specialized
jcscwf.tex; 23/11/1998; 18:36; p.13
14
Weigang Wang and Jörg M. Haake
components from our COAST toolkit. The abstraction at the model level
are `prototypes' customized from the base prototypes or any other existing
prototypes. The abstraction at the instance level are `instances' of prototypes. These three levels of abstractions correspond to three levels of tailoring
targeted for different users. Tailoring at meta-model level is performed by
programmers. Tailoring at instance level is performed by end-users. Tailoring
at model level also targets end-users.
Tailoring and extending often happen hand in hand. When tailoring at
one level is short of certain constructs, an extension at its higher level is
required. In the reverse top-down order of meta-model definition, model definition, and instantiation, a need for tailoring often arises at the bottom level.
If the need cannot be met there, modification at its higher level is needed. If
the need can still not be met at the model level, then extensions need to be
done at the top meta-model level. Since multiple users work cooperatively on
the shared information space, tailoring becomes a cooperative activity among
users at the same level or across levels.
In the following subsections, we present methods, tools, and examples
to show how tailoring is supported at each of the above mentioned levels.
4.3.1. Tailoring at the meta-model level
Methods for tailoring at the meta-model level are based on the COAST framework. The base prototypes for each class of hypermedia objects are created by
application developers who understand the internal structure of the objects.
Also a set of computational semantics is developed which may be assigned
to a prototype in a model definition (by assigning attribute values related
to computations). New object classes (either models, views, or controllers),
their attributes and operations can be added within the framework. New base
prototypes (the root instances in prototype hierarchies) can be created with
a programmer-oriented Prototype Editor. Tools at this level include the the
COAST class libraries and the Prototype Editor. See (Schuckmann et al.,
1996) for more details.
4.3.2. Tailoring at the model level
At the model level our proposed method is based on examples. These allow
ordinary (non-programmer) users to create and tailor models by sketching
an example hypermedia structure. Using this method, a set of application
specific prototypes are tailored from the base prototypes defined at the metamodel level. Attribute values related to structural and relational constraints
can be set (in dialogue boxes) to newly created prototypes for triggering
consistency checking when instances are created from them. Attribute values
related to computations can be assigned to (or removed from) newly created
prototypes to enable (or disable) certain predefined operations. The attribute
values assigned at this level to a page type (schema) or its component proto-
jcscwf.tex; 23/11/1998; 18:36; p.14
Tailoring Groupware: The Cooperative Hypermedia Approach
15
types will become part of their properties. These properties will be shared by
all instances created from the prototypes.
Note, an activity space schema is defined by its root page type, which
in turn is determined by its component prototypes, the relationship among
these types, and the computational properties attached to the types. Therefore,
an activity space schema can be created and tailored by tailoring each of
its component types out of the base prototypes and then assigning attribute
values (such as those for relationship, constraints, presentation styles, taskrelated properties, and access rights) to the newly created types.
After an activity space schema is defined, a new activity space instance
can simply be created by duplicating the example hypermedia structure. This
will lead to a completely initialized hypertext structure that the users can
then adapt to their needs. However, it is also possible to create an instance
directly from the schema. This will lead to an empty hypermedia workspace
to start with. Users can then create their hypermedia structure and content on
the fly. In any case, the constraints defined by the schema will be enforced
by the system. Thus, only valid hypermedia structures can be created. Users
can also create an activity space instance from any existing activity space
instance using a copy-as-template operation. This is possible because every
activity space instance can serve as a template.
In CHIPS, two tools have been implemented to support ordinary users
in applying the above outlined tailoring methods: the schema editor and the
flexible editor. The user interface of each tool has seven major areas (see
Figure 2): At the top is a title bar, which presents the name of the tool, the
name of the current node and the type of the current page. Under the title bar
is a system logo and a list of users (represented by pictures) who are currently
working together on the same page. On the right-hand side is the current node
label whose color indicates the state of the current task node. The largest area
in the middle displays the content of the current page. To the left is a palette
of tools for navigation, editing, and task-related triggers. On the right is a
palette of hypermedia object types that are allowed in the current page.
There are two ways of creating an object: either using a creation operation triggered by a menu or using a creation operation activated by using
the palette. The object creation operations activated with a menu selection
can create new types and may widen linking constraints of a hypermedia
structure. The object creation operations activated with the palette create instances of the selected object type (for the purpose of creating a meaningful
example, which may have multiple objects of the same type). The object
creation activated from the palette has few dialogs to complete, because the
type information has been already defined when the types are first created.
In the session objects of the schema editor and the flexible editor, some
attributes of objects are coupled with the prototypes of the objects, so that
their values and views can be shared by all instances created from them.
jcscwf.tex; 23/11/1998; 18:36; p.15
16
Weigang Wang and Jörg M. Haake
Figure 2. CHIPS user interface layout
These attributes include 1) semantic type related attributes, such as `type' , 2)
constraint-related attributes, such as `defaultPageType' for a node prototype,
3) presentation style-related attributes, such as `color' , and other attributes
that need pre-defined default values such as `accessRights' . Changes to an
example page (and the consequent changes to page prototypes or component
prototypes of a page prototype) may affect all its instances. For example,
changing the background color of an example page will change the background color of all its instance pages; and adding a link of a new type in
a page of the example document would make this link available in all the
corresponding page instances.
Next, we discuss the two tools for tailoring at the model level in more
detail.
The schema editor: In many situations a good example can make complicated things easier to understand. If a user has a clear idea about the
kind of document type he or she wants, it should be easier for him or her
to create a sample document in textual and graphical representations than
to create an abstract expression of a document type in a formal language.
With the example-based method, users create a simple but comprehensive
sample hyperdocument in the schema editor, and the system automatically
extracts schema knowledge from it to define an activity space. Actually, this
extraction is done through coupling the schema related aspects with the object
prototypes via the session object of the session browser (the schema editor).
Whenever an attribute value is assigned to an object on the user interface, the
value goes to the corresponding attribute of the prototype of the object, and
then affects the object instance through prototype inheritance.
jcscwf.tex; 23/11/1998; 18:36; p.16
Tailoring Groupware: The Cooperative Hypermedia Approach
17
New types of objects are created by first creating an object of a selected
prototype from the set of base prototypes and then assigning a new type name.
For instance, when a node of a new type is created using the schema editor,
the system will ask the user for its name, its category, its semantic type, and
its page type (which can be a new one or an existing one selected from a
dialog box). When a new page type is created, it will be available for users
to select in subsequent node creation processes. When a node with a new
page type is opened, a blank page with a set of default object types (i.e.,
the base prototypes defined at meta-model level) is provided. These default
object types are not included in the palette of the page. New object types can
be created from the default types with a menu operation. Whenever an object
of a new type is created, the new object type will be put into the palette.
During the creation process, some attribute values will be assigned in dialog
boxes. Other attributes will take default values and can be reset when needed.
Using the schema editor's example-based schema definition approach
end users can tailor the shared information space cooperatively to their needs.
The flexible editor: The flexible editor supports the co-existence of a wide
range of informal and formal information structures: from handwriting, drawings, text, untyped nodes and links, to typed nodes and links with or without
process-related computational semantics. The flexible editor also supports
transformation between these structures, for instance, from a text item to an
untyped node, from an untyped node to a typed node, and from a typed node
without process computational semantics to a type node with such semantics,
and vise verser.
The flexible editor takes a gradual evolutionary approach to create emergent structures. It allows users to draw from scratch with the possibility of
reusing existing activity space instances. With the tool users can create objects of default types or copy objects of existing types first, and then change
them with stepwise refinement until a desired structure appears. This makes
the tool simpler and faster with few dialogs for users to complete in each
operation. When a good pattern emerges, users can ask the system to make it
a schema. The editor can also be used to author hypermedia documents that
are free from being constrained by any schema.
The default node and link types in the flexible editor are untyped nodes
and links. Users can change the type of instances with a retype menu operation activated upon them. After objects of new types are created, their
graphical views can be seen on the current page and their types are added
into the type palette. When a new node type is created, a default page type
called `unpublished' is attached to the node type, and this page type is not
available for users to choose in subsequent node creation operations. Users
can publish a page type for others to use by assigning it a unique name. After
jcscwf.tex; 23/11/1998; 18:36; p.17
18
Weigang Wang and Jörg M. Haake
all page types in a document are published, the root page type of the document
can be used to generate new activity space instances of this document type.
Using this tool, end users can cooperatively tailor the shared information
space to emergent needs.
4.3.3. Tailoring at the instance level
The tailoring method proposed for the instance level is to modify instances
under the constraints of a given model. An activity space schema is more than
a template because many different instances can be created from a schema
(a semantic page type). Constraints and other knowledge in the schema can
provide users with context-sensitive help in creating and tailoring the instances. For this purpose, an activity space instance editor that is aimed at
end-users can be used. The attribute values assigned at this level are local to
these instances. Except for constraint-related attributes that differentiate one
type from another, many inherited attribute values assigned at the model level
(to page schema or its component prototypes) can be overwritten or changed
back to their inherited values (i.e. their default settings).
Whenever possible, constraints are turned into permissible choices in
a given context, rather than allowing illegal actions to be attempted and
then aborted. However, there are still situations when a violation can not be
foreseen before an action is taken. For instance, an acyclicity constraint can
only be checked after an organizational link (or node) creation operation is
submitted. In these situations a warning with explanations is given during
automatic abortion of the operation.
The activity space instance editor: In the session object of the activity space
instance editor, all attributes (if allowed to be changed here) are coupled with
object instances. When a node is opened in an activity space instance editor,
the editor displays the content page and a type palette with all pre-defined
object types that are permitted on the page. When a new object is to be created
with a menu selection, the allowed object types (if more than one) will be
provided in a dialog box for users to choose (if there is only one, then the
creation will be done without a dialog). A warning and explanation message
will be given when no possible choice exists. When a new object is to be
created from the type palette, an error message will also be displayed if a
structural or relational constraint is violated. The annotated example used for
defining the page schema can be accessed by pressing a help button in the
instance editor. When activated, a read-only browser presents the example
page that corresponds to the page type of the current page displayed in the
activity space instance editor.
Using the activity space instance editor, end users can tailor those properties of the shared information space that do not violate the constraints of
the model.
jcscwf.tex; 23/11/1998; 18:36; p.18
Tailoring Groupware: The Cooperative Hypermedia Approach
19
5. Tailoring in an Integrated Fashion
The cooperative hypermedia based activity space is the central abstraction of
the CHIPS system. Coordination means, role-based organizational context,
and the session-based interface linkage are properties of the cooperative activity space. The tailoring of an activity space can be done through tailoring its
component hypermedia objects or object types. The tailoring of coordination
means can be done by incorporating and combining different coordination
mechanisms (such as shared artifacts, shared interface control, role-based
access control, role-based or mediator-based coordination, and workflowlike processes) into an activity space, so as to make it a kind of process
space. Tailoring an organizational context is done via modification of the rolebased organization structure. The tailoring of interface linkage is performed
through tailoring the coupling aspects of a session type (i.e., by modifying
the coupling attribute list of the session object) or through switching between
existing session types. Above tailorings of different aspects are interrelated.
For instance, role-based access permission relates to the role-based organization structure, while the change of coupling aspects in a session will change
the coordination style supported in an activity space.
Next, we present an example application derived from the scenario introduced at the beginning of the paper to see how tailoring for cooperation
is supported in an integrated fashion. It shows how a decision making task is
performed in a multi-phase cooperative process. Remember, the sample task
is to decide which software environments to use within an organizational unit.
First, the team members of the research group create a shared information space using the flexible editor. The proposed software environments
are recorded using text objects and untyped nodes, whose contents contain
further explanations. After the brainstorming phase, they decide to use an
Issue-based schema for further discussion. Therefore, they tailor the shared
information space into an activity space with an IBIS structure. Figure 3
shows that one of the team members, Wang, transforms an untyped node into
a new Position type node.
Then, the team members decide to continue the decision-making task in
a more formal process. To initiate a process definition, first, roles taking part
in the process are defined with a user-role assignment editor (if existing roles
are not applicable to this process). In this case, the roles are `software issue
mediator' and `software issue advisor' . The first role mediates the process and
is taken by the head of the research group, Haake. The second role is taken
by all the decision-making participants in the research group. Then, with the
schema editor, a decision making process schema (named Co-decision) is
created (see Figure 4 for the final process structure), which initially includes
two subtask schemas for the two phases of the process. The first phase is a
planning phase where Issues and Positions are raised. The second phase is a
jcscwf.tex; 23/11/1998; 18:36; p.19
20
Weigang Wang and Jörg M. Haake
Figure 3. Changing an untyped node to a typed node
discussion phase where advisors would debate by enumerating pros and cons
to the positions generated in the first phase. Then, in a permission-role assignment dialog box, access permissions are assigned to roles on a per object type
basis. More specifically, Issue type nodes can be updated (created/deleted) by
a mediator. Position, Pro and Con type nodes can be updated by all advisors.
Only the mediator can authorize permissions and execute the process (i.e.,
trigger state transitions). `Any user' can query (navigate) the process, but not
change it. The first two roles are then assigned as actors of the process (and
its phases) in a role-actor assignment dialog.
After specifying the process schema, a process instance of the schema is
created using a copy-as-template operation. Attribute values, such as process
`start time' and task `duration' , whose scope is local to this process instance,
are assigned. Next, Haake starts the process by triggering the play button on
the user interface of the process space. At this point, Haake realizes that there
is something missing in the process definition: a ballot should be performed
after the discussion phase. By consulting the CHIPS system mediator, he
notices that user Wang is on-line. Thus, he invites Wang to discuss the modification of the process by adding Wang to the user list of his current editing
session. Working together they modify the process structure (the schema and
the process instance) on-the-fly. They add a Ballot phase, which is defined
as a shared whiteboard for carrying out the task with informal coordination.
Then, they add task computational semantics to the Ballot node type and turn
the regular hypertext node into a task node (see Figure 4), so that task related
attributes (such as `duration' and `actor' ) can be assigned to the node and the
jcscwf.tex; 23/11/1998; 18:36; p.20
Tailoring Groupware: The Cooperative Hypermedia Approach
21
Figure 4. Changing a hypertext node to a workflow task node
time indications of the task node, such as `duration' and `end date' , can be
seen on the view of the newly created typed node. They also add an annotation
on the root page of the process instance as an indirect communication mechanism to make the goal of the process clear. Also, an Exploration node and
an explore link are added as associated references to background information
of the primary co-decision task.
As the content of the first subtask node is completed and transformed
into an IBIS structure with the flexible editor, Haake presses the Stop button to end the task. After the task is completed, its data are passed along
`integrate' link into its following Discussion task node, and all discussion
advisors are notified by an email notification. When a team member opens
this Discussion node, he or she will work alone in a loosely-coupled cooperation mode, i.e., his or her navigation action would not affect the browsers
of cooperating users. However, if users decide to work in a tightly-coupled
cooperation mode, all users would follow the navigational actions of other
users in the same session. Similarly, after the discussion task, all the actors of
the final phase are notified to cast their ballot.
This example shows that through tailoring, CHIPS can not only support
a wide range of information structures and coordination means, but also support the co-existence of and smooth transition between these structures and
their corresponding coordination means so as to suit the work situation at
hand. To see the time-based nature of the examples better, a series of pictures
is given at our web site (http://www.darmstadt.gmd.de/concert/projects/chips.html).
Readers with a PC can access a ScreenCam movie at the CHIPS web page to
see CHIPS at work.
jcscwf.tex; 23/11/1998; 18:36; p.21
22
Weigang Wang and Jörg M. Haake
6. Conclusions
In this paper, an approach for tackling tailoring of groupware in an integrated
fashion has been presented. This approach supports the tailoring of properties
of the shared information space and of properties of group process support
by end users. An analysis of groupware tailorability led to requirements on
tailoring (1) the design of shared information spaces, (2) the coordination
means, (3) the access control provided, and (4) the user interface to the shared
workspace. Our approach uses a cooperative hypermedia based information
system framework as a unifying representation of shared information structures, functionality, and the coordination medium of a shared application.
This framework provides a tailorable foundation to support the integrated
view of tailorability on all aspects of a shared information space and group
interaction processes. In this framework, three levels of tailorability and their
supporting methods and tools are provided for different levels of users, from
programmers to ordinary users.
Systems built using our approach can support cooperative definition of
shared information structures, shared process models and their access models
not only before collaboration starts, but also on the fly, when emergent processes evolve. The proposed approach addresses tailoring at all stages of the
development and use of a groupware application.
A prototype system called CHIPS has been presented and different
possibilities of tailoring in CHIPS were discussed. The implementation and
extensibility of the CHIPS meta-models is based on the COAST objectoriented application framework, which aims at application programmers. The
example-based schema definition method and tools support ordinary end
users (non-programmers) to tailor specific models for specific tasks (or processes). The schema instance editor provides these users with intelligent aid
in tailoring various instances of the same schema. As the tools for schema
definition and instance creation are cooperative, a group can tailor properties
of their cooperative work environment (such as the shared information spaces,
group processes, and access to their content and structure) together.
Our approach goes beyond previous work in a number of ways. Compared to tailoring approaches for single user systems our approach deals with
tailoring not only behavior for individual users but also addresses tailoring
of group process support by the group itself. Compared to previous work
on hypermedia systems, our approach combines the approaches of templates
with the approach of providing schemata. However, in our approach end
users can easily define and tailor schemata, templates and instances using the
example-based definition method. Furthermore, compared to single-user hypermedia systems our approach deals with cooperative processes. Compared
to cooperative hypermedia systems our approach lets end users tailor not only
properties of the shared information space but also properties of the group
jcscwf.tex; 23/11/1998; 18:36; p.22
Tailoring Groupware: The Cooperative Hypermedia Approach
23
process support provided (e.g., by defining or tailoring coordination structures or access permissions). Previous cooperative hypermedia systems like
Aquanet, SEPIA, and KMS do not support the tailoring of process support.
Trellis, with its Petri-net based approach can in principle model information
space and processes. However, Trellis requires programming in Petri-nets and
thus does not support ordinary end users. Finally, the cooperative versioned
SEPIA system already supported the tailoring of tasks or process structures.
However, in this system only task structures composed of existing building
blocks could be tailored. New types required the work of a programmer.
As Rogers (Rogers, 1994) pointed out, users show resistance when established work practices are to be abandoned. Thus, we decided to support
emergent structure to minimize radical changes and allow smooth adaptation
of work practices. Similar to Prospero (Dourish, 1995), CHIPS also supports
a kind of computational reflection assuming that a change in structure (representation) may result in a change of function (behavior). CHIPS tries to
let users make gradual structural changes that lead to gradual changes in
function. For realizing computational reflection, Prospero uses the metaobject
protocol technique, while CHIPS employs the object prototype technique.
In CHIPS, different information spaces for different tasks (or processes) are
modeled as hypermedia based activity spaces. Users can create, modify, and
change the behavior of an activity space by manipulating the structure of its
component hypermedia objects, for instance, by adding new steps to a process
definition (at instance level), or by modifying the schema of an activity space
(at the model level, through modifying its component prototypes or changing
prototypes of its component objects). CHIPS places an emphasis on supporting hypermedia based tailoring at the model and instance levels for end-users.
Comparable to the Prospero metalevel tailoring, CHIPS also provides a kind
of metalevel tailoring for programmers. This is needed because the CHIPS
example-based prototype definition method can only create prototypes from
existing base prototypes and can only select behaviors from their classes.
New base prototypes and new behaviors have to be added into the classes
developed under the COAST framework.
As a conclusion from our work we can say that our approach meets
the requirements of tailoring groupware, as identified in this paper: First, it
supports an integrated view of tailoring information space and group process aspects. This is done via a combined representation of these aspects via
hypermedia structures. Second, using the meta-model, model and instance
levels and the example-based method for defining and tailoring information
space and coordination structures, ordinary end users should be able to tailor cooperative workspaces without a need to program. However, if more
sophisticated tailoring at meta-model level is required, developers can use
the framework to add this behavior. Third, our approach supports the entire
jcscwf.tex; 23/11/1998; 18:36; p.23
24
Weigang Wang and Jörg M. Haake
development and use cycle of groupware. This flexibility facilitates different
styles of tailoring (such as top-down, bottom-up).
Items for future work are relating to applying and testing our technology in real-world user communities. So far, we have tested CHIPS in our
group and our experiences indicate its usefulness. Further evaluation is on
our agenda. Finally, we are currently working on the inclusion of CHIPS
concepts into the COAST framework. This would help groupware developers
to implement systems providing improved tailorability.
Acknowledgements
The authors thank Daniel Tietze and the anonymous reviewers for their
detailed suggestions.
References
Akscyn, R., D. McCracken, and E. Yoder: 1988, `KMS: A Distributed Hypermedia System for
Managing Knowledge in Organizations' . Communications of the ACM, 31, 7 pp. 820–835.
Conklin, J.: 1988, `M. Begeman gIBIS: A Hypertext Tool for Exploratory Policy Discussion' .
ACM Transactions on Office Information Systems, 6, 4 pp. 303–331.
Dourish, P.: 1995, `Developing a Reflective Model of Collaborative Systems' . ACM
Transactions on Computer-Human Interaction, 2(1) pp. 40–63.
Ellis, C. A. and G. L. Rein: 1991, `Groupware - Some Issues and Experiences' . ACM Comm.
34, 1 pp. 38–58.
Furuta, R. and D. Stotts: 1994, `Interpreted Collaboration Protocols and their use in Groupware Prototyping' . In: Proc. of ACM CSCW 94. Chapel Hill, NC, USA, pp. 121–313.
Goodman, D.: 1987, `Hypercard' . MacIntosh Today pp. 60–64.
Haake, A. and J. M. Haake: 1993, `Take CoVer: Exploiting version support in cooperative
systems' . In: Proceedings of the InterCHI ' 93. Amsterdam, Netherlands, pp. 406–413.
Haake, J. M. and B. Wilson: October 31-November 4, 1992 138-146, `Supporting Collaborative Writing of Hyperdocuments in SEPIA' . In: Proceedings of CSCW' 92. Toronto,
Canada.
Halasz, F. G.: 1991, `Seven Issues: Revisited' . In: Keynotd Address in Hypertext' 91
Conference.
Knopik, T. and A. Bapat: 1994, `The Role of Node and Link Types in Open Hypermedia
Systems' . In: Proceedings of the ECHT' 94 Workshop on Open Hypermedia Systems.
Edinburgh, Scotland„ pp. 33–36.
Malone, T., K. Lai, and C. Fry: 1992, `Experiments with Oval: A Radically Tailorable Tool for
Cooperative Work' . In: Proceedings of ACM CSCW' 92. Toronto, Canada, pp. 289–297.
Marshall, C. C., F. Halasz, R. A. Rogers, and W. C. Janssen, Jr.: 1991, `Aquanet: A Hypertext
Tool to Hold Your Knowledge in Place' . In: Proceedings of ACM Hypertext' 91.
McCall, R., P. Bennett, P. D' Oronzio, J. Ostwald, F. Shipman, and N. Wallace: 1990,
`PHIDIAS: Integrating CAD Graphics into Dynamic Hypertext' . In: Proceedings of the
ECHT' 90 European Conference on Hypertext. pp. 152–165.
jcscwf.tex; 23/11/1998; 18:36; p.24
Tailoring Groupware: The Cooperative Hypermedia Approach
25
Nanard, J. and M. Nanard: 1991, `Using Structured Types to Incorporate Knowledge in
Hypertext' . In: Proceedings of ACM Hypertext' 91. pp. 329–343.
Okamura, K., M. Fujimoto, W. J. Orlikowski, and J. Yates: 1994, `Helping CSCW Applications Succeed: The Role of Mediators in the Context of Use' . In: Proceedings of ACM
CSCW' 94. pp. 55–65.
Rogers, Y.: 1994, `Exploring Obstacles: Integrating CSCW in Evolving Organizations' . In:
Proceedings of ACM CSCW' 94. pp. 67–77.
Sandhu, R. and P. Samarati: 1996, `Authentication, access control, and audit' . ACM Comput.
Surv. 28, 1, pp. 241–243.
Schuckmann, C., J. Schümmer, L. Kirchner, and J. Haake: 1996, `Designing object-oriented
synchronors groupware with COAST' . In: Proceedings of ACM CSCW' 96 Conference.
Boston, pp. 30–38.
Streitz, N., J. Haake, J. Hannemann, A. Lemke, W. Schuler, H. Schutt, and M. Thüring: 1992,
`SEPIA: A Cooperative Hypermedia Authoring Environment' . In: Proceedings of ACM
Hypertext' 92. pp. 11–22.
Trigg, R. H. and S. Bodker: 1994, `From Implementation to Design: Tailoring and the
Emergence of the Systematization in CSCW' . In: Proceedings of ACM CSCW' 94. pp.
45–54.
Trigg, R. H., T. P. Moran, and F. G. Halasz: 1987, `Adaptability and Tailorability in NoteCards' . In: Proceedings of IFIP INTERACTION' 87: Human-Computer Interaction. pp.
723–728.
Tyugu, E.: 1991, `Three New-Generation Software Environments' . Communications of the
ACM, 34, 6 pp. 46–59.
Wang, W. and J. Haake: 1997, `Supporting User-defined Activity Spaces' . In: Proceedings of
ACM Hypertext' 97. pp. 112–123.
Wang, W. and J. M. Haake: 1998, `Flexible Coordination with Cooperative Hypermedia' . In:
Proceedings of ACM Hypertext' 98. pp. 245–255.
jcscwf.tex; 23/11/1998; 18:36; p.25
jcscwf.tex; 23/11/1998; 18:36; p.26