.comment-link {margin-left:.6em;}

Beyond the Fat Wire

Monday, March 14, 2005

Build ContentCentric Applications on RSS, Atom, and the Atom API

RSS 1.0 - uses RDF (even though nobody is using RDF functionality)


3 Formats:

RSS 2.0 - Sinple, ad hoc, temporary, loosely defined data, very loosely defined standard, many many uses. Fantastic for machine readable lists. Useless for anything else

RSS 1.0 - Complex, strict, pre-planned, strongly defined data, strongly defined standard, burdened with the evil buzzwords of RDF and "Semantic Web". Fantastic for complex document mining. A nightmare for tiny ad hoc apps. Used widely in the scientific publishing community.

Atom - simple, strictly defined data, strictly defined standard, with extra architectural loving.

Current Atom users: blogs, particularly blogger; Flickr

5 Atomic facts a machine can know about a document:
what it contains, what it is, where it was made, where it is held, when it was made, who made it

"how" is not an atomic fact -- it is qualitative -- must be human added, not machine added

Key Concept 1:
An Atom Document explicitly states the minimum we can know about the resource AND NO LESS (prinicple of the conservation of metadata)

Once you've lost (or failed to enter) metadata, you can't recreate it -- that is, once the moment has passed, you can only INFER what the atomic metadata would have been, you can't capture the actual, realtime metadata

Key Concept 2:
It's ok to have a lossy representation -- RSS, HTML, whatever -- but the resource itself must conserve the data. Data Entropy Cannot Be Reversed.

Two types of Atom documents:
an Atom Entry Document and an Atom Feed Document

Resuable Syntax of Constructs
  • Text
  • Person
  • Date
  • Link
  • Category
  • Identity
  • Service

Say, you have an album review, and in the context of the album review you want to display metadata about the album. He would use RSS 1.0 in this case -- which is employing metadata for an external object within the context of a resource (the album review is the resource. the album review resource has its own metadata. But, the album review employs metadata within it)


Atom Feeds

The Elegant Feed - An Atom feed is a collection of documents, topped with its own metadata

Creating a feed - Slice (choose a view), Dice (take the namespaces out), Mash (stick them together)


Key Concept 3:
A Feed is the representation of a Query over Resources


Atom Documents, Revision:
  • An Atom Document contains at least the minimum that can be said about a resource, whether an Entry or a Feed
  • An Atom Feed contains the Atom Entry documents resulting from a Query over resources. It's a type of resource in itself.

The Atom API

APIs through the ages:
  • Blogger API, Metaweblog API
  • XML-RPC or SOAP
  • For the manipulation of resource: REST

First Principles
  • HTTP has verbs - GET POST PUT DELETE
  • Representations of Resources (however it is you decide to define "resource")
  • GET and HTML representation of the resource

Manipulating a resource:
  • Full control means stating all of the data we know
  • Hence, we're stating (most) of an Atom Entry document
Key concept 4:
An Atom API call is an Atom Entry Document over an HTTP verb


Endpoints:
PostURI - one per system
EditURI - one per resource
FeedURI - one per query
ResourcePostURI - one per system

==========

and ... the afternoon break ...

==========

0 Comments:

Post a Comment

<< Home