Twine’s dual personality

With Twine, what you see on screen tells only half the story. Pull back the curtain and it reveals a whole new side just itching to play with the other kids on the block.

When I log on and view my profile page, I see this:

Twine screenshot

A Semantic Web client sees this:


<rdf:RDF>
<app:User rdf:about="http://www.twine.com/user/davidseth">
<web:views rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">17</web:views>
<radar:createdDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2008-03-11T19:28:23.722-0500</radar:createdDate>
<radar:lastModifiedDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2008-03-14T18:47:51.546-0500</radar:lastModifiedDate>
<basic:url rdf:resource="http://davidseth.net"/>
<basic:url rdf:resource="http://www.sitepoint.com/articlelist/497"/>
<basic:url rdf:resource="http://boab.info"/>
<basic:url rdf:resource="http://davidseth.net/foaf.rdf"/>
<radar:isPerson rdf:resource="http://www.twine.com/item/1tx4lphj-g5"/>
<app:status rdf:datatype="http://www.w3.org/2001/XMLSchema#string" xml:space="preserve">linkinging it all together in the tropics</app:status>
<app:location rdf:datatype="http://www.w3.org/2001/XMLSchema#string" xml:space="preserve">Townsville, QLD Australia</app:location>
</app:User>
</rdf:RDF>

Now the graph view:

twine-graph-davidseth
Graph 1 – Twine (the yellow dot is me)

While the graph above is not going to become the next piece on display in the Louvre, it does include at least one beautiful thing.

The humble URL

That beautiful thing is the URL. This represents the concept of *me* as <http://www.twine.com/user/davidseth>. Technically this is a URI, but the entire point of the web of data is having things connected and discoverable. This means that I should be able to go to <http://www.twine.com/user/davidseth> and actually GET (do you see the HTTP/REST connection) the meaning.

Things are getting interesting

This is where the magic of linked data comes in. I can take my FOAF file (which is just a text file) and get this graph:

twine-graph-foaf-final
Graph 2 – FOAF (the yellow dot is me and the red dot is Townsville)

And lastly I can GET the place where I live <http://dbpedia.org/resource/Townsville> and this is the graph:

twine-graph-townsville
Graph 3 – Dbpedia (the red dot is Townsville)

Connect the dots

You might have noticed the coloured dots on the above graphs.

  • Graph 1 has a yellow dot that represents me on Twine.
  • Graph 2 also has a yellow dot on representing FOAF me and it has a red dot because I live in Townsville.
  • Graph 3 has a red dot representing Townsville.

Because we are dealing with an RDF graph these separate datasets can be easily merged to create a larger and more complete graph. A path is created and can be easily traversed from my Twine profile -> to my FOAF profile -> to the Dbpedia Townsville entry.

twine linked data

This is the really cool part of the Semantic Web, someone really thought about this stuff :) I can query a data service (Twine), a text file (my FOAF file) and a website (Dbpedia) all with one SPARQL query.

Giant Global Graph

Giant Global Graph

It is just one big Giant Global Graph ready to be mined by creative people to create the next great mashup.

GGG photos copyright: http://www.flickr.com/people/hotmeteor/ – prawn, Cognitive Science Research Unit – Universite Libre de Bruxelles – graph

Free book: Jump Start HTML5 Basics

Grab a free copy of one our latest ebooks! Packed with hints and tips on HTML5's most powerful new features.