rss1.x and Atom compared via AtomOwl

5 views
Skip to first unread message

Henry Story

unread,
Jul 24, 2006, 10:55:48 PM7/24/06
to rss...@yahoogroups.com, atom...@googlegroups.com
Hi,

The AtomOwl [1] group has been working on backward engineering
the semantics behind the Atom XML format. It seems to be stabilizing
quite well, and is even finding useful applications as a language to
SPARQL enable atom servers.

I started looking at the blogging world a couple of years ago
only, late in the game, which is probably why I have had the patience
to look at the arguments with a fresh eye. I worked on the Atom
group, because I thought that if something like this got started it
was probably because they wanted to go beyond what had been done in
the past. For a long time I thought that Atom could be like RSS1.x:
an rdf and an xml format. But that was not to be. All this to say
that I did not really choose a camp. I just fell into one.

Now that we have an Ontology for Atom it should be really easy
to work out what the similarities and the differences are, since we
have 2 rdf vocabularies to work from. I thought the comparison could
be quite instructive. Perhaps AtomOwl will just have a really simple
mapping to RSS1.1? Perhaps Atom has introduced some new concepts that
would not be so easy to backport to RSS1.x? I really don't know. But
it may be instructive to find out.


Henry Story

[1] http://bblfish.net/work/atom-owl/2006-06-06/

Henry Story

unread,
Jul 25, 2006, 6:46:55 AM7/25/06
to atom...@googlegroups.com, rss...@yahoogroups.com
So here is a first attempt at a comparison. I will use rss1.1 as the
comparison.

@prefix rss1: <http://purl.org/net/rss1.1#> .
@prefix awol: <http://bblfish.net/work/atom-owl/2006-06-06/#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix iana: <http://www.iana.org/assignments/relation/>.

1. The easy bits
================

rss1:Channel vs. awol:Feed
--------------------------

Clearly these two concepts are very similar, nearly identical in
fact.
so perhaps they are owl:sameAs each other.

rss1:Channel owl:sameAs awol:Feed .

rss1:link vs. awol:id
---------------------

As I see it these are very similar concepts. A rss1:link is not a
owl:FunctionalProperty the way the awol:id is.

rss1:title vs. awol:title
-------------------------

Clearly both very similar relations. The awol:title is perhaps
specified more precisely as having a domain of awol:TextContent.
awol:TextContent has 3 subclasses awol:PlainText, awol:XHTML and
awol:HTML. One uses it like this:

[ awol:title "My first entry"^awol:text ] .

So my guess is that

awol:title owl:subPropertyOf rss1:title .

I notice that the rss1:title relation is a very general relation.
The constraints come very much from the rss1 xml syntax which
constrains what can be expressed using that relation. So even though
one can express more using the awol:title relation (namely string in
html and xhtml), the rss1 ontology defines it in a much more general
way.

rss1:description vs. awol:summary
---------------------------------

I think these are the sibling concepts. The same remarks as for the
title elements

rss1:image vs. awol:logo and awol:icon
--------------------------------------

The rss1:image class is clearly a superclass of awol:logo and awol:icon.

awol:logo rdfs:subClassOf rss1:image .
awol:icon rdfs:subClassOf rss1:image .

The rss1.1 spec has a nice extra feature in that it allows one to
associate a title with an image.
One cannot do this in Atom but this is not an ontological limitation.


2. The more difficult bits
==========================

rss1:items
----------

These do not exist in AtomOwl or in Atom XML. There A feed is related
directly to its content, the
entry without the need for an indirection.

[ a awol:Feed;
awol:entry e1;
awol:entry e2;
awol:entry e3;
] .

We could say that the awol:entry relation points directly to the item
in the items list without the indirection.
Perhaps the following N3 rule captures the relation?

{ ?channel rss1:items ?items .
?items rss1:item ?item . } => { ?channel awol:entry ?item . } .


rss1:item vs awol:Entry
-----------------------

An awol:Entry is an anonymous node when found in a feed. One can find
more than one awol:Entry in an awol:Feed with the same awol:id as
long as they have different awol:updated time stamps.

[ a awol:Feed;
awol:entry [ awol:id "tag:eg.com,2005/entry1"^^xsd:anyUri;
awol:updated "2003-11-13T18:30:02Z"^^xsd:dateTime;
awol:title "My first entry"^:text ];
awol:entry [ awol:id "tag:eg.com,2005/entry1"^^xsd:anyUri;
awol:updated "2004-12-15T10:40:22Z"^^xsd:dateTime;
awol:title "My first entry, updated"^:text ];
] .


The awol:id is *not* what the entry is _about_.

Perhaps the closest we can get for an awol:entry is the iana:self
link relation. That has an :Entry point to a location where it can be
found?

An awol:Entry can be a separate document. So it can have a direct
location. Are the following the same?

A.
[ a awol:Entry;
iana:self [ awol:src <http://eg.com/entry.atom>;
awol:title "My first entry"^awol:text;
].


B.
<http://eg.com/entry.atom> a awol:Entry;
awol:title "My first entry"^awol:text .


I am sure this is correct.

The :id is an identifier for an :Entry. Each entry, with a different
updated time stamp, can be thought of as a version perhaps of the
resource named by the id. This enables Atom to be useful to track
changes to metadata.

Now I am not sure what the :about is used for in an rss1.1 feed.
Clearly what seems to be described is a resource. But not it seems at
a time.

Conclusion?
===========

So perhaps this is the biggest difference between atom and RSS1x:
that entries are metadata for states of resources, whereas items are
metadata for resources. Atom permits one to track changes over time,
but not RSS1x.

That should be enough for a first quick attempt at a comparison.

Henry

Reply all
Reply to author
Forward
0 new messages