Re: two failings of XLink

Hi Norm,

> | So can you describe more formally what you class as a hypertext
> | reference as opposed to a URI that is not a hypertext reference?
>
> This strikes me as the sort of question where, no matter what answer
> you give, someone will construct an edge case that's neither in nor
> out of the boundaries drawn.

Why do you think I asked it :) Anyway, even a fuzzy definition should
help us say "these URI references definitely should not use XLink" and
"these URI references definitely should use XLink", leaving the ones
in the middle as being up to the markup language designer.

> Here anyway is an attempt at a practical definition:
>
> 1. A hypertext references is a reference to something that if traversed
>    will be displayed to a human reader. (So references to stylesheets
>    and script libraries are not hypertext references.)

I think that there are two potential issues with that as a definition,
at least as a definition that would help us work out whether XHTML
should use XLink for a reference to a particular resource.

First, the content type of the resource at the other end of the link
doesn't determine the way in which the resource is used by an
application. As Mark Baker pointed out, a link to a stylesheet might
be used in order to style a document or the stylesheet might be
displayed to the user. That would prompt me to change the definition
to:

  "A hypertext reference is a reference that, on traversal, should
   result in the referenced resource being presented to the user."

The second thing is that with most markup languages, the way in which
a particular URI is used by an application really depends on the
application that processes the XML document. This is true for XHTML as
well -- a browser might not display the stylesheet associated with a
document to the user, but an editor or a web visualisation engine
might.

So I think that this effectively says that hypertext references (and
hence XLink) should only be used in markup languages that define a
fixed presentational semantic. For example, they should be used in
XSL-FO but not in XSLT (XSLT has a fixed processing semantic, but it's
not a presentational one). Markup languages such as XHTML, MathML and
DocBook should use hypertext references (XLink) for those elements
that have a presentational semantic and where the referenced resource
should be presented to the user, but not on those elements that do not
have a presentational semantic. For example, MathML should use XLink
on the elements in the presentation side of the language, but not in
the content side of the language.

> 2. A hypertext reference is something you can type into a browser.
>    I think this limits it effectively to a single URI reference (no extra
>    parameters that can't or aren't encoded in the URI).

In other words, a hypertext reference results in a GET request in
HTTP, never in a POST or PUT. Presumably it shouldn't result in a
DELETE either, so perhaps we should also say

  "A hypertext reference is one that retrieves a resource."

That would rule out PUT and RESTful uses of POST (though not by itself
uses of POST that are actually GETs with extra information added).

I think that these guidelines would mean that XForms is right not to
use XLink to reference the instance or schema for a particular form.
Maybe they'd also be enough to resolve the issue for XHTML as well, if
the <object> element were reworked so that an xlink:href attribute
could be used to retrieve both applets (which I count as things that
are presented to the user) and other media (such as images and
movies).

It doesn't scope-away the classic example of:

  <img src="someURI" longdesc="someOtherURI" />

though, because in this case both resources are retrieved for
presentation to the user. I don't think that "you shouldn't design a
markup language like that" is a good enough answer to this problem,
but then I don't think that any technology should be prescriptive
about the design of a markup language.

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/

Received on Monday, 30 September 2002 09:08:29 UTC