Elias and I gave a lightning presentation of our SPARQL calendar demo at the W3C Tech Plenary SWIG meeting in Mandelieu. Albeit short and glossing over many of the important sticking points that we encountered while creating it, the demo was well received. Since then, we've spent some time polishing up some rough ends (e.g. at the conference the spotty Internet connection required us to rig the demo to run off local copies of FOAF and calendar data accessed via a locally running Joseki service) and have posted the calendar demo for people to play with and discuss. The demo can be accessed live online and an archive of the HTML, JavaScript, and CSS that comprise the demo can be freely downloaded and used.
The two relevant ESW wiki pages contain some details about the demo, but I'd like to spend my next few blog entries presenting some of the lessons that I learned from writing the calendar demo. Almost none of these lessons are new, but as the DAWG prepares to move SPARQL towards CR status (and with the birth of the new public-sparql-dev mailing list), I feel it's worthwhile to present them here. I welcome any comments, opinions, or discussions.
For now, just an overview.
Recently, TimBL and co.'s tabulator has received a great deal of attention as a possible incarnation of a semantic web browser. In my view, the tabulator presents the power of the interconnected semantic web by allowing a user to browse the data arbitrarily and then to tabulate any particular slice through the data. In one breath I could use the tabulator to display my students' contact information (a people-centric view), and in the next I could pivot within the same data and display a course-enrollment tabulation (a course-centric view).
For semantic-web technologies to succeed and thrive—particularly within enterprises—I feel that the capability to build query- and report-based applications is as important as (and complementary to) browser-based applications. Even in the presence of a web of domain-neutral data, we must be able to formulate and evaluate domain-specific, often complex queries. SPARQL, naturally, is the query language of choice for these queries. Of course, we can still benefit (greatly!) from the semantic relations and connectivity of semantic-web data, especially as it enables a new ease of integration (at the query level) of disparate data sources.
The SPARQL calendar demo, then, is an exercise in writing non-trivial SPARQL queries to integrate disparate data sources in answering domain-centric questions. We also took advantage of our work with Kendall on a draft specification of a JSON serialization of SPARQL SELECT and ASK query results, as we crafted the demo as a largely stateless, AJAX-driven web application. Currently, the calendar demo can answer the following requests:
- What people exist in a given RDF dataset?
- Show me all the calendar events of (some of) these people.
- What are the shared interests of (some of) these people?
- Show me events fitting (some of) these shared interests that we can all attend together.
More on the nitty-gritty of the calendar demo to follow...