Hyperlinks: MPRDV

In the meeting of Dec. 18, the ERB discussed how we might start moving forward
on hyperlinking.  Attempts to proceed as we did with the base XML language,
i.e. agree on a statement of principles and start subsetting an existing
standard, seem fraught with difficulty; in particular it seems very difficult
to separate the meta-discussion of design goals from the discussion of
implementation details and standards compliance.

To help get things going, and after running this idea past the ERB, I am
introducing a proposal entitled Minimum Progress Required to Declare Victory.  
The idea is to continue running with the XML premise; that you can do a lot 
with a little.  In particular, we should be able to offer the Web community
something subtantially better than they're used to without having to go very
far.  It should be borne in mind that to do a good job on specifying even a
little, you have to fight through some surprisingly hairy problems (as witness
our recent experience on this list).  This is an attempt to spot the
low-hanging fruit in the hyperlinking jungle.

Sensible reactions to this proposal include:
 - suggestions that we add facility X, because it's easy and useful
 - suggestions that we add facility X whether it's easy or not because
   it's such a basic need that we're wasting our time if we leave it out
 - suggestions that we remove facility X, because it'll get us in trouble
 - suggestions for compliance, at some level, with some existing standard
 - meta-suggestions for good ways to structure this discussion
 - comprehensive yet compact fully thought out proposals for a hyperlinking
   facility, supported by multiple public-domain reference implementations

This will presumably launch us on a fairly free-form discussion ranging from
philosophy through implementation, which is no bad thing at this stage.  At
some point we will have to impose structure on the discussion and generate a
draft and so on; this point will doubtless arrive before many of us are
comfortable that we're ready.  Speaking unofficially, but I think on behalf of
the ERB, it seems that the breakneck pace at which we plowed through XML was
on balance a good thing, and we'll try to stick with that.

Having said all this, I should emphasize that while the ERB gave me the OK to
post this and get things going, it is *not* a position of the ERB, and no hint
should be taken that we are leaning in this direction or any other.  Once
again, it will be helpful if those responding use subject lines to help sort
out threads.

I'll place an HTML version of this at 



Minimum Progress Required to Declare Victory

1. Background

The Web is the largest working hypermedia instance.  It supports one
widely-used form of hyperlink, the <A> or Anchor element.  These links are
unidirectional and [this is a basic design principle of the web] specify
basically nothing about their target except its location.  The links carry no
typing or role information, beyond the unconstrained text that may be found
between the <A> and </A> tags.  HTML offers another hyperlink facility, the
LINK header element, but it is not widely used.

Web links support a variety of behaviors, governed by the interaction of the
"scheme" part of the URL (http:, file:, ftp:, mailto:) and the logic in the
"User Agent" (typically a browser).  It might be argued that there are really
a smaller number of behaviors (a) retrieve and display, (b) retrieve and save,
(c) send mail; but the number of behaviors exceeds one.

There are a variety of other standards that support hyperlinks, of which the
most visible are HyTime, part of TEI, and in the area of object naming, the
IETF URN work.  None of these, at this moment, has overwhelming market
acceptance, or credibility at the level enjoyed by SGML.  HyTime has ISO's
blessing, URN has the IETF's; TEI is used to encode many billions of bytes of

2. Minimum Progress on Deliverables

The minimal deliverable is a smallish document (smaller than the XML spec)
with an independent existence and name - for example, XHA for Extensible
Hyperlink Architecture.  The hyperlinking mechanisms should be applicable to
XML of course, but also to SGML and (to the extent possible) to HTML.

XHA should have no dependency on XML.  However, we may choose to build special
machinery into XML (reserved elements/attributes/archforms) to optimize
support for XHA.

3. Minimum Progress on Hyperlink Enhancement

The minimum set of hyperlink constructs should:

3.1 subsume the existing WWW Anchor semantics in a smooth and natural way.

3.2 provide a hyperlink mechanism with richness similar to that of the
    HyTime "ilink" construct.  This means that the link
    - has a type,
    - has multiple ends, each of which has a role, and
    - may be located away from any of its ends, thus supporting links into
      read-only material.

3.3 support addressing at least by URL and ID attribute, alone or
    in combination.

4. Minimum Progress on Behavior

The minimum set of behavior machinery should provide: 

4.1 mechanisms for users to identify and describe behaviors associated with
4.2 predefined behaviors equivalent to those already in wide use on the Net.

5. Minimum Progress on Link Roles

The minimum set of link role machinery should provide:

5.1 mechanisms for users to identify and describe roles for link-ends.
5.2 predefined link roles equivalent to those already in wide
    use on the Internet

Cheers, Tim Bray
tbray@textuality.com http://www.textuality.com/ +1-604-488-1167