1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design...

38
1 © Kaj Grønbæk Dexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk & Randy Trigg The Dexter Hypertext Reference Model Fransk Halasz & Mayer Schwartz (Edited by Kaj Grønbæk & Randy Trigg) Design Issues for a Dexter-Based Hypermedia System Kaj Grønbæk & Randy Trigg From Communications of the ACM. Special issue on Dexter based hypermedia, February 1994.
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    227
  • download

    1

Transcript of 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design...

Page 1: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

1 © Kaj GrønbækDexter & Devise

Dexter Model and Devise Hypermedia

Hypermedia system design applying the Dexter Model• Special Issue introduction by Kaj Grønbæk & Randy Trigg

The Dexter Hypertext Reference Model• Fransk Halasz & Mayer Schwartz (Edited by Kaj Grønbæk & Randy Trigg)

Design Issues for a Dexter-Based Hypermedia System• Kaj Grønbæk & Randy Trigg

From Communications of the ACM. Special issue on Dexter based hypermedia, February 1994.

Page 2: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

2 © Kaj GrønbækDexter & Devise

The Dexter meetings

Organizers: John Leggett and Jan Walker

Participants included: Rob Akscyn, Doug Engelbart, Steve Feiner, Mark Frisse, Frank Halasz, Don McCracken, Norm Meyrowitz, Tim Oren, Amy Pearl, Catherine Plaisant, Mayer Schwartz, Karen Smith, Randall Trigg, Bill Weiland.

Systems represented included: Augment, Concordia/Document Examiner, IGD, FRESS, Intermedia, HyperCard, Hyperties, KMS/ZOG, Neptune/HAM, NoteCards, the Sun Link Service, Textnet.

The meetings included:

October 1988, Dexter Inn, Sunapee, New Hampshire

March 1989, “Chain-o-lakes,” southeastern Texas

April 1990, Cannon Beach, Oregon

July 1990, Zen Retreat Center, Green Gulch, California

Page 3: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

3 © Kaj GrønbækDexter & Devise

Dexter issues

Longstanding hypermedia issues taken up by Dexter:

unifying the notions of node and link

augmenting link-based networks with other structures

integrating hypermedia with existing environments and content editors

representing and enforcing different data models and run-time behavior

storing properties of node presentations

interchanging hypertexts across systems

And even defining what counts as hypertext / hypermedia.

Page 4: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

4 © Kaj GrønbækDexter & Devise

Dexter Layers - conceptual (Halasz, 1990)

Page 5: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

5 © Kaj GrønbækDexter & Devise

Dexter Layers - pictorial (Halasz, 1990)

Page 6: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

6 © Kaj GrønbækDexter & Devise

Overview of Dexter terminology

Storage LayerRuntime Layer Within-Component Layer

Hypertext

ComponentBase Component

Atomic Component

Link ComponentSpecifier

Composite Component

Anchor

Presentation Specification

Session

Instantiation

LinkMarker

?

Page 7: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

7 © Kaj GrønbækDexter & Devise

Dexter Components (1)

Component

Link Atom Composite

Page 8: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

8 © Kaj GrønbækDexter & Devise

Dexter Components (2)

Resolves to

Resolves to

.....

Resolves to

AtomComponent Attributes PSpec Anchors

Id, Value

Id, Value

Id, Value

ContentContent (BaseComp) Data or ContentsDescr

Specifier Comp. Spec. Anchor: Dir: PSpec

Specifier Comp. Spec. Anchor: Dir: PSpec

Specifier Comp. Spec. Anchor: Dir: PSpec

LinkComponent Attributes PSpec Anchors

Content (BaseComp)

CompositeComponent Attributes PSpec Anchors

Data or ContentsDescr

Id, Value

Id, Value

Id, Value

Content (BaseComp)

Page 9: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

9 © Kaj GrønbækDexter & Devise

Anchors: Dexters approach to linking inside document contents

Many hypermedia systems use embedded addresses and go-to.NLS/Augment, KMS, HyperCard, World Wide Web, ...

Some hypermedia systems use ‘anchors’ stored apart from the content.• Intermedia, DHM, Microcosm, Multicard, PROXHY, MacWeb, ABC, WEBSs, ...

<H2>Conference pointers </H2>

<UL>

<LI>Info about <A HREF = "http://cpsr.org/cpsr/conferences/pdc94">PDC '94.</A>

....

</UL>

WWW/HTML:

Advance Program:

Participatory Design Conference (PDC'94)

October 27-28, Chapel Hill, NC, USA

PDC'94 is sponsored by Computer Professionals for Social Responsibility (CPSR) and in cooperation with ACM SIGCHI.

idval

idval

Anchor objects:

Page 10: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

10 © Kaj GrønbækDexter & Devise

Use of Presentation Specifications

Text

AnimationTeacher's link:"View in editor"

Student's link:"Run the animation"

Page 11: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

11 © Kaj GrønbækDexter & Devise

At least two specifiers per link(Halasz & Schwartz, 1990, p. 106-107)

Page 12: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

12 © Kaj GrønbækDexter & Devise

Behavior of DeleteComponent(Halasz & Schwartz, 1990, p. 115)

Page 13: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

13 © Kaj GrønbækDexter & Devise

Dexter composites

Page 14: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

14 © Kaj GrønbækDexter & Devise

STORAGE layer functions

CreateComponent Creates a new component and adds it to the hypertext. Ensures that the range of theaccessor function is extended to include the new component. The resolver function isalso extended so that there is at least one specifier for the new component'scorresponding UID.

CreateAtomicComponent Takes an atom and a presentation specification and uses CreateComponent to createa new atomic component.

CreateLinkComponent Takes a link and a presentation specification and uses CreateComponent to create anew link component.

CreateCompositeComponent Takes a collection of base components and a presentation specification and usesCreateComponent to create a new composite component.

CreateNewComponent Invoked from the run-time layer, calls one of CreateAtomicComponent,CreateLinkComponent, or CreateCompositeComponent.

DeleteComponent Deletes a component ensuring that any links whose specifiers resolve to thatcomponent are removed.

ModifyComponent Modifies a component ensuring that its associated information remains unchanged, thatits type (atom, link, or composite) remains unchanged, and that the resulting hypertextremains link consistent.

GetComponent Takes a UID and uses the accessor function to return a component. If the UIDrepresents a link component, returns either a source or destination specifier for thatcomponent.

AttributeValue Takes a component UID and an attribute and returns the value of the attribute.SetAttributeValue Takes a component UID, a value and an attribute, and sets the value of the attribute.AllAttributes Returns the set of all component attributes. LinksToAnchor Takes an anchor and its containing component, and returns the set of links that refer to

the anchor.LinksTo Takes a hypertext and a component UID, and returns the UIDs of links resolving to that

component.

Page 15: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

15 © Kaj GrønbækDexter & Devise

RUNTIME layer operations

openSession Creates a session for a given hypertext. A session begins withno instantions.

openComponents Opens a set of new instantiations on a given set ofcomponents.

presentComponent Takes a specifier and a presentation specification and createsan instantiation for the associated component.

followLink Uses openComponents to present any components referred toby the "TO" specifiers of any links with anchors represented bya given link marker.

newComponent Opens a new instantiation on a newly created component. unPresent Removes an instantiation.editInstantiation Instantiations can be modified by editing them. A call to

realizeEdits is required to save the changes. realizeEdits Saves an instantiation's editing changes to the corresponding

component by calling ModifyComponent.deleteComponent Deletes the component associated with a given instantiation.

Also removes any other instantiations for that component. closeSession Closes a given session. Note that by default, pending changes

to instantiations are not saved.

Page 16: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

16 © Kaj GrønbækDexter & Devise

A simple Dexter Interchange Format

<hypertext><component>

<type> text </type> <uid> 21 </uid><data> This is some text .... </data><anchor>

<id> 1 </id><location> d13 </location>

</anchor></component><component>

<type> text </type><uid> 777 </uid><data> This is some other text .... </data><anchor>

<id> 1 </id><location> 13-19 </location>

</anchor></component><component>

<type> link </type><uid> 881 </uid><specifier>

<component_uid> 21 </component_uid> <anchor-id> 1 </anchor-id><direction> FROM </direction>

<\specifier><specifier>

<component_uid> 777 </component_uid><anchor_id> 1 </anchor_id><direction> TO </direction>

<\specifier></component>

</hypertext>

Page 17: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

17 © Kaj GrønbækDexter & Devise

Dexter - needs for clarifications and extensions

Dangling links: We believe not only in allowing dangling links, but in actively supporting them in a variety of situations.

Link directionality: Are the direction attributes TO, FROM, BIDIRECT, NONE adequate? Which senses of link directionality are they meant to cover?

Anchors. Is one anchor type sufficient? What do specifiers point at for "whole-component-links"? Are anchors shared between links?

Components: How do we connect components to their contents in an integrated hypermedia system that doesn't "own" all material?

Composites: Dexter composites only model the internal structure of data objects. But composites should also be used to model structures built from components (e.g. tabletops, browsers, query results)!

CSCW: Dexter is silent regarding multiuser aspects and distribution.

Multimedia and time: Nor does Dexter handle temporal issues.

Page 18: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

18 © Kaj GrønbækDexter & Devise

DEVISE Hypermedia (DHM): Open hypermedia based on Dexter

Implements an object oriented design with:

generic classes for all the Dexter concepts

classes organized in an extensible and tailorable framework for hypermedia development

Immediate benefits from the Dexter model:

Separation between Storage (persistent) and Runtime (transient)

Bi-directional links

Multi-headed (n-ary) links

A basic notion of Composites

An interchange format

Page 19: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

Hypermedia

database

(server)

Application Layer

Communication Layer

Storage Layer

(Physical)

User's desktop

Application A

ApplicationB

Browser

RuntimeLayer

(Conceptual)

(WithinComponentLayer)

Hypermedia Service

Application Interfaces

Storage Classes

CommunicationProtocol

Runtime Classes

Open Hypermedia Protocol

implemented on top of platform

dependent communication facilities DDE/OLE2 AppleEvent Sockets Object distribution

Communication with

hypermedia database using

object distribution mechanisms

DEVISE Hypermedia architecture

Page 20: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

20 © Kaj GrønbækDexter & Devise

The object oriented DHM Framework

STOR RUN APPLCOMM

HypertextComponent

AnchorSpecifier

SessionInstantiation

LinkMarker

CommSessionCommInstComm

LinkMarkerComm...

Arbitrary (closed, semi-open, or fully open) editors for data objects

Page 21: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

21 © Kaj GrønbækDexter & Devise

Storage Layer example (Components)

Component

AtomComponent

LinkComponent

CompositeComponent

LinkCompositeTableTopComposite

AtomComposite

nonLinkComponent

ContainerComposite

GuidedTourComposite NonLinkComposite

BCCompositeComponent

MovieComponent

DrawComponentTextComponent

FileComponent

Page 22: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

22 © Kaj GrønbækDexter & Devise

Dangling links

Four reasonable and foreseeable dangling situations:1. deleted endpoint component,

2. deleted endpoint anchor,

3. unavailable data objects in endpoint component,

4. invalid anchor value due to editing outside the hypermedia.

Intentionally incomplete links (open for later addition of endpoints) should also be supported.

Page 23: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

23 © Kaj GrønbækDexter & Devise

Leaving dangling links when deleting components

Page 24: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

24 © Kaj GrønbækDexter & Devise

Options when following a link with a dangling endpoint

Page 25: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

25 © Kaj GrønbækDexter & Devise

Following an incomplete link

Page 26: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

26 © Kaj GrønbækDexter & Devise

Different notions of link directionality

Semantic direction: Ordering implied by the semantic relationship between the connected

components.

Example: A “supports” link connecting two components is “read” in a certain direction: the argument in A “supports” the claim in B.

Creation direction: The order in which the link endpoints were created.

Usually the first endpoint created is considered the source of the link, while the last is considered the destination.

Traversal direction: How the link can be traversed.

Examples: WWW links can only be traversed from source to destination. NoteCards links can be traversed in both directions, although the interface style is different. DHM links can be traversed symmetrically in both directions.

What about multi-headed links?

Page 27: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

27 © Kaj GrønbækDexter & Devise

Link Directionality in DHM

Page 28: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

28 © Kaj GrønbækDexter & Devise

Anchors in a Dexter-based hypermedia

Locating an unmarked anchor in the contents of a component requires computation.

Marked anchors are located by their linkMarkers.

Anchors are reused if possible, e.g. there is only one Whole-component anchor per component.

Anchor

WholeComponentAnchor MarkedAnchor UnmarkedAnchor

IdAnchorKeywordAnchorPositionAnchor IntervalAnchor

TextComponent DrawComponentMovieComponent

Component

Page 29: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

29 © Kaj GrønbækDexter & Devise

Integration and component contents

Component contents are either embedded or stored externally.

Example:

An internal drawing editor that stores drawings as part of the component in the OODB.

Example:

A video component whose video data object is stored in a separate file.

Page 30: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

30 © Kaj GrønbækDexter & Devise

DHM general composites

BCCompositeComponent

Component Info

Attributes

PresentationSpecification Anchors

Component Contents

CompositeComponent

Component Info

Attributes

PresentationSpecification Anchors

Component Contents

Page 31: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

31 © Kaj GrønbækDexter & Devise

Uses of Composites

Data objects with internal structure• e.g. video

Hierarchical structure• by reference

• by inclusion

Browsers and Queries• virtual

• computed

Paths• GuidedTour

• TableTop

History• data structure: e.g. changes to components, anchors

• behavior: e.g. list of recent components visited, ...

Page 32: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

32 © Kaj GrønbækDexter & Devise

Example of a virtual link composite

Page 33: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

33 © Kaj GrønbækDexter & Devise

Browser interfaces

Page 34: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

34 © Kaj GrønbækDexter & Devise

Representing paths

GuidedTours and TableTops (Trigg 1988) • descended from Bush’s notion of trails

TableTop• Captures a configuration of component presentations on the screen

• Opens and closes the configuration as a unit

• Can be computed or built manually

GuidedTour• A (branching) sequence of TableTops

• Behavior includes, for example, the ‘Next’ operation which closes current TableTop and opens the next in the sequence

• Feedback is given to show which part of the tour has been visited

These concepts can be implemented by means of composites, but it raises a need for Pspecs on composite “pointers.”

Page 35: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

35 © Kaj GrønbækDexter & Devise

DHM GuidedTour and TableTop

Page 36: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

36 © Kaj GrønbækDexter & Devise

Variants of DEVISE Hypermedia (DHM)

Portable Dexter based hypermedia framework

Multi-user OODB

Single user Persistent store

DHM for Macintosh

DHM for UNIX

Development is based on the Scandinavian Mjølner BETA environment

DHM for Mac/UNIX

Single user version used in workshops at Great Belt Link Ltd. (and Grundfos)

Multi user version in use by EuroCODE partners

Multi user prototype - demo at Hypertext ‘93

DHM for Windows/NT/95

Network version evaluated at GBL spring 95

DHM for WWW

Paper and demo at Hypertext ‘97

Page 37: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

Application Layer

Communication Layer

LayerStorage

(Physical)

RuntimeLayer

(Conceptual)

(WithinComponentLayer)

HypermediaDataBase server

(Storage Classes)HypermediaDataBase server

(Storage Classes)Document server

Application A

ApplicationB

Browser

Hypermedia Service Process

Application Interfaces

Storage Classes

Runtime Classes

User's workstation

Application A

ApplicationB

Browser

Hypermedia Service Process

Application Interfaces

Storage Classes

Runtime Classes

ODHPODHP

Document server

User's workstation

Server Host

Multiuser client/server architecture based on the Dexter model

Page 38: 1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design applying the Dexter Model Special Issue introduction by Kaj Grønbæk.

38 © Kaj GrønbækDexter & Devise

Pilot use at Great Belt Link Ltd.

Mail/FAX

InternalNotes

SpreadsheetsAction/Done-lister

Photos

Personalnotes

Change requests

Progress reports

Non-conformancereports

CAD drawings

Procedure handbooks

Supervision

Video

ARTEMIS

plans Quality

documentation