<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>

<title>Kingsley Idehen&#39;s Blog Data Space</title><link>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/</link><description>I have seen the future and it&#39;s full of Linked Data! :-)</description><managingEditor>kidehen@openlinksw.com</managingEditor><pubDate>Mon, 20 Apr 2026 07:50:36 GMT</pubDate><generator>Virtuoso Universal Server 08.03.3334</generator><webMaster>kidehen@openlinksw.com</webMaster><image><title>Kingsley Idehen&#39;s Blog Data Space</title><url>http://www.openlinksw.com:443/weblog/public/images/vbloglogo.gif</url><link>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/</link><description>I have seen the future and it&#39;s full of Linked Data! :-)</description><width>88</width><height>31</height></image>
<item><title>SPARQL Guide for the Perl Developer</title><guid>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2011-01-25#1655</guid><comments>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?id=1655#comments</comments><pubDate>Tue, 25 Jan 2011 16:05:17 GMT</pubDate><description>&lt;h3&gt;What?&lt;/h3&gt; 
&lt;p&gt;A simple guide usable by any &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Perl&quot; id=&quot;link-id0x1bdcab80&quot;&gt;Perl&lt;/a&gt; developer seeking to exploit &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/SPARQL&quot; id=&quot;link-id0x17b447e8&quot;&gt;SPARQL&lt;/a&gt; without hassles.&lt;/p&gt;

&lt;h3&gt;Why?&lt;/h3&gt;
&lt;p&gt;SPARQL is a powerful query language, results serialization format, and an HTTP based &lt;a href=&quot;http://dbpedia.org/resource/Data&quot;&gt;data&lt;/a&gt; access protocol from the W3C. It provides a mechanism for accessing and integrating data across &lt;a href=&quot;http://en.wikipedia.org/wiki/Deductive_database&quot; id=&quot;link-id0x1cc76540&quot;&gt;Deductive Database Systems&lt;/a&gt; (colloquially referred to as triple or quad stores in &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Semantic_Web&quot; id=&quot;link-id0x1d944d78&quot;&gt;Semantic Web&lt;/a&gt; and &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Linked_Data&quot; id=&quot;link-id0x1c7a87c8&quot;&gt;Linked Data&lt;/a&gt; circles) -- database systems (or data spaces) that manage proposition oriented records in 3-tuple (triples) or 4-tuple (quads) form. &lt;/p&gt;

&lt;h3&gt;How?&lt;/h3&gt;
&lt;p&gt;SPARQL queries are actually HTTP payloads (typically). Thus, using a RESTful client-server interaction pattern, you can dispatch calls to a SPARQL compliant data server and receive a payload for local processing.&lt;/p&gt;

&lt;h4&gt;Steps:&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Determine which SPARQL endpoint you want to access e.g. &lt;a href=&quot;http://dbpedia.org/sparql&quot; id=&quot;link-id0x1d476520&quot;&gt;DBpedia&lt;/a&gt; or a local &lt;a class=&quot;auto-href&quot; href=&quot;http://virtuoso.openlinksw.com&quot; id=&quot;link-id0x1bcfe140&quot;&gt;Virtuoso&lt;/a&gt; instance (typically: http://localhost:8890/sparql).
&lt;/li&gt;
&lt;li&gt;If using Virtuoso, and you want to populate its quad store using SPARQL, assign &amp;quot;&lt;a href=&quot;http://docs.openlinksw.com/virtuoso/rdfsparql.html#rdfsupportedprotocolendpointuri&quot; id=&quot;link-id0x1c7630b8&quot;&gt;SPARQL_SPONGE&lt;/a&gt;&amp;quot; privileges to user &amp;quot;SPARQL&amp;quot; (this is basic control, more sophisticated WebID based ACLs are available for controlling SPARQL access).&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;Script:&lt;/h4&gt;

&lt;pre&gt;
#
# Demonstrating use of a single query to populate a 
# Virtuoso Quad Store via Perl. 
#

# 
# HTTP &lt;a href=&quot;http://dbpedia.org/resource/Uniform_Resource_Locator&quot; id=&quot;link-id0x1d6465e8&quot;&gt;URL&lt;/a&gt; is constructed accordingly with CSV query results format as the default via mime type.
#

use CGI qw/:standard/;
use LWP::UserAgent;
use Data::Dumper;
use Text::CSV_XS;

sub sparqlQuery(@args) {
  my $query=shift;
  my $baseURL=shift;
  my $format=shift;
	
	%params=(
		&amp;quot;default-graph&amp;quot; =&amp;gt; &amp;quot;&amp;quot;, &amp;quot;should-sponge&amp;quot; =&amp;gt; &amp;quot;soft&amp;quot;, &amp;quot;query&amp;quot; =&amp;gt; $query,
		&amp;quot;debug&amp;quot; =&amp;gt; &amp;quot;on&amp;quot;, &amp;quot;timeout&amp;quot; =&amp;gt; &amp;quot;&amp;quot;, &amp;quot;format&amp;quot; =&amp;gt; $format,
		&amp;quot;save&amp;quot; =&amp;gt; &amp;quot;display&amp;quot;, &amp;quot;fname&amp;quot; =&amp;gt; &amp;quot;&amp;quot;
	);
	
	@fragments=();
	foreach $k (keys %params) {
		$fragment=&amp;quot;$k=&amp;quot;.CGI::escape($params{$k});
		push(@fragments,$fragment);
	}
	$query=join(&amp;quot;&amp;amp;&amp;quot;, @fragments);
	
	$sparqlURL=&amp;quot;${baseURL}?$query&amp;quot;;
	
	my $ua = LWP::UserAgent-&amp;gt;new;
	$ua-&amp;gt;agent(&amp;quot;MyApp/0.1 &amp;quot;);
	my $req = HTTP::Request-&amp;gt;new(GET =&amp;gt; $sparqlURL);
	my $res = $ua-&amp;gt;request($req);
	$str=$res-&amp;gt;content;
	
	$csv = Text::CSV_XS-&amp;gt;new();
	
	foreach $line ( split(/^/, $str) ) {
		$csv-&amp;gt;parse($line);
		@bits=$csv-&amp;gt;fields();
	  push(@rows, [ @bits ] );
	}
	return \@rows;
}


# Setting Data Source Name (DSN)

$dsn=&amp;quot;http://dbpedia.org/resource/DBpedia&amp;quot;;

# Virtuoso pragmas for instructing SPARQL engine to perform an HTTP GET using the IRI in
# FROM clause as Data Source URL en route to DBMS
# record Inserts.

$query=&amp;quot;DEFINE get:soft \&amp;quot;replace\&amp;quot;\n

# Generic (non Virtuoso specific SPARQL
# Note: this will not add records to the 
# DBMS 

SELECT DISTINCT * FROM &amp;lt;$dsn&amp;gt; WHERE {?s ?p ?o}&amp;quot;; 

$data=sparqlQuery($query, &amp;quot;http://localhost:8890/sparql/&amp;quot;, &amp;quot;text/csv&amp;quot;);

print &amp;quot;Retrieved data:\n&amp;quot;;
print Dumper($data);
&lt;/pre&gt;
&lt;h4&gt;Output&lt;/h4&gt;
&lt;pre&gt;
Retrieved data:
$VAR1 = [
          [
            &amp;#39;s&amp;#39;,
            &amp;#39;p&amp;#39;,
            &amp;#39;o&amp;#39;
          ],
          [
            &amp;#39;http://dbpedia.org/resource/DBpedia&amp;#39;,
            &amp;#39;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&amp;#39;,
            &amp;#39;http://www.w3.org/2002/07/owl#Thing&amp;#39;
          ],
          [
            &amp;#39;http://dbpedia.org/resource/DBpedia&amp;#39;,
            &amp;#39;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&amp;#39;,
            &amp;#39;http://dbpedia.org/ontology/Work&amp;#39;
          ],
          [
            &amp;#39;http://dbpedia.org/resource/DBpedia&amp;#39;,
            &amp;#39;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&amp;#39;,
            &amp;#39;http://dbpedia.org/class/yago/Software106566077&amp;#39;
          ],
...
&lt;/pre&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;
CSV was chosen over XML (re. output format) since this is about a &amp;quot;no-brainer installation and utilization&amp;quot; guide for a Perl developer that already knows how to use Perl for HTTP based data access within HTML. SPARQL just provides an added bonus to URL dexterity (delivered via &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Uniform_Resource_Identifier&quot; id=&quot;link-id0x1d29da98&quot;&gt;URI&lt;/a&gt; abstraction) with regards to constructing Data Source Names or Addresses.&lt;/p&gt;
&lt;h3&gt;Related&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
  &lt;a href=&quot;http://cpansearch.perl.org/src/TOBYINK/RDF-Query-Client-0.103/README&quot; id=&quot;link-id0x1c279130&quot;&gt;RDF::Query::Client Guide&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1653&quot; id=&quot;link-id0x1cf307f0&quot;&gt;SPARQL Guide for the Perl Developer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1652&quot; id=&quot;link-id0x1b0ffb28&quot;&gt;SPARQL Guide for the PHP Developer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1651&quot; id=&quot;link-id0x1a8c5ae0&quot;&gt;SPARQL Guide for the Python Developer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1648&quot; id=&quot;link-id0x1b86ad28&quot;&gt;SPARQL Guide for the Ruby Developer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1646&quot; id=&quot;link-id0x1c7af188&quot;&gt;Simple Guide for using SPARQL with Virtuoso&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.delicious.com/kidehen/sparql_tutorial&quot; id=&quot;link-id0x1ac1ba48&quot;&gt;General SPARQL Tutorial Collection&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.delicious.com/kidehen/virtuoso_sparql_tutorial&quot; id=&quot;link-id0x1c7be660&quot;&gt;Virtuoso Specific SPARQL Tutorial Collection&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1567&quot; id=&quot;link-id0x1c52b438&quot;&gt;The URI, URL, and Linked Data Meme&amp;#39;s Generic HTTP URI&lt;/a&gt;.
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>SPARQL Guide for the Javascript Developer </title><guid>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2011-01-21#1653</guid><comments>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?id=1653#comments</comments><pubDate>Fri, 21 Jan 2011 19:59:49 GMT</pubDate><description>&lt;h3&gt;What?&lt;/h3&gt; 
&lt;p&gt;A simple guide usable by any Javascript developer seeking to exploit &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/SPARQL&quot; id=&quot;link-id0x17b447e8&quot;&gt;SPARQL&lt;/a&gt; without hassles.&lt;/p&gt;

&lt;h3&gt;Why?&lt;/h3&gt;
&lt;p&gt;SPARQL is a powerful query language, results serialization format, and an HTTP based &lt;a href=&quot;http://dbpedia.org/resource/Data&quot;&gt;data&lt;/a&gt; access protocol from the W3C. It provides a mechanism for accessing and integrating data across &lt;a href=&quot;http://en.wikipedia.org/wiki/Deductive_database&quot; id=&quot;link-id0x1cc76540&quot;&gt;Deductive Database Systems&lt;/a&gt; (colloquially referred to as triple or quad stores in &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Semantic_Web&quot; id=&quot;link-id0x1d944d78&quot;&gt;Semantic Web&lt;/a&gt; and &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Linked_Data&quot; id=&quot;link-id0x1c7a87c8&quot;&gt;Linked Data&lt;/a&gt; circles) -- database systems (or data spaces) that manage proposition oriented records in 3-tuple (triples) or 4-tuple (quads) form. &lt;/p&gt;

&lt;h3&gt;How?&lt;/h3&gt;
&lt;p&gt;SPARQL queries are actually HTTP payloads (typically). Thus, using a RESTful client-server interaction pattern, you can dispatch calls to a SPARQL compliant data server and receive a payload for local processing.&lt;/p&gt;

&lt;h4&gt;Steps:&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Determine which SPARQL endpoint you want to access e.g. &lt;a href=&quot;http://dbpedia.org/sparql&quot; id=&quot;link-id0x1d476520&quot;&gt;DBpedia&lt;/a&gt; or a local &lt;a class=&quot;auto-href&quot; href=&quot;http://virtuoso.openlinksw.com&quot; id=&quot;link-id0x1bcfe140&quot;&gt;Virtuoso&lt;/a&gt; instance (typically: http://localhost:8890/sparql).
&lt;/li&gt;
&lt;li&gt;If using Virtuoso, and you want to populate its quad store using SPARQL, assign &amp;quot;&lt;a href=&quot;http://docs.openlinksw.com/virtuoso/rdfsparql.html#rdfsupportedprotocolendpointuri&quot; id=&quot;link-id0x1c7630b8&quot;&gt;SPARQL_SPONGE&lt;/a&gt;&amp;quot; privileges to user &amp;quot;SPARQL&amp;quot; (this is basic control, more sophisticated WebID based ACLs are available for controlling SPARQL access).&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;Script:&lt;/h4&gt;

&lt;pre&gt;
/*
Demonstrating use of a single query to populate a # Virtuoso Quad Store via Javascript. 
*/

/* 
HTTP &lt;a href=&quot;http://dbpedia.org/resource/Uniform_Resource_Locator&quot; id=&quot;link-id0x1bc27a18&quot;&gt;URL&lt;/a&gt; is constructed accordingly with JSON query results format as the default via mime type.
*/

function sparqlQuery(query, baseURL, format) {
	if(!format)
		format=&amp;quot;application/json&amp;quot;;
	var params={
		&amp;quot;default-graph&amp;quot;: &amp;quot;&amp;quot;, &amp;quot;should-sponge&amp;quot;: &amp;quot;soft&amp;quot;, &amp;quot;query&amp;quot;: query,
		&amp;quot;debug&amp;quot;: &amp;quot;on&amp;quot;, &amp;quot;timeout&amp;quot;: &amp;quot;&amp;quot;, &amp;quot;format&amp;quot;: format,
		&amp;quot;save&amp;quot;: &amp;quot;display&amp;quot;, &amp;quot;fname&amp;quot;: &amp;quot;&amp;quot;
	};
	
	var querypart=&amp;quot;&amp;quot;;
	for(var k in params) {
		querypart+=k+&amp;quot;=&amp;quot;+encodeURIComponent(params[k])+&amp;quot;&amp;amp;&amp;quot;;
	}
	var queryURL=baseURL + &amp;#39;?&amp;#39; + querypart;
	if (window.XMLHttpRequest) {
  	xmlhttp=new XMLHttpRequest();
  }
  else {
  	xmlhttp=new ActiveXObject(&amp;quot;Microsoft.XMLHTTP&amp;quot;);
  }
  xmlhttp.open(&amp;quot;GET&amp;quot;,queryURL,false);
  xmlhttp.send();
  return JSON.parse(xmlhttp.responseText);
}

/*
setting Data Source Name (DSN)
*/

var dsn=&amp;quot;http://dbpedia.org/resource/DBpedia&amp;quot;;

/*
Virtuoso pragma &amp;quot;DEFINE get:soft &amp;quot;replace&amp;quot; instructs Virtuoso SPARQL engine to perform an HTTP GET using the IRI in FROM clause as Data Source URL with regards to 
DBMS record inserts
*/

var query=&amp;quot;DEFINE get:soft \&amp;quot;replace\&amp;quot;\nSELECT DISTINCT * FROM &amp;lt;&amp;quot;+dsn+&amp;quot;&amp;gt; WHERE {?s ?p ?o}&amp;quot;; 
var data=sparqlQuery(query, &amp;quot;/sparql/&amp;quot;);
&lt;/pre&gt;
&lt;h4&gt;Output&lt;/h4&gt;
&lt;p&gt;
Place the snippet above into the &amp;lt;script/&amp;gt; section of an HTML document to see the &lt;a href=&quot;http://twitpic.com/3s2vs3/full&quot; id=&quot;link-id0x1cff2288&quot;&gt;query result&lt;/a&gt;.
&lt;/p&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;
JSON was chosen over XML (re. output format) since this is about a &amp;quot;no-brainer installation and utilization&amp;quot; guide for a Javascript developer that already knows how to use Javascript for HTTP based data access within HTML. SPARQL just provides an added bonus to URL dexterity (delivered via &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Uniform_Resource_Identifier&quot; id=&quot;link-id0x1d29da98&quot;&gt;URI&lt;/a&gt; abstraction) with regards to constructing Data Source Names or Addresses.&lt;/p&gt;
&lt;h3&gt;Related&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1652&quot; id=&quot;link-id0x1b0ffb28&quot;&gt;SPARQL Guide for the PHP Developer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1651&quot; id=&quot;link-id0x1a8c5ae0&quot;&gt;SPARQL Guide for the Python Developer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1648&quot; id=&quot;link-id0x1b86ad28&quot;&gt;SPARQL Guide for the Ruby Developer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1646&quot; id=&quot;link-id0x1c7af188&quot;&gt;Simple Guide for using SPARQL with Virtuoso&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.delicious.com/kidehen/sparql_tutorial&quot; id=&quot;link-id0x1ac1ba48&quot;&gt;General SPARQL Tutorial Collection&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.delicious.com/kidehen/virtuoso_sparql_tutorial&quot; id=&quot;link-id0x1c7be660&quot;&gt;Virtuoso Specific SPARQL Tutorial Collection&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1567&quot; id=&quot;link-id0x1c52b438&quot;&gt;The URI, URL, and Linked Data Meme&amp;#39;s Generic HTTP URI&lt;/a&gt;.
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>SPARQL Guide for the PHP Developer</title><guid>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2011-01-20#1652</guid><comments>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?id=1652#comments</comments><pubDate>Thu, 20 Jan 2011 21:25:49 GMT</pubDate><description>&lt;h3&gt;What?&lt;/h3&gt; 
&lt;p&gt;A simple guide usable by any &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/PHP_programming_language&quot; id=&quot;link-id0x1bdca7b8&quot;&gt;PHP&lt;/a&gt; developer seeking to exploit &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/SPARQL&quot; id=&quot;link-id0x1c894338&quot;&gt;SPARQL&lt;/a&gt; without hassles.&lt;/p&gt;

&lt;h3&gt;Why?&lt;/h3&gt;
&lt;p&gt;SPARQL is a powerful query language, results serialization format, and an HTTP based &lt;a href=&quot;http://dbpedia.org/resource/Data&quot;&gt;data&lt;/a&gt; access protocol from the W3C. It provides a mechanism for accessing and integrating data across &lt;a href=&quot;http://en.wikipedia.org/wiki/Deductive_database&quot; id=&quot;link-id0x1c319af0&quot;&gt;Deductive Database Systems&lt;/a&gt; (colloquially referred to as triple or quad stores in &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Semantic_Web&quot; id=&quot;link-id0x1d944d78&quot;&gt;Semantic Web&lt;/a&gt; and &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Linked_Data&quot; id=&quot;link-id0x1c7a87c8&quot;&gt;Linked Data&lt;/a&gt; circles) -- database systems (or data spaces) that manage proposition oriented records in 3-tuple (triples) or 4-tuple (quads) form. &lt;/p&gt;

&lt;h3&gt;How?&lt;/h3&gt;
&lt;p&gt;SPARQL queries are actually HTTP payloads (typically). Thus, using a RESTful client-server interaction pattern, you can dispatch calls to a SPARQL compliant data server and receive a payload for local processing e.g. local object binding re. PHP.&lt;/p&gt;

&lt;h4&gt;Steps:&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;
From your command line execute: aptitude search &amp;#39;^PHP26&amp;#39;, to verify PHP is in place
&lt;/li&gt;
&lt;li&gt;Determine which SPARQL endpoint you want to access e.g. &lt;a href=&quot;http://dbpedia.org/sparql&quot; id=&quot;link-id0x1d476520&quot;&gt;DBpedia&lt;/a&gt; or a local &lt;a class=&quot;auto-href&quot; href=&quot;http://virtuoso.openlinksw.com&quot; id=&quot;link-id0x1bcfe140&quot;&gt;Virtuoso&lt;/a&gt; instance (typically: http://localhost:8890/sparql).
&lt;/li&gt;
&lt;li&gt;If using Virtuoso, and you want to populate its quad store using SPARQL, assign &amp;quot;&lt;a href=&quot;http://docs.openlinksw.com/virtuoso/rdfsparql.html#rdfsupportedprotocolendpointuri&quot; id=&quot;link-id0x1c7630b8&quot;&gt;SPARQL_SPONGE&lt;/a&gt;&amp;quot; privileges to user &amp;quot;SPARQL&amp;quot; (this is basic control, more sophisticated WebID based ACLs are available for controlling SPARQL access).&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;Script:&lt;/h4&gt;

&lt;pre&gt;
#!/usr/bin/env php
&amp;lt;?php
#
# Demonstrating use of a single query to populate a # Virtuoso Quad Store via PHP. 
#

# HTTP &lt;a href=&quot;http://dbpedia.org/resource/Uniform_Resource_Locator&quot; id=&quot;link-id0x1ce1d6d8&quot;&gt;URL&lt;/a&gt; is constructed accordingly with JSON query results format in mind.

function sparqlQuery($query, $baseURL, $format=&amp;quot;application/json&amp;quot;)

  {
	$params=array(
		&amp;quot;default-graph&amp;quot; =&amp;gt;  &amp;quot;&amp;quot;,
		&amp;quot;should-sponge&amp;quot; =&amp;gt;  &amp;quot;soft&amp;quot;,
		&amp;quot;query&amp;quot; =&amp;gt;  $query,
		&amp;quot;debug&amp;quot; =&amp;gt;  &amp;quot;on&amp;quot;,
		&amp;quot;timeout&amp;quot; =&amp;gt;  &amp;quot;&amp;quot;,
		&amp;quot;format&amp;quot; =&amp;gt;  $format,
		&amp;quot;save&amp;quot; =&amp;gt;  &amp;quot;display&amp;quot;,
		&amp;quot;fname&amp;quot; =&amp;gt;  &amp;quot;&amp;quot;
	);

	$querypart=&amp;quot;?&amp;quot;;	
	foreach($params as $name =&amp;gt; $value) 
  {
		$querypart=$querypart . $name . &amp;#39;=&amp;#39; . urlencode($value) . &amp;quot;&amp;amp;&amp;quot;;
	}
	
	$sparqlURL=$baseURL . $querypart;
	
	return json_decode(file_get_contents($sparqlURL));
};



# Setting Data Source Name (DSN)
$dsn=&amp;quot;http://dbpedia.org/resource/DBpedia&amp;quot;;

#Virtuoso pragmas for instructing SPARQL engine to perform an HTTP GET
#using the IRI in FROM clause as Data Source URL

$query=&amp;quot;DEFINE get:soft \&amp;quot;replace\&amp;quot;
SELECT DISTINCT * FROM &amp;lt;$dsn&amp;gt; WHERE {?s ?p ?o}&amp;quot;; 

$data=sparqlQuery($query, &amp;quot;http://localhost:8890/sparql/&amp;quot;);

print &amp;quot;Retrieved data:\n&amp;quot; . json_encode($data);

?&amp;gt;
&lt;/pre&gt;
&lt;h4&gt;Output&lt;/h4&gt;
&lt;pre&gt;
Retrieved data:
  {&amp;quot;head&amp;quot;:
  {&amp;quot;link&amp;quot;:[],&amp;quot;vars&amp;quot;:[&amp;quot;s&amp;quot;,&amp;quot;p&amp;quot;,&amp;quot;o&amp;quot;]},
  &amp;quot;results&amp;quot;:
		{&amp;quot;distinct&amp;quot;:false,&amp;quot;ordered&amp;quot;:true,
		&amp;quot;bindings&amp;quot;:[
			{&amp;quot;s&amp;quot;:
			{&amp;quot;type&amp;quot;:&amp;quot;&lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Uniform_Resource_Identifier&quot; id=&quot;link-id0x1ca44a98&quot;&gt;uri&lt;/a&gt;&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;http:\/\/dbpedia.org\/resource\/DBpedia&amp;quot;},&amp;quot;p&amp;quot;:
			{&amp;quot;type&amp;quot;:&amp;quot;uri&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#type&amp;quot;},&amp;quot;o&amp;quot;:
			{&amp;quot;type&amp;quot;:&amp;quot;uri&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;http:\/\/www.w3.org\/2002\/07\/owl#Thing&amp;quot;}},
			{&amp;quot;s&amp;quot;:
			{&amp;quot;type&amp;quot;:&amp;quot;uri&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;http:\/\/dbpedia.org\/resource\/DBpedia&amp;quot;},&amp;quot;p&amp;quot;:
			{&amp;quot;type&amp;quot;:&amp;quot;uri&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#type&amp;quot;},&amp;quot;o&amp;quot;:
			{&amp;quot;type&amp;quot;:&amp;quot;uri&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;http:\/\/dbpedia.org\/ontology\/Work&amp;quot;}},
			{&amp;quot;s&amp;quot;:
			{&amp;quot;type&amp;quot;:&amp;quot;uri&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;http:\/\/dbpedia.org\/resource\/DBpedia&amp;quot;},&amp;quot;p&amp;quot;:
			{&amp;quot;type&amp;quot;:&amp;quot;uri&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#type&amp;quot;},&amp;quot;o&amp;quot;:
			{&amp;quot;type&amp;quot;:&amp;quot;uri&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;http:\/\/dbpedia.org\/class\/yago\/Software106566077&amp;quot;}},
...
&lt;/pre&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;
JSON was chosen over XML (re. output format) since this is about a &amp;quot;no-brainer installation and utilization&amp;quot; guide for a PHP developer that already knows how to use PHP for HTTP based data access. SPARQL just provides an added bonus to URL dexterity (delivered via URI abstraction) with regards to constructing Data Source Names or Addresses.&lt;/p&gt;
&lt;h3&gt;Related&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1651&quot; id=&quot;link-id0x1a8c5ae0&quot;&gt;SPARQL Guide for the Python Developer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1648&quot; id=&quot;link-id0x1b86ad28&quot;&gt;SPARQL Guide for the Ruby Developer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1646&quot; id=&quot;link-id0x1c7af188&quot;&gt;Simple Guide for using SPARQL with Virtuoso&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.delicious.com/kidehen/sparql_tutorial&quot; id=&quot;link-id0x1ac1ba48&quot;&gt;General SPARQL Tutorial Collection&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.delicious.com/kidehen/virtuoso_sparql_tutorial&quot; id=&quot;link-id0x1c7be660&quot;&gt;Virtuoso Specific SPARQL Tutorial Collection&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1567&quot; id=&quot;link-id0x1c52b438&quot;&gt;The URI, URL, and Linked Data Meme&amp;#39;s Generic HTTP URI&lt;/a&gt;.
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>SPARQL Guide for Python Developer</title><guid>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2011-01-19#1651</guid><comments>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?id=1651#comments</comments><pubDate>Wed, 19 Jan 2011 17:13:30 GMT</pubDate><description>&lt;h3&gt;What?&lt;/h3&gt; 
&lt;p&gt;A simple guide usable by any &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Python_programming_language&quot; id=&quot;link-id0x1bdca7b8&quot;&gt;Python&lt;/a&gt; developer seeking to exploit &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/SPARQL&quot; id=&quot;link-id0x1c894338&quot;&gt;SPARQL&lt;/a&gt; without hassles.&lt;/p&gt;

&lt;h3&gt;Why?&lt;/h3&gt;
&lt;p&gt;SPARQL is a powerful query language, results serialization format, and an HTTP based &lt;a href=&quot;http://dbpedia.org/resource/Data&quot;&gt;data&lt;/a&gt; access protocol from the W3C. It provides a mechanism for accessing and integrating data across &lt;a href=&quot;http://en.wikipedia.org/wiki/Deductive_database&quot; id=&quot;link-id0x1c319af0&quot;&gt;Deductive Database Systems&lt;/a&gt; (colloquially referred to as triple or quad stores in &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Semantic_Web&quot; id=&quot;link-id0x1d944d78&quot;&gt;Semantic Web&lt;/a&gt; and &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Linked_Data&quot; id=&quot;link-id0x1c7a87c8&quot;&gt;Linked Data&lt;/a&gt; circles) -- database systems (or data spaces) that manage proposition oriented records in 3-tuple (triples) or 4-tuple (quads) form. &lt;/p&gt;

&lt;h3&gt;How?&lt;/h3&gt;
&lt;p&gt;SPARQL queries are actually HTTP payloads (typically). Thus, using a RESTful client-server interaction pattern, you can dispatch calls to a SPARQL compliant data server and receive a payload for local processing e.g. local object binding re. Python.&lt;/p&gt;

&lt;h4&gt;Steps:&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;
From your command line execute: aptitude search &amp;#39;^python26&amp;#39;, to verify Python is in place
&lt;/li&gt;
&lt;li&gt;Determine which SPARQL endpoint you want to access e.g. &lt;a href=&quot;http://dbpedia.org/sparql&quot; id=&quot;link-id0x1d476520&quot;&gt;DBpedia&lt;/a&gt; or a local &lt;a class=&quot;auto-href&quot; href=&quot;http://virtuoso.openlinksw.com&quot; id=&quot;link-id0x1bcfe140&quot;&gt;Virtuoso&lt;/a&gt; instance (typically: http://localhost:8890/sparql).
&lt;/li&gt;
&lt;li&gt;If using Virtuoso, and you want to populate its quad store using SPARQL, assign &amp;quot;&lt;a href=&quot;http://docs.openlinksw.com/virtuoso/rdfsparql.html#rdfsupportedprotocolendpointuri&quot; id=&quot;link-id0x1c7630b8&quot;&gt;SPARQL_SPONGE&lt;/a&gt;&amp;quot; privileges to user &amp;quot;SPARQL&amp;quot; (this is basic control, more sophisticated WebID based ACLs are available for controlling SPARQL access).&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;Script:&lt;/h4&gt;

&lt;pre&gt;
#!/usr/bin/env python
#
# Demonstrating use of a single query to populate a # Virtuoso Quad Store via Python. 
#

import urllib, json

# HTTP &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Uniform_Resource_Locator&quot; id=&quot;link-id0x1bd91cf0&quot;&gt;URL&lt;/a&gt; is constructed accordingly with JSON query results format in mind.

def sparqlQuery(query, baseURL, format=&amp;quot;application/json&amp;quot;):
	params={
		&amp;quot;default-graph&amp;quot;: &amp;quot;&amp;quot;,
		&amp;quot;should-sponge&amp;quot;: &amp;quot;soft&amp;quot;,
		&amp;quot;query&amp;quot;: query,
		&amp;quot;debug&amp;quot;: &amp;quot;on&amp;quot;,
		&amp;quot;timeout&amp;quot;: &amp;quot;&amp;quot;,
		&amp;quot;format&amp;quot;: format,
		&amp;quot;save&amp;quot;: &amp;quot;display&amp;quot;,
		&amp;quot;fname&amp;quot;: &amp;quot;&amp;quot;
	}
	querypart=urllib.urlencode(params)
	response = urllib.urlopen(baseURL,querypart).read()
	return json.loads(response)

# Setting Data Source Name (DSN)
dsn=&amp;quot;http://dbpedia.org/resource/DBpedia&amp;quot;

# Virtuoso pragmas for instructing SPARQL engine to perform an HTTP GET
# using the IRI in FROM clause as Data Source URL

query=&amp;quot;&amp;quot;&amp;quot;DEFINE get:soft &amp;quot;replace&amp;quot;
SELECT DISTINCT * FROM &amp;lt;%s&amp;gt; WHERE {?s ?p ?o}&amp;quot;&amp;quot;&amp;quot; % dsn 

data=sparqlQuery(query, &amp;quot;http://localhost:8890/sparql/&amp;quot;)

print &amp;quot;Retrieved data:\n&amp;quot; + json.dumps(data, sort_keys=True, indent=4)

#
# End
&lt;/pre&gt;
&lt;h4&gt;Output&lt;/h4&gt;
&lt;pre&gt;
Retrieved data:
{
    &amp;quot;head&amp;quot;: {
        &amp;quot;link&amp;quot;: [], 
        &amp;quot;vars&amp;quot;: [
            &amp;quot;s&amp;quot;, 
            &amp;quot;p&amp;quot;, 
            &amp;quot;o&amp;quot;
        ]
    }, 
    &amp;quot;results&amp;quot;: {
        &amp;quot;bindings&amp;quot;: [
            {
                &amp;quot;o&amp;quot;: {
                    &amp;quot;type&amp;quot;: &amp;quot;&lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Uniform_Resource_Identifier&quot; id=&quot;link-id0x1b1470b8&quot;&gt;uri&lt;/a&gt;&amp;quot;, 
                    &amp;quot;value&amp;quot;: &amp;quot;http://www.w3.org/2002/07/owl#Thing&amp;quot;
                }, 
                &amp;quot;p&amp;quot;: {
                    &amp;quot;type&amp;quot;: &amp;quot;uri&amp;quot;, 
                    &amp;quot;value&amp;quot;: &amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&amp;quot;
                }, 
                &amp;quot;s&amp;quot;: {
                    &amp;quot;type&amp;quot;: &amp;quot;uri&amp;quot;, 
                    &amp;quot;value&amp;quot;: &amp;quot;http://dbpedia.org/resource/DBpedia&amp;quot;
                }
            }, 
...
&lt;/pre&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;
JSON was chosen over XML (re. output format) since this is about a &amp;quot;no-brainer installation and utilization&amp;quot; guide for a Python developer that already knows how to use Python for HTTP based data access. SPARQL just provides an added bonus to URL dexterity (delivered via URI abstraction) with regards to constructing Data Source Names or Addresses.&lt;/p&gt;
&lt;h3&gt;Related&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1648&quot; id=&quot;link-id0x1c9e26b0&quot;&gt;SPARQL Guide for the Ruby Developer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1646&quot; id=&quot;link-id0x1c7af188&quot;&gt;Simple Guide for using SPARQL with Virtuoso&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.delicious.com/kidehen/sparql_tutorial&quot; id=&quot;link-id0x1ac1ba48&quot;&gt;General SPARQL Tutorial Collection&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.delicious.com/kidehen/virtuoso_sparql_tutorial&quot; id=&quot;link-id0x1c7be660&quot;&gt;Virtuoso Specific SPARQL Tutorial Collection&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1567&quot; id=&quot;link-id0x1c52b438&quot;&gt;The URI, URL, and Linked Data Meme&amp;#39;s Generic HTTP URI&lt;/a&gt;.
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>SPARQL for the Ruby Developer</title><guid>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2011-01-18#1648</guid><comments>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?id=1648#comments</comments><pubDate>Tue, 18 Jan 2011 19:48:34 GMT</pubDate><description>&lt;h3&gt;What?&lt;/h3&gt; 
&lt;p&gt;A simple guide usable by any &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Ruby_programming_language&quot; id=&quot;link-id0x1bb88908&quot;&gt;Ruby&lt;/a&gt; developer seeking to exploit &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/SPARQL&quot; id=&quot;link-id0x1ae67500&quot;&gt;SPARQL&lt;/a&gt; without hassles.&lt;/p&gt;

&lt;h3&gt;Why?&lt;/h3&gt;
&lt;p&gt;SPARQL is a powerful query language, results serialization format, and an HTTP based &lt;a href=&quot;http://dbpedia.org/resource/Data&quot;&gt;data&lt;/a&gt; access protocol from the W3C. It provides a mechanism for accessing and integrating data across &lt;a href=&quot;http://en.wikipedia.org/wiki/Deductive_database&quot; id=&quot;link-id0x1bc61d88&quot;&gt;Deductive Database Systems&lt;/a&gt; (colloquially referred to as triple or quad stores in &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Semantic_Web&quot; id=&quot;link-id0x1cc11420&quot;&gt;Semantic Web&lt;/a&gt; and &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Linked_Data&quot; id=&quot;link-id0x1b2e7780&quot;&gt;Linked Data&lt;/a&gt; circles) -- database systems (or data spaces) that manage proposition oriented records in 3-tuple (triples) or 4-tuple (quads) form. &lt;/p&gt;

&lt;h3&gt;How?&lt;/h3&gt;
&lt;p&gt;SPARQL queries are actually HTTP payloads (typically). Thus, using a RESTful client-server interaction pattern, you can dispatch calls to a SPARQL compliant data server and receive a payload for local processing e.g. local object binding re. Ruby. &lt;/p&gt;

&lt;h4&gt;Steps:&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;
From your command line execute: aptitude search &amp;#39;^ruby&amp;#39;, to verify Ruby is in place
&lt;/li&gt;
&lt;li&gt;Determine which SPARQL endpoint you want to access e.g. &lt;a href=&quot;http://dbpedia.org/sparql&quot; id=&quot;link-id0x1d476520&quot;&gt;DBpedia&lt;/a&gt; or a local &lt;a class=&quot;auto-href&quot; href=&quot;http://virtuoso.openlinksw.com&quot; id=&quot;link-id0x1bcfe140&quot;&gt;Virtuoso&lt;/a&gt; instance (typically: http://localhost:8890/sparql).
&lt;/li&gt;
&lt;li&gt;If using Virtuoso, and you want to populate its quad store using SPARQL, assign &amp;quot;&lt;a href=&quot;http://docs.openlinksw.com/virtuoso/rdfsparql.html#rdfsupportedprotocolendpointuri&quot; id=&quot;link-id0x1c7630b8&quot;&gt;SPARQL_SPONGE&lt;/a&gt;&amp;quot; privileges to user &amp;quot;SPARQL&amp;quot; (this is basic control, more sophisticated WebID based ACLs are available for controlling SPARQL access).&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;Script:&lt;/h4&gt;

&lt;pre&gt;
#!/usr/bin/env ruby
#
# Demonstrating use of a single query to populate a # Virtuoso Quad Store. 
#

require &amp;#39;net/http&amp;#39;
require &amp;#39;cgi&amp;#39;
require &amp;#39;csv&amp;#39;

#
# We opt for CSV based output since handling this format is straightforward in Ruby, by default.
# HTTP &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Uniform_Resource_Locator&quot; id=&quot;link-id0x1acee348&quot;&gt;URL&lt;/a&gt; is constructed accordingly with CSV as query results format in mind.

def sparqlQuery(query, baseURL, format=&amp;quot;text/csv&amp;quot;)
	params={
		&amp;quot;default-graph&amp;quot; =&amp;gt; &amp;quot;&amp;quot;,
		&amp;quot;should-sponge&amp;quot; =&amp;gt; &amp;quot;soft&amp;quot;,
		&amp;quot;query&amp;quot; =&amp;gt; query,
		&amp;quot;debug&amp;quot; =&amp;gt; &amp;quot;on&amp;quot;,
		&amp;quot;timeout&amp;quot; =&amp;gt; &amp;quot;&amp;quot;,
		&amp;quot;format&amp;quot; =&amp;gt; format,
		&amp;quot;save&amp;quot; =&amp;gt; &amp;quot;display&amp;quot;,
		&amp;quot;fname&amp;quot; =&amp;gt; &amp;quot;&amp;quot;
	}
	querypart=&amp;quot;&amp;quot;
	params.each { |k,v|
		querypart+=&amp;quot;#{k}=#{CGI.escape(v)}&amp;amp;&amp;quot;
	}
  
	sparqlURL=baseURL+&amp;quot;?#{querypart}&amp;quot;
	
	response = Net::HTTP.get_response(&lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Uniform_Resource_Identifier&quot; id=&quot;link-id0x1d24dfd8&quot;&gt;URI&lt;/a&gt;.parse(sparqlURL))

	return CSV::parse(response.body)
	
end

# Setting Data Source Name (DSN)

dsn=&amp;quot;http://dbpedia.org/resource/DBpedia&amp;quot;

#Virtuoso pragmas for instructing SPARQL engine to perform an HTTP GET
#using the IRI in FROM clause as Data Source URL

query=&amp;quot;DEFINE get:soft \&amp;quot;replace\&amp;quot;
SELECT DISTINCT * FROM &amp;lt;#{dsn}&amp;gt; WHERE {?s ?p ?o} &amp;quot;

#Assume use of local installation of Virtuoso 
#otherwise you can change URL to that of a public endpoint
#for example DBpedia: http://dbpedia.org/sparql

data=sparqlQuery(query, &amp;quot;http://localhost:8890/sparql/&amp;quot;)

puts &amp;quot;Got data:&amp;quot;
p data

#
# End
&lt;/pre&gt;&lt;h4&gt;Output&lt;/h4&gt;
&lt;pre&gt;
Got data:
[[&amp;quot;s&amp;quot;, &amp;quot;p&amp;quot;, &amp;quot;o&amp;quot;], 
  [&amp;quot;http://dbpedia.org/resource/DBpedia&amp;quot;, 
   &amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&amp;quot;, 
   &amp;quot;http://www.w3.org/2002/07/owl#Thing&amp;quot;], 
  [&amp;quot;http://dbpedia.org/resource/DBpedia&amp;quot;, 
   &amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&amp;quot;, 
   &amp;quot;http://dbpedia.org/ontology/Work&amp;quot;], 
  [&amp;quot;http://dbpedia.org/resource/DBpedia&amp;quot;, 
   &amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&amp;quot;, 
   &amp;quot;http://dbpedia.org/class/yago/Software106566077&amp;quot;],
...
&lt;/pre&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;
&lt;a href=&quot;http://en.wikipedia.org/wiki/Comma-separated_values&quot; id=&quot;link-id0x1cac8420&quot;&gt;CSV&lt;/a&gt; was chosen over XML (re. output format) since this is about a &amp;quot;no-brainer installation and utilization&amp;quot; guide for a Ruby developer that already knows how to use Ruby for HTTP based data access. SPARQL just provides an added bonus to URL dexterity (delivered via URI abstraction) with regards to constructing Data Source Names or Addresses.&lt;/p&gt;
&lt;h3&gt;Related&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.taxonconcept.org/how-to/ruby-code-examples/how-do-i-use-ruby-to-query-a-sparql-endpoint.html&quot; id=&quot;link-id0x1aa83678&quot;&gt;SPARQL and Ruby SPARQL Client Library Example&lt;/a&gt;
&lt;/li&gt; 
&lt;li&gt;
&lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1646&quot; id=&quot;link-id0x1c7af188&quot;&gt;Simple Guide for using SPARQL with Virtuoso&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.delicious.com/kidehen/sparql_tutorial&quot; id=&quot;link-id0x1ac1ba48&quot;&gt;General SPARQL Tutorial Collection&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.delicious.com/kidehen/virtuoso_sparql_tutorial&quot; id=&quot;link-id0x1c7be660&quot;&gt;Virtuoso Specific SPARQL Tutorial Collection&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1567&quot; id=&quot;link-id0x1c52b438&quot;&gt;The URI, URL, and Linked Data Meme&amp;#39;s Generic HTTP URI&lt;/a&gt;.
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Simple Virtuoso Installation &amp; Utilization Guide for SPARQL Users (Update 5)</title><guid>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2011-01-16#1647</guid><comments>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?id=1647#comments</comments><pubDate>Sun, 16 Jan 2011 07:06:21 GMT</pubDate><description>&lt;h3&gt;What is &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/SPARQL&quot; id=&quot;link-id0x1ab60ac0&quot;&gt;SPARQL&lt;/a&gt;?&lt;/h3&gt;
&lt;p&gt;A declarative query language from the W3C for querying structured propositional &lt;a href=&quot;http://dbpedia.org/resource/Data&quot;&gt;data&lt;/a&gt; (in the form of 3-&lt;a href=&quot;http://en.wikipedia.org/wiki/Tuple&quot; id=&quot;link-id0x1b1e0010&quot;&gt;tuple&lt;/a&gt; [triples] or 4-tuple [quads] records) stored in a &lt;a href=&quot;http://en.wikipedia.org/wiki/Deductive_database&quot; id=&quot;link-id0x1cf8af98&quot;&gt;deductive database&lt;/a&gt; (colloquially referred to as triple or quad stores in &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Semantic_Web&quot; id=&quot;link-id0x1caf5050&quot;&gt;Semantic Web&lt;/a&gt; and &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Linked_Data&quot; id=&quot;link-id0x19d781b8&quot;&gt;Linked Data&lt;/a&gt; parlance).&lt;/p&gt;
&lt;p&gt;SPARQL is inherently platform independent. Like &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/SQL&quot; id=&quot;link-id0x1b879140&quot;&gt;SQL&lt;/a&gt;, the query language and the backend database engine are distinct. Database clients capture SPARQL queries which are then passed on to compliant backend databases.&lt;/p&gt;
&lt;h3&gt;Why is it important?&lt;/h3&gt;
&lt;p&gt;Like SQL for relational databases, it provides a powerful mechanism for accessing and joining data across one or more data partitions (named graphs identified by IRIs). The aforementioned capability also enables the construction of sophisticated Views, Reports (HTML or those produced in native form by desktop productivity tools), and data streams for other services.&lt;/p&gt;
&lt;p&gt;Unlike SQL, SPARQL includes result serialization formats and an HTTP based wire protocol. Thus, the ubiquity and sophistication of HTTP is integral to SPARQL i.e., client side applications (user agents) only need to be able to perform an HTTP GET against a &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Uniform_Resource_Locator&quot; id=&quot;link-id0x1ba287e8&quot;&gt;URL&lt;/a&gt; en route to exploiting the power of SPARQL.&lt;/p&gt;
&lt;h3&gt;How do I use it, generally?&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Locate a SPARQL endpoint (&lt;a href=&quot;http://dbpedia.org/sparql&quot; id=&quot;link-id0x1d7436b0&quot;&gt;DBpedia&lt;/a&gt;, &lt;a href=&quot;http://lod.openlinksw.com/sparql&quot; id=&quot;link-id0x1bf20690&quot;&gt;LOD Cloud Cache&lt;/a&gt;, &lt;a href=&quot;http://semantic.data.gov&quot; id=&quot;link-id0x1a8ebc28&quot;&gt;Data.Gov&lt;/a&gt;, &lt;a href=&quot;http://linkeddata.uriburner.com/sparql&quot; id=&quot;link-id0x1be93070&quot;&gt;URIBurner&lt;/a&gt;, &lt;a href=&quot;http://www.delicious.com/kidehen/sparql_endpoint&quot; id=&quot;link-id0x1cce9b40&quot;&gt;others&lt;/a&gt;),  or;&lt;/li&gt;
&lt;li&gt;Install a SPARQL compliant database server (quad or triple store) on your desktop, workgroup server, data center, or cloud (e.g., &lt;a href=&quot;http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtuosoEC2AMI&quot; id=&quot;link-id0x1cd697a0&quot;&gt;Amazon EC2 AMI&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Start the database server&lt;/li&gt;
&lt;li&gt;Execute SPARQL Queries via the &lt;a href=&quot;http://lod.openlinksw.com/sparql&quot; id=&quot;link-id0x1b99d790&quot;&gt;SPARQL endpoint.&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;How do I use SPARQL with &lt;a class=&quot;auto-href&quot; href=&quot;http://virtuoso.openlinksw.com&quot; id=&quot;link-id0x1c9adc80&quot;&gt;Virtuoso&lt;/a&gt;?&lt;/h3&gt;
&lt;p&gt;What follows is a very simple guide for using SPARQL against your own instance of Virtuoso:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Software Download and Installation&lt;/li&gt;
&lt;li&gt;Data Loading from Data Sources exposed at Network Addresses (e.g. HTTP URLs) using very simple methods&lt;/li&gt;
&lt;li&gt;Actual SPARQL query execution via SPARQL endpoint.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Installation Steps&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
Download &lt;a href=&quot;http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VOSDownload&quot; id=&quot;link-id0x1b795100&quot;&gt;Virtuoso Open Source&lt;/a&gt; or &lt;a href=&quot;http://download.openlinksw.com/virtwiz/virtuoso.php&quot; id=&quot;link-id0x1cce46f0&quot;&gt;Virtuoso Commercial&lt;/a&gt; Editions
&lt;/li&gt;
&lt;li&gt;
Run installer (if using Commercial edition of Windows Open Source Edition, otherwise follow build guide) 
&lt;/li&gt;
&lt;li&gt;
Follow post-installation guide and verify installation by typing in the command: virtuoso -? (if this fails check you&amp;#39;ve followed installation and setup steps, then verify environment variables have been set)
&lt;/li&gt;
&lt;li&gt;
Start the Virtuoso server using the command: virtuoso-start.sh
&lt;/li&gt;
&lt;li&gt; 
Verify you have a connection to the Virtuoso Server via the command: isql localhost (assuming you&amp;#39;re using default DB settings) or the command: isql localhost:1112 (assuming demo database) or goto your browser and type in: http://&amp;lt;virtuoso-server-host-name&amp;gt;:[port]/conductor (e.g. http://localhost:8889/conductor for default DB or http://localhost:8890/conductor if using Demo DB)
&lt;/li&gt;
&lt;li&gt;
Go to SPARQL endpoint which is typically -- http://&amp;lt;virtuoso-server-host-name&amp;gt;:[port]/sparql
&lt;/li&gt;
&lt;li&gt;
Run a quick sample query (since the database always has system data in place): select distinct * where {?s ?p ?o} limit 50 .&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Troubleshooting&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Ensure environment settings are set and functional -- if using Mac OS X or Windows, so you don&amp;#39;t have to worry about this, just start and stop your Virtuoso server using native OS services applets&lt;/li&gt;
&lt;li&gt;If using the Open Source Edition, follow the &lt;a href=&quot;http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VOSMake#Getting%20Started&quot; id=&quot;link-id0x1bfa7548&quot;&gt;getting started guide&lt;/a&gt; -- it covers PATH and startup directory location re. starting and stopping Virtuoso servers.&lt;/li&gt;
&lt;li&gt;Sponging (HTTP GETs against external Data Sources) within SPARQL queries is disabled by default. You can enable this feature by assigning &amp;quot;&lt;a href=&quot;http://docs.openlinksw.com/virtuoso/rdfsparql.html#rdfsupportedprotocolendpointuri&quot; id=&quot;link-id0x1d566270&quot;&gt;SPARQL_SPONGE&lt;/a&gt;&amp;quot; privileges to user &amp;quot;SPARQL&amp;quot;. Note, more sophisticated security exists via &lt;a href=&quot;http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtAuthPolicyFOAFSSL&quot; id=&quot;link-id0x1a3c9eb8&quot;&gt;WebID based ACLs&lt;/a&gt;.
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;Data Loading Steps&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
Identify an RDF based structured data source of interest -- a file that contains 3-tuple / triples available at an address on a public or private HTTP based network
&lt;/li&gt;
&lt;li&gt;Determine the Address (URL) of the RDF data source&lt;/li&gt;
&lt;li&gt;Go to your Virtuoso SPARQL endpoint and type in the following SPARQL query: DEFINE GET:SOFT &amp;quot;replace&amp;quot; SELECT DISTINCT * FROM &amp;lt;RDFDataSourceURL&amp;gt; WHERE {?s ?p ?o}
&lt;/li&gt;
&lt;li&gt;
All the triples in the RDF resource (data source accessed via URL) will be loaded into the Virtuoso Quad Store (using RDF Data Source URL as the internal quad store Named Graph IRI) as part of the SPARQL query processing pipeline.
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Note: the data source URL doesn&amp;#39;t even have to be RDF based -- which is where the Virtuoso &lt;a class=&quot;auto-href&quot; href=&quot;http://virtuoso.openlinksw.com/Whitepapers/html/VirtSpongerWhitePaper.html&quot; id=&quot;link-id0x1d1a0978&quot;&gt;Sponger&lt;/a&gt; Middleware comes into play (download and install the &lt;a href=&quot;http://s3.amazonaws.com/opldownload/uda/vad-packages/6.1/virtuoso/rdf_mappers_dav.vad&quot; id=&quot;link-id0x1d0e1530&quot;&gt;VAD installer package&lt;/a&gt; first) since it delivers the following features to Virtuoso&amp;#39;s SPARQL engine:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Transformation of data from non RDF data sources (file content, hypermedia resources, &lt;a href=&quot;http://dbpedia.org/resource/World_Wide_Web&quot;&gt;web&lt;/a&gt; services output etc..) into RDF based 3-tuples (triples)&lt;/li&gt;
&lt;li&gt;
Cache Invalidation Scheme Construction -- thus, subsequent queries (without the define get:soft &amp;quot;replace&amp;quot; pragma will not be required bar when you forcefully want to override cache).&lt;/li&gt;
&lt;li&gt;
If you have very large data sources like DBpedia etc. from CKAN, simply use our &lt;a href=&quot;http://www.openlinksw.com/dataspace/dav/wiki/Main/VirtBulkRDFLoader&quot; id=&quot;link-id0x1d19b4b0&quot;&gt;bulk loader&lt;/a&gt; .
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;SPARQL Endpoint Discovery&lt;/h3&gt;
&lt;p&gt;Public SPARQL endpoints are emerging at an ever increasing rate. Thus, we&amp;#39;ve setup up a DNS lookup service that provides access to a large number of SPARQL endpoints. Of course, this doesn&amp;#39;t cover all existing endpoints, so if our endpoint is missing please ping &lt;a class=&quot;auto-href&quot; href=&quot;http://myopenlink.net/dataspace/person/kidehen#this&quot; id=&quot;link-id0x1d634848&quot;&gt;me&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here are a collection of commands for using DNS-SD to discover SPARQL endpoints:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;dns-sd -B _sparql._tcp sparql.openlinksw.com -- browse for services instances&lt;/li&gt;
&lt;li&gt;dns-sd -Z _sparql._tcp sparql.openlinksw.com -- output results in Zone File format&lt;/li&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;Related&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.ensta.fr/~diam/ruby/online/ruby-doc-stdlib/libdoc/net/http/rdoc/index.html&quot; id=&quot;link-id0x1b156610&quot;&gt;Using HTTP from Ruby&lt;/a&gt; -- you can just make &lt;a href=&quot;http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VOSSparqlProtocol&quot; id=&quot;link-id0x1d024d60&quot;&gt;SPARQL Protocol URLs&lt;/a&gt; re. SPARQL&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://sparql.rubyforge.org/client/&quot; id=&quot;link-id0x1cd43a48&quot;&gt;Using SPARQL Endpoints via Ruby&lt;/a&gt; -- Ruby example using DBpedia endpoint&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://wikis.openlinksw.com/dataspace/owiki/wiki/OATWikiWeb/InteractiveSparqlQueryBuilder&quot; id=&quot;link-id0x1b9d2190&quot;&gt;Interactive SPARQL Query By Example (QBE) tool&lt;/a&gt; -- provides a graphical user interface (as is common in SQL realm re. query building against &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Relational_database_management_system&quot; id=&quot;link-id0x1bfffb70&quot;&gt;RDBMS&lt;/a&gt; engines) that works with any SPARQL endpoint
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.openlinksw.com/dataspace/dav/wiki/Main/VirtRDFInsert&quot; id=&quot;link-id0x1ab63de0&quot;&gt;Other methods of loading RDF data into Virtuoso&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSponger&quot; id=&quot;link-id0x1ca248e0&quot;&gt;Virtuoso Sponger&lt;/a&gt; -- architecture and how it turns a wide variety of non RDF data sources into SPARQL accessible data
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://ode.openlinksw.com/example.html&quot; id=&quot;link-id0x1be34758&quot;&gt;Using OpenLink Data Explorer&lt;/a&gt; (ODE) to populate Virtuoso -- locate a resource of interest; click on a bookmarklet or use &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Context_%28language_use%29&quot; id=&quot;link-id0x1ca84af0&quot;&gt;context&lt;/a&gt; menus (if using ODE extensions for Firefox, Safari, or Chrome); and you&amp;#39;ll have SPARQL accessible data automatically inserted into your Virtuoso instance.
&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1295&quot; id=&quot;link-id0x1c9060f0&quot;&gt;W3C&amp;#39;s SPARQLing Data Access Ingenuity&lt;/a&gt; -- an older generic SPARQL introduction post
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSPARQLRef&quot; id=&quot;link-id0x1cf1e298&quot;&gt;Collection of SPARQL Query Examples &lt;/a&gt;-- GoodRelations (Product Offers), &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Friend_of_a_friend&quot; id=&quot;link-id0x1c0445d0&quot;&gt;FOAF&lt;/a&gt; (Profiles), &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/SIOC&quot; id=&quot;link-id0x1b785e48&quot;&gt;SIOC&lt;/a&gt; (Data Spaces -- &lt;a href=&quot;http://ods.openlinksw.com/dataspace/dav/wiki/ODS/ODSAtomOWLRefExampleBlog&quot; id=&quot;link-id0x1b6c9f78&quot;&gt;Blogs&lt;/a&gt;, &lt;a href=&quot;http://ods.openlinksw.com/dataspace/dav/wiki/ODS/ODSAtomOWLRefExampleWiki&quot; id=&quot;link-id0x1c188280&quot;&gt;Wikis&lt;/a&gt;, &lt;a href=&quot;http://ods.openlinksw.com/dataspace/dav/wiki/ODS/ODSAtomOWLRefExampleBookmarks&quot; id=&quot;link-id0x1a9a8f98&quot;&gt;Bookmarks&lt;/a&gt;, &lt;a href=&quot;http://ods.openlinksw.com/dataspace/dav/wiki/ODS/ODSAtomOWLRefExampleFeeds&quot; id=&quot;link-id0x1720c658&quot;&gt;Feed Collections&lt;/a&gt;, &lt;a href=&quot;http://ods.openlinksw.com/dataspace/dav/wiki/ODS/ODSAtomOWLRefExampleGallery&quot; id=&quot;link-id0x1cdba348&quot;&gt;Photo Galleries&lt;/a&gt;, &lt;a href=&quot;http://ods.openlinksw.com/dataspace/dav/wiki/ODS/ODSAtomOWLRefExampleBriefcase&quot; id=&quot;link-id0x1c8f1148&quot;&gt;Briefcase/DropBox&lt;/a&gt;, &lt;a href=&quot;http://ods.openlinksw.com/dataspace/dav/wiki/ODS/ODSAtomOWLRefExampleAddressbook&quot; id=&quot;link-id0x1b5eb7e0&quot;&gt;AddressBook&lt;/a&gt;, &lt;a href=&quot;http://ods.openlinksw.com/dataspace/dav/wiki/ODS/ODSAtomOWLRefExampleCalendar&quot; id=&quot;link-id0x1c575120&quot;&gt;Calendars&lt;/a&gt;, &lt;a href=&quot;http://ods.openlinksw.com/dataspace/dav/wiki/ODS/ODSAtomOWLRefExampleDiscussions&quot; id=&quot;link-id0x1c73be98&quot;&gt;Discussion Forums&lt;/a&gt;)
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://lod.openlinksw.com/demo_queries/&quot; id=&quot;link-id0x1b08aa00&quot;&gt;Collection of Live SPARQL Queries against LOD Cloud Cache&lt;/a&gt; -- simple and advanced queries.
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Virtuoso Linked Data Deployment 3-Step</title><guid>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2010-10-29#1641</guid><comments>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?id=1641#comments</comments><pubDate>Fri, 29 Oct 2010 22:54:32 GMT</pubDate><description>&lt;p&gt;Injecting &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Linked_Data&quot; id=&quot;link-id0x17012e18&quot;&gt;Linked Data&lt;/a&gt; into the Web has been a major pain point for those who seek personal, service, or organization-specific variants of &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/DBpedia&quot; id=&quot;link-id0x196518a8&quot;&gt;DBpedia&lt;/a&gt;. Basically, the sequence goes something like this: &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
You encounter DBpedia or the &lt;a class=&quot;auto-href&quot; href=&quot;http://community.linkeddata.org/dataspace/organization/lod#this&quot; id=&quot;link-id0x1b26d008&quot;&gt;LOD&lt;/a&gt; Cloud Pictorial.&lt;/li&gt;
&lt;li&gt;
You look around (typically following your nose from link to link).
&lt;/li&gt;
&lt;li&gt;
You attempt to publish your own stuff.
&lt;/li&gt;
&lt;li&gt;
You get stuck.
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The problems typically take the following form:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Functionality confusion about the complementary Name and Address functionality of a single &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Uniform_Resource_Identifier&quot; id=&quot;link-id0xa108a00&quot;&gt;URI&lt;/a&gt; abstraction
&lt;/li&gt;
&lt;li&gt;
Terminology confusion due to conflation and over-loading of terms such as Resource, &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Uniform_Resource_Locator&quot; id=&quot;link-id0x1b3d08f8&quot;&gt;URL&lt;/a&gt;, Representation, Document, etc.
&lt;/li&gt;
&lt;li&gt;
Inability to find robust tools with which to generate Linked Data from existing data sources such as relational databases, CSV files, XML, Web Services, etc.
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To start addressing these problems, here is a simple guide for generating and publishing Linked Data using &lt;a class=&quot;auto-href&quot; href=&quot;http://virtuoso.openlinksw.com&quot; id=&quot;link-id0x1a7841e0&quot;&gt;Virtuoso&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Step 1 - RDF Data Generation&lt;/h3&gt;

&lt;p&gt;Existing RDF data can be added to the Virtuoso RDF Quad Store via a variety of built-in data loader utilities.&lt;/p&gt;

&lt;p&gt;Many options allow you to easily and quickly generate RDF data from other data sources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Install the Sponger Bookmarklet for the &lt;a href=&quot;http://uriburner.com&quot; id=&quot;link-id0x1aa50800&quot;&gt;URIBurner service&lt;/a&gt;. Bind this to your own &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/SPARQL&quot; id=&quot;link-id0x1a4255e0&quot;&gt;SPARQL&lt;/a&gt;-compliant backend RDF database (in this scenario, your local Virtuoso instance), and then Sponge some HTTP-accessible resources.
&lt;/li&gt;
&lt;li&gt;
Convert relational DBMS data to RDF using the Virtuoso RDF Views Wizard.
&lt;/li&gt;
&lt;li&gt;
Starting with CSV files, you can
&lt;ul&gt;
    &lt;li&gt;Place them at an HTTP-accessible location, and use the Virtuoso &lt;a class=&quot;auto-href&quot; href=&quot;http://virtuoso.openlinksw.com/Whitepapers/html/VirtSpongerWhitePaper.html&quot; id=&quot;link-id0x16f7ba58&quot;&gt;Sponger&lt;/a&gt; to convert them to RDF or;
&lt;/li&gt;
&lt;li&gt;
Use the CVS import feature to import their content into Virtuoso&amp;#39;s relational data engine; then use the built-in RDF Views Wizard as with other &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Relational_database_management_system&quot; id=&quot;link-id0x1982ea80&quot;&gt;RDBMS&lt;/a&gt; data.
&lt;/li&gt;
  &lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
Starting from XML files, you can
&lt;ul&gt;
    &lt;li&gt;
Use Virtuoso&amp;#39;s inbuilt XSLT-Processor for manual XML to RDF/XML transformation or;&lt;/li&gt;
&lt;li&gt;Leverage the Sponger Cartridge for &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/GRDDL&quot; id=&quot;link-id0x1b350968&quot;&gt;GRDDL&lt;/a&gt;, if there is a transformation service associated with your XML data source, or;&lt;/li&gt;
&lt;li&gt;Let the Sponger analyze the XML data source and make a best-effort transformation to RDF.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;Step 2 - Linked Data Deployment&lt;/h3&gt;
&lt;p&gt;
Install the &lt;a href=&quot;http://download.openlinksw.com/packages/6.2/virtuoso/fct_dav.vad&quot; id=&quot;link-id0x19845ad0&quot;&gt;Faceted Browser VAD package (&lt;code&gt;fct_dav.vad&lt;/code&gt;)&lt;/a&gt; which delivers the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Faceted Browser Engine UI&lt;/li&gt;
&lt;li&gt;
Dynamic Hypermedia Resource Generator
&lt;ul&gt;
    &lt;li&gt;delivers descriptor resources for every &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Entity&quot; id=&quot;link-id0x1b3a69f0&quot;&gt;entity&lt;/a&gt; (data object) in the Native or Virtual Quad Stores&lt;/li&gt;
&lt;li&gt;supports a broad array of output formats, including HTML+&lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/RDFa&quot; id=&quot;link-id0x1a92d2f8&quot;&gt;RDFa&lt;/a&gt;, RDF/XML, N3/Turtle, NTriples, RDF-JSON, OData+Atom, and OData+JSON.
&lt;/li&gt;
  &lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;


&lt;h3&gt;Step 3 - Linked Data Consumption &amp;amp; Exploitation&lt;/h3&gt;
&lt;p&gt;
Three simple steps allow you, your enterprise, and your customers to consume and exploit your newly deployed Linked Data --
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Load a page like this in your browser: &lt;code&gt;http://&amp;lt;cname&amp;gt;[:&amp;lt;port&amp;gt;]/describe/?uri=&amp;lt;entity-uri&amp;gt;&lt;/code&gt;
&lt;ul&gt;
    &lt;li&gt;
      &lt;code&gt;&amp;lt;cname&amp;gt;[:&amp;lt;port&amp;gt;]&lt;/code&gt; gets replaced by the host and port of your Virtuoso instance&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;entity-uri&amp;gt;&lt;/code&gt; gets replaced by the URI you want to see described -- for instance, the URI of one of the resources you let the Sponger handle.
&lt;/li&gt;
  &lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
Follow the links presented in the descriptor page.
&lt;/li&gt;
&lt;li&gt;If you ever see a blank page with a hyperlink subject name in the About: section at the top of the page, simply add the parameter &amp;quot;&amp;amp;sp=1&amp;quot; to the URL in the browser&amp;#39;s Address box, and hit [ENTER].  This will result in an &amp;quot;on the fly&amp;quot; resource retrieval, transformation, and descriptor page generation.&lt;/li&gt; 
&lt;li&gt;
Use the navigator controls to page up and down the data associated with the &amp;quot;in scope&amp;quot; resource descriptor.
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Related&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
  &lt;a href=&quot;http://linkeddata.uriburner.com/describe/?url=http%3A%2F%2Flinkeddata.uriburner.com%2Fabout%2Fid%2Fentity%2Fhttp%2Fwww.amazon.com%2Fo%2FASIN%2F006251587X&quot; id=&quot;link-id0x1a8aeaf8&quot;&gt;Sample Descriptor Page&lt;/a&gt; (what you see post completion of the steps in this post)
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1639&quot; id=&quot;link-id0x1af66f38&quot;&gt;What is Linked Data, really?&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1613&quot; id=&quot;link-id0x1acdbc58&quot;&gt;Painless Linked Data Generation via URIBurner&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.openlinksw.com/dataspace/dav/wiki/Main/VirtRDFInsert&quot; id=&quot;link-id0x1abe3b18&quot;&gt;How To Load RDF Data Into Virtuoso&lt;/a&gt; (various methods)&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.openlinksw.com/dataspace/dav/wiki/Main/VirtBulkRDFLoader&quot; id=&quot;link-id0x1a441ff0&quot;&gt;Virtuoso Bulk Loader Script for RDF&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.openlinksw.com/dataspace/dav/wiki/Main/VirtCsvFileBulkLoader&quot; id=&quot;link-id0x190382e8&quot;&gt;Bulk Loader Script for CSV&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtRdb2RDFViewsGeneration#OneClickLinkedDataGenerationAndDemployment&quot; id=&quot;link-id0x1ac9c9c0&quot;&gt;Wizard based generation of RDF based Linked Data from ODBC accessible Relational Databases &lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Virtuoso Linked Data Deployment In 3 Simple Steps</title><guid>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2010-10-29#1642</guid><comments>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?id=1642#comments</comments><pubDate>Fri, 29 Oct 2010 22:54:32 GMT</pubDate><description>&lt;p&gt;Injecting &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Linked_Data&quot; id=&quot;link-id0x17012e18&quot;&gt;Linked Data&lt;/a&gt; into the &lt;a href=&quot;http://dbpedia.org/resource/World_Wide_Web&quot;&gt;Web&lt;/a&gt; has been a major pain point for those who seek personal, service, or organization-specific variants of &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/DBpedia&quot; id=&quot;link-id0x196518a8&quot;&gt;DBpedia&lt;/a&gt;. Basically, the sequence goes something like this: &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
You encounter DBpedia or the &lt;a class=&quot;auto-href&quot; href=&quot;http://community.linkeddata.org/dataspace/organization/lod#this&quot; id=&quot;link-id0x1b26d008&quot;&gt;LOD&lt;/a&gt; Cloud Pictorial.&lt;/li&gt;
&lt;li&gt;
You look around (typically following your nose from link to link).
&lt;/li&gt;
&lt;li&gt;
You attempt to publish your own stuff.
&lt;/li&gt;
&lt;li&gt;
You get stuck.
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The problems typically take the following form:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Functionality confusion about the complementary Name and Address functionality of a single &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Uniform_Resource_Identifier&quot; id=&quot;link-id0xa108a00&quot;&gt;URI&lt;/a&gt; abstraction
&lt;/li&gt;
&lt;li&gt;
Terminology confusion due to conflation and over-loading of terms such as Resource, &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Uniform_Resource_Locator&quot; id=&quot;link-id0x1b3d08f8&quot;&gt;URL&lt;/a&gt;, Representation, Document, etc.
&lt;/li&gt;
&lt;li&gt;
Inability to find robust tools with which to generate Linked Data from existing &lt;a href=&quot;http://dbpedia.org/resource/Data&quot;&gt;data&lt;/a&gt; sources such as relational databases, CSV files, XML, Web Services, etc.
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To start addressing these problems, here is a simple guide for generating and publishing Linked Data using &lt;a class=&quot;auto-href&quot; href=&quot;http://virtuoso.openlinksw.com&quot; id=&quot;link-id0x1a7841e0&quot;&gt;Virtuoso&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Step 1 - RDF Data Generation&lt;/h3&gt;

&lt;p&gt;Existing RDF data can be added to the Virtuoso RDF Quad Store via a variety of built-in data loader utilities.&lt;/p&gt;

&lt;p&gt;Many options allow you to easily and quickly generate RDF data from other data sources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Install the Sponger Bookmarklet for the &lt;a href=&quot;http://uriburner.com&quot; id=&quot;link-id0x1aa50800&quot;&gt;URIBurner service&lt;/a&gt;. Bind this to your own &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/SPARQL&quot; id=&quot;link-id0x1a4255e0&quot;&gt;SPARQL&lt;/a&gt;-compliant backend RDF database (in this scenario, your local Virtuoso instance), and then Sponge some HTTP-accessible resources.
&lt;/li&gt;
&lt;li&gt;
Convert relational DBMS data to RDF using the Virtuoso RDF Views Wizard.
&lt;/li&gt;
&lt;li&gt;
Starting with CSV files, you can
&lt;ul&gt;
    &lt;li&gt;Place them at an HTTP-accessible location, and use the Virtuoso &lt;a class=&quot;auto-href&quot; href=&quot;http://virtuoso.openlinksw.com/Whitepapers/html/VirtSpongerWhitePaper.html&quot; id=&quot;link-id0x16f7ba58&quot;&gt;Sponger&lt;/a&gt; to convert them to RDF or;
&lt;/li&gt;
&lt;li&gt;
Use the CVS import feature to import their content into Virtuoso&amp;#39;s relational data engine; then use the built-in RDF Views Wizard as with other &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Relational_database_management_system&quot; id=&quot;link-id0x1982ea80&quot;&gt;RDBMS&lt;/a&gt; data.
&lt;/li&gt;
  &lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
Starting from XML files, you can
&lt;ul&gt;
    &lt;li&gt;
Use Virtuoso&amp;#39;s inbuilt XSLT-Processor for manual XML to RDF/XML transformation or;&lt;/li&gt;
&lt;li&gt;Leverage the Sponger Cartridge for &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/GRDDL&quot; id=&quot;link-id0x1b350968&quot;&gt;GRDDL&lt;/a&gt;, if there is a transformation service associated with your XML data source, or;&lt;/li&gt;
&lt;li&gt;Let the Sponger analyze the XML data source and make a best-effort transformation to RDF.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;Step 2 - Linked Data Deployment&lt;/h3&gt;
&lt;p&gt;
Install the &lt;a href=&quot;http://download.openlinksw.com/packages/6.2/virtuoso/fct_dav.vad&quot; id=&quot;link-id0x19845ad0&quot;&gt;Faceted Browser VAD package (&lt;code&gt;fct_dav.vad&lt;/code&gt;)&lt;/a&gt; which delivers the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Faceted Browser Engine UI&lt;/li&gt;
&lt;li&gt;
Dynamic Hypermedia Resource Generator
&lt;ul&gt;
    &lt;li&gt;delivers descriptor resources for every &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Entity&quot; id=&quot;link-id0x1b3a69f0&quot;&gt;entity&lt;/a&gt; (data object) in the Native or Virtual Quad Stores&lt;/li&gt;
&lt;li&gt;supports a broad array of output formats, including HTML+&lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/RDFa&quot; id=&quot;link-id0x1a92d2f8&quot;&gt;RDFa&lt;/a&gt;, RDF/XML, N3/Turtle, NTriples, RDF-JSON, OData+Atom, and OData+JSON.
&lt;/li&gt;
  &lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;


&lt;h3&gt;Step 3 - Linked Data Consumption &amp;amp; Exploitation&lt;/h3&gt;
&lt;p&gt;
Three simple steps allow you, your enterprise, and your customers to consume and exploit your newly deployed Linked Data --
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Load a page like this in your browser: &lt;code&gt;http://&amp;lt;cname&amp;gt;[:&amp;lt;port&amp;gt;]/describe/?uri=&amp;lt;entity-uri&amp;gt;&lt;/code&gt;
&lt;ul&gt;
    &lt;li&gt;
      &lt;code&gt;&amp;lt;cname&amp;gt;[:&amp;lt;port&amp;gt;]&lt;/code&gt; gets replaced by the host and port of your Virtuoso instance&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;entity-uri&amp;gt;&lt;/code&gt; gets replaced by the URI you want to see described -- for instance, the URI of one of the resources you let the Sponger handle.
&lt;/li&gt;
  &lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
Follow the links presented in the descriptor page.
&lt;/li&gt;
&lt;li&gt;If you ever see a blank page with a hyperlink subject name in the About: section at the top of the page, simply add the parameter &amp;quot;&amp;amp;sp=1&amp;quot; to the URL in the browser&amp;#39;s Address box, and hit [ENTER].  This will result in an &amp;quot;on the fly&amp;quot; resource retrieval, transformation, and descriptor page generation.&lt;/li&gt; 
&lt;li&gt;
Use the navigator controls to page up and down the data associated with the &amp;quot;in scope&amp;quot; resource descriptor.
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Related&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
  &lt;a href=&quot;http://linkeddata.uriburner.com/describe/?url=http%3A%2F%2Flinkeddata.uriburner.com%2Fabout%2Fid%2Fentity%2Fhttp%2Fwww.amazon.com%2Fo%2FASIN%2F006251587X&quot; id=&quot;link-id0x1a8aeaf8&quot;&gt;Sample Descriptor Page&lt;/a&gt; (what you see post completion of the steps in this post)
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1639&quot; id=&quot;link-id0x1af66f38&quot;&gt;What is Linked Data, really?&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1613&quot; id=&quot;link-id0x1acdbc58&quot;&gt;Painless Linked Data Generation via URIBurner&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.openlinksw.com/dataspace/dav/wiki/Main/VirtRDFInsert&quot; id=&quot;link-id0x1abe3b18&quot;&gt;How To Load RDF Data Into Virtuoso&lt;/a&gt; (various methods)&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.openlinksw.com/dataspace/dav/wiki/Main/VirtBulkRDFLoader&quot; id=&quot;link-id0x1a441ff0&quot;&gt;Virtuoso Bulk Loader Script for RDF&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.openlinksw.com/dataspace/dav/wiki/Main/VirtCsvFileBulkLoader&quot; id=&quot;link-id0x190382e8&quot;&gt;Bulk Loader Script for CSV&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtRdb2RDFViewsGeneration#OneClickLinkedDataGenerationAndDemployment&quot; id=&quot;link-id0x1ac9c9c0&quot;&gt;Wizard based generation of RDF based Linked Data from ODBC accessible Relational Databases &lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>What is Linked Data, really?</title><guid>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2010-10-14#1645</guid><comments>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?id=1645#comments</comments><pubDate>Thu, 14 Oct 2010 23:10:26 GMT</pubDate><description>&lt;p&gt;
 &lt;b&gt;
  &lt;i&gt;&lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Linked_Data&quot; id=&quot;link-id0x1e81beb0&quot;&gt;Linked Data&lt;/a&gt;
  &lt;/i&gt;
 &lt;/b&gt; is simply &lt;i&gt;&lt;a href=&quot;http://dbpedia.org/resource/Hypermedia&quot; id=&quot;link-id0x1d9d5e30&quot;&gt;hypermedia&lt;/a&gt;-based 
structured &lt;a href=&quot;http://dbpedia.org/resource/Data&quot;&gt;data&lt;/a&gt;.&lt;/i&gt;
&lt;/p&gt;

&lt;p&gt;Linked Data offers everyone a &lt;a href=&quot;http://dbpedia.org/resource/World_Wide_Web&quot;&gt;Web&lt;/a&gt;-scale, Enterprise-grade mechanism for platform-independent creation, curation, access, and integration of data.&lt;/p&gt;

&lt;p&gt;The fundamental steps to creating Linked Data are as follows:&lt;/p&gt;

&lt;ol&gt;
 &lt;li&gt;
  &lt;p&gt;Choose a &lt;i&gt;Name Reference Mechanism&lt;/i&gt; — i.e., URIs.&lt;/p&gt;
 &lt;/li&gt;

&lt;li&gt;
  &lt;p&gt;Choose a &lt;i&gt;Data Model&lt;/i&gt; with which to Structure your Data — minimally, you need a model which clearly distinguishes&lt;/p&gt;
&lt;ol type=&quot;a&quot;&gt;
    &lt;li&gt;
      &lt;i&gt;Subjects&lt;/i&gt; (also known as &lt;i&gt;Entities&lt;/i&gt;)&lt;/li&gt;
&lt;li&gt;
      &lt;i&gt;Subject Attributes&lt;/i&gt; (also known as &lt;i&gt;&lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Entity&quot; id=&quot;link-id0x171a1808&quot;&gt;Entity&lt;/a&gt; Attributes&lt;/i&gt;), and&lt;/li&gt;
&lt;li&gt;
      &lt;i&gt;Attribute Values&lt;/i&gt; (also known as &lt;i&gt;Subject Attribute Values&lt;/i&gt; or &lt;i&gt;Entity Attribute Values&lt;/i&gt;).&lt;/li&gt;
  &lt;/ol&gt;
&lt;/li&gt;

&lt;li&gt;
  &lt;p&gt;Choose one or more &lt;i&gt;Data Representation Syntaxes&lt;/i&gt; (also called &lt;i&gt;Markup Languages&lt;/i&gt; or &lt;i&gt;Data Formats&lt;/i&gt;) to use when creating &lt;i&gt;Resources&lt;/i&gt; with &lt;i&gt;Content&lt;/i&gt; based on your chosen &lt;i&gt;Data Model.&lt;/i&gt;  Some Syntaxes in common use today are HTML+&lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/RDFa&quot; id=&quot;link-id0x1a95cc58&quot;&gt;RDFa&lt;/a&gt;, &lt;a href=&quot;http://www.w3.org/DesignIssues/Notation3&quot; id=&quot;link-id0x1f596330&quot;&gt;N3&lt;/a&gt;, &lt;a href=&quot;http://www.w3.org/TeamSubmission/turtle/&quot; id=&quot;link-id0x16fdca68&quot;&gt;Turtle&lt;/a&gt;, &lt;a href=&quot;http://www.w3.org/TR/REC-rdf-syntax/&quot; id=&quot;link-id0x1d7cf0c0&quot;&gt;RDF/XML&lt;/a&gt;, &lt;a href=&quot;http://sw.nokia.com/trix/TriX.html&quot; id=&quot;link-id0x19690b60&quot;&gt;TriX&lt;/a&gt;, &lt;a href=&quot;http://dbpedia.org/resource/Extensible_Resource_Descriptor&quot; id=&quot;link-id0x1bb46968&quot;&gt;XRDS&lt;/a&gt;, &lt;a href=&quot;http://code.google.com/apis/gdata/index.html&quot; id=&quot;link-id0x18f63f20&quot;&gt;GData&lt;/a&gt;, &lt;a href=&quot;http://odata.org&quot; id=&quot;link-id0x19aee1e0&quot;&gt;OData&lt;/a&gt;, &lt;a href=&quot;http://opengraphprotocol.org/&quot; id=&quot;link-id0x1a43eb78&quot;&gt;OpenGraph&lt;/a&gt;, and many others.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
  &lt;p&gt;Choose a &lt;i&gt;&lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Uniform_Resource_Identifier&quot; id=&quot;link-id0x19aa3900&quot;&gt;URI&lt;/a&gt; Scheme&lt;/i&gt; that facilitates binding &lt;i&gt;Referenced Names&lt;/i&gt; to the &lt;i&gt;Resources&lt;/i&gt; which will carry your &lt;i&gt;Content&lt;/i&gt; -- your &lt;i&gt;Structured Data.&lt;/i&gt;
  &lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
  &lt;p&gt;Create &lt;i&gt;Structured Data&lt;/i&gt; by using your chosen &lt;i&gt;Name Reference Mechanism,&lt;/i&gt; your chosen &lt;i&gt;Data Model,&lt;/i&gt; and your chosen &lt;i&gt;Data Representation Syntax,&lt;/i&gt; as follows:&lt;/p&gt;

&lt;ol type=&quot;a&quot;&gt;
   &lt;li&gt;Identify &lt;i&gt;Subject(s)&lt;/i&gt; using &lt;i&gt;Resolvable URI(s).&lt;/i&gt;
   &lt;/li&gt;
&lt;li&gt;Identify &lt;i&gt;Subject Attribute(s)&lt;/i&gt; using &lt;i&gt;Resolvable URI(s).&lt;/i&gt;
    &lt;/li&gt;
&lt;li&gt;Assign &lt;i&gt;Attribute Values&lt;/i&gt; to &lt;i&gt;Subject Attributes.&lt;/i&gt;  These &lt;i&gt;Values&lt;/i&gt; may be either 
      &lt;i&gt;Literals&lt;/i&gt; (e.g., STRINGs, BLOBs) or &lt;i&gt;Resolvable URIs.&lt;/i&gt;
&lt;/li&gt;
  &lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can create Linked Data (hypermedia-based data representations) Resources from or for many things. Examples include: personal profiles, calendars, address books, blogs, photo albums; there are many, many more.&lt;/p&gt;

&lt;h3&gt;Related&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
  &lt;a href=&quot;http://socialmedia.net/linked-data-introduction&quot; id=&quot;link-id0x1bb13d50&quot;&gt;Linked Data an Introduction&lt;/a&gt; -- simple introduction to Linked Data and its virtues&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://gigaom.com/2010/10/11/jeff-jonas-big-data/&quot; id=&quot;link-id0xa00d7e8&quot;&gt;How Data Makes Corporations Dumb&lt;/a&gt; -- Jeff Jonas (IBM) interview&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.amundsen.com/hypermedia/&quot; id=&quot;link-id0x18f64958&quot;&gt;Hypermedia Types&lt;/a&gt; -- evolving &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Information&quot; id=&quot;link-id0x1903b880&quot;&gt;information&lt;/a&gt; portal covering different aspects of Hypermedia resource types&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://linkeddata.uriburner.com&quot; id=&quot;link-id0x18af0cf8&quot;&gt;URIBurner &lt;/a&gt;-- service that generates Linked Data from a plethora of heterogeneous data sources&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.w3.org/DesignIssues/LinkedData.html&quot; id=&quot;link-id0x1929eea0&quot;&gt;Linked Data Meme&lt;/a&gt; -- &lt;a class=&quot;auto-href&quot; href=&quot;http://www.w3.org/People/Berners-Lee/card#i&quot; id=&quot;link-id0x1e8127c8&quot;&gt;TimbL&lt;/a&gt; design issues note about Linked Data&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1624&quot; id=&quot;link-id0x18a5b768&quot;&gt;Data 3.0 Manifesto&lt;/a&gt; -- note about format agnostic Linked Data&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://dbpedia.org/About&quot; id=&quot;link-id0x19ae9338&quot;&gt;DBpedia&lt;/a&gt; -- large Linked Data Hub&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://richard.cyganiak.de/2007/10/lod/&quot; id=&quot;link-id0x14d677f8&quot;&gt;Linked Open Data Cloud&lt;/a&gt; -- collection of Linked Data Spaces&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://linkedopencommerce.com&quot; id=&quot;link-id0x17c6dbf8&quot;&gt;Linked Open Commerce Cloud &lt;/a&gt;-- commerce (clicks &amp;amp; mortar and/or clicks &amp;amp; clicks) oriented &lt;a class=&quot;auto-href&quot; href=&quot;http://en.wikipedia.org/wiki/Data_Spaces&quot; id=&quot;link-id0x13959308&quot;&gt;Linked Data Space&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://lod.openlinksw.com&quot; id=&quot;link-id0x18ccb9e8&quot;&gt;LOD Cloud Cache &lt;/a&gt;-- massive Linked Data Space hosting most of the LOD Cloud Datasets&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://lod2.eu&quot; id=&quot;link-id0x1a472c20&quot;&gt;LOD2 Initiative&lt;/a&gt; -- EU Co-Funded Project to develop global &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Knowledge&quot; id=&quot;link-id0x1c0ae7d0&quot;&gt;knowledge&lt;/a&gt; space from LOD&lt;/li&gt;.
&lt;/ol&gt;
</description></item><item><title>What is Linked Data, really?</title><guid>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2010-10-14#1639</guid><comments>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?id=1639#comments</comments><pubDate>Thu, 14 Oct 2010 21:54:31 GMT</pubDate><description>&lt;p&gt;
 &lt;b&gt;
  &lt;i&gt;&lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Linked_Data&quot; id=&quot;link-id0x1e81beb0&quot;&gt;Linked Data&lt;/a&gt;
  &lt;/i&gt;
 &lt;/b&gt; is simply &lt;i&gt;&lt;a href=&quot;http://dbpedia.org/resource/Hypermedia&quot; id=&quot;link-id0x1d9d5e30&quot;&gt;hypermedia&lt;/a&gt;-based 
structured &lt;a href=&quot;http://dbpedia.org/resource/Data&quot;&gt;data&lt;/a&gt;.&lt;/i&gt;
&lt;/p&gt;

&lt;p&gt;Linked Data offers everyone a &lt;a href=&quot;http://dbpedia.org/resource/World_Wide_Web&quot;&gt;Web&lt;/a&gt;-scale, Enterprise-grade mechanism for platform-independent creation, curation, access, and integration of data.&lt;/p&gt;

&lt;p&gt;The fundamental steps to creating Linked Data are as follows:&lt;/p&gt;

&lt;ol&gt;
 &lt;li&gt;
  &lt;p&gt;Choose a &lt;i&gt;Name Reference Mechanism&lt;/i&gt; — i.e., URIs.&lt;/p&gt;
 &lt;/li&gt;

&lt;li&gt;
  &lt;p&gt;Choose a &lt;i&gt;Data Model&lt;/i&gt; with which to Structure your Data — minimally, you need a model which clearly distinguishes&lt;/p&gt;
&lt;ol type=&quot;a&quot;&gt;
    &lt;li&gt;
      &lt;i&gt;Subjects&lt;/i&gt; (also known as &lt;i&gt;Entities&lt;/i&gt;)&lt;/li&gt;
&lt;li&gt;
      &lt;i&gt;Subject Attributes&lt;/i&gt; (also known as &lt;i&gt;&lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Entity&quot; id=&quot;link-id0x171a1808&quot;&gt;Entity&lt;/a&gt; Attributes&lt;/i&gt;), and&lt;/li&gt;
&lt;li&gt;
      &lt;i&gt;Attribute Values&lt;/i&gt; (also known as &lt;i&gt;Subject Attribute Values&lt;/i&gt; or &lt;i&gt;Entity Attribute Values&lt;/i&gt;).&lt;/li&gt;
  &lt;/ol&gt;
&lt;/li&gt;

&lt;li&gt;
  &lt;p&gt;Choose one or more &lt;i&gt;Data Representation Syntaxes&lt;/i&gt; (also called &lt;i&gt;Markup Languages&lt;/i&gt; or &lt;i&gt;Data Formats&lt;/i&gt;) to use when creating &lt;i&gt;Resources&lt;/i&gt; with &lt;i&gt;Content&lt;/i&gt; based on your chosen &lt;i&gt;Data Model.&lt;/i&gt;  Some Syntaxes in common use today are HTML+&lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/RDFa&quot; id=&quot;link-id0x1a95cc58&quot;&gt;RDFa&lt;/a&gt;, &lt;a href=&quot;http://www.w3.org/DesignIssues/Notation3&quot; id=&quot;link-id0x1f596330&quot;&gt;N3&lt;/a&gt;, &lt;a href=&quot;http://www.w3.org/TeamSubmission/turtle/&quot; id=&quot;link-id0x16fdca68&quot;&gt;Turtle&lt;/a&gt;, &lt;a href=&quot;http://www.w3.org/TR/REC-rdf-syntax/&quot; id=&quot;link-id0x1d7cf0c0&quot;&gt;RDF/XML&lt;/a&gt;, &lt;a href=&quot;http://sw.nokia.com/trix/TriX.html&quot; id=&quot;link-id0x19690b60&quot;&gt;TriX&lt;/a&gt;, &lt;a href=&quot;http://dbpedia.org/resource/Extensible_Resource_Descriptor&quot; id=&quot;link-id0x1bb46968&quot;&gt;XRDS&lt;/a&gt;, &lt;a href=&quot;http://code.google.com/apis/gdata/index.html&quot; id=&quot;link-id0x18f63f20&quot;&gt;GData&lt;/a&gt;, and &lt;a href=&quot;http://odata.org&quot; id=&quot;link-id0x19aee1e0&quot;&gt;OData&lt;/a&gt;; there are many others.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
  &lt;p&gt;Choose a &lt;i&gt;&lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Uniform_Resource_Identifier&quot; id=&quot;link-id0x19aa3900&quot;&gt;URI&lt;/a&gt; Scheme&lt;/i&gt; that facilitates binding &lt;i&gt;Referenced Names&lt;/i&gt; to the &lt;i&gt;Resources&lt;/i&gt; which will carry your &lt;i&gt;Content&lt;/i&gt; -- your &lt;i&gt;Structured Data.&lt;/i&gt;
  &lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
  &lt;p&gt;Create &lt;i&gt;Structured Data&lt;/i&gt; by using your chosen &lt;i&gt;Name Reference Mechanism,&lt;/i&gt; your chosen &lt;i&gt;Data Model,&lt;/i&gt; and your chosen &lt;i&gt;Data Representation Syntax,&lt;/i&gt; as follows:&lt;/p&gt;

&lt;ol type=&quot;a&quot;&gt;
   &lt;li&gt;Identify &lt;i&gt;Subject(s)&lt;/i&gt; using &lt;i&gt;Resolvable URI(s).&lt;/i&gt;
   &lt;/li&gt;
&lt;li&gt;Identify &lt;i&gt;Subject Attribute(s)&lt;/i&gt; using &lt;i&gt;Resolvable URI(s).&lt;/i&gt;
    &lt;/li&gt;
&lt;li&gt;Assign &lt;i&gt;Attribute Values&lt;/i&gt; to &lt;i&gt;Subject Attributes.&lt;/i&gt;  These &lt;i&gt;Values&lt;/i&gt; may be either 
      &lt;i&gt;Literals&lt;/i&gt; (e.g., STRINGs, BLOBs) or &lt;i&gt;Resolvable URIs.&lt;/i&gt;
&lt;/li&gt;
  &lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can create Linked Data (hypermedia-based data representations) Resources from or for many things. Examples include: personal profiles, calendars, address books, blogs, photo albums; there are many, many more.&lt;/p&gt;

&lt;h3&gt;Related&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.amundsen.com/hypermedia/&quot; id=&quot;link-id0x18f64958&quot;&gt;Hypermedia Types&lt;/a&gt; -- evolving &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Information&quot; id=&quot;link-id0x1903b880&quot;&gt;information&lt;/a&gt; portal covering different aspects of Hypermedia resource types&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://linkeddata.uriburner.com&quot; id=&quot;link-id0x18af0cf8&quot;&gt;URIBurner &lt;/a&gt;-- service that generates Linked Data from a plethora of heterogeneous data sources&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.w3.org/DesignIssues/LinkedData.html&quot; id=&quot;link-id0x1929eea0&quot;&gt;Linked Data Meme&lt;/a&gt; -- &lt;a class=&quot;auto-href&quot; href=&quot;http://www.w3.org/People/Berners-Lee/card#i&quot; id=&quot;link-id0x1e8127c8&quot;&gt;TimbL&lt;/a&gt; design issues note about Linked Data&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1624&quot; id=&quot;link-id0x18a5b768&quot;&gt;Data 3.0 Manifesto&lt;/a&gt; -- note about format agnostic Linked Data&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://dbpedia.org/About&quot; id=&quot;link-id0x19ae9338&quot;&gt;DBpedia&lt;/a&gt; -- large Linked Data Hub&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://richard.cyganiak.de/2007/10/lod/&quot; id=&quot;link-id0x14d677f8&quot;&gt;Linked Open Data Cloud&lt;/a&gt; -- collection of Linked Data Spaces&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://linkedopencommerce.com&quot; id=&quot;link-id0x17c6dbf8&quot;&gt;Linked Open Commerce Cloud &lt;/a&gt;-- commerce (clicks &amp;amp; mortar and/or clicks &amp;amp; clicks) oriented &lt;a class=&quot;auto-href&quot; href=&quot;http://en.wikipedia.org/wiki/Data_Spaces&quot; id=&quot;link-id0x13959308&quot;&gt;Linked Data Space&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://lod.openlinksw.com&quot; id=&quot;link-id0x18ccb9e8&quot;&gt;LOD Cloud Cache &lt;/a&gt;-- massive Linked Data Space hosting most of the LOD Cloud Datasets&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://lod2.eu&quot; id=&quot;link-id0x1a472c20&quot;&gt;LOD2 Initiative&lt;/a&gt; -- EU Co-Funded Project to develop global &lt;a class=&quot;auto-href&quot; href=&quot;http://dbpedia.org/resource/Knowledge&quot; id=&quot;link-id0x1c0ae7d0&quot;&gt;knowledge&lt;/a&gt; space from LOD&lt;/li&gt;.
&lt;/ol&gt;
</description></item><item><title>URIBurner: Painless Generation &amp; Exploitation of Linked Data (Update 1 - Demo Links Added)</title><guid>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2010-03-10#1613</guid><comments>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?id=1613#comments</comments><pubDate>Wed, 10 Mar 2010 17:52:03 GMT</pubDate><description>&lt;h2&gt;What is URIBurner?  &lt;/h2&gt;
&lt;p&gt;A service from &lt;a href=&quot;http://www.openlinksw.com/dataspace/organization/openlink#this&quot; id=&quot;link-id11a8a2768&quot;&gt;OpenLink Software&lt;/a&gt;, available at: &lt;a href=&quot;http://uriburner.com&quot; id=&quot;link-id11ace9988&quot;&gt;http://uriburner.com&lt;/a&gt;, that enables anyone to generate structured descriptions -on the fly- for resources that are already published to HTTP based networks. These descriptions exist as hypermedia resource representations where links are used to identify: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
the &lt;a href=&quot;http://dbpedia.org/resource/Entity&quot; id=&quot;link-id11ae10768&quot;&gt;entity&lt;/a&gt; (&lt;a href=&quot;http://dbpedia.org/resource/Data&quot;&gt;data&lt;/a&gt; object or datum) being described,&lt;/li&gt;
&lt;li&gt;each of its attributes, and&lt;/li&gt;
&lt;li&gt;each of its attributes values (optionally).&lt;/li&gt;  
&lt;/ul&gt;
&lt;p&gt;The hypermedia resource representation outlined above is what is commonly known as an &lt;a href=&quot;http://dbpedia.org/resource/Entity-attribute-value_model&quot; id=&quot;link-id121aec368&quot;&gt;Entity&lt;/a&gt;-Attribute-Value (EAV) Graph. The use of generic HTTP scheme based Identifiers is what distinguishes this type of hypermedia resource from others.&lt;/p&gt;
&lt;h2&gt;Why is it Important?&lt;/h2&gt;
&lt;p&gt;
The virtues (dual pronged serendipitous discovery) of publishing HTTP based &lt;a href=&quot;http://dbpedia.org/resource/Linked_Data&quot; id=&quot;link-id11f5f53e8&quot;&gt;Linked Data&lt;/a&gt; across public (&lt;a href=&quot;http://dbpedia.org/resource/World_Wide_Web&quot; id=&quot;link-id11b14e1f8&quot;&gt;World Wide Web&lt;/a&gt;) or private (Intranets and/or Extranets) is rapidly becoming clearer to everyone. That said, the nuance laced nature of Linked Data publishing presents significant challenges to most. Thus, for Linked Data to really blossom the process of publishing needs to be simplified i.e., &amp;quot;just click and go&amp;quot; (for human interaction) or REST-ful orchestration of HTTP CRUD (Create, Read, Update, Delete) operations between Client Applications and Linked Data Servers.&lt;/p&gt;


&lt;h2&gt;How Do I Use It?&lt;/h2&gt;
&lt;p&gt;
In similar vane to the role played by FeedBurner with regards to Atom and RSS feed generation, during the early stages of the Blogosphere, it enables anyone to publish Linked Data bearing hypermedia resources on an HTTP network. Thus, its usage covers two profiles: Content Publisher and Content Consumer.
  &lt;/p&gt;
&lt;h3&gt;


&lt;/h3&gt;
&lt;h3&gt;Content Publisher
  &lt;/h3&gt;
&lt;h3&gt;
&lt;/h3&gt;
&lt;p&gt;The steps that follow cover all you need to do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;place a &lt;link /&gt; &lt;a href=&quot;http://dbpedia.org/resource/Tag&quot; id=&quot;link-id11a62f908&quot;&gt;tag&lt;/a&gt; within your HTTP based hypermedia resource (e.g. within  section for HTML )&lt;/li&gt;
&lt;li&gt;use a &lt;a href=&quot;http://dbpedia.org/resource/Uniform_Resource_Locator&quot; id=&quot;link-id11e7e5228&quot;&gt;URL&lt;/a&gt; via the @href attribute value to identify the location of the structured description of your resource, in this case it takes the form: http://linkeddata.uriburner.com/about/id/{scheme-or-protocol}/{your-hostname-or-authority}/{your-local-resource}&lt;/li&gt;
&lt;li&gt;for human visibility you may consider adding associating a button (as you do with Atom and RSS) with the URL above.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
That&amp;#39;s it! The discoverability (SDQ) of your content has just multiplied significantly, its structured description is now part of the Linked Data Cloud with a reference back to your site (which is now a bona fide HTTP based Linked Data &lt;a href=&quot;http://en.wikipedia.org/wiki/Data_Spaces&quot; id=&quot;link-id120a6e5c8&quot;&gt;Space&lt;/a&gt;).&lt;/p&gt;
&lt;h4&gt;Examples&lt;/h4&gt;

&lt;p&gt;
&lt;strong&gt;HTML+&lt;a href=&quot;http://dbpedia.org/resource/RDFa&quot; id=&quot;link-id11ae8fdc8&quot;&gt;RDFa&lt;/a&gt; based representation of a structured resource description:&lt;/strong&gt;
&lt;/p&gt;

&lt;blockquote&gt;
&amp;lt;link rel=&amp;quot;describedby&amp;quot; title=&amp;quot;Resource Description (HTML)&amp;quot;type=&amp;quot;text/html&amp;quot; href=&amp;quot;http://linkeddata.uriburner.com/about/id/http/example.org/xyz.html&amp;quot;/&amp;gt;&lt;/blockquote&gt;

&lt;p&gt;

&lt;strong&gt;JSON based representation of a structured resource description:&lt;/strong&gt;
&lt;/p&gt;
&lt;blockquote&gt;&amp;lt;link rel=&amp;quot;describedby&amp;quot; title=&amp;quot;Resource Description (JSON)&amp;quot;    type=&amp;quot;application/json&amp;quot;    href=&amp;quot;http://linkeddata.uriburner.com/about/id/http/example.org/xyz.html&amp;quot;/&amp;gt;&lt;/blockquote&gt;
&lt;p&gt;
&lt;strong&gt;N3 based representation of a structured resource description:&lt;/strong&gt;
&lt;/p&gt;

&lt;blockquote&gt;&amp;lt;link rel=&amp;quot;describedby&amp;quot; title=&amp;quot;Resource Description (N3)&amp;quot; type=&amp;quot;text/n3&amp;quot; href=&amp;quot;http://linkeddata.uriburner.com/about/id/http/example.org/xyz.html&amp;quot;/&amp;gt;&lt;/blockquote&gt;

&lt;p&gt;

&lt;strong&gt;RDF/XML based representations of a structured resource description&lt;/strong&gt;:

&lt;/p&gt;

&lt;blockquote&gt;&amp;lt;link rel=&amp;quot;describedby&amp;quot; title=&amp;quot;Resource Description (RDF/XML)&amp;quot; type=&amp;quot;application/rdf+xml&amp;quot; href=&amp;quot;http://linkeddata.uriburner.com/about/id/http/example.org/xyz.html&amp;quot;/&amp;gt;&lt;/blockquote&gt;

&lt;h3&gt;Content Consumer&lt;/h3&gt;
&lt;p&gt;As an end-user, obtaining a structured description of any resource published to an HTTP network boils down to the following steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;go to: http://uriburner.com&lt;/li&gt;
&lt;li&gt;drag the Page Metadata Bookmarklet link to your Browser&amp;#39;s toolbar&lt;/li&gt;
&lt;li&gt;whenever you encounter a resource of interest (e.g. an HTML page) simply click on the Bookmarklet&lt;/li&gt;
&lt;li&gt;you will be presented with an HTML representation of a structured resource description (i.e., identifier of the entity being described, its attributes, and its attribute values will be clearly presented).&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Examples&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
  &lt;a href=&quot;http://linkeddata.uriburner.com/about/id/entity/http/www.amazon.com/o/ASIN/1591842778&quot; id=&quot;link-id11ba54a48&quot;&gt;Description of a Book culled from an Amazon web page&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://linkeddata.uriburner.com/about/id/entity/http/www.bestbuy.com/site/Flip+Video+-+UltraHD+Camcorder+-+Black/Chrome/9281984.p?id=1218073822126&amp;amp;skuId=9281984&quot; id=&quot;link-id11f621848&quot;&gt;Description of a product offering culled from a BestBuy web page&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://linkeddata.uriburner.com/about/id/entity/http/reviews.cnet.com/digital-cameras/canon-eos-5d-mark/4505-6501_7-33280763.html?tag=tpr&quot; id=&quot;link-id115f27e08&quot;&gt;Description of a product (a camera) culled from a CNET web page&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://linkeddata.uriburner.com/about/id/entity/http/cgi.ebay.com/23PORT-Canon-SLR-EOS-5D-Mark-II-Body-Only-New_W0QQitemZ140367785136QQcategoryZ31388QQcmdZViewItem#Offer&quot; id=&quot;link-id120b4b258&quot;&gt;Description of the same CNET product as an Offer on eBay&lt;/a&gt; (exposed by the description above via seeAlso property value).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are a developer, you can simply perform an HTTP operation request (from your development environment of choice) using any of the URL patterns presented below:&lt;/p&gt;
&lt;a id=&quot;HTML:&quot;&gt; &lt;/a&gt;&lt;strong&gt;HTML:

 &lt;/strong&gt;
&lt;ul&gt;
   &lt;li&gt; &lt;tt&gt;curl -I -H &amp;quot;Accept: text/html&amp;quot; http://linkeddata.uriburner.com/about/id/{scheme}/{authority}/{local-path} &lt;/tt&gt;
&lt;/li&gt;
&lt;/ul&gt;
 &lt;h4&gt;
&lt;a id=&quot;JSON:&quot;&gt; &lt;/a&gt;JSON:&lt;/h4&gt;
 &lt;ul&gt;
   &lt;li&gt; &lt;tt&gt;curl -I -H &amp;quot;Accept: application/json&amp;quot; http://linkeddata.uriburner.com/about/id/{scheme}/{authority}/{local-path} &lt;/tt&gt; &lt;/li&gt;
   &lt;li&gt; &lt;tt&gt;curl http://linkeddata.uriburner.com/about/data/json/{scheme}/{authority}/{local-path}&lt;/tt&gt;
&lt;/li&gt;
 &lt;/ul&gt;
&lt;h4&gt;
            &lt;a id=&quot;Notation_3_N3:&quot;&gt;
      &lt;/a&gt;Notation 3 (N3):&lt;/h4&gt;
&lt;ul&gt;
            &lt;li&gt;
              &lt;tt&gt;curl -I -H &amp;quot;Accept: text/n3&amp;quot; http://linkeddata.uriburner.com/about/id/{scheme}/{authority}/{local-path}  &lt;/tt&gt; &lt;/li&gt;
&lt;li&gt;
              &lt;tt&gt;curl http://linkeddata.uriburner.com/about/data/n3/{scheme}/{authority}/{local-path}&lt;/tt&gt;
&lt;/li&gt;
&lt;/ul&gt;
    &lt;ul&gt;
            &lt;li&gt;
              &lt;tt&gt;curl -I -H &amp;quot;Accept: text/turtle&amp;quot; http://linkeddata.uriburner.com/about/id/{scheme}/{authority}/{local-path}&lt;/tt&gt; &lt;/li&gt;
&lt;li&gt;
              &lt;tt&gt;curl http://linkeddata.uriburner.com/about/data/ttl/{scheme}/{authority}/{local-path}  &lt;/tt&gt;            &lt;/li&gt;
&lt;/ul&gt;
    &lt;h4&gt;
            &lt;a id=&quot;RDFXML:&quot;&gt;
      &lt;/a&gt;RDF/XML:&lt;/h4&gt;
&lt;ul&gt;
            &lt;li&gt;
              &lt;tt&gt;curl -I -H &amp;quot;Accept: application/rdf+xml&amp;quot; http://linkeddata.uriburner.com/about/id/{scheme}/{authority}/{local-path}  &lt;/tt&gt; &lt;/li&gt;
&lt;li&gt;
              &lt;tt&gt;curl http://linkeddata.uriburner.com/about/data/xml/{scheme}/{authority}/{local-path}  &lt;/tt&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;URIBurner is a &amp;quot;deceptively simple&amp;quot; solution for cost-effective exploitation of HTTP based Linked Data meshes. It doesn&amp;#39;t require any programming or customization en route to immediately realizing its virtues. &lt;/p&gt;
&lt;p&gt; If you like what URIBurner offers, but prefer to leverage its capabilities within your domain -- such that  resource description URLs reside in your domain, all you have to do is perform the following steps:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
  &lt;a href=&quot;http://download.openlinksw.com/virtwiz/&quot; id=&quot;link-id1158f8658&quot;&gt;download a copy of Virtuoso&lt;/a&gt; (for local desktop, workgroup,  or data center installation) or&lt;/li&gt;
  &lt;li&gt;instantiate &lt;a href=&quot;http://www.openlinksw.com/dataspace/dav/wiki/Main/VirtInstallationEC2&quot; id=&quot;link-id11e03e558&quot;&gt;Virtuoso via the Amazon EC2 Cloud&lt;/a&gt; &lt;/li&gt;
  &lt;li&gt;enable the Sponger Middleware component via the RDF Mapper VAD package (which includes &lt;a href=&quot;http://www.openlinksw.com/dataspace/dav/wiki/Main/VirtSpongerCartridgeSupportedDataSources&quot; id=&quot;link-id1205ffe78&quot;&gt;cartridges for over 30 different resources types&lt;/a&gt;)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When you install your own URIBurner instances, you also have the ability to perform customizations that increase resource description fidelity in line with your specific needs. All you need to do is develop a custom extractor cartridge and/or meta cartridge. &lt;/p&gt;
&lt;h2&gt;Related:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&quot;http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSponger&quot; id=&quot;link-id120582118&quot;&gt; Virtuoso Sponger Middleware&lt;/a&gt; -- (technology behind &lt;a href=&quot;http://uriburner.com&quot; id=&quot;link-id11b634448&quot;&gt;URIBurner Service&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://virtuoso.openlinksw.com/screencasts/virtuoso-rdf-middleware3.swf&quot; id=&quot;link-id12082e958&quot;&gt;Animation demonstrating how the Virtuoso Sponger works&lt;/a&gt;.&lt;/li&gt;

&lt;/ul&gt;</description></item><item><title>Revisiting HTTP based Linked Data (Update 1 - Demo Video Links Added)</title><guid>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2010-03-04#1611</guid><comments>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?id=1611#comments</comments><pubDate>Thu, 04 Mar 2010 15:16:14 GMT</pubDate><description>&lt;p&gt;Motivation for this post arose from a series of Twitter exchanges between &lt;a href=&quot;http://ouseful.wordpress.com/about/#this&quot; id=&quot;link-id115699ae8&quot;&gt;Tony Hirst&lt;/a&gt; and I, in relation to his &lt;a href=&quot;http://dbpedia.org/resource/Blog&quot; id=&quot;link-id11a0cbc08&quot;&gt;blog&lt;/a&gt; post titled: &lt;a href=&quot;http://ouseful.wordpress.com/2010/03/03/so-what-is-it-about-linked-data-that-makes-it-linked-data%e2%84%a2/&quot; id=&quot;link-id1158f8ce8&quot;&gt;So What Is It About Linked Data that Makes it Linked Data™ ?&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;At the end of the marathon session, it was clear to &lt;a href=&quot;http://myopenlink.net/dataspace/person/kidehen#this&quot; id=&quot;link-id11557da58&quot;&gt;me&lt;/a&gt; that a blog post was required for future reference, at the very least :-)&lt;/p&gt;
&lt;h3&gt;What is &lt;a href=&quot;http://dbpedia.org/resource/Linked_Data&quot; id=&quot;link-id11a7ee3a8&quot;&gt;Linked Data&lt;/a&gt;?&lt;/h3&gt;
&lt;p&gt;&amp;quot;&lt;a href=&quot;http://dbpedia.org/resource/Reference_(computer_science)&quot; id=&quot;link-id11a682338&quot;&gt;Data Access by Reference&lt;/a&gt;&amp;quot; mechanism for Data Objects (or Entities) on HTTP networks. It enables you to Identify a Data Object and Access its structured Data Representation via a single Generic HTTP scheme based Identifier (HTTP &lt;a href=&quot;http://dbpedia.org/resource/Uniform_Resource_Identifier&quot; id=&quot;link-id125037288&quot;&gt;URI&lt;/a&gt;). Data Object representation formats may vary; but in all cases, they are &lt;a href=&quot;http://dbpedia.org/resource/Hypermedia&quot; id=&quot;link-id115548f78&quot;&gt;hypermedia&lt;/a&gt; oriented, fully structured,  and negotiable within the &lt;a href=&quot;http://dbpedia.org/resource/Context_%28language_use%29&quot; id=&quot;link-id11c955888&quot;&gt;context&lt;/a&gt; of a client-server message exchange.&lt;/p&gt;
&lt;h3&gt;Why is it Important?&lt;/h3&gt;
&lt;p&gt;
&lt;a href=&quot;http://dbpedia.org/resource/Information&quot; id=&quot;link-id125154778&quot;&gt;Information&lt;/a&gt; makes the world tick!&lt;/p&gt;
&lt;p&gt;Information doesn&amp;#39;t exist without data to contextualize.&lt;/p&gt;
&lt;p&gt;Information is inaccessible without a projection (presentation) medium. &lt;/p&gt;
&lt;p&gt;All information (without exception, when produced by humans) is subjective. Thus, to truly maximize the innate heterogeneity of collective human intelligence, loose coupling of our information and associated data sources is imperative.&lt;/p&gt;
&lt;h3&gt;How is Linked Data Delivered?&lt;/h3&gt;
&lt;p&gt;Linked Data is exposed to HTTP networks (e.g. &lt;a href=&quot;http://dbpedia.org/resource/World_Wide_Web&quot; id=&quot;link-id125321238&quot;&gt;World Wide Web&lt;/a&gt;) via hypermedia resources bearing structured representations of data object descriptions. Remember, you have a single Identifier abstraction (generic HTTP URI) that embodies: Data Object Name and Data Representation Location (aka &lt;a href=&quot;http://dbpedia.org/resource/Uniform_Resource_Locator&quot; id=&quot;link-id1249a7a88&quot;&gt;URL&lt;/a&gt;).&lt;/p&gt;
&lt;h3&gt;How are Linked Data Object Representations Structured?&lt;/h3&gt;
&lt;p&gt;A structured representation of data exists when an &lt;a href=&quot;http://dbpedia.org/resource/Entity&quot; id=&quot;link-id1250630d8&quot;&gt;Entity&lt;/a&gt; (Datum), its Attributes, and its Attribute Values are clearly discernible. In the case of a Linked Data Object, structured descriptions take the form of a hypermedia based &lt;a href=&quot;http://dbpedia.org/resource/Entity-attribute-value_model&quot; id=&quot;link-id126ed7608&quot;&gt;Entity&lt;/a&gt;-Attribute-Value (EAV) graph pictorial -- where each Entity, its Attributes, and its Attribute Values (optionally) are identified using Generic HTTP URIs. &lt;/p&gt;
&lt;p&gt;Examples of structured data representation formats (content types) associated with Linked Data Objects include:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;text/html&lt;/li&gt;
  &lt;li&gt;text/turtle&lt;/li&gt;
  &lt;li&gt;text/n3&lt;/li&gt;
  &lt;li&gt;application/json&lt;/li&gt;
  &lt;li&gt;application/rdf+xml&lt;/li&gt;
  &lt;li&gt;Others &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;How Do I Create Linked Data oriented Hypermedia Resources?&lt;/h3&gt;
&lt;p&gt;You markup resources by expressing distinct entity-attribute-value statements (basically these a 3-tuple records) using a variety of notations:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;(X)HTML+&lt;a href=&quot;http://dbpedia.org/resource/RDFa&quot; id=&quot;link-id1252975b8&quot;&gt;RDFa&lt;/a&gt;,&lt;/li&gt;
  &lt;li&gt;
  &lt;a href=&quot;http://n2.talis.com/wiki/RDF_JSON_Specification&quot; id=&quot;link-id115015458&quot;&gt;JSON&lt;/a&gt;,&lt;/li&gt;
  &lt;li&gt;
  &lt;a href=&quot;http://www.dajobe.org/2004/01/turtle/&quot; id=&quot;link-id116458478&quot;&gt;Turtle&lt;/a&gt;,&lt;/li&gt;
  &lt;li&gt;
  &lt;a href=&quot;http://www.w3.org/DesignIssues/Notation3&quot; id=&quot;link-id11a62f9f8&quot;&gt;N3&lt;/a&gt;,&lt;/li&gt;
  &lt;li&gt;
  &lt;a href=&quot;http://swdev.nokia.com/trix/trix.html&quot; id=&quot;link-id11a8f56b8&quot;&gt;TriX&lt;/a&gt;,&lt;/li&gt;
  &lt;li&gt;
  &lt;a href=&quot;http://www4.wiwiss.fu-berlin.de/bizer/TriG/&quot; id=&quot;link-id117156978&quot;&gt;TriG&lt;/a&gt;,&lt;/li&gt;
  &lt;li&gt;
  &lt;a href=&quot;http://www.w3.org/TR/REC-rdf-syntax/&quot; id=&quot;link-id126f52a58&quot;&gt;RDF/XML&lt;/a&gt;, and&lt;/li&gt;
  &lt;li&gt;Others (for instance you can use Atom data format extensions to model EAV graph as per OData initiative from Microsoft).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can achieve this task using any of the following approaches:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Notepad&lt;/li&gt;
  &lt;li&gt;WYSIWYG Editor &lt;/li&gt;
  &lt;li&gt;Transformation of Database Records via Middleware&lt;/li&gt;
  &lt;li&gt;Transformation of XML based &lt;a href=&quot;http://dbpedia.org/resource/World_Wide_Web&quot;&gt;Web&lt;/a&gt; Services output via Middleware&lt;/li&gt;
  &lt;li&gt;Transformation of other Hypermedia Resources via Middleware&lt;/li&gt;
  &lt;li&gt;Transformation of non Hypermedia Resources via Middleware&lt;/li&gt;
  &lt;li&gt;Use a platform that delivers all of the above.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Practical Examples of Linked Data Objects Enable&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Describe Who You Are, What You Offer, and What You Need via your structured profile, then leave your HTTP network to perform the REST (serendipitous discovery of relevant things)&lt;/li&gt;
  &lt;li&gt;Identify (via map overlay) all items of interest based on a 2km+ radious of my current location (this could include vendor offerings or services sought by existing or future customers)&lt;/li&gt;
  &lt;li&gt;Share the latest and greatest family photos with family members *only* without forcing them to signup for Yet Another Web 2.0 service or Social Network&lt;/li&gt;
  &lt;li&gt;No repetitive signup and username and password based login sequences per Web 2.0 or Mobile Application combo&lt;/li&gt;
  &lt;li&gt;Going beyond imprecise Keyword Search to the new frontier of Precision Find - Example, Find Data Objects associated with the keywords: Tiger, while enabling the seeker disambiguate across the &amp;quot;Who&amp;quot;, &amp;quot;What&amp;quot;, &amp;quot;Where&amp;quot;, &amp;quot;When&amp;quot; dimensions (with negation capability)&lt;/li&gt;
  &lt;li&gt;Determine how two Data Objects are Connected - person to person, person to subject matter etc. (LinkedIn outside the walled garden)&lt;/li&gt;
  &lt;li&gt;Use any resource address (e.g &lt;a href=&quot;http://dbpedia.org/resource/Blog&quot; id=&quot;link-id124fd8118&quot;&gt;blog&lt;/a&gt; or bookmark URL) as the conduit into a Data Object mesh that exposes all associated Entities and their social network relationships&lt;/li&gt;
  &lt;li&gt;Apply patterns (social dimensions) above to traditional enterprise data sources in combination (optionally) with external data without compromising security etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;How Do &lt;a href=&quot;http://www.openlinksw.com/dataspace/organization/openlink#this&quot; id=&quot;link-id124fd0d98&quot;&gt;OpenLink Software&lt;/a&gt; Products Enable Linked Data Exploitation?&lt;/h3&gt;
&lt;p&gt;Our data access middleware heritage (which spans 16+ years) has enabled us to assemble a rich portfolio of coherently integrated products that enable cost-effective evaluation and utilization of Linked Data,	 without writing a single line of code, or exposing you to the hidden, but extensive admin and configuration costs. Post installation, the benefits of Linked Data simply materialize (along the lines described above).&lt;/p&gt;
&lt;p&gt;Our main Linked Data oriented products include:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
  &lt;a href=&quot;http://ode.openlinksw.com&quot; id=&quot;link-id125058d68&quot;&gt;OpenLink Data Explorer&lt;/a&gt; -- visualizes Linked Data or Linked Data transformed &amp;quot;on the fly&amp;quot; from hypermedia and non hypermedia data sources &lt;/li&gt;
  &lt;li&gt;
  &lt;a href=&quot;http://uriburner.com&quot; id=&quot;link-id1251db6a8&quot;&gt;URIBurner&lt;/a&gt; -- a &amp;quot;deceptively simple&amp;quot; solution that enables the generation of Linked Data &amp;quot;on the fly&amp;quot; from a broad collection of data sources and resource types&lt;/li&gt;
  &lt;li&gt;
  &lt;a href=&quot;http://ods.openlinksw.com/wiki/ODS/&quot; id=&quot;link-id1252caae8&quot;&gt;OpenLink Data Spaces&lt;/a&gt; -- a platform for enterprises and individuals that enhances distributed collaboration via Linked Data driven virtualization of data across its native and/or 3rd party content manager for: Blogs, Wikis, Shared Bookmarks, Discussion Forums, Social Networks etc&lt;/li&gt;
  &lt;li&gt;
  &lt;a href=&quot;http://virtuoso.openlinksw.com/overview/index.htm&quot; id=&quot;link-id124809b58&quot;&gt;OpenLink Virtuoso&lt;/a&gt; -- a secure and high-performance native hybrid data server (Relational, RDF-Graph, Document models) that includes in-built Linked Data transformation middleware (aka. Sponger). &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Related&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;
  &lt;a href=&quot;http://www.ietf.org/rfc/rfc2616.txt&quot; id=&quot;link-id125306d78&quot;&gt;Hypertext Transfer Protocol 1.1 RFC&lt;/a&gt;
&lt;/li&gt;
  &lt;li&gt;
  &lt;a href=&quot;http://www.odata.org/docs/%5BMC-APDSU%5D.htm#_Toc246716495&quot; id=&quot;link-id11c948e98&quot;&gt;Open Data Protocol Glossary&lt;/a&gt;
&lt;/li&gt;
  &lt;li&gt;
  &lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1543&quot; id=&quot;link-id126fae278&quot;&gt;Simple Explanation of RDF and Linked Data Dynamics&lt;/a&gt;
&lt;/li&gt;
  &lt;li&gt;
  &lt;a href=&quot;http://www.openlinksw.com/weblog/public/search.vspx?blogid=127&amp;amp;q=linked%20data%0D%0A&amp;amp;type=text&amp;amp;output=html&quot; id=&quot;link-id1252e0018&quot;&gt;Collection of post from the past about Linked Data&lt;/a&gt;
&lt;/li&gt;
  &lt;li&gt;
  &lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1584&quot; id=&quot;link-id124fefea8&quot;&gt;Are We There Yet Re. Web++?&lt;/a&gt; -- includes link to &lt;a href=&quot;http://itc.conversationsnetwork.org/shows/detail4233.html&quot; id=&quot;link-id125188078&quot;&gt;podcast conversation with Jon Udell&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.ted.com/talks/gary_flake_is_pivot_a_turning_point_for_web_exploration.html&quot; id=&quot;link-id11a501c28&quot;&gt;Web of Linked Data Pivoting Demo from TED&lt;/a&gt; -- by Microsoft&amp;#39;s Gary Flake
&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.youtube.com/watch?v=G29DBIEcIuQ&quot; id=&quot;link-id1204fff18&quot;&gt;Microsoft Pivot atop Virtuoso Quad Store&amp;#39;s Faceted Browser Engine&lt;/a&gt;-- My Demonstration of EAV model transcending data representation variations (i.e., RDF&amp;#39;s EAV data model data served up in Microsoft CXML data representation format).
&lt;/li&gt; 
&lt;/ul&gt;</description></item><item><title>Re-introducing the Virtuoso Virtual Database Engine </title><guid>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2010-02-17#1608</guid><comments>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?id=1608#comments</comments><pubDate>Wed, 17 Feb 2010 21:38:01 GMT</pubDate><description>&lt;p&gt;In recent times a lot of the commentary and focus re. &lt;a href=&quot;http://virtuoso.openlinksw.com&quot; id=&quot;link-id16a22f48&quot;&gt;Virtuoso&lt;/a&gt; has centered on the RDF Quad Store and &lt;a href=&quot;http://dbpedia.org/resource/Linked_Data&quot; id=&quot;link-id112d82a0&quot;&gt;Linked Data&lt;/a&gt;. What sometimes gets overlooked is the sophisticated &lt;a href=&quot;http://dbpedia.org/resource/Virtual_Database&quot; id=&quot;link-id6493cc8&quot;&gt;Virtual Database&lt;/a&gt; Engine that provides the foundation for all of Virtuoso&amp;#39;s &lt;a href=&quot;http://dbpedia.org/resource/Data&quot;&gt;data&lt;/a&gt; integration capabilities.&lt;/p&gt;

&lt;p&gt;In this post I provide a brief re-introduction to this essential aspect of Virtuoso.&lt;/p&gt;

&lt;h3&gt;What is it?&lt;/h3&gt;

&lt;p&gt;This component of Virtuoso is known as the Virtual Database Engine (VDBMS). It provides transparent high-performance and secure access to disparate data sources that are external to Virtuoso. It enables federated access and integration of data hosted by any &lt;a href=&quot;http://dbpedia.org/resource/Open_Database_Connectivity&quot; id=&quot;link-id13c26008&quot;&gt;ODBC&lt;/a&gt;- or &lt;a href=&quot;http://dbpedia.org/resource/Java_Database_Connectivity&quot; id=&quot;link-id166604c0&quot;&gt;JDBC&lt;/a&gt;-accessible &lt;a href=&quot;http://dbpedia.org/resource/Relational_database_management_system&quot; id=&quot;link-id139dfdb8&quot;&gt;RDBMS&lt;/a&gt;, RDF Store, XML database, or Document (Free Text)-oriented Content Management System. In addition, it facilitates integration with &lt;a href=&quot;http://dbpedia.org/resource/World_Wide_Web&quot;&gt;Web&lt;/a&gt; Services (SOAP-based SOA RPCs or REST-fully accessible Web Resources). &lt;/p&gt;

&lt;h3&gt;Why is it important?&lt;/h3&gt;

&lt;p&gt;In the most basic sense, you shouldn&amp;#39;t need to upgrade your existing database engine version simply because your current DBMS and Data Access Driver combo isn&amp;#39;t compatible with ODBC-compliant desktop tools such as Microsoft Access, Crystal Reports, BusinessObjects, Impromptu, or other of ODBC, JDBC, &lt;a href=&quot;http://dbpedia.org/resource/ADO.NET&quot; id=&quot;link-id13c7ceb8&quot;&gt;ADO&lt;/a&gt;.NET, or OLE DB-compliant applications. Simply place Virtuoso in front of your so-called &amp;quot;legacy database,&amp;quot; and let it deliver the compliance levels sought by these tools&lt;/p&gt;

&lt;p&gt;In addition, it&amp;#39;s important to note that today&amp;#39;s enterprise, through application evolution, company mergers, or acquisitions, is often faced with disparately-structured data residing in any number of line-of-business-oriented data silos. Compounding the problem is the exponential growth of user-generated data via new social media-oriented collaboration tools and platforms. For companies to cost-effectively harness the opportunities accorded by the increasing intersection between line-of-business applications and social media, virtualization of data silos must be achieved, and this virtualization must be delivered in a manner that doesn&amp;#39;t prohibitively compromise performance or completely undermine security at either the enterprise or personal level. Again, this is what you get by simply installing Virtuoso.&lt;/p&gt;


&lt;h3&gt;How do I use it?&lt;/h3&gt;

&lt;p&gt;The VDBMS may be used in a variety of ways, depending on the data access and integration task at hand. Examples include: &lt;/p&gt;

&lt;h4&gt;Relational Database Federation&lt;/h4&gt;

&lt;p&gt;You can make a single ODBC, JDBC, ADO.NET, OLE DB, or XMLA connection to multiple ODBC- or JDBC-accessible RDBMS data sources, concurrently, with the ability to perform intelligent distributed joins against externally-hosted database tables.  For instance, you can join internal human resources data against internal sales and external stock market data, even when the HR team uses &lt;a href=&quot;http://dbpedia.org/resource/Oracle_Database&quot; id=&quot;link-id16706720&quot;&gt;Oracle&lt;/a&gt;, the Sales team uses &lt;a href=&quot;http://dbpedia.org/resource/IBM_Informix&quot; id=&quot;link-ide5a15c8&quot;&gt;Informix&lt;/a&gt;, and the Stock Market figures come from &lt;a href=&quot;http://dbpedia.org/resource/Ingres&quot; id=&quot;link-id13c0e138&quot;&gt;Ingres&lt;/a&gt;!&lt;/p&gt;

&lt;h4&gt;Conceptual Level Data Access using the RDF Model&lt;/h4&gt;

&lt;p&gt;You can construct RDF Model-based Conceptual Views atop Relational Data Sources. This is about generating HTTP-based &lt;a href=&quot;http://dbpedia.org/resource/Entity-attribute-value_model&quot; id=&quot;link-id115150f8&quot;&gt;Entity&lt;/a&gt;-Attribute-Value (E-A-V) graphs using data culled &amp;quot;on the fly&amp;quot; from native or external data sources (Relational Tables/Views, XML-based Web Services, or User Defined Types).&lt;/p&gt;

&lt;p&gt;You can also derive RDF Model-based Conceptual Views from Web Resource transformations &amp;quot;on the fly&amp;quot; -- the Virtuoso &lt;a href=&quot;http://virtuoso.openlinksw.com/Whitepapers/html/VirtSpongerWhitePaper.html&quot; id=&quot;link-id1675db50&quot;&gt;Sponger&lt;/a&gt; (RDFizing middleware component) enables you to generate RDF Model Linked Data via a RESTful Web Service or within the process pipeline of the &lt;a href=&quot;http://dbpedia.org/resource/SPARQL&quot; id=&quot;link-id166b8d90&quot;&gt;SPARQL&lt;/a&gt; query engine (i.e., you simply use the &lt;a href=&quot;http://dbpedia.org/resource/Uniform_Resource_Locator&quot; id=&quot;link-id167d00c8&quot;&gt;URL&lt;/a&gt; of a Web Resource in the FROM clause of a SPARQL query).&lt;/p&gt;

&lt;p&gt;It&amp;#39;s important to note that Views take the form of HTTP links that serve as both Data Source Names and Data Source Addresses. This enables you to query and explore relationships across entities (i.e., People, Places, and other Real World Things) via HTTP clients (e.g., Web Browsers) or directly via SPARQL Query Language constructs transmitted over HTTP.&lt;/p&gt;

&lt;h4&gt;Conceptual Level Data Access using ADO.NET &lt;a href=&quot;http://dbpedia.org/resource/Entity&quot; id=&quot;link-id13c6bb60&quot;&gt;Entity&lt;/a&gt; &lt;a href=&quot;http://dbpedia.org/resource/ADO.NET_Entity_Framework&quot; id=&quot;link-id16ad3f68&quot;&gt;Frameworks&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;As an alternative to RDF, Virtuoso can expose ADO.NET Entity Frameworks-based Conceptual Views over Relational Data Sources. It achieves this by generating Entity Relationship graphs via its native ADO.NET Provider, exposing all externally attached ODBC- and JDBC-accessible data sources. In addition, the ADO.NET Provider supports direct access to Virtuoso&amp;#39;s native RDF database engine, eliminating the need for resource intensive Entity Frameworks model transformations.&lt;/p&gt;

&lt;h3&gt;Related&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
  &lt;a href=&quot;http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtLinkRemoteTables&quot; id=&quot;link-id1183acd8&quot;&gt;Attaching ODBC or JDBC accessible Relational Tables to Virtuoso&lt;/a&gt;
&lt;/li&gt;
  &lt;li&gt;
  &lt;a href=&quot;http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtRdb2RDFViewsGeneration#One-Click%20Linked%20Data%20Generation%20&amp;amp;%20Deployment&quot; id=&quot;link-id113f2fd8&quot;&gt;Using an HTML based Wizard to Generate RDF based Linked Views over Relational Tables&lt;/a&gt;
&lt;/li&gt;
  &lt;li&gt;
  &lt;a href=&quot;http://www.youtube.com/watch?v=bj7AbJ0ZYCk&amp;amp;feature=channel&quot; id=&quot;link-id16ad4480&quot;&gt;Screencast Demonstrating Wizard based generation of RDF based Linked Data Views Part 1&lt;/a&gt;
&lt;/li&gt;
  &lt;li&gt;
  &lt;a href=&quot;http://www.youtube.com/watch?v=yXNlcISS0aY&amp;amp;feature=channel&quot; id=&quot;link-id114eb720&quot;&gt;Screencast Demonstrating Wizard based generation of RDF based Linked Data Views Part 1&lt;/a&gt;
&lt;/li&gt;
  &lt;li&gt;
  &lt;a href=&quot;http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSponger&quot; id=&quot;link-id116e5810&quot;&gt;Generating RDF based Linked Data from non RDF based Web Resources via the Sponger&lt;/a&gt;
&lt;/li&gt;
  &lt;li&gt;
  &lt;a href=&quot;http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtAdoNet35Provider&quot; id=&quot;link-id16706118&quot;&gt;Building ADO.NET based Entity Frameworks Views over Relational Data&lt;/a&gt;
&lt;/li&gt;
  &lt;li&gt;
  &lt;a href=&quot;http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSilverlightSPARQLExample&quot; id=&quot;link-id139c1278&quot;&gt;Building Silverlight Rich Internat Applicaitons using ADO.NET, Entity Frameworks, and RDF based Linked Data&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</description></item><item><title>Getting The Linked Data Value Pyramid Layers Right (Update #2)</title><guid>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2010-01-31#1595</guid><comments>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?id=1595#comments</comments><pubDate>Sun, 31 Jan 2010 22:46:47 GMT</pubDate><description>&lt;p&gt; One of the real problems that pervades all routes to &lt;a href=&quot;http://dbpedia.org/resource/Linked_Data&quot; id=&quot;link-id13539328&quot;&gt;Linked Data&lt;/a&gt; value prop. incomprehension stems from the layering of its value pyramid; especially when communicating with -initially detached- end-users. &lt;/p&gt; &lt;p&gt; &lt;strong&gt;Note to &lt;a href=&quot;http://dbpedia.org/resource/World_Wide_Web&quot; id=&quot;link-id0x1c85f498&quot;&gt;Web&lt;/a&gt; Programmers:&lt;/strong&gt; Linked Data is about &lt;a href=&quot;http://dbpedia.org/resource/Data&quot; id=&quot;link-id0x1c85f650&quot;&gt;Data&lt;/a&gt; (Wine) and not about Code (Fish). Thus, it isn&amp;#39;t a &amp;quot;programmer only zone&amp;quot;, far from it. More than anything else, its inherently inclusive and spreads its participation net widely across: Data Architects, Data Integrators, Power Users, &lt;a href=&quot;http://dbpedia.org/resource/Knowledge&quot; id=&quot;link-id13600d98&quot;&gt;Knowledge&lt;/a&gt; Workers, &lt;a href=&quot;http://dbpedia.org/resource/Information&quot; id=&quot;link-id149f8230&quot;&gt;Information&lt;/a&gt; Workers, Data Analysts, etc.. Basically, everyone that can &amp;quot;click on a link&amp;quot; is invited to this particular party; remember, it is about &amp;quot;Linked Data&amp;quot; not &amp;quot;Linked Code&amp;quot;, after all. :-) &lt;/p&gt; &lt;h3&gt;Problematic Value Pyramid Layering&lt;/h3&gt; &lt;p&gt; Here is an example of a Linked Data value pyramid that I am stumbling across --with some frequency-- these days (note: 1 being the pyramid apex):&lt;/p&gt; &lt;ol&gt; &lt;li&gt; &lt;a href=&quot;http://dbpedia.org/resource/SPARQL&quot; id=&quot;link-id10e85538&quot;&gt;SPARQL&lt;/a&gt; Queries&lt;/li&gt; &lt;li&gt; &lt;a href=&quot;http://dbpedia.org/resource/Resource_Description_Framework&quot; id=&quot;link-id1495b578&quot;&gt;RDF&lt;/a&gt; Data Stores&lt;/li&gt; &lt;li&gt; RDF Data Sets &lt;/li&gt; &lt;li&gt; &lt;a href=&quot;http://dbpedia.org/resource/Hypertext_Transfer_Protocol&quot; id=&quot;link-id158e4be0&quot;&gt;HTTP&lt;/a&gt; scheme URIs&lt;/li&gt; &lt;/ol&gt; &lt;p&gt; Basically, Linked Data deployment (assigning de-referencable HTTP URIs to DBMS records, their attributes, and attribute values [optionally] ) is occurring last. Even worse, this happens in the &lt;a href=&quot;http://dbpedia.org/resource/Context_%28language_use%29&quot; id=&quot;link-id626d988&quot;&gt;context&lt;/a&gt; of Linked Open Data oriented endeavors, resulting in nothing but confusion or inadvertent perpetuation of the overarching pragmatically challenged &amp;quot;&lt;a href=&quot;http://dbpedia.org/resource/Semantic_Web&quot; id=&quot;link-id111774b8&quot;&gt;Semantic Web&lt;/a&gt;&amp;quot; stereotype. &lt;/p&gt; &lt;p&gt; As you can imagine, hitting SPARQL as your introduction to Linked Data is akin to hitting &lt;a href=&quot;http://dbpedia.org/resource/SQL&quot; id=&quot;link-id151f9938&quot;&gt;SQL&lt;/a&gt; as your introduction to Relational Database Technology, neither is an elevator-style value prop. relay mechanism. &lt;/p&gt; &lt;p&gt; In the relational realm, killer demos always started with desktop productivity tools (spreadsheets, report-writers, SQL QBE tools etc.) accessing, relational data sources en route to unveiling the &amp;quot;Productivity&amp;quot; and &amp;quot;Agility&amp;quot; value prop. that such binding delivered i.e., the desktop application (clients) and the databases (servers) are distinct, but operating in a mutually beneficial manner to all, courtesy of a data access standards such as &lt;a href=&quot;http://dbpedia.org/resource/Open_Database_Connectivity&quot; id=&quot;link-id1519aac0&quot;&gt;ODBC&lt;/a&gt; (Open Database Connectivity). &lt;/p&gt; &lt;p&gt; In the Linked Data realm, learning to embrace and extend best practices from the relational dbms realm remains a challenge, a lot of this has to do with hangovers from a misguided perception that RDF databases will somehow completely replace &lt;a href=&quot;http://dbpedia.org/resource/Relational_database_management_system&quot; id=&quot;link-id110dec88&quot;&gt;RDBMS&lt;/a&gt; engines, rather than compliment them. Thus, you have a counter productive variant of NIH (Not Invented Here) in play, taking us to the dreaded realm of: Break the Pot and You Own It (exemplified by the 11+ year Semantic Web Project comprehension and appreciation odyssey). &lt;/p&gt; &lt;p&gt; From my vantage point, here is how I believe the &lt;a href=&quot;http://virtuoso.openlinksw.com/presentations/Creating_Deploying_Exploiting_Linked_Data2/images/URI_Data_Source_SemWeb.png&quot; id=&quot;link-id1592f528&quot;&gt;Linked Data value pyramid should be layered&lt;/a&gt;, especially when communicating the essential value prop.: &lt;/p&gt; &lt;ol&gt; &lt;li&gt; HTTP URLs -- LINKs to documents (Reports) that users already appreciate, across the public Web and/or Intranets &lt;/li&gt; &lt;li&gt; HTTP URIs -- typically not visually distinguishable from the URLs, so use the Data exposed by de-referencing a &lt;a href=&quot;http://dbpedia.org/resource/Uniform_Resource_Locator&quot; id=&quot;link-id11209ce8&quot;&gt;URL&lt;/a&gt; to show how each Data Item (&lt;a href=&quot;http://dbpedia.org/resource/Entity&quot; id=&quot;link-id1449b558&quot;&gt;Entity&lt;/a&gt; or Object) is uniquely identified by a Generic HTTP &lt;a href=&quot;http://dbpedia.org/resource/Uniform_Resource_Identifier&quot; id=&quot;link-id112065f8&quot;&gt;URI&lt;/a&gt;, and how clicking on the said URIs leads to more structured metadata bearing documents available in a variety of data representation formats, thereby enabling flexible data presentation (e.g., smarter HTML pages) &lt;/li&gt; &lt;li&gt; SPARQL -- when a user appreciates the data representation and presentation dexterity of a Generic HTTP URI, they will be more inclined to drill down an additional layer to unravel how HTTP URIs mechanically deliver such flexibility &lt;/li&gt; &lt;li&gt; RDF Data Stores -- at this stage the user is now interested data sources behind the Generic HTTP URIs, courtesy of natural desire to tweak the data presented in the report; thus, you now have an engaged user ready to absorb the &amp;quot;How Generic HTTP URIs Pull This Off&amp;quot; message &lt;/li&gt; &lt;li&gt;RDF Data Sets -- while attempting to make or tweak HTTP URIs, users become curious about the actual data loaded into the RDF Data Store, which is where data sets used to create powerful Lookup Data Spaces (e.g., &lt;a href=&quot;http://dbpedia.org/resource/DBpedia&quot; id=&quot;link-id110675c0&quot;&gt;DBpedia&lt;/a&gt;) come into play such as those from the &lt;a href=&quot;http://www4.wiwiss.fu-berlin.de/bizer/pub/lod-datasets_2009-07-14.html&quot; id=&quot;link-id11127ff8&quot;&gt;LOD&lt;/a&gt; constellation as exemplified by &lt;a href=&quot;http://wiki.dbpedia.org/Datasets&quot; id=&quot;link-id14a2fad8&quot;&gt;DBpedia (extractions from Wikipedia)&lt;/a&gt;.&lt;/li&gt; &lt;/ol&gt; &lt;h3&gt;Related&lt;/h3&gt; &lt;ul&gt; &lt;li&gt; &lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1565&quot; id=&quot;link-id149c7048&quot;&gt;Exploring the Linked Data Value Proposition&lt;/a&gt; &lt;/li&gt; &lt;li&gt; &lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1543&quot; id=&quot;link-id14998f98&quot;&gt;Simple Explanation of Linked Data &amp;amp; RDF Dynamics&lt;/a&gt; &lt;/li&gt; &lt;li&gt; &lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1546&quot; id=&quot;link-id114fbd58&quot;&gt;What is the Linked Data Meme About?&lt;/a&gt; &lt;/li&gt; &lt;li&gt; &lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1547&quot; id=&quot;link-id1447ada0&quot;&gt;Linked Data &amp;amp; Data Item Identifiers (Identity)&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;

</description></item><item><title>Getting The Linked Data Value Pyramid Layers Right (Update #2)</title><guid>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2010-01-31#1593</guid><comments>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?id=1593#comments</comments><pubDate>Sun, 31 Jan 2010 22:44:04 GMT</pubDate><description>&lt;p&gt;
One of the real problems that pervades all routes to &lt;a href=&quot;http://dbpedia.org/resource/Linked_Data&quot; id=&quot;link-id13539328&quot;&gt;Linked Data&lt;/a&gt; value prop. incomprehension stems from the layering of its value pyramid; especially when communicating with -initially detached- end-users. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Note to &lt;a href=&quot;http://dbpedia.org/resource/World_Wide_Web&quot;&gt;Web&lt;/a&gt; Programmers:&lt;/strong&gt; Linked Data is about &lt;a href=&quot;http://dbpedia.org/resource/Data&quot;&gt;Data&lt;/a&gt; (Wine) and not about Code (Fish). Thus, it isn&amp;#39;t a &amp;quot;programmer only zone&amp;quot;, far from it. More than anything else, its inherently inclusive and spreads its participation net widely across: Data Architects, Data Integrators, Power Users, &lt;a href=&quot;http://dbpedia.org/resource/Knowledge&quot; id=&quot;link-id13600d98&quot;&gt;Knowledge&lt;/a&gt; Workers, &lt;a href=&quot;http://dbpedia.org/resource/Information&quot; id=&quot;link-id149f8230&quot;&gt;Information&lt;/a&gt; Workers, Data Analysts, etc.. Basically, everyone that can &amp;quot;click on a link&amp;quot; is invited to this particular party; remember, it is about &amp;quot;Linked Data&amp;quot; not &amp;quot;Linked Code&amp;quot;, after all. :-)
&lt;/p&gt;
&lt;h3&gt;Problematic Value Pyramid Layering&lt;/h3&gt;
&lt;p&gt;
Here is an example of a Linked Data value pyramid that I am stumbling across --with some frequency-- these days (note: 1 being the pyramid apex):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;a href=&quot;http://dbpedia.org/resource/SPARQL&quot; id=&quot;link-id10e85538&quot;&gt;SPARQL&lt;/a&gt; Queries&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://dbpedia.org/resource/Resource_Description_Framework&quot; id=&quot;link-id1495b578&quot;&gt;RDF&lt;/a&gt; Data Stores&lt;/li&gt;
&lt;li&gt;
RDF Data Sets
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://dbpedia.org/resource/Hypertext_Transfer_Protocol&quot; id=&quot;link-id158e4be0&quot;&gt;HTTP&lt;/a&gt; scheme URIs&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Basically, Linked Data deployment (assigning de-referencable HTTP URIs to DBMS records, their attributes, and attribute values [optionally] ) is occurring last. Even worse, this happens in the &lt;a href=&quot;http://dbpedia.org/resource/Context_%28language_use%29&quot; id=&quot;link-id626d988&quot;&gt;context&lt;/a&gt; of Linked Open Data oriented endeavors, resulting in nothing but confusion or inadvertent perpetuation of the overarching pragmatically challenged &amp;quot;&lt;a href=&quot;http://dbpedia.org/resource/Semantic_Web&quot; id=&quot;link-id111774b8&quot;&gt;Semantic Web&lt;/a&gt;&amp;quot; stereotype.
&lt;/p&gt;
&lt;p&gt;
As you can imagine, hitting SPARQL as your introduction to Linked Data is akin to hitting &lt;a href=&quot;http://dbpedia.org/resource/SQL&quot; id=&quot;link-id151f9938&quot;&gt;SQL&lt;/a&gt; as your introduction to Relational Database Technology, neither is an elevator-style value prop. relay mechanism.
&lt;/p&gt;
&lt;p&gt;
In the relational realm, killer demos always started with desktop productivity tools (spreadsheets, report-writers, SQL QBE tools etc.) accessing, relational data sources en route to unveiling the &amp;quot;Productivity&amp;quot; and &amp;quot;Agility&amp;quot; value prop. that such binding delivered i.e., the desktop application (clients) and the databases (servers) are distinct, but operating in a mutually beneficial manner to all, courtesy of a data access standards such as &lt;a href=&quot;http://dbpedia.org/resource/Open_Database_Connectivity&quot; id=&quot;link-id1519aac0&quot;&gt;ODBC&lt;/a&gt; (Open Database Connectivity).
&lt;/p&gt;
&lt;p&gt;
In the Linked Data realm, learning to embrace and extend best practices from the relational dbms realm remains a challenge, a lot of this has to do with hangovers from a misguided perception that RDF databases will somehow completely replace &lt;a href=&quot;http://dbpedia.org/resource/Relational_database_management_system&quot; id=&quot;link-id110dec88&quot;&gt;RDBMS&lt;/a&gt; engines, rather than compliment them. Thus, you have a counter productive variant of NIH (Not Invented Here) in play, taking us to the dreaded realm of: Break the Pot and You Own It (exemplified by the 11+ year Semantic Web Project comprehension and appreciation odyssey).
&lt;/p&gt;
&lt;p&gt;
From my vantage point, here is how I believe the &lt;a href=&quot;http://virtuoso.openlinksw.com/presentations/Creating_Deploying_Exploiting_Linked_Data2/images/URI_Data_Source_SemWeb.png&quot; id=&quot;link-id1592f528&quot;&gt;Linked Data value pyramid should be layered&lt;/a&gt;, especially when communicating the essential value prop.:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
HTTP URLs  -- LINKs to documents (Reports) that users already appreciate, across the public Web and/or Intranets
&lt;/li&gt;
&lt;li&gt;
HTTP URIs -- typically not visually distinguishable from the URLs, so use the Data exposed by de-referencing a &lt;a href=&quot;http://dbpedia.org/resource/Uniform_Resource_Locator&quot; id=&quot;link-id11209ce8&quot;&gt;URL&lt;/a&gt; to show how each Data Item (&lt;a href=&quot;http://dbpedia.org/resource/Entity&quot; id=&quot;link-id1449b558&quot;&gt;Entity&lt;/a&gt; or Object) is uniquely identified by a Generic HTTP &lt;a href=&quot;http://dbpedia.org/resource/Uniform_Resource_Identifier&quot; id=&quot;link-id112065f8&quot;&gt;URI&lt;/a&gt;, and how clicking on the said URIs leads to more structured metadata bearing documents available in a variety of data representation formats, thereby enabling flexible data presentation (e.g., smarter HTML pages)
&lt;/li&gt;
&lt;li&gt;
SPARQL -- when a user appreciates the data representation and presentation dexterity of a Generic HTTP URI, they will be more inclined to drill down an additional layer to unravel how HTTP URIs mechanically deliver such flexibility
&lt;/li&gt;
&lt;li&gt;
RDF Data Stores -- at this stage the user is now interested data sources behind the Generic HTTP URIs, courtesy of natural desire to tweak the data presented in the report; thus, you now have an engaged user ready to absorb the &amp;quot;How Generic HTTP URIs Pull This Off&amp;quot; message
&lt;/li&gt;
&lt;li&gt;RDF Data Sets -- while attempting to make or tweak HTTP URIs, users become curious about the actual data loaded into the RDF Data Store, which is where data sets used to create powerful Lookup Data Spaces (e.g., &lt;a href=&quot;http://dbpedia.org/resource/DBpedia&quot; id=&quot;link-id110675c0&quot;&gt;DBpedia&lt;/a&gt;) come into play such as those from the &lt;a href=&quot;http://www4.wiwiss.fu-berlin.de/bizer/pub/lod-datasets_2009-07-14.html&quot; id=&quot;link-id11127ff8&quot;&gt;LOD&lt;/a&gt; constellation as exemplified by &lt;a href=&quot;http://wiki.dbpedia.org/Datasets&quot; id=&quot;link-id14a2fad8&quot;&gt;DBpedia (extractions from Wikipedia)&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Related&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1565&quot; id=&quot;link-id149c7048&quot;&gt;Exploring the Linked Data Value Proposition&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1543&quot; id=&quot;link-id14998f98&quot;&gt;Simple Explanation of Linked Data &amp;amp; RDF Dynamics&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1546&quot; id=&quot;link-id114fbd58&quot;&gt;What is the Linked Data Meme About?&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
  &lt;a href=&quot;http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1547&quot; id=&quot;link-id1447ada0&quot;&gt;Linked Data &amp;amp; Data Item Identifiers (Identity)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description></item>
</channel>
</rss>
