<?xml version="1.0" encoding="ISO-8859-1"?>
<opml version="2.0">
<head>
<title>22.opml</title>
<dateCreated>Mon, 22 Oct 2007 00:45:42 GMT</dateCreated>
<dateModified>Mon, 22 Oct 2007 00:45:42 GMT</dateModified>
<ownerName>Tom Morris</ownerName>
</head>
<body>
<outline text="Building the Semantic Web in Blocks" created="Mon, 22 Oct 2007 00:45:42 GMT"><outline text="I've been mulling over Semantic Web things for the last few days - and this idea hit me today which I'm calling 'Blocks'. Blocks could potentially be a difficult project to implement, but let me chuck out an idea and see what people think.&#13;" created="Mon, 22 Oct 2007 00:45:42 GMT"/><outline text="&#13;" created="Mon, 22 Oct 2007 00:45:42 GMT"/><outline text="I think that people have fallen in to a sad loop with regards to the Semantic Web. The Semantic Web is seen as this deeply scary proposition. It has all this &lt;em&gt;weird&lt;/em&gt; stuff - like academics and logicians working on ontologies. Cover that with enough nonsense about &quot;committees&quot; - I mean, urgh! Who wants to be on a committee? We make much better decisions on our own without any expert guidance! Basically, we're stuck in a user education rut.&#13;" created="Mon, 22 Oct 2007 00:45:42 GMT"/><outline text="&#13;" created="Mon, 22 Oct 2007 00:45:42 GMT"/><outline text="I'm thinking that what we need to do, then, is build a really simple software product that is a bit like &lt;a href=&quot;http://pipes.yahoo.com&quot;&gt;Pipes&lt;/a&gt;, but open source.&#13;" created="Mon, 22 Oct 2007 00:45:42 GMT"/><outline text="&#13;" created="Mon, 22 Oct 2007 00:45:42 GMT"/><outline text="Basically, imagine a simple library that hackers could import that would just provide basic functionality. Firstly, it could pull data in from some API sources like Twitter, Jaiku, last.fm, digg and Flickr (using the web-based conversion services that have been or are being built), and pull in RDF data from services like dbPedia, Revyu and other participants in the Linked Open Data project. Bascially, map that stuff into simple functions like flickr.getDataForUser(&quot;tommorris&quot;) etc.&#13;" created="Mon, 22 Oct 2007 00:45:42 GMT"/><outline text="&#13;" created="Mon, 22 Oct 2007 00:45:42 GMT"/><outline text="Secondly, it could pull data in a structured way into the graph (yes, the RDF graph - not the graph that all the Silicon Valley finance types are waffling about) and let you process it. This could be as simple as spidering the site and looking for things like microformats, checking for OpenIDs, running rules and so on.&#13;" created="Mon, 22 Oct 2007 00:45:42 GMT"/><outline text="&#13;" created="Mon, 22 Oct 2007 00:45:42 GMT"/><outline text="Thirdly, we provide a way of chucking the data back out again in different formats. Obviously, RDF/XML, N3, N-Triples, TriX and the other RDF formats - but also some domain-specific XML formats like RSS/Atom, OPML (for subscription or reading lists), KML (for geodata), even SVG - as well as JSON and YAML, and our humble friend (X)HTML. We'd also be able to push output across networks just as easily as into files - this is the Internet after all.&#13;" created="Mon, 22 Oct 2007 00:45:42 GMT"/><outline text="&#13;" created="Mon, 22 Oct 2007 00:45:42 GMT"/><outline text="The idea is that we'd eventually have a sort of standard toolset available so that developers could just download a Semantic Web plugin for their development environment. That means everything from J2EE and Ruby on Rails through to PHP hackers and even kids trying to pimp their MySpace profiles.&#13;" created="Mon, 22 Oct 2007 00:45:42 GMT"/><outline text="&#13;" created="Mon, 22 Oct 2007 00:45:42 GMT"/><outline text="Much as Yahoo! makes it easy with Pipes to just connect components together, we need to build some large, 'primitive'-esque chunks that beginner RDF hackers can try out for size. And we'd keep OWL ontologies and reification well away from it all.&#13;" created="Mon, 22 Oct 2007 00:45:42 GMT"/><outline text="&#13;" created="Mon, 22 Oct 2007 00:45:42 GMT"/><outline text="I've been playing around with a few ideas - mostly using &lt;a href=&quot;http://rdflib.net&quot; rev=&quot;vote-for&quot;&gt;RDFLib&lt;/a&gt; in Python. I wasn't getting very far. RDFLib is nice, but it doesn't seem to support a few nice things like unbound variable filtering (&lt;a href=&quot;http://twitter.com/danbri/statuses/345041212&quot;&gt;danbri&lt;/a&gt;: &quot;not known to be known&quot;), nor does it seem to support a few other SPARQL constructs like CONSTRUCT or DESCRIBE. The only tool that I see that supports the full SPARQL specification is &lt;a href=&quot;http://jena.sourceforge.net&quot; rev=&quot;vote-for&quot;&gt;Jena/ARQ&lt;/a&gt; - which is a Java library. I have something of an animosity towards Java. It may be because of &lt;a href=&quot;http://www.paulgraham.com/gh.html&quot;&gt;indoctrination at the hands of Paul Graham&lt;/a&gt;, or it may be me having an exceedingly long and complex CLASSPATH. Until I find a better way of doing it, I'm sticking with Java and Jena. Sod static typing.&#13;" created="Mon, 22 Oct 2007 00:45:42 GMT"/><outline text="&#13;" created="Mon, 22 Oct 2007 00:45:42 GMT"/><outline text="I'm just in the process of porting the basic infrastructure of some of my little Python hacks over to Jena. Python is great for prototyping in that way (and I've been testing &lt;a href=&quot;http://jython.org&quot;&gt;Jython&lt;/a&gt; for the same reason...).&#13;" created="Mon, 22 Oct 2007 00:45:42 GMT"/><outline text="&#13;" created="Mon, 22 Oct 2007 00:45:42 GMT"/><outline text="I'm not wild about doing it in JavaScript - even though advance is being made by people at the Decentralized Information Group about making a seriously bad-ass JavaScript RDF parser. That's fine for a hack, but if you are going to build a rock-solid site or service, you shouldn't be parsing RDF in the browser but letting the server take the strain. If you don't believe me, Google &quot;bulletproof ajax&quot;, read Jeremy's book and then come back. I'll wait.&#13;" created="Mon, 22 Oct 2007 00:45:42 GMT"/><outline text="&#13;" created="Mon, 22 Oct 2007 00:45:42 GMT"/><outline text="Blocks will not be a replacement for a good RDF library. In fact, Blocks will require a good RDF library. That's part of the reason to use Jena - because it's actually a good library. Blocks, though, is more of an introductory module - a &quot;here's how you do it&quot; module that you can point to in any language or on any platform.&#13;" created="Mon, 22 Oct 2007 00:45:42 GMT"/><outline text="&#13;" created="Mon, 22 Oct 2007 00:45:42 GMT"/><outline text="Also, speaking of RDF libraries - I'd love to know what suggestions people have on the matter of Ruby RDF libraries. I've tried a few and they are all a bit disappointing. Suggestions welcome. Ruby is a great language, and I think decent RDF processing is someting that Ruby needs." created="Mon, 22 Oct 2007 00:45:42 GMT"/></outline></body>
</opml>
