-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
David M Johnson wrote: > Comments inline... > > On Mar 16, 2006, at 12:41 PM, Elias Torres wrote: > >> As you might already know I'm involved with W3C working group for SPARQL >> [1]. I met there Henry Story from Sun who is working on an OWL Ontology >> for Atom [2]. He is very interested in seeing his work made an >> specification, but before we support him on that endeavor I would like >> to test it first. An idea we had with Dan Connolly was to add a SPARQL >> endpoint to Roller and use Henry's ontology to model queries against the >> Roller database. >> >> Here's an example query: (return title and summary for all entries >> written by John Doe). >> >> PREFIX atom: <http://www.w3.org/2005/10/23/Atom#> >> SELECT ?title ?summary >> WHERE { >> ?feed atom:entry ?entry ; >> atom:author [ atom:name "John Doe" ]. >> ?entry atom:title [ atom:value ?title ] ; >> atom:summary [ atom:value ?summary ] . >> } LIMIT 20 > > > I like the fact that you are querying against the Atom object model and > not the actual Roller table and column names. > That is precisely one of the benefits from RDF+SPARQL. It provides you with a very flexible data model. > >> For data that looks like this: >> >> [] a :Feed, :Version; >> :title [ :value "Example Feed"; >> :type "text/plain" ]; >> :link [ :href <http://example.org/>; >> :rel iana:alternate ]; >> :updated "2003-12-13T18:30:02Z"^^xsd:dateTime; >> :author [ :name "John Doe" ]; >> :id <urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6>; >> :entry [ a :Entry, :Version; >> :title [ :value "Atom-Powered Robots Run Amok"; >> :type "text/plain" ]; >> :link [ :href <http://example.org/2003/12/13/ atom03.html>; >> :rel iana:alternate ]; >> :id <urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a>; >> :updated "2003-12-13T18:30:02Z"^^xsd:dateTime; >> :summary [ :value "some text"; >> :type "text/plain" ] >> ] . >> >> More examples [6] >> >> SPARQL defines a protocol [3] that allows GET requests to be submitted >> with queries. And it just gets better, I have spec'd out a JSON output >> for the SPARQL results [4]. This means that we could have a very open >> way to query the Roller database and output JSON for Web 2.0 >> applications. > > > Can you give some examples of the types of applications that this > would enable? > I thought you'd never ask. :-) The idea of enabling Roller + SPARQL sparked from conversation with Dan Connolly while creating a Calendaring Demo in Cannes. http://esw.w3.org/topic/SparqlCalendarDemo The demo is capable "merging" several different data sources and displaying results from complex queries like: find any events from upcoming.org that Lee and I can attend based on similar interests, same location. This was all done by issuing SPARQL queries using AJAX and only results were being displayed. All queries were executed by the SPARQL Engine at http://sparql.org/query.html. We are interested in creating web 2.0 mashups that navigate the maze of blog entries, tags, blogrolls, etc but unfortunately there's no publicly available cache of that information. We feel that if we were to enable querying on blogging software we could easily create dynamic web applications that could navigate the blogosphere based on dates, people, tags, etc (at least within Roller installations for now). > >> I can do all of this without making a single change to the >> Roller code or database, except for adding a servlet and a few jars >> (jena) [5]. Jena is BSD license (is that ok for Apache projects). It > > > Yes, BSD is fine for Apache projects. > > >> would be very interesting to test both the Atom+OWL and the SPARQL query >> language on a very popular dataset (JRoller, blogs.sun, etc). I can do >> this in the sandbox at first, but unless the /roller/sparql is being >> hit, it should not be a big deal to the Roller codebase. However, I >> wanted to get a feel for your thoughts on this one. > > > I think the sandbox is the right place to start. > I've begun the effort. - -Elias -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) iD8DBQFEGuYitsNTCOFcV0oRAnNhAJ4kII2dSz7n7q85mOWD+wX/4hW8PgCfSuUY AW8JJvs0H2AGbnDiXC7DMlQ= =MwnG -----END PGP SIGNATURE-----