Re: Raisch's Attention link

Dan Connolly (
Wed, 24 Jun 92 18:04:27 CDT

>In a previous message, R. Raisch proposed a number of interesting
>link types. One of them was the attention link, which I want to
>discuss here. I am uncertain about the need for this link, the
>technical ability to provide it, and the definition.
[side note: Jim: what did you use to compose richtext? Ez?]

While all these ideas are very interesting, I sometimes get
lost in a haze of ideas and scenarios. I'd like to get a handle
on just what application we're developing here.

The pie-in-the-sky seems to be a distributed, hypermedia CSCW
(computer supported collaborative work) platform, where multiple authors
discover, research, read, reply, refute, annotate, author, and otherwise
exchange information.

Features of such a system might include:
- distributed access to documents, i.e. a document can be processed
by a client on another host
- fulltext searching of large bodies of information
- direct manipulation query, i.e. point-and-click at the information
that you're interested in
- hypertext, i.e. random-access both within documents
and between documents
- direct manipulation editing, i.e. editing a representation of
the end product rather than the source format (WYSIWYG)
- multimedia documents (formatted text, raster images, line drawings,
audio, video, structured enclosures)
- hypermedia (just a term for multimedia hypertext)

In order to refine the model behind such an application and explore
the functionality different models support, let's have a look at some
existing applications and an abstract of the model they present.

(terms introduced by _underscores_ are objects defined by the model.)

Internet mail: distributed text message interchange

With _user agent_, a user composes a _message_, which
is delivered by a _transfer agent_ to a _mailbox_, possibly in
another _domain_, where another user can read the message.
MIME defines various _types_ of messages, including
text, images, audio, video, included messages, and
multipart (complex) types.
The recieving user may forward the message or reply to the message
by composing a new message including part or all of the original.

USENET news: distributed bulletin board

An _article_ is a special kind of message, addressed to
a _newsgroup_ rather than a _mailbox_. _Posting software_ enters the
article into a _repository_. A _news reader_ is a variant of a
mail user agent that helps a user navigate the articles in the
repository. It maintains a record of which articles the user
has read. (Transfer agents fit in somehow, and NNTP adds a client/server
separation between the news reader/poster and the repository).

WAIS: distributed fulltext search and multimedia retrieval

With a _wais client_, a user composes a _question_ consiting of
some relavent text and some _sources_ to consult. The wais client
contacts the _server_ for each source and makes a _query_ using the
relavent text. The servers respond with a scored list of _document
identifiers_. The user can select a document identifier and instruct
the client to _retrieve_ the corresponding _document_. The user
can then refine the question by adding relavent documents or _chunks_
of relavent documents.

FTP: distributed file exchange

A user invokes a _client_ on one _host filesystem_. The client
logs into a _server_ on another _host filesystem_ using a _username_
and a _password_. The user indicates a _mode_ and a _directory_
to the server through the client. The user can request that the
client display a _directory listing_ from the server, or transfer
a _named_ _file_ from the server's filesystem to the client's.

archie (prospero, really): a distributed file system

A user indicates a _host_, _search term_,
and _search mode_ to a _client_. The client contacts the _server_
on that host, issues a query, and displays the resulting list
of (host|dir|mode|date|seq|size|name|type) _items_.

Gopher: distributed hierarchical information browser

The _client_ connects to a _server_ (a _port_ on a _host_)
and sends it a _selector_. The server either sends back a _document_
or a _directory_, depending on the _type code_ corresponding to
the selector (the null selector is defined to be the root directory
of the server). A directory is a list of _items_. Each item consists
of a type code, a _name_, a selector, a host, and a port.

The client displays the names for the user, and the user chooses one.
The client sends the selector to the server indicated by the corresponding
host and port, and depending on the type code, 0) display the resulting
document, 1) display the resulting directory, 4-6) decode the resulting
archive 9) save the resulting document to a file. Codes 2, 7, and
8 request services from CSO phone book servers, fulltext gopher servers,
and telnet hosts respectively.

The client maintains a _stack_ of the directories the user has visited,
and the user can choose to "go back" in addition to choosing a
directory item.

WWW: a distributed hypertext browser

a WWW _client_ parses an _address_ into a _scheme_, a _server_,
a _path_, an _anchor id_, and some _search terms_. The client retrieves
a _document_ from the server using the path and search terms (using
one of several protocols), and displays the document, indicating
the _anchor element_ indicated by the anchor id. Documents contain
_structural elements_ such as headings, lists, etc.

The user requests the next document by either a) choosing one of the
anchor elements of the document (which specifies an address), or b)
if the document is an _index_, the user can request a search by supplying
search terms. The client combines the address of the document with the
search terms and begins again. Otherwise, the user can choose one of the
anchor elements and instruct the client to use the corresponding
address for the next document.

GNU Info: online hypertext documentation for applications and products

An info _browser_ displays the root _node_. A user indicates another node
to display by choosing _up_, _next_, _previous_, choosing a
_menu item_, or indicating a _note_ to follow.

Unix manual: structured text documentation for unix commands and fuctions

A user may request _formatted text display_ of a _page_ by its _name_,
and _section_, or they may request display of all _permuted index entries_
(containing names of pages) that match a _string_. The database is defined
on a per-user basis as a list of _trees_, each contatining a permuted
index and one or more sections containing one or more pages.

Frame: direct manipulation hypermedia editor, hypermedia browser

FrameMaker supports point-and-click editing of _documents_ composed
of _frames_ containing _objects_ (geometrics graphics and raster images)
and _textflows_ of _paragraphs_ of formatted text and _markers_, including
_link sources_ and _link destinations_.

FrameViewer displays a _page_ frame of a document, and allows point-and-click
access to the link sources. Every document has an implicit firstpage and
lastpage link destination. Every page has an implicit link to the next
and previous page.

Compare and contrast objects:

Mail messages vs. WAIS documents vs WWW documents vs FTP files
(unique id's? writable?)
WAIS source vs. news group
WAIS server vs. NNTP server vs. gopher server vs HTTP server
Message-ID vs WAIS docid vs WWW UDI
WAIS chunk vs. WWW anchor vs. FrameMaker marker
Info node vs. FrameMaker page vs. WWW document

Compare and contrast features

- distributed access to documents
mail: no
news: NNTP allows retrieval of headers by newsgroup or date
- fulltext searching: WAIS vs. WWW vs. gopher
- direct manipulation query: xwais vs. xgopher vs. NeXT WWW
- hypertext: WWW vs. GNU Info vs. FrameMaker
- direct manipulation editing: FrameMaker vs. Andrew vs. Interviews
- multimedia documents: FrameMaker vs. Gopher vs. MIME vs. WAIS vs. WWW

I'm formulating a model that will hopefully put all these features
and objects into one framework for discussion, at least.