|
Right now, an Atom entry provides a
metadata-rich shell around some data. Instead, what if we treated Atom
entries more like citations/annotations (I'll just use "citation" in a very
generic, possible over-encompassing, sense here). Bear with my train
of thought here...
Let's start with the
API. When I want to add an
entry to my blog, I primarily work with the bit that goes inside the
Atom:content element. Using Atom, I would wrap that data into an
<entry>, which would also contain all sorts of additional information
about the data. Instead, however, suppose that I just dealt with the data
by itself. For instance, when I create the blog entry, all I do is POST
(or PUT) the data. After I have done this, I cite the entry. The
citation is the Atom document, except that <content> just points to the
data instead of having it embedded (as mentioned in the "Alternative
<content>?" thread).
From an API point-of-view, I don't think
this process would be very complicated. Below is an example transaction
for creating an entry:
Step 1: create the entry.
------
C: POST /path
Content-Type:
text/x.textile
<data>
S: 201
Location:
http://...
X-Atom-Annocitation:
http://...
Notes:
1) the request was as simple as
it gets.
2) the response gave us the new
resource URI and also gave us the URI of a "default" citation document that
the server has created.
Step 2: get the associated citation
document.
------
C: GET /atom-citation
Content-Type:
application/x.atom+xml
S: 200
<atom
xml>
Step 3: update the citation
document.
------
C: PUT /atom-citaion
Content-Type:
application/x.atom+xml
<atom
xml>
S: 204
Notes:
1) it may not be necessary to
always do step three. For instance, when updating the entry, the
server will likely automatically update some bits (like timestamps) and the rest
will not need changing. Of course, this partly depends on the extent of
citation.
2) also, because the citation is available
separately, it would be possible to make changes to that without editing the
actual entry.
For the feed, this is nothing more than
making the citations available as a collection. For that matter, most
blogs show these same feeds rendered as HTML. Since these feeds (in
whatever form they take) requires the existance of the citation, it wouldn't
matter if the content was posted first because it wouldn't show up for access
until the citation was created.
For intra-blog linking, it would be
possible for SiteA to create a citation document for an entry on SiteB (likely
using SiteB's own Atom document as a starting point), then point to that with
their own entry (likely within the entries own Atom citation document).
When rendered as HTML, the citation to SiteB's entry would likely be
combined with the entry, as we are used to seeing. However, it would also
be possible for an Atom-aware tool to traverse the sites by processing the Atom
documents alone.
Comment could be provided in a similar
way. A person is given limited ability to create an comment
document. Along with it, a citation document is created that also points
to the entry document. Using this approach, comments could be made against
comments. Intra-blog entries could be made against comments, entries, or
both.
This approach also has the potential to
allow sites to add Atom entries (and therefore feeds) to all sorts of existing
documents without having to do anything to the documents
themselves.
Well, I'm sure you all get the general
idea...
|