Atom and RDF

I'm annoyed with Atom.

I was hoping to use Atom to describe a range of things within Mauvespace, such as blogs, logs and so on, but it appears that even though there is a mapping from Atom to RDF, there is no inverse mapping from that RDF vocabulary to Atom, because it is not universally possible to convert in that direction.

For example, the <atom:author> element mandates exactly one child element <atom:name>. Even if an RDF reasoner can assume an author has a name, it does not necessarily know what it is. Also, if you pull Atom data from two feeds written under different pseudonyms into an RDF model and then claim that two authors are the same, the model stops being able to distinguish which name each feed was written under, unless you add a vocabulary to subclass Atom authors as pseudonyms of FOAF people.

These may seem like gripes about the mapping, but it's more serious than that. It means that there is no bijection between an arbitrary RDF model and a valid Atom 1.0 document.

I can see a few options:

  • Map RDF to Atom only. Construct a mapping from any sensible RDF model structure to Atom. That this would not be bijective means that the software could not import from Atom. An alternative RDF version would have to be provided to import triples.
  • Work instead with RSS 1.0, which is pure RDF but is widely considered deprecated and isn't as expressive as Atom anyway. Trivially, however, this is bijective.
  • Map Atom to RDF only. Create a separate Atom store and map into RDF only temporarily when I need to reason upon it or style it with the RDF template code. Lack of bijection means the store could not invariably re-export Atom intact. Synchronising updates bidirectionally between Atom and triple store becomes an issue.

3 Responses to “Atom and RDF”

  1. CJ Hickel Says:

    I am developing using RSS 1.0 and also using modules to extend for my own purposes. Not sure why you stated RSS 1.0 is deprecated. I monitor the RSS-Dev group, and I may have missed something but I have not seen any such discussion. I have seen however, the preference for RSS 1.0 for robust RSS models, particularly in the scientific communities. Not sure why ATOM needs to be compared to RSS 1.0, either you care about RDF or you don't. In you do not, then Atom is a choice. I feel RDF has not come into its own yet but it will someday very soon. Just thoughts.

  2. mauve Says:

    I don't mean that RSS 1.0 is officially deprecated, but I think it's been abandoned by most developers.

    I have seen a lot of comments on various sites saying "Hey, don't you know Atom 1.0 is an IETF standard? Why aren't you supporting that instead of crummy old RSS?"

    Even if that kind of comment comes from a position of ignorance about RDF, Atom was created in the hope of bringing an end to the format wars of RSS which mean that any syndication software has to support at least a half a dozen incompatible formats.

    That is a goal I support, even if I would much rather see consensus around RDF.

    RDF is not going away (indeed, Mauvespace is based around it to the point where it uses a triple store instead of a relational database), but I think its time as a syndication format has been curtailed by the publication of RSS2.0 and Atom specs by people who didn't care about the semantic web.

  3. CJ Hickel Says:

    Yes, the RSS wars have been a hassle, especially before browsers would deliver RSS to the desktop. RSS's greatest success has been in using it for syndication and agreement has been difficult. Even now there is RSS 2.0 and Atom. I try not to overload myself and simply monitor as I am not planning on using either.

    But I would say, that those efforts for both RSS 2.0 and ATOM have the zeal of the semantic web development and on that note I get "confused". When I joined the group I was desparately hoping to learn more on the RSS 1.0 but the focus was on ATOM and XML.

    I see the XML ATOM/RSS 2.0 format as a tool as a common syndication exchange format for common application development and easy file exhange, a more static server/flat file approach. This is effective for its purpose but also limited in purpose.

    I do believe that some focus and development on RDF/RSS should have remained a matter of importance to support the semantic web. RDF is the foundation as you know and tool development for RDF RSS servers has not been promoted.

    You say you are using triples storage instaed of a RDB for this site. Would you share your setup with me and how you approach back-end storages for triples? I am finding it harder to nail down than I anticipated. Most discussions are on the RDF triple storage themselves and not the actual data. Could you please shed some light for me? I am using Zope 2.9.6 at present for development on RH FC6. The more I research the more I realize I need to learn something, I am missing something fundamental and basic. I am trying to answer the question "Where does the DATA go?". You say in a triple store, so what does that mean?

    Thansk so much for your help..

Leave a Reply