UserPreferences

PaceRelationshipConstruct


Abstract

Rather than using <link rel...> as a point of extensibility, use the following construct instead:

<xxx:yyy atom:href="http://example.org">

Status

Open. Sunny.

Rationale

A uniform mechanism is needed for defining arbitrary relationships between Atom resources and other resources. This functionality is provided in RSS 1.0 by RDF, but the Atom WG has chosen not to follow this approach. <link> is already overloaded, talk around it is getting nowhere, and one of the points of contention is its use for extensibility. Most if not all of that functionality could be provided by constraining the interpretation of @href when used with elements from foreign namespaces.

Proposal

Insert the following into the format spec:

"Any element containing the attribute atom:href will be considered a component of a relationship construct. This construct defines a binary relationship between the parent of the element in which it appears, and the resource identified in the atom:href attribute. The nature of that relationship is detemined by the name of the element containing the atom:href attribute. If that name is in the Atom namespace, then a consumer MUST interpret it and behave according to the definition of that term in this specification. Otherwise the consumer MAY follow whatever definition is provided for the the term in the namespace in question. If the consumer has no knowledge of the term then it MAY ignore it or present the data to the end user in any manner deemed appropriate".

Examples (something like):

<atom:entry>

... </atom:entry>

This says: the edit endpoint using the Atom Protocol for the resource http://example.org/blah is http://example.org/editme.

<atom:entry>

... </atom:entry>

This says: http://example.org/veg.jgp is a foaf:Image which depicts the resource http://example.org/blah

Impacts

Elements from other namespaces which use the atom:href attribute will have their definitions constrained.

Notes


CategoryProposals