<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Marc Hibbins &#187; openstandards</title>
	<atom:link href="http://blog.marchibbins.com/category/openstandards/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.marchibbins.com</link>
	<description>Freelance Web developer, blogger</description>
	<lastBuildDate>Wed, 21 Sep 2011 11:42:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>You&#8217;ve Got a Friend in Me</title>
		<link>http://blog.marchibbins.com/2009/07/29/youve-got-a-friend-in-me/</link>
		<comments>http://blog.marchibbins.com/2009/07/29/youve-got-a-friend-in-me/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 09:53:57 +0000</pubDate>
		<dc:creator>Marc Hibbins</dc:creator>
				<category><![CDATA[blogging]]></category>
		<category><![CDATA[linkeddata]]></category>
		<category><![CDATA[openstandards]]></category>
		<category><![CDATA[rdfa]]></category>
		<category><![CDATA[semanticweb]]></category>

		<guid isPermaLink="false">http://blog.marchibbins.com/?p=735</guid>
		<description><![CDATA[Inspired by Mark Birbeck's talk on RDFa and the Semantic Web earlier this month I decided to take some of my own advice and add RDFa to my site. I've now created a FOAF profile here on my blog.]]></description>
			<content:encoded><![CDATA[<p>Inspired by <a title="» Thinking Out Loud Marc Hibbins" href="http://blog.marchibbins.com/2009/07/15/thinking-out-loud/" target="_blank">Mark Birbeck&#8217;s talk on RDFa and the Semantic Web</a> earlier this month I decided to take some of my own advice and add RDFa to my site. I&#8217;ve now created a FOAF profile here on my blog.</p>
<p>Reading through Mark&#8217;s <a title="Mark Birbeck's blog | webBackplane" href="http://webbackplane.com/mark-birbeck/blog" target="_blank">articles at webBackplane</a>, I noticed he has a very simple tutorial on <a title="Getting started with RDFa: Creating a basic FOAF profile | webBackplane" href="http://webbackplane.com/mark-birbeck/blog/2009/04/getting-started-with-rdfa" target="_blank">how to create a basic FOAF profile</a>. Being so straightforward, as RDFa is meant to be, and seeing how I wrote about FOAF in my dissertation almost three years ago now, as well as now having full control of my blog (now that it&#8217;s a WordPress.org installation rather than the free option) &#8211; I&#8217;ve no excuse.</p>
<p>In my last post I discussed RDF vocabularies, sets of agreed-upon and unambiguous terms that allow developers to structure otherwise &#8216;mundane&#8217; structureless content by inserting definitions and making references to which machines and applications can follow to infer meaning and <em>understand</em> topics of any kind. There I gave <a title="» Thinking Out Loud Marc Hibbins" href="http://blog.marchibbins.com/2009/07/15/thinking-out-loud/#An_example" target="_blank">an example</a> that pointed to a specification used to structure book reviews.</p>
<p>FOAF is the <a title="FOAF (software) - Wikipedia, the free encyclopedia" href="http://en.wikipedia.org/wiki/FOAF_(software)" target="_blank">Friend of a Friend</a> vocabulary, an RDF and <a title="Web Ontology Language - Wikipedia, the free encyclopedia" href="http://en.wikipedia.org/wiki/Web_Ontology_Language" target="_blank">OWL ontology</a>, used in the same way, but specificially to describe people, their activities, interests and their relationships to other people.</p>
<p>Created around mid-2000, it is now maintained by <a title="The Friend of a Friend (FOAF) project | FOAF project" href="http://www.foaf-project.org/" target="_blank">The FOAF Project</a>, which is considered to be one of the earliest &#8211; if not the first &#8211; Semantic Web application.</p>
<p>The idea is that given that anyone can put RDF(a) on their Web site, equally, anyone can describe themselves using FOAF. By doing this they are creating themselves a FOAF profile, thus have joined the linked network of people who have already done the same. These people can then begin to create links to each others FOAF profiles and start to create a social network of friends, without the need for a centralised database or website to do it for them.</p>
<p>Then here&#8217;s where RDFa steps in, which now allows developers to implement structured data straight into their HTML mark-up, wrapping existing or new content with an extended set of attributes, meaning they no longer have to host a separate RDF file and rely on either applications indexing that file or creating a link to it from another page to point to it.</p>
<h3><a name="Creating_a_FOAF_profile" class="anchor">Creating a FOAF profile</a></h3>
<p>I already have an <a title="» About Marc Hibbins" href="http://blog.marchibbins.com/about/" target="_blank">&#8216;About&#8217; page</a> on this blog &#8211; a bit of blurb about who I am and what I do. So it&#8217;s here that I&#8217;m implementing my FOAF information.</p>
<p>As said, there&#8217;s no need to link to a separate RDF file if you use RDFa, so really you can add the metadata anywhere, in your headers or footers for example, but that About page is the most relevant place for me and already contains the information and links I want to share anyway.</p>
<p>Firstly I wrap the text in a div tag that defines the FOAF namespace and declares that this div is a &#8216;Person object&#8217;, that the contents of this div describes a person. This is done by referring to the <strong>foaf:Person</strong> type of the FOAF vocabulary:</p>
<blockquote><p>&lt;div <strong>xmlns:foaf=&#8221;http://xmlns.com/foaf/0.1/&#8221; about=&#8221;#me&#8221;<br />
<span style="padding-left:30px;">typeof=&#8221;foaf:Person&#8221;</strong>&gt;</span><br />
<span style="padding-left:30px;">&lt;p&gt;Hello.&lt;/p&gt;</span><br />
<span style="padding-left:30px;">&lt;p&gt;My name is Marc Hibbins.&lt;/p&gt;</span><br />
<span style="padding-left:30px;">&#8230;</span><br />
&lt;/div&gt;</p></blockquote>
<p>I also use the <strong>about</strong> attribute with the value <strong>#me</strong> which is a useful convention to easily enable people to create links to me, more on this later.</p>
<p>The FOAF Person object contains a lot of properties to describe you personally, what kinds of activities you are involved in and terms that create connections to sites or documents relating to you.</p>
<p>Now that my object is created I can start annotating the text with some of these terms, for example my name:</p>
<blockquote><p>&lt;div <strong>xmlns:foaf=&#8221;http://xmlns.com/foaf/0.1/&#8221; about=&#8221;#me&#8221;<br />
<span style="padding-left:30px;">typeof=&#8221;foaf:Person&#8221;</strong>&gt;</span><br />
<span style="padding-left:30px;">&lt;p&gt;Hello.&lt;/p&gt;</span><br />
<span style="padding-left:30px;">&lt;p&gt;My name is <strong>&lt;span property=&#8221;foaf:name&#8221;&gt;</strong>Marc Hibbins<strong>&lt;/span&gt;</strong>.&lt;/p&gt;</span><br />
<span style="padding-left:30px;">&#8230;</span><br />
&lt;/div&gt;</p></blockquote>
<p>And then some links, FOAF has terms for to define your blog and homepage URLs:</p>
<blockquote><p>&lt;a <strong>rel=&#8221;foaf:weblog&#8221;</strong> href=&#8221;http://blog.marchibbins.com/&#8221;&gt;My blog&lt;/a&gt;<br />
&lt;a <strong>rel=&#8221;foaf:homepage&#8221;</strong> href=&#8221;http://www.marchibbins.com&#8221;&gt;My site&lt;/a&gt;</p></blockquote>
<p>It&#8217;s also common to have an image, so likewise if I had I would attach the <strong>foaf:img</strong> term. The full A-Z index of terms can be found on the specification: <a title="FOAF Vocabulary Specification" href="http://xmlns.com/foaf/spec/" target="_blank">http://xmlns.com/foaf/spec/</a>.</p>
<p>FOAF allows you to connect to other online accounts that you own. Mark&#8217;s tutorial has the following example to attach his Twitter account to his person object:</p>
<blockquote><p>&lt;span <strong>rel=&#8221;foaf:holdsAccount&#8221;</strong>&gt;<br />
<span style="padding-left:30px;">&lt;span <strong>typeof=&#8221;foaf:OnlineAccount&#8221;</strong>&gt;</span><br />
<span style="padding-left:60px;">&lt;a <strong>rel=&#8221;foaf:accountServiceHomepage&#8221;</strong></span><br />
<span style="padding-left:80px;">href=&#8221;http://twitter.com/&#8221;&gt;Twitter&lt;/a&gt;</span><br />
<span style="padding-left:60px;">&lt;span <strong>property=&#8221;foaf:accountName&#8221;</strong> &gt;markbirbeck&lt;/span&gt;</span><br />
<span style="padding-left:30px;">&lt;/span&gt;</span><br />
&lt;/span&gt;</p></blockquote>
<p>The <strong>foaf:holdsAccount</strong> definition creates a relationship between the <strong>typeof=&#8221;foaf:Person&#8221;</strong> object and the <strong>typeof=&#8221;foaf:OnlineAccount&#8221;</strong> object that follows (the above mark-up would be contained within said Person object). Note the <strong>foaf:holdsAccount span</strong> allows for multiple <strong>foaf:OnlineAccount</strong> objects inside. The <strong>foaf:accountServiceHomepage</strong> term defines the service homepage, Twitter&#8217;s home page in this case and the <strong>foaf:accountName</strong> property declares Mark&#8217;s username.</p>
<p>As you&#8217;ll notice (as he does, too) although its machine-readable it isn&#8217;t particularly human-readable. Well it <em>is</em>, but it&#8217;s not all that nice. So instead he uses this formatting:</p>
<blockquote><p><strong>His inane comments are available on his</strong><br />
&lt;span rel=&#8221;foaf:holdsAccount&#8221;&gt;<br />
<span style="padding-left:30px;">&lt;span typeof=&#8221;foaf:OnlineAccount&#8221;&gt;</span><br />
<span style="padding-left:60px;">&lt;a rel=&#8221;foaf:accountServiceHomepage&#8221;</span><br />
<span style="padding-left:80px;">href=&#8221;http://twitter.com/&#8221;&gt;<strong>Twitter</strong>&lt;/a&gt;</span><br />
<span style="padding-left:60px;"><strong> account. His ID is &#8216;</strong></span><br />
<span style="padding-left:60px;">&lt;span property=&#8221;foaf:accountName&#8221;&gt;markbirbeck&lt;/span&gt;</span><br />
<span style="padding-left:60px;"><strong> &#8216;.</strong></span><br />
<span style="padding-left:30px;">&lt;/span&gt;</span><br />
&lt;/span&gt;</p></blockquote>
<p>This is better for human reading, though I still think a little convoluted. All I want is a single link, just like I already have. As I&#8217;ve said, RDFa should have no effect on my content &#8211; its workings should be hidden to the reader.</p>
<p>So in my mark-up, rather than the <strong>rel</strong> attribute on <strong>a</strong> tags and using in-line values (values found immediately between the <strong>a</strong> tags), I use the <strong>property</strong> and <strong>content</strong> attributes on <strong>spans</strong>:</p>
<blockquote><p>&lt;span rel=&#8221;foaf:holdsAccount&#8221;&gt;<br />
<span style="padding-left:30px;">&lt;span typeof=&#8221;foaf:OnlineAccount&#8221; <strong></span><br />
<span style="padding-left:70px;">property=&#8221;foaf:accountServiceHomepage&#8221;</span><br />
<span style="padding-left:70px;">content=&#8221;http://delicious.com/&#8221;</strong>&gt;</span><br />
<span style="padding-left:60px;">&lt;span <strong>property=&#8221;foaf:accountName&#8221; content=&#8221;marchibbins&#8221;</strong>&gt;</span><br />
<span style="padding-left:90px;">&lt;a href=&#8221;http://delicious.com/marchibbins&#8221;&gt;View my Delicious</span><br />
<span style="padding-left:110px;">bookmarks&lt;/a&gt; – most things are about the Semantic Web&#8230;</span><br />
<span style="padding-left:60px;">&lt;/span&gt;</span><br />
<span style="padding-left:30px;">&lt;/span&gt;</span><br />
&lt;/span&gt;</p></blockquote>
<p>This allows me to keep my existing prose and is still machine-accessible.</p>
<p>I mentioned being able to connect to other people&#8217;s FOAF profiles, this is done by attaching the <strong>foaf:knows</strong> term to a link to someone&#8217;s similar such page:</p>
<blockquote><p>&lt;a <strong>rel=&#8221;foaf:knows&#8221;</strong> href=&#8221;http://www.w3.org/People/Ivan/<strong>#me</strong>&#8220;&gt;Ivan Herman&lt;/a&gt;</p></blockquote>
<p>Note here that Ivan Herman has employed the <strong>#me</strong> mechanism in his FOAF URI to connect directly to his profile information, rather than to the whole page which contains that information.</p>
<p>I&#8217;ve decided not to connect to friends or colleagues here in this way, again it wasn&#8217;t in my original content and also I use a similar technology instead, called XFN, in the footer of my blog pages. <a title="XFN: Introduction and Examples" href="http://gmpg.org/xfn/intro" target="_blank">XFN</a> deserves a blog post to itself (that hopefully I&#8217;ll get time for), have a look a the source and you&#8217;ll see similar <strong>rel</strong> attributes there for now.</p>
<h3><a name="My_FOAF_profile" class="anchor">My FOAF profile</a></h3>
<p>So here it is, abridged but with all the RDFa shown:</p>
<blockquote><p>&lt;div <strong>xmlns:foaf=&#8221;http://xmlns.com/foaf/0.1/&#8221; about=&#8221;#me&#8221;</span><br />
<span style="padding-left:15px;">typeof=&#8221;foaf:Person&#8221;</strong>&gt;</span></p>
<p><span style="padding-left:15px;">&lt;p&gt;Hello.&lt;/p&gt;</span><br />
<span style="padding-left:15px;">&lt;p&gt;My name is &lt;span <strong>property=&#8221;foaf:name&#8221;</strong>&gt;Marc Hibbins&lt;/span&gt;.&lt;/p&gt;</span><br />
<span style="padding-left:15px;">&lt;p&gt;I&#8217;m an interactive and digital media developer, I build Web applications and</span><br />
<span style="padding-left:40px;">RIAs primarily with tools like Flash, Flex and AIR.&lt;/p&gt;</span></p>
<p><span style="padding-left:15px;">&lt;p&gt;</span><br />
<span style="padding-left:30px;">&lt;span <strong>rel=&#8221;foaf:holdsAccount&#8221;</strong>&gt;</span><br />
<span style="padding-left:60px;">&lt;span <strong>typeof=&#8221;foaf:OnlineAccount&#8221;</span><br />
<span style="padding-left:100px;">property=&#8221;foaf:accountServiceHomepage&#8221;</span><br />
<span style="padding-left:100px;">content=&#8221;http://delicious.com/&#8221;</strong>&gt;</span><br />
<span style="padding-left:90px;">&lt;span <strong>property=&#8221;foaf:accountName&#8221;</span><br />
<span style="padding-left:130px;">content=&#8221;marchibbins&#8221;</strong>&gt;</span><br />
<span style="padding-left:120px;">&lt;a href=&#8221;http://delicious.com/marchibbins&#8221;&gt;View my Delicious</span><br />
<span style="padding-left:140px;">bookmarks&lt;/a&gt; &#8211; most things are about the Semantic Web,</span><br />
<span style="padding-left:140px;">gathered as dissertation research&#8230;</span><br />
<span style="padding-left:90px;">&lt;/span&gt;</span><br />
<span style="padding-left:60px;">&lt;/span&gt;</span><br />
<span style="padding-left:30px;">&lt;/span&gt;</span><br />
<span style="padding-left:15px;">&lt;/p&gt;</span></p>
<p><span style="padding-left:15px;">&lt;p&gt;</span><br />
<span style="padding-left:30px;">&lt;span <strong>rel=&#8221;foaf:holdsAccount&#8221;</strong>&gt;</span><br />
<span style="padding-left:60px;">&lt;span <strong>typeof=&#8221;foaf:OnlineAccount&#8221;</span><br />
<span style="padding-left:100px;">property=&#8221;foaf:accountServiceHomepage&#8221;</span><br />
<span style="padding-left:100px;">content=&#8221;http://friendfeed.com/&#8221;</strong>&gt;</span><br />
<span style="padding-left:90px;">&lt;span <strong>property=&#8221;foaf:accountName&#8221; content=&#8221;hibbins&#8221;</strong>&gt;</span><br />
<span style="padding-left:120px;">I use &lt;a href=&#8221;http://friendfeed.com/hibbins&#8221;&gt;FriendFeed&lt;/a&gt;</span><br />
<span style="padding-left:90px;">&lt;/span&gt;</span><br />
<span style="padding-left:60px;">&lt;/span&gt;,</span></p>
<p><span style="padding-left:60px;">&lt;span <strong>typeof=&#8221;foaf:OnlineAccount&#8221;</span><br />
<span style="padding-left:100px;">property=&#8221;foaf:accountServiceHomepage&#8221;</span><br />
<span style="padding-left:100px;">content=&#8221;http://twitter.com/&#8221;</strong>&gt;</span><br />
<span style="padding-left:90px;">&lt;span <strong>property=&#8221;foaf:accountName&#8221;</span><br />
<span style="padding-left:130px;">content=&#8221;marchibbins&#8221;</strong>&gt;</span><br />
<span style="padding-left:120px;">&lt;a href=&#8221;http://twitter.com/marchibbins&#8221;&gt;Twitter&lt;/a&gt;</span><br />
<span style="padding-left:90px;">&lt;/span&gt;</span><br />
<span style="padding-left:60px;">&lt;/span&gt; and</span></p>
<p><span style="padding-left:60px;">&lt;span <strong>typeof=&#8221;foaf:OnlineAccount&#8221;</span><br />
<span style="padding-left:100px;">property=&#8221;foaf:accountServiceHomepage&#8221;</span><br />
<span style="padding-left:100px;">content=&#8221;http://last.fm/&#8221;</strong>&gt;</span><br />
<span style="padding-left:90px;">&lt;span <strong>property=&#8221;foaf:accountName&#8221;</span><br />
<span style="padding-left:130px;">content=&#8221;marchibbins&#8221;</strong>&gt;</span><br />
<span style="padding-left:120px;">&lt;a href=&#8221;http://www.last.fm/user/marchibbins&#8221;&gt;Last.fm&lt;/a&gt;</span><br />
<span style="padding-left:90px;">&lt;/span&gt;</span><br />
<span style="padding-left:60px;">&lt;/span&gt; etc etc..</span><br />
<span style="padding-left:30px;">&lt;/span&gt;</span><br />
<span style="padding-left:15px;">&lt;/p&gt;</span></p>
<p><span style="padding-left:15px;">&lt;p&gt;</span><br />
<span style="padding-left:30px;">&lt;a <strong>rel=&#8221;foaf:homepage&#8221;</strong></span><br />
<span style="padding-left:50px;">href=&#8221;http://www.marchibbins.com&#8221;&gt;www.marchibbins.com&lt;/a&gt;</span><br />
<span style="padding-left:15px;">&lt;/p&gt;</span><br />
&lt;/div&gt;</p></blockquote>
<p>Notice that I&#8217;m actually using two <strong>foaf:holdsAccount</strong> blocks &#8211; you can, of course, contain all <strong>foaf:OnlineAccount</strong> objects within a single relation, but it seems that WordPress won&#8217;t allow me to do so. When I hit return to start a new paragraph it automatically closes the wrapping <strong>span</strong> and <strong>p</strong> and starts a new paragraph &#8211; so I&#8217;ve had to use two. Otherwise the <strong>p</strong> tags would be inside the <strong>span</strong> (rather than the other way round) but again, the MCE doesn&#8217;t show <strong>p</strong> tags in order for me to edit them in that way.</p>
<p>Similarly, WordPress will wipe clean all your <strong>span</strong> tags if you switch from HTML to Visual mode &#8211; so watch out for that. It also doesn&#8217;t output nice, clean indented HTML in the final page, which is a shame.</p>
<p><a title="» About Marc Hibbins" href="http://blog.marchibbins.com/about/" target="_blank">Find the full version here</a>.</p>
<h3><a name="Validating_RDFa" class="anchor">Validating RDFa</a></h3>
<p>How do you know that any of your metadata is correct &#8211; that it is machine-readable?</p>
<p>I took Mark Birbeck&#8217;s recommendation and used the <a title="Install the Ubiquity RDFa checker" href="http://ubiquity-rdfa.googlecode.com/svn/trunk/install-checker.html" target="_blank">Ubiquity parser bookmarklet</a> to validate my RDFa. Simply publish your mark-up and hit the button and you&#8217;ll see what an RDFa parser sees.</p>
<p>Hopefully it is in fact all correct. I wasn&#8217;t too sure if multiple <strong>foaf:holdsAccount</strong> blocks would be acceptable, but the Ubiquity parser shows the same results nethertheless &#8211; likewise with my use of <strong>property</strong> and <strong>content spans</strong> over <strong>rel</strong> attributes. That said, if anyone has opinions otherwise &#8211; let me know!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.marchibbins.com/2009/07/29/youve-got-a-friend-in-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thinking Out Loud</title>
		<link>http://blog.marchibbins.com/2009/07/15/thinking-out-loud/</link>
		<comments>http://blog.marchibbins.com/2009/07/15/thinking-out-loud/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 10:01:49 +0000</pubDate>
		<dc:creator>Marc Hibbins</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[linkeddata]]></category>
		<category><![CDATA[openstandards]]></category>
		<category><![CDATA[rdfa]]></category>
		<category><![CDATA[ydn]]></category>

		<guid isPermaLink="false">http://blog.marchibbins.com/?p=686</guid>
		<description><![CDATA[On Monday I attended Mark BirbecK's seminar The Possibilities of RDFa and the Semantic Web, an 'in-the-brain' session on RDFa and structured data discussing some of the exciting possibilities created by authors implementing structured data via RDFa into Web pages.]]></description>
			<content:encoded><![CDATA[<p>On Monday I attended <a title="Mark Birbeck | webBackplane" href="http://webbackplane.com/mark-birbeck" target="_blank">Mark Birbeck</a>&#8216;s seminar <a title="Skills Matter : In The Brain of Mark Birbeck: RDFa and the Semantic Web" href="http://skillsmatter.com/podcast/ajax-ria/rdfa-and-the-semantic-web" target="_blank">The Possibilities of RDFa and the Semantic Web</a>, an &#8216;in-the-brain&#8217; session on RDFa and structured data discussing some of the exciting possibilities created by authors implementing structured data via RDFa into Web pages.</p>
<p>We looked at some existing implementations, how to enhance very simple Web pages to be machine-&#8217;readable&#8217; and looked at RDFa as part of the bigger picture &#8211; in correspondence to RDF, Microformats and other technologies, and the Semantic Web.</p>
<p>RDFa (Resource Description Framework in attributes) is a set of extensions to XHTML, a set of attributes intended to be implemented by Web page publishers to introduce extra &#8216;structure&#8217; to the information in documents. These attributes are added at author-time and are completely invisible to the end-user. RDFa is essentially metadata, additional machine-readable indicators that describe the information they annotate without intruding on existing mark-up.</p>
<p>The <a title="RDFa Primer" href="http://www.w3.org/TR/xhtml-rdfa-primer/" target="_blank">W3C&#8217;s RDFa Primer</a> is a good introduction for those unfamiliar with the technology and it conveys the current problem of the separation between the information on the Web readable by humans and that &#8216;readable&#8217; by machine &#8211; the data Web.</p>
<p>Today&#8217;s Web is built predominantly for human consumption. Even as machine-readable data begins to appear on the Web it is typically distributed in a separate file, with a separate format, and very limited correspondence between the human and machine versions. As a result, Web browsers can provide only minimal assistance to humans in parsing and processing data: browsers only see presentation information.</p>
<p>On a typical Web page, an XHTML author might specify a headline, then a smaller sub-headline, a block of italicised text, a few paragraphs of average-size text, and, finally, a few single-word links. Web browsers will follow these presentation instructions faithfully. However, only the human <em>mind </em>understands that the headline is, in fact, the blog post title, the sub-headline indicates the author, the italicised text is the article&#8217;s publication date, and the single-word links are categorisation labels.</p>
<p><img class="aligncenter size-full wp-image-690" title="Presentation vs Semantics" src="http://blog.marchibbins.com/wp-content/uploads/2009/07/rdfa.png" alt="Presentation vs Semantics" width="489" height="310" /></p>
<p>The gap between what programs and humans understand is large. But when Web data meant for humans is augmented with machine-readable hints meant for the computer programs that look for them, these programs become significantly more helpful because they can begin to understand the data&#8217;s structure and meaning.</p>
<p>RDFa is getting a lot of attention lately, not least with developments of HTML5 and the consideration of its implementation with the specification. As of October 2008, <a title="RDFa in XHTML: Syntax and Processing" href="http://www.w3.org/TR/rdfa-syntax/" target="_blank">RDFa in XHTML is a W3C Recommendation</a>, but it was Mark Birkbeck who was first to propose RDFa in <a title="XHTML and RDF" href="http://www.w3.org/MarkUp/2004/02/xhtml-rdf.html" target="_blank">a note to the W3C in February 2004</a> &#8211; so I was looking forward to this.</p>
<h3><a name="Publishing_information_and_publishing_data" class="anchor">Publishing information and publishing data</a></h3>
<p>Mark started with a modern use-case for RDFa, showing us how we can and why we should put structured data in our sites.</p>
<p>He pointed out that online publishing has never been easier. There are a huge number of blogging services offering free, easy to set-up and maintain platforms that are long established and now with sites like Twitter offering the ability to update via SMS or from a mobile device, the Web is enabling a level of ubiquitous publishing that we&#8217;re now completely familiar with.</p>
<p>This is us publishing information, human-readable content. But he says that publishing <em>data</em>, however, still remains hard.</p>
<p>By data, he refers to information &#8216;without prose&#8217; &#8211; think listings on eBay or Yelp, where numbers and stats are what matter over articles of text. He suggests that places like eBay and Yelp are the only places where publishing data is easy. But by using these sites, especially those where the majority of content is user-generated, raises questions as to who actually owns the data.</p>
<p>As a result, people have begun to make their own sites, for maintain their own data. That sounds easy enough, but the problem is that the most accessible means to make websites nowadays is to use the blogging platforms that I mentioned earlier &#8211; those that aren&#8217;t really meant for publishing data, they&#8217;re meant for publishing information.</p>
<p>Mark showed some examples where this is happening, WordPress and Blogger type sites set up by individuals for reviewing films, or books, or restaurants etc &#8211; where each blog &#8216;post&#8217; was an entry for an individual film or book, and details like scores and ratings (the valuable data) is lumped together in the article body &#8211; because that&#8217;s all it <em>can</em> really do &#8211; it&#8217;s meant for prose.</p>
<p>Of course, that&#8217;s fine, for their own sake. They have their content on the Web, on a domain they control. But often this content is of real value, its useful for more than just the author and other people should be see it.</p>
<p>Often though without being on sites such as eBay or Yelp, users will infrequently find them. This is because the norm for finding content is by way of a search engine, i.e. using a <em>machine </em>to find <em>human</em> information. True, some independent sites do rank highly in search engines, but for any newly launched site it is near impossible.</p>
<p>So enter RDFa. By using RDFa, authors can package their existing content in additional mark-up so machines can discriminate between what parts of a long body of text refers specifically to valuable discreet details. Authors can target and isolate individual pieces of text and associate these with a predefined vocabulary of terms specifically for the relevant context of the subject data.</p>
<h3><a name="An_example" class="anchor">An example</a></h3>
<p>The following is Mark&#8217;s example blog post, some typical mark-up for a book review:</p>
<blockquote><p>&lt;div&gt;<br />
<span style="padding-left:30px;">&lt;span&gt;</span><br />
<span style="padding-left:60px;">Title: &lt;span&gt;Chanda&#8217;s Secrets&lt;/span&gt;</span><br />
<span style="padding-left:30px;">&lt;/span&gt;</span></p>
<p><span style="padding-left:30px;">Stars: &lt;span&gt;*****&lt;/span&gt;</span></p>
<p><span style="padding-left:30px;">&lt;span&gt;</span><br />
<span style="padding-left:60px;">I reviewed Stratton&#8217;s newest teen novel, Leslie&#8217;s Journal in October.</span><br />
<span style="padding-left:60px;">I&#8217;d heard about Chanda&#8217;s Secrets and wanted to give it a try&#8230;</span><br />
<span style="padding-left:30px;">&lt;/span&gt;</span></p>
<p>&lt;/div&gt;</p></blockquote>
<p>This is very simple mark-up, perfectly understandable for human consumption, but offers machines agents zero indication as to what the content refers to.</p>
<p>RDF is Resource <em>Description </em>Framework, it&#8217;s purpose is to describe. To do so, it references vocabularies of terms &#8211; definitions that provide agreed-upon tags for developers to use that indicate unambiguous details. Machine applications finding this data can then interpret these as they choose, matching the unique identifying terms to the same vocabulary in <em>their</em> process as reference to exactly what was intended, to infer meaning.</p>
<p>There is a vocabulary for book reviews, for example. The following code takes the mark-up above and adds RDFa, enriching the data for the machines &#8216;viewpoint&#8217;, while having no impact on its presentation &#8211; the human viewpoint:</p>
<blockquote><p>&lt;div <strong>xmlns:v=&#8221;http://rdf.data-vocabulary.org/#&#8221; typeof=&#8221;v:Review&#8221;</strong>&gt;<br />
<span style="padding-left:30px;">&lt;span <strong>rel=&#8221;v:itemreviewed&#8221;</strong>&gt;</span><br />
<span style="padding-left:60px;">Title: &lt;span <strong>property=&#8221;v:name&#8221;</strong>&gt;Chanda&#8217;s Secrets&lt;/span&gt;</span><br />
<span style="padding-left:30px;">&lt;/span&gt;</span></p>
<p><span style="padding-left:30px;">Stars: &lt;span <strong>property=&#8221;v:rating&#8221; content=&#8221;5&#8243;</strong>&gt;*****&lt;/span&gt;</span></p>
<p><span style="padding-left:30px;">&lt;span <strong>property=&#8221;v:summary&#8221;</strong>&gt;</span><br />
<span style="padding-left:60px;">I reviewed Stratton&#8217;s newest teen novel, Leslie&#8217;s Journal in October.</span><br />
<span style="padding-left:60px;">I&#8217;d heard about Chanda&#8217;s Secrets and wanted to give it a try&#8230;</span><br />
<span style="padding-left:30px;">&lt;/span&gt;</span></p>
<p>&lt;/div&gt;</p></blockquote>
<p>A little run through of the code &#8211; the first line adds a reference to the RDFa vocabulary to use, defining a XML namespace, <strong>v</strong>, and declares that everything within this <strong>div</strong> is a review (type <strong>v:Review</strong>). We add <strong>v:itemreviewed</strong> to the title and specify its <strong>v:name</strong> explicitly. This review class has a rating property, so in the same way we add the <strong>v:rating</strong> property to the five stars. Here you can see another example of a lack of machine/human understanding &#8211; we can see five asterisks (they aren&#8217;t even five stars) and work out what they refer to &#8211; but a machine has no idea. So we &#8216;overwrite&#8217; the inline text with the <strong>content</strong> attribute, declaring outright that our rating has a value of <strong>5</strong>. The summary is tagged in the same way then.</p>
<p>Now it&#8217;s not like this means the post would jump straight to the top of Google&#8217;s search results. RDFa isn&#8217;t about solving that problem, but it helps. It allows machines to infer meaning and act accordingly, <em>if </em>the application is capable of doing so.</p>
<p>For example, any search engine could probably find this post as by matching the search term &#8216;Chanda&#8217;s Secrets&#8217; in a standard lookup query. But recently <a title="RDFa » Blog Archive » Google announces support for RDFa" href="http://rdfa.info/2009/05/12/google-announces-support-for-rdfa/" target="_blank">Google added RDFa support</a> and <a title="RDFa » Blog Archive » Yahoo! into Semantic Web" href="http://rdfa.info/2008/03/14/yahoo-into-semantic-web/" target="_blank">Yahoo! have been doing it for over a year</a>, and both sites now have specific applications for parsing RDFa on top of their normal workings.</p>
<p>Google&#8217;s is called Rich Snippets, which returns this kind of result:</p>
<p><img class="aligncenter size-full wp-image-691" title="A Google 'Rich Snippet'" src="http://blog.marchibbins.com/wp-content/uploads/2009/07/google_snippet.jpg" alt="A Google 'Rich Snippet'" width="500" height="107" /></p>
<p>It&#8217;s an enhanced search result that can feature context-relevant details alongside the link, in this case a star-rating and price range indicator. It&#8217;s with this kind of application you can begin to see how adding structured data can make powerful improvements to your site.</p>
<p>Writing a review and having everything lumped together in the body of an article is fine for humans reading the content, they can make sense of the words, numbers and pictures themselves, but a machine can&#8217;t. By annotating your review &#8211; indicating, for example, a restaurant rating or the price of your food &#8211; you make your data machine-processable, so also able to be aggregated with others. This is called data distribution. In this way, you also still &#8216;own&#8217; your content because it originates from your site, but it is as computable as those larger sites and databases.</p>
<h3><a name="More_possibilities" class="anchor">More possibilities</a></h3>
<p>As well as being used as a means to structure data in a desired format, RDFa can also be used to standardise data, again for interoperability and processing.</p>
<p>Mark presented some job aggregation sites that demonstrate this. Each site was made with a different technology (ASP .NET, PHP, static pages &#8211; whatever) and each displayed data in a different way, not only in their presentation but also by using different terminology &#8211; a job &#8216;title&#8217; or &#8216;name&#8217; or &#8216;position&#8217;, for example. RDFa indicators standardise these ambiguities, so third-party sites, such as aggregators, can intelligently collate the data with an understanding of the differences.</p>
<p>He also spoke about joining the linked data cloud, showing sites that could use the unique identifiers of a vocabulary with reference to their own content for an opportunity to enrich their pages. He had a nifty example that populated a book review page by using the relevant class and retrieving the book&#8217;s cover from a external source that had tagged their data in the same way. That match ensured the discovered data would be relevant.</p>
<p>Finally he talked about vertical search. Where RDFa, at least at it&#8217;s most rudimentary, can be used to work with ambiguous words, synonyms and such. A search for a chemical symbol, in traditional lookup search, would not take into account it&#8217;s chemical name or any other term that refers correctly to it, albeit by a different word. With an application that converts said terms to an agreed upon identifier, for example it&#8217;s chemical formula, users could retrieve all references, by whatever name, tagged also with that identifier.</p>
<h3><a name="Q&amp;A" class="anchor">Q&amp;A</a></h3>
<p>The Q&amp;A to close the seminar was also really useful. Here Mark talked about Microformats, in comparison to RDFa, something I was waiting for. He pointed out that Microformats each require their own parser, need references to a separate vocabulary for each microformat used and commented on the standard being centrally maintained by a handful of people. RDF is decentralised, there is no governing body &#8211; that anyone can create a vocabulary (though of course that might not always be the best answer), and really made Microformats seem clunky and second-best to RDFa &#8211; an opinion I hadn&#8217;t held before.</p>
<p>Mark also pointed out that RDFa is arguably more extensible in that can relate to references not on the actual page of implementation. For example on a page where a license is being specified, with RDFa and by using the <strong>about</strong> tag, users can refer to objects linking <em>from </em>their page &#8211; such as listing different licenses for a set of external images or videos, rather than only being able to describe the license for the page itself, the page that these images link from.</p>
<p>Eventually there was some more Semantic Web talk, discussing technologies such as RDF, OWL and ontologies &#8211; but not as much as I&#8217;d hoped.</p>
<p>In fact, a lot of the content of the talk can be found in Mark&#8217;s excellent articles written for A List Apart, his <a title="A List Apart: Articles: Introduction to RDFa" href="http://www.alistapart.com/articles/introduction-to-rdfa/" target="_blank">Introduction to RDFa</a> and <a title="A List Apart: Articles: Introduction to RDFa II" href="http://www.alistapart.com/articles/introduction-to-rdfa-ii/" target="_blank">Introduction to RDFa, Part II</a>.</p>
<p>I <em>highly</em> recommend reading these, he explores the different methods of annotating your pages, how to apply attributes to various kinds of elements, discusses vocabularies, rules and how to express relations &#8211; a great introduction.</p>
<p>Overall, a great talk. He&#8217;s also now uploaded his slides, with a video recording of the session pending.</p>
<p>Here they are:</p>
<p><span style="text-align:center; display: block;"><object style="margin:0px" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=rdfa-and-semweb-090714052727-phpapp02&amp;stripped_title=the-possibilities-of-rdfa-and-the-semantic-web" /><param name="allowfullscreen" value="true" /><embed style="margin:0px" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=rdfa-and-semweb-090714052727-phpapp02&amp;stripped_title=the-possibilities-of-rdfa-and-the-semantic-web" allowscriptaccess="always" allowfullscreen="true"></embed></object></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.marchibbins.com/2009/07/15/thinking-out-loud/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Something for Everybody</title>
		<link>http://blog.marchibbins.com/2009/05/11/something-for-everybody/</link>
		<comments>http://blog.marchibbins.com/2009/05/11/something-for-everybody/#comments</comments>
		<pubDate>Mon, 11 May 2009 17:04:31 +0000</pubDate>
		<dc:creator>Marc Hibbins</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[openstandards]]></category>
		<category><![CDATA[yahoo]]></category>
		<category><![CDATA[ydn]]></category>

		<guid isPermaLink="false">http://blog.marchibbins.com/?p=611</guid>
		<description><![CDATA[Last week I attended a YDN Tuesday, a developer talk hosted by the Yahoo! Developer Network led by Dirk Ginader, discussed Web Accessibility.]]></description>
			<content:encoded><![CDATA[<p>Last week I attended a <a title="Skills Matter - Yahoo! Developer Network" href="http://skillsmatter.com/sponsor/ajax-ria/yahoo-developer-network-php-oauth-web-services/yahoo-developer-network" target="_blank">YDN Tuesday</a>, a developer talk hosted by the <a title="Yahoo! Developer Network Home" href="http://developer.yahoo.com/" target="_blank">Yahoo! Developer Network</a> led by <a title="web output" href="http://blog.ginader.de/" target="_blank">Dirk Ginader</a>, discussing Web Accessibility.</p>
<p>It looks as if these presentations have been running for a while now and they&#8217;ve got a good schedule lined up for the coming months. They discuss a decent section of Web development beyond the pure skills &#8211; JS, DOM, PHP, OAuth, Web services, Yahoo! technologies and by the looks of things have AJAX, Flex and Ruby on Rails in the pipeline.</p>
<p>They&#8217;re also free, which is great when you&#8217;re sitting down to hear Yahoo! experts talk about what they do best!</p>
<p>Dirk Ginader is part of the Accessibility Task Force at Yahoo! and tackled developing fully accessible Web applications at every level &#8211; covering basic markup, best practices with CSS and accessible Javascript, finishing with a discussion on <a title="Introduction to WAI ARIA - Opera Developer Community" href="http://dev.opera.com/articles/view/introduction-to-wai-aria/" target="_blank">WAI-ARIA</a>, offering some of his insight gained from working with the standard.</p>
<p>Most people are familiar with the common three-layer development of Web sites, building a core HTML structure, styling with CSS and enhancing functionality with Javascript. In his talk though, Dirk introduced a five-layer development method and spoke about this throughout the sessions.</p>
<p><img class="aligncenter size-full wp-image-651" title="Dirk Ginader's 5-layer Web development" src="http://blog.marchibbins.com/wp-content/uploads/2009/05/3-layer_vs_5-layer_web.jpg" alt="Dirk Ginader's 5-layer Web development" width="500" height="340" /></p>
<p>Building on top of the common three-layer method, Dirk spoke of adding levels of &#8216;CSS for Javascript&#8217;, i.e. adding extra CSS <em>if </em>Javascript is available and enhancing the interface to promote this &#8211; and a final layer of WAI-ARIA, the W3C standard for accessible rich Internet applications.</p>
<h3><a name="The_core_layers_-_HTML,_CSS,_JS" class="anchor">The core layers &#8211; HTML, CSS, JS</a></h3>
<p>First though Dirk went into the basics, giving a good exploration of the first shared three layers &#8211; reiterating the importance of good, clean HTML, appropriate and logical tab ordering, form building and that it should, obviously, be usable without CSS and Javascript.</p>
<p>Again he reiterated the importance of dividing CSS and Javascript, simply, as it always should be, that CSS is for styling and Javascript is for interaction. CSS can be used achieve a lot of interactivity functionality that would otherwise be controlled by Javascript, but these are akin to hacks, says Dirk.</p>
<p>Another accessibility oversight is the assumption that all users have a mouse or pointing device &#8211; and as such, all design is appropriated for mouse control. If your mark-up is good and each &#8216;level&#8217; of your development has been tested and is robust, your site should be completely navigable with just the Tab and Enter keys. Also, any CSS that uses the mouse-only <strong>:hover</strong> effects, should also use <strong>:focus</strong>, which includes active tabbing.</p>
<p>I always feel that approaching Web development in view to adhere to strict standards and to maintain accessibility always helps produce cleaner code and generally minimise errors and cross-browser inconsistencies in the long run anyway.</p>
<p>Dirk spoke about the usefulness of the <strong>focus()</strong> Javascript function, in bringing users&#8217; attention to alerts, changes, altered screen states and such &#8211; especially handy for users with screen readers or screen magnifiers.</p>
<p>On the subject of screen readers, Dirk spoke about how they really work, how they see a Web page and handle the content &#8211; talking about loading systems and various reading modes. This was great becausue although I&#8217;ve designed for screen readers before, I&#8217;ve never seen one being used or had a go myself &#8211; and I&#8217;m sure I&#8217;m not the only one.</p>
<h3><a name="CSS_for_Javascript" class="anchor">CSS for Javascript</a></h3>
<p>The first extra level of Dirk&#8217;s five-layer development is in adding CSS when Javascript is available. This means your interface can be altered knowing that Javascript can be used.</p>
<p>You can use Javascript to append an additional class to page elements so that you can use CSS to target and style them. For example, the following line of code adds a class named &#8216;js&#8217;:</p>
<blockquote><p>document.documentElement.className += &#8221; js&#8221;;</p></blockquote>
<p>You would then style with the follow CSS, where the first declaration is global and the second applied only if Javascript has been found and appended said &#8216;js&#8217; class to an element:</p>
<blockquote><p>.module {<br />
<span style="padding-left:30px;">/* Both layouts */</span><br />
}<br />
.js .module {<br />
<span style="padding-left:30px;">/* Javascript layout */</span><br />
}</p></blockquote>
<p>Enhancing a page in this way isn&#8217;t anything new, but it is very cool.</p>
<p>If you&#8217;ve heard of the term Progressive Enhancement, then you&#8217;ll know why. If you&#8217;ve not, you may have heard of Graceful Degradation. Both are methods for handling differences in browser rendering and capability, they&#8217;re similar but subtly different.</p>
<p>Graceful degradation, or &#8216;fault tolerance&#8217;, is the controlled handling of single or multiple errors &#8211; that when components are at fault, content is not compromised. In developing for the Web, it means focusing on building for the most advanced and capable browsers and dealing with the older, second.</p>
<p>Progressive enhancement turns this idea on it&#8217;s head, focusing on building a functioning core and enhancing the design, where possible, when capable.</p>
<p>There are a good few articles on <a title="List Apart: A List Apart" href="http://www.alistapart.com/" target="_blank">A List Apart</a> about that I <em>strongly </em>recommend bookmarking:</p>
<ul>
<li><a title="A List Apart: Articles: Understanding Progressive Enhancement" href="http://www.alistapart.com/articles/understandingprogressiveenhancement/" target="_blank">Understanding Progressive Enhancement</a> by <a title="Easy! Reader" href="http://www.easy-reader.net/" target="_blank">Aaron Gustafson</a></li>
<li><a title="A List Apart: Articles: Progressive Enhancement with CSS" href="http://www.alistapart.com/articles/progressiveenhancementwithcss/" target="_blank">Progressive Enhancement with CSS</a> by Aaron Gustafson</li>
<li><a title="A List Apart: Articles: Progressive Enhancement with JavaScript" href="http://www.alistapart.com/articles/progressiveenhancementwithjavascript/" target="_blank">Progressive Enhancement with JavaScript</a> by Aaron Gustafson</li>
<li><a title="A List Apart: Articles: Test-Driven Progressive Enhancement" href="http://www.alistapart.com/articles/testdriven/" target="_blank">Test-Driven Progressive Enhancement</a> by <a title="Scott Jehl, Web Designer/Developer, Boston, MA | Website, Web Application, and User Interface Design and Development" href="http://scottjehl.com/" target="_blank">Scott Jehl</a></li>
</ul>
<p> </p>
<p>The last article, Scott Jehl discusses enhancement with both CSS and Javascript and has a similar trick of appending class names to page objects once Javascript has been detected. He talks about how to test those capabilities and offers a testing script, <a title="testUserDevice by Scott Jehl, Filament Group" href="http://www.alistapart.com/d/testprogressiveenhancement/testUserDevice.js" target="_blank">testUserDevice.js</a>, which runs a number of tests and returns a &#8216;score&#8217; for your interpretation. As well as offering an amount of detail on top of the alone recognition of Javascript, it even stores the results in a Javascript cookie so the tests don&#8217;t have to be run on every page load.</p>
<h3><a name="WAI-ARIA" class="anchor">WAI-ARIA</a></h3>
<p>The final layer of hotness is <a title="WAI-ARIA Overview" href="http://www.w3.org/WAI/intro/aria.php" target="_blank">WAI-ARIA, the W3C standard</a>, the recommendation for making today&#8217;s RIA and heavily client-scripted Web sites accessible.</p>
<p>WAI-ARIA adds semantic metadata to HTML tags, allowing the developer to add descriptions to page elements to define their roles. For example, declaring that an element is a &#8216;button&#8217; or a &#8216;menuitem&#8217;. In Dirk&#8217;s words, it maps existing and well known OS concepts to custom elements in the browser.</p>
<p>As well as page elements, page sections or &#8216;landmarks&#8217; can be described too &#8211; declaring, for example, a page&#8217;s &#8216;navigation&#8217;, &#8216;banner&#8217; or &#8216;search&#8217; box &#8211; these look very similar to HTML 5.</p>
<p>There&#8217;s a great introduction <a title="Introduction to WAI ARIA - Opera Developer Community" href="http://dev.opera.com/articles/view/introduction-to-wai-aria/" target="_blank">on the Opera Developers site</a>.</p>
<p>WAI-ARIA is not something I&#8217;ve used before, but looking at the specification there seems to be <em>a lot</em> of definitions you can add into you code &#8211; it looks very extensive.</p>
<p>Although it is ready to use, it will apparently invalidate your code unless you specify a specific DTD. Dirk didn&#8217;t actually point to where you can find these, though I&#8217;ve seen that <a title="The Paciello Group Blog - How Can I Validate (X)HTML + ARIA?" href="http://www.paciellogroup.com/blog/?p=107" target="_blank">you can make them yourself</a>, however I don&#8217;t know if this is what he was suggesting.</p>
<p>Dirk has also uploaded his slides onto Slideshare, including the code I&#8217;ve used above, <a title="The 5 Layers of Web Accessibility" href="http://www.slideshare.net/ginader/the-5-layers-of-web-accessibility" target="_blank">you can see them here</a>:</p>
<p><span style="text-align:center; display: block;"><object width="425" height="355" data="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=2009-05-05ydntuesday-the5layersofwebaccessibility-090505160658-phpapp02&amp;stripped_title=the-5-layers-of-web-accessibility" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=2009-05-05ydntuesday-the5layersofwebaccessibility-090505160658-phpapp02&amp;stripped_title=the-5-layers-of-web-accessibility" /><param name="allowfullscreen" value="true" /></object></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.marchibbins.com/2009/05/11/something-for-everybody/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Keep it to Yourself</title>
		<link>http://blog.marchibbins.com/2009/05/06/keep-it-to-yourself/</link>
		<comments>http://blog.marchibbins.com/2009/05/06/keep-it-to-yourself/#comments</comments>
		<pubDate>Wed, 06 May 2009 21:12:45 +0000</pubDate>
		<dc:creator>Marc Hibbins</dc:creator>
				<category><![CDATA[openstandards]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.marchibbins.com/?p=579</guid>
		<description><![CDATA[It's been a good while since Twitter added their OAuth beta phase, but what with the recent 'Sign in with Twitter' announcement, which enhances that OAuth beta, I thought I'd use this is my excuse to say what I wanted to say now.]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a good while since Twitter added their OAuth beta phase, I wanted to write about it when it first came about but never had the chance &#8211; same story with when they were under fire from phishing attacks in January and the real need for stronger security became so apparent. Anyway what with the <a title="4th Time Around - Marc Hibbins" href="http://blog.marchibbins.com/2009/04/23/4th-time-around/">recent &#8216;Sign in with Twitter&#8217; announcement</a>, which enhances the OAuth beta, I thought I&#8217;d use this is my excuse to say what I wanted to say.</p>
<p>If you&#8217;re unfamiliar with <a title="OAuth - An open protocol to allow secure API authorization in a simple and standard method from desktop and web applications." href="http://oauth.net/" target="_blank">OAuth</a>, it&#8217;s an open protocol standard for user authentication. It works by allowing a user of one platform to grant a secondary platform access to their information (stored by the first platform) without sharing their login credentials and only exposing data they choose.</p>
<p>When a user visits a &#8216;consuming platform&#8217; (the secondary application, that is) it passes a request to the native platform, the &#8216;service provider&#8217;, which returns a login request for the user to complete. The user then logs in to the native platform, proceeds to inform the platform to grant access to their data when the secondary application asks for it &#8211; and is then returned to that consuming platform, &#8216;logged in&#8217; and ready to go.</p>
<p>The crucial problem with Twitter&#8217;s API is that, currently, to access password protected services, for example the ability to publish tweets, this is not the mechanism facilitating the data access. The method they use instead is seriously flawed, and dangerous.</p>
<p>Right now, a website or desktop application such as <a title="TweetDeck: a simple and fast way to experience Twitter" href="http://www.tweetdeck.com/" target="_blank">TweetDeck</a> or <a title="Twitpic - Share photos on Twitter" href="http://twitpic.com/" target="_blank">Twitpic</a>, simply asks for your login details with a regular login prompt. I think from that point onwards, there is a huge amount of misunderstanding to what is actually going on.</p>
<p>Users <em>are not</em> logging in to Twitter at this point, instead they are just <em>telling the third-party application what their password is</em>. Thereafter, the application uses that password as it chooses.</p>
<p>Instead of telling Twitter that you&#8217;d like a certain application to access your data, you are instead freely handing over your password to the application, you hope in confidence, that it won&#8217;t be stored, sold or misused thereafter.</p>
<p>Incredibly, this has gone on for a very long time. It seems the general majority of Twitter users have come to accept handing out their password to completely unknown sources. True, those aware of the dangers or generally security-wary tend only to use a select few services, but there are so many applications built on Twitter&#8217;s platform and a lot of them offer very niche, almost &#8216;throwaway&#8217; services, that I can&#8217;t believe the ease and almost <em>disdain </em>with which so many hand out their login credentials without concern.</p>
<p>OK &#8211; it&#8217;s not like it&#8217;s your giving away your online banking details, but I can&#8217;t imagine this happening with any other type of account &#8211; social media or otherwise &#8211; email, Facebook or any other website, if they offered an open platform for these kind of applications to be built upon.</p>
<p>It&#8217;s become as increasingly accepted as the request has become more common. The problem with there being so many applications, especially the &#8216;disposable&#8217; kind, is that users can forget when and where they have given their details to whom.</p>
<p>Say a user tries a new application but it seems not to work, it will be easily forgotten &#8211; perhaps put down to teething problems of the app or maybe it&#8217;s just not a very good app and &#8220;..nevermind&#8221;, they might not have been that interested anyway. By this point, if it was purely an attempt to capture your details, it&#8217;s too late.</p>
<p>Admittedly, and thankfully, I&#8217;ve never heard of anything so blatant and I hope if anything so obvious came around that the Twitter community would raise awareness and Twitter would respond accordingly.</p>
<p>But of course, the real targets for these vulnerabilities are the users who aren&#8217;t aware of the danger and aren&#8217;t expecting to have to look out for fishy, or phishy, sites &#8211; and the problem is informing those people.</p>
<p>If you&#8217;re reading this blog &#8211; that being a Web development blog and you&#8217;ve sat this far reading a post about user authentication &#8211; chances are you&#8217;re Web-savvy and you&#8217;re exactly <em>not </em>the type of person I&#8217;m talking about. You&#8217;re probably also not the kind of person who reuses passwords, but you also know that&#8217;s not uncommon.</p>
<p>In a scenario where a password is breached, if the email account that you&#8217;ve registered with Twitter uses the same password as the password you&#8217;ve just lost to the phishing attack, there would be no question that an attacker wouldn&#8217;t try the same password with every other account you&#8217;re receiving email from and connected to.</p>
<p>Then that becomes a serious breach.</p>
<p>But like I say, I think I&#8217;m preaching to the choir &#8211; and maybe being a bit harsh about people&#8217;s common sense.</p>
<h3><a name="Twitter_and_OAuth" class="anchor">Twitter and OAuth</a></h3>
<p>Anyway I wanted to talk about OAuth. Twitter&#8217;s implementation is described on their <a title="Twitter API Wiki / Sign in with Twitter" href="http://apiwiki.twitter.com/Sign-in-with-Twitter" target="_blank">wiki page for &#8216;Sign in with Twitter&#8217;</a>, it performs accordingly:</p>
<p style="text-align: center; "><img class="alignright size-full wp-image-587" title="Sign in with Twitter workflow" src="http://blog.marchibbins.com/wp-content/uploads/2009/05/twitter_oauth.jpg" alt="Sign in with Twitter workflow" width="335" height="495" /></p>
<ul>
<li>If the user is logged into Twitter.com and has already approved the calling application, the user will be immediately authenticated and returned to the callback URL.<br />
 </li>
<li>If the user is not logged into Twitter.com and has already approved the calling application, the user will be prompted to login to Twitter.com then will be immediately authenticated and returned to the callback URL.<br />
 </li>
<li>If the user is logged into Twitter.com and has not already approved the calling application, the OAuth authorisation prompt will be presented. Authorising users will then be redirected to the callback URL.<br />
 </li>
<li>If the user is not logged into Twitter.com and has not already approved the calling application, the user will be prompted to login to Twitter.com then will be presented the authorisation prompt before redirecting back to the callback URL.<br />
 </li>
</ul>
<p>You may have already seen it in action if you&#8217;ve used Kevin Rose&#8217;s new startup <a title="We Follow: A User Powered Twitter Directory" href="http://wefollow.com/" target="_blank">WeFollow</a>, the &#8216;user powered Twitter directory&#8217;. You can see which applications (if any) you&#8217;ve granted access to in your account settings at <a title="Twitter / Connections" href="http://twitter.com/account/connections" target="_blank">http://twitter.com/account/connections</a>.</p>
<p>Flickr also uses OAuth, you may have seen it there if you&#8217;ve tried uploading images with a third-party application.</p>
<p>Aside from being more secure as a technical solution, Twitter&#8217;s adoption of OAuth could have a very positive domino effect on similar and future applications. In fact, it&#8217;s <a title="Why Twitter's New Security Solution Could Pave the Way to a Future Web of Mashups - ReadWriteWeb" href="http://www.readwriteweb.com/archives/why_twitters_new_oauth_matters.php" target="_blank">been predicted that it&#8217;ll &#8216;pave the way&#8217;</a> for a whole host of new apps and more mash-ups to come &#8211; presumably using both Twitter&#8217;s data or for new platforms to be built upon. I imagine this prediction sees a point where users are familiar with the authentication process, confident that their data can be accessed securely and within their control.</p>
<p>As I said in my post about &#8216;Sign in with Twitter&#8217; &#8211; Twitter is an incredible tool and is becoming ever more powerful and recognised as such. Although it&#8217;s not like it&#8217;s popularity won&#8217;t increase anyway, but if some people&#8217;s qualms and easy criticisms of Twitter, of which security always scores highly, are solved by these kind of platform advances, there will be no denying it as a leader, rather than a <em>contender</em>, in the social Web landscape.</p>
<p>It must be said though, OAuth isn&#8217;t infallible. Only two weeks ago, Twitter <a title="Twitter Blog: What's The Deal with OAuth?" href="http://blog.twitter.com/2009/04/whats-deal-with-oauth.html" target="_blank">took down their OAuth support</a> in response to the uncovering of a vulnerability, though they weren&#8217;t the only ones affected.</p>
<h3><a name="And_then_there's_phishing.." class="anchor">And then there&#8217;s phishing..</a></h3>
<p>I mentioned the phishing attacks that Twitter suffered in January &#8211; <a title="Twitter Blog: Monday Morning Madness" href="http://blog.twitter.com/2009/01/monday-morning-madness.html" target="_blank">thirty-three &#8216;high-profile&#8217; Twitter accounts were phished and hacked</a>. It saw a good effort on Twitter&#8217;s part for reacting quickly and fixing the problems, only two days prior they had <a title="Twitter Blog: Gone Phishing" href="http://blog.twitter.com/2009/01/gone-phishing.html" target="_blank">released a notification</a> to be aware of such scams.</p>
<p>During this time, Twitter was a great source for debate and argument over how to resolve its own issues.</p>
<p>I follow a lot of developers and platform evangelists including <a title="Alex Payne (al3x) on Twitter" href="http://twitter.com/al3x" target="_blank">Alex Payne</a>, Twitter&#8217;s API Lead, <a title="Twitter / Alex Payne: If I had slept any worse l ..." href="http://twitter.com/al3x/status/1097572111" target="_blank">as he battled through</a> the security breach. Another is <a title="Aral Balkan (aral) on Twitter" href="http://twitter.com/aral" target="_blank">Aral Balkan</a> and between the two of them they voiced some fair criticisms (<a title="Twitter / Aral Balkan: @al3x You need to educate  ..." href="http://twitter.com/aral/status/1096857946" target="_blank">1</a>, <a title="Twitter / Aral Balkan: RT @blaine: I don't sympat ..." href="http://twitter.com/aral/status/1097090081" target="_blank">2</a>, <a title="Twitter / Aral Balkan: @al3x Of course it does. T ..." href="http://twitter.com/aral/status/1096855679" target="_blank">3</a>) and argued out a lot of issues (<a title="Twitter / Alex Payne: @tensigma Just saying that ..." href="http://twitter.com/al3x/status/1096082362" target="_blank">1</a>, <a title="Twitter / Alex Payne: @aral Phishing attacks and ..." href="http://twitter.com/al3x/status/1095896108" target="_blank">2</a>).</p>
<p>As Alex says, OAuth does not prevent phishing, Twitter are aware of this. The very premise of phishing, that of dressing a trap as a legitimate and trusted source, can be extended to OAuth implementations, too &#8211; but it does make it easier to handle and by using OAuth, instead of Basic HTTP Auth, builds user trust along the way.</p>
<p>Up until now, Basic Auth has been a large part of Twitter&#8217;s API success &#8211; OAuth is an additional high hurdle for new developers. <a title="Twitter API Wiki / Authentication" href="http://apiwiki.twitter.com/Authentication" target="_blank">Twitter admit</a>, they&#8217;ll give at least 6 months lead time before making any policy changes and they&#8217;ve no plans in the near term to <em>require </em>OAuth.</p>
<p>Alex did a good job of pointing out helpful resources and blog posts for those joining the debate. One was <a title="Effluxion - OAuth, Phishing, and Twitter" href="http://blog.joncrosby.me/post/68470033/oauth-phishing-and-twitter" target="_blank">Jon Crosby&#8217;s post about the phishing attacks</a>, which, <a title="Twitter / Alex Payne: Another great explanation  ..." href="http://twitter.com/al3x/status/1097776985" target="_blank">as he says</a>, is a great explanation of the correlation of OAuth to phishing attacks &#8211; which is to say, essentially none. It&#8217;s short post but clearly outlines the difference between authentication and authorisation &#8211; and in Alex posting it, shows Twitter&#8217;s awareness of the problem and understanding of what OAuth is and is not.</p>
<p>Another was <a title="Phishing Fools? - Lachstock" href="http://log.lachstock.com.au/past/2008/4/1/phishing-fools/" target="_blank">Lachlan Hardy&#8217;s post about phishing</a> (<a title="Twitter / Alex Payne: Smart folks like @lachlanh ..." href="http://twitter.com/al3x/status/1096061528" target="_blank">via</a>), which extends <a title="Adactio: Journal - The password anti-pattern" href="http://adactio.com/journal/1357" target="_blank">Jeremy Keith&#8217;s proposed &#8216;password anti-pattern&#8217;</a>. Keith thinks that accessing data by requesting login credentials is unacceptable, a cheap execution of a bad design practice. But interestingly he goes on to talk about the moral and ethical problems that developers experience &#8211; that although users will willingly give out their passwords and Basic Auth is an easier process to implement, as well as being a lower barrier of entry for users (again, look at Twitter&#8217;s success with it), we actually have a duty not to deceive them into thinking that it is acceptable behaviour.</p>
<p>Keith also talks about the pressure of the client, their need to add value to their applications &#8216;even when we know that the long-term effect is corrosive&#8217; &#8211; but when I read that, posted from Alex remember, and having read <a title="Alex Payne &amp;mdash; The Thing About Security" href="http://al3x.net/2009/01/12/the-thing-about-security.html" target="_blank">his thoughts on security from his own blog</a>, I wonder if Alex is hinting at something about Twitter outside of his control..</p>
<p>He is the only Twitter employee I follow so I tend to think of him the representative, but probably should think of them separately. <a title="Aral Balkan - The password anti-pattern and phishing scams - it's Twitter's fault" href="http://aralbalkan.com/1843" target="_blank">Aral&#8217;s post about the phishing scam</a> points the blame squarely at &#8216;Twitter&#8217;, but only in the last paragraph does he say so &#8216;stop blaming application developers&#8217; &#8211; and at that point I realise the devs at Twitter are just trying to do their jobs.</p>
<p>Actually, I&#8217;ve just noticed Marshall Kirkpatrick&#8217;s article &#8216;<a title="How the OAuth Security Battle Was Won, Open Web Style - ReadWriteWeb" href="http://www.readwriteweb.com/archives/how_the_oauth_security_battle_was_won_open_web_sty.php" target="_blank">How the OAuth Security Battle Was Won, Open Web Style</a>&#8216; at ReadWriteWeb, it talks about the down time of OAuth last month. It&#8217;s a pretty good read, reporting that the lead developers of the providers were all aware of the vulnerability as it went down, but quickly and effectively worked together to resolve the problem before really going public and risk inviting attacks.</p>
<p>As Marshall says, if OAuth was software, a fix could be implemented and pushed out to everyone who was using it &#8211; but it&#8217;s not, it&#8217;s &#8216;out in the wild&#8217; and no one party is in charge of it &#8211; it&#8217;s real victory that they all cooperated so quickly and so well to neutralise the threat.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.marchibbins.com/2009/05/06/keep-it-to-yourself/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>4th Time Around</title>
		<link>http://blog.marchibbins.com/2009/04/23/4th-time-around/</link>
		<comments>http://blog.marchibbins.com/2009/04/23/4th-time-around/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 12:14:22 +0000</pubDate>
		<dc:creator>Marc Hibbins</dc:creator>
				<category><![CDATA[dataportability]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[openstandards]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://hibbins.wordpress.com/?p=544</guid>
		<description><![CDATA[Last year Facebook released Facebook Connect and about the same time Google released Friend Connect, they're two very similar services. Now, this week, Twitter have announced their connection service, called 'Sign in with Twitter'.]]></description>
			<content:encoded><![CDATA[<p>Last year Facebook released <a title="Facebook Developers | Facebook Connect" href="http://developers.facebook.com/connect.php" target="_blank">Facebook Connect</a> and about the same time Google released <a title="Google Friend Connect - add social features to your site" href="http://www.google.com/friendconnect/" target="_blank">Friend Connect</a>, they&#8217;re two very similar services that allow users to connect with information and with their friends of the respective native platforms from third-party enabled sites. The intention, <a title="Connect - Marc Hibbins" href="http://hibbins.wordpress.com/2008/12/17/connect/" target="_blank">as I&#8217;ve written about before</a>, is to add a layer of social interaction to &#8216;non-social&#8217; sites, to connect your information and activity on these third-party sites to your information and activity (and contacts) on the original platforms.</p>
<p>Then <a title="Three - Marc Hibbins" href="http://hibbins.wordpress.com/2009/03/05/three/" target="_blank">in March</a>, Yahoo! announced their service sign-on, called <a title="Updates API - YDN" href="http://developer.yahoo.com/social/updates/" target="_blank">Yahoo! Updates</a>.</p>
<p>Now, this week, Twitter have announced their connection service, called &#8216;<a title="Twitter API Wiki / Sign in with Twitter" href="http://apiwiki.twitter.com/Sign-in-with-Twitter" target="_blank">Sign in with Twitter</a>&#8216;. It too gives you a secure authenticated access to your information and contacts, in exactly the same way the others do &#8211; except this time, it&#8217;s Twitter.</p>
<p><img class="aligncenter size-full wp-image-545" title="Sign in with Twitter" src="http://hibbins.files.wordpress.com/2009/04/twitter_signin.png" alt="Sign in with Twitter" width="153" height="24" /></p>
<p>You might ask if we have three, do we need a fourth? Have you ever used any of the other three?</p>
<p>But don&#8217;t dismiss it, or think it Twitter are jumping on to any kind of bandwagon, Twitter&#8217;s implementation is fundamentally different to the others &#8211; and it could cause quite a stir.</p>
<p>The problem with the other services (ultimately the problem with the platforms) is, more than often not, they are completely closed and non-portable. Although you can sign-in to a third-party site and access your data, there&#8217;s a lot of limitation to what you can retrieve and publish. These popular social networks have grown and amassed huge amounts of members and data which they horde and keep to themselves. I&#8217;m not talking about privacy, I&#8217;m referring to data portability.</p>
<p>The infrastructures are like locked-in silos of information and each built differently, because, either, they never considered that you&#8217;d want to make your data portable or they didn&#8217;t then want (or see value) in you moving your data anywhere else. The services they&#8217;ve created to &#8216;connect&#8217; to your data are also proprietary methods &#8211; custom built to channel in and out of those silos. Each of those services too, are singularities, they won&#8217;t work with each other.</p>
<p>Twitter though, have come up with a solution that adheres to agreed upon standards, specifically, by using <a title="OAuth - An open protocol to allow secure API authorization in a simple and standard method from desktop and web applications." href="http://oauth.net/" target="_blank">OAuth</a> to facilitate it&#8217;s connection. Technically, it&#8217;s significantly different, but in practice, you can expect it to do everything the others can do.</p>
<h3><a name="The_community's_thoughts" class="anchor">The community&#8217;s thoughts</a></h3>
<p>Yahoo&#8217;s Eran Hammer-Lahav (a frequent contributor to OAuth) has <a title="Hueniverse - Introducing 'Sign-in with Twitter', OAuth-Style &quot;Connect&quot;" href="http://www.hueniverse.com/hueniverse/2009/04/twitter-connect.html" target="_blank">written a good post</a> discussing his thoughts, he says it&#8217;s &#8216;Open done right&#8217; &#8211; no proprietary &#8216;special sauce&#8217; clouds interoperability as happens with Facebook Connect. I think he&#8217;s right.</p>
<p>He looks at what happened when Facebook Connect was introduced, that they essentially offered third-party sites two key features: the ability to use existing Facebook accounts for their own needs, and access Facebook social data to enhance the site. The value of Facebook Connect is to save sites the need to build their own social layer. Twitter though, is not about yet another layer, but doing more with that you&#8217;ve already got.</p>
<p>Marshall Kirkpatrick <a title="A Better Calling Card: Twitter Challenges Facebook Connect - ReadWriteWeb" href="http://www.readwriteweb.com/archives/a_better_calling_card_twitter_challenges_facebook.php" target="_blank">also wrote about the announcement</a>, his metaphor for the other &#8216;connection&#8217; services best describes how they function &#8211; &#8216;it&#8217;s letting sites borrow the data &#8211; not setting data free&#8217;.</p>
<p>But then he talks about Twitter &#8216;as a platform&#8217;, and I think this is where things get interesting. He says:</p>
<blockquote><p>Twitter is a fundamentally different beast.</p>
<p>All social networking services these days want to be &#8220;a platform&#8221; &#8211; but it&#8217;s really true for Twitter. From desktop apps to social connection analysis programs, to services that will Twitter through your account when a baby monitoring garment feels a kick in utero &#8211; there&#8217;s countless technologies being built on top of Twitter.&#8221;</p></blockquote>
<p>He&#8217;s right. Twitter apps do pretty much anything and <em>everything </em>you can think of on top of Twitter, not just the primary use of sending and receiving tweets. I love all the OAuth and open standards adoption &#8211; but that&#8217;s because I&#8217;m a developer, but thinking about Twitter as a platform makes me wonder what kind of effect this will have on the users, how it could effect the climate, even landcape, of social media if, already being great, Twitter is given some real <em>power</em>. </p>
<p>People have long questioned Twitter&#8217;s future &#8211; it&#8217;s business model, how it can be monetised, those things are important &#8211; but where can it otherwise go and how can it expand? Does it need to &#8216;expand&#8217;? It&#8217;s service is great it doesn&#8217;t need to start spouting needless extras and I don&#8217;t think it will. But in widening it&#8217;s connectivity, it&#8217;s adaptability, I think could change our perception of Twitter &#8211; it&#8217;s longevity and road map, the way we use it and think of ourselves using it.</p>
<h3><a name="My_Thoughts" class="anchor">My Thoughts</a></h3>
<p>Irrelevant of Richard Madeley or Oprah Winfrey&#8217;s evangelism, Twitter is an undeniable success.</p>
<p>When Facebook reworked and redesigned their feed and messaging model, I almost couldn&#8217;t believe it. What was the &#8216;status&#8217; updates, basically <em>IS </em>Twitter now, and that&#8217;s it&#8217;s backbone. It&#8217;s Twitter&#8217;s messaging model, it asks &#8216;What&#8217;s on your mind?&#8217;.</p>
<p>I&#8217;m probably not the only one who thought this, I&#8217;d guess any complaints about this being a bit of a blatant rip-off were bogged down by all the negativity about the interface redesign.</p>
<p>I think Facebook realised that Twitter has become a real rival. I think (and I guess Facebook also think) that as people become more web-savvy and literate to these sociable websites, they want to cleanse.</p>
<p>The great appeal of Twitter for me was, <em>ingeniously</em>, they took a tiny part of Facebook (this is how I saw it two years ago anyway) and made it their <em>complete </em>function &#8211; simple, short updates. Snippets of personal insight or creative wisdom, it didn&#8217;t matter really, what was important was it ignored the fuss and noise of whatever else Facebook had flying around it&#8217;s own ecology (and this was before Facebook applications came around) and took a bold single straight route through the middle of it.</p>
<p>Looking back, a lot of Facebook&#8217;s early adoption could be attributed to people growing restless with the noise and fuss of MySpace at the time &#8211; Facebook then was a clean and more structured an option.</p>
<p>I remember Twitter was almost ridiculed for basing it&#8217;s whole premise on such a minute part of Facebook&#8217;s huge machine. Now look at the turnaround.</p>
<p>Now people are growing up out of Web 2.0 craze. A lot went on, there was a lot of &#8216;buzz&#8217;, but a lot of progress was made in connecting things. People now are far more connected, but perhaps they&#8217;re over-connected, struggling from what <a title="Joseph Smarr - About Me" href="http://josephsmarr.com/about/" target="_blank">Joseph Smarr</a> calls &#8216;social media fatigue&#8217;. People they have multiple accounts in a ton of dispersed and unconnected sites around the web &#8211; true, each unique and successful for it&#8217;s own achievements &#8211; but it can&#8217;t go on.</p>
<p>Twitter for me is streamlined, <em>cleansed</em>, publishing. Whether talking about what I&#8217;m doing or finding out information from people or about topics that I follow, the 140 character limit constrains these utterances to be concise and straight-to-the-point pieces of information. The &#8216;@&#8217; replies and hashtags are brilliant mechanisms conceived to create connections between people and objects where there is almost no space to do so.</p>
<p>I use my blog to write longer discourse, I use my Twitter to link to it. Likewise with the music I listen to, I can tweet Spotify URIs. I link to Last.fm events and anything particularly good I&#8217;ve found (and probably bookmarked with Delicious) I&#8217;ll tweet that out too.</p>
<p>Twitter for me is like a central nervous system for my online activities. I won&#8217;t say &#8216;backbone&#8217; &#8211; because it&#8217;s <em>not </em>that heavy. Specifically a nervous system in the way it intricately connects my online life, spindling and extending out links, almost to itself be like a lifestream in micro.</p>
<p>Recently, I saw <a title="Scripting News: 4/21/2009" href="http://www.scripting.com/" target="_blank">Dave Winer</a>&#8216;s &#8216;<a title="Dave's continuous bootstrap on Flickr - Photo Sharing!" href="http://www.flickr.com/photos/scriptingnews/3456285657/" target="_blank">Continuous Bootstrap</a>&#8216; which although is admittedly a bit of fun, describes the succession of platforms deemed social media &#8216;leaders&#8217; (<a title="Gartner's curve (Scripting News)" href="http://www.scripting.com/stories/2009/04/19/gartnersCurve.html" target="_blank">see the full post here</a>).</p>
<p>What I initially noticed is that he aligns successful platforms &#8211; blogging, podcasting &#8211; with a single application: Twitter. It doesn&#8217;t matter whether he is actually suggesting that Twitter alone is as successful as any single publishing <em>form</em>, but it did make me wonder if Twitter, rather than being the current &#8216;holder of the baton&#8217;, will actually be the spawn for whatever kind of Web-wide platform does become popular next.</p>
<p>If the real Data Portability revolution is going to kick in, if it&#8217;s on the cusp of starting right now and everything will truly become networked and connected &#8211; would you rather it was your Twitter connections and voice that formed that basis for you or your Facebook profile?</p>
<p>I know I&#8217;d much rather read explore the connections I&#8217;ve made through Twitter. The kind of information I&#8217;d get back from the type of people who&#8217;d connect in this way would be far more relevant from my pool of Twitter connections rather than the old school friends and family members (notoriously) who&#8217;ve added me on Facebook, the kind that just add you for the sake of it.</p>
<p>If Web 3.0 (or whatever you want to call it) is coming soon, I&#8217;d rather detox. Twitter is slimmer and still feels fresh to start it out with. For me, Facebook feels far too heavy now, out of date and messy. Maybe I&#8217;m being unfair and I feel that way because I&#8217;ve fallen out of touch with it and now I visit less frequently, but all the negativity hasn&#8217;t done it any favours &#8211; and those complaints aren&#8217;t unfounded.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.marchibbins.com/2009/04/23/4th-time-around/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Group Therapy</title>
		<link>http://blog.marchibbins.com/2009/04/04/group-therapy/</link>
		<comments>http://blog.marchibbins.com/2009/04/04/group-therapy/#comments</comments>
		<pubDate>Sat, 04 Apr 2009 11:48:32 +0000</pubDate>
		<dc:creator>Marc Hibbins</dc:creator>
				<category><![CDATA[londonwebstandards]]></category>
		<category><![CDATA[openstandards]]></category>

		<guid isPermaLink="false">http://hibbins.wordpress.com/?p=505</guid>
		<description><![CDATA[I'm a regular attendee of the London Flash Platform User Group and the London Flex User Group and I get notified each time a new technology group is formed or arranges an event on Meetup.com. Through that, I recently heard about the London Web Standards group.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a regular attendee of the <a title="London Flash Platform User Group" href="http://www.lfpug.com/" target="_blank">London Flash Platform User Group</a> and the <a title="Flex London User Group (FLUG) (London) - Meetup.com" href="http://www.meetup.com/flexlondon/" target="_blank">London Flex User Group</a> and I get notified each time a new technology group is formed or arranges an event on <a title="Do something, Learn something, Share something, Change something  - Meetup.com" href="http://www.meetup.com/" target="_blank">Meetup.com</a>. Anyway through that I recently heard about the <a title="London Web Standards (London) - Meetup.com" href="http://www.meetup.com/londonwebstandards/" target="_blank">London Web Standards</a> group.</p>
<p>The London Web Standards group meet monthly to discuss topics like creating websites, web standards, the W3C, XHTML, CSS, DOM, ECMAScript, how they impact you, your organisation, your audience and your clients.</p>
<p>This month they meet to discuss Joshua Porter&#8217;s &#8216;<a title="Designing for the Social Web - the Book - Bokardo" href="http://bokardo.com/archives/designing-for-the-social-web-the-book/" target="_blank">Designing for the Social Web</a>&#8216; (<a title="Designing for the Social Web (Voices That Matter) - Amazon.co.uk - Joshua Porter - Books" href="http://www.amazon.co.uk/Designing-Social-Voices-That-Matter/dp/0321534921/" target="_blank">Amazon</a>) which, not having read, I would usually have passed on if it were not for the group&#8217;s organiser, <a title="Jeff Van Campen (otrops) on Twitter" href="http://twitter.com/otrops" target="_blank">Jeff Van Campen</a>, kindly giving me a free copy.</p>
<p><a href="http://www.flickr.com/photos/otrops/sets/72157616144344869/" target="_blank"><img class="aligncenter size-full wp-image-507" title="London Web Standards Book Drop Off by otrops" src="http://hibbins.files.wordpress.com/2009/04/webstandardsbook.jpg" alt="London Web Standards Book Drop Off by otrops" width="420" height="315" /></a></p>
<p>So hopefully I&#8217;ll be able to rattle through it before this month&#8217;s meeting on April 14th, <a title="Designing for the Social Web - LWS April Meetup -  London Web Standards (London) - Meetup.com" href="http://www.meetup.com/londonwebstandards/calendar/9917079/" target="_blank">see the event page is here</a>.</p>
<p>You can also <a title="webstandards (webstandards) on Twitter" href="http://twitter.com/webstandards" target="_blank">follow &#8216;webstandards&#8217; on Twitter</a> for notices, meetup dates and agendas. Look forward to it!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.marchibbins.com/2009/04/04/group-therapy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Found Out</title>
		<link>http://blog.marchibbins.com/2009/02/18/i-found-out/</link>
		<comments>http://blog.marchibbins.com/2009/02/18/i-found-out/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 01:54:40 +0000</pubDate>
		<dc:creator>Marc Hibbins</dc:creator>
				<category><![CDATA[bbc]]></category>
		<category><![CDATA[dataportability]]></category>
		<category><![CDATA[openstandards]]></category>

		<guid isPermaLink="false">http://hibbins.wordpress.com/?p=381</guid>
		<description><![CDATA[In an interview with Silicon.com, Matthew Shorter, BBC's interactive editor for music, speaks about establishing data associations with MusicBrainz, an open user-contributed 'metadatabase', to roll out across all of their encyclopaedic artist pages on the BBC site.]]></description>
			<content:encoded><![CDATA[<p>Seems I was a little late in finding out about the BBC&#8217;s work on integrating and exposing semantic data in their (then) new beta trial of <a title="BBC - Music - Artists" href="http://www.bbc.co.uk/music/artists/" target="_blank">Artist pages</a> a little while ago.</p>
<p>In <a title="BBC Music talking semantics - Public Sector - Breaking Business and Technology News at silicon.com" href="http://www.silicon.com/publicsector/0,3800010403,39380104,00.htm" target="_blank">an interview with Silicon.com</a>, Matthew Shorter, BBC&#8217;s interactive editor for music, speaks about establishing data associations with <a title="Welcome to MusicBrainz! - MusicBrainz" href="http://musicbrainz.org/" target="_blank">MusicBrainz</a>, an open user-contributed &#8216;metadatabase&#8217;, to roll out across all of their encyclopaedic artist pages on the BBC site.</p>
<p>MusicBrainz has been around for some time now, it&#8217;s a huge database of music metadata storing information such as artists, their releases, song details, biographies. Right now it has information on over 400,000 artists.</p>
<p>As early as 2001, it was described as a &#8216;<a title="MusicBrainz: A Semantic Web Service" href="http://logicerror.com/musicbrainzArticle" target="_blank">Semantic Web service</a>&#8216; (think a Semantic Web web service), in its offering of a massive store of machine-processable, openly available information (mostly public domain or Creative Commons-licensed), available via open protocols &#8211; in RDF format no less.</p>
<p>The BBC have adopted this open standard, mapping their data schema with that published by MusicBrainz to utilise the unique identifiers they provide. This allows the BBC site to leverage the public domain content, augmenting the profile pages found there.</p>
<p>Take a look at one of the records from MusicBrainz, for example, John Lennon&#8217;s information at <a title="Artist: John Lennon - MusicBrainz" href="http://musicbrainz.org/artist/4d5447d7-c61c-4120-ba1b-d7f471d385b9.html" target="_blank">http://musicbrainz.org/artist/4d5447d7-c61c-4120-ba1b-d7f471d385b9.html</a>.</p>
<p>The unique ID here is the MBID, &#8217;<span style="font-family:courier;">4d5447d7-c61c-4120-ba1b-d7f471d385b9</span>&#8216;.</p>
<p>The BBC then, have a dynamically generated page at <a title="BBC - Music - John Lennon" href="http://www.bbc.co.uk/music/artists/4d5447d7-c61c-4120-ba1b-d7f471d385b9" target="_blank">http://www.bbc.co.uk/music/artists/4d5447d7-c61c-4120-ba1b-d7f471d385b9</a>.</p>
<p>Previously, writers at the BBC would have to write (and keep up to date) interesting and relevant content on every single artist pages they publish &#8211; which I&#8217;m sure you can imagine is as unenviable as impossible. Now, MusicBrainz populates a lot of the information here &#8211; see the Releases and Credits &#8211; and also provides the retrieval of the biography <a title="John Lennon - Wikipedia, the free encyclopedia" href="http://en.wikipedia.org/wiki/John_Lennon" target="_blank">from Wikipedia</a>.</p>
<p>At the same time, the BBC radio playout system (<a title="The all new BBC music site where programmes meet music and the semantic web - Derivadow.com" href="http://derivadow.com/2008/07/28/the-all-new-bbc-music-site-where-programmes-meet-music-and-the-semantic-web/" target="_blank">reportedly giant iPods</a> in the basement of Broadcasting House) update the playlist information on the right of the page.</p>
<p>As Matthew Shorter <a title="MusicBrainz Blog - Blog Archive - The BBC unleashes dynamic artist pages beta" href="http://blog.musicbrainz.org/?p=337" target="_blank">says</a>, automation and dynamic publishing means the pages can be created and maintained with a fraction of the manpower. Check the <a title="BBC - Music - Foals" href="http://www.bbc.co.uk/music/artists/6a65d878-fcd0-42cf-aff9-ca1d636a8bcc" target="_blank">Foals page</a> for a more recent artist and you&#8217;ll see news articles automatically aggregated also.</p>
<p>Gathering resources in this way and adding context around the artists enables machines to process the links between these data sets, establish relationships between the information and perform interoperation based on those.</p>
<p>In his article above, Tom Scott (the Technical Project Team Leader) also describes these URIs as &#8216;web scale identifiers&#8217; and talks about the principles of <a title="Linked Data - Wikipedia, the free encyclopedia" href="http://en.wikipedia.org/wiki/Linked_Data" target="_blank">Linked Data</a>. Whilst in this use case these locators facilitate simple data retrieval, the notion of the absolute, global URI is a far larger idea, and here, could grow to be far more powerful.</p>
<p>The URIs facilitate the mechanisms, but stand to play a far larger role in opening and standardising information on the Web as a whole. The MusicBrainz MBID attempts to standardise the way we reference information online regarding music, it&#8217;s wide reuse, is in a sense, achieving that goal. But rather than thinking of these alphanumeric strings as pointing to locations of database records, they too can refer to the real world concepts they identify.</p>
<p>Imagine all online materials that feature a particular artist <em>universally </em>employing their single MBID string. Every semantically linked and annotated document and resource could be unified by an intelligent agent instructed to do so, collecting and amounting the information to describe that real world concept in it&#8217;s entirety. With consideration to the Semantic Web, ultimately, for a machine agent to <em>understand </em>that concept in it&#8217;s entirety.</p>
<p>In linking to MusicBrainz, the BBC then have equally made their data more portable to third parties wanting to use <em>their </em>data elsewhere. By agreeing on these unique IDs to identify resources, these pages can be automatically linked to and accessed based of this consistency.</p>
<p>The site provides a RESTful API, just add <a title="BBC - Music - John Lennon - XML" href="http://www.bbc.co.uk/music/artists/4d5447d7-c61c-4120-ba1b-d7f471d385b9.xml" target="_blank">.xml</a>, <a title="BBC - Music - John Lennon - RDF" href="http://www.bbc.co.uk/music/artists/4d5447d7-c61c-4120-ba1b-d7f471d385b9.rdf" target="_blank">.rdf</a>, <a title="BBC - Music - John Lennon - JSON" href="http://www.bbc.co.uk/music/artists/4d5447d7-c61c-4120-ba1b-d7f471d385b9.json" target="_blank">.json</a> or <a title="BBC - Music - John Lennon - YAML" href="http://www.bbc.co.uk/music/artists/4d5447d7-c61c-4120-ba1b-d7f471d385b9.yaml" target="_blank">.yaml</a> to the end of the artist url.</p>
<p>The value of online information isn&#8217;t determined by scarcity like physical good are in the physical world. Reuse, repopulation and increasing visibility means, for the BBC, an enriched repository for the purposes of making information more accessible and useful to the reader (surely the inital goal), but also in having the link now established to MusicBrainz, the information is connected out into the Web, therefore enriching the source (and then exponentially any other links thereon). Better for the BBC, better for the third party, better for the reader - <em>everything </em>is enriched &#8211; so hopefully any later applications can benefit from this network effect.</p>
<p>Anyway, it turns out this has been going on since July last year, so perhaps the Silicon.com article was an attempt to increase visibility - we&#8217;re six months down the line now, after all.</p>
<p>If so, it worked &#8211; Sarah Perez wrote up <a title="BBC's Semantic Music Project - ReadWriteWeb" href="http://www.readwriteweb.com/archives/bbcs_semantic_music_project.php" target="_blank">an article at ReadWriteWeb</a> and <a title="MusicBrainz Blog - Blog Archive - General update: Things are hoppin'!" href="http://blog.musicbrainz.org/?p=369" target="_blank">reports over at MusicBrainz</a> suggest things are hotting up for this year. But if not, they should be applauded for commendable transparency and their open-minded efforts (and accept the extra drive of users to the service that comes with it!). It&#8217;s frustrating when products that are intended to &#8216;open up the web&#8217; are kept closed and private for commercial purposes.</p>
<p>Thing is, I&#8217;m surprised I hadn&#8217;t found out about this before now. Shorter also describes this as being part of a general movement that&#8217;s going on at the BBC, &#8220;to move away from pages that are built in a variety of legacy content production systems to actually publishing data that we can use in a more dynamic way across the web.&#8221; So I went digging for more &#8211; thinking that, if this (pretty awesome) beta went online relatively quietly and the BBC aren&#8217;t particularly shouting about these new innovation (which I think they should!), perhaps there&#8217;s more elsewhere?</p>
<p>Well, I found two presentations over at <a title="SlideShare is the best place to share powerpoint presentations" href="http://www.slideshare.net/" target="_blank">Slideshare</a>, the first on &#8220;<a title="BBC Programmes and Music on the Linking Open Data Cloud" href="http://www.slideshare.net/metade/bbc-programmes-and-music-on-the-linking-open-data-cloud-presentation" target="_blank">BBC Programmes and Music on the Linking Open Data Cloud</a>&#8220;, the second titled &#8220;<a title="Semweb at the BBC" href="http://www.slideshare.net/fantasticlife/semweb-at-the-bbc" target="_blank">Semweb at the BBC</a>&#8220;, but unfortunately without transcripts of videos I can only really marvel at what might be in the works.</p>
<p>Patrick Sinclair (software engineer at the BBC &#8211; see <a title="BBC - Radio Labs - Automatically linking artists and news on the BBC Music Beta" href="http://www.bbc.co.uk/blogs/radiolabs/2008/10/automatically_linking_artists.shtml" target="_blank">his post on the Music beta</a>) said <a title="Twitter / Patrick Sinclair: @ryangadams afraid we didn ..." href="http://twitter.com/metade/status/1047816555" target="_blank">a video might surface</a>, but I&#8217;ve yet to find one.</p>
<p>By the looks of things though, there could be some fully recognised Semantic Web applications coming out of the BBC in the future. They look to discuss a handful of the languages and technologies that make up the Semantic Web stack, refer to constructing their own ontologies, reason use cases for Linked Data and look to be applying the techniques of the Music pages to Programmes sections and onward.</p>
<p>Look forward to it!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.marchibbins.com/2009/02/18/i-found-out/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Come Together</title>
		<link>http://blog.marchibbins.com/2009/01/16/come-together/</link>
		<comments>http://blog.marchibbins.com/2009/01/16/come-together/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 23:58:56 +0000</pubDate>
		<dc:creator>Marc Hibbins</dc:creator>
				<category><![CDATA[dataportability]]></category>
		<category><![CDATA[openstandards]]></category>

		<guid isPermaLink="false">http://hibbins.wordpress.com/?p=339</guid>
		<description><![CDATA[While I’m on the subject of data portability, I thought I’d talk about DataPortability, a project aiming to define and implement a set of open standards recommendations to enable end-to-end portability of data.]]></description>
			<content:encoded><![CDATA[<p>While I&#8217;m on the subject of data portability, I thought I&#8217;d talk about <a title="DataPortability.org - Share and remix data using open standards" href="http://www.dataportability.org/" target="_blank">DataPortability</a>.</p>
<p>A loose analogy: Consider the definition of the Semantic Web &#8211; a conceptual framework combining standardised <em>semantic </em>applications on the <em>web</em>. Similarly, the DataPortability project aims to define and implement a set of recommendations of open standards to enable (entire and complete) end-to-end <em>portability of data</em>.</p>
<p>Both &#8216;capitalised&#8217; terms denote distinct, considered models &#8211; composed of specific selections of the technologies that together embody their respective namesakes.</p>
<p>Not that DataPortability really has anything to do with the Semantic Web other than the shared idyllic standardisation and &#8216;boundless&#8217; interoperation of data and services online..</p>
<p>In essence the project a volunteer-based workgroup, as transparent and &#8216;frictionless&#8217; a movement as the borderless experience they promote. Their vision describes the web as place where people can move easily between network services, reusing data they provide, controlling their own privacy and respecting the privacy of others (<a title="About - The DataPortability Project - The DataPortability wiki" href="http://wiki.dataportability.org/display/dpmain/about" target="_blank">read in full here</a>).</p>
<p>They wish to see end to every problem I described <a title="Open - Marc Hibbins" href="http://hibbins.wordpress.com/2009/01/14/open/" target="_blank">in my last post</a> &#8211; the social network fatigue, the fragmentation and walled-garden silo landscape of current web platforms &#8211; and too, promote the combination of a open source technologies and protocols (including OpenID and OAuth) for web-wide benefit, not only with regards to social networking.</p>
<p>The following video, quite simply but accurately, describes the already too familiar picture:</p>
<p><span style='text-align:center; display: block;'><object width="400" height="225"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=610179&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=610179&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"></embed></object></span></p>
<p>So what technologies are we talking about?</p>
<p>Although our Semantic friends RDF, SIOC and FOAF are present, it&#8217;s much more familiar territory for the rest. The line up includes RSS, OPML, again OAuth, OpenID and Microformats. These are existing open standards though, not technologies still in development awaiting a W3C recommendation like some of the Semantic Web projections.</p>
<p>There&#8217;s some other very cool stuff I&#8217;d like to go into more detail with later. Definitely <a title="The open standard for Attention Metadata" href="http://www.apml.org/" target="_blank">APML</a>, for example &#8211; Attention Profiling Markup Language &#8211; an XML-based format that encapsulates a summary of your interests, your informed &#8216;attention data&#8217;.</p>
<p>As well as identifying the components that make up their blueprint (the recognition of <em>how </em>their goals can be achieved &#8211; which, and I know I keep coming back to this, is one of the largest cause for doubters of the Semantic Web &#8211; that the speculative combination of some of the technologies is almost unimaginable) &#8211; the DataPortability project also documents best practices for <em>why </em>you should to participate in the initiative &#8211; specifically tailored as to how they can come together for you, as developers, or consumers, or service providers etc.</p>
<p>DataPortability is about empowering users, aiming to grant a &#8216;free-flowing web&#8217; within your control.</p>
<p>How are they doing this? Are they likely to succeed? They&#8217;ve already got some huge names on board &#8211; Google, Facebook, Flickr, Twitter, Digg, LinkedIn, Plaxo, Netvibes &#8211; the list goes on. This is really happening.</p>
<p>Find out more at <a title="DataPortability.org - Share and remix data using open standards" href="http://www.dataportability.org/" target="_blank">dataportability.org</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.marchibbins.com/2009/01/16/come-together/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Open</title>
		<link>http://blog.marchibbins.com/2009/01/14/open/</link>
		<comments>http://blog.marchibbins.com/2009/01/14/open/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 00:13:11 +0000</pubDate>
		<dc:creator>Marc Hibbins</dc:creator>
				<category><![CDATA[dataportability]]></category>
		<category><![CDATA[openstandards]]></category>

		<guid isPermaLink="false">http://hibbins.wordpress.com/?p=324</guid>
		<description><![CDATA[Hopefully the last of the posts that I should have written last year – OpenID, OpenSocial and OAuth.]]></description>
			<content:encoded><![CDATA[<p>Hopefully the last of the posts that I should have written last year &#8211; a while back <a title="Connect - Marc Hibbins" href="http://hibbins.wordpress.com/2008/12/17/connect/" target="_blank">I wrote about</a> Facebook Connect and Google Friend Connect, I mentioned three open source data projects &#8211; OpenID, OpenSocial and OAuth.</p>
<p>I only mentioned them briefly in the thinking that they deserved attention separate to that topic &#8211; they&#8217;ll play a key part in the progression of social media technology, but the three are part of a bigger issue. That of data portability &#8211; one perhaps more concerned with my current Semantic Web conversation.</p>
<p>While the three have been separately developed over the past three (or so) years, their popularity and general implementation are becoming ever more widespread. In combination, they offer very powerful potential in leveraging data, interoperability thereof between systems and ultimately offer standardising methods and protocols in which data &#8216;portability&#8217; becomes possible.</p>
<p>In very, (very) short:</p>
<ul>
<li><a title="OpenSocial - Google Code" href="http://code.google.com/apis/opensocial/" target="_blank">OpenSocial</a> <sup>(<a title="OpenSocial - Wikipedia, the free encyclopedia" href="http://en.wikipedia.org/wiki/OpenSocial" target="_blank">wiki</a>)</sup> is a set of common APIs for web-based social network applications.</li>
<li><a title="OpenID - What is OpenID?" href="http://openid.net/what/" target="_blank">OpenID</a> <sup>(<a title="OpenID - Wikipedia, the free encyclopedia" href="http://en.wikipedia.org/wiki/OpenID" target="_blank">wiki</a>)</sup> is an decentralised user identification standard, allowing users to log onto many services with the same digital identity.</li>
<li><a title="Introduction" href="http://oauth.net/about" target="_blank">OAuth</a> <sup>(<a title="OAuth - Wikipedia, the free encyclopedia" href="http://en.wikipedia.org/wiki/OAuth" target="_blank">wiki</a>)</sup> is an protocol to simplify and standardised secure API authorisation and authentication for desktop, mobile and web applications.</li>
</ul>
<p> <br />
There&#8217;s a ton of reading fired from each of those links.</p>
<p>But more than anything, I <em>very strongly </em>recommend watching the following presentation by <a title="Joseph Smarr - About Me" href="http://josephsmarr.com/about/" target="_blank">Joseph Smarr</a> of <a title="Plaxo - Stay in touch with the people you care about." href="http://www.plaxo.com" target="_blank">Plaxo</a>, taken from <a title="Google I/O" href="http://code.google.com/events/io/" target="_blank">Google&#8217;s I/O conference</a> last year:</p>
<p style="text-align:center;"><strong>Google I/O 2008 &#8211; OpenSocial, OpenID, and OAuth: Oh, My!</strong></p>
<p><span style='text-align:center; display: block;'><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/6SYnlH5FXz0&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/6SYnlH5FXz0&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></span></p>
<p>He covers each of these open source building blocks in detail, collectively considering them as a palatable set of options for developers in creating social media platforms. He presents the compelling engagement they can offer social websites, how they fit together in a holistic way so developers aren&#8217;t constantly building from scratch and how he envisions the social web evolving.</p>
<p>He critiques that today&#8217;s platforms are essentially broken, highlighting the fragmentation of social media sites &#8211; that their rapid growth forced developers to build each platform to be built separately, from scratch so therefore <em>differently</em>, so that each platform has their own silo, headed in a different direction. That the very nature of social network infrastructure and architecture is still very nascent.</p>
<p>We are at breaking point, social media sites <em>still </em>assume that a every new user has never been on a social network site before. We&#8217;ve all experience having to register and re-register, upload profile information, find friends to then confirm friends &#8211; it&#8217;s not scaling any more.</p>
<p>Not only has it gotten to the point that we as consumers are experiencing social network fatigue, but users are also, understandably, opting out of joining even newer networks, pre-empting the nauseous motions they&#8217;ll have to repeat.</p>
<p>It&#8217;s very easily digestible &#8211; not at all deeply technical until the Q&amp;A section. Do watch!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.marchibbins.com/2009/01/14/open/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

