Re: REL and REV attributes (Was: More comments on HTML 3.0)

Joe English (joe@trystero.art.com)
Wed, 10 May 95 13:51:11 EDT

lee@sq.com wrote:
>
> There are 2 cases:
> (1) your software understands the X- name. In that case you can make it
> understand the name without the X- easily.
> (2) your software does not understand the X-name. Then, if the name becomes
> standardised, you have to change it anyway.
>
> Of course, if you are using someone else's software, you are stuck... until
> they change it. But that is better than having REL="cheese" appear with
> a meaning that all ftp links in the current document are to be interpreted
> as http: links, and you having no way even to guess about it.

Applications can be updated to treat "cheese" just like "x-cheese"
once "cheese" becomes standardized fairly easily, but what if
you have a huge collection of documents that use "x-cheese"?

I see this as more of a namespace management problem than an
standardized/experimental identification problem -- we want to
avoid the situation where an author uses a link relation name
that later gets standardized to mean something unexpected.
Marking link relations as experimental seems less important,
especially for potentially long-lived documents.

How does this sound:

Authors may use any names they wish for REL and REV attribute
values (without the X- convention); the namespace by default
belongs to the author. In order to use a standardized link
relation or set of link relations, the document must include a
support declaration in a processing instruction in the document
prolog or <HEAD> element. Browsers must not give special
treatment to any link relation if the corresponding support
declaration does not appear.

For example, assume that a set of navigational link relations
named "NAVLINKS" has been published which defines behaviour
for the link relations NEXT, PREVIOUS, UP, TOP, CONTENTS, and
INDEX. Also assume that another set named "DAIRYPRODUCTS" has
been published which defines the link relation CHEESE as
described above.

An author who wanted to use the navigational link relation set
(but has never heard of the DAIRYPRODUCTS link relation set)
could use:

<HTML>
<HEAD>

<?LINKREL NAVLINKS> <!-- indicate support for NAVLINKS set -->

<title>Section 2.3</title>

<!-- the browser may give special treatment to these links:
-->
<link rel=top href="sec1.html">
<link rel=next href="sec2.4.html">
<link rel=prev href="sec2.3.html">
<link rel=up href="sec2.html">

<!-- the "cheese" link will not cause any unexpected behaviour
because no support declaration was given for it:
-->
<link rel=cheese href="cheese.html">

</HEAD>

The support declaration PI could also include a "renaming" list
a la HyTime; e.g., if an author uses the relations FORWARD
and BACK and wants those to have the same meaning as the
standardized NEXT and PREV relations, the declaration would be:

<?LINKREL NAVLINKS FORWARD=NEXT BACK=PREV>

A similar scheme could be used for standardized CLASS attribute
values.

Comments?

--Joe English

joe@trystero.art.com