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
