The Semantic Web comes to ApacheCon
Themes du jour
Column As the latest ApacheCon conference in Amsterdam fades into memory, I take a moment to ponder the themes discussed.
As ever, there was a combination of tutorials, talks, social events, general discussion, and of course the Hackathon (which I was, alas, unable to attend). And, as always, the topics encompassed both techie areas - aspects of Apache projects - and Apache culture. The ASF is concerned more with building thriving communities than with code. The code follows naturally when the community is working well.
It is only to be expected that some themes du jour should crop up, so the appearance of buzzwords such as "Web 2.0" and "Second Life" come as no surprise (fortunately there's no risk of them becoming the dominant theme).
But an older theme also put in an appearance. For the first time, the Semantic Web (semweb) got more than a passing mention; with a reference or two in Steven Pemberton's keynote, a talk by Stefano Mazzochi, a BoF session, and a couple of references in technical presentations of Apache projects.
Stefano gave us the memorable quote "there are no semantics in the semantic web", which comes as something of a welcome contrast to the utterings of its more starry-eyed evangelists.
Is it true? Well, the first premise of the semantic web is that it's machine-readable. Machines don't do semantics. They do do logical reasoning (including, in the context of the semweb, OWL - Web Ontology Language).
The semweb tells us machines everywhere can agree on the meaning of words, and gives us ontologies. Nice idea: for instance, FOAF (Friend Of A Friend) is a fine geek toy, DublinCore (DC) is a pretty generic metadata initiative, and there's a bunch of specialist vocabularies for experts in [subject XYZ].
But even in DC, the semantics remain problematic: for example, if we use dc:date in a report, do we mean the date of the subject, or the date we observed it?
Scratch the surface, and the ambiguities look rather like natural language. Of course, the semweb is designed to deal with that: you derive your new date terms from dc:date, then publish your vocabulary. But scale that, and you're the Eskimo trying to explain the differences between your 60 different types of snow to the rest of the world .
Don't get me wrong. RDF works nicely for making information available in machine-readable form on the web, and has some good real-life applications, for example, the people.apache.org site is driven by FOAF data. RDF as a data model is a direct alternative to SQL: both serve to store structured data and enable query/search functions. The familiar XML serialisation is to RDF as CSV is to SQL: both are well-supported and machine-readable - good things in a site that wants to share data. Although, providing a web service or parsing the same data from HTML isn't exactly rocket science either.
But can the semweb ever scale beyond toys and niches, the way the original web has?
Let's consider something peripherally related to the semweb that has scaled: the feed. It fulfils an important role between the website and the mailinglist, being much better-suited to "push" than the former, and easier to manage as recipient than the latter. The feed and the aggregator are built (somewhat) on semweb principles, managing information at a more granular level than the webpage. But they don't use RDF: they use RSS or Atom. And what is RSS in practice? It's gone the way of HTML, embedding a whole bunch of presentational stuff including images and worse. Insofar as mainstream feed software does support RDF, it works by ignoring anything that tries to be semantic.
The fundamental unit of RDF and the semweb is the statement: Subject, Predicate, Object. By making the statement rather than the page our fundamental unit, we can more easily combine information from multiple sources. Or from the whole world. The semantic web will give us easy, well-ordered access to all the world's information. A great resource indeed. Let's call it "Google". Oh, wait...