[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Thought experiment: Using a synthetic feed to find out about other feeds
All,
Note: I'm not attempting to continue the discussion about introspection
and feeds in this post, or at least I want to focus on a different
angle. Let's ignore introspection completely for the moment (I pick it
up again in the P.S. below).
Suppose I want to offer a service in which people can subscribe to a
collection of pointers to Atom feeds. Given that we already have RSS
feeds for doing things like tracking FedEx packages, this doesn't
seem too outlandish. Sample use cases:
o List of blogs that I own and publish for others to read.
o List of blogs that I recommend/link to via an "other blogs" section,
that my friends can use to see what I'm reading.
o List of blogs that have linked to me via an "other blogs" section.
o List of "top 10" blogs by some metric.
Now, I can of course just compose a feed with regular entries, each of
which has a hyperlink off to the relevant web page. But what if I want
to allow automatic processing of the feed into something else useful?
This sounds like another use for synthetic feeds; so, I'm lazily
borrowing from Bob Wyman's example synthetic feed below to see what
this might look like. Imagine this is a feed which you can subscribe
to via http://example.com/bugsbunny/atom-feeds:
<?xml version='1.0'encoding="utf-8"?>
<feed version='0.3' xmlns='http://purl.org/atom/ns#' xmlns:ps='http://www.pubsub.com/xmlns'>
<link rel='alternate' type='text/html' href='http://example.com/bugsbunny'/>
<modified>2004-07-07T18:36:11-04:00</modified>
<author>
<name>Bugs Bunny</name>
</author>
<title><![CDATA[Bugs Bunny's Blogs]]></title>
<entry>
<ps:source-feed>
<title><![CDATA[Title of my First Blog]]></title>
<link rel='alternate' type='text/html' href='http://example.com/bugsbunny/MyFirstBlog'/>
<link rel="service.post" type="application/atom+xml" href="" class="moz-txt-link-rfc2396E" href="http:/example.com/bugsbunny/MyFirstBlog/atompost.cgi">"http:/example.com/bugsbunny/MyFirstBlog/atompost.cgi"/>
</ps:source-feed>
<modified>2004-07-07T19:34:10-04:00</modified>
<issued>2004-07-07T19:34:10-04:00</issued>
</entry>
<entry>
<ps:source-feed>
<title><![CDATA[Title of my Second Blog]]></title>
<link rel='alternate' type='text/html' href='http://example.com/bugsbunny/MySecondBlog'/>
<link rel="service.post" type="application/atom+xml" href="" class="moz-txt-link-rfc2396E" href="http:/example.com/bugsbunny/MySecondBlog/atompost.cgi">"http:/example.com/bugsbunny/MySecondBlog/atompost.cgi"/>
</ps:source-feed>
<modified>2004-07-05T04:44:00-04:00</modified>
<issued>2004-07-05T04:44:00-04:00</issued>
</entry>
</feed>
o Note that this doesn't
make much use of real entry fields, except atom:modified and
atom:issued, which I'm imagining would be calculated in the obvious way
from the originating feeds' entries.
o Most of the interesting information is in the ps:source-feed
element. Which can contain HTML URIs as well as endpoints -- taken
from the originating feeds -- giving URIs for, say, posting. Or other
feed-level pieces of information.
The only oddity about this 'feed' is that, of course, the 'entries' are
themselves synthesized out of non-entry data. But this is exactly what
happens in the FedEx tracking example. So it's a synthetic feed of
synthetic entries, which doesn't seem unreasonable.
Note, of course, that it's perfectly possible to add atom:content
elements to the above with nicely formatted human readable HTML content
pointing at the relevant HTML web pages, if someone subscribes to this
feed in a 'regular' RSS reader. This would be useful.
It would be even more useful, though, if someone used a 'feed tracker'
feature pointing at http://example.com/bugsbunny/atom-feeds;
this could do interesting things with the results, given the knowledge
that what it's pointing at is really a synthesized feed of other
(indirect) feeds. For example, tracking new feeds for possible
subscription in a special area of the UI. (Though actually that seems
like a generally useful feature for _all_ synthetic feeds...)
So, let me ask this: Does this seem like a reasonable use of synthetic
feeds? Does anyone see problems with this sort of usage?
-John Panzer
P.S.: If you look at the feed above closely, you might notice that it
contains elements that you might consider to be 'introspective'. But
that's just a consequence of the synthetic feed format; it falls out
naturally, though of course the choice of precisely which elements to
include is up to the feed generator. So, the question here is: If
this is a reasonable use of the synthetic feed format, would it meet
most or all needs that would be met by a 'pure' introspection API? I
dunno, honestly. What do you think?