Can someone point me to some normative examples of the use of extensions to Atom feeds?
For a good time I would like to create a purely REST-ful Web interface to MyLibrary. I plan to start out easy and only support read (HTTP GET) operations. MyLibrary is essentially made up of four objects: information resources, patrons, librarians, and facet/term combinations. The information resource objects are essentially described using Dublin Core elements, plus facet/term combinations. The patrons and librarian descriptions are based on FOAF elements, plus facet/term combinations. Facets consist of a key, a name, and a description. Terms consist of a key, a name, a description, and facet key. I think I will support four types of output: RDF/XML, Atom, JSON, and maybe XHTML. A local flavor of RDF/XML is intended to be the canonical transmission file format because it is the richest syntax I can use without creating Yet Another Mark-up Language. I want to use Atom and JSON because my book tells me to do so [1], and because these data types seem prevalent in machine-to-machine interfaces. XHTML will be for human convenience only. After a bit or reading it seems as if Atom is essentially Dublin Core plus elements for syndication. [2] This makes it easy to map just about all the MyLibrary objects to Atom. I think I might be able to stuff my facet/term combinations into Atom extensions, but I don't know what these extensions are suppose to look like. I found a draft describing them, but it doesn't make a lot of sense to me. [3] Reading standards has never been my forte. Once I get this far I will: 1. Accept requests 2. Process the input 3. Internally return RDF 4. Optionally transform the RDF into Atom, JSON, or XHTML 5. Return the requested data type. I have all the parts I need except Atom examples of extensions. [1] RESTful Web Services by Leonard Richardson & Sam Ruby [2] http://iandavis.com/blog/2004/03/thenucleusofatom [3] http://www.ietf.org/rfc/rfc5023.txt -- Eric Morgan