Unnatural Resources
While the initial spark of inspiration behind AllPeers centered around the use of peer-to-peer network topologies, I actually think that the biggest innovation is in the way that we structure and manage data. I’ve been active in the XML space for almost a decade, since I first heard the term at an SGML conference in Chicago. Yet despite a fantastic technical specification, tremendous buzz and widespread usage of XML as a serialization format, the standard has yet to live up the the vision of its creator, Jon Bosak. Jon’s idea was that XML would “give Java something to do”, providing structured data instead of mucky HTML that smart client-side apps could munch on. Java may not be the white-hot property that it once was, but the general idea is still as brilliant as it was back in 1997.
The reason for this failure is that XML itself doesn’t provide enough of the complete solution. RDF is in many ways a step in the right direction, filling in the gaps so that global interoperability of structured data can be achieved. But RDF has suffered from excessive complexity and a lack of effective tools for building fully functional applications. The missing pieces, in my view, include:
- Mechanisms for update of replicated resources.
- Efficient client-side storage and retrieval.
- Frameworks for generating attractive user interfaces.
- APIs that any sane developer would actually want to use.
- An approachable system for designing and distributing schemas for describing RDF data structures.
Now I’m not going to sit here and claim that we’re going to singlehandedly make the semantic web a reality. But I do think that AllPeers could have a real impact. In reality, P2P is as much about pushing processing onto the client as it is about making efficient use of network resources. This is essential if an application is to make use of structured data, and it’s especially relevant because we’re hosted inside Firefox. Firefox has a built-in RDF infrastructure, but it takes a lot of effort to do anything useful with the data. You could say that our goal is to make it as easy and intuitive to browse RDF data as it is to surf HTML pages.
AllPeers includes a very efficient storage module for storing and retrieving RDF resources in an SQL database (SQLite, to be specific), so you can process the large volumes of data that are characteristic of real-world applications. We track resource distribution and update replicated resources automatically when the original version changes. We use Relax NG schemas to describe resource formats and associated metadata, so you can enforce validity and organize metadata about these formats in a simple, structured way rather than in messy, fragile code.
Firefox already has a decent framework for creating user interfaces based on RDF, and it’s slated to get a whole lot better. So about the only thing that’s still missing is a less verbose API for non-deities to program to. I have some ideas about this as well. Just imagine an E4X API that hooks automatically into the abstract XML serialization of an RDF resource. That probably sounds like goobledy-gook, but the net net is that it could make RDF programming accessible to a much broader segment of the developer population.
Update: I just noticed that XML.com is running a rather eccentric article on “the difference between XML and RDF”. Enlightenment is a mere click away… or is it?
1 Comment »
Trackback URL RSS feed for comments on this post. TrackBack URI
Leave a comment
Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>







WinFS and Online Content Stores
In an earlier post, I wrote about the need for a online structured content store which would allow access to structured personal content from anywhere, anytime, from any device and by anyone with the appropriate access rights.
The obvious strategy f…
Trackback by OneBigWeb — 12/20/2005 @ 3:03 pm