Sigfrid
Lundberg´s
Stuff

My first serious experience with ATOM

Sigfrid Lundberg's Stuff 2009-06-27

Bookmark and Share

The ATOM syndication format has been around for almost five years. In comparison with the diverse fauna kept in the menagerie abbreviated to the three character acronym RSS, ATOM is a well kept standard and much more useful as well.

Now, I've used ATOM before refurbishing my personal web site, but I haven't used seriously. That is, I haven't manually encoded a sizeable amount of text in it, validated the result, and then written software using the data. ATOM is the fundament for this site, since the data used for generating the navigation system is encoded that way. I may return to that later on.

Designed for success

Tim Bray lists and provide a thorough discussion of a number of characteristics shared by successful mark-up languages (see his article On Language Creation). The list of success critera includes items such as extensibility, clever but not too extensive use of XML name spaces, the posibility of implementing the language using many, widely different, datamodels. From Bray's perspective, ATOM seems designed for success. I don't know the statistics concerning syndication format popularity, but if ATOM isn't yet the leader, it will become sooner or later. Possibly in RDF disguise.

From a modelling point of view there is a few, annoying inconsistencies. Let us, for example, compare the <author> element with the <title> element. A resource may have an author, then the author may have a number of properties, such as a name, an email address and a home page. The author for this note is encoded as:

  <author>
    <name>Sigfrid Lundberg</name>
    <uri>http://www.sigfrid-lundberg.se/</uri>
  </author>
      

This is, in my view, a sign of good content modelling when it comes to metadata. A resource may have a title. A title may have different components, for example main title and sub-title. The main and sub parts are properties of the title, not of the resource. The authors of the ATOM spec did not see that way. A feed may have both. This is annoying for semantic puristic nerd like me. Entries, however, may not have sub-titles at all, which in my view is an inconsistency as well.

The biggest flaw is the encoding of category data. A resource belongs to a category, i.e., this membership is a property of the resource. The category may have an identifier and a name, and this name is different depending to language. However, ATOM forces me to use the following construct

  <category xml:lang="en" label="structuralwebdesign" term="Structural web design" />
  <category xml:lang="sv" label="structuralwebdesign" term="Structurell webbdesign" />
      

which in my view is less than excellent. I would have preferred something like

  <category label="structuralwebdesign">
    <name xml:lang="en">Structural web design</name>
    <name xml:lang="sv">Strukturell webbdesign</name>
  </category>
      

These are shortcomings, but I can live with them. But expect changes in this area. The semantic web is here already, and with SKOS becoming a de facto standard on the internet, the syntactic communities will have to come up with something more clever for categorization of syndicated web resources.

blog comments powered by Disqus

Home

Subscribe to Stuff from Sigfrid LundbergSubscribe to my stuff
Subscribe to Stuff from Sigfrid LundbergSubscribe to discussion feed

stuff by category || year

NB

My name is Sigfrid Lundberg. The stuff I publish here may, or may not, be of interest for anyone else.

On this site there is material on photography, music, literature and other stuff I enjoy in life. However, most of it is related to my profession as an Internet programmer and software developer within the area of digital libraries at the Royal Library, Copenhagen (Denmark) and, before that, Lund university (Sweden).

The content here does not reflect the views of my past or present employers

Creative Commons License
This entry (My first serious experience with ATOM) within Sigfrid Lundberg's Stuff, by Sigfrid Lundberg is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.