IMD 1.17: 19/01/2010 21:19:30 neptune demo data 6-2-86 neptune demo data, 6/4/86 * 4UniFLEX BackupiBGim  hiԄԪ2 a ajTektronix 44042  !"#$%&'()*+,-./01234('&%$#"!   * hc/usr/hyper/hyperhUolAq 9, 3@ @, R3P@l@@Rc"z ? * +/usr/hyper/hyperhUolAq * , , permissionsarchivedauthorcreatorcontentTypecreationTimeupdateTimenormd.icon.nameHypertext Users Manualrootusrman.x.yIntroduction.typeReferencesHypertext System OverviewspecpartOfsystem overviewdesignHypertext TerminologyEditing Contents of NodesVersion ArchivesOwnership ProtectionsAttribute/Value PairsDemonsSystem ArchitectureUser Interface Overviewui overview User Interface ParadigmsStatic ViewsAccessing Hypertext GraphsInvoking CommandsText EditingSystem AttributesError ReportingBrowsing DocumentsGrap * ,hb/usr/hyper/hyperhUolAq 9, 3@ @, R3P@l@@Rb"zh BrowsersPredicate Grammar SpecificationGraph OperationsNode OperationsLink OperationsVersion OperationsNode BrowsersText Editing CommandsNode Versions BrowsersVersions OperationsNode Differences BrowserNode Differences OperationsAttribute BrowserAttribute OperationsDemon BrowserDemon OperationsSystem CommandsHypertext OperationsCreating GraphsAccessing GraphsDestroying GraphsDefining Graph DemonsBrowsing Old VersionsCreating NodesAccessing NodesDeleting NodesDefining Node AttributesDefining Node DemonsCreating LinksDeleting LinksDefining Link AttributesMaking HardcopiesHints on Writing DocumentsHypertext Demo ScriptdemoNode Browser DemoNode Versions Browser DemoNode Differences Browser DemoAttribute Browser DemoGraph Browser DemoUser Interface ParadigmsNelson.object.demon  * he/usr/hyper/hyperhUolAq 9, 3@ @, R3P@l@@Re"z   * hd/usr/hyper/hyperhUolAq 9, 3@ @, R3P@l@@Rd"zU $ / ; EJO Tj nt v x   39Lc n   USGT#4(C&'8 ?52.MD-A K/*E$N<J"F%IU1 7;H:+)@!P)9HWi v )8L[k| 1B\qu >0O9 3LB ,=R6 QDemon BrowserDemon OperationsSystem CommandsHypertext OperationsCreating GraphsAccessing GraphsDestroying GraphsDefining Graph DemonsBrowsing Old VersionsCreating NodesAccessing NodesDeleting NodesDefining Node AttributesDefining Node DemonsCreg LinksDeleting LinksDefining Link AttributesMaking HardcopiesHints on Writing DocumentsHypertext Demo ScriptdemoNode Browser DemoNode Versions Browser DemoNode Differences Browser DemoAttribute Browser DemoGraph Browser DemoUser Interface ParadigmsNelson.object.demon  * ,hh/usr/hyper/hyperhUolAq 9, 3@ @, R3P@l@@Rh"zsynR_B}>2n}R}pj/R_B}J}v}vn}v}jR_B}J}}nn}}} ynR_B}>2n}R}R_B}J}v}vn}v}jR_B}J}}nn}}}}Ky xp  u x | ~ ㋅ ㋓ ㋕ ㋘T }w U }w  }}>Wp }}}Xd }}}j xUR$x}}* >| 1B\qu  * 7hi/usr/hyper/hyperhUolAq 9, 3@ @, R3P@l@@Ri"z  * hk/usr/hyper/hyperhUolAq 9, 3@ @, R3P@l@@Rk"z  * ,hj/usr/hyper/hyperhUolAq 9, 3@ @, R3P@l@@Rj"zsynR_B}>2n}R}pj/R_B}J}v}vn}v}jR_B}J}}nn}}} ynR_B}>2n}R}R_B}J}v}vn}v}jR_B}J}}nn}}}}Ky  * hl/usr/hyper/hyperhUolAq 9, 3@ @, R3P@l@@Rl"z xp $@ u  x | ~ ㋅ ㋓ ㋕ ㋘T }w U }w }nn}}}}KysynR_B}>2n}R}pj/R_B}J}v}vn}v}jR_B}J}}nn}}} ynR_B}>2n}R}R_B}J}v}vn}v}jR_B}J}}nn}}}}Ky * 6hi/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@Ri"zZ ?  * '/usr/hyper/hyperhUolAq/c1/usr/hyper/hyperhUolAqhl, hl%3M %4 * &hj/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@Rj"zN  * hh/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@Rh"z' v㋂㋉㋏㋝㋤㋫㋴ ㋻  z1 p/@'tو x DF \dl0T}㋄㋊㋐㋞㋥㋬㋵ ㋼ J㋀ ㋄㋊^㋒)㋟7㋦F㋭V㋶ f㋽ u㋔㋟    % +$*) *+,"-(..㋦㋭㋶ ㋽   ㋗㋠㋧㋯㋷ ㋾    ㋚㋡㋨/409,?-Dl .01#2)2/l54:4?4E! #()=/o6㋯㋸ ㋿  nVh㋚   !"#$%&'(   lP:`@oE 6;AFM U!Z"a#g$o  7 ; A G M U! [" bllllm  o      # h$ q x+J 1S!2X"3_#4e$5l%6t&7|'8㌁(9㌉ l4K lT!4Y"l`#4f$ln%4u&l}'4㌂(㌊ `L T!Y"a#f$o%u&}'㌂(+㌊T%v&~'㌃(㌋1&`n/hq&{nnV6789%:D;T<=L>M?N@O AP و P DF \dl0T=>?@hvH% w& ~' ㌄( ㌋<K=K>K?K@KAK<):㌑*+㌕+;㌘,<㌝-=㌢.>㌧/?㌫0,㌲1@㌶2A㌻0) A`n/hq&{nnVh=s>?@ A`n/hq&{nnVh "#㌒*㌖+l㌙,l㌞-l㌣.l㌨/l㌬0㌳1l㌷2l㌼$)㌓*q㌖+J㌚,Z㌟-i㌤.y㌨/㌭0㌴1㌷2㌼3B4C%&') * +! ,'Z:uCS㍃7<hq&{V Q- "/ #2$4%5&5D6-7E8F9G:H;I<J3l4l5l67l8l9l:;<3457'8(:);*=|+>,?-A.C/D0E,G-I+J1L p2N 3O!4Q"5R#6T$7U%8W&9X':Y(+[!d);\*<^+=_,>a-?b.,c/@e0Af1Bg2Ci"X3Dj4-l5Em6Fn7Gp8Hr9It:JU  * hl/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@Rl"zu;Lw<Mx#L=Ny>O{?P|@~ABJ㍁CR㍂D㍄E:㍅F㍇+;㌘,<㌝-=㌢.>㌧/?㌫0,㌲1@㌶2A㌻0)'8(:);*=|+>,?-A.C/D0E,G-I+J1L p2N 3O!4Q"5R#6T$7U%8F  * 8hk/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@Rk"z H  * hm/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@Rm"z'8(:);*=|+>,?-A.C/D0E,G-I+J1L p2N 3O!4Q"5R#6T$7U%8As㍆s    "" >ݹ@QF㋀㍁㋀ $  | @t`s ManuC@㋇㍆㋇ < $  i㋁㋁㋁F㋍㍃㋍ T < 0@t` D㋛!㋛ l T H@t`em Ove㋣#㋣ l ` @t`㋩$㋩  x$ @t`㋲%㋲  <0$@t`㋹ | p d  $@t`ents< | @t`nts=  0 <@t` >  H T@t`&@& & ㋹  TH<@t`(   l`T@t`)    xl@t` ~    < @t`&A7  ` l@t`,A, @t`3I3 XL@t`7D7 $   pd@t`=F= <     @t` Overv .    @t` Parad 1     @t` 3 0 $   @t`4 0 $|@t`CHC T H <@t`III @ 4 (@t`QL Q X L @@t`VL!V p d  H < 0  @t`6 ` T H  @t`7 x l `` T @t`T   x  @t`$AX@t`Browse^O"^  | p@t`! cO#c    @t`es Bro!kS$k   0$@t`#"rS%r   @t`ser#zV&z   4(@t`%$V'   L@@t`%㌇W(㌇   dX@t`&㌎㍄)㌎    `3o6 (    @t`74l7 @ 4 (' 3@t`s5m8 X L @@ 4 @t`6o9 p d XX L @t` @t`9E㌔a*㌔   ' @t`ations-(㌗[+㌗ 4 ( ' '@t`nsons)㌜],㌜ L @ 44 ( @t`*㌠^-㌠ d X LL @ 7q:  | p(  @t`8s;    | @t`9㍀<   p @t`?Bv=   @t` S@t`+㌥`.㌥ | p dd X @t`,㌪a/㌪   || p @t`-㌰i0㌰     @t`3.㌴d1㌴   ' -@crip;w>    @t`<x?    @t`= z@    @t`>{A    @t`t`s/㌹e2㌹     @t`0㌾f3㌾     @t`1h4     @t`2i5     @t?@t`Browse^O"^  | p@t`! cO#c    @t`es Bro!kS$k   0$@t`#"rS%r   (G ( * hn/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@Rn"z  * p ) . .&  ,  * 1 1'  .&  , 33(  1' FO  % $  {  O  !!  {  O## .& 44) 3(  1' 66* 4) 3( 77+ 6* 4) 99 !  {$$ # !%% $ # && (% $ (7+ 6* :: @9 (7+<< X: @9==  t< (( @& (% ) ) X( @& * * p ) X( , , X:>>  =  t<@@  >  = AA  @  > CC A  @ DD C A FF !D CHH !F)X'XS "( ԍW "%V )*Z(Z- "@'XS "( ԍW*+[)[ "\(Z- "@'XS*,]*] "t !DII !4H !F KK !LI !4H !LL1 !hK !LI"N)[ "\(Z-)*-^+^ "*] "t)[**.`,`  "+^ "*]+*/a-a! ",`  "+^ N !L1 !hK"#O!O ! N !L1$Q"Q !!O ! N $%S#S !"Q,)0b.b. "-a! ",` (01d/d ".b. "-a!02e0e #/d ".b./03f1f !!O&T$T !#S !"Q"&'V%V !$T !#S (W&W "%V !$T #0e #/d004h2h #41f #0e105i3i  #P2h #41f2)6k4k/ #h3i  #P2h.67l5l #4k/ #h3i 68m6m #5l #4k/569o7o #6m #5l6):q8q0 $@}AA:㍁C㍁ $ A $A~A㍃D㍃A $C㍁ $ AB)㍄E㍄A %D㍃A $C㍁D'㍆ #7o #6m4);s9s1 #8q0 #7o8<t:t # s1 #8q0'<=v;v  $:t F㍆A %E㍄A %D㍃AEC "*] "t)[**.`,`  "+^ "*]+*/a-a! ",`  "+^# s1<>w<w  $(;v  $:t;<?x=x  $D<w  $(;v <<@z>z  $\=x  $D<w =<A{?{ O  *  ho/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@Ro"z $t>z  $\=x >}@}A $?{  $t>z : ~A~A $@}A $?{ @ <㍀B㍀A $A~A #7o #6m4);s9s1 #8q0 #7o8<t:t # s1 #8q0'<=v;v  $:t _  * hp/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@Rp"z@}AA:㍁C㍁ $ A $A~A㍃D㍃A $C㍁ $ AB)㍄E㍄A %D㍃A $C㍁D'㍆A  !!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>  * hq/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@Rq"z??@@AAG  !!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@AABBCCDDEEFFree describes each of the browsers supported and lists the commands available in each; section four describes each of the functions of the system and how they can be invoked. Section five contains a script for demonstrating the hypertext system using a sample data base we are providing. We suggest that you skip sections three and four on first reading and jump directly to the script and try it out. Sections three and four can be read later to gain the background needed to use other functions of t@}AA:㍁C㍁ $ A $A~A㍃D㍃A $C㍁ $ AB)㍄E㍄A %D㍃A $C㍁D'㍆he hypertext system and to answer questions that may arise while trying out the system.?eP f * n1/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R1"zE} F * 5n10/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R0"zs@ .DR .TR .TL Hypertext Users Manual .AU Norm Delisle Mayer Schwartz .AI Computer Research Lab Tektronix Labs .PP This document contains a users manual for the Hypertext system being developed by CRL. Also included is a brief overview of the hypertext system and its user interface. .PP This document starts with a brief introduction to hypertext systems. The second section gives an overview of CRL's hypertext system. Sections three and four describe the user interface; section th .NH 2 .TC Demons .PP The hypertext system allows a demon to be associated with a graph or an individual node. The demon specifies an action that is performed when an event such as modifying a node, or adding a node is performed. The demon is a character string that is passed to a unix shell for execution when the event occurs. The demon is executed on the machine that serves as storage host for its corresponding graph or node. Changes to demon values are archived, if the demon is associated with a graph or with a node that is an archive. available in each; section four describes each of the functions of the system and how they can be invoked. Section five contains a script for demonstrating the hypertext system using a sample data base we are providing. We suggest that you skip sections three and four on first reading and jump directly to the script and try it out. Sections three and four can be read later to gain the background needed to use other functions of tt are being accessed. Because the 4404 does not yet support network communications, all hypertext graphs are located on the local machine. .PP In CRL's initial prototype of the hypertext system the Hypertext Abstract Machine is implemented in the programming language C; and the user interface is implemented in Smalltalk-80. These subsystems runs as a separate process on Magnolia under Unix or on the 4404 under the Uniflex operating system. On the 4404 the Hypertext Abstract Machine process is started up by ~|  * 5n11/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R1"zSmalltalk (via a vfork/exec system calls) and communication between the two processes is via pipes. Because the smalltalk interpreter on the Magnolia does not support the vfork/exec system calls, the Hypertext Abstract Machine process must be started up manually by the user; Smalltalk then establishes communication between the two processes using Unix-domain sockets.X %D㍃A $C㍁D'㍆Y .NH 2 .TC System Architecture .PP The hypertext system consists of two major levels. The top level is the user interface. It is our intension that different user interfaces can be used; the interface provided for this demo is intended to be useful for writing documents. The underlying hypertext system is somewhat generic; specializations for a particular design discipline (such as software engineering) can be built at the user interface level. .PP The second level, the Hypertext Abs%{ & * 6n12/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R2"ztract Machine (HAM), defines the operations available to users of the interface subsystems. At this level the abstract objects \fIgraph\fR, \fInode\fR and \fIlink\fR are supported. The user interface will typically run as a separate process, so operations supported at this level will be accessed via remote procedure calls using a communications medium such as pipes or Unix 4.2BSD sockets. A network server process will be active on the machine that hosts the directory and on each machine that hosts nodes tha㌍ .NH .TC User Interface Overview .PP The user interface provides basic support for using the hypertext system for writing documentation such as technical reports, conference or journal articles, books or project documentation such as this specification. . The underlying hypertext system is somewhat generic; specializations for a particular design discipline (such as software engineering) can be built at the user interface level. .PP The second level, the Hypertext AbsOz P * 6n13/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R3"zan update operation which queries the hypertext machine to obtain the latest version of its contents.Lact objects \fIgraph\fR, \fInode\fR and \fIlink\fR are supported. The user interface will typically run as a separate process, so operations supported at this level will be accessed via remote procedure calls using a communications medium such as pipes or Unix 4.2BSD sockets. A network server process will be active on the machine that hosts the directory and on each machine that hosts nodes tha* .NH 2 .TC User Interface Paradigms )provides basic support for using the hypertext system for writing documentation such as technical reports, conference or journal articles, books or project documentation such as this specification. . The underlying hypertext system is somewhat generic; specializations for a particular design discipline (such as software engineering) can be built at the user interface level. .PP The second level, the Hypertext Absw  * 7n15/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R5"zry s * 6n14/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R4"zZ .NH 3 .TC Accessing Hypertext Graphs .PP When a hypertext graph is created via the CreateGraph operation a unique identification for this graph is established. Subsequent attempts to open this graph must use this identification. However, the identification is somewhat cryptic and difficult for a user to remember. Thus, we allow the user to give the graph a name. The name is actually the name of a file that will be used to store the identification and other per user preferences. The M .NH 3 .TC Static Views .PP The hypertext graph and the contents of nodes are viewed in display windows called \fIbrowsers\fR. These browsers contain a snapshot of their contents; there is no attempt to dynamically update the contents when it is affected by operations performed outside the browser. For example, if two windows are opened to the same node and the contents of one is edited, the changes are not reflected in the other. To compensate for this deficiency, all browsers have file can be renamed, moved or copied to other machines so that other users can gain access to the hypertext graph.YfIgraph\fR, \fInode\fR and \fIlink\fR are supported. The user interface will typically run as a separate process, so operations supported at this level will be accessed via remote procedure calls using a communications medium such as pipes or Unix 4.2BSD sockets. A network server process will be active on the machine that hosts the directory and on each machine that hosts nodes thav * 7n16/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R6"zQ R * 7n18/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R8"z .NH 3 .TC Invoking Commands .PP Operations are invoked using pop-up menus. Because there are a large number of operations associated with some contexts, a hierarchical pop-up menu is used.t use this identification. However, the identification is somewhat cryptic and difficult for a user to remember. Thus, we allow the user to give the graph a name. The name is actually the name of a file that will be used to store the identification and other per user preferences. The , .NH 3 .TC System Attributes .PP This user interface reserves several attributes for nodes and links. Our convention is that these system attribute names begin with `.' (pronounced `dot'). The attribute \fI.name\fR specifies the icon that will be used for a node when viewed in a graph browser; or the name that will be used for a link when viewed in a node browser. The attributes \fI.x\fR and \fI.y\fR are user by the graph browser to record the coordinates of a node. The attribute \fI * 7n17/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R7"z.type\fR is used to specify that the contents of a node is not text.+n access to the hypertext graph.YfIgraph\fR, \fInode\fR and \fIlink\fR are supported. The user interface will typically run as a separate process, so operations supported at this level will be accessed via remote procedure calls using a communications medium such as pipes or Unix 4.2BSD sockets. A network server process will be active on the machine that hosts the directory and on each machine that hosts nodes tha .NH 3 .TC Text Editing .PP All text editing is based on Smalltalk's paragraph editor. For a complete description of this editor see [Goldberg 84], especially chapter 3. used.t use this identification. However, the identification is somewhat cryptic and difficult for a user to remember. Thus, we allow the user to give the graph a name. The name is actually the name of a file that will be used to store the identification and other per user preferences. The   * 8n19/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R9"z .NH 3 .TC Error Reporting .PP There are several mechanisms used to alert the user about error conditions. For errors that occur during the execution of a hypertext operation, a notify window appears on the screen with an explanation of what went wrong. .PP When the user makes an error invoking a hypertext command from a pop-up window, the view flashes and an error message is sent to the Smalltalk System Transcript window. Note: if you do not have a system transcript window open (or plete design history including assumptions made, alternatives that were considered and explanations about why a particular solution was accepted or rejected. The system can be used to support actual product development allowing several engineers to work together on a joint project through a distributed network of Magnolia and 4404 workstations. .PP Hypertext is defined by Nelson as \fInon-sequential writing\fR [Nelson 81]; in a hypertext system a document consists of a collection of nodes that are connectcollapsed) when the error occurs the error message wil be accessable. In most cases, you can simply open the system transcript window and invoke the command again; the same error will probably occur.y run as a separate process, so operations supported at this level will be accessed via remote procedure calls using a communications medium such as pipes or Unix 4.2BSD sockets. A network server process will be active on the machine that hosts the directory and on each machine that hosts nodes thaed by directed links. Links can also be used to interconnect related portions of separate documents, to attach annotations or margin notes to a portion of a document and to associate multiple (or previous) versions of a document. Hypertext provides a uniform framework for managing design and requirements documents, programs (source code, symbol tables, object code), user manuals and other forms of documentation.rating system. On the 4404 the Hypertext Abstract Machine process is started up by   * n2/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R2"z  * n20/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R0"z㋌㋀ .NH .TC Introduction .PP Hypertext is a design information management system that provides a repository for all technical information associated with a project. Complete version histories are maintained for documentation such as requirements, specifications, designs, implementations, evaluations and tests. Related portions of separate documents can be interconnected, and annotations can be attached to portions of documents. The system provides a uniform framework for recording a com㌆ .NH 2 .TC Browsing Documents .PP There are two primary kinds of browsers used to view and modify hypertext documents. A \fIgraph browser\fR provides a diagrammatic view of a graph of nodes and links associated with a project; and a \fInode browser\fR views an individual node in a graph. Several other browsers are used including: attribute browsers, version browsers, node differences browsers and demon browsers. stem provides a uniform framework for recording a com    * n21/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R1"za designated ``root'' node, returning all nodes that satisfy the node visibility predicate, and returning all links traversed; each depth traversal stops when a designated ``depth'' is reached or when a node is reached that does not satisfy the node visibility predicate; links that do not satisfy the link visibility predicate are not traversed. .PP The graph browser can view either the current version of the hypertext graph or it can be used to view the graph as it existed at an earlier time. A specific ver1 .NH 3 .TC Graph Browsers .PP The graph browser shows a global view of the hypertext graph for a project. Each node is represented by an name; a default icon is used unless the node has a value for the attribute \fI.name\fR. If the value of \fI.name\fR is a string then the representation is the string enclosed in a box; (user designed names might be supported in future releases by allowing the value of the atttribute to be a Smalltalk form). Links are represented as arcs connecting nsion time is implicitly specified when a graph browser is opened via a node browser or a node versions browser. The ``version'' commands can be used to specify a version time for viewing a graph. When the graph is accessed using the query command, all nodes and links returned existed and satisfied the predicates at the version time. The traverse command works a little differently; in most cases traversing remains on a flat plane of time, however, if a link points to a specific version of a node (rather thanodes. (Note: when there are several links connecting two nodes, the links are displayed on top of each other, appearing as a single arc.) .PP The graph browser has three panes; the top pane contains the view of the graph, the bottom two panes contain text editors used to define visibility predicates on nodes and links which are based on the values of attributes. The grammar used to define these predicates is shown below. .PP The graph browser can be opened via a system command or via a pop-up menu command  the `current' version) then the traversal leaves the time plane returning the specific version of the node and continuing the depth traversal via the out-links of that version. .PP The functions available in a graph browser are described in the following sections.  a!02e0e #/d ".b./03f1fin the node browser and node versions browser. There are two strategies available for building the collection of nodes and links to be displayed. The simplest is the ``query'' command; this command displays all nodes that satisfy the node visibility predicate and all links that both satisfy the link visibility predicate and interconnect visible nodes. The other method is the ``traverse'' command; this performs a depth first traversal via out-links in the order of their position within the node, starting at   * n22/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R2"z r .DS L predicate \(-> expression expression \(-> negate expression \(-> (expression) \(-> term \(-> expression & expression \(-> expression | expression term \(-> attribute relop value \(-> 'true' \(-> 'false' relop \(-> '<' \(-> '>' \(-> '<=' \(-> '>=' \(-> '~=' \(-> '!=' \(-> '=' negate \(-> '~' \(-> '!' attribute \(-> ``string'' value \(-> integer | ``string'' | '*' .DE .LP `~' or `!' represents negation; '*' mntOut\fR\ \(em traverses the hypertext graph starting at the `root' and following its out-links to obtain the collection of nodes and links that satisfy the visibility predicates, and writes their contents to a file. .IP \fIfileOut\fR\ \(em similar to \fIprintOut\fR, writes the contents of a sub-graph to a file. Also annotates the contents with directives that allow the graph structure to be re-constructed using the hypertext utility program `mhtoh'. .IP \fIroot\fR\ \(em defines the selected node as the rooeans any value. Strings that start with an alpha character or `.' and contain only alphanumeric characters do not need surrounding quotes.qbrowser has three panes; the top pane contains the view of the graph, the bottom two panes contain text editors used to define visibility predicates on nodes and links which are based on the values of attributes. The grammar used to define these predicates is shown below. .PP The graph browser can be opened via a system command or via a pop-up menu command t of the graph. Root is used in the traverse, autoPosition, fileOut and printOut commands. .IP \fIdepth\fR\ \(em prompts for a specification of the maximum depth that is to be used during a traversal of the hypertext graph. The depth must be a non-negative number; the value 0 (zero) means unlimited. Depth is used in the traverse, fileOut and printOut commands. .IP \fIaccept\fR\ \(em record the positions of any nodes which have been repositioned. (Updates the values of the .x and .y system attributes based on o * n23/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R3"zn the current positions of the nodes in the visible sub-graph). .IP \fIbrowse-graph-demons\fR\ \(em opens a demon browser for the demons corresponding to the version of the graph. .IP \fIauto-position-nodes\fR\ \(em automatically selects positions for nodes in the visible subgraph. Starts at `root' and assumes the visible sub-graph is actually a tree.Hr can view either the current version of the hypertext graph or it can be used to view the graph as it existed at an earlier time. A specific verI .NH 4 .TC Graph Operations .IP \fIquery\fR\ \(em queries the hypertext graph to obtain the collection of nodes that satisfy the node visibility predicate and the links that interconnect those nodes and satisfy the link visibility predicate; and displays them. .IP \fItraverse\fR\ \(em traverses the hypertext graph starting at the current `root' and following its out-links to obtain the collection of nodes and links that satisfy the visibility predicates; and displays them. .IP \fIpri  * n24/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R4"z % b .NH 4 .TC Node Operations .IP \fIreposition-node\fR\ \(em changes the position of the selected node in the graph. .IP \fIcreate-node\fR\ \(em adds a new node to the graph. User is prompted for a name that will be used in the name for the node. .IP \fIdelete-node\fR\ \(em deletes the selected node and any links connected to it. Requires confirmation. .IP \fIbrowse-node\fR\ \(em opens a node browser for the selected node in the graph. .IP \fIbrowse-node-versions\fR\ \(em open a nodeode. .IP \fIbrowse-link-attributes\fR\ \(em open a link attribute browser for the selected link in the graph. .IP \fIstyle-sheet\fR\ \(em opens a link style sheet for viewing/editing parameters that affect the creation of new links.e graph. .IP \fIstyle-sheet\fR\ \(em opens a node style sheet for viewing/editing parameters that affect the creation of new nodes.abe re-constructed using the hypertext utility program `mhtoh'. .IP \fIroot\fR\ \(em defines the selected node as the roo versions browser for the selected node in the graph. .IP \fIbrowse-node-attributes\fR\ \(em open a node attribute browser for the selected node in the graph. .IP \fIbrowse-node-demons\fR\ \(em open a node demon browser for the selected node in the graph. .IP \fIstyle-sheet\fR\ \(em opens a node style sheet for viewing/editing parameters that affect the creation of new nodes.abe re-constructed using the hypertext utility program `mhtoh'. .IP \fIroot\fR\ \(em defines the selected node as the roo  * &n26/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R6"z  * &n25/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R5"z1, .NH 4 .TC Version Operations .IP \fIcurrent\fR\ \(em sets the version time of the graph browser so that the current version of the hypertext graph will be accessed. .IP \fIset\ time\fR\ \(em sets the version time of the graph browser so that the version of the hypertext graph that existed at the time specified in the time specifier window will be accessed. .IP \fIedit\ time\fR\ \(em opens a time specifier window that allows a specific version time to be established. n+& .NH 4 .TC Link Operations .IP \fIlink-to\fR\ \(em creates a link to the selected node. Prompts the user for the node which serves a source of the link. Prompts for the name of the link; provides an default name which is the name of the destination node. .IP \fIlink-from\fR\ \(em creates a link from the selected node. Prompts the user for the node which serves a destination of the link. Prompts for the name of the link; provides an default name which is the name of the destination n@ A * &n27/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R7"z O3 .NH 3 .TC Node Browsers .PP The node browser allows the contents of an individual node to be edited and supports navigation through links and the creation of new links. Within a node browser, links appear as names; if the attribute \fI.icon\fR is defined for the link its value will be used to compose the name, otherwise a default name is used. The node browser can be opened via a command in the graph browser, the node versions browser or via a link in another node browser. The follore useful for locating and retreiving link attachments before check-in. .IP \fIagain\fR\ \(em attempts to repeat the last replace, copy, or cut edits. .IP \fIundo\fR\ \(em reverses the effect of the last edit command. .IP \fIcopy\fR\ \(em places a copy of the selected text into a buffer. .IP \fIcut\fR\ \(em deletes the current text selection and places it in a buffer. .IP \fIpaste\fR\ \(em replace the current text selection with the text in the cut/copy buffer. .IP \fIaccept\fR\ \(em installs changes creatiwing functions are available in a node browser. e browser for the selected link in the graph. .IP \fIstyle-sheet\fR\ \(em opens a link style sheet for viewing/editing parameters that affect the creation of new links.e graph. .IP \fIstyle-sheet\fR\ \(em opens a node style sheet for viewing/editing parameters that affect the creation of new nodes.abe re-constructed using the hypertext utility program `mhtoh'. .IP \fIroot\fR\ \(em defines the selected node as the roong new version of node. .IP \fIcancel\fR\ \(em cancels changes recalling `current' version of node. .IP \fIupdate\fR\ \(em if the browser is intended to view the current version of the node the hypertext machine is queried again to make sure the display is accurate.ro) means unlimited. Depth is used in the traverse, fileOut and printOut commands. .IP \fIaccept\fR\ \(em record the positions of any nodes which have been repositioned. (Updates the values of the .x and .y system attributes based o  * 'n28/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R8"z_ ` * )n29/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R9"z<7 .NH 4 .TC Text Editing Commands .PP The node browser is based on Smalltalk's paragraph editor. The significant difference between the paragraph editor and the node browser editor is that the latter includes link attachment names in the text. Link attachments can be edited (copied/pasted/cut) as regular characters; except explicit delete/create operations are required when the contents of the node is accepted. The link commands nextInstance, nextUninstantiated and pasteMissingLinks aB=: .NH 4 .TC Node Operations .IP \fIdelete\fR\ \(em deletes this node. Prompts for confirmation. .IP \fIbrowse-node-versions\fR\ \(em opens node versions browser for this node. .IP \fIbrowse-node-attributes\fR\ \(em opens attribute browser for this node. .IP \fIbrowse-node-demons\fR\ \(em opens demon browser for this node. .IP \fIbrowse-via-link\fR\ \(em open a node browser for the node on the other end of the selected in/out-link of the graph. .IP \fIstyle-sheet\fR\ \(em opens a node  style sheet for viewing/editing parameters that affect the creation of new nodes.9tempts to repeat the last replace, copy, or cut edits. .IP \fIundo\fR\ \(em reverses the effect of the last edit command. .IP \fIcopy\fR\ \(em places a copy of the selected text into a buffer. .IP \fIcut\fR\ \(em deletes the current text selection and places it in a buffer. .IP \fIpaste\fR\ \(em replace the current text selection with the text in the cut/copy buffer. .IP \fIaccept\fR\ \(em installs changes creatiHC* .NH 4 .TC Link Operations .IP \fIsource\fR\ \(em the cursor position in this node is designated as the source of a yet to be defined link. .IP \fIdestination\fR\ \(em the cursor position in this node is designated as the destination of a yet to be defined link. .IP \fIcreate\fR\ \(em creates a new link from the current link-source to the current link-destination. Prompts for name to be used in the name for the new link. .IP \fIdelete\fR\ \(em deletes the selected link. May also be   * n3/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R3"zused to remove the current link-source or link-destination. Requires confirmation. .IP \fIbrowse-attributes\fR\ \(em opens a link attribute browser to view the attribute pairs for the selected link. .IP \fInext-instance\fR\ \(em moves the selection to the next instance of the selected link. Useful to locate multiple instances of link attachments created by copy/paste operations. .IP \fInext-Uninstantiated\fR\ \(em moves the selection to the next link attachment that is not yet instantiated. Useful to locat㋋㋇f .NH .TC References .IP [Delisle\ 85] Delisle, N. Converting Unix Files into Hypertext Graphs. CRL memo, available from author. .IP [Goldberg\ 84] Goldberg, A. Smalltalk-80: The Interactive Programming Environment. Addison-Wesley, Reading, Massachusetts, 1984. .IP [Nelson\ 81] Nelson, T. \fILiterary Machines\fR. T.H. Nelson, Swarthmore, PA., 1981.eser for the node on the other end of the selected in/out-link of the graph. .IP \fIstyle-sheet\fR\ \(em opens a nodee multiple instances of link attachments created by copy/paste operations across node browsers. .IP \fIpaste-missing-links\fR\ \(em pastes link attachments for all instances of links that are defined for the node but do not have attchment names in the text. Useful to retreive link attachments that were cut while editing.)Out and printOut commands. .IP \fIaccept\fR\ \(em record the positions of any nodes which have been repositioned. (Updates the values of the .x and .y system attributes based oO P * /n30/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R0"z  * /n31/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R1"z NI .NH 4 .TC Graph Operations .IP \fIbrowse-graph\fR\ \(em opens a graph browser rooted at this node. .IP \fIseparate\fR\ \(em creates a new node and a link from cursor position in this node to the zero'th cursor position in new node. The current selection is cut and accepted as contents of the new node. .IP \fIabsorb-link\fR\ \(em pastes the contents of the node on the other end of the selected link. Deletes the old node and its link, copies any links that were attached to the old nowser can be opened via a command in the graph browser and node browser. /s node to the zero'th cursor position in the new node. Attributes are defined for the new node and link to distinguish them as annotations.selection to the next instance of the selected link. Useful to locate multiple instances of link attachments created by copy/paste operations. .IP \fInext-Uninstantiated\fR\ \(em moves the selection to the next link attachment that is not yet instantiated. Useful to locatde. .IP \fIannotate\fR\ \(em creates a new node and a link from cursor position in this node to the zero'th cursor position in the new node. Attributes are defined for the new node and link to distinguish them as annotations.selection to the next instance of the selected link. Useful to locate multiple instances of link attachments created by copy/paste operations. .IP \fInext-Uninstantiated\fR\ \(em moves the selection to the next link attachment that is not yet instantiated. Useful to locatr s * /n33/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R3"zU V * /n32/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R2"z[VM .NH 4 .TC Versions Operations .IP \fIbrowse-node\fR\ \(em opens a node browser for the selected version time. If no selection then opens to current version. .IP \fIbrowse-differences\fR\ \(em opens a node differences browser comparing the current version of the node to the selected version. .IP \fIbrowse-node-attributes\fR\ \(em opens an attribute browser for the node for the selected version time. If no selection then opens to current version. .IP \fIbrowse-node-demons\fR\ \(em ope]Q0 .NH 3 .TC Node Versions Browsers .PP A Node Versions browser shows the changes that have occurred during the history of a node. This browser has two sections: one section lists the times when changes have been made to the contents of the node, the other section shows changes that have occured related to the node such as adding a link, or defining the value of an attribute. Any of these version items can be selected to open a view to that specific point in time. The node versions brons a demon browser for the node for the selected version time. If no selection then opens to current version. .IP \fIbrowse-graph\fR\ \(em opens a graph browser rooted at the node for the selected version time. If no selection then opens to current version. .IP \fIupdate\fR\ \(em the hypertext machine is queried again to make sure the display is accurate.Loperations. .IP \fInext-Uninstantiated\fR\ \(em moves the selection to the next link attachment that is not yet instantiated. Useful to locat .  * 4n34/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R4"z.IP \fIbrowse-via-link\fR\ \(em opens a node browser for the node on the other side of the selected link. .IP \fIbrowse-link-attributes\fR\ \(em opens a link attribute browser for the selected link. .IP \fIlink-align\fR\ \(em scrolls the opposite pane so that the selected link is aligned with its corresponding link in thew other version of the node (if it exists). .IP \fIalign\fR\ \(em scrolls the opposite pane so that line containing the cursor is aligned with its corresponding line in the other version ofj^ .NH 3 .TC Node Differences Browser .PP The node differences browser is used to show the changes between two versions of a node. The window consists of two node browsers arranged side-by-side. Differences in the contents of the two nodes is highlighted within each view. As either of the node view panes are scrolled; the opposite node view is also scrolled to align corresponding lines of text. election then opens to current version. .IP \fIbrowse-node-demons\fR\ \(em ope the node. .IP \fIscroll-mode-aligned\fR\ \(em sets the scroll mode so that the top line of each view is aligned each time the pane is scrolled. .IP \fIscroll-mode-not-aligned\fR\ \(em sets the scroll mode so that scrolling this view does not affect the opposite view.attachments that were cut while editing.)Out and printOut commands. .IP \fIaccept\fR\ \(em record the positions of any nodes which have been repositioned. (Updates the values of the .x and .y system attributes based o-  * 4n35/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R5"z,  * 5n36/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R6"zic .NH 4 .TC Node Differences Operations .IP \fIcopy\fR\ \(em places a copy of the selected text into a buffer. .IP \fIbrowse-graph\fR\ \(em opens a graph browser rooted at the node for the version time of the node. .IP \fIbrowse-node-attributes\fR\ \(em opens an attribute browser for the node for its version time. .IP \fIbrowse-node-demons\fR\ \(em opens a demon browser for the node for its version time. .IP \fIbrowse-node-versions\fR\ \(em opens a node versions browser for the node. yk .NH 3 .TC Attribute Browser .PP Attribute browsers are available for nodes and links. The browser shows the value of all attributes defined for a specific version of the node or link. The attribute browser for a node can be opened via a command in the graph browser, node browser and node versions browser. The attribute browser for a link can be opened via a command in the graph browser and node browser. .PP Certain attributes names are reserved by the hypertext system and are used i n the user interface. The names of these system attributes begin with a `.'. Normally, these attributes are hidden from view in the attribute browser. However, commands (show-system-attributes, hide-system-attributes) are available for overriding this default. nk is aligned with its corresponding link in thew other version of the node (if it exists). .IP \fIalign\fR\ \(em scrolls the opposite pane so that line containing the cursor is aligned with its corresponding line in the other version of so that system attributes (those whose names begin with a `.') are not displayed. This is the default mode when browser is opened. .IP \fIupdate\fR\ \(em if the browser is intended to view the current version of the attributes, the hypertext machine is queried again to make sure the display is accurate.g.)Out and printOut commands. .IP \fIaccept\fR\ \(em record the positions of any nodes which have been repositioned. (Updates the values of the .x and .y system attributes based o?+ @ * 5n37/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R7"z)  *  n38/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R8"zxr .NH 4 .TC Attribute Operations .IP \fItext-editing-operations\fR\ \(em for editing the value of the attribute. As in the Smalltalk paragraph editor. \fIAccept\fR checks-in a new attribute value. .IP \fIadd-attribute\fR\ \(em used to define a value for an attribute that already exists in the hypertext graph. Displays the list of attributes currently defined; user can select one of these to define a new attribute value for the node/link. Note: system attributes are not included on t㌅z .NH 3 .TC Demon Browser .PP Demon browsers are available for nodes and graph itself. The browser shows a specific version of the value of demons for each event monitored by the node or graph. The demon browser for a graph can be opened via a command in the graph browser. The demon browser for a node can be opened via a command in the graph browser, node browser and node versions browser. w attribute value for the node/link. Note: system attributes are not included on the list if the `hide-system-attributes' mode is in effect. .IP \fIcreate-attribute\fR\ \(em used to define a new attribute in the hypertext graph and define a value for that attribute for the node/link. Prompts for attribute name. .IP \fIdelete-attribute\fR\ \(em deletes an attribute/value pair. .IP \fIshow-system-attributes\fR\ \(em sets the browser display mode so that system attributes (those whose names begin with a `.') are displayed. .IP \fIhide-system-attributes\fR\ \(em sets the browser display mode#  * n39/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R9"z ㌄b .NH 4 .TC Demon Operations .IP \fItext-editing-operations\fR\ \(em for editing the value of the demon. As in the Smalltalk paragraph editor. \fIAccept\fR checks-in a new demon value. .IP \fIupdate\fR\ \(em if the browser is intended to view the current version of the demons, the hypertext machine is queried again to make sure the display is accurate.a node versions browser. w attribute value for the node/link. Note: system attributes are not included on t㌌㌇ .NH 2 .TC System Commands .PP This section contains miscellaneous commands that are not accessed through a browser. These commands are currently supported in the Hypertext Workspace and can be invoked in any Smalltalk workspace. .IP \fIHyperRPC\ finishUp\fR\ \(em terminates execution of the hypertext abstract machine process, closes communications channels, and closes all hypertext windows. .IP \fIaHyperGraph\ \(<-\ HyperGraph\ create:\ 'fileName'\fR\ \(em creates a new hypertext grE * n4/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R4"zaph. ``fileName'' can be used for subsequent access to this graph. .IP \fIaHyperGraph\ \(<-\ HyperGraph\ open:\ 'fileName'\fR\ \(em opens an existing hypertext graph named ``fileName''. .IP \fIGraph\ openOn:\ aHyperGraph\fR\ \(em opens a graph browser.letes an attribute/value pair. .IP \fIshow-system-attributes\fR\ \(em sets the browser display mode so that system attributes (those whose names begin with a `.') are displayed. .IP \fIhide-system-attributes\fR\ \(em sets the browser display mode㋍ .NH .TC Hypertext System Overview .PP This section summarizes the functional requirements of the hypertext system. The intention is to provide an overview and quick reference. e\fR\ \(em if the browser is intended to view the current version of the demons, the hypertext machine is queried again to make sure the display is accurate.a node versions browser. w attribute value for the node/link. Note: system attributes are not included on tU  V * n41/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R1"z "  * n40/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R0"z㌎0 .NH .TC Hypertext Operations .PP This section describes the functions of the hypertext system and how each of these functions can be invoked. The previous section also described the functions of the hypertext system, but it was organized by browser type. This section is organized by function type. /e process, closes communications channels, and closes all hypertext windows. .IP \fIaHyperGraph\ \(<-\ HyperGraph\ create:\ 'fileName'\fR\ \(em creates a new hypertext gr E F * n42/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R2"zhine to allow access to the new graph by other project members. .PP Hypertext graphs can also be created using the tools `mstomh' and `mhtoh'. These tools convert an existing document in to hypertext form. See [Delisle 85x] for the details on using these tools.attribute/value pair. .IP \fIshow-system-attributes\fR\ \(em sets the browser display mode so that system attributes (those whose names begin with a `.') are displayed. .IP \fIhide-system-attributes\fR\ \(em sets the browser display mode㌯㌔ .NH 2 .TC Graph Operations  describes the functions of the hypertext system and how each of these functions can be invoked. The previous section also described the functions of the hypertext system, but it was organized by browser type. This section is organized by function type. /e process, closes communications channels, and closes all hypertext windows. .IP \fIaHyperGraph\ \(<-\ HyperGraph\ create:\ 'fileName'\fR\ \(em creates a new hypertext gr  * n44/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R4"z  * n43/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R3"z㌠㌜ .NH 3 .TC Accessing Graphs .PP An existing hypertext graph can be accessed by executing the command: .DS hyperGraph \(<- open: ''. .DE .LP This command opens a graph using the information contained in the file . This file was created when the graph was created. Typically, after the graph is opened a graph browser is opened by executing a command of the form: .DS Graph openOn: hyperGraph - or - Graph openOn: hyperGraph nodePredicate: '' linkPredicate㌛㌗ .NH 3 .TC Creating Graphs .PP A hypertext graph may be created by executing the command: .DS hyperGraph \(<- HyperGraph create: ''. .DE .LP A graph style form editor appears on the display requesting the name of the host machine, host unix directory and read/write protections for the new graph. Also a file named is created in the current unix home directory. This file is used to access the graph; it can be moved or copied; and it can be copied to other mac: '' .DEnew graph by other project members. .PP Hypertext graphs can also be created using the tools `mstomh' and `mhtoh'. These tools convert an existing document in to hypertext form. See [Delisle 85x] for the details on using these tools.attribute/value pair. .IP \fIshow-system-attributes\fR\ \(em sets the browser display mode so that system attributes (those whose names begin with a `.') are displayed. .IP \fIhide-system-attributes\fR\ \(em sets the browser display mode` a * n45/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R5"z4 5 * n47/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R7"z㌤㌠; .NH 3 .TC Destroying Graphs .PP An existing hypertext graph can be destroyed by executing a command of the form: .DS HyperGraph destroy: '' .DE .LP This command prompts for confirmation and if positive proceeds to delete all the unix files used to store the hypertext graph specified by .:raph browser is opened by executing a command of the form: .DS Graph openOn: hyperGraph - or - Graph openOn: hyperGraph nodePredicate: '' linkPredicate㌮㌪ .NH 3 .TC Browsing Old Versions .PP The hypertext system not only keeps a history of changes to the contents of a node, but it also keeps a complete history of when links and nodes were added or deleted. Old versions of the graph or portions of the graph can be viewed using the graph browser. .PP An old version of the graph can be accessed indirectly by an old version of a node or directly be specifying a particular version time. A version time can be specfied using a Time Specifier * n46/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R6"z window. This window allows a time and date to be entered. The time or date fields can be edited directly and there are buttons for incrementing or decrementing by units such as one month, day or hour. The Time Specifier window can be accessed via a pop-up menu command within the Graph Browser.system-attributes\fR\ \(em sets the browser display mode so that system attributes (those whose names begin with a `.') are displayed. .IP \fIhide-system-attributes\fR\ \(em sets the browser display mode㌩㌥ .NH 3 .TC Defining Graph Demons .PP Demons for a graph can be defined using an demon browser. This browser can be open for a particular graph from within the graph browser by executing the \fIgraph/demons\fR command.ete all the unix files used to store the hypertext graph specified by .:raph browser is opened by executing a command of the form: .DS Graph openOn: hyperGraph - or - Graph openOn: hyperGraph nodePredicate: '' linkPredicateD E * n48/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R8"z㌰ .NH 2 .TC Node Operations rtext system not only keeps a history of changes to the contents of a node, but it also keeps a complete history of when links and nodes were added or deleted. Old versions of the graph or portions of the graph can be viewed using the graph browser. .PP An old version of the graph can be accessed indirectly by an old version of a node or directly be specifying a particular version time. A version time can be specfied using a Time Specifierstyle form editor. This editor can be accessed from the graph browser or the node browser using the \fInodes/styleSheet\fR command. The parameters include the unix host directory where the new node will be stored; read/write protections for the node and whether the a complete change history should be kept for the node. The parameters in the styleSheet can be edited to change the parameters for one or more nodes about to be created; and they can be stored in the project file for later use.sed o  * n49/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R9"zS T * n5/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R5"z㌸㌴ .NH 3 .TC Creating Nodes .PP Commands for creating a new node are available in the graph browser and the node browser. In the graph browser the pop-up menu command \fInodes/create\fR will first prompt for a position in the graph and for a name for the new node. .PP In the node browser a new node cannot be created directly, but a new node/link pair can be created using the \fIgraph/separate\fR or \fIgraph/annotate\fR commands. The graph/separate command first prompts for a name for t㋡㋛. .NH 2 .TC Hypertext Terminology .PP The hypertext system supports the notion of a collection of \fInodes\fR connected by \fIlinks\fR (edges in abstract graph terminology) which make up a \fIgraph\fR. The graph represents the entire documentation of a project with the information contained in the nodes. The structure of the graph (and some additional information) is represented by a \fIdirectory\fR. Each node is either an \fIarchive\fR or a \fIfile\fR; an archive contains a complete he new node and link and then creates a new node and a link from the current cursor position in an old node to the new node; if the current selection is not empty it is cut from the old node and pasted into the new node. The \fIgraph/annotate\fR command creates a new node and a link from the current cursor position to the new node. .PP Whenever new nodes are created certain creation parameters are used. These parameters are initially defined when a hypertext graph is created and may be altered using a node version history for the node, a file retains only the current version.-position in an old node to the new node; if the current selection is not empty it is cut from the old node and pasted into the new node. The \fIgraph/annotate\fR command creates a new node and a link from the current cursor position to the new node. .PP Whenever new nodes are created certain creation parameters are used. These parameters are initially defined when a hypertext graph is created and may be altered using a node   * n50/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R0"z㌾ .NH 3 .TC Deleting Nodes .PP A Node can be deleted from within the graph browser or within a Node Browser. In the Graph Browser, select the desired node and execute the \fInodes/delete\fR pop-up menu command. In the Node Browser, execute the \fInode/delete\fR pop-up menu command. The node and all its interconnecting links will be deleted. Both versions of the command prompt for confirmation.andom access to any node defined in the hypertext graph. The node and link pred㌽㌹ .NH 3 .TC Accessing Nodes .PP The simplest method for accessing a node is by traversing a link from within a node browser. Simply select the link attachment name by sweeping over it with the left mouse button depressed and then invoke the \fInode/browse via link\fR pop-up menu command. .PP This method is only useful if you happen to have the right node browser open. The graph browser can be used to gain random access to any node defined in the hypertext graph. The node and link pred  * n52/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R2"zicates can be used to access the desired portion of the graph and then any node in the graph browser can be selected and then viewed by executung the nodes/browse pop-up menu command. .PP If a complete version history is being maintained for the node old versions can be accessed via the Node Versions Browser. This window can be opened from the graph browser using the \fInodes/versions\fR pop-up menu command or in the node browser using the \fInode/versions\fR pop-up menu command. using a node  .NH 3 .TC Defining Node Attributes .PP Attributes for a node can be defined using an attribute browser. This browser can be open for a particular node from within the node browser by executing the \fInode/attributes\fR command; within the graph browser by executing the \fInodes/attributes\fR command; or within the node versions browser by executing the \fIbrowse-attributes\fR commandandom access to any node defined in the hypertext graph. The node and link pred  * n51/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R1"z  * -n53/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R3"zk .NH 3 .TC Defining Node Demons .PP Demons for a node can be defined using an demon browser. This browser can be open for a particular node from within the node browser by executing the \fInode/demons\fR command; within the graph browser by executing the \fInodes/demons\fR command; or within the node versions browser by executing the \fIbrowse-demons\fR commandjfR commandandom access to any node defined in the hypertext graph. The node and link pred$ .NH 3 .TC Creating Links .PP Links can be created between two existing nodes within either the graph browser or in node browsers. Links created within the graph browser are initially attached to the first character position of both the source and destination node. The pop-up menu command \fIlinks/linkTo\fR uses the selected node as a destination and prompts for a source node. The pop-up menu command \fIlinks/linkFrom\fR uses the selected node as a source and prompts for a destinatioB C * 3n54/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R4"zn node. .PP Within a node browser the source and destination points are each specified before the link is actually created. To specify a link source (destination) position the cursor at the desired character position within the text of the source (destination) node and execute the \fIink/source\fR (\fIlink/destination\fR) pop-up menu command. When both source and destination are specified then select either the source or destination attachment name and invoke the \fIlink/create\fR pop-up menu command. .PP W .NH 2 .TC Link Operations for a node can be defined using an demon browser. This browser can be open for a particular node from within the node browser by executing the \fInode/demons\fR command; within the graph browser by executing the \fInodes/demons\fR command; or within the node versions browser by executing the \fIbrowse-demons\fR commandjfR commandandom access to any node defined in the hypertext graph. The node and link predhenever new links are created certain creation parameters are used. These parameters are initially defined when a hypertext graph is created and may be altered using a link style form editor. This editor can be accessed from the graph browser or the node browser using the links/styleSheet command. The parameters include whether the source or destination of the link should be attached to a specific version of a node or whether the attachment should always refer to the current version. Note: if the link sourcI  J * 3n55/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R5"ze or destination is attached to a non-current version of a node then creation parameters are ignored and attachemnt is to the specific version. The parameters in the styleSheet can be edited to change the parameters for one or more nodes about to be created; and they can be stored in the project file for later use.#aph is actually a tree.Hr can view either the current version of the hypertext graph or it can be used to view the graph as it existed at an earlier time. A specific ver( ) * 4n56/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R6"z  * 4n58/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R8"z .NH 3 .TC Deleting Links .PP A link can be deleted only in a node browser. Open a node browser for either the source or destination of the link. Select the link name and invoke the \fIlink/delete\fR pop-up menu command. This command prompts for confirmation.-up menu command \fIlinks/linkTo\fR uses the selected node as a destination and prompts for a source node. The pop-up menu command \fIlinks/linkFrom\fR uses the selected node as a source and prompts for a destinatio .NH 2 .TC Making Hardcopies .PP In order to extract the contents of a hypertext graph for printing on a printer, the graph must be linearized and copied into a file. The file can then be processed by a document formatter or simply printed. .PP The graph browser contains a command \fIgraph/printOut\fR that linearizes the graph and extracts it contents in a file. This command uses the visibility predicates and begins at the `root' node traversing each out link in order as long as the J K * 4n57/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R7"zpredicates are satisfied. The graph can contain cycles, but it is usually useful to define attribute values on cross links to exclude them during linearization. This command prompts for the name of the file.in the text of the source (destination) node and execute the \fIink/source\fR (\fIlink/destination\fR) pop-up menu command. When both source and destination are specified then select either the source or destination attachment name and invoke the \fIlink/create\fR pop-up menu command. .PP W% .NH 3 .TC Defining Link Attributes .PP Attributes for a link can be defined using an attribute browser. This browser can be open for a particular link from within the node browser by selecting the source or destination of the desired link and then executing the \fIlink/attributes\fR command.$R uses the selected node as a destination and prompts for a source node. The pop-up menu command \fIlinks/linkFrom\fR uses the selected node as a source and prompts for a destinatioY Z * 5n59/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R9"z4 .NH 2 .TC Hints on Writing Documents .PP In this section we'd like to suggest some ways to use attributes to help organize documents and portions of large documents. Also, point out some commands that make it easier to manipulate hierarchical structures (cutting and pasting links, separate/absorb command).3 graph and extracts it contents in a file. This command uses the visibility predicates and begins at the `root' node traversing each out link in order as long as the  .NH .TC Hypertext Demo Script .PP The demo of the hypertext system involves browsing and modifying the document you are reading. This document was written using the hypertext system. Nodes and links are used to exploit its hierarchical structure of nested sections and sub-sections. Links are also used to record cross references within the document; making it easier to keep related parts of the document consistent when changes are made. .PP To start the demo activate the `Hypertext WJ  * n6/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R6"zorkspace' window. Its contents are shown below. .DS "Creating and opening Hypertext graphs" aHyperGraph _ HyperGraph create: 'foo' aHyperGraph _ HyperGraph open: 'demo'. Graph openOn: aHyperGraph nodePredicate: '*' linkPredicate: '".type" ~= *'. "Terminating execution of Hypertext Machine process" HyperRPC finishUp. "Emergency utilities" HyperRPC cleanUp. "needed only if hypertext machine process crashes" .DE .PP Open the hypertext graph used in the demo by invoking the command ``\fIaHyperGraph _ HyperGra㋩㋣ .NH 2 .TC Editing Contents of Nodes .PP The contents of nodes are checked-out for editing. This approach allows the use of existing text editors. When an edit session is ``complete,'' the node can be checked-in creating a new version. The check-in operation includes a time-stamp check which verifies that the version being checked-in was derived from the current version stored in the archive.and begins at the `root' node traversing each out link in order as long as the ph open: 'demo'.\fR'' by selecting the corresponding text in the workspace and invoking the ``\fIdoit\fR'' command. (All workspace commands are invoked in this manner.) This commands starts up the hypertext abstract machine process (on the 4404 only; on Magnolias you must type the unix command `hyperLocal' outside of Smalltalk to start up the hypertext abstract machine process) and establishes pipes for interprocess communication. Next open a graph browser to view the document graphically by invoking the c  * n60/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R0"zommand ``\fIGraph openOn: aHyperGraph nodePredicate: '*' linkPredicate: '".type" ~= *'.\fR''. The familiar Smalltalk prompts will appear to allow you to specify the size of the window for the graph browser. I recommend a fairly large window \(em about half the size of the of the virtual screen. .PP Within the upper pane of the graph browser invoke the ``\fIgraph/traverse\fR'' command from the middle button pop-up menu. (Note: this menu and several others used by the hypertext system are hierarchical. When for some menu items are selected a secondary pop-up menu appears to the right. The command selection is completed by moving the mouse to the right and selecting within the secondary menu.) After a few seconds a graphical view of the document will appear. Narration: ``The graph browser shows a pictoral view of a hypertext graph. Nodes appear as boxes containing text and links are shown as arrows. In this demonstration the hypertext graph contains a single document. Nodes contain the text for sections and sun the node browser using the left menu button (position the mouse, depress the left button, holding the button down sweep it over the name, and lift the left button). Invoke the ``\fInode/browse via link\fR'' command from the middle button pop-up menu. Narration: ``Within the node browser links appear as names. A link can be selected and traversed to view the contents of the node on the other side of the link.'' The Smalltalk window framing prompts will appear allowing the new node browser to be framed. Narb-sections of the document. Links are used to structure the document as a hierarchy of sections and sub-sections; links are also used the record relationships between parts of the document.''  graph browser are described in the following sections.  a!02e0e #/d ".b./03f1fation: ``The other end of the link appears selected and scrolled into view in the new node browser''. Close the new node browser by invoking the ``\fIclose\fR'' command from the right button pop-up menu. .PP Activate the node browser for `Introduction' again by moving the mouse and clicking the left button. Make a small editing change to the text of the node (suggestion: change capitalization or add a noise word). Check-in the edited contents by invoking the ``\fIaccept\fR'' command on the middle button pop  * n61/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R1"z-up menu. Narration: ``The contents of a node is edited using Smalltalk's text editing commands. As modifications are made to the contents of a node or other parts of the hypertext graph, a complete version history is maintained by the hypertext system. The history of updates to a node can be accessed via a node versions browser.'' Invoking the ``\fInode/versions\fR'' command on the middle button pop-up menu and frame the node versions browser. by the hypertext system are hierarchical. When  .NH 2 .TC Node Browser Demo .PP Within the upper pane of the graph browser select the node labeled `Introduction' by pointing with the mouse and clicking the left button. Invoke the ``\fInode/browse\fR'' command from the middle button pop-up menu. Narration: ``The contents of a node can be viewed by selecting the desired node, and then opening a node browser.'' The Smalltalk window framing prompts will appear allowing the node browser to be framed. .PP Select any of the link names i_ ` * n62/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R2"z: .NH 2 .TC Node Versions Browser Demo .PP Narration: ``The Node Versions browser shows the changes that have occurred during the history of a node. This browser has two sections: one section lists the times when changes have been made to the contents of the node, the other section shows changes that have occured related to the node such as adding a link, or defining the value of an attribute. Any of these version items can be selected to open a view to that specific point in time. Thtime of the change we just made to the node appears at the top of the list in the left pane.'' .PP Select the version time second from the top (the version just before our change) in the left pane and invoke the ``\fIbrowse differences\fR'' command, and then frame the node differences browser (it should be framed fairly wide).9 view the contents of the node on the other side of the link.'' The Smalltalk window framing prompts will appear allowing the new node browser to be framed. Nare version time of the change we just made to the node appears at the top of the list in the left pane.'' .PP Select the version time second from the top (the version just before our change) in the left pane and invoke the ``\fIbrowse differences\fR'' command, and then frame the node differences browser (it should be framed fairly wide).9 view the contents of the node on the other side of the link.'' The Smalltalk window framing prompts will appear allowing the new node browser to be framed. Nar  * n7/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R7"z   * n63/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R3"z㋰㋩Z .NH 2 .TC Version Archives .PP The archive, used to store the contents of a node, is a linear time ordered sequence of versions. A reverse delta is used to capture differences between versions with minimal storage overhead. A particular version can be accessed using a \fIversionTime\fR. If the versionTime is 0 then the current version is used.Y and showing the emphasis on the text you just edited. .PP Close the Node Differences Browser and the Node Versions Browser.  .NH 2 .TC Node Differences Browser Demo .PP Narration: ``The node differences browser is used to show the changes between two versions of a node. The differences are highlighted. As either of the node view panes are scrolled; the opposite node view is also scrolled to align corresponding lines of text.'' Scroll through the text of the node showing alignment and showing the emphasis on the text you just edited. .PP Close the Node Differences Browser and the Node Versions Browser.  * n8/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R8"z㋸㋲h .NH 2 .TC Ownership Protections .PP Nodes have ownership protections that are very similar to Unix's notion of ownership. The ownership allows read, write and `execute' priviliges for the owner, a group of users or all users. Ownership data is specified when a node is created and an operation is available to modify ownership. Ownership data is not archived.ghe emphasis on the text you just edited. .PP Close the Node Differences Browser and the Node Versions Browser.ZW ? @ * 5-/usr/hyper/hyperhUolAq/c1/d1/usr/hyper/hyperhUolAq/c1n9, n9  * /n9/usr/hyper/hyperhUolAq/c1Ӭ@Ӽ/Dp4R ,@/Dp , @..HH4R8@@R9"zP~ Q * 5+n0/usr/hyper/hyperhUolAq/c1/d1, Ӭ@Ӽ/Dp, R@3@@@R0"z㋿㋹ .NH 2 .TC Attribute/Value Pairs .PP The hypertext system allows attribute/value pairs to be associated with each node and also each link. An attribute is a character string and a value is either a character string or an integer. Operations are provided to query or traverse the graph subject to a boolean expression composed from attribute/value pairs. Changes to attribute/value data are archived, if the attribute is associated with a node that is an archive or a link attached to two  + .NH 2 .TC Attribute Browser Demo .PP Reactivate the node browser for `Introduction' using the left button of the mouse, and frame the Attribute Browser window. Invoke the ``\fInode/attributes\fR'' command using the middle button pop-up menu within the node browser. Narration: ``The hypertext system allows attribute/value pairs to be associated with each node and link. Here we're opening a browser that views the attribute pairs defined for this node. Each attribute is a character sarchives.hange we just made to the node appears at the top of the list in the left pane.'' .PP Select the version time second from the top (the version just before our change) in the left pane and invoke the ``\fIbrowse differences\fR'' command, and then frame the node differences browser (it should be framed fairly wide).9 view the contents of the node on the other side of the link.'' The Smalltalk window framing prompts will appear allowing the new node browser to be framed. Nartring; its value is a character string or an integer. Some attributes are used by the system: `.name' specifies the name for the node or link; `.x' and `.y' record coordinates used by the graph browser. Additional attributes can be defined by the user.'' Close the Attribute browser window and reactivate the graph browser.*.9 view the contents of the node on the other side of the link.'' The Smalltalk window framing prompts will appear allowing the new node browser to be framed. Nar^ _ * 5,n1/usr/hyper/hyperhUolAq/c1/d1, Ӭ@Ӽ/Dp, R@3@@@R1"z_ _ * 5,/usr/hyper/hyperhUolAq/c1/d1/n1/usr/hyper/hyperhUolAq/c1/d1n1n1'9.x@֔b^9 .NH 2 .TC Graph Browser Demo .PP Reactivate the graph browser that was opened at the beginning of the demo by clicking the left button of the mouse. Click the left button in the text pane opposite the heading ``Nodes:'' toward the bottom of thegraph browser window. Type in the expression: `"partOf" = "demo"'. Narration: ``Attributes can be used to extract a portion of the graph. Expressions involving attribute names and values can be typed in the sub-windows at the bottom of the grtring; its value is a character string or an integer. Some attributes are used by the system: `.icon' specifies the name for the node or link; `.x' and `.y' record coordinates used by the graph browser. Additional attributes can be defined by the user.'' Close the Attribute browser window and reactivate the graph browser.*.9 view the contents of the node on the other side of the link.'' The Smalltalk window framing prompts will appear allowing the new node browser to be framed. Naraph browser. The attribute expressions are used as visibility predicates; only those nodes (or links) that satisfy the predicate will be shown.'' .PP In the top pane of the graph browser invoke the ``\fIgraph/query\fR'' command on the middle button pop-up menu. In a few seconds a new graph will appear. Narration: "Here we've used the attributes to extract a single section of the document." .PP This concludes the demo. To clean-up and get ready for the next demo do the following: .IP [1] Within the Hypertex^I _ (n1/usr/hyper/hyperhUh27q/c1/d1, Ӭ@Ӽ/Dp, R@3@@@R1"zt Workspace window invoke the command \fIHyperRPC open quit.\fR by selecting the corresponding text and invoking the middle button pop-up menu command \fIdoit\fR. This terminates the execution of the hypertext abstract machine and closes the communication pipes. .IP [2] Close all hypertext windows except the Hypertext Workspace window.8 the node (suggestion: change capitalization or add a noise word). Check-in the edited contents by invoking the ``\fIaccept\fR'' command on the middle button pop9 .NH 2 .TC Graph Browser Demo .PP Reactivate the graph browser that was opened at the beginning of the demo by clicking the left button of the mouse. Click the left button in the text pane opposite the heading ``Nodes:'' toward the bottom of thegraph browser window. Type in the expression: `"partOf" = "demo"'. Narration: ``Attributes can be used to extract a portion of the graph. Expressions involving attribute names and values can be typed in the sub-windows at the bottom of the graph browser. The attribute expressions are used as visibility predicates; only those nodes (or links) that satisfy the predicate will be shown.'' .PP In the top pane of the graph browser invoke the ``\fIgraph/query\fR'' command on the middle button pop-up menu. In a few seconds a new graph will appear. Narration: "Here we've used the attributes to extract a single section of the document." .PP This concludes the demo. To clean-up and get ready for the next demo do the following: .IP [1] Within the Hypertex_  _ hyperhTnZ-q/c1/d1/n1hyperhTnZ-q/c1/d1n1n139.քL֠b^Ӑt Workspace window invoke the command \fIHyperRPC open quit.\fR by selecting the corresponding text and invoking the middle button pop-up menu command \fIdoit\fR. This terminates the execution of the hypertext abstract machine and closes the communication pipes. .IP [2] Close all hypertext windows except the Hypertext Workspace window.8 the node (suggestion: change capitalization or add a noise word). Check-in the edited contents by invoking the ``\fIaccept\fR'' command on the middle button pop5yNHH Attribute/Value Pairs The hypertext system allows attribute/value pairs to be associated with each node and also each link. An attribute is a character string and a value is either a character string or an integer. Operations are provided to query or traverse the graph subject to a boolean expression composed from attribute/value pairs. Changes to attribute/value data are archived, if the attribute is associated with a node that is an archive or a link attached to two arc_I _ (/usr/hyper/hyperhUh27q/c1/d1/n1/usr/hyper/hyperhUh27q/c1/d1n1n1'9.x@֔b^hives..NH 2 .TC Attribute/Value Pairs .PP The hypertext system allows attribute/value pairs to be associated with each node and also each link. An attribute is a character string and a value is either a character string or an integer. Operations are provided to query or traverse the graph subject to a boolean expression composed from attribute/value pairs. Changes to attribute/value data are archived, if the attribute is associated with a node that is an archive or a link attached to two art Workspace window invoke the command \fIHyperRPC open quit.\fR by selecting the corresponding text and invoking the middle button pop-up menu command \fIdoit\fR. This terminates the execution of the hypertext abstract machine and closes the communication pipes. .IP [2] Close all hypertext windows except the Hypertext Workspace window.8 the node (suggestion: change capitalization or add a noise word). Check-in the edited contents by invoking the ``\fIaccept\fR'' command on the middle button popchives.g' [Nelson 81] ; in a hypertext system a document consists of a collection of nodes thatare connected by directed links. Links can also be used to interconnect related portions of separate documents, to attach annotations or margin notes to a portion of a document and to associate multiple (or previous) versions of a document. Hypertext provides a uniform framework for managing design and requirements documents, programs (source code, symbol tables, object code), user manuals and other9' :07biacLX2Aaumaaaak/usr/hyperSSS4/DdSTTT4/DdT, 44D/DdUdV`4@Rk"z6[NHH> System Architecture The hypertext system consists of two major levels. The top level is the user interface. It is our intension that different user interfaces can be used; the interface provided for this demo is intended to be useful for writing documents. The underlying hypertext system is somewhat generic; specializations for a particular design discipline (such as software engineering) can be built at the user interface level. The second level, the Hypertext Abstract6NHH Demons The hypertext system allows a demon to be associated with a graph or an individual node. The demon specifies an action that is performed when an event such as modifying a node, or adding a node is performed. The demon is a character string that is passed to a unix shell for execution when the event occurs. The demon is executed on the machine that serves as storage host for its corresponding graph or node. Changes to demon values are archived, if the demon is assoc Machine (HAM), defines the operations available to users of the interface subsystems. At this level the abstract objects `graph', `node' and `link' are supported. The user interface will typically run as a separate process, so operations supported at this level will be accessed via remote procedure calls using a communications medium such as pipes or Unix 4.2BSD sockets. A network server process will be active on the machine that hosts the directory and on each machine that hosts nodes that are being accesiated with a graph or with a node that is an archive..NH 2 .TC Demons .PP The hypertext system allows a demon to be associated with a graph or an individual node. The demon specifies an action that is performed when an event such as modifying a node, or adding a node is performed.  to a boolean expression composed from attribute/value pairs. Changes to attribute/value data are archived, if the attribute is associated with a node that is an archive or a link attached to two arsed. Because the 4404 does not yet support network communications, all hypertext graphs are located on the local machine. In CRL's initial prototype of the hypertext system the Hypertext Abstract Machine is implemented in the programming language C; and the user interface is implemented in Smalltalk-80. These subsystems runs as a separate process on Magnolia under Unix or on the 4404 under the Uniflex operating system. On the 4404 the Hypertext Abstract Machine process is started up by Smalltalk (via a vf& 0biacLX2Aaumaaaal/usr/hyperSSS4/DdSTTT4/DdT, 44D/DdUdV`4@Rl"zork/exec system calls) and communication between the two processes is via pipes. Because the smalltalk interpreter on the Magnolia does not support the vfork/exec system calls, the Hypertext Abstract Machine process must be started up manually by the user; Smalltalk then establishes communication between the two processes using Unix-domain sockets.JU.NH 2 .TC System Architecture .PP The hypertext system consists of two major levels. t.PP The second level, the Hypertext Abstract Machine (HAM), defines the operations available to users of the interface subsystems. At this level the abstract objects \fIgraph\fR, \fInode\fR and \fIlink\fR Z7.PP In CRL's initial prototype of the hypertext system X013 =3 Hypertext is a nice design information management   |Complete version histories are maintained for documentation such as requirements, specifications, designs, implementations,  Hypertext i$ 0.biacLX2Aaumaaaan/usr/hyperSSS4/DdSTTT4/DdT, 44D/DdUdV`4@Rn"z  t2biacLX2Aaumaaaam/usr/hyperSSS4/DdSTTT4/DdT, 44D/DdUdV`4@Rm"z6NHH User Interface Paradigms $.NH 2 .TC User Interface Paradigms ) system for writing documentation such as technical reports, conference or journal articles, books or project documentation such as this specification. X9 The user interface provides basic support for using the S\.NH .TC User Interface Overview .PP The user interface provides basic support for using the DN6rNHH User Interface Overview The good user interface provides basic support for using the hypertext system for writing documentation such as technical reports, conference or journal articles, books or project documentation such as this specification. X9 The user interface provides basic support for using the S\.NH .TC User Interface Overview .PP The user interface provides basic support for using the # 0biacLX2Aaumaaaao/usr/hyperSSS4/DdSTTT4/DdT, 44D/DdUdV`4@Ro"zMachine (HAM), defines the operations available to users of the interface subsystems. At this level the abstract objects `graph', `node' and `link' are supported. The user interface will typically run as a separate process, so operations supported at this level will be accessed via remote procedure calls using a communications medium such as pipes or Unix 4.2BSD sockets. A network server process will be active on the machine that hosts the directory and on each machine that hosts nodes that are being acces6NHH> Static Views The hypertext graph and the contents of nodes are viewed in display windows called `browsers'. These browsers contain a snapshot of their contents; there is no attempt to dynamically update the contents when it is affected by operations performed outside the browser. For example, if two windows are opened to the same node and the contents of one is edited, the changes are not reflected in the other. To compensate for this deficiency, all browsers have an update operation which queries the hypertext machine to obtain the latest version of its contents.o~.NH 3 .TC Static Views .PP The hypertext graph and the contents of nodes are viewed in display windows called \fIbrowsers\fR. Lthis level will be accessed via remote procedure calls using a communications medium such as pipes or Unix 4.2BSD sockets. A network server process will be active on the machine that hosts the directory and on each machine that hosts nodes that are being acces<! =0biacLX2Aaumaaaaq/usr/hyperSSS4/DdSTTT4/DdT, 44D/DdUdV`4@Rq"z" 0biacLX2Aaumaaaap/usr/hyperSSS4/DdSTTT4/DdT, 44D/DdUdV`4@Rp"z6NHH Invoking Commands Operations are invoked using pop-up menus. Because there are a large number of operations associated with some contexts, a hierarchical pop-up menu is used.@K.NH 3 .TC Invoking Commands .PP Operations are invoked using pop-up menus. a user to remember. Thus, we allow the user to give the graph a name. The name is actually the name of a file that will be used to store the identification and other per user preferences. The fil6NHHO Accessing Hypertext Graphs When a hypertext graph is created via the CreateGraph operation a unique identification for this graph is established. Subsequent attempts to open this graph must use this identification. However, the identification is somewhat cryptic and difficult for a user to remember. Thus, we allow the user to give the graph a name. The name is actually the name of a file that will be used to store the identification and other per user preferences. The filq  r0biacLX2Aaumaaaar/usr/hyperSSS4/DdSTTT4/DdT, 44D/DdUdV`4@Rr"ze can be renamed, moved or copied to other machines so that other users can gain access to the hypertext graph..NH 3 .TC Accessing Hypertext Graphs .PP When a hypertext graph is created via the CreateGraph operation a unique identification for this graph is established. NvThe file can be renamed, moved or copied to other machines so that other users can gain access to the hypertext graph.Y hosts the directory and on each machine that hosts nodes that are being acces7NHH Text Editing All text editing is based on Smalltalk's paragraph editor. For a complete description of this editor see [Goldberg 84] , especially chapter 3..NH 3 .TC Text Editing .PP All text editing is based on Smalltalk's paragraph editor. For a complete description of this editor see [Goldberg 84], he graph a name. The name is actually the name of a file that will be used to store the identification and other per user preferences. The fil 0 biacLX2Aaumaaaas/usr/hyperSSS4/DdSTTT4/DdT, 44D/DdUdV`4@Rs"z8NHH Error Reporting There are several mechanisms used to alert the user about error conditions. For errors that occur during the execution of a hypertext operation, a notify window appears on the screen with an explanation of what went wrong. When the user makes an error invoking a hypertext command from a pop-up window, the view flashes and an error message is sent to the Smalltalk System Transcript window. Note: if you do not have a system transcript window open (or coll7NHH System Attributes This user interface reserves several attributes for nodes and links. Our convention is that these system attribute names begin with `.' (pronounced `dot'). The attribute `.icon' specifies the icon that will be used for a node when viewed in a graph browser; or the icon that will be used for a link when viewed in a node browser. The attributes `.x' and `.y' are user by the graph browser to record the coordinates of a node. The attribute `.type' is used toapsed) when the error occurs the error message wil be accessable. In most cases, you can simply open the system transcript window and invoke the command again; the same error will probably occur.4@.NH 3 .TC Error Reporting .PP There are several mechanisms used to alert the user about error conditions. For errors that occur during the execution of a hypertext operation, a notify window appears on the screen with an explanation of what went wrong. .PP When the user makes an error invoking a hyp specify that the contents of a node is not text.Ze.NH 3 .TC System Attributes .PP This user interface reserves several attributes for nodes and links. JThe attribute \fI.icon\fR specifies the icon that will be used for a node `MThe attributes \fI.x\fR and \fI.y\fR are user by the graph browser to record DThe attribute \fI.type\fR is used to specify that the contents of a + the directory and on each machine that hosts nodes that are being accesertext command from support network communications, all hypertext graphs are located on the local machine. In CRL's initial prototype of the hypertext system the Hypertext Abstract Machine is implemented in the programming language C; and the user interface is implemented in Smalltalk-80. These subsystems runs as a separate process on Magnolia under Unix or on the 4404 under the Uniflex operating system. On the 4404 the Hypertext Abstract Machine process is started up by Smalltalk (via a vf" #0biacLX2Aaumaaaat/usr/hyperSSS4/DdSTTT4/DdT, 44D/DdUdV`4@Rt"z 00biacLX2Aaumaaaau/usr/hyperSSS4/DdSTTT4/DdT, 44D/DdUdV`4@Ru"z8-NHH Browsing Documents There are two primary kinds of browsers used to view and modify hypertext documents. A `graph browser' provides a diagrammatic view of a graph of nodes and links associated with a project; and a `node browser' views an individual node in a graph. Several other browsers are used including: attribute browsers, version browsers, node differences browsers and demon browsers. .NH 2 .TC Browsing Documents .PP There are two primary kinds : when there are several links connecting two nodes, the links are displayed on top of each other, appearing as a single arc.) The graph browser has three panes; the top pane contains the view of the graph, the bottom two panes contain text editors used to define visibility predicates on nodesand links which are based on the values of attributes. The grammar used to define these predicates is shown below. The graph browser can be opened via a system command or via a pop-up menu command in the node browof browsers used to view and modify hypertext documents. A \fIgraph browser\fR provides a diagrammatic view of a graph  >and a \fInode browser\fR views an individual node in a graph. @.NH 3 .TC Error Reporting .PP There are several mechanisms used to alert the user about error conditions. For errors that occur during the execution of a hypertext operation, a notify window appears on the screen with an explanation of what went wrong. .PP When the user makes an error invoking a hypser and node versions browser. There are two strategies available for building the collection of nodes and links to be displayed. The simplest is the ``query'' command; this command displays all nodes that satisfy the node visibility predicate and all links that both satisfy the link visibility predicate and interconnect visible nodes. The other method is the ``traverse'' command; this performs a depth first traversal via out-links in the order of their position within the node, starting at a designated ``~ 06biacLX2Aaumaaaav/usr/hyperSSS4/DdSTTT4/DdT, 44D/DdUdV`4@Rv"zroot'' node, returning all nodes that satisfy the node visibility predicate, and returning all links traversed; each depth traversal stops when a designated ``depth'' is reached or when a node is reached that does not satisfy the node visibility predicate; links that do not satisfy the link visibility predicate are not traversed. The graph browser can view either the current version of the hypertext graph or it can be used to view the graph as it existed at an earlier time. A specific version time is impl8NHH Graph Browsers The graph browser shows a global view of the hypertext graph for a project. Each node is represented by an icon; a default icon is used unless the node has a value for the attribute `.icon'. If the value of `.icon' is a string then the representation is the string enclosed in a box; (user designed icons might be supported in future releases by allowing the value of the atttribute to be a Smalltalk form). Links are represented as arcs connecting nodes. (Noteicitly specified when a graph browser is opened via a node browser or a node versions browser. The ``version'' commands can be used to specify a version time for viewing a graph. When the graph is accessed using the query command, all nodes and links returned existed and satisfied the predicates at the version time. The traverse command works a little differently; in most cases traversing remains on a flat plane of time, however, if a link points to a specific version of a node (rather than the `current' version) then the traversal leaves the time plane returning the specific version of the node and continuing the depth traversal via the out-links of that version. The functions available in a graph browser are described in the following sections. ^i.NH 3 .TC Graph Browsers .PP The graph browser shows a global view of the hypertext graph for a project. wnode has a value for the attribute \fI.icon\fR. If the value of \fI.icon\fR is a string then the representation is the _lane of time, however, if a link points to a specific version of a node (rather than the `current' version) then the traversal leaves the time plane returning the specific version of the node and continuing the depth traversal via the out-links of that version. .PP The functions available in a graph browser are described in the following sections.    predicates is shown below. The graph browser can be opened via a system command or via a pop-up menu command in the node brow>.PP The graph browser has three panes; the top pane contains the view of the graph, the bottom two panes contain text editors used to define visibility predicates on nodes and links which are based on the values of attributes. |H.PP The graph browser can be opened via a system command or via a pop-up menu command in the node browser and node versions browser. There are two strategies available for building the collection of nodes and links to be displayed. The simplest is the ``query'' comR S0!biacLX2Aaumaaaaw/usr/hyperSSS4/DdSTTT4/DdT, 44D/DdUdV`4@Rw"zmand; this command displays all nodes that satisfy the node visibility predicate and all links that both satisfy the link visibility predicate and interconnect visible nodes. The other method is the ``traverse'' command; this performs a depth first traversal via out-links in the order of their position within the node, starting at a designated ``root'' node, returning all nodes that satisfy the node visibility predicate, and returning all links traversed; each depth traversal stops when a designated ``depth9,NHHQ predicate -> expression expression -> negate expression -> (expression) -> term -> expression & expression -> expression | expression term -> attribute relop value -> 'true' -> 'false' relop -> '<' -> '>' -> '<=' -> '>=' -> '~=' -> '!=' -> '=' negate -> '~' -> '!' attribute -> ``string'' value -> integer | ``string'' | '*' `~' or `!' represents negation; '*' means any value. Strings t'' is reached or when a node is reached that does not satisfy the node visibility predicate; links that do not satisfy the link visibility predicate are not traversed. .PP The graph browser can view either the current version of the hypertext graph or it can be used to view the graph as it existed at an earlier time.  a graph. When the graph is accessed using the query command, all nodes and links returned existed and satisfied the predicates at the version time.  j qremains on a flat phat start with an alpha character or `.' and contain only alphanumeric characters do not need surrounding quotes..DS L predicate \(-> expression expression \(-> negate expression \(-> (expression) \(-> term \(-> expression & expression \(-> expression | expression term \(-> attribute relop value \(-> 'true' \(-> 'false' relop \(-> '<' \(-> '>' \(-> '<=' \(-> '>=' \(-> '~=' \(-> '!=' \(-> '=' negate \(-> '~' \(-> '!' attribute \(-> ``string'' value \(-> integer | ``string'' | '*' .DE .LP qcollection of nodes and links to be displayed. The simplest is the ``query'' command; this command displays all nodes that satisfy the node visibility predicate and all links that both satisfy the link visibility predicate and interconnect visible nodes. The other method is the ``traverse'' command; this performs a depth first traversal via out-links in the order of their position within the node, starting at a designated ``leOut and printOut commands. `depth' prompts for a specification of the maximum depth that is to be used during a traversal of the hypertext graph. The depth must be a non-negative number; the value 0 (zero) means unlimited. Depth is used in the traverse, fileOut and printOut commands. `accept' record the positions of any nodes which have been repositioned. (Updates the values of the .x and .y system attributes based on the current positions of the nodes in the visible sub-graph). `browse-graph-demons' o 0'2biacLX2Aaumaaaax/usr/hyperSSS4/DdSTTT4/DdT, 44D/DdUdV`4@Rx"zpens a demon browser for the demons corresponding to the version of the graph. `auto-position-nodes' automatically selects positions for nodes in the visible subgraph. Starts at `root' and assumes the visible sub-graph is actually a tree.Isimilar to \fIprintOut\fR, writes the contents of a sub-graph to a file. 1.NH 4 .TC Graph Operations .IP \fIquery\fR\ \(em .IP \fItraverse\fR\ \(em .IP \fIprintOut\fR\ \(em .IP \fIfileOut\fR\ \(em :N9NHH Graph Operations `query' queries the hypertext graph to obtain the collection of nodes that satisfy the node visibility predicate and the links that interconnect those nodes and satisfy the link visibility predicate; and displays them. `traverse' traverses the hypertext graph starting at the current `root' and following its out-links to obtain the collection of nodes and links that satisfy the visibility predicates; and displays them. `printOut' traverses the hypry.IP \fIroot\fR\ \(em .IP \fIdepth\fR\ \(em .IP \fIaccept\fR\ \(em $.IP \fIbrowse-graph-demons\fR\ \(em +A$.IP \fIauto-position-nodes\fR\ \(em Hhe query command, all nodes and links returned existed and satisfied the predicates at the version time. The traverse command works a little differently; in most cases traversing remains on a flat plane of time, however, if a link points to a specific version of a node (rather than the `current' ertext graph starting at the `root' and following its out-links to obtain the collection of nodes and links that satisfy the visibility predicates, and writes their contents to a file. `fileOut' similar to `printOut', writes the contents of a sub-graph to a file. Also annotates the contents with directives that allow the graph structure to be re-constructed using the hypertext utility program `mhtoh'. `root' defines the selected node as the root of the graph. Root is used in the traverse, autoPosition, fi 0#biacLX2Aaumaaaay/usr/hyperSSS4/DdSTTT4/DdT, 44D/DdUdV`4@Ry"z9NHH Node Operations `reposition-node' changes the position of the selected node in the graph. `create-node' adds a new node to the graph. User is prompted for a name that will be used in the icon for the node. `delete-node' deletes the selected node and any links connected to it. Requires confirmation. `browse-node' opens a node browser for the selected node in the graph. `browse-node-versions' open a node versions browser for the selected node in the graph. `browse-nod9NHH Link Operations `link-to' creates a link to the selected node. Prompts the user for the node which serves a source of the link. Prompts for the name of the link; provides an default name which is the name of the destination node. `link-from' creates a link from the selected node. Prompts the user for the node which serves a destination of the link. Prompts for the name of the link; provides an default name which is the name of the destination node. `browse-link-attribue-attributes' open a node attribute browser for the selected node in the graph. `browse-node-demons' open a node demon browser for the selected node in the graph. `style-sheet' opens a node style sheet for viewing/editing parameters that affect the creation of new nodes.$:.NH 4 .TC Node Operations .IP \fIreposition-node\fR\ \(em ].IP \fIcreate-node\fR\ \(em adds a new node to the graph. User is prompted for a name that will be used in the icon for the node. .IP \fIdelete-node\ftes' open a link attribute browser for the selected link in the graph. `style-sheet' opens a link style sheet for viewing/editing parameters that affect the creation of new links.2.NH 4 .TC Link Operations .IP \fIlink-to\fR\ \(em .IP \fIlink-from\fR\ \(em '.IP \fIbrowse-link-attributes\fR\ \(em '5.IP \fIstyle-sheet\fR\ \(em a new node to the graph. User is prompted for a name that will be used in the icon for the node. .IP \fIdelete-node\fR\ \(em 3A.IP \fIbrowse-node\fR\ \(em {%.IP \fIbrowse-node-versions\fR\ \(em '.IP \fIbrowse-node-attributes\fR\ \(em 0E#.IP \fIbrowse-node-demons\fR\ \(em .IP \fIstyle-sheet\fR\ \(em a, fileOut and printOut commands. `accept' record the positions of any nodes which have been repositioned. (Updates the values of the .x and .y system attributes based on the current positions of the nodes in the visible sub-graph). `browse-graph-demons' o 0.biacLX2Aaumaaaba/usr/hyperSSS4/DdSTTT4/DdT, 44D/DdUdV`4@Ra"z 0#0biacLX2Aaumaaaaz/usr/hyperSSS4/DdSTTT4/DdT, 44D/DdUdV`4@Rz"zANHH Attribute Browser Demo Reactivate the node browser for `Introduction' using the left button of the mouse, and frame the Attribute Browser window. Invoke the ``node/attributes'' command using the middle button pop-up menu within the node browser. Narration: ``The hypertext system allows attribute/value pairs to be associated with each node and link. Here we're opening a browser that views the attribute pairs defined for this node. Each attribute is a character string; its value is a character string or an integer. Some attributes are used by the system: `.icon' specifies the name for the node or link; `.x' and `.y' record coordinates used by the graph browser. Additional attributes can be defined by the user.'' Close the Attribute browser window and reactivate the graph browser.OZ.NH 2 .TC Attribute Browser Demo .PP Reactivate the node browser for `Introduction' using Gwindow. Invoke the ``\fInode/attributes\fR'' command using the middle  browser. The attribute expressions are used as visibility predicates; only those nodes (or links) that satisfy the predicate will be shown.'' In the top pane of the graph browser invoke the ``graph/query'' command on the middle button pop-up menu. In a few seconds a new graph will appear. Narration: "Here we've used the attributes to extract a single section of the document." This concludes the demo. To clean-up and get ready for the next demo do the following: [1] Within the Hypertext Workspace win*3A.IP \fIbrowse-node\fR\ \(em {%.IP \fIbrowse-node-versions\fR\ \(em '.IP \fIbrowse-node-attributes\fR\ \(em 0E#.IP \fIbrowse-node-demons\fR\ \(em .IP \fIstyle-sheet\fR\ \(em a, fileOut and printOut commands. `accept' record the positions of any nodes which have been repositioned. (Updates the values of the .x and .y system attributes based on the current positions of the nodes in the visible sub-graph). `browse-graph-demons' odow invoke the command `HyperRPC open quit.' by selecting the corresponding text and invoking the middle button pop-up menu command `doit'. This terminates the execution of the hypertext abstract machine and closes the communication pipes. [2] Close all hypertext windows except the Hypertext Workspace window.JU.NH 2 .TC Graph Browser Demo .PP Reactivate the graph browser that was opened at the pn.PP In the top pane of the graph browser invoke the ``\fIgraph/query\fR'' command on th 0biacLX2Aaumaaabb/usr/hyperSSS4/DdSTTT4/DdT, 44D/DdUdV`4@Rb"ze middle button pop-up _k.PP This concludes the demo. To clean-up and get ready for the next demo do the following: .IP [1] Within the Hypertext Workspace window invoke the command \fIHyperRPC open quit.\fR by selecting the corresponding text and invoking the middle button pop-up menu command \fIdoit\fR. J.IP [2] Close all hypertext windows except the Hypertext Workspace window.8verse\fR\ \(em .IP \fIprintOut\fR\ \(em .IP \fIfileOut\fR\ \(em AsNHH Graph Browser Demo Reactivate the graph browser that was opened at the beginning of the demo by clicking the left button of the mouse. Click the left button in the text pane opposite the heading ``Nodes:'' toward the bottom of thegraph browser window. Type in the expression: `"partOf" = "demo"'. Narration: ``Attributes can be used to extract a portion of the graph. Expressions involving attribute names and values can be typed in the sub-windows at the bottom of the graph; <5 0biacLX2Aaumaaabc/usr/hyperSSS4/DdSTTT4/DdT, 44D/DdUdV`4@Rc"zmNmNThis is an annotation.ivate the graph browser that was opened at the beginning of the demo by clicking the left button of the mouse. Click the left button in the text pane opposite the heading ``Nodes:'' toward the bottom of thegraph browser window. Type in the expression: `"partOf" = "demo"'. Narration: ``Attributes can be used to extract a portion of the graph. Expressions involving attribute names and values can be typed in the sub-windows at the bottom of the graphnNThe system can be used to support actual product development allowing several engineers to work together on a joint project through a distributed network of Magnolia and 4404 workstations.ding ``Nodes:'' toward the bottom of thegraph browser window. Type in the expression: `"partOf" = "demo"'. Narration: ``Attributes can be used to extract a portion of the graph. Expressions involving attribute names and values can be typed in the sub-windows at the bottom of the graph 5 biacLX2Aaumaaabd/usr/hyperSSS4/DdSTTT4/DdT, 44D/DdUdV`4@Rd"z 5 ,biacLX2Aaumaaabf/usr/hyperSSS4/DdSTTT4/DdT, 44D/DdUdV`4@Rf"znNnNThe system can be used to support actual product development allowing several engineers to work together on a joint project through a distributed network of Magnolia and 4404 workstations.ding ``Nodes:'' toward the bottom of thegraph browser window. Type in the expression: `"partOf" = "demo"'. Narration: ``Attributes can be used to extract a portion of the graph. Expressions involving attribute names and values can be typed in the sub-windows at the bottom of the graphNNThe system provides a uniform framework for recording a complete design history including assumptions made, alternatives that were considered and explanations about why a particular solution was accepted or rejected.ottom of thegraph browser window. Type in the expression: `"partOf" = "demo"'. Narration: ``Attributes can be used to extract a portion of the graph. Expressions involving attribute names and values can be typed in the sub-windows at the bottom of the graph 5 #biacLX2Aaumaaabe/usr/hyperSSS4/DdSTTT4/DdT, 44D/DdUdV`4@Re"z 5 0*biacLX2Aaumaaabg/usr/hyperSSS4/DdSTTT4/DdT, 44D/DdUdV`4@Rg"z)NThe system provides a uniform framework for recording a complete design history including assumptions made, alternatives that were considered and explanations about why a particular solution was accepted or rejected.ottom of thegraph browser window. Type in the expression: `"partOf" = "demo"'. Narration: ``Attributes can be used to extract a portion of the graph. Expressions involving attribute names and values can be typed in the sub-windows at the bottom of the grapḧN̈Nhierarchical structure of nested sections and sub-sections. Links are also used to record cross references within the document; making it easier to keep related parts of the document consistent when changes are made. tom of thegraph browser window. Type in the expression: `"partOf" = "demo"'. Narration: ``Attributes can be used to extract a portion of the graph. Expressions involving attribute names and values can be typed in the sub-windows at the bottom of the graph =biacLX2Aaumaaabh/usr/hyperSSS4/DdSTTT4/DdT, 44D/DdUdV`4@Rh"z B ,8biacLX2Aaumaaabj/usr/hyperSSS4/DdSTTT4/DdT, 44D/DdUdV`4@Rj"z=<;:9876543210/.-,+*)('&%$#"! ""##$$%%&&''