On Tue, 09 Nov 2004 10:57:06 -0500, James Robertson
<[EMAIL PROTECTED]> wrote:

> Well, that raises a question - I don't know the answer to it though.  Do
> most aggregators that deal with RSS 1.0 really do RDF, or do they just
> treat it as a variant syndication format?  I know that I didn't bother
> creating a distinct ability to deal with RDF in BottomFeeder - I'd be
> curious as to how others dealt with this one.

It's a very good question. Most desktop aggregators that I've
encountered don't have any general handling of RDF/XML and don't use
the generic model (three or four maybe do?). The proportion increases
somewhat for server-side aggregation, in fact I've seen tools that
depend on the use of other RDF vocabularies (e.g. Chumpalogica uses
FOAF for blogrolls).

But then every single standard RDF tool can read and use RSS 1.0
directly, because it's RDF/XML, the RDF interchange format. That is a
very long list. However you probably wouldn't call many of these
aggregators in the usual sense (e.g.
http://www.semanticwebsearch.com/).

I remain convinced that we'll see an increase in the use of RDF inside
and alongside content management systems and aggregators. It can be
pretty straightforward to add extension and smart-metadata support in
the same way you might add free text search.

The RSS 2.0 approach does more or less make simple things simple, but
it makes complex things unnecessarily difficult, so I think the future
holds diminishing returns there.

Meantime the tools for working with RDF are getting more common and
easier to use. Below I've pasted the core of an RDF-based aggregator
in C# using Carp.

Cheers,
Danny.

KnowledgeBase bloggers = new KnowledgeBase(parserFactory);
bloggers.include(new StreamReader("./bloggers.rdf"), "");
Foaf.Agent pattern = new Foaf.Agent();

foreach (Foaf.Agent agent in pattern.findAllMatching( bloggers ) ) {
  Console.WriteLine( agent[Foaf.name] );
  foreach (Foaf.Document doc in agent.weblog) {
    Console.WriteLine( "Weblog: " + doc );

    KnowledgeBase rss = new KnowledgeBase();
    rss.investigate( doc , new SeeAlsoPropertyInvestigator());

    Rss.Item itemPattern = new Rss.Item();
    foreach (Rss.Item item in itemPattern.findAllMatching( rss ) ) {
      Console.WriteLine( "  - " + item.title );
      Console.WriteLine( "    " + item.description );
    }
  }          
}

from:
http://www.semanticplanet.com/2004/10/announcingSemanticPlanetsRDFLibAndCarp


-- 

http://dannyayers.com

Reply via email to