Traversing high-level document structure
[Next] [Up] [Previous]
Next: Summarizing the selection
Up: Browsing audio documents
Previous: A complex example
Our internal representation for document structure is an attributed
tree. Tree structures are easy to traverse, and
they provide a uniform way of browsing structure present in
both plain text as well as mathematical formulae. This section
outlines our approach to enabling such browsing actions.
All browsing actions are defined with respect to the current
selection (a node in
the internal tree representation of the document) that is recorded in
variable *read-pointer*. Typically, the current selection is
initially the top of the document. The current selection can
be changed in two ways:
- Interrupting the current rendering by executing
command stop[+] (bound to s). Commands stop
and quit are described in detail in s:read-selection.
- By moving the selection when no rendering is in progress.
Typically, single key-strokes[+] execute the commands listed in the following
paragraphs.
The following browser commands can be executed when no rendering
is in progress. Our key-mapping for these commands is inspired
principally by the key-map used by the UNIX VI
editor.
- t Move to the top of the document.
- C-u t move to the top of the current math expression.
- h: Move left: set current selection to previous
sibling.
- l: Move right: set current selection to next sibling.
- j: Move down: set current selection to first child.
- k: Move up: set current selection to parent.
Below, these browser actions are augmented to enable the
traversal of the attributed tree structure defined
in c:recognition. In our model, all nodes have content.
- i: Move to content: set current selection to the
contents of the current selection.
The following actions move the selection to the various
attributes. The parent of an attribute is defined to be the object
being attributed. The result of moving to attributes can
therefore be undone by moving back up to the parent.
- ^: Move to superscript.
- _: Move to subscript.
- *: Move to accent.
- #: Move to underbar.
- !: Move to left subscript.
- %: Move to left superscript.
The above key-map[+] for traversing the attributes
was arrived at as follows: The choice for superscript and subscript is
automatic, since the keystrokes match the symbols used by TeX
to markup these attributes. Placing the fingers on the row of numerals
on a standard keyboard, the actions necessary for typing ^ and _
are mimicked with the left hand to arrive at the
key-bindings for the left superscript and subscript. The middle finger
of each hand is used to get to the accent/underbar.
Tables are the only objects in our internal representation that do not
conform completely to the tree-traversal model. This is because each
table element is linked to its parent as well as to its four neighbors.
The left and right neighbors can be modeled as siblings, but we need
extra links and hence extra actions to traverse the entries by
columns.
- a: Move to element above.
- d: Move to element below.
[Next] [Up] [Previous]
Next: Summarizing the selection
Up: Browsing audio documents
Previous: A complex example
TV Raman
Thu Mar 9 20:10:41 EST 1995