1© Kaj GrønbækDexter & Devise Dexter Model and Devise Hypermedia Hypermedia system design...
-
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...
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.
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
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.
4 © Kaj GrønbækDexter & Devise
Dexter Layers - conceptual (Halasz, 1990)
5 © Kaj GrønbækDexter & Devise
Dexter Layers - pictorial (Halasz, 1990)
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
?
7 © Kaj GrønbækDexter & Devise
Dexter Components (1)
Component
Link Atom Composite
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)
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:
10 © Kaj GrønbækDexter & Devise
Use of Presentation Specifications
Text
AnimationTeacher's link:"View in editor"
Student's link:"Run the animation"
11 © Kaj GrønbækDexter & Devise
At least two specifiers per link(Halasz & Schwartz, 1990, p. 106-107)
12 © Kaj GrønbækDexter & Devise
Behavior of DeleteComponent(Halasz & Schwartz, 1990, p. 115)
13 © Kaj GrønbækDexter & Devise
Dexter composites
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.
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.
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>
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.
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
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
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
21 © Kaj GrønbækDexter & Devise
Storage Layer example (Components)
Component
AtomComponent
LinkComponent
CompositeComponent
LinkCompositeTableTopComposite
AtomComposite
nonLinkComponent
ContainerComposite
GuidedTourComposite NonLinkComposite
BCCompositeComponent
MovieComponent
DrawComponentTextComponent
FileComponent
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.
23 © Kaj GrønbækDexter & Devise
Leaving dangling links when deleting components
24 © Kaj GrønbækDexter & Devise
Options when following a link with a dangling endpoint
25 © Kaj GrønbækDexter & Devise
Following an incomplete link
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?
27 © Kaj GrønbækDexter & Devise
Link Directionality in DHM
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
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.
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
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, ...
32 © Kaj GrønbækDexter & Devise
Example of a virtual link composite
33 © Kaj GrønbækDexter & Devise
Browser interfaces
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.”
35 © Kaj GrønbækDexter & Devise
DHM GuidedTour and TableTop
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
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
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