Planet Reboot - very much a work in progress. I forgot what day it was, I was 2 days out, I wanted this finished by yesterday. Boo. I'm really knackered now, spent half the day washing sheets at the house we keep an eye on, bleuh. But I thought better to make this live, even if it's not 75% finished… It should be stable with the cached page, even if it's functionality isn't 100%
Technotag:
reboot
Quick how-it-works: the reboot
participants
page was scraped and autodiscovery done on each URI to pull out
links to RSS or any RDF/XML like FOAF or DOAP. (I've set up a load
of watchlist subscriptions too, I'll add those in the morning.
) That was all put into an RDF store (Redland). Now hourly a
SPARQL query is made to find all the channels, and then each RSS
feed read from the Web. The feed data is normalised (using Morten's
XSLT) to RSS 1.0 to go into the RDF store. Right now the entries
aren't persisted for long, but there's no reason why they couldn't
be (I'm actively deleting them so I can look at the stuff more
easily). The "Planet" view is another SPARQL query on the
triplestore, this time with the results XML going through XSLT to
present it nicely. The results of the query are cached in a file,
the file included (using PHP) in a preset HTML file.
Here's the query for presentation:
PREFIX rdf:
<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX rss: <http://purl.org/rss/1.0/>
PREFIX content: <http://purl.org/rss/1.0/modules/content/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX sqs: <http://purl.org/stuff/sqs/>
SELECT ?name, ?blog, ?date, ?item, ?title, ?content WHERE
{
?group foaf:name "Reboot" .
?group foaf:member ?agent .
?agent foaf:weblog ?blog .
?blog rdfs:seeAlso ?channel .
?channel rdf:type rss:channel .
?channel rss:title ?name .
?channel rss:items ?x .
?x ?y ?item .
?item rdf:type rss:item .
?item rss:title ?title .
?item dc:date ?date .
?item sqs:content ?content .
?item dc:date ?date .
}
ORDER BY DESC(?date)
LIMIT 10
sqs:content will eventually be XMLLiteral data, normalised from the escaped soup from content.
Yes, I know it could be abbreviated, (and probably simplified) but I've been chopping & changing a lot, so this is what it looks like now.
I've also got a general-purpose query form, more notes, neither of which are really up-do-date with the Planet stuff (or finished).
[Danny]