Links, rels, and profiles

Caveat: I’m not at all sure I know what I’m talking about here. If you do, feel free (as always) to set me straight.

HTML defines a link element to express metadata about the relationship between the current document and other documents. The rel attribute expresses what sort of relationship the current document has to the linked document. Its value is a link type.

That’s where the concrete aspects of the HTML rec stop, and the handwaving begins. The link types section lists some standard types, things you’ve probably seen like alternate, prev and next, and then says that:

Authors may wish to define additional link types not described in this specification. If they do so, they should use a profile to cite the conventions used to define the link types. Please see the profile attribute of the HEAD element for more details.

Combine that “should” (note the lower-case: this is not a spec-language SHOULD, where you either do it or know why and suffer the consequences) with the handwaving about the meaning of rel that came before:

User agents, search engines, etc. may interpret these link types in a variety of ways. For example, user agents may provide access to linked documents through a navigation bar.

and you have an unspecified, wide open field that’s ripe for me to muck about with :)

If you choose to follow a lower-case should, the profile attribute is mentioned twice: when it’s the profile attribute it’s a list of one or more URIs, separated by whitespace, but when it’s a metadata profile it’s just one, which user agents may either recognize as a known URI, or dereference (which means assume the URI is a URL, and go grab whatever the server there feels like providing) and er, um, do some stuff with. I can just feel the @@FIXME! that there must not have been time enough to deal with. At any rate, although I can’t find it to point at, that’s taken to mean that there’s some magic meaning to the first URI in a profile attribute. You have been warned. Also, because “the same profile applies to all META and LINK elements in the document head,” by defining one you could wind up confusing some hypothetical thing which treats a profile URI (presumably the first, magic, one) as a sort of namespace, and decides that since you have one, your otherwise-well-known meta and link attributes don’t mean what they usually do. You have been warned: here there be probably imaginary dragons.

So, why am I going on about this? If you want to have your posted PGP public key autodiscovered by weblogs that accept signed comments (my guess would be that Jacques is going to get to autodiscovery first), you need a <link rel=”pgpkey” type=”application/pgp-keys” href=”…”>, and for that you should have a <head profile=”…”>, and for that I’ve got http://purl.org/net/pgpkey/ (not linked, because there’s nothing to speak of there, and I can’t quite imagine what there will or could be there, so the search engines can mind their own business for now). Use it, enjoy it, if you’ve got a document you would like it to point to let me know. (And note that you really do want to be delivering your public key with that MIME-type, so that people can automatically pass it off from their browser to their PGP application.)

10 Comments

Comment by Jacques Distler #
2004-02-29 23:53:06