[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Fwd: Atompub strategy trouble, compromise data model or compromise Atom?



Hi all, I'd really appreciate some advice regarding a choice I have to
make regarding my AtomPub implementation.

The context is that I have a database storing sensor observations,
thousands of them. The sensor observations have a natural grouping,
the datafile in which they were recorded.  These datafiles have
attributes such as the trial they were recorded under, and the
platform on which they were recorded.

I want to create an AtomPub interface to this database.  My
observations naturally translate into entries, and the datafiles
translate in to feeds/collections.  Also, the trial and platform
naturally translate into scheme-controlled categories.

Here's the trouble.  In my domain the categories apply to the
datafiles, not the observations.  Users filter the database by finding
datasets that match their analysis requirement - then download the
observations.  Thus the categories apply at the feed level.

My choices appear to be:
1.  Compromise my data model through the introduction of hierarchical
collections.  Have a collection of datasets, where each of my
datafiles is an entry (with its category information).  Then, the
content of the datafile entry is a href to a feed item that contains
the actual observations. This feed item is essentially the same object
as entry that contains it.  This seems untidy.

2. Compromise the atom spec by allowing category elements in
feeds/collections.  Thus I would filter my workspace to find a
matching feed, then retrieve the entries (observations) in that feed
for subsequent analysis.  Now, the Atom Syndication Format appears
to allow feed-level categories, but AtomPub only appears to support
entry-level categories:

http://www.atomenabled.org/developers/protocol/atom-protocol-spec.php#catdocs

I don't really like either option, but am drawn to the first since it
keeps true to Atom: and probably provides an easier implementation
using open source libraries (Abdera is the curren favourite).

I'd be grateful for any opinions on the relative merits of my choices,
together with and options I've missed.

cheers,
Ian



-- 
Ian Mayo
PlanetMayo Ltd