Programming the Semantic Web Book Review
For years, the dream of the next generation, machine-readable web has been consistently beyond the grasp of even the most sophisticated of web properties. The main reason for this is the obtuse specifications encapsulating what has been generally coined 'the semantic web'. Does this book finally make sense of these specifications? Read on to find out.
I have been a big fan of machine-to-machine communication since the advent of RPC's (remote procedure calls). I thought Allaire's (then Macromedia's, then Adobe's) WDDX protocol was a good step in the right direction. I was a proponent of SOAP until it became a convoluted bag of hurt, making me jump to more RESTful approaches. And yet through all these communication protocol machinations, I harkened back to World Wide Web creator Tim Berners-Lee's ten year old book Weaving the Web, in which he spent pages painting his vision in words of what the semantic web was all about. And yet, after all that time, there is little more than half-hearted efforts by leading web tech companies and a few university demos to show for it.
This is where Programming the Semantic Web comes into the picture. Written by three Metaweb Technologies employees who have translated some of the work of their day jobs into this book, the authors attempt to infuse enthusiasm and visionary possibilities for this highly structured web of content contexts. While they do a sincere effort at selling the concept, they failed to convince me to drop everything and spend what little available free time I have noodling with semantic web ideas. Alas, having dealt with machine-structured web protocols and trying to foresee how data should be structured for future slicing and dicing, there simply wasn't enough in the book to convince me that the semantic web approach was really the one to place my bets on. The reason the web took off was because HTML was far, far simpler than SGML. Web developers have come a long way since those early <blink> tag days, and are now awash in a sea of various flavors of HTML, CSS, XML, DOM, AJAX, JSON, SQL, and a menagerie of back-end web frameworks and languages. Learning yet another set of lingos (OWL, RDFS, SPARQL) and tools (Jena, SIMILE/Exhibit, etc.) for an end-point value that has yet to be fully realized, I saw the book as a good exercise for the curious but ultimately one that was highly targeted toward anyone actually assigned the task of creating semantic web-friendly integrations.
The general progression of the book starts with the idea of using semantic data, learning about the various semantic web standards and ontologies, followed by putting these constructs into practice by cobbling together various open source toolsets (several commercial/proprietary toolsets are listed as well, though for some unknown reason, one of the most well-designed semantic tools I've used, Altova's SemanticWorks 2008, failed to make the list - check out my review of this and other Altova applications in their comprehensive MissionKit suite) and creating a working semantic web example. Incidentally, a quick note about the code samples - nearly all of them (sans a very few written in Java) are coded in Python, calling upon the CherryPy, networkx, pysqlite, rdflib and wsgiref Python libraries, among others. As such, it's probably a good bet that MetaWeb uses plenty of Python code in their solutions.
The book concludes with the vision, hype and reality of the semantic web. Even the authors conclude, "The revolution of semantic technology is far from complete - we still have a long way to go." Perhaps ten years from now, the semantic web (or its more simple successor) will be worthy of serious intent. For now, the book's content is helpful and interesting to know, but I didn't find it immediately applicable to any projects I am currently working on or have planned in the near future.
Title: Programming the Semantic Web
Authors: Toby Segaran, Colin Evans and Jamie Taylor
Publisher: O'Reilly Media
Price: $39.99 US