[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: "Role of RSS in Science Publishing": Atom is in RDF format
I would like to suggest that Atom already is an RDF format. I have
shown that it is [1], we just need to formalize this as I suggested in
[2].
Let us do the journey from RDF triples to Atom format once again. Let
us take the example in the current Atom spec and draw it as a triple
graph.
_f1 ---a------> <Feed>
|--- head---> _e1 ---a-----> <Entry>
| |---title---> "Example Feed"
| |---link----> <http://example.org/>
| |--updated--> "2003-12-13T18:30:02Z"^^xsd:dateTime
| |---author--> _a1 ---a-----> <atom:Person>
| |----name---> "John Doe"^^xsd:string
|
|---entry---> _e2 ---a-----> <Entry>
|---title---> "Atom Powered Robots Run Amok"
|----id-----> <vemmi://example.org/2003/32397>
|--updated--> "2003-12-13T18:30:02Z"^^xsd:dateTime
The above shows an anonymous node _f1, which is of class atom:Feed
related to two other anonymous nodes _e1 and _e2, of type Entry. (That
these are of type entry is still controversial, but it makes the point
I am making easier to understand). _e1 is related to a Person anonymous
noted by the atom:author property. All that is known of the person is
their name "John Doe" which is an xsd:string.
If we now follow the steps of the RDF/XML syntax specification [3] for
converting a graph into XML we get the following transformations.
1. Simple RDF/XML
------------------
Here is perhaps the easiest to understand serialisation of the above
graph.
<rdf:Description>
<rdf:type>
<rdf:Description rdf:about="&atom;Feed">
</rdf:Description>
</rdf:type>
<head>
<rdf:Description>
<rdf:type>
<rdf:Description rdf:about="&atom;Entry">
</rdf:Description>
</rdf:type>
<title>Example Feed</title>
<link>
<rdf:Description rdf:about="http://example.org/">
</rdf:Description>
</link>
<updated>2003-12-13T18:30:02Z</updated>
<author>
<rdf:Description>
<rdf:type>
<rdf:Description rdf:about="&atom;Person">
</rdf:Description>
</rdf:type>
<name>John Doe</name>
</rdf:Description>
</author>
</rdf:Description>
</head>
<entry>
<rdf:Description>
<rdf:type>
<rdf:Description rdf:about="&atom;Entry">
</rdf:Description>
</rdf:type>
<title>Atom Powered Robots Run Amok</title>
<id>
<rdf:Description rdf:about="vemmi://example.org/2003/32397">
</rdf:Description>
</id>
<updated>2003-12-13T18:30:02Z</updated>
</rdf:Description>
</entry>
</rdf:Description>
2. Simplifications
------------------
-simplify empty elements <prop><rdf:Description rdf:about="xxx"/></prop>
to <prop rdf:resource="xxx/>
-typed node element simplification for Feed type
-omitting blank nodes with the rdf:ParseType="Resource"
<Feed>
<head rdf:ParseType="Resource">
<rdf:type rdf:resource="&atom;Entry"/>
<title>Example Feed</title>
<link rdf:resource="http://example.org/"/>
<updated>2003-12-13T18:30:02Z</updated>
<author rdf:ParseType="Resource">
<rdf:type rdf:resource="&atom;Person"/>
<name>John Doe</name>
</author>
</head>
<entry rdf:ParseType="Resource">
<rdf:type rdf:resource="&atom;Entry"/>
<title>Atom Powered Robots Run Amok</title>
<id rdf:resource="vemmi://example.org/2003/32397"/>
<updated>2003-12-13T18:30:02Z</updated>
</entry>
</Feed>
3. OWL and xml schema simplifications
-------------------------------------
- One can specify (apparently) in xml schema that a head, entry and
author tags
automatically have an rdf:ParseType="Resource". These can then be
removed.
- an owl file could specify that atom:href is a subproperty of
rdf:resource, and so
alloow us to replace rdf:resource with atom:href
- finally we don't need to specify the rdf:types of the remaining
elements as these
are specified in the OWL file
<Feed>
<head>
<title>Example Feed</title>
<link href="http://example.org/"/>
<updated>2003-12-13T18:30:02Z</updated>
<author rdf:ParseType="Resource">
<rdf:type rdf:resource="&atom;Person"/>
<name>John Doe</name>
</author>
</head>
<entry>
<title>Atom Powered Robots Run Amok</title>
<id href="vemmi://example.org/2003/32397"/>
<updated>2003-12-13T18:30:02Z</updated>
</entry>
</Feed>
As a result we have something that is very very very close to our
current Atom syntax.
Since we have a format that is rdf it is now very clear how it can be
extended.
Question:
---------
Would this give you what you are looking for?
Henry Story
[1] http://www.imc.org/atom-syntax/mail-archive/msg11317.html
[2] http://www.imc.org/atom-syntax/mail-archive/msg11640.html
[3] http://www.w3.org/TR/rdf-syntax-grammar/