Subject: Atom simple metadata extension

From: "Peter Keane" <[email-masked]>
Date: Mon, 13 Oct 2008 23:22:13 -0500

In looking over Yahoo's DataRSS spec (part of SearchMonkey), and after
thinking about Bill DeHora's recent blog posts about JSON and Atom, I
am reminded again how useful it might be to have a simple mechanism to
add arbitrary metadata to an atom:feed, atom:entry, or atom:link.  I
realize this has been addressed in various ways before (esp. James
Snell's link extensions proposal), but deconstructing/simplifying
DataRSS just a bit, we could arrive at a metadata extension:

<x:meta property="[property name -- maybe a CURIE?]">value of the
property</x:meta>

This element would make an assertion about it's containing element,
any of: feed, entry or link.  The property value is always a simple
string.  The property attribute should , I suppose, be a CURIE, but
I'd guess it could be a simple string as well.  In DataRSS they have
an optional "datatype" attribute, that holds a CURIE -- potentially
useful, although I'd probably not use that.

DataRSS uses a containing "adjunct" element, but I'd be happy to leave
that out and assume that metadata assertions are being made by the
creator of the atom feed or entry.  The "item" element in DataRSS is
(as far as I can tell) a surrogate for atom:link, so we don't need
that. The other element DataRSS uses is "type," which this proposal
doesn't address since there are other possible ways to do that in atom
(or not do at all).

It's apparent in the DataRSS docs that they realize the complexity
comes not in the syntax, but in encouraging standard vocabularies and
standard constructs for similar content types.  As people standardize,
more interop results.  In the mean time, Atom can be all that much
more useful for simple applications that just need a bit more metadata
for a specific use case.

I'd be curious to hear thoughts/opinions on this.

--peter keane

---

From: "Brian Smith" <[email-masked]>
Date: Tue, 14 Oct 2008 00:04:34 -0500

> I'd guess it could be a simple string as well.

That is exactly what a simple extension element does. RFC 4287, Section
6.4.1: "The element can be interpreted as a simple property (or name/value
pair) of the parent element that encloses it."

<ns:property-name>value of the property</ns:property-name>

- Brian

---

From: "Peter Keane" <[email-masked]>
Date: Tue, 14 Oct 2008 06:51:29 -0500

> pair) of the parent element that encloses it."

 In 6.4 it states "Child elements of atom:entry, atom:feed,
 atom:source, and Person constructs are considered Metadata elements
 and are described below."  Would it be an acceptable practice to do
 the same w/ an atom:link?  e.g.,

  <atom:link rel="related" href="http://example.com/etc">
        <ns:property-name>value of property</ns:property-name>
 </link>

--peter