Professional Documents
Culture Documents
KEYWORDS: Design Patterns, Pattern Languages, Consider the question of how a hypermedia designer can
Hypermedia Design, Navigation, Interface guarantee that the user always has a way to understand
where he is, and where he is coming from, during
1 INTRODUCTION navigation. A possible solution for this general problem
Hypermedia applications are usually built from scratch, would be to build a “History” object, that is, an object that is
which is not surprising given the relative youth of the continuously informed about user navigational movements
hypermedia market. However, the key reason of why and that can be viewed upon demand. Note that the
hypermedia components are not systematically reused is that relationships among this object and other navigational and
current design approaches are not effective in helping the interface objects may vary from an application to another, in
designer to reason in terms of composition of existing the same way that we may have different ways of viewing
hypermedia structures. In the best case, interface widgets are the history. Nevertheless, the very fundamental idea remains
reused in the context of a particular implementation setting. unchanged; this is a simple example of a design pattern.
In [8] the authors analyze different aspects of software reuse
in the context of hypermedia applications. Reuse of software Note that in the simple example above we are not using any
components and reuse of information are discussed as two particular design notation (e.g., HDM [5], RMM [11] or
broad categories in which the notion of reuse may be useful 00HDM [18]), though such a notation may be useful for
in hypermedia applications. In this paper we argue in favor expressing in a non-ambiguous way the relationships among
of another kind of reuse: reuse of design experience. objects in the solution. Although there is no consensus in the
hypertext community about design methods, patterns
Expert hypermedia designers typically do not solve every transcend this dimension because they help to capture the
problem from scratch. They most of the time reuse solutions essential aspects of design problems and their solutions. The
that they have used previously. It is common, however, that main intent of this paper is to motivate the hypertext
critical design decisions made while defining for example community to discuss the problem and eventually produce a
the interaction and navigational styles of an application pattern catalogue (as [4]) in which hypermedia design
usually remain hidden in code or are poorly documented. experience is recorded as a set of related patterns.
Many other decisions cannot even be deduced from either Reasoning about abstract design structures in terms of
code or documentation. Those are strategies kept in the design patterns is a key step towards reuse of hypermedia
skillful designer’s mind as the result of all his/her previous design experience.
~T~ewf
%pplkati(ms
,’
Hypermedia Systems Hypermedia applications
Navigational Design
12eveiopmenf Stages
Interface design
3 PAlTERN CATEGORIES
We have organized the patterns into two categories -/ntetiace Design. The pattern language for this
accordingly to the different dimensions of applications stage gives some guidelines for a good organization of the
inside the hypermedia space, named hypermedia systems, information, in such way that interface elements interact for
and hypermedia application patterns. The second category is an effective presentation of the data. This pattern language
itself sub-divided according to different design concerns, as could be also used outside hypermedia applications, in the
outlined in Figure 1. These categories were defined based on broader context of GUI design. An example is the
our experience in designing hypermedia applications and in Information on Demand pattern [14].
the use of patterns.
4 SOME PAlTERNS FOR HYPERMEDIA So/ution
This section presents some patterns we have found in each The most convenient way to implement these history
of the different categories presented above: one hypermedia viewers is to use the Navigation Observer pattern.
system pattern, two navigational design patterns, and one Navigation Observer is useful in order to have a perceivable
interface pattern. For the sake of conciseness we will not record of the nodes and links visited while navigating the
discuss the patterns in full detail. Moreover, as we want to hypermedia space. Furthermore, it makes this record
stress the importance of patterns over a particular design independent of them, allowing changes in its presentation
solution, we omit presenting their tradeoffs. style according to user needs and preferences. Consequently,
the same design and interface style can be reused in different
4.1 Navigation Observer: A hypermedia system pattern applications. Navigation Observer decouples nodes from the
navigation history and the history from its interface
Intent (viewers). This allows the variation of the type of viewer or
Decouple the navigation process from the perceivable of the implementation of history without affecting nodes.
record of the process. Navigation Observer simplifies the
construction of navigation history viewers by separating the Structure
hypermedia components {nodes and links) from the objects In Figure 2, we show the structure of the Navigation
that implement both the record of navigation and its Observer pattern using OMT notation [15].
appearance.
Participants
Motivation –Hypermedia Component, such as Node and Link,
As previously stated a common situation found in many implements navigation and operations for displaying itself.
hypermedia applications is the requirement to record, in a
user perceptible manner. the state of the navigation. In –History records the navigation history. Different sub-
addition, as the navigation progresses, this record is classes of History may be defined for filtering different
automatically updated. For example, suppose we have a history aspects.
hypermedia application showing European cities, through
which we navigate using different access structures and –Abstract Viewer implements the abstract interface for
relationships. We may reach the same city through different different kinds of viewers.
navigation paths and we want to know which cities we have
already visited. This can be achieved by having a map of –Concrete Viewer implements the operation displuy-lfistory
Europe always visible in some portion of the screen. according to the type of user or preferences.
Whenever we visit a city, it is highlighted in this map, so we
can instantly know which cities we have already visited Collaborations
during navigation. –Each time a hypermedia component is accessed, it sends
the message record to the history, sending itself and the
We could implement this behavior by requiring that objects current context as the arguments, and the history registers it
representing cities (nodes in the hypermedia application) correspondingly.
communicate with the object representing the map with the
message highlight(self). However this solution would make –When the user wants a perceivable view of navigation, the
the existence of different perceivable records difficult, since message viewHisto~ is sent to an instance of the
it creates a strong dependence between nodes and viewers, corresponding ConcreteViewer, which in turn makes the
and requires modifying the hypermedia components for each current history perceivable.
new type of viewer that is defined.
lHypermediaCom~onent
.. ~ _ _ _ _ _ _
I r t I
- navigate () subject - viewHistory ()
? History 4
- goTo (object)
- record (object)
- backtrack (from)
=
- reset ()
ConcreteViewer
ConcreteHypermediaComponent
- viewHistory ()
E - goTo (object)
Figure 2: Navigation Observer pattern
–Concr-efe viewer-s interact with hypermedia components for Nctscape Navigator it is also possible to select a location
performing goTo operations (i.e., the navigation m a flrorn the navigation history. Though in Netscape only a text-
hypermedia component in the history), based list is presented, the underlying structure of the
application (running as a client of the WWW server) allows
Consequences using Navigation Observer for building new types of
–It decouples navigation from its history and the history viewers.
from a particular way of displaying it.
4.2 Navigational Contexts: a navigational design pattern
–This decoupling allows the separation of the application- Intent
specific style of viewing the history from the navigation Provide the user with closed navigational subspaces
functionality. containing context-related guidelines and relationships, so
that information can better be presented and comprehended.
–Some overhead can arise when the viewer is only interest The same node is also allowed to look different when
in certain types of nodes. The viewer will have to interpret perceived from within different contexts.
the history to filter out the type of nodes of interest, possibly
making use of the context reformation. Problem
Hypermedia applications usually involve dealing with
hnplementaticm collections of nodes (e.g., Paintings, Cities, Persons, etc.).
Several issues related with the implementation of Navigation These collections may be explored in different ways,
Observer are discussed below. according to the task the user is performing. For example,
we may want to explore Paintings of an author, Paintings on
l-Diflerent algorithms fur dejining the history. Though a certain subject, etc., and it is desirable to give the user
histories may be regarded as simple stacks recording each different kinds of feed-back in different contexts, while
visit to a hypermedia component, sometimes it could be allowing him to move easily from object to object within the
necessary to provide viewers with some “condensed” context. From a design point of view this situation may arise
history. This may happen either when the same object is for example when traversing 1-to-n links, as shown in the
visited more than once or when complex backtracking in a next example.
multiple windows environment occurs [2]. One possible
approach is to define a different method in History that Suppose that in an application about Painters and Paintings
returns the record of navigation discarding duplicates and we reach “Van Gogh”, choose to navigate to his paintings
cycles. Another approach is to add this responsibility to and then arrive at “Sun Flowers”. Alternatively, we can also
viewer objects that may analyze the stack as needed, with reach “Sun Flowers” while exploring Paintings about nature.
the help of contextual information.. It is clear that we will explore the same object under two
different perspectives; for example while accessing it as a
2-Viewers and histories as access structures. We can use Van Gogh’s work, we would like to read some comments
the interface of a history as an access structure to nodes we about its relationships with other paintings by him, as well
have visited previously. In this case we need to implement a as having easy access to another painting he painted. On the
protocol connecting the viewer with nodes, possibly using other hand, as a painting on nature, it would be appropriate
the history as a mediator object. In many hypermedia to read (or see) something about that subject and be able to
environments this kind of “goto” operation is allowed, even access other paintings on the same theme (perhaps not Van
in cases where viewers are implemented simply as a Gogh’s). This means that we will need not only to present
clickable list of node labels, as implemented in Netscape the information in a different way in both cases, but also to
Navigator. provide different links or indexes.
Implementing Navigation Observer in typical hypermedia The problem exemplified above uncovers some underlying
environments is usually easy. It is important to stress that potentially conflicting requirements, since we want to access
even in those settings not supporting objects it is advisable the same hypermedia component under different contexts.
to decouple nodes, histories and viewers. When it is not We need to group nodes under the same context and
feasible to separate navigation objects (nodes) from navigate through them using contextual links. On the other
interface ones, as in Asymetrix’s ToolbookTM, we collapse hand it is impractical and it may even shield inconsistency to
the history and its viewer in the same Toolbook object. have different objects to represent the same component
when present in each different context. Furthermore, the
Known uses current context of navigation is not a concern of the node _
Different hypermedia products provide a way of visualizing for example it is not appropriate that a node contains
the navigation history. For example Microsoft’s Windows contextual links because those links depend on context
Help shows the history of a help session as a list of visited information.
topics. Similarly, in some World Wide Web viewers like
Context
node
Decorator
Node
Figure 3: Navigational Context
Known uses
Navigational Contexts has been used in many successful
hypermedia applications. For example in Microsoft’s Art
Gallery, paintings of the London National Gallery are
presented in different COIILeXtS: by place, period and subject;
some anchors are used as decorators and allow accessing the
next and previous painting in each context. In Portinari
Project [12, 18], a collection of most important painting of
Brazilian painter Candido Portinari, different families of
navigational contexts have been defined: for example for
each technique we can reach all paintings painted with that
technique, for each Painting we can explore documents
related with that painting, etc..
In Dorling Kindersley’s The Way Thing Works it is possible Figure 5: Active References in Le Louvre
to access machines either from an index or according to a
physical principle. As we can see in Figure 5, the reader has a permanent
reference about where he is located while he explores the
In [6] Navigational Contexts are called “Collections” and museum. In particular he can choose to go to another region
the authors propose adding them as primitives in the Dexter or room in the region. He can learn more about a particular
Reference Model. In 00HDM we use Navigational Context region (the Interface Pattern Information on Demand is used
as a design concept. This is an interesting use of a design to provide this information). It is very interesting in this
pattern as a way to provide higher level design primitives to example that the same pattern is applied twice in the same
the hypermedia designer. navigational structure.
4.3 ACTIVEREFERENCE: A NAVIGATIONAL DESIGN When we use Active Reference the reader has a perceivable
PATTERN FOR MONITORING NAVIGATION and permanent record about the current status of navigation
Intent and, in this way, we not only provide an orientation tool but
Provide a perceivable and permanent reference about the also make them available while navigating the target nodes.
current status of navigation, combining an orientation tool
with an easy way to navigate to a set of related nodes, at the Consequences
same or higher status level. When using Active Reference, the reader has a permanent
feeling about where he is in the hyperspace and at the same
Problem time he can choose where to move next. Another interesting
In many hypermedia applications (particularly those consequence is that since we are emphasizing location we
involving spatial or time structures) we need to provide the may block the view of some content because of overlap of
reader with a way to understand where he is and help him information on the screen. Notice that in the previous
decide where to go next. The usual solution would include example the location of the room is highlighted over the
an index (or other access structure) to the elements we room itself. Since deciding how to simultaneously show
intend the user to navigate. However, this solution will both navigational objects is an interface concern we do not
require the user to backtrack from the current node to the discuss it further. The Information on Demand pattern can
index to see where he is or to move to another node, while be used to accommodate information with a scarce interface
ensuring that its current position is highlighted in the index; space.
see for example Art Gallery’s Historical Atlas.
hnplementation
Solution The implementation of this pattern will depend highly on the
A good solution is to maintain an active and perceivable support and flexibility over the graphical interface provided
navigational object acting as an index for other navigational by the environment. For instance, it depends on the kind of
objects (either nodes or subindexes). In this way we will be hypermedia-aware widgets that allow anchor definition .It
able to interact with both the index and the target nodes. In also depends, for example, on available layering
mechanisms in the implementation environment, When a node has a lot of information to be displayed we
could defhre more than one page for the same node or use
Known uses scrolling, but oftentimes this alternative does not yield an
Active Reference has been used in many popular acceptable solution. Another alternative is to partition the
hypermedia applications. In Microsoft’s “The ultimate node in such a way that we can use different windows for
Frank Lloyd Wright” it has been applied to show his presenting the information, defining links among these new
buildings in different states in the USA. It is possible to see nodes. The problems with this solution are: fwst, in our
all the works together with an active map showing where it attempt to match design with an implementation issue, we
is located and a list of other works in the same state. may define an attribute of a node as a separate entity, and in
doing so we will end up distorting the application’s
In Microsoft’s Multimedia Beethoven we can access an
navigational structure. Consequently, the user will get the
active reference of the 9 1%. symphony allowing us to select
impression of dealing with multiple entities, becoming
different movements and listen to them; we can also select disoriented, while in fact he is accessing another part of the
another without needing to backtrack to an index. same conceptual entity.
El
Ac,,v,,.wfiu!,
C+, uxs COntm[l,
”g
the iorormaum
vm~.xed LOthe I:AI
Figure 6a: Interface showing the painting as the main Figure 6.b: Interface on Demand. A textual attribute is
interface object perceived
we clearly separate navigational design from the design of such as Information on Demand and Interface Groups [ 14].
the interface. In this way we can reason about navigation We strongly believe that discovering new patterns in well-
without considering further interface problems. In the designed hypermedia applications is a rewarding task as it
example above we can model Paintings as objects increases the degree of expertise we, as a community, can
containing information and anchors that do not need to be share and transmit to others. The process of finding new
perceived at the same time (like a zoomed painting view or patterns involves analyzing successful applications and
the textual information). Another interesting issue that arises reverse-architecting its underlying design structure [19]. In
when using Information on Demand has to do with this case the focus is not only analyzing the application as in
providing cues about what we will get when demanding [7] but also discovering recurrent problems and the way they
some additional information.. have been solved. It is not surprising that good applications
apply a set of principles that can be systematized as patterns.
implementation Many of them are usually hidden in the particular
When implementing information by demand we have to take instantiation of the problem so we must abstract from
into account some features of the supporting environment. particular application details in order to come up with a
While in Toolbook it is possible to easily implement the general expression of the problem and its solution.
kind of interface effect that is usual in this pattern, when Analyzing how we can implement the pattern in different
building web sites the solution is less obvious. In the web, hypermedia environments is quite important if we want our
we can implement a local scrolling effect, or choose to use work to result profitable to others.
frames and use a new window for each item of information
presented. This last solution has some navigational problems We are currently working in the definition of a Pattern
because in fact we are activating another (sub) node. Language, i.e. a set of design patterns that can be used
together to end-up with well-designed, usable hypermedia
Known uses applications. This language will consider two outstanding
Information on demand has been widely used in different design concerns: the development of software support for
hypermedia applications. In Microsoft’s Art Gallery it is achieving hypermedia behavior—we call this level
used to provide further reading about a Painting. When you hypermedia system level—and the one faced by designers
click the “See Also” button you get a set of related issues when using hypermedia primitives to build high level,
that are in fact attributes of the current painting representing usable applications—the hypermedia applications level.
anchors to the desired information. Moreover, the pattern language may contain more specific
“sub-languages” that deal with either particular design
In the Passage to Vietnam CD ROM, Interface on Demand
aspects such as navigation or interface or with more
is applied to let the user read further information about a
specialized applications like “information kiosks”. Though
photograph. In this application the pattern is used not
the field is rather new we believe several pattern languages
because screen space is scarce but because the authors do will surely arise from our effort.
not want to “pollute” the (beautiful) photograph with textual
information. There is a growing agreement that a new generation of
computer applications using hypermedia is now emerging.
5 FURTHER WORK
In applications combining navigation with more
We have presented the concept of design patterns and have
“conventional” behavior we will find many recurrent design
shown how to apply the principles behind patterns to
problems that we, as a community, have already solved. The
hypermedia design. We have also shown some simple but
pattern language expresses this collective expertise.
powerful design patterns: Navigation Observer,
Navigational Contexts, Active Reference and Interface on ACKNOWLEDGMENTS
Demand solving recurrent problems both for designers of We wish to thank the anonymous reviewers for their
hypermedia systems and hypermedia applications both at the valuable comments on the paper, which greatly helped to
navigational and interface level. improve it .
This research is part of our work on object-oriented Daniel Schwabe is partially supported by CNPq - Conselho
hypermedia design using 00HDM. Though the very idea of National de Desenvolvimento Cientifico e Tecno16gico,
patterns is somewhat independent of the method being used, Brazil.
it is clear that the underlying design framework has
influenced our work. In particular, as 00HDM clearly
separates conceptual, navigational and abstract interface
REFERENCES
design we have a first criteria to classify patterns according
to the design activity in which they participate. For example 1, Alexander, S. Ishikawa, M. Silverstein, M. Jacobson, I.
we have identified many patterns at the navigational level, Fiksdahl-King e S. Angel: “A Pattern Language”. Oxford
such as Navigation Strategy [13] and at the interface level University Press, New York 1977.
2. Bieber and J. Wang: “Backtracking in a multiple 12. Lanzelotte,R.S.G.; M.P Marques, M.C,G. Penna, J.C.
window environment”. Proceedings of ECHT’94, Portinari, I.D. Ruiz e D. Schwabe: “The Portinari
Edinburgh, September 1994, pp. 158-166. Project: Science and Art team up together to help
cultural projects”. Proceedings of the 2nd International
3. Coplien. “A Generative Development-Process Pattern Conference on Hypermedia and Interactivity in
Language”, Pattern Languages of Programs 1, Johnson Museums (ICHIM’93), Cambridge, UK, September 1993
and Cunningham eds., Addison Wesley, 1995.
13. Rossi, A. Garrido and S. Carvalho: “Design Patterns for
4. Gamma, R. Helm, R. Johnson and J. Vlissides: “Design Object-Oriented Hypermedia Applications”. Pattern
Patterns: Elements of reusable object-oriented software”, Languages of Programs 2, Vlissides, Coplien and Kerth
Addison Wesley, 1995. edr., Addison Wesley, 1996.
5. Garzotto, D. Schwabe and P. Paolini: “HDM - A Model 14. Rossi, D. Schwabe and A. Garrido: “Towards a Pattern
Based Approach to Hypermedia Application Design”. Language for Hypermedia Applications”. Proceedings of
ACM Transactions on information Systems, 11 (1), Jan. the 3rd. Annual Conference on Pattern Languages of
1993, pp. 1-26. Programs, Monticello, Illinois, September 1996.
6. Garzotto, L. Mainetti and P. Paolini: “Adding 15. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy and
Multimedia Collections to the Dexter Model”. In Proc. W .Lorensen: “Object Oriented Modeling and Design”,
ECHT’94-ACM Conference on Hypermedia Prentice Hall Inc. 1991.
Technology. Edinburgh, UK, Sept. 1994.
16. Schmidt:” Using Design Patterns to develop reusable
7. Garzotto, L. Mainetti and P. Paolini: “Hypermedia object-oriented communication software” Con-m of the
Design, Analysis and Evaluation Issues”, Comm. ACM, ACM, October 1995, 38(10), pp. 65-74.
August 1995, pp. 74-86.
17. Schwabe and G. Rossi: The Object-Oriented
8. Garzotto, L. Mainetti and Paolo Paolini: “Information Hypermedia Design Model. Communications of the
reuse in hypermedia applications”. Proceedings of ACM, August 1995, pp. 45-46.
Hypertext’96, Washington, 1996, pp. 93-104.
18. Schwabe, G. Rossi and S. Barbosa: “Systematic
9. Gronbaek: “Composites in a Dexter-Based Hypermedia Hypermedia Design with 00HDM”. Proceedings of the
framework”. Proceedings of the ACM European ACM International Conference on Hypertext
Conference on Hypertext, (ECHT94), Edinburgh 1994, (Hypertext’96), Washington, March 1996.
pp. 59-69.
19. Vlissides, J. Reverse architecture. Position paper for the
10. Halasz e M. Schwartz: “The Dexter Hypertext Reference Software Architecture Seminar, Daghstul, Germany,
Model”. Comm., of the ACM, February 1994, pp. 30-39. 1995 (available at http://st.cs.uiuc. edu/pub/patterns/
papers/revarch.ps ).
11. Izakowitz, E. Stohr e P. Balasubramaniam: “RMM: A
methodology for structured hypermedia design”. Comm.
of the ACM, October 1995, pp. 34-44.