<?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>Microformats &#38; the semanantic web</title>
	<atom:link href="http://www.microformatter.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.microformatter.com</link>
	<description>Web 3.0</description>
	<lastBuildDate>Sat, 19 May 2012 02:09:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>MarkLogic Names Gary Bloom CEO</title>
		<link>http://www.microformatter.com/2012/05/19/marklogic-names-gary-bloom-ceo/</link>
		<comments>http://www.microformatter.com/2012/05/19/marklogic-names-gary-bloom-ceo/#comments</comments>
		<pubDate>Sat, 19 May 2012 02:09:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microformats]]></category>
		<category><![CDATA[semanticweb]]></category>
		<category><![CDATA[web3.0]]></category>

		<guid isPermaLink="false">http://www.microformatter.com/2012/05/19/marklogic-names-gary-bloom-ceo/</guid>
		<description><![CDATA[MarkLogic has a new CEO. According to the company, &#8220;Gary Bloom, a proven technology executive who was most recently the CEO and president at eMeter, has been named president and chief executive officer. Gary brings an exceptional background that includes more than two decades of successful leadership in enterprise software. He was the CEO and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://semanticweb.com/?cx=014154320031312368439:roum4ta8hle&amp;cof=FORID:11&amp;s=1&amp;q=marklogic&amp;ocmt=SEARCH"><img class="alignleft size-full wp-image-29089" src="http://semanticweb.com/files/2012/05/logo.gif" alt="" width="197" height="39" />MarkLogic</a> has a new CEO. <a href="http://www.marklogic.com/news-and-events/press-releases/2012/gary-bloom-joins-marklogic-as-chief-executive-officer/">According to the company</a>, &#8220;Gary Bloom, a proven technology executive who was most recently the CEO and president at eMeter, has been named president and chief executive officer. Gary brings an exceptional background that includes more than two decades of successful leadership in enterprise software. He was the CEO and president at eMeter, which provides smart grid management software for electric, gas, and water utilities. eMeter was recently acquired by Siemens Corporation. Prior to that, Gary was a consultant of TPG, a leading global private investment firm.&#8221; <a href="http://semanticweb.com/marklogic-names-gary-bloom-ceo_b29088#more-29088">continued&#8230;</a></p>
<p>New Career Opportunities Daily: The <a href="http://www.mediabistro.com/joblistings/?c=rss">best jobs in media</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.microformatter.com/2012/05/19/marklogic-names-gary-bloom-ceo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Capitalizing on Data without Doing the Dirty Work</title>
		<link>http://www.microformatter.com/2012/05/18/capitalizing-on-data-without-doing-the-dirty-work/</link>
		<comments>http://www.microformatter.com/2012/05/18/capitalizing-on-data-without-doing-the-dirty-work/#comments</comments>
		<pubDate>Fri, 18 May 2012 02:04:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microformats]]></category>
		<category><![CDATA[semanticweb]]></category>
		<category><![CDATA[web3.0]]></category>

		<guid isPermaLink="false">http://www.microformatter.com/2012/05/18/capitalizing-on-data-without-doing-the-dirty-work/</guid>
		<description><![CDATA[Derrick Harris reports that as data continues to explode, business owners don&#8217;t need to rush back to school for a degree in Big Data analytics in order to capitalize on it. He writes, &#8220;Machine learning is high data science — a discipline focused on algorithms that automatically detect complex patterns hidden within datasets — and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://gigaom.com/cloud/your-data-has-a-secret-but-you-yes-you-can-make-it-talk/"><img class="alignleft size-medium wp-image-29032" src="http://semanticweb.com/files/2012/05/21041920_be5bcec9f5-300x225.jpg" alt="" width="300" height="225" />Derrick Harris reports</a> that as data continues to explode, business owners don&#8217;t need to rush back to school for a degree in Big Data analytics in order to capitalize on it. He writes, &#8220;Machine learning is high data science — a discipline focused on algorithms that automatically detect complex patterns hidden within datasets — and it’s fast becoming something that anyone leverages to sell more handbags, or solve a research problem, or build the next LinkedIn or Facebook… If you’re a small business or maybe even an individual, you need something easier. You need something in the cloud. And you need someone else to handle the hard parts.&#8221; <a href="http://semanticweb.com/capitalizing-on-data-without-doing-the-dirty-work_b29031#more-29031">continued&#8230;</a></p>
<p>New Career Opportunities Daily: The <a href="http://www.mediabistro.com/joblistings/?c=rss">best jobs in media</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.microformatter.com/2012/05/18/capitalizing-on-data-without-doing-the-dirty-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Semantic Link on Financial Services with Guest, Lee Feigenbaum – May, 2012</title>
		<link>http://www.microformatter.com/2012/05/16/the-semantic-link-on-financial-services-with-guest-lee-feigenbaum-may-2012/</link>
		<comments>http://www.microformatter.com/2012/05/16/the-semantic-link-on-financial-services-with-guest-lee-feigenbaum-may-2012/#comments</comments>
		<pubDate>Wed, 16 May 2012 02:00:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microformats]]></category>
		<category><![CDATA[semanticweb]]></category>
		<category><![CDATA[web3.0]]></category>

		<guid isPermaLink="false">http://www.microformatter.com/2012/05/16/the-semantic-link-on-financial-services-with-guest-lee-feigenbaum-may-2012/</guid>
		<description><![CDATA[On Friday, May 11, a group of Semantic Technology thought leaders from around the globe met with their host and colleague, Paul Miller, for the latest installment of the Semantic Link, a monthly podcast covering the world of Semantic Technologies. This episode includes a discussion about Semantics in the Financial Services Industry, and &#8220;the Linkers&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://semanticweb.com/files/2012/01/2012-SemanticLinkers-521x751.jpg"><img class="alignnone size-full wp-image-17382" src="http://semanticweb.com/files/2012/01/2012-SemanticLinkers-521x751.jpg" border="0" alt="Paul Miller, Bernadette Hyland, Ivan Herman, Eric Hoffer, Andraz Tori, Peter Brown, Christine Connors, Eric Franzon" /></a></p>
<p>On Friday, May 11, a group of Semantic Technology thought leaders from around the globe met with their host and colleague, Paul Miller, for the latest installment of <em>the Semantic Link</em>, a monthly podcast covering the world of Semantic Technologies. This episode includes a discussion about Semantics in the Financial Services Industry, and &#8220;the Linkers&#8221; were joined by special guest, Lee Feigenbaum, VP Marketing &amp; Technology at Cambridge Semantics. Lee shared insights gained over many years working in the semantic technology field and with numerous customers in the financial services industry.<br />
 <a href="http://semanticweb.com/the-semantic-link-on-financial-services-with-guest-lee-feigenbaum-%E2%80%93-may-2012_b29010#more-29010">continued&#8230;</a></p>
<p>New Career Opportunities Daily: The <a href="http://www.mediabistro.com/joblistings/?c=rss">best jobs in media</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.microformatter.com/2012/05/16/the-semantic-link-on-financial-services-with-guest-lee-feigenbaum-may-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Schema.org Now Supports External Lists</title>
		<link>http://www.microformatter.com/2012/05/15/schema-org-now-supports-external-lists/</link>
		<comments>http://www.microformatter.com/2012/05/15/schema-org-now-supports-external-lists/#comments</comments>
		<pubDate>Tue, 15 May 2012 02:05:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microformats]]></category>
		<category><![CDATA[semanticweb]]></category>
		<category><![CDATA[web3.0]]></category>

		<guid isPermaLink="false">http://www.microformatter.com/2012/05/15/schema-org-now-supports-external-lists/</guid>
		<description><![CDATA[The schema.org official blog has announced support for enumerated lists. Adding this support allows developers using schema.org to use selected externally maintained vocabularies in their schema.org markup. According to the W3C-hosted schema.org WebSchemas wiki, &#8220;This is in addition to the existing extension mechanisms we support, and the general ability to include whatever markup you like [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://schema.org"><img class="alignleft size-full wp-image-26927" src="http://semanticweb.com/files/2012/02/schema.jpg" alt="" width="292" height="174" /></a>The schema.org official blog has <a href="http://blog.schema.org/2012/05/schemaorg-markup-for-external-lists.html" target="_blank">announced</a> support for enumerated lists. Adding this support allows developers using schema.org to use <em>selected</em> externally maintained vocabularies in their schema.org markup. According to the W3C-hosted schema.org <a href="http://www.w3.org/wiki/WebSchemas/ExternalEnumerations" target="_blank">WebSchemas wiki</a>, &#8220;This is in addition to the existing <a title="http://schema.org/docs/extension.html" rel="nofollow" href="http://schema.org/docs/extension.html" target="_blank">extension mechanisms</a> we support, and the general ability to include whatever markup you like  in your pages. The focus here is on external vocabularies which can be  thought of as &#8216;supported&#8217; (or anticipated) in some sense by schema.org.&#8221;</p>
<p>In other words, &#8220;Schema.org markup uses links into well-known authority lists to clarify which particular instance of a schema.org type (eg. Country) is being mentioned.&#8221;</p>
<p>For example, consider a list of countries of the world. A developer could use <a href="http://en.wikipedia.org/wiki/United_States" target="_blank">this URI</a> from Wikipedia to reference the USA or <a href="http://www.fao.org/countryprofiles/index.asp?lang=en&amp;iso3=USA" target="_blank">this one</a> from the UN FAO, or <a href="http://www.geonames.org/countries/US/united-states.html" target="_blank">this one</a> from GeoNames.</p>
<p> <a href="http://semanticweb.com/schema-org-now-supports-external-lists_b28968#more-28968">continued&#8230;</a></p>
<p>New Career Opportunities Daily: The <a href="http://www.mediabistro.com/joblistings/?c=rss">best jobs in media</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.microformatter.com/2012/05/15/schema-org-now-supports-external-lists/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using &quot;Punning&quot; to Answer httpRange-14</title>
		<link>http://www.microformatter.com/2012/05/12/using-punning-to-answer-httprange-14/</link>
		<comments>http://www.microformatter.com/2012/05/12/using-punning-to-answer-httprange-14/#comments</comments>
		<pubDate>Sat, 12 May 2012 02:00:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microformats]]></category>
		<category><![CDATA[semanticweb]]></category>
		<category><![CDATA[web3.0]]></category>

		<guid isPermaLink="false">http://www.microformatter.com/2012/05/12/using-punning-to-answer-httprange-14/</guid>
		<description><![CDATA[As part of the TAG&#8217;s work on httpRange-14, Jonathan Rees has assessed how a variety of use cases could be met by various proposals put before the TAG. The results of the assessment are a matrix which shows that &#8220;punning&#8221; is the most promising method, unique in not failing on either ease of use (use [...]]]></description>
			<content:encoded><![CDATA[<p>As part of the TAG&#8217;s work on httpRange-14, <a href="http://mumble.net/~jar/">Jonathan Rees</a> has assessed how a variety of <a href="http://www.w3.org/wiki/HTTPURIUseCases">use cases</a> could be met by various <a href="http://www.w3.org/wiki/TagIssue57Responses">proposals</a> put before the TAG. The results of the assessment are a <a href="http://www.w3.org/wiki/HTTPURIUseCaseMatrix">matrix</a> which shows that &#8220;punning&#8221; is the most promising method, unique in not failing on either <a href="http://www.w3.org/wiki/HTTPURIUseCases#J.29_Naive_linked_data_on_hosting_service">ease of use (use case J)</a> or <a href="http://www.w3.org/wiki/HTTPURIUseCases#M.29_HTTP_consistency">HTTP consistency (use case M)</a>.</p>
<p>In normal use, &#8220;punning&#8221; is about making jokes based around a word that has two meanings. In this context, &#8220;punning&#8221; is about using the same URI to mean two (or more) different things. It&#8217;s most commonly used as a term of art in <a href="http://techwiki.openstructs.org/index.php/Metamodeling_in_Domain_Ontologies">OWL</a> but normal people don&#8217;t need to worry particularly about that use. Here I&#8217;ll explore what that might actually mean as an approach to the httpRange-14 issue.</p>
<p><!--break--></p>
<p><em>Note: The material here is a summary of what I think is the best way forward following various discussions within and outside the <a href="http://www.w3.org/2001/tag/">TAG</a>, in particular with Jonathan, Henry Thompson and TimBL. Not all these people agree with or endorse the approach described here, but neither do all the ideas in this post originate from me.</em></p>
<h2>Background</h2>
<p>Five things recently make me more convinced than ever that the TAG must either provide some direction to the community, and soon, or get out of the way.</p>
<ol>
<li>
<p>The <a href="https://www.w3.org/2012/ldp/charter">proposed Linked Data Platform Working Group charter</a> and the <a href="http://www.w3.org/Submission/ldbp/">Submission that is the main input to the group</a> specifically brings together linked data and REST, and the only mention of <code>303</code> redirections so far is to do with paging.</p>
</li>
<li>
<p>A recent thread on the <a href="http://lists.w3.org/Archives/Public/public-vocabs/2012Apr/">W3C public-vocabs mailing list</a>, raised the question of <a href="http://lists.w3.org/Archives/Public/public-vocabs/2012Apr/0041.html">whether to embed schema.org markup about the page itself within a given page, or only about the thing that the page is about</a>. I wonder how many pages are being described as <code>schema:WebPage</code> as well as things like <code>schema:Organisation</code>, and how people choose which class to use.</p>
</li>
<li>
<p>The initial version of Dan&#8217;s <a href="http://www.w3.org/wiki/WebSchemas/ExternalEnumerations">proposal for handling external enumerations within schema.org</a> talked about minting new URIs in the <code>ext.schema.org</code> domain specifically to proxy existing URIs so that they can be guaranteed to provide the right (<code>303</code>) HTTP response. I can see the reasoning (persuading people to use <code>303</code> redirections is difficult) but it would be frustrating if the end result were a centralisation of the URI space.</p>
</li>
<li>
<p>Talking with my colleague John Sheridan about updating the UK government&#8217;s guidance on <a href="http://www.cabinetoffice.gov.uk/sites/default/files/resources/designing-URI-sets-uk-public-sector.pdf">Designing URI Sets for the UK Public Sector</a>, I really don&#8217;t know what to advise. Should the guidance continue to be to use <code>303</code> redirections, when I know from experience that these can be <a href="http://lists.w3.org/Archives/Public/public-lod/2012Mar/0424.html">impractically slow</a>? Should it change to recommend using hash URIs to identify things?</p>
</li>
<li>
<p>The very first message on the <a href="http://www.w3.org/community/opentag/">Technical Architecture Community Group</a> was in part about <a href="http://lists.w3.org/Archives/Public/public-opentag/2012Apr/0000.html">how to identify people with URIs</a>.</p>
</li>
</ol>
<p>Of course the httpRange-14 issue has been running for so long now that I&#8217;d estimate that currently 80% of the discussion about it is meta-discussion about whether there it needs to be discussed, how much it should be discussed, how to raise the quality of the discussion, how anyone who discusses it is a time-wasting idiot and should just shut up and so on. It&#8217;s a terrible destructive cycle: the more this goes on, the higher the proportion of time being spent on the meta-discussion, and the longer any discussion takes.</p>
<p>But I believe that we can get to a point where we don&#8217;t have to discuss it any more (except to reminisce about what a waste of time it was), and I believe that the only way to get to that point is for the TAG to push through and provide a practical way forward.</p>
<h2>Terminology</h2>
<p>Let&#8217;s start off with some terminology. The basic scenario is a three-way interaction between three agents:</p>
<ul>
<li>a <strong>supplier</strong> who manages the information that is accessible at a URI; it&#8217;s worth noting that the supplier for a particular URI might change over time and what exactly is provided at a URI is controlled by multiple parties, as there may be many service providers involved in routing the resolution of a URI, others in constructing what&#8217;s shown on the page served from the origin web server, and still others who transform that content en route to the consumer</li>
<li>a <strong>third-party publisher</strong> who publishes some information about a URI; unlike the supplier, they generally have no control and incomplete knowledge about the information available at a particular URI, its stability over time or consistency across representations</li>
<li>a <strong>consumer</strong>, typically an application of some kind, who has discovered the information published by the supplier or third-party publisher and wants to do something with it</li>
</ul>
<p>It&#8217;s also useful to include terms for three things that are passed around or referenced during the interaction, which are defined with the <a href="http://tools.ietf.org/html/rfc3986">URI specification</a> and <a href="http://tools.ietf.org/wg/httpbis/">HTTPbis</a>. (The <a href="http://tools.ietf.org/html/rfc2616">current HTTP specification, RFC 2616</a> is also of interest, of course, but HTTPbis is a better reflection of current practical use of HTTP, and is close to complete, at which point it will replace RFC 2616.)</p>
<ul>
<li>a <strong>URI</strong> which is a string of characters matching the syntax in the URI specification that <strong>identifies</strong> a resource; we only care about <code>http:</code> URIs here, although similar considerations may apply to URIs that use other schemes</li>
<li>a <strong>resource</strong> which is identified by the URI; the debate over whether HTTP constrains the nature of the resource is at the heart of some discussions around httpRange-14; here, as in the URI specification and HTTPbis, a resource could be anything</li>
<li><strong>representations</strong> which are media-typed sequences of bytes (often characters) encoded within the response to an HTTP <code>GET</code> request on a given URI; per HTTPbis, the response to a <code>GET</code> request contains a representation of the current state of the resource identified by the URI</li>
</ul>
<h2>Content and Meaning</h2>
<p>Now I will introduce a few new terms that aren&#8217;t used in the URI specification of HTTPbis but which are useful for discussion.</p>
<ul>
<li>The <strong>content</strong> located by a <code>http:</code> URI is whatever core information a consumer interacts with through the HTTP interface provided by the server for that URI. This is the information that is common across all the representations that are returned through a <code>GET</code> on a given URI (through content-negotiated variants). We can say that the <code>http:</code> URI <strong>locates</strong> the content of the resource that it identifies, because you can get hold of the content of a resource by performing an HTTP <code>GET</code> request.</li>
<li>The <strong>sense</strong> referred to by a <code>http:</code> URI is a social construct that arises from the properties associated with the URI by publishers and the way that these invoke action in consumers. We can say that a <code>http:</code> URI <strong>refers to</strong> a sense. While you can <code>GET</code> content from a URI, determining its sense can only be achieved by examining the way in which the URI is used within data published on the web. The sense referred to by a URI might vary in different contexts, but equally a single sense may emerge in the use of the URI. One sense referred to by a URI may be its content, and for some types of information that may be the only sense referred to by the URI by anyone.</li>
</ul>
<p>Here is a diagram that shows how these different terms hang together.</p>
<p>
<img src="http://www.jenitennison.com/blog/files/punning.png" />
</p>
<p>For example, take the URI <code>http://www.amazon.com/gp/product/B004TRXX7C</code>. The <em>content</em> located by this URI is the core information in the web pages we <code>GET</code> from the URI. The <em>sense</em> referred to by the URI could the same as the <em>content</em>, or it could be the novel Moby Dick, or the particular Kindle edition of the book. We can&#8217;t tell from any interaction at the level of the HTTP protocol what the <em>sense</em> of the resource is: that information has to come from the application level.</p>
<p>Like the meaning of a word, the <em>sense</em> that a URI refers to is a social understanding which emerges from use of the URI across the web, and a given URI may be used to refer to different <em>senses</em> in different sources of information or over time. Consumers interpret the information that uses a URI and is made available to them on the web in order to draw conclusions and perform a task. Different consumers will have different levels of trust in the particular interpretation of the URI that a given publisher provides; in particular, the information published by the supplier of the URI might be given a higher weight than that from third-party publishers. Tools like <a href="http://sig.ma/">sig.ma</a> illustrate how information can be combined from multiple sources with different weights, by associating metadata about the location of the data with the data itself; unpicking commonalities between groups of sources may help to work out the different <em>senses</em> referred to by these different sources.</p>
<p>The <em>content</em> located by a URI is more concrete, and is important because certain classes of application may infer something about what they can do with the <em>content</em> found at a given URI based on information published about the URI. The canonical example of this is a consumer that searches the web for public-domain pages, based on information published about the licensing of those pages, and displays a portion of one each day within a feed. This application can&#8217;t work properly if it doesn&#8217;t know what actual content is public domain. In the Amazon example above, if there is a statement saying <code>http://www.amazon.com/gp/product/B004TRXX7C</code> is public domain (referring to the novel &#8220;Moby Dick&#8221;, which is one possible <em>sense</em> referred by the URI, one on which the copyright has expired), a consumer that assumes the URI is being used to locate the <em>content</em> at that URI will assume that the representation retrieved through a <code>GET</code> on that URI is public domain. The consumer might pick out the first major paragraph from the HTML page for display, but that first paragraph is actually an editorial review that is marked with a separate copyright which therefore shouldn&#8217;t be displayed in a feed of public-domain content.</p>
<p>Of course interpreting assertions made by publishers about particular <em>content</em> can be just as complex as interpreting statements about a particular <em>sense</em> of a URI, especially when those assertions come from a third party. The <em>content</em> located by a URI may change over time, and potentially in dramatic ways if the domain name of the URI changes hands, so any statements that a consumer discovers about <em>content</em> needs to be assessed by a consumer in that context. That said, while the validity or truthfulness of a given piece of information about <em>content</em> may be variable, the bytes that are located through a URI by a consumer are tangible and discoverable in a way that the <em>sense</em> referred to by a URI can never be.</p>
<p>The core disagreements around httpRange-14 arise from whether you view the <em>content</em> located by a hash-less <code>http:</code> URI which provides a successful (<code>2XX</code>) response to be the only valid <em>sense</em> referred to by that URI, or whether you think they could be different things, and if you think they can be different things then which of those you think the URI identifies when it is used.</p>
<h2>Current State</h2>
<p>The URI and HTTP specifications talk only about URIs identifying resources and being able to make requests using URIs to get a representation of the resource, they do not talk about <em>senses</em> or <em>content</em>.</p>
<p>The httpRange-14 decision is based on a design where if you can successfully <code>GET</code> a representation using a URI (ie you receive a <code>200 OK</code> response) then the <em>sense</em> referred to by the URI is the <em>content</em> located by that URI. This is pictured in the diagram below.</p>
<p>
<img src="http://www.jenitennison.com/blog/files/equal-content-sense.png" />
</p>
<p>Sometimes, a server simply doesn&#8217;t store the <em>content</em> for something that it wishes to provide information about (for example, the Amazon website doesn&#8217;t store the content of Moby Dick), and sometimes the <em>sense</em> that a publisher wishes to confer on a URI is such that no <em>content</em> can be transmitted over the wire, such as a Person. In these cases, under this design, the server cannot give a <code>200 OK</code> response because it does not have the <em>content</em> for the URI. There are then two patterns a publisher can use to assign a <code>http:</code> URI to something in these cases.</p>
<p>One pattern is to use a <code>303 See Other</code> redirection to a URI whose <em>content</em> (which is the only <em>sense</em> of the URI in this design, remember) <strong>describes</strong> the original URI. This is pictured below.</p>
<p>
<img src="http://www.jenitennison.com/blog/files/punning-303.png" />
</p>
<p>The second pattern is to use a hash URI. This gives a very similar pattern, as you can see from the diagram below; the only difference is that instead of following a <code>303 See Other</code> redirection to get from one URI to the other, you can use URI parsing: you chop off the fragment part of the URI and perform a <code>GET</code> on the resulting URI to get a description. Often this leads to several hash URIs being described by the same <em>content</em>, as illustrated here:</p>
<p>
<img src="http://www.jenitennison.com/blog/files/punning-hash-uris.png" />
</p>
<p>However, hash URIs are also used to identify fragments within pages, which are bits of <em>content</em>. For hash URIs that identify fragments of a page, the picture looks more like this:</p>
<p>
<img src="http://www.jenitennison.com/blog/files/punning-fragment.png" />
</p>
<p>A consumer can&#8217;t tell just from looking at a hash URI whether it identifies a fragment of content or is being used to refer to something described by the content located by its base URI: the consumer has to make a request and understand the fragment identifier as it applies to the media type of the representation that it gets back. Also, if there&#8217;s any content negotiation going on, even if the fragment identifier doesn&#8217;t make sense for the media type, or doesn&#8217;t locate a fragment within the representation that the consumer retrieves, it might still locate a fragment of content within a different representation of the resource than that the consumer has retrieved.</p>
<p>In any case, common usage of hash-less <code>http:</code> URIs differs from this model of <em>content</em> and <em>sense</em> being one and the same for all URIs that give a successful response. Often URIs are used in data formats such as JSON, XML, RDF or HTML where the <em>content</em> and the <em>sense</em> of the URI are different things. For example, on the Flickr the <em>content</em> located through the URI <code>http://www.flickr.com/photos/45701084@N08/7051652969/</code> is a landing page that provides a bunch of information about an image, but the data within the page includes a statement about its license:</p>
<pre><code>&lt;http://www.flickr.com/photos/45701084@N08/7051652969/&gt;
  cc:license &lt;http://creativecommons.org/licenses/by/2.0/deed.en&gt; ;
  .
</code></pre>
<p>in which that same URI refers to the photograph itself: the <em>sense</em> referred to by the URI. The only way that you can tell this is by being a human: reading the page and the context in which the text describing the license is used.</p>
<p>This mismatch between the design specified by RFC 2616 and the httpRange-14 decision, and practice on the web today results in arguments back and fro with people saying, in essence, that the resource a URI identifies is the <em>sense</em> conferred by the URI&#8217;s supplier, or that a URI should always be taken as identifying the <em>content</em> of the resource, and then discussions about how to signal to an application that in particular cases the supplier really does mean the URI to identify some <em>content</em> or really does mean the URI to identify a particular <em>sense</em>, and if so which <em>sense</em> is being referred to.</p>
<h2>Punning</h2>
<p>&#8220;Punning&#8221; approaches attempt to cut through these disagreements by saying that the context in which the URI is used determines whether it is locating <em>content</em> or referring to a <em>sense</em>.</p>
<p>If we look at some <a href="http://ogp.me/">Open Graph Protocol (OGP)</a> statements on <code>http://www.imdb.com/title/tt1334573/</code>, we see:</p>
<pre><code>&lt;meta property="og:url" content="http://www.imdb.com/title/tt1334573/" /&gt;
&lt;meta property="og:title" content="Moby Dick (TV Series 2010)"/&gt;
&lt;meta property="og:type" content="video.tv_show"/&gt;
&lt;meta property="og:image" content="http://i.media-imdb.com/images/SFc0774313bf9ccbfe22050c8bb4029e41/imdb-share-logo.gif"/&gt;
&lt;meta property="og:site_name" content="IMDb"/&gt;
&lt;meta property="fb:app_id" content="115109575169727"/&gt;
</code></pre>
<p>Some of these properties &#8212; the url, title, type and image &#8212; are about the Moby Dick TV Series &#8212; the <em>sense</em> referred to by the URI <code>http://www.imdb.com/title/tt1334573/</code>. Others &#8212; the site name and Facebook application id &#8212; are about the <em>content</em> located by the URI. The properties that are provided by this data are all related to the same URI, but they aren&#8217;t all properties of the same thing. In natural language we might say:</p>
<ul>
<li>a URL of the thing described by the page is <code>http://www.imdb.com/title/tt1334573/</code></li>
<li>a title of the thing described by the page is &#8220;Moby Dick (TV Series 2010)&#8221;</li>
<li>a type of the thing described by the page is &#8220;video.tv_show&#8221;</li>
<li>an image of the thing described by the page is the content at <code>http://i.media-imdb.com/images/SFc0774313bf9ccbfe22050c8bb4029e41/imdb-share-logo.gif</code></li>
<li>the site of the page is IMDb</li>
<li>the Facebook application to use with the page has the identifier 115109575169727</li>
</ul>
<p>The property itself determines whether it applies to the <em>content</em> located by the URI (the page) or a <em>sense</em> referred to by the URI (in this case, the thing the page describes). Here&#8217;s a diagram that shows the distinction:</p>
<p>
<img src="http://www.jenitennison.com/blog/files/punning-moby-dick.png" />
</p>
<h3>Defining URI Usage</h3>
<p>The way in which a URI is interpreted &#8212; as referring to a <em>sense</em> or locating <em>content</em> &#8212; is dependent on where it is used. In XML, for example, an <code>xmlns:*</code> attribute contains a URI; when this is a hash-less <code>http:</code> URI, this refers to an XML namespace (a <em>sense</em> of that URI): it doesn&#8217;t matter what <em>content</em> you <code>GET</code> from dereferencing the URI, or even if it can be dereferenced at all. On the other hand, the <code>href</code> attribute on a <code>xi:include</code> element defined by <a href="http://www.w3.org/TR/xinclude/">XInclude</a> is used to locate some <em>content</em> to be included within the referring XML.</p>
<p>It is really up to the format in which data is encoded to determine how the URI should be interpreted: as locating some <em>content</em> or referring to a <em>sense</em>. As with interpreting any information with which it&#8217;s presented, an application that needs to work out which is meant might use:</p>
<ul>
<li>built-in knowledge (eg an application might know that the <code>og:title</code> property is always about the <em>sense</em> referred to by the subject URI, based on documentation about the property [this is essentially the same as if the information were embedded within a schema, but without the implication that every application must download and interpret a schema every time it happens across a property])</li>
<li>information encoded within a schema (eg a schema might classify the <code>og:title</code> property as a <code>PropertyWhoseSubjectIsTheSubstanceOfAResource</code>)</li>
<li>a default for the format of the data (eg given OGP uses RDFa, RDF could specify that by default URIs refer to a <em>sense</em>, and therefore barring other information to the contrary, properties cannot be assumed to be about the page itself)</li>
<li>a default for the web (eg we might say that barring overriding information, all hash-less <code>http:</code> URIs are assumed to locate <em>content</em>, as this is consistent with the current definition of HTTP in RFC 2616)</li>
</ul>
<p>Thus an implication of this approach is that the people who define languages and vocabularies must specify what aspect of a resource a URI used in a particular way identifies. There are four possibilities for a given URI:</p>
<ol>
<li>the URI is being used to locate some <em>content</em></li>
<li>the URI is being used to refer to a <em>sense</em></li>
<li>the URI is being used to identify either <em>content</em> or <em>sense</em> but it&#8217;s not specified which</li>
<li>the URI is being used to both locate <em>content</em> and refer to a <em>sense</em> (ie a property applies equally to both)</li>
</ol>
<h3>Equality</h3>
<p>Now let&#8217;s consider what happens when there is more information available about something, but it uses a different URI. The page <code>https://en.wikipedia.org/wiki/Moby_Dick_(miniseries)</code> is about the same TV series as <code>http://www.imdb.com/title/tt1334573/</code>. Imagine that this similarly made available the information that it held using OGP. It might contain:</p>
<pre><code>&lt;meta property="og:url" content="https://en.wikipedia.org/wiki/Moby_Dick_(miniseries)" /&gt;
&lt;meta property="og:title" content="Moby Dick (miniseries)"/&gt;
&lt;meta property="og:type" content="video.tv_show"/&gt;
&lt;meta property="og:site_name" content="Wikipedia"/&gt;
</code></pre>
<p>The two pages describe the same thing: the <em>sense</em> referred to by the two URIs is the same. However, the <em>content</em> of the two pages is different. If you simply smushed the properties together, ignoring the fact that some properties apply to the <em>content</em> and others the <em>sense</em> of the resource, you&#8217;d get some data that wasn&#8217;t quite right:</p>
<pre><code>{
  url: [
    'http://www.imdb.com/title/tt1334573/',
    'https://en.wikipedia.org/wiki/Moby_Dick_(miniseries)'
  ],
  title: [
    'Moby Dick (TV Series 2010)',
    'Moby Dick (miniseries)'
  ],
  type: [
    'video.tv_show'
  ],
  image: [
    'http://i.media-imdb.com/images/SFc0774313bf9ccbfe22050c8bb4029e41/imdb-share-logo.gif'
  ],
  site_name: [
    'IMDb',
    'Wikipedia'
  ],
  app_id: [
    '115109575169727'
  ]
}
</code></pre>
<p>Having two URLs, two titles and so on is fine, but having two site names doesn&#8217;t make sense: the <code>og:site_name</code> property is related to the <em>content</em> located by the URI, and the <em>content</em> is different for the two URIs. This is illustrated below.</p>
<p>
<img src="http://www.jenitennison.com/blog/files/punning-equality.png" />
</p>
<p>Conversely, imagine a situation in which there is a single document on a web server that is served up from the two URIs</p>
<pre><code>http://example.org/gender/male

http://example.org/gender/female

</code></pre>
<p>In this case, the <em>content</em> located by the two URIs is exactly the same, but the <em>sense</em> referred to by the two URIs is different: one refers to the gender &#8216;male&#8217; and the other to the gender &#8216;female&#8217;, as illustrated here.</p>
<p>
<img src="http://www.jenitennison.com/blog/files/punning-equality2.png" />
</p>
<p>So there are three types of equality that we have to be concerned with:</p>
<ul>
<li>equality between the desired <em>sense</em> and <em>content</em> of a single URI, as described earlier</li>
<li>equality between the <em>senses</em> referred to by different URIs</li>
<li>equality between the <em>content</em> located by different URIs</li>
</ul>
<p>In general equality between the resources identified between two URIs is a controversial thing to assert, because different contexts may refer to different <em>senses</em> of a particular URI, some of which may be equal with a <em>sense</em> referred to by another URI and some not. Like any statement made about URIs, the source of statements about equality must be considered.</p>
<p>Formats that wish to make assertions about equality between resources should provide ways of saying that the <em>sense</em> referred to by two URIs is the same, without implying that the <em>content</em> located at those two URIs are the same, and vice versa, and to assert that the <em>sense</em> and <em>content</em> of a URI are equal. What these properties are &#8212; how exactly these kinds of equality are asserted in a given format &#8212; is up to the format, but it&#8217;s important that the properties are kept distinct to enable people to articulate the full range of equality relationships between resources.</p>
<h2>Implications for Linked Data</h2>
<p>I have tried to keep the description above neutral in terms of technology choice, because I believe that the issue of how to interpret URIs within data is common across all languages that use URIs. However, as I&#8217;ve discussed previously, linked data is particularly affected by these issues both because URIs form a central part of the way it works as a data format and because culturally the community tries very hard to adhere to &#8220;good web architectural practice&#8221; in the hope that this will confer long-term benefits.</p>
<p>For that reason, I&#8217;ll look at what I think the impacts are on linked data practice of using the &#8220;punning&#8221; approach that I&#8217;ve described above.</p>
<h3>RDF</h3>
<p>The definition of RDF is currently in flux, as <a href="http://www.w3.org/TR/rdf11-concepts/">RDF 1.1</a> is developed, so now is a good time to consider its use of URIs.</p>
<p>RDF itself is not particularly concerned with what URIs identify: it is simply a model that can be used to associate properties between &#8220;resources&#8221;, where in the RDF context this term means anything that can be the subject or object of an RDF statement, including literals. (RDF&#8217;s use of the term &#8220;resource&#8221; is not the same as that used in the URI specification or HTTPbis.) The only real limitation in <a href="http://www.w3.org/TR/rdf-concepts/">RDF 1.0 Concepts</a>, is that a <a href="http://www.w3.org/TR/rdf-concepts/#section-fragID">hash URI identifies something described by the RDF/XML representation retrieved when the URI is resolved</a>. In the current Editor&#8217;s Draft of RDF 1.1, <a href="http://dvcs.w3.org/hg/rdf/raw-file/default/rdf-concepts/index.html#section-fragID">the same section</a> is less specific about what such a fragment might denote. So if the language and concepts above were adopted, RDF 1.1 should be more careful in its use of terminology, and attempt to be consistent with the URI and HTTP specifications, but I don&#8217;t think anything fundamental needs to change in the core semantics of RDF.</p>
<h3>Vocabulary Designers</h3>
<p>Under the &#8220;punning&#8221; approach, the property used within an RDF statement determines how the URI given as its subject or object should be interpreted. A consumer that discovers a URI by looking at the properties associated with it needs to be able to tell from the properties themselves whether it can associate those properties to particular <em>content</em> that it locates by requesting the URI or not.</p>
<p>Some properties have a defined domain or range that precludes the property from being used to annotate <em>content</em>. For example, the <code>foaf:nick</code> property has a domain of <code>foaf:Person</code>, and a <code>foaf:Person</code> cannot be a web page. Given this domain, an application can tell that the URI <code>http://www.jenitennison.com/</code> used in a statement such as:</p>
<pre><code>&lt;http://www.jenitennison.com/&gt;
  foaf:nick "JeniT" ;
  .
</code></pre>
<p>cannot be being used to locate the <em>content</em> of <code>http://www.jenitennison.com/</code>, even if <code>http://www.jenitennison.com/</code> responds with a <code>200 OK</code> response.</p>
<p>Note that this inference doesn&#8217;t work the other way around. The property <code>cc:license</code> has a domain of a <code>cc:Work</code> but without additional information about the property an application could not infer that in a statement such as</p>
<pre><code>&lt;http://www.amazon.com/gp/product/B004TRXX7C&gt;
  cc:license &lt;http://creativecommons.org/publicdomain/mark/1.0/&gt; ;
  .
</code></pre>
<p>the URI <code>http://www.amazon.com/gp/product/B004TRXX7C</code> was being used to locate the <em>content</em> of <code>http://www.amazon.com/gp/product/B004TRXX7C</code>: it could equally be being used to refer to some <em>sense</em> of the resource (for example the novel Moby Dick).</p>
<p>To support &#8220;punning&#8221;, therefore, RDF vocabulary designers would need to have additional properties that could be applied to RDF Properties to indicate how their subject (and object where applicable) should be interpreted. For example, the Creative Commons vocabulary might include (warning: made up property names and instances):</p>
<pre><code>cc:license
  rdfs:subjectUri rdf:sense ;
  rdfs:objectUri rdf:content ;
  .
</code></pre>
<p>with the implication that URIs used as the subject of <code>cc:license</code> should be understood as referring to the <em>sense</em> of the URI, while those used as the object of <code>cc:license</code> should be understood as referring to the <em>content</em> retrieved from the URI.</p>
<p>Even if properties like <code>rdfs:subjectUri</code> or <code>rdfs:objectUri</code> are defined, there are going to be RDF properties for which the interpretation of subject and/or object URIs isn&#8217;t specified, and thus consumers of RDF content need to have a default interpretation. What that should be is, I think, a matter for the RDF community to decide.</p>
<h3>Inference</h3>
<p>The major difficulties with the &#8220;punning&#8221; approach and the current use of RDF comes when reasoning is used across RDF statements in which the same URI is used in different ways, particularly with properties where the interpretation of the subject and/or object isn&#8217;t specified.</p>
<p>For example, if a consumer finds the following triples at <code>http://www.imdb.com/title/tt1334573/</code>:</p>
<pre><code>&lt;http://www.imdb.com/title/tt1334573/&gt;
  og:url "http://www.imdb.com/title/tt1334573/" ;
  og:title "Moby Dick (TV Series 2010)" ;
  og:type "video.tv_show" ;
  og:image "http://i.media-imdb.com/images/SFc0774313bf9ccbfe22050c8bb4029e41/imdb-share-logo.gif" ;
  og:site_name "IMDb" ;
  fb:app_id "115109575169727" ;
  .
</code></pre>
<p>and the following triples at <code>https://en.wikipedia.org/wiki/Moby_Dick_(miniseries)</code>:</p>
<pre><code>&lt;https://en.wikipedia.org/wiki/Moby_Dick_(miniseries)&gt;
  og:url "https://en.wikipedia.org/wiki/Moby_Dick_(miniseries)" ;
  og:title "Moby Dick (miniseries)" ;
  og:type "video.tv_show" ;
  og:site_name "Wikipedia" ;
  .
</code></pre>
<p>and then the assertion:</p>
<pre><code>&lt;http://www.imdb.com/title/tt1334573/&gt;
  owl:sameAs &lt;https://en.wikipedia.org/wiki/Moby_Dick_(miniseries)&gt; ;
  .
</code></pre>
<p>then the result of inference will be that all the statements made about <code>http://www.imdb.com/title/tt1334573/</code> apply equally to <code>https://en.wikipedia.org/wiki/Moby_Dick_(miniseries)</code>, which is not the case.</p>
<p>To enable publishers to make assertions about equality of <em>sense</em> and equality of <em>content</em> separately, we will need new relationships. For example:</p>
<pre><code>&lt;http://www.imdb.com/title/tt1334573/&gt;
  owl:sameSenseAs &lt;https://en.wikipedia.org/wiki/Moby_Dick_(miniseries)&gt; ;
  .
</code></pre>
<p>would only infer that those properties whose subject is the <em>sense</em> of <code>http://www.imdb.com/title/tt1334573/</code> apply equally to the <em>sense</em> of <code>https://en.wikipedia.org/wiki/Moby_Dick_(miniseries)</code>. A <code>owl:sameContentAs</code> property could similarly assert equality between the <em>content</em> of two URIs.</p>
<p>The impact is not limited to reasoning with <code>owl:sameAs</code>: all inference in <a href="http://www.w3.org/TR/rdf-schema/">RDFS</a> and <a href="http://www.w3.org/TR/owl2-overview/">OWL</a> is based on the assumption that a single URI identifies a single entity. This works in situations where the RDF over which inferences are being made is all trusted (for example if it is all made available by the same publisher), and a lot of current use of OWL is precisely in these kinds of closed environments. The same inferences can be made even with information gleaned from the web at large, if that information is selected carefully.</p>
<p>Another approach, where publishers have mixed properties about the <em>sense</em> referred to by a URI and those about the <em>content</em> located by a URI is to pre-process those RDF statements to create separate (blank node) RDF resources. For example, if <code>og:url</code>, <code>og:title</code>, <code>og:type</code> and <code>og:image</code> are defined to have a subject that refers to the <em>sense</em> of the URI, and <code>og:site_name</code> and <code>fb:app_id</code> to have a subject that locates the <em>content</em> of the URI, the statements about <code>http://www.imdb.com/title/tt1334573/</code> above could be translated into:</p>
<pre><code>_:imdbSubstance
  rdf:senseUri "http://www.imdb.com/title/tt1334573/" ;
  og:url "http://www.imdb.com/title/tt1334573/" ;
  og:title "Moby Dick (TV Series 2010)" ;
  og:type "video.tv_show" ;
  og:image "http://i.media-imdb.com/images/SFc0774313bf9ccbfe22050c8bb4029e41/imdb-share-logo.gif" ;
  .

_:imdbContent
  rdf:contentUri "http://www.imdb.com/title/tt1334573/" ;
  og:site_name "IMDb" ;
  fb:app_id "115109575169727" ;
  .
</code></pre>
<p>Here, the (putative) <code>rdf:senseUri</code> property is an inverse functional property that provides the URI for which the individual is a <em>sense</em>, and the <code>rdf:contentUri</code> property is an inverse functional properties that provides the URI for which the individual is the <em>content</em>.</p>
<p>This separation would then allow existing inference to take place on the separate entities.</p>
<h3>Publishers</h3>
<p>There are many advantages offered by the &#8220;punning&#8221; approach for linked data publishers:</p>
<ul>
<li>it supplies an easy on-ramp for suppliers who want to annotate their pages with HTML data such as RDFa and microdata: suppliers can use URIs that they already support to refer to things other than documents, if they choose to, which means all they need to do is add metadata to their pages (as they are currently using OGP and schema.org)</li>
<li>suppliers do not have to have access to server configuration in order to promote the use of particular URIs to mean things that do not have <em>content</em> (such as people or organisations)</li>
<li>publishers can copy and paste URIs from the location bar of their browsers (a familiar activity for people who wish to provide a pointer to something) rather than inspecting pages for a recommended URI to be used to refer to a particular <em>sense</em></li>
<li>organisations such as schema.org can easily recommend the reuse of URIs published by other people, such as Wikipedia, without requiring those publishers to alter their server configuration or requiring developers that use schema.org markup to add fragment identifiers to their URIs</li>
<li>explicit <code>describedby</code> and <code>describes</code> links can be made between URIs rather than using an HTTP status code where necessary; these can be incorporated directly in data and do not require a network connection to be discovered</li>
</ul>
<h3>Provenance</h3>
<p>The &#8220;punning&#8221; approach that I&#8217;ve described here has as its core the recognition that different consumers will trust different sources of information to different levels. Knowledge of the provenance of a particular source of information is one way in which consumers can work out what to trust and how to resolve conflicts sources.</p>
<p>The work of the <a href="http://www.w3.org/2011/prov">Provenance Working Group</a> is important here both in identifying the provenance of particular <em>content</em> located at a given URI and in providing a vocabulary for describing the processing that a consumer performs to retrieve and process that <em>content</em> in order to extract data from it (for example, the time of the retrieval and the HTTP headers used may lead to the consumer receiving different content; the particular version of software used may lead to different information being gleaned from that content).</p>
<h3>Linked Data Platform</h3>
<p>The particular issues around what URIs actually identify within RDF only become an issue when the URIs are resolved &#8212; when RDF is used within linked data. The new <a href="http://www.w3.org/2012/ldp/">Linked Data Platform Working Group</a> is a great opportunity to standardise around these practices, in collaboration with the other relevant working groups.</p>
<h2>Final Thoughts</h2>
<p>People use the terms &#8220;resource&#8221;, &#8220;identifies&#8221; and &#8220;representation&#8221; both within specifications and in common parlance as if there is a shared understanding of what they mean, when in fact different people use the terms in subtly but meaningfully different ways. This would be fine, except that the different understandings lead to different assumptions and engineering decisions, and friction for developers trying to build applications that publish and consume data whose assumptions differ.</p>
<p>We need to find a way forward that, even if not everyone&#8217;s ideal, is realistic, explicable and palatable. The &#8220;punning&#8221; approach that I&#8217;ve described above might not be it, but the analysis that Jonathan&#8217;s done of the various proposals and use cases suggests to me that it&#8217;s the closest we have. The main questions I have are:</p>
<ul>
<li>what use cases cannot be satisfied using this approach?</li>
<li>what specifications would have to change if this approach was adopted, and would it be realistic to make those changes?</li>
<li>what existing applications would break if this approach was adopted, and how might that breakage be mitigated?</li>
</ul>
<p>At the very least, I hope that the vocabulary I&#8217;ve laid out in this post might be helpful in further discussions.</p>
<p>Of course any other comments are most welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.microformatter.com/2012/05/12/using-punning-to-answer-httprange-14/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing the New Semantic Web Job Board</title>
		<link>http://www.microformatter.com/2012/05/12/introducing-the-new-semantic-web-job-board/</link>
		<comments>http://www.microformatter.com/2012/05/12/introducing-the-new-semantic-web-job-board/#comments</comments>
		<pubDate>Sat, 12 May 2012 02:00:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microformats]]></category>
		<category><![CDATA[semanticweb]]></category>
		<category><![CDATA[web3.0]]></category>

		<guid isPermaLink="false">http://www.microformatter.com/2012/05/12/introducing-the-new-semantic-web-job-board/</guid>
		<description><![CDATA[SemanticWeb.com has been pointing out job openings in the semantic technology field that we thought would be of interest to our readers for some time. Now we have taken our career resources to the next level by launching jobs.semanticweb.com. The job board features prominent opportunities in the Semantic Technology space. Eric Franzon, VP Community said, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jobs.semanticweb.com/jobboard.php"><img class="alignleft size-medium wp-image-28920" src="http://semanticweb.com/files/2012/05/Capture3-300x160.png" alt="" width="300" height="160" /></a>SemanticWeb.com has been pointing out job openings in the semantic technology field that we thought would be of interest to our readers for some time. Now we have taken our career resources to the next level by launching <a href="http://jobs.semanticweb.com/jobboard.php">jobs.semanticweb.com</a>. The job board features prominent opportunities in the Semantic Technology space.</p>
<p>Eric Franzon, VP Community said, &#8220;With daily news about the organizations building and employing Semantic Technology solutions, thought leadership pieces by community leaders, and our strong <a href="http://answers.semanticweb.com/" target="_blank">answers.semanticweb.com</a> community of developers, we reach tens of thousands of Semantic Technology professionals every month. A job board was a natural addition to our offerings. SemanticWeb.com has simply become the best place for businesses to find the top talent with semantic technology skills.&#8221;</p>
<p>Job seekers are encouraged to visit the board today &#8211; there are jobs listed now that need to be filled. If you have a job to post, or know of someone who is looking for Semantic Technology talent, please point them to <a href="http://jobs.semanticweb.com">http://jobs.semanticweb.com</a>. Job listings carry a satisfaction guarantee as well. We will refund the money of any job poster who is not completely satisfied.</p>
<p>On a related note, the Semantic Technology and Business Conference in San Francisco is offering a &#8220;<a href="http://semtechbizsf2012.semanticweb.com/career-corner.cfm" target="_blank">Career Corner</a>&#8221; for the second consecutive year. <a href="http://semtechbizsf2012.semanticweb.com/reg.cfm" target="_blank">Register for SemTechBiz here</a> (Price breaks expire Tuesday, May 15).</p>
<p>New Career Opportunities Daily: The <a href="http://www.mediabistro.com/joblistings/?c=rss">best jobs in media</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.microformatter.com/2012/05/12/introducing-the-new-semantic-web-job-board/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Turning tabular data into entities</title>
		<link>http://www.microformatter.com/2012/05/11/turning-tabular-data-into-entities/</link>
		<comments>http://www.microformatter.com/2012/05/11/turning-tabular-data-into-entities/#comments</comments>
		<pubDate>Fri, 11 May 2012 02:00:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microformats]]></category>
		<category><![CDATA[semanticweb]]></category>
		<category><![CDATA[web3.0]]></category>

		<guid isPermaLink="false">http://www.microformatter.com/2012/05/11/turning-tabular-data-into-entities/</guid>
		<description><![CDATA[Two widely used data formats on the Web are CSV and JSON. In order to enable fine-grained access in an hypermedia-oriented fashion I&#8217;ve started to work on Tride, a mapping language that takes one or more CSV files as inputs and produces a set of (connected) JSON documents. In the 2 min demo video I [...]]]></description>
			<content:encoded><![CDATA[<p>Two widely used data formats on the Web are CSV and JSON. In order to enable fine-grained access in an hypermedia-oriented fashion I&#8217;ve started to work on <a href="https://github.com/mhausenblas/tride">Tride</a>, a mapping language that takes one or more CSV files as inputs and produces a set of (connected) JSON documents. </p>
<p><span><a href="http://webofdata.wordpress.com/2012/05/10/turning-tabular-data-into-entities/"><img src="http://img.youtube.com/vi/Z6ueSqwgaYU/2.jpg" alt="" /></a></span></p>
<p>In the 2 min <a href="http://youtu.be/Z6ueSqwgaYU">demo video</a> I use two CSV files (<a href="https://github.com/mhausenblas/tride/blob/master/test/people.csv">people.csv</a> and <a href="https://github.com/mhausenblas/tride/blob/master/test/group.csv">group.csv</a>) as well as a mapping file (<a href="https://github.com/mhausenblas/tride/blob/master/test/group-map.json">group-map.json</a>) to produce a set of interconnected JSON documents.</p>
<p>So, the following mapping file:<br />
<code></p>
<pre>{
 "input" : [
  { "name" : "people", "src" : "people.csv" },
  { "name" : "group", "src" : "group.csv" }
 ],
 "map" : {
  "people" : {
   "base" : "http://localhost:8000/people/",
   "output" : "../out/people/",
   "with" : {
    "fname" : "people.first-name",
    "lname" : "people.last-name",
    "member" : "link:people.group-id to:group.ID"
   }
  },
  "group" : {
   "base" : "http://localhost:8000/group/",
    "output" : "../out/group/",
    "with" : {
     "title" : "group.title",
     "homepage" : "group.homepage",
     "members" : "where:people.group-id=group.ID link:group.ID to:people.ID"
    }
   }
 }
}</pre>
<p></code></p>
<p>&#8230; produces JSON documents representing groups. One concrete example output is shown below:<br />
<a href="http://webofdata.files.wordpress.com/2012/05/example-group-doc.png"><img src="http://webofdata.files.wordpress.com/2012/05/example-group-doc.png?w=750&amp;h=240" alt="" width="750" height="240" class="alignleft size-full wp-image-774" /></a></p>
<p>Filed under: <a href="http://webofdata.wordpress.com/category/demo/">demo</a>, <a href="http://webofdata.wordpress.com/category/experiment/">Experiment</a>, <a href="http://webofdata.wordpress.com/category/fyi/">FYI</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webofdata.wordpress.com/763/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webofdata.wordpress.com/763/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/webofdata.wordpress.com/763/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/webofdata.wordpress.com/763/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/webofdata.wordpress.com/763/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/webofdata.wordpress.com/763/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/webofdata.wordpress.com/763/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/webofdata.wordpress.com/763/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/webofdata.wordpress.com/763/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/webofdata.wordpress.com/763/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/webofdata.wordpress.com/763/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/webofdata.wordpress.com/763/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/webofdata.wordpress.com/763/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/webofdata.wordpress.com/763/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webofdata.wordpress.com&amp;blog=6169642&amp;post=763&amp;subd=webofdata&amp;ref=&amp;feed=1" width="1" height="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.microformatter.com/2012/05/11/turning-tabular-data-into-entities/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Semantic Web Jobs: Thomson Reuters</title>
		<link>http://www.microformatter.com/2012/05/11/semantic-web-jobs-thomson-reuters/</link>
		<comments>http://www.microformatter.com/2012/05/11/semantic-web-jobs-thomson-reuters/#comments</comments>
		<pubDate>Fri, 11 May 2012 02:00:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microformats]]></category>
		<category><![CDATA[semanticweb]]></category>
		<category><![CDATA[web3.0]]></category>

		<guid isPermaLink="false">http://www.microformatter.com/2012/05/11/semantic-web-jobs-thomson-reuters/</guid>
		<description><![CDATA[Thomson Reuters is looking for a Bioinformatics Analyst in Philadelphia, PA. The post states, &#8220;The role of Bioinformatics Analyst is to develop products and services that leverage internal and external ontologies, text mining and analytics to enhance the Life Sciences value propositions in core products and services engagements across the global organization. This highly motivated [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-28880" src="http://semanticweb.com/files/2012/05/rtr_ahz_rgb_pos-300x131.png" alt="" width="300" height="131" />Thomson Reuters is looking for a <a href="http://jobview.monster.com/getjob.aspx?jobid=109675794&amp;WT.mc_n=Indeed_US&amp;from=indeed">Bioinformatics Analyst</a> in Philadelphia, PA. The post states, &#8220;The role of Bioinformatics Analyst is to develop products and services that leverage internal and external ontologies, text mining and analytics to enhance the Life Sciences value propositions in core products and services engagements across the global organization. This highly motivated individual will be expected to take ownership of their workload; act independently &amp; knowledgably as the key contact within the group for ontologies and text mining; work directly with internal and external customers to determine requirements and propose new offerings; work closely with Sales in customer engagements and work to deliver reusable components that answer specific business needs.&#8221; <a href="http://semanticweb.com/semantic-web-jobs-thomson-reuters-2_b28879#more-28879">continued&#8230;</a></p>
<p>New Career Opportunities Daily: The <a href="http://www.mediabistro.com/joblistings/?c=rss">best jobs in media</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.microformatter.com/2012/05/11/semantic-web-jobs-thomson-reuters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Semantic Models for CDISC</title>
		<link>http://www.microformatter.com/2012/05/10/semantic-models-for-cdisc/</link>
		<comments>http://www.microformatter.com/2012/05/10/semantic-models-for-cdisc/#comments</comments>
		<pubDate>Thu, 10 May 2012 02:02:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microformats]]></category>
		<category><![CDATA[semanticweb]]></category>
		<category><![CDATA[web3.0]]></category>

		<guid isPermaLink="false">http://www.microformatter.com/2012/05/10/semantic-models-for-cdisc/</guid>
		<description><![CDATA[Kerstin Forsberg has written an article discussing a presentation she and Frederik Malfait gave regarding the use of semantic models for CDISC-based standard and metadata management, pointing to case studies at AstraZeneca and Roche. She writes, &#8220;In AstraZeneca we have a new program called Integrative Informatics (i2) establishing the components required to let a linked [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://kerfors.blogspot.se/2012/05/semantic-models-for-cdisc-based.html"><img class="alignleft size-medium wp-image-28831" src="http://semanticweb.com/files/2012/05/Capture2-300x210.png" alt="" width="300" height="210" />Kerstin Forsberg has written an article discussing</a> a presentation she and Frederik Malfait gave regarding the use of semantic models for CDISC-based standard and metadata management, pointing to case studies at AstraZeneca and Roche. She writes, &#8220;In AstraZeneca we have a new program called Integrative Informatics (i2) establishing the components required to let a linked data cloud grow across R&amp;D. A key component is the <a href="http://semanticweb.com/?cx=014154320031312368439:roum4ta8hle&amp;cof=FORID:11&amp;s=1&amp;q=uris&amp;siteurl=http://semanticweb.com/">URI</a> policy for how to make for example a Clinical Study linkable by giving it a URI, that is a Uniform Resource Identifier, e.g. http://research.data.astrazeneca.com/id/clinicalstudy/D5890C00003.  <a href="http://semanticweb.com/semantic-models-for-cdisc_b28830#more-28830">continued&#8230;</a></p>
<p>New Career Opportunities Daily: The <a href="http://www.mediabistro.com/joblistings/?c=rss">best jobs in media</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.microformatter.com/2012/05/10/semantic-models-for-cdisc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Understanding RDF serialisation formats</title>
		<link>http://www.microformatter.com/2012/05/08/understanding-rdf-serialisation-formats/</link>
		<comments>http://www.microformatter.com/2012/05/08/understanding-rdf-serialisation-formats/#comments</comments>
		<pubDate>Tue, 08 May 2012 02:04:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microformats]]></category>
		<category><![CDATA[semanticweb]]></category>
		<category><![CDATA[web3.0]]></category>

		<guid isPermaLink="false">http://www.microformatter.com/2012/05/08/understanding-rdf-serialisation-formats/</guid>
		<description><![CDATA[A couple of weeks ago, I wrote an Introduction To RDF. In that article, we discussed expressing a RDF single triple (which defined the location of my blog) as a blob and line diagram. But what if we want to describe more than one aspect of a resource?&#8230; or if we want to model the [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago, I wrote an <a href="http://learnlinkeddata.com/articles/introduction-to-rdf">Introduction To <span>RDF</span></a>. In that article, we discussed expressing a <span>RDF</span> single triple (which defined the location of my blog) as a <em>blob and line</em> diagram.  But what if we want to describe more than one aspect of a resource?&#8230; or if we want to model the relationships between many resources? It probably wouldn&#8217;t come as a surprise that to do that, you&#8217;d need to create multiple triples. As I mentioned in that previous post, <em>blob and line</em> diagrams only work well for small numbers of triples, and they&#8217;re only really good for humans.</p>
<p>To communicate <span>RDF</span> between computer systems, we need something different. In this article, we&#8217;ll see how to serialise a <a href="http://www.w3.org/TR/rdf-mt/#graphdefs">graph</a> (i.e. a <em>collection</em>, or <em>set</em>) of <span>RDF</span> triples in different ways, and explore the advantages and disadvantages of each.</p>
<p>In order to avoid me having to make up a contrived example, I&#8217;m going to use some data from the <a href="http://opendatacommunities.org">OpenDataCommunities</a> site<a href="http://learnlinkeddata.com#disclosure">*</a>, which contains a bunch of open data about English Local Authorities.  The <span>URI</span> <a href="http://opendatacommunities.org/id/metropolitan-district-council/manchester">http://opendatacommunities.org/id/metropolitan-district-council/manchester</a> identifies the Manchester Metropolitan District Council. If you click on that link, you&#8217;ll get an <span>HTML</span> representation of the data that the site holds about that authority.</p>
<p><img src="http://learnlinkeddata.s3.amazonaws.com/manchester-rdf.png%0A" style="border: 1px solid #ddd" /></p>
<p>But the site also offers the data in other formats via links at the bottom of the page. Let&#8217;s look at the contents of each in turn.</p>
<h3><span>RDF</span>/<span>XML</span></h3>
<p><span>RDF</span> is most commonly expressed in an <span>XML</span> format: <em><span>RDF</span>/<span>XML</span></em>.</p>
<h4>A Single Resource as <span>RDF</span>/<span>XML</span></h4>
<p>The <span>RDF</span>/<span>XML</span> for what we know about the Manchester authority looks like this:</p>
<pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ns0="http://opendatacommunities.org/def/local-government/" xmlns:ns1="http://data.ordnancesurvey.co.uk/ontology/admingeo/" xmlns:ns2="http://statistics.data.gov.uk/def/administrative-geography/" xmlns:ns3="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ns4="http://www.w3.org/2000/01/rdf-schema#" xmlns:ns5="http://www.w3.org/2002/07/owl#" xmlns:ns6="http://xmlns.com/foaf/0.1/"&gt;
  &lt;ns0:MetropolitanDistrictCouncil rdf:about="http://opendatacommunities.org/id/metropolitan-district-council/manchester"&gt;
    &lt;ns1:gssCode&gt;E08000003&lt;/ns1:gssCode&gt;
    &lt;ns1:hasCensusCode&gt;00BN&lt;/ns1:hasCensusCode&gt;
    &lt;ns0:billingAuthorityCode&gt;E4203&lt;/ns0:billingAuthorityCode&gt;
    &lt;ns0:governs rdf:resource="http://data.ordnancesurvey.co.uk/id/7000000000018821"/&gt;
    &lt;ns0:openlyLocalUrl rdf:resource="http://openlylocal.com/councils/157-Manchester-City-Council"/&gt;
    &lt;ns2:region rdf:resource="http://statistics.data.gov.uk/id/government-office-region/B"/&gt;
    &lt;ns3:type rdf:resource="http://opendatacommunities.org/def/local-government/CivilAdministrativeAuthority"/&gt;
    &lt;ns3:type rdf:resource="http://opendatacommunities.org/def/local-government/LocalAuthority"/&gt;
    &lt;ns4:label&gt;Manchester&lt;/ns4:label&gt;
    &lt;ns5:sameAs rdf:resource="http://statistics.data.gov.uk/id/local-authority/00BN"/&gt;
    &lt;ns6:page rdf:resource="http://www.manchester.gov.uk/"/&gt;
  &lt;/ns0:MetropolitanDistrictCouncil&gt;
&lt;/rdf:RDF&gt;</code></pre>
<h4>Multiple Resources as <span>RDF</span>/<span>XML</span></h4>
<p>A couple of local authorities serialised as <span>RDF</span>/<span>XML</span> look like this:</p>
<pre><code>&lt;?xml version="1.0"?&gt;
&lt;rdf:RDF
    xmlns:j.0="http://data.ordnancesurvey.co.uk/ontology/admingeo/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:j.1="http://xmlns.com/foaf/0.1/"
    xmlns:j.2="http://opendatacommunities.org/def/local-government/"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:j.3="http://statistics.data.gov.uk/def/administrative-geography/"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" &gt;
  &lt;rdf:Description rdf:about="http://opendatacommunities.org/id/district-council/babergh"&gt;
    &lt;j.2:governs rdf:resource="http://data.ordnancesurvey.co.uk/id/7000000000015692"/&gt;
    &lt;j.0:hasCensusCode&gt;42UB&lt;/j.0:hasCensusCode&gt;
    &lt;j.2:billingAuthorityCode&gt;E3531&lt;/j.2:billingAuthorityCode&gt;
    &lt;rdfs:label&gt;Babergh&lt;/rdfs:label&gt;
    &lt;j.1:page rdf:resource="http://www.babergh.gov.uk"/&gt;
    &lt;rdf:type rdf:resource="http://opendatacommunities.org/def/local-government/LocalAuthority"/&gt;
    &lt;rdf:type rdf:resource="http://opendatacommunities.org/def/local-government/DistrictCouncil"/&gt;
    &lt;j.0:gssCode&gt;E07000200&lt;/j.0:gssCode&gt;
    &lt;owl:sameAs rdf:resource="http://statistics.data.gov.uk/id/local-authority/42UB"/&gt;
    &lt;j.3:region rdf:resource="http://statistics.data.gov.uk/id/government-office-region/G"/&gt;
    &lt;rdf:type rdf:resource="http://opendatacommunities.org/def/local-government/CivilAdministrativeAuthority"/&gt;
  &lt;/rdf:Description&gt;
  &lt;rdf:Description rdf:about="http://opendatacommunities.org/id/london-borough-council/barking-and-dagenham"&gt;
    &lt;owl:sameAs rdf:resource="http://statistics.data.gov.uk/id/local-authority/00AB"/&gt;
    &lt;j.0:gssCode&gt;E09000002&lt;/j.0:gssCode&gt;
    &lt;rdf:type rdf:resource="http://opendatacommunities.org/def/local-government/CivilAdministrativeAuthority"/&gt;
    &lt;j.2:openlyLocalUrl rdf:resource="http://openlylocal.com/councils/19-London-Borough-of-Barking-Dagenham"/&gt;
    &lt;rdf:type rdf:resource="http://opendatacommunities.org/def/local-government/LondonBoroughCouncil"/&gt;
    &lt;j.2:governs rdf:resource="http://data.ordnancesurvey.co.uk/id/7000000000010949"/&gt;
    &lt;rdf:type rdf:resource="http://opendatacommunities.org/def/local-government/LocalAuthority"/&gt;
    &lt;j.0:hasCensusCode&gt;00AB&lt;/j.0:hasCensusCode&gt;
    &lt;j.3:region rdf:resource="http://statistics.data.gov.uk/id/government-office-region/H"/&gt;
    &lt;j.1:page rdf:resource="http://www.lbbd.gov.uk/"/&gt;
    &lt;j.2:billingAuthorityCode&gt;E5030&lt;/j.2:billingAuthorityCode&gt;
    &lt;rdfs:label&gt;Barking and Dagenham&lt;/rdfs:label&gt;
  &lt;/rdf:Description&gt;
&lt;/rdf:RDF&gt;</code></pre>
<h4>Mime Type</h4>
<p><span>RDF</span>/<span>XML</span> is typically requested and sent over the Web using a <span>MIME</span> type of <code>application/rdf+xml</code>.</p>
<h4><span>RDF</span>/<span>XML</span> Summary</h4>
<p>In <span>RDF</span>/<span>XML</span>, the triples for each resource, are contained within <code>&lt;rdf:Description&gt;</code> nodes, with a sub-node for each property and its value.</p>
<p>This format has the advantage that most programming languages have support for <span>XML</span>, and you can make use of <span>XML</span> namespaces to avoid having to use full URIs everywhere, which keeps the size down. On the other hand, I don&#8217;t find it that easy to read manually.</p>
<h3>Turtle</h3>
<p><em>Turtle</em> (Terse <span>RDF</span> Triple Language) is an <span>RDF</span>-specific subset of Tim Berners-Lee&#8217;s <em>Notation3</em> language.</p>
<h4>A Single Resource as Turtle</h4>
<p>The turtle output for the <span>RDF</span> triples about that single Manchester authority looks like this:</p>
<pre><code>&lt;http://opendatacommunities.org/id/metropolitan-district-council/manchester&gt;
   a &lt;http://opendatacommunities.org/def/local-government/MetropolitanDistrictCouncil&gt;,
   &lt;http://opendatacommunities.org/def/local-government/LocalAuthority&gt;,
   &lt;http://opendatacommunities.org/def/local-government/CivilAdministrativeAuthority&gt;;
   &lt;http://www.w3.org/2000/01/rdf-schema#label&gt; "Manchester";
   &lt;http://data.ordnancesurvey.co.uk/ontology/admingeo/gssCode&gt; "E08000003";
   &lt;http://data.ordnancesurvey.co.uk/ontology/admingeo/hasCensusCode&gt; "00BN";
   &lt;http://opendatacommunities.org/def/local-government/billingAuthorityCode&gt; "E4203";
   &lt;http://opendatacommunities.org/def/local-government/governs&gt; &lt;http://data.ordnancesurvey.co.uk/id/7000000000018821&gt;;
   &lt;http://opendatacommunities.org/def/local-government/openlyLocalUrl&gt; &lt;http://openlylocal.com/councils/157-Manchester-City-Council&gt;;
   &lt;http://statistics.data.gov.uk/def/administrative-geography/region&gt; &lt;http://statistics.data.gov.uk/id/government-office-region/B&gt;;
   &lt;http://www.w3.org/2002/07/owl#sameAs&gt; &lt;http://statistics.data.gov.uk/id/local-authority/00BN&gt;;
   &lt;http://xmlns.com/foaf/0.1/page&gt; &lt;http://www.manchester.gov.uk/&gt; .
</code></pre>
<h4>Multiple Resources as Turtle</h4>
<p>Multiple local authorities would look like this, serialised as Turtle:</p>
<pre><code>&lt;http://opendatacommunities.org/id/district-council/babergh&gt;
      &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt;
                    &lt;http://opendatacommunities.org/def/local-government/LocalAuthority&gt; ;
      &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt;
                    &lt;http://opendatacommunities.org/def/local-government/DistrictCouncil&gt; ;
      &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt;
                    &lt;http://opendatacommunities.org/def/local-government/CivilAdministrativeAuthority&gt; ;
      &lt;http://www.w3.org/2000/01/rdf-schema#label&gt;
                    "Babergh" ;
      &lt;http://data.ordnancesurvey.co.uk/ontology/admingeo/gssCode&gt;
                    "E07000200" ;
      &lt;http://data.ordnancesurvey.co.uk/ontology/admingeo/hasCensusCode&gt;
                    "42UB" ;
      &lt;http://opendatacommunities.org/def/local-government/billingAuthorityCode&gt;
                    "E3531" ;
      &lt;http://opendatacommunities.org/def/local-government/governs&gt;
                    &lt;http://data.ordnancesurvey.co.uk/id/7000000000015692&gt; ;
      &lt;http://statistics.data.gov.uk/def/administrative-geography/region&gt;
                    &lt;http://statistics.data.gov.uk/id/government-office-region/G&gt; ;
      &lt;http://www.w3.org/2002/07/owl#sameAs&gt;
                    &lt;http://statistics.data.gov.uk/id/local-authority/42UB&gt; ;
      &lt;http://xmlns.com/foaf/0.1/page&gt;
                    &lt;http://www.babergh.gov.uk&gt; .

&lt;http://opendatacommunities.org/id/london-borough-council/barking-and-dagenham&gt;
      &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt;
                    &lt;http://opendatacommunities.org/def/local-government/LocalAuthority&gt; ;
      &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt;
                    &lt;http://opendatacommunities.org/def/local-government/LondonBoroughCouncil&gt; ;
      &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt;
                    &lt;http://opendatacommunities.org/def/local-government/CivilAdministrativeAuthority&gt; ;
      &lt;http://www.w3.org/2000/01/rdf-schema#label&gt;
                    "Barking and Dagenham" ;
      &lt;http://data.ordnancesurvey.co.uk/ontology/admingeo/gssCode&gt;
                    "E09000002" ;
      &lt;http://data.ordnancesurvey.co.uk/ontology/admingeo/hasCensusCode&gt;
                    "00AB" ;
      &lt;http://opendatacommunities.org/def/local-government/billingAuthorityCode&gt;
                    "E5030" ;
      &lt;http://opendatacommunities.org/def/local-government/governs&gt;
                    &lt;http://data.ordnancesurvey.co.uk/id/7000000000010949&gt; ;
      &lt;http://opendatacommunities.org/def/local-government/openlyLocalUrl&gt;
                    &lt;http://openlylocal.com/councils/19-London-Borough-of-Barking-Dagenham&gt; ;
      &lt;http://statistics.data.gov.uk/def/administrative-geography/region&gt;
                    &lt;http://statistics.data.gov.uk/id/government-office-region/H&gt; ;
      &lt;http://www.w3.org/2002/07/owl#sameAs&gt;
                    &lt;http://statistics.data.gov.uk/id/local-authority/00AB&gt; ;
      &lt;http://xmlns.com/foaf/0.1/page&gt;
                    &lt;http://www.lbbd.gov.uk/&gt; .</code></pre>
<h4>Mime Type</h4>
<p>Turtle is typically requested and sent over the Web using a <span>MIME</span> type of <code>text/turtle</code>.</p>
<h4>Turtle Summary</h4>
<p>The <span>URI</span> for the each resource is followed by the predicates and objects of the triples about it (essentially, as key-value pairs). Each pair is separated by a semi-colon, and the information about a resource is closed off by a dot. Note that the whitespace is not important here, but for readability, the predicates and objects are often indented and appear on separate lines.</p>
<p>Turtle is my favourite <span>RDF</span> serialisation format because it&#8217;s fairly easy to read for humans due to the lack of punctuation noise, and the way it groups together the triples about each resource. Its terseness also helps keep the amount of bandwidth required to communicate <span>RDF</span> down to a minimum, and it&#8217;s well supported by <span>RDF</span> toolkits and libraries.</p>
<p>Note that the standard encoding of Turtle is <span>UTF</span>-8 (though escaped Unicode is allowed in Turtle as well). Turtle literals can contain line breaks, using the <code>"""long literal"""</code> approach. For more information, see the <a href="http://www.w3.org/TeamSubmission/turtle/">Turtle W3C submission</a>.</p>
<h3>N-Triples</h3>
<p><em>N-Triples</em> is a simplified version of Turtle.</p>
<h4>A Single Resource as N-Triples</h4>
<p>Here&#8217;s the <span>RDF</span> for the Manchester authority again, this time as N-triples.</p>
<pre><code>&lt;http://opendatacommunities.org/id/metropolitan-district-council/manchester&gt; &lt;http://www.w3.org/2000/01/rdf-schema#label&gt; "Manchester" .
&lt;http://opendatacommunities.org/id/metropolitan-district-council/manchester&gt; &lt;http://opendatacommunities.org/def/local-government/openlyLocalUrl&gt; &lt;http://openlylocal.com/councils/157-Manchester-City-Council&gt; .
&lt;http://opendatacommunities.org/id/metropolitan-district-council/manchester&gt; &lt;http://xmlns.com/foaf/0.1/page&gt; &lt;http://www.manchester.gov.uk/&gt; .
&lt;http://opendatacommunities.org/id/metropolitan-district-council/manchester&gt; &lt;http://www.w3.org/2002/07/owl#sameAs&gt; &lt;http://statistics.data.gov.uk/id/local-authority/00BN&gt; .
&lt;http://opendatacommunities.org/id/metropolitan-district-council/manchester&gt; &lt;http://data.ordnancesurvey.co.uk/ontology/admingeo/hasCensusCode&gt; "00BN" .
&lt;http://opendatacommunities.org/id/metropolitan-district-council/manchester&gt; &lt;http://opendatacommunities.org/def/local-government/billingAuthorityCode&gt; "E4203" .
&lt;http://opendatacommunities.org/id/metropolitan-district-council/manchester&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; &lt;http://opendatacommunities.org/def/local-government/MetropolitanDistrictCouncil&gt; .
&lt;http://opendatacommunities.org/id/metropolitan-district-council/manchester&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; &lt;http://opendatacommunities.org/def/local-government/LocalAuthority&gt; .
&lt;http://opendatacommunities.org/id/metropolitan-district-council/manchester&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; &lt;http://opendatacommunities.org/def/local-government/CivilAdministrativeAuthority&gt; .
&lt;http://opendatacommunities.org/id/metropolitan-district-council/manchester&gt; &lt;http://opendatacommunities.org/def/local-government/governs&gt; &lt;http://data.ordnancesurvey.co.uk/id/7000000000018821&gt; .
&lt;http://opendatacommunities.org/id/metropolitan-district-council/manchester&gt; &lt;http://statistics.data.gov.uk/def/administrative-geography/region&gt; &lt;http://statistics.data.gov.uk/id/government-office-region/B&gt; .
&lt;http://opendatacommunities.org/id/metropolitan-district-council/manchester&gt; &lt;http://data.ordnancesurvey.co.uk/ontology/admingeo/gssCode&gt; "E08000003" .</code></pre>
<h4>Multiple Resources as N-Triples</h4>
<pre><code>&lt;http://opendatacommunities.org/id/district-council/allerdale&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; &lt;http://opendatacommunities.org/def/local-government/CivilAdministrativeAuthority&gt; .
&lt;http://opendatacommunities.org/id/district-council/allerdale&gt; &lt;http://opendatacommunities.org/def/local-government/billingAuthorityCode&gt; "E0931" .
&lt;http://opendatacommunities.org/id/district-council/allerdale&gt; &lt;http://www.w3.org/2002/07/owl#sameAs&gt; &lt;http://statistics.data.gov.uk/id/local-authority/16UB&gt; .
&lt;http://opendatacommunities.org/id/district-council/allerdale&gt; &lt;http://opendatacommunities.org/def/local-government/openlyLocalUrl&gt; &lt;http://openlylocal.com/councils/38-Allerdale-Borough-Council&gt; .
&lt;http://opendatacommunities.org/id/district-council/allerdale&gt; &lt;http://opendatacommunities.org/def/local-government/governs&gt; &lt;http://data.ordnancesurvey.co.uk/id/7000000000013065&gt; .
&lt;http://opendatacommunities.org/id/district-council/allerdale&gt; &lt;http://www.w3.org/2000/01/rdf-schema#label&gt; "Allerdale" .
&lt;http://opendatacommunities.org/id/district-council/allerdale&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; &lt;http://opendatacommunities.org/def/local-government/DistrictCouncil&gt; .
&lt;http://opendatacommunities.org/id/district-council/allerdale&gt; &lt;http://xmlns.com/foaf/0.1/page&gt; &lt;http://www.allerdale.gov.uk&gt; .
&lt;http://opendatacommunities.org/id/district-council/allerdale&gt; &lt;http://statistics.data.gov.uk/def/administrative-geography/region&gt; &lt;http://statistics.data.gov.uk/id/government-office-region/B&gt; .
&lt;http://opendatacommunities.org/id/district-council/allerdale&gt; &lt;http://data.ordnancesurvey.co.uk/ontology/admingeo/gssCode&gt; "E07000026" .
&lt;http://opendatacommunities.org/id/district-council/allerdale&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; &lt;http://opendatacommunities.org/def/local-government/LocalAuthority&gt; .
&lt;http://opendatacommunities.org/id/district-council/allerdale&gt; &lt;http://data.ordnancesurvey.co.uk/ontology/admingeo/hasCensusCode&gt; "16UB" .
&lt;http://opendatacommunities.org/id/district-council/barrow-in-furness&gt; &lt;http://opendatacommunities.org/def/local-government/governs&gt; &lt;http://data.ordnancesurvey.co.uk/id/7000000000012941&gt; .
&lt;http://opendatacommunities.org/id/district-council/barrow-in-furness&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; &lt;http://opendatacommunities.org/def/local-government/CivilAdministrativeAuthority&gt; .
&lt;http://opendatacommunities.org/id/district-council/barrow-in-furness&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; &lt;http://opendatacommunities.org/def/local-government/LocalAuthority&gt; .
&lt;http://opendatacommunities.org/id/district-council/barrow-in-furness&gt; &lt;http://opendatacommunities.org/def/local-government/billingAuthorityCode&gt; "E0932" .
&lt;http://opendatacommunities.org/id/district-council/barrow-in-furness&gt; &lt;http://www.w3.org/2002/07/owl#sameAs&gt; &lt;http://statistics.data.gov.uk/id/local-authority/16UC&gt; .
&lt;http://opendatacommunities.org/id/district-council/barrow-in-furness&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; &lt;http://opendatacommunities.org/def/local-government/DistrictCouncil&gt; .
&lt;http://opendatacommunities.org/id/district-council/barrow-in-furness&gt; &lt;http://xmlns.com/foaf/0.1/page&gt; &lt;http://www.barrowbc.gov.uk/&gt; .
&lt;http://opendatacommunities.org/id/district-council/barrow-in-furness&gt; &lt;http://data.ordnancesurvey.co.uk/ontology/admingeo/gssCode&gt; "E07000027" .
&lt;http://opendatacommunities.org/id/district-council/barrow-in-furness&gt; &lt;http://data.ordnancesurvey.co.uk/ontology/admingeo/hasCensusCode&gt; "16UC" .
&lt;http://opendatacommunities.org/id/district-council/barrow-in-furness&gt; &lt;http://www.w3.org/2000/01/rdf-schema#label&gt; "Barrow-in-Furness" .
&lt;http://opendatacommunities.org/id/district-council/barrow-in-furness&gt; &lt;http://statistics.data.gov.uk/def/administrative-geography/region&gt; &lt;http://statistics.data.gov.uk/id/government-office-region/B&gt; .</code></pre>
<h4>Mime Type</h4>
<p>N-triples are typically requested and sent over the Web using a <span>MIME</span> type of <code>text/plain</code> or <code>application/n-triples</code>.</p>
<h4>N-Triples summary</h4>
<p>With N-triples, each triple appears on its own line, separated by a dot.</p>
<p>N-triples&#8217; simplicity makes it easy for software to parse and generate, but it lacks some of the features of <span>RDF</span>/<span>XML</span> and Turtle (such as support for nested resources).  Due to the repetition of the resource URIs, it&#8217;s not as compact as Turtle, and the triples for each resource aren&#8217;t necessarily grouped together which makes it harder to read by eye.</p>
<p>It&#8217;s also worth mentioning here that as N-triples is a <code>text/plain</code>  literals are only allowed to contain US <span>ASCII</span> characters: non-<span>ASCII</span> Unicode characters need to be escaped (in contrast to Turtle whose standard encoding is <span>UTF</span>-8). Also, in N-triples, line-breaks always need to be escaped.</p>
<p><a href="http://www.w3.org/TeamSubmission/turtle/#sec-diff-ntriples">This section of the W3C Turtle submission</a> gives a useful comparison between Turtle and N-Triples.</p>
<h3><span>JSON</span></h3>
<p><span>RDF</span> can also be expressed in JavaScript Object Notation (<span>JSON</span>).</p>
<h4>A Single Resource as <span>JSON</span></h4>
<pre><code>{"http://opendatacommunities.org/id/metropolitan-district-council/manchester":{"http://www.w3.org/2000/01/rdf-schema#label":[{"type":"literal","value":"Manchester"}],"http://opendatacommunities.org/def/local-government/openlyLocalUrl":[{"type":"uri","value":"http://openlylocal.com/councils/157-Manchester-City-Council"}],"http://xmlns.com/foaf/0.1/page":[{"type":"uri","value":"http://www.manchester.gov.uk/"}],"http://www.w3.org/2002/07/owl#sameAs":[{"type":"uri","value":"http://statistics.data.gov.uk/id/local-authority/00BN"}],"http://data.ordnancesurvey.co.uk/ontology/admingeo/hasCensusCode":[{"type":"literal","value":"00BN"}],"http://opendatacommunities.org/def/local-government/billingAuthorityCode":[{"type":"literal","value":"E4203"}],"http://www.w3.org/1999/02/22-rdf-syntax-ns#type":[{"type":"uri","value":"http://opendatacommunities.org/def/local-government/MetropolitanDistrictCouncil"},{"type":"uri","value":"http://opendatacommunities.org/def/local-government/LocalAuthority"},{"type":"uri","value":"http://opendatacommunities.org/def/local-government/CivilAdministrativeAuthority"}],"http://opendatacommunities.org/def/local-government/governs":[{"type":"uri","value":"http://data.ordnancesurvey.co.uk/id/7000000000018821"}],"http://statistics.data.gov.uk/def/administrative-geography/region":[{"type":"uri","value":"http://statistics.data.gov.uk/id/government-office-region/B"}],"http://data.ordnancesurvey.co.uk/ontology/admingeo/gssCode":[{"type":"literal","value":"E08000003"}]}}</code></pre>
<h4>Multiple Resources as <span>JSON</span></h4>
<pre><code>{"http://opendatacommunities.org/id/district-council/allerdale":{"http://www.w3.org/1999/02/22-rdf-syntax-ns#type":[{"type":"uri","value":"http://opendatacommunities.org/def/local-government/CivilAdministrativeAuthority"},{"type":"uri","value":"http://opendatacommunities.org/def/local-government/DistrictCouncil"},{"type":"uri","value":"http://opendatacommunities.org/def/local-government/LocalAuthority"}],"http://opendatacommunities.org/def/local-government/billingAuthorityCode":[{"type":"literal","value":"E0931"}],"http://www.w3.org/2002/07/owl#sameAs":[{"type":"uri","value":"http://statistics.data.gov.uk/id/local-authority/16UB"}],"http://opendatacommunities.org/def/local-government/openlyLocalUrl":[{"type":"uri","value":"http://openlylocal.com/councils/38-Allerdale-Borough-Council"}],"http://opendatacommunities.org/def/local-government/governs":[{"type":"uri","value":"http://data.ordnancesurvey.co.uk/id/7000000000013065"}],"http://www.w3.org/2000/01/rdf-schema#label":[{"type":"literal","value":"Allerdale"}],"http://xmlns.com/foaf/0.1/page":[{"type":"uri","value":"http://www.allerdale.gov.uk"}],"http://statistics.data.gov.uk/def/administrative-geography/region":[{"type":"uri","value":"http://statistics.data.gov.uk/id/government-office-region/B"}],"http://data.ordnancesurvey.co.uk/ontology/admingeo/gssCode":[{"type":"literal","value":"E07000026"}],"http://data.ordnancesurvey.co.uk/ontology/admingeo/hasCensusCode":[{"type":"literal","value":"16UB"}]},"http://opendatacommunities.org/id/district-council/barrow-in-furness":{"http://opendatacommunities.org/def/local-government/governs":[{"type":"uri","value":"http://data.ordnancesurvey.co.uk/id/7000000000012941"}],"http://www.w3.org/1999/02/22-rdf-syntax-ns#type":[{"type":"uri","value":"http://opendatacommunities.org/def/local-government/CivilAdministrativeAuthority"},{"type":"uri","value":"http://opendatacommunities.org/def/local-government/LocalAuthority"},{"type":"uri","value":"http://opendatacommunities.org/def/local-government/DistrictCouncil"}],"http://opendatacommunities.org/def/local-government/billingAuthorityCode":[{"type":"literal","value":"E0932"}],"http://www.w3.org/2002/07/owl#sameAs":[{"type":"uri","value":"http://statistics.data.gov.uk/id/local-authority/16UC"}],"http://xmlns.com/foaf/0.1/page":[{"type":"uri","value":"http://www.barrowbc.gov.uk/"}],"http://data.ordnancesurvey.co.uk/ontology/admingeo/gssCode":[{"type":"literal","value":"E07000027"}],"http://data.ordnancesurvey.co.uk/ontology/admingeo/hasCensusCode":[{"type":"literal","value":"16UC"}],"http://www.w3.org/2000/01/rdf-schema#label":[{"type":"literal","value":"Barrow-in-Furness"}],"http://statistics.data.gov.uk/def/administrative-geography/region":[{"type":"uri","value":"http://statistics.data.gov.uk/id/government-office-region/B"}]}}</code></pre>
<h4>Mime Type</h4>
<p><span>JSON</span> is typically requested and sent over the Web using a <span>MIME</span> type of <code>application/json</code>.</p>
<h4><span>JSON</span> Summary</h4>
<p>This format serialises the triples by defining JavaScript objects, the identifier for each being the <span>URI</span> for the resource. Sub-objects are created for each predicate, the values being an array of the triples for that predicate. For each object of the triple, there is a JavaScript object with properties for its <em>type</em> (i.e. <span>URI</span> or literal), and actual <em>value</em>.</p>
<p>Many Linked Data sites are now supporting <span>JSON</span> as a serialisation format. It&#8217;s becoming popular due to the ease with which this kind of data can be consumed in JavaScript web applications. It&#8217;s not as easy to read by eye as Turtle (to me, at least), but it&#8217;s still not too bad in that respect. The limited punctuation also helps to keep the size down.</p>
<h3>Conclusion</h3>
<p>In this article, we&#8217;ve covered the most common serialisation formats for <span>RDF</span> triples. Hopefully it has helped you to understand the benefits and pitfalls of each, so that you can make an informed decision about which to choose for publishing or consuming your Linked Data.</p>
<p>If you’d be interested in more articles like this, please subscribe to our <a href="http://feeds.feedburner.com/learnlinkeddata"><span>RSS</span> feed</a>, <a href="http://twitter.com/learnlinkeddata">Twitter updates</a>, or <a href="http://feedburner.google.com/fb/a/mailverify?uri=learnlinkeddata&amp;loc=en_US">email alerts</a>. We’ll try to keep the articles coming fairly regularly.</p>
<blockquote>
<p>*In the interest of full disclosure: I should probably mention that my company worked on the OpenDataCommunities site.</p>
</blockquote>
<div>
<a href="http://feeds.feedburner.com/~ff/learnlinkeddata?a=niQoHGC5s2M:Q5_AAReIMwE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/learnlinkeddata?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/learnlinkeddata?a=niQoHGC5s2M:Q5_AAReIMwE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/learnlinkeddata?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/learnlinkeddata?a=niQoHGC5s2M:Q5_AAReIMwE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/learnlinkeddata?i=niQoHGC5s2M:Q5_AAReIMwE:gIN9vFwOqvQ" border="0"></img></a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.microformatter.com/2012/05/08/understanding-rdf-serialisation-formats/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

