Subject: PaceRelationshipConstruct

From: Danny Ayers <[email-masked]>
Date: Sat, 9 Oct 2004 18:54:55 +0200

Added to the Wiki. 

http://www.intertwingly.net/wiki/pie/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:id>http://example.org/blah</atom:id>

      <atom:service atom:method="edit" atom:href="http://example.org/editme" />

... </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:id>http://example.org/blah</atom:id>

      <foaf:depiction atom:href="http://example.org/veg.jpg" />

... </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.

-- 

http://dannyayers.com