[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
solving the extensibility problem
If the Atom working group wants to move along quickly the extensibility
problem has to be solved. A good extensibility model for atom means
that a lot of issues need not be resolved immediately. Those issues
that don't get a wide consensus don't need to be dealt with now. Only
the best understood elements need go into the spec. Further additions
can be left to the extension mechanism, and be integrated in later
revisions when they are better understood. A good extension mechanism
will mean a spec out of the door much sooner than otherwise.
And the best extension mechanism is RDF.
Now some are going to scream to high heaven hearing this. "How do you
think ", they will say jumping up and down, " how on earth do you think
you are going to get consensus on this !? By the time we have finished
the debate about RDF, the end of the universe will be nigh, and the
heavens will be falling upon us!"
So here I propose two ways to do this that should be relatively easy,
and should satisfy those that don't want to touch RDF with a
barge-pole, yet make them really happy because they will have a great
spec to work with real soon.
A COMPARISON
============
The idea is to try to work from both ends: try to get an rdf format
that resembles as closely as possible the current Atom spec, and
perhaps make a few adjustments in the Atom spec if needed.
Essentially we would like the following to be RDF:
<?xml version="1.0" encoding="utf-8"?>
<feed version="draft-ietf-atompub-format-03: do not deploy"
xmlns="http://purl.org/atom/ns#draft-ietf-atompub-format-03">
<head>
<title>Example Feed</title>
<link href="http://example.org/"/>
<updated>2003-12-13T18:30:02Z</updated>
<author>
<name>John Doe</name>
</author>
</head>
<entry>
<title>Atom-Powered Robots Run Amok</title>
<link href="http://example.org/2003/12/13/atom03"/>
<id>vemmi://example.org/2003/32397</id>
<updated>2003-12-13T18:30:02Z</updated>
</entry>
</feed>
So this is the closest I have come to the above [1]
<?xml version="1.0" encoding="utf-8"?>
<Feed xmlns="http://bblfish.net/work/atom-owl/2004-11-09/Atom.owl#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<head rdf:parseType="Resource">
<title>Example Feed</title>
<link rdf:resource="http://example.org/"/>
<updated rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime"
>2003-12-13T18:30:02Z</updated>
<author rdf:parseType="Resource">
<name>John Doe</name>
</author>
</head>
<entry rdf:parseType="Resource">
<title>Atom-Powered Robots Run Amok</title>
<link rdf:resource="http://example.org/2003/12/13/atom03"/>
<id rdf:resource="vemmi://example.org/2003/32397"/>
<updated rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime"
>2003-12-13T18:30:02Z</updated>
</entry>
</Feed>
So what differences does this example reveal? (more elaborate examples
will of course reveal more)
- there is a rdf:parseType="Resource" on the head and the entry element
- there is a rdf:datatype on the date constructs
- the link has a rdf:resource instead of the src
- "Feed" is in captials because it is a node, the rest are lowercase
because they
are relations
Otherwise we have something very similar in the structure.
TWO SOLUTIONS
=============
So we could do one of two things:
A. tweak the current Atom standard just enough so that it is not RDF
but would
without any problems be RDF if the rdf:parseType, rdf:datatype, ...
attributes get added. With a formal model backing it (where the
predicates would be defined using the correct namespace, placed at the
correct http location), this would allow people who want to extend Atom
to add those missing attributes, and thereby turn Atom into RDF, giving
them all the extensibility they desire. Simple xml parsers will have to
be told to ignore any attributes or constructs that are not in the
spec. The people extending Atom in this way will only be able to say it
is atom, if an Atom parser that ignores all the RDF magic can parse the
feed correctly.
B. Bite the bullet and add the rdf magic in the spec. This would mean
that any Atom Feed would be parsable by an RDF parser, as well as a
simple XML one.
TODO
====
Either of these solutions will require a little understanding and
ability to compromise on both sides of the debate. There is an Atom-OWL
list on google [3] that may be a good place to discuss this in more
details. Because clearly there is still a lot of work to be done
getting tidying up the details of the OWL spec to get it closer to what
the Atom group is working on.
Perhaps we could first start off by having everybody out there who
thinks this is a good idea, give some +1, so that we know there is some
momentum behind this.
All the best,
Henry Story
http://bblfish.net/blog/
[1] This is after reading the very good article
http://www.w3.org/TR/rdf-syntax-grammar/
Someone with more experience may do a lot better.
[2] I use the new Atom.owl spec I have made available at
http://bblfish.net/work/atom-owl/2004-11-09/Atom.owl
http://bblfish.net/work/atom-owl/2004-11-09/Atom.html
(ignore the W3C Recommendation on the right hand side :-)
[3] http://groups-beta.google.com/group/atom-owl