W3C home > Mailing lists > Public > www-rdf-interest@w3.org > February 2005

Re: Fwd: Syndication model convergence and RDF

From: David Powell <djpowell@djpowell.net>
Date: Thu, 3 Feb 2005 22:02:05 +0000
Message-ID: <105101738.20050203220205@djpowell.net>
To: Danny Ayers <danny.ayers@gmail.com>
CC: www-rdf-interest@w3.org

> PS. Looking good, although rather verbose.
> It rather suggests having an alternate, less explicit version.

Yes there are a number of shortcuts that are possible. I decided to
make it as clear and mechanical as possible (it uses xsl:for-each a
lot) to make it easier to port. I think, for example, that a Java
based version that went straight from SAX to Jena would be a lot more
efficient and concise.

It would also do away with that painful XSLT-based URIRef parser :)

> I'm not really sure of the purpose of feedInstance either.

entryInstance is more useful than feedInstance, but it is essentially
there to decouple the changable feed metadata from the fixed feed URI
- see below...

> Why not collapse e.g.  (random chunk):

a)

> <atomrdf:Feed rdf:about="http://example.org/feed">
> <atomrdf:feedInstance>
> <atomrdf:FeedInstance>

> down to...

> <atomrdf:Feed rdf:about="http://example.org/feed">

I introduced FeedInstance and EntryInstance because feeds and entries
are expected to change. If you detach each instance from the concept
identified by the id, then you can merge two feed documents without
any unintended smushing.

With the RSS1.0 model if you attempt to merge two documents you either
get a bit of a mess (multiple titles etc), or you have to do some
application level interpretation to select which instance of which
entry should be included in the output.

With separate "instance" resources, (which you would probably want to
tag with atomrdf:receivedDate or something), you don't have to remove
statements from the model, you are instead modelling a bunch of
statements, some of which are historic, and some of which are current.
If you aren't interested in the historic data, then you can just drop
it from the view. This seems to fit better with the monotonic RDF
model.

Note that there there is no collection construct that links feeds and
entries, but EntryInstances do have two links back to the feed (via
atomrdf:containingFeed and atomrdf:originFeed). So you can use those
links to get a big list of all entries ever in the feed. I prefer this
than using collection constructs, because both rdf:List and rdf:Seq
are essentially closed which doesn't seem right since feeds are more
like continuous streams.

b)

> <atomrdf:link>
> <atomrdf:Link>

> down to

> <atomrdf:link rdf:parseType="Resource">

Yeah, could do.  It loses the typed node though.  I know that the type
is implied by the RDFS, but I tend not to rely on RDFS inference.


-- 
Dave
Received on Friday, 4 February 2005 08:03:28 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:52:13 GMT