<?xml version="1.0" encoding="UTF-8" ?>
<!--RDF based XML document generated By OpenLink Virtuoso-->
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
 <rss:channel xmlns:rss="http://purl.org/rss/1.0/" rdf:about="https://ods-qa.openlinksw.com/enews2/5/">
  <rss:title>demo&#39;s Feeds</rss:title>
  <rss:description>demo&#39;s Feeds</rss:description>
  <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Demo Demoff &lt;demo@ods-qa.openlinksw.com&gt;</dc:creator>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2026-05-07T02:40:26Z</dc:date>
  <rss:link>https://ods-qa.openlinksw.com/enews2/5/</rss:link>
  <dc:language xmlns:dc="http://purl.org/dc/elements/1.1/">en-us</dc:language>
  <rss:items>
   <rdf:Seq>
      <rdf:li rdf:resource="http://kidehen.blogspot.com/2015/12/openlink-structured-data-sniffer-osds.html" />
      <rdf:li rdf:resource="http://kidehen.blogspot.com/2015/11/generating-linked-data-from-open-data.html" />
      <rdf:li rdf:resource="http://kidehen.blogspot.com/2015/09/what-happened-to-semantic-web.html" />
      <rdf:li rdf:resource="http://kidehen.blogspot.com/2015/08/beyond-bookmarking.html" />
      <rdf:li rdf:resource="http://kidehen.blogspot.com/2015/08/dbpedia-pay-as-you-go-pago-cloud-edition.html" />
      <rdf:li rdf:resource="http://kidehen.blogspot.com/2015/08/virtuoso-pay-as-you-go-cloud-edition.html" />
      <rdf:li rdf:resource="http://kidehen.blogspot.com/2015/07/situation-analysis-never-day-goes-by.html" />
      <rdf:li rdf:resource="http://kidehen.blogspot.com/2015/07/conceptual-data-virtualization-across.html" />
      <rdf:li rdf:resource="http://kidehen.blogspot.com/2015/06/importing-data-into-google-spreadsheet.html" />
      <rdf:li rdf:resource="http://kidehen.blogspot.com/2015/06/importing-data-into-microsoft-excel-via.html" />
      <rdf:li rdf:resource="http://kidehen.blogspot.com/2015/06/data-silos-are-killing-data-flow.html" />
      <rdf:li rdf:resource="http://kidehen.blogspot.com/2015/06/why-do-i-need-to-pay-for-odbc-jdbc-and.html" />
      <rdf:li rdf:resource="http://kidehen.blogspot.com/2015/06/sending-digitally-signed-email-using.html" />
      <rdf:li rdf:resource="http://kidehen.blogspot.com/2015/03/experiencing-power-of-virtuoso-in-5.html" />
      <rdf:li rdf:resource="http://kidehen.blogspot.com/2015/03/configuring-odbc-dsn-for-world-wide-web.html" />
   </rdf:Seq>
  </rss:items>
 </rss:channel>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://kidehen.blogspot.com/2015/12/openlink-structured-data-sniffer-osds.html">
  <rss:title>OpenLink Structured Data Sniffer (OSDS)</rss:title>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">What is it?  A browser extension for Chrome and Opera (with Firefox, Safari, and Edge ports planned) that unveils metadata oriented structured data embedded within HTML documents. Why is this important?  It provides a productive solution for discovering the impact of document metadata on search engine results page entries. Basically, at the core of any search engine optimization endeavor lies the need for agile management of document metadata. How do I use it?  Installation is simply a case of downloading (using the ZIP archive option) a collection of files from the OSDS Github page [1] and then following these instructions: Extract zip archive  downloaded from Github to a local directory/folder Start Chrome or Opera Go to Preferences-&gt; Extensions Hatch the &quot;Developer mode&quot; checkbox Click on &quot;Load Unpacked Extension..&quot; Select the directory/folder into which you extracted your zip archive  OSDS extension will be added to your browser&#39;s installed extensions list. Having installed the OSDS browser extension, simply visit an HTML document location on the Web to experience the functionality added to your browser by this extension.  Sample pages you can visit to experience things first hand: http://www.openlinksw.com -- OpenLink Home Page https://www.pinterest.com/kidehen/schemaorg-related/ -- Collection of sites known to include metadata using content formats such as HTML5+Microdata, JSON-LD, RDFa, POSH (Plain Old Semantic HTML), and Turtle  https://delicious.com/kidehen/google_custom_search -- Collection of Custom Google Search Engines scoped to specific Entity Types in Google&#39;s content index.  Here&#39;s a silent screencast that showcases use of OSDS to explore pages listed from a Custom Google Search Engine [2] in relation to the keyword pattern: Black Friday.  Here a few screenshots illustrating the OSDS experience: JSON-LD based Metadata Example HTML5+Microdata based Metadata Example RDFa based Metadata Example Conclusion Any person or organization that owns a web-site is perennially challenged in regards to content evaluation and update cycles aimed and increasing and sustaining visibility.  In OSDS you&#39;re simply a mouse-click away from a solution to the aforementioned challenge. Most important of all, it reveals the nature and implications of a World Wide Web of entity relationships where then nature of entity and relationship type semantics are both human and machine comprehensible.  Links Chrome Web Store Listing OpenLink Structured Data Sniffer Github Project OpenLink Structured Data Sniffer Home Page Custom Google Search Engine Collection  What Happened to The Semantic Web? </dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2>
What is it?&nbsp;</h2>
A browser extension for Chrome and Opera (with Firefox, Safari, and Edge ports planned) that unveils metadata oriented structured data embedded within HTML documents.<br />
<br />
<h2>
Why is this important?&nbsp;</h2>
It provides a productive solution for discovering the impact of document metadata on search engine results page entries. Basically, at the core of any search engine optimization endeavor lies the need for agile management of document metadata.<br />
<br />
<h2>
How do I use it?&nbsp;</h2>
Installation is simply a case of downloading (using the ZIP archive option) a collection of files from the OSDS Github page [1] and then following these instructions:<br />
<br />
<ol>
<li>Extract zip archive &nbsp;downloaded from Github to a local directory/folder</li>
<li>Start Chrome or Opera</li>
<li>Go to Preferences-&gt; Extensions</li>
<li>Hatch the &quot;Developer mode&quot; checkbox</li>
<li>Click on &quot;Load Unpacked Extension..&quot;</li>
<li>Select the directory/folder into which you extracted your zip archive&nbsp;</li>
<li>OSDS extension will be added to your browser&#39;s installed extensions list.</li>
</ol>
<div>
Having installed the OSDS browser extension, simply visit an HTML document location on the Web to experience the functionality added to your browser by this extension.&nbsp;</div>
<div>
<br /></div>
<div>
Sample pages you can visit to experience things first hand:</div>
<div>
<ul>
<li><a href="http://www.openlinksw.com/">http://www.openlinksw.com</a> -- OpenLink Home Page</li>
<li><a href="https://www.pinterest.com/kidehen/schemaorg-related/">https://www.pinterest.com/kidehen/schemaorg-related/ </a>-- Collection of sites known to include metadata using content formats such as HTML5+Microdata, JSON-LD, RDFa, POSH (Plain Old Semantic HTML), and Turtle&nbsp;</li>
<li><a href="https://delicious.com/kidehen/google_custom_search">https://delicious.com/kidehen/google_custom_search</a> -- Collection of Custom Google Search Engines scoped to specific Entity Types in Google&#39;s content index.&nbsp;</li>
</ul>
<div>
Here&#39;s a silent screencast that showcases use of OSDS to explore pages listed from a Custom Google Search Engine [2] in relation to the keyword pattern: Black Friday.&nbsp;</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/sO0AzsGN378/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/sO0AzsGN378?feature=player_embedded" width="320" /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Here a few screenshots illustrating the OSDS experience:</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<i>JSON-LD based Metadata Example</i></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5G8UYjACId8_T7w6HCECYdStYNpTiaoHkekIzJv-KdNzm6hW57f4zoxWiLSQlgu27SGJeMNd1KFv0YmTm83h6ouVPHK2ZIpOQKX-U0wiWTIeND68S029sOBnxwKi4l4ASP6AfBdMZfyC0uIQ/s1600/osds-jsonld-example.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="451" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5G8UYjACId8_T7w6HCECYdStYNpTiaoHkekIzJv-KdNzm6hW57f4zoxWiLSQlgu27SGJeMNd1KFv0YmTm83h6ouVPHK2ZIpOQKX-U0wiWTIeND68S029sOBnxwKi4l4ASP6AfBdMZfyC0uIQ/s640/osds-jsonld-example.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<i><br class="Apple-interchange-newline" />HTML5+Microdata based Metadata Example</i></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHnjvibpZit_Zw84Qc-PAPLf-mb3zaCEhyphenhyphenapuTOOc9LUgcN0sop9oRDyCIWyadu8-PUygSr3Xy5g0HZZSyEpQd43e6CZZXgRBlT2-qRG4GsR3Z41kvi0ZL3v2oPuppSMCHGHDdo8yoan_G9yA/s1600/osds-microdata-example.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="428" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHnjvibpZit_Zw84Qc-PAPLf-mb3zaCEhyphenhyphenapuTOOc9LUgcN0sop9oRDyCIWyadu8-PUygSr3Xy5g0HZZSyEpQd43e6CZZXgRBlT2-qRG4GsR3Z41kvi0ZL3v2oPuppSMCHGHDdo8yoan_G9yA/s640/osds-microdata-example.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br class="Apple-interchange-newline" /></div>
<i>RDFa based Metadata Example</i><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUuE0UVS-isY8Dx1_hPAsr9VhxgKery7KSzxR_gq41Weq6VtVCDGeAxZ9rZrogqMAWh6GtoWeB_8US1ClKHtb_ez73bP8ML2094erQuJdq4a05ExLAvLJht6-GtyGnACABX27ecTGQU5CCgDg/s1600/osds-rdfa-example.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="457" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUuE0UVS-isY8Dx1_hPAsr9VhxgKery7KSzxR_gq41Weq6VtVCDGeAxZ9rZrogqMAWh6GtoWeB_8US1ClKHtb_ez73bP8ML2094erQuJdq4a05ExLAvLJht6-GtyGnACABX27ecTGQU5CCgDg/s640/osds-rdfa-example.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<h2>
Conclusion</h2>
<div>
Any person or organization that owns a web-site is perennially challenged in regards to content evaluation and update cycles aimed and increasing and sustaining visibility.&nbsp;</div>
<div>
<br /></div>
<div>
In OSDS you&#39;re simply a mouse-click away from a solution to the aforementioned challenge. Most important of all, it reveals the nature and implications of a World Wide Web of entity relationships where then nature of entity and relationship type semantics are both human and machine comprehensible.&nbsp;</div>
<h2>
Links</h2>
</div>
<div>
<ol>
<li><a href="https://chrome.google.com/webstore/detail/openlink-structured-data/egdaiaihbdoiibopledjahjaihbmjhdj">Chrome Web Store Listing</a></li>
<li><a href="https://github.com/openlink/structured-data-sniffer">OpenLink Structured Data Sniffer Github Project</a></li>
<li><a href="http://osds.openlinksw.com/">OpenLink Structured Data Sniffer Home Page</a></li>
<li><a href="https://delicious.com/kidehen/google_custom_search">Custom Google Search Engine Collection&nbsp;</a></li>
<li><a href="http://kidehen.blogspot.com/2015/09/what-happened-to-semantic-web.html">What Happened to The Semantic Web?&nbsp;</a></li>
</ol>
</div>
<br />]]></content:encoded>
  <rss:link>http://kidehen.blogspot.com/2015/12/openlink-structured-data-sniffer-osds.html</rss:link>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2015-12-02T23:05:00Z</dc:date>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://kidehen.blogspot.com/2015/11/generating-linked-data-from-open-data.html">
  <rss:title>Generating 5-Star Linked Data from Open Data </rss:title>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Increasing Costs of Data Capitalization Publishing data using standardized (&quot;open&quot;) document formats has become a global endeavor. Many governments are coming to appreciate their stockpiled, even mothballed, data as a new form of capital, fueling economic growth. [1] At the same time, data is still wildly misunderstood [2], even though there&#39;s broad acceptance of its pivotal role as the underlying facilitator of computation, in all forms. By implication, Open Data and Linked Data are also generally misunderstood, obscuring the mutually beneficial nature of both forms of data representation. Open Data — data published in a document format that conforms to an open standard, e.g., CSV [3] — creates a powerful context for understanding the virtues of Linked (Open) Data — data published using particular open standards including the RDF Abstract Language and HTTP-based Hyperlinks [4]. Together, Open Data and Linked Data aid the understanding and appreciation of several facts: Entity relationships represented as &quot;records in a table&quot; (a/k/a &quot;relational tables&quot;) aren&#39;t the only way to represent structured data. Hyperlinks offer a powerful keying mechanism for data identification and discovery. The RDF Abstract Language (not to be confused with the RDF/XML notation and serialization format) provides a powerful mechanism for data representation and comprehension. Unfortunately, as long as data remains so misunderstood, direct and indirect costs of accessing, integrating, and managing this data will continue to rise, exponentially. What can we do to lower these costs? In this post, I am going to demonstrate productive transformation of Open Data into Linked Data, which is more easily used, repurposed, further transformed, and extended than the original Open Data (never mind its precursor Silo or Closed Data) — massively turbo-charging the economic growth potential held therein. Tools used to perform these live demos include: OpenLink Virtuoso -- specifically its Linked Data Transformation Middleware Module (a/k/a &quot;Sponger&quot;) [5] URIBurner Service -- a Live Virtuoso Instance with the &quot;Sponger&quot; Module enabled [6], [7] SPARQL Query Service -- associated with the URIBurner service Native Faceted Browser Service -- Virtuoso component for visual exploration of Entity Descriptions [8] LinkedIn Influencers Google Spreadsheet -- a Google spreadsheet, accessible using a CSV URL Global Economic Complexity Rankings, 2013 -- a CSV document published by MIT&#39;s Observatory of Economic Complexity Index Ranking Project How is it done? Start with an interesting CSV file; for instance, one of these Open Data documents: MIT&#39;s Observatory of Economic Complexity Index (OECI) Global Economic Complexity Rankings for 2013 Google Spreadsheet about LinkedIn Influencers In the examples that follow, I use the flexible nature of hyperlinks (HTTP URIs) to instruct an HTTP-compliant server to locate or generate documents containing data, in the desired format. In this particular case, I&#39;ll use URIs constructed as service-specific requests that instruct URIBurner to transform target CSV files to RDF-based Linked Data. OECI Open Data Transformation URI Examples OECI Data Access &amp; Transformation Alternative Faceted Browsing Page Specific Row from the CSV document in Linked (Open) Data form Vocabulary of Terms -- automatically generated from CSV Table URIBurner Transformation Page Showing Class Definition Generated from CSV URIBurner Transformation Page Showing an Instance of a Class Generated from CSV LinkedIn Influencer Spreadsheet Transformation Examples CSV Data Access &amp; Transformation Alternative Faceted Browsing Page Specific Row from the CSV document in Linked (Open) Data form RDF Language Class definition, automatically generated from CSV Table URIBurner Transformation Page Showing Class Definition Generated from CSV URIBurner Transformation Page Showing an Instance of a Class Generated from CSV Query Linked Data using SPARQL Query Language As part of the transformations performed above, there is a &quot;database persistence&quot; aspect that provides additional benefits. Basically, because the data is stored in Virtuoso (an RDBMS that supports SQL relational tables and RDF relational property graphs), you can query all the imported data using SPARQL -- which enables powerful data access and integration that leverage the nature (semantics) of entity relationship types represented by RDF statements. The following SQL+SPARQL statements, when executed against a Virtuoso RDBMS, create reasoning and inference rules that may then be used to produce aesthetically-pleasing, human-friendly names, that are anchored by the raw, machine-friendly HTTP URIs generated by the URIBurner transformations: SPARQL INSERT { GRAPH &lt;facets&gt; { &lt;https://docs.google.com/spreadsheets/d/1A40AKb4ATpUFvXL3h8qgTt1SZs4LpUv0xyguMcSR4co/export?gid=0&amp;format=csv#Name&gt; rdfs:subPropertyOf virtrdf:label . &lt;http://atlas.media.mit.edu/en/rankings/country/2013/?download=true#Country&gt; rdfs:subPropertyOf virtrdf:label . } } ; -- Make a rule from the graph: RDFS_RULE_SET (&#39;facets&#39;, &#39;facets&#39;); -- extend it to other rules, e.g., virtrdf-label RDFS_RULE_SET (&#39;facets&#39;, &#39;virtrdf-label&#39;);  P_SCORE_INIT (); MIT OECI CSV Data Query Example SPARQL Query Result Page (MIT OECI Open Data) SPARQL Query Definition Page (same query and data as above) SPARQL Query targeting MIT OECI CSV Document Google Spreadsheet CSV Data Query Example SPARQL Query Result Page (LinkedIn Influencers Google Spreadsheet Open Data) SPARQL Query Definition Page (same query and data as above) SPARQL Query targeting Google Spreadsheet via CSV-format URI Important points to note, in regards to the SPARQL demo links above: You can use a single SPARQL Query with the DEFINE get:soft &quot;replace&quot; pragma to initiate an complete extract, transform, and load workflow en route to generating RDF-based Linked Data from a CSV based Open Data document  The SPARQL query result pages include key fields/columns that hold hyperlink (HTTP URI) values functioning as Super Keys -- these keys provide inbuilt drill-down and view option choices to the user, e.g., pivoting from a relational tables view to an RDF relational property graphs view. Conclusion Spreadsheets remain powerful productivity tools for data analysis. As an additional bonus, Google Spreadsheet successfully extends the power of spreadsheet analysis to the Web, and provides CSV-format rendition of all data found therein. By combining Google Spreadsheet data access with the &quot;Data Junction Box&quot; prowess of Virtuoso, anyone can produce a Google Spreadsheet and share its CSV-format URI, en route to automatic transformation into 5-Star Linked (Open) Data. Net effect: a productive approach to creation, sharing, and semantically-enhanced integration of data from disparate data sources. Note: You can achieve these powerful and productive data access and integration goals by using your own private Virtuoso instance (on an internal network or in the cloud), or by joining the crowd sharing the public instance behind the URIBurner data transformation service. Links Economic Impact of Open Data Understanding Data About Comma Separated Values (CSV) Document Format About Linked Data Virtuoso Home Page URIBurner Home Page Animated Illustration of URIBurner Transformations Experiencing the Power of Virtuoso via its Native Faceted Browser Related What Happened to the Semantic Web? Data &amp; Semantics Relational Tables &amp; Graphs? </dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2>
Increasing Costs of Data Capitalization</h2>
<br />
Publishing data using standardized (&quot;open&quot;) document formats has become a global endeavor. Many governments are coming to appreciate their stockpiled, even mothballed, data as a new form of capital, fueling economic growth. [<a href="https://medium.com/@ODIHQ/the-economic-impact-of-open-data-what-do-we-already-know-1a119c1958a0" target="_blank">1</a>]<br />
<br />
At the same time, <i>data</i> is still wildly misunderstood [<a href="http://www.slideshare.net/kidehen/understanding-29894555" target="_blank">2</a>], even though there&#39;s broad acceptance of its pivotal role as the underlying facilitator of computation, in all forms. By implication, <i>Open Data</i> and <i>Linked Data</i> are also generally misunderstood, obscuring the mutually beneficial nature of both forms of data representation.<br />
<br />
<i><b>Open</b> Data</i> — data published in a document format that conforms to an open standard, e.g., CSV [<a href="http://www.openlinksw.com/c/9X7VNWH" target="_blank">3</a>] — creates a powerful context for understanding the virtues of <i><b>Linked</b> (Open) Data</i> — data published using particular open standards including the RDF Abstract Language and HTTP-based Hyperlinks [<a href="http://www.openlinksw.com/c/9DPP3ONM" target="_blank">4</a>].<br />
<br />
Together, <i>Open Data</i> and <i>Linked Data</i> aid the understanding and appreciation of several facts:<br />
<br />
<ul>
<li>Entity relationships represented as &quot;records in a table&quot; (a/k/a &quot;relational tables&quot;) aren&#39;t the only way to represent structured data.</li>
<li>Hyperlinks offer a powerful keying mechanism for data identification and discovery.</li>
<li>The RDF Abstract Language (not to be confused with the <code>RDF/XML</code> notation and serialization format) provides a powerful mechanism for data representation and comprehension.</li>
</ul>
<br />
Unfortunately, as long as <i>data</i> remains so misunderstood, direct and indirect costs of accessing, integrating, and managing this data will continue to rise, exponentially.<br />
<br />
<h2>
What can we do to lower these costs?</h2>
<br />
In this post, I am going to demonstrate <i><b>productive transformation of Open Data into Linked Data</b></i>, which is more easily used, repurposed, further transformed, and extended than the original Open Data (never mind its precursor Silo or Closed Data) — massively turbo-charging the economic growth potential held therein.<br />
<br />
<h3>
Tools used to perform these live demos include:</h3>
<ul>
<li><b>OpenLink Virtuoso</b> -- specifically its Linked Data Transformation Middleware Module (a/k/a &quot;Sponger&quot;) [<a href="http://virtuoso.openlinksw.com/" target="_blank">5</a>]</li>
<li><b>URIBurner Service</b> -- a Live Virtuoso Instance with the &quot;Sponger&quot; Module enabled [<a href="http://linkeddata.uriburner.com/" target="_blank">6</a>], [<a href="http://linkeddata.uriburner.com/sponger_architecture.vsp#how_it_works" target="_blank">7</a>]</li>
<li><b>SPARQL Query Service</b> -- associated with the URIBurner service</li>
<li><b>Native Faceted Browser Service</b> -- Virtuoso component for visual exploration of Entity Descriptions [<a href="http://kidehen.blogspot.com/2015/03/experiencing-power-of-virtuoso-in-5.html" target="_blank">8</a>]</li>
<li><b>LinkedIn Influencers Google Spreadsheet</b> -- a Google spreadsheet, accessible using a CSV URL</li>
<li><b>Global Economic Complexity Rankings, 2013</b> -- a CSV document published by MIT&#39;s Observatory of Economic Complexity Index Ranking Project</li>
</ul>
<br />
<h2>
How is it done?</h2>
Start with an interesting CSV file; for instance, one of these Open Data documents:<br />
<ul>
<li><a href="http://atlas.media.mit.edu/en/rankings/country/2013/">MIT&#39;s Observatory of Economic Complexity Index (OECI) Global Economic Complexity Rankings for 2013 </a></li>
<li><a href="https://docs.google.com/spreadsheets/d/1A40AKb4ATpUFvXL3h8qgTt1SZs4LpUv0xyguMcSR4co">Google Spreadsheet about LinkedIn Influencers</a></li>
</ul>
<br />
In the examples that follow, I use the flexible nature of hyperlinks (HTTP URIs) to instruct an HTTP-compliant server to locate or generate documents containing data, in the desired format. In this particular case, I&#39;ll use URIs constructed as service-specific requests that instruct URIBurner to transform target CSV files to RDF-based Linked Data.<br />
<br />
<h3>
OECI Open Data Transformation URI Examples</h3>
<ul>
<li><a href="http://linkeddata.uriburner.com/about/html/http://atlas.media.mit.edu/en/rankings/country/2013/?download=true" target="_blank">OECI Data Access &amp; Transformation</a></li>
<li><a href="http://linkeddata.uriburner.com/describe/?url=http%3A%2F%2Flinkeddata.uriburner.com%2Fabout%2Fid%2Fentity%2Fhttp%2Fatlas.media.mit.edu%2Fen%2Frankings%2Fcountry%2F2013%2F%3Fdownload%3Dtrue&amp;distinct=1" target="_blank">Alternative Faceted Browsing Page</a></li>
<li><a href="http://linkeddata.uriburner.com/describe/?url=http%3A%2F%2Flinkeddata.uriburner.com%2Fabout%2Fid%2Fentity%2Fhttp%2Fatlas.media.mit.edu%2Fen%2Frankings%2Fcountry%2F2013%2F%3Fdownload%3Dtrue%23row%253D2&amp;distinct=1">Specific Row from the CSV document in Linked (Open) Data form</a></li>
<li><a href="http://linkeddata.uriburner.com/describe/?url=http%3A%2F%2Fatlas.media.mit.edu%2Fen%2Frankings%2Fcountry%2F2013%2F%3Fdownload%3Dtrue%23ontology&amp;distinct=1">Vocabulary of Terms </a>-- automatically generated from CSV Table</li>
</ul>
<table style="border-spacing: 10px; margin-left: auto; margin-right: auto; padding: 10px; width: 90%;"><tbody>
<tr>    <th style="align: center; clear: both; text-align: center; text-align: center; vertical-align: top; width: 40%;"><br />
URIBurner Transformation Page<br />
<br />
Showing Class Definition Generated from CSV</th>    <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
URIBurner Transformation Page<br />
<br />
Showing an Instance of a Class Generated from CSV</th> </tr>
<tr>    <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMu4mIyyccVhSIOtiFi6jeYuW5v7tSbOT5PpNzEVklVC9K4uzk4jxoDCYto5nO28ZE3vHPYBK_hECzEwgptEs_XAvjHx7KfwYJzuefExhV6to-RYSzEChVg9Z51x9w8fMpJQjkUKKlMq4FlIk/s1600/Screen+Shot+2015-11-03+at+10.36.52+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="165" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMu4mIyyccVhSIOtiFi6jeYuW5v7tSbOT5PpNzEVklVC9K4uzk4jxoDCYto5nO28ZE3vHPYBK_hECzEwgptEs_XAvjHx7KfwYJzuefExhV6to-RYSzEChVg9Z51x9w8fMpJQjkUKKlMq4FlIk/s320/Screen+Shot+2015-11-03+at+10.36.52+AM.png" width="320" /><br />
</a></td>    <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikg9ZWIV5lvFqlQrf_ElRUB5ibK_qhI45zxi0m18wxqAIn2AJ6dOquP5lrb-slT4zEN0RrRr2biq-At5UQUyLBiVKYLq3DFvwsU8yCZ73LVFl3VLeJZk7rngZCGXT6_kYKneBfxR8PsFUBlXo/s1600/Screen+Shot+2015-11-03+at+10.37.33+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="164" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikg9ZWIV5lvFqlQrf_ElRUB5ibK_qhI45zxi0m18wxqAIn2AJ6dOquP5lrb-slT4zEN0RrRr2biq-At5UQUyLBiVKYLq3DFvwsU8yCZ73LVFl3VLeJZk7rngZCGXT6_kYKneBfxR8PsFUBlXo/s320/Screen+Shot+2015-11-03+at+10.37.33+AM.png" width="320" /><br />
</a></td> </tr>
</tbody></table>
<br />
<h3>
LinkedIn Influencer Spreadsheet Transformation Examples</h3>
<ul>
<li><a href="http://linkeddata.uriburner.com/about/html/https://docs.google.com/spreadsheets/d/1A40AKb4ATpUFvXL3h8qgTt1SZs4LpUv0xyguMcSR4co/export?gid=0&amp;format=csv" target="_blank">CSV Data Access &amp; Transformation</a></li>
<li><a href="http://linkeddata.uriburner.com/c/9D67WR5W" target="_blank">Alternative Faceted Browsing Page</a></li>
<li><a href="http://linkeddata.uriburner.com/c/9BQ76SWM" target="_blank">Specific Row from the CSV document in Linked (Open) Data form</a></li>
<li><a href="http://linkeddata.uriburner.com/c/9BX52OI3" target="_blank">RDF Language Class definition, automatically generated from CSV Table</a></li>
</ul>
<table style="border-spacing: 10px; margin-left: auto; margin-right: auto; padding: 10px; width: 90%;"><tbody>
<tr>    <th style="align: center; clear: both; text-align: center; text-align: center; vertical-align: top; width: 40%;"><br />
URIBurner Transformation Page<br />
<br />
Showing Class Definition Generated from CSV</th>    <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
URIBurner Transformation Page<br />
<br />
Showing an Instance of a Class Generated from CSV</th> </tr>
<tr>    <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDDXq2naY1yNvnLa7bJl8ZxDXAL5V0hyO_S7JnRj9yvb83fmNrHtXdAUS618UU_hu3P5Zby-RkNbi7z8oNgDFrt67llW6ynv9VfT5b0VUM7UUaFV1_QbdHWHetiJAq1_Lm76HNs1e8tkIbnrQ/s1600/Screen+Shot+2015-11-03+at+10.34.40+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="164" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDDXq2naY1yNvnLa7bJl8ZxDXAL5V0hyO_S7JnRj9yvb83fmNrHtXdAUS618UU_hu3P5Zby-RkNbi7z8oNgDFrt67llW6ynv9VfT5b0VUM7UUaFV1_QbdHWHetiJAq1_Lm76HNs1e8tkIbnrQ/s320/Screen+Shot+2015-11-03+at+10.34.40+AM.png" width="320" /><br />
</a></td>    <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij7_tVSSNRd8BwsQbONNZ3wFI0JfSkp9M4sDNtJDBUvqnfPRWnLzVhV9BL1wgWtnBo4YLEGBC6AznYqqJevdN6dkHinqSbiYhWZMgsCIyZHqJaM1Y7lloL0EJgJ5_Y_LprwlypRGaDeeAO7kY/s1600/Screen+Shot+2015-11-03+at+10.52.21+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="166" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij7_tVSSNRd8BwsQbONNZ3wFI0JfSkp9M4sDNtJDBUvqnfPRWnLzVhV9BL1wgWtnBo4YLEGBC6AznYqqJevdN6dkHinqSbiYhWZMgsCIyZHqJaM1Y7lloL0EJgJ5_Y_LprwlypRGaDeeAO7kY/s320/Screen+Shot+2015-11-03+at+10.52.21+AM.png" width="320" /><br />
</a></td> </tr>
</tbody></table>
<br />
<h3>
Query Linked Data using SPARQL Query Language</h3>
As part of the transformations performed above, there is a &quot;database persistence&quot; aspect that provides additional benefits. Basically, because the data is stored in Virtuoso (an RDBMS that supports SQL relational tables <i>and</i> RDF relational property graphs), you can query all the imported data using SPARQL -- which enables powerful data access and integration that leverage the nature (semantics) of entity relationship types represented by RDF statements.<br />
<br />
The following <code>SQL+SPARQL</code> statements, when executed against a Virtuoso RDBMS, create reasoning and inference rules that may then be used to produce aesthetically-pleasing, human-friendly names, that are anchored by the raw, machine-friendly HTTP URIs generated by the URIBurner transformations:<br />
<br />
<blockquote>
<pre><span style="font-family: &quot;courier new&quot; , &quot;courier&quot; , monospace; font-size: small;">SPARQL
   INSERT
      { GRAPH &lt;facets&gt; 
         {
            &lt;https://docs.google.com/spreadsheets/d/1A40AKb4ATpUFvXL3h8qgTt1SZs4LpUv0xyguMcSR4co/export?gid=0&amp;format=csv#Name&gt; 
               rdfs:subPropertyOf  virtrdf:label  .
            &lt;http://atlas.media.mit.edu/en/rankings/country/2013/?download=true#Country&gt; 
               rdfs:subPropertyOf  virtrdf:label  .
         }
      } ;

-- Make a rule from the graph:

RDFS_RULE_SET
   (&#39;facets&#39;, &#39;facets&#39;);

-- extend it to other rules, e.g., virtrdf-label

RDFS_RULE_SET
   (&#39;facets&#39;, &#39;virtrdf-label&#39;);</span>&nbsp;</pre>
</blockquote>
<blockquote>
<pre><span style="font-family: &quot;courier new&quot; , &quot;courier&quot; , monospace;">P_SCORE_INIT ();</span></pre>
</blockquote>
<br />
<h4>
MIT OECI CSV Data Query Example</h4>
<ul>
<li><a href="http://bit.ly/mit-oeci-opendata-csv-to-linkeddata-sparql-demo" target="_blank">SPARQL Query Result Page (MIT OECI Open Data)</a></li>
<li><a href="http://bit.ly/mit-oeci-opendata-csv-sparql-demo-query-def" target="_blank">SPARQL Query Definition Page (same query and data as above)</a></li>
</ul>
<table style="border-spacing: 10px; margin-left: auto; margin-right: auto; padding: 10px; width: 90%;"><tbody>
<tr>       <th colspan="2" style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
SPARQL Query targeting MIT OECI CSV Document</th>    </tr>
<tr>       <td colspan="2" style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_RO524RBHmtcFY3P5zYmoyqc5vV8ejreCVyYR6nT6R-XNj8NEuR_OU5voMzWxrvGMKmjvKfRxGjzXHH6C1OySMggdeMhqE9VDsSZD31dVzxRtJnuA68BQTdMq1wkWUdR-VEKbCueYf7z3wZQ/s1600/Screen+Shot+2015-11-03+at+10.20.03+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="166" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_RO524RBHmtcFY3P5zYmoyqc5vV8ejreCVyYR6nT6R-XNj8NEuR_OU5voMzWxrvGMKmjvKfRxGjzXHH6C1OySMggdeMhqE9VDsSZD31dVzxRtJnuA68BQTdMq1wkWUdR-VEKbCueYf7z3wZQ/s400/Screen+Shot+2015-11-03+at+10.20.03+AM.png" width="400" /><br />
</a></td>    </tr>
</tbody></table>
<br />
<br />
<h4>
Google Spreadsheet CSV Data Query Example</h4>
<ul>
<li><a href="http://bit.ly/linkedin-influencer-ranking-from-google-spreadsheet" target="_blank">SPARQL Query Result Page (LinkedIn Influencers Google Spreadsheet Open Data)</a></li>
<li><a href="http://bit.ly/linkedin-influencer-ranking-csv-query-definition" target="_blank">SPARQL Query Definition Page (same query and data as above)</a></li>
</ul>
<table style="border-spacing: 10px; margin-left: auto; margin-right: auto; padding: 10px; width: 90%;"><tbody>
<tr>       <th colspan="2" style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
SPARQL Query targeting Google Spreadsheet via CSV-format URI</th>    </tr>
<tr>       <td colspan="2" style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh20RUlu3BAJ_PNsHb_XqE-otH-CCNAW3Obh025mq7x0Iqo-q_OmBgvmAqaT93HloWYKyivwY8L17hIBHvJ_GKNbYS2vVlmsa1izSqOLKnMUi1Zd-tctJPCA_dDVbdOtJI8sjIMShSFWssoDbw/s1600/Screen+Shot+2015-11-02+at+2.03.23+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="96" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh20RUlu3BAJ_PNsHb_XqE-otH-CCNAW3Obh025mq7x0Iqo-q_OmBgvmAqaT93HloWYKyivwY8L17hIBHvJ_GKNbYS2vVlmsa1izSqOLKnMUi1Zd-tctJPCA_dDVbdOtJI8sjIMShSFWssoDbw/s400/Screen+Shot+2015-11-02+at+2.03.23+PM.png" width="400" /><br />
</a></td>    </tr>
</tbody></table>
<br />
Important points to note, in regards to the SPARQL demo links above:<br />
<br />
<ul>
<li>You can use a single SPARQL Query with the DEFINE get:soft &quot;replace&quot; pragma to initiate an complete extract, transform, and load workflow en route to generating RDF-based Linked Data from a CSV based Open Data document&nbsp;</li>
<li>The SPARQL query result pages include key fields/columns that hold hyperlink (HTTP URI) values functioning as Super Keys -- these keys provide inbuilt drill-down and view option choices to the user, e.g., pivoting from a <i>relational tables</i> view to an <i>RDF relational property graphs</i> view.</li>
</ul>
<br />
<br />
<h2>
Conclusion</h2>
Spreadsheets remain powerful productivity tools for data analysis. As an additional bonus, Google Spreadsheet successfully extends the power of spreadsheet analysis to the Web, and provides CSV-format rendition of all data found therein.<br />
<br />
By combining Google Spreadsheet data access with the &quot;Data Junction Box&quot; prowess of Virtuoso, anyone can produce a Google Spreadsheet and share its CSV-format URI, en route to automatic transformation into 5-Star Linked (Open) Data. Net effect: a productive approach to creation, sharing, and semantically-enhanced integration of data from disparate data sources.<br />
<br />
<b>Note:</b> You can achieve these powerful and productive data access and integration goals by using your own private Virtuoso instance (on an internal network or in the cloud), or by joining the crowd sharing the public instance behind the URIBurner data transformation service.<br />
<br />
<h2>
Links</h2>
<ol>
<li><a href="https://medium.com/@ODIHQ/the-economic-impact-of-open-data-what-do-we-already-know-1a119c1958a0" target="_blank">Economic Impact of Open Data</a></li>
<li><a href="http://www.slideshare.net/kidehen/understanding-29894555" target="_blank">Understanding Data</a></li>
<li><a href="http://www.openlinksw.com/c/9X7VNWH" target="_blank">About Comma Separated Values (CSV) Document Format</a></li>
<li><a href="http://www.openlinksw.com/c/9DPP3ONM" target="_blank">About Linked Data</a></li>
<li><a href="http://virtuoso.openlinksw.com/" target="_blank">Virtuoso Home Page</a></li>
<li><a href="http://linkeddata.uriburner.com/" target="_blank">URIBurner Home Page</a></li>
<li><a href="http://linkeddata.uriburner.com/sponger_architecture.vsp#how_it_works" target="_blank">Animated Illustration of URIBurner Transformations</a></li>
<li><a href="http://kidehen.blogspot.com/2015/03/experiencing-power-of-virtuoso-in-5.html" target="_blank">Experiencing the Power of Virtuoso via its Native Faceted Browser</a></li>
</ol>
<h2>
Related</h2>
<ul>
<li><a href="http://kidehen.blogspot.com/2015/09/what-happened-to-semantic-web.html" target="_blank">What Happened to the Semantic Web?</a></li>
<li><a href="http://kidehen.blogspot.com/2015/07/situation-analysis-never-day-goes-by.html" target="_blank">Data &amp; Semantics</a></li>
<li><a href="https://www.linkedin.com/pulse/relational-tables-graphs-kingsley-uyi-idehen">Relational Tables &amp; Graphs?</a>&nbsp;</li>
</ul>
]]></content:encoded>
  <rss:link>http://kidehen.blogspot.com/2015/11/generating-linked-data-from-open-data.html</rss:link>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2015-11-04T22:47:00Z</dc:date>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://kidehen.blogspot.com/2015/09/what-happened-to-semantic-web.html">
  <rss:title>What Happened to the Semantic Web? </rss:title>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Situation Analysis Over the last 15+ years, the same question about the Semantic Web has been posed innumerable times: &quot;Are we there yet?&quot; In this post, I will demonstrate that as expected [1][2], its arrival was without fanfare, but we are inarguably there. Semantic Web Illustration In recent times, major search engine vendors (Google, Microsoft, Yahoo!, and Yandex), in collaboration with the W3C and others, created a shared vocabulary referred to as schema.org [3]. This contribution to the ongoing evolution of the Web was an effort to include islands of structured data, constructed to be comprehensible by both humans and machines, within HTML documents. Rather than taking a &quot;bottom up&quot; approach, Schema.org went &quot;top down&quot; from the outset, and Web Masters were their chosen target audience. Schema.org doesn&#39;t mandate any specific notation for construction of these structured data islands, since it&#39;s basically an application of RDF&#39;s abstract language, and fundamentally represents structured data as subject-&gt;predicate-&gt;object sentences (&quot;triples&quot;) or Entity-Attribute-Value (EAV) data structures. By leveraging the fact that RDF Language is notation agnostic, structured data islands can be constructed and embedded within HTML documents using:  &quot;POSH&quot; (Plain Old Semantic HTML), HTML5+Microdata, RDFa, JSON-LD, RDF-Turtle, and others. As a consequence, no perceived problem with any specific notation gives cause to indict the entire project, and there is likewise no need to go on a distracting quest for a single golden notation. Examples of Semantic Web Impact? Google (a major backer of Schema.org) has been indexing HTML documents — including their structured data islands — since the Google project began, so they provide a nice basis for demonstrations of practical utility. Google provides a &quot;Custom Search Engine&quot; (CSE) service that enables users to pre-refine searches over Google&#39;s massive index of documents found on the web; for example, a user might set their CSE to only include documents which used terms from Schema.org in their structured data islands. Using that functionality, I&#39;ve created a number of CSEs based on specific schema.org Entity Types [4]. What follows is a collection of screenshots showing the default Google search engine results pages (SERPS) for various search terms, each with a screenshot of a CSE results page alongside; clicking the search term in each image title will load a live version of the page which delivered that screenshot; clicking the screenshot thumbnail below will load the full-size image. The specific CSEs used vary, as noted in the CSE image titles. Collectively, these images and links demonstrate how web search, search engines, and search engine optimization (SEO), are already in the throes of a massive disruption driven by the Semantic Web, courtesy of the schema.org project&#39;s contributions. Standard Google Search Searth Term: Watch Google CSE based on Schema.org &quot;Offers&quot; Search Term: Watch Standard Google Search Search Term: Rice Google CSE based on Schema.org &quot;Recipes&quot; Search Term: Rice Standard Google Search Search Term: The Blues Google CSE based on Schema.org &quot;Sports Teams&quot; Search Term: The Blues Standard Google Search Search Term: SPARQL Google CSE based on Schema.org &quot;Job Postings&quot; Search Term: SPARQL Standard Google Search Search Term: Semantic Web Google CSE based on Schema.org &quot;Events&quot; Search Term: Semantic Web Standard Google Search Search Term: Linked Data Google CSE based on Schema.org &quot;Books&quot; Search Term: Linked Data Standard Google Search Search Term: Understanding Data Google CSE based on Schema.org &quot;Media Objects&quot; Search Term: Understanding Data Standard Google Search Search Term: Destiny Google CSE based on Schema.org &quot;Music Groups&quot; Search Term: Destiny Standard Google Search Search Term: Paris Hilton Google CSE based on Schema.org &quot;Hotels&quot; Search Term: Paris Hilton Standard Google Search Search Term: West Google CSE based on Schema.org &quot;Person&quot; Search Term: West To further understand what&#39;s actually happening, in regards to structured data islands in each of the examples above, you can perform the following additional steps: equip yourself with an HTML structured data island sniffing utility or browser extension [5][6] visit one the the examples above by clicking on a link of interest  use your HTML structured data island sniffing utility to unveil what&#39;s embedded in the page (basically how a machine/bot processes) or simply view HTML source. Examples Pinterest Pin Collection showcasing Schema.org usage -- using an HTML5+Microdata specific sniffer (e.g., those currently available for Chrome) URIBurner About Service Page -- Priceline example URIBurner Faceted Browser Page -- Priceline example (this page enables powerful pivoting and serendipitous discovery of related information).  Conclusion As you can see, there is no question that the Web already has a population of HTML documents that include semantically-enriched islands of structured data. This new generation of documents creates a new Web dimension in which links are no longer seen solely as document addresses, but can function as unambiguous names for anything, while also enabling the construction of controlled natural language sentences for encoding and decoding information [data in context] -- comprehensible by both humans and machines (bots). The fundamental goal of the Semantic Web Project has already been achieved. Like the initial introduction of the Web, there wasn&#39;t an official release date — it just happened! A final note — The live demonstrations in this post demonstrate a fundamental fact: the addition of semantically-rich structured data islands to documents already being published on the Web is what modern SEO (Search Engine Optimization) is all about. Resistance is futile, so just get with the program — fast! References G+ Post about Tagging, Annotation, and Semantic Web (January, 2013) Blog Post about Semantic Web and World Wide Web of Junk (May, 2005) Schema.org Google Custom Search Engine Bookmark Collection OpenLink Structured Data Sniffer Extension for Chrome and Opera Other HTML5+Microdata Extensions for Chrome Related A Guide To Schema Markup &amp; Structured Data SEO Opportunities By Site Type How to hack the Marketing Amplification Process Semantic Web: Inside Story -- by Prof. Jim Hendler Schema.org presentation -- by Chaals Designing with Linked Data presentation -- by Mike Atherton Data &amp; Semantics Nanotation Data Silos are Killing Data Flow Understanding Data Glossary of Terms OpenLink Data Explorer -- Browser Extension for processing structured data in multiple formats URIBurner Service -- Publicly accessible service for processing structured data from any source Virtuoso Home Page -- Powerful multi-model data server for accessing, transforming, loading, and indexing structured data, from a variety of data source. </dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2>
Situation Analysis</h2>
<br />
Over the last 15+ years, the same question about the Semantic Web has been posed innumerable times: <i>&quot;Are we there yet?&quot;</i><br />
<br />
<br />
In this post, I will demonstrate that as expected [<a href="https://plus.google.com/+KingsleyIdehen/posts/31yH4yL6W4M">1</a>][<a href="http://bit.ly/Qv7sOx">2</a>], its arrival was without fanfare, but we are inarguably there.<br />
<table style="border-spacing: 10px; margin-left: auto; margin-right: auto; padding: 10px; width: 90%;"><tbody>
<tr>       <th colspan="2" style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Semantic Web Illustration</th>    </tr>
<tr>       <td colspan="2" style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRJE6JITZcdLBv5_yyJtpu2IQ0_ID_v2dKiLUJ9JB3UTQtAoc2ywSeK3eDxZHVyXFxRbq7AyTS-5ExrSzDqZ4572rgE6DkAzDI0Z76g5HyuZS9Y0Mf7QNo_KUWnEJpeojG6vPz4-tCH5_Dza8/s1600/slide_50_subjec-predicate-object-relations-sentences-new-key-layering.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="283" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRJE6JITZcdLBv5_yyJtpu2IQ0_ID_v2dKiLUJ9JB3UTQtAoc2ywSeK3eDxZHVyXFxRbq7AyTS-5ExrSzDqZ4572rgE6DkAzDI0Z76g5HyuZS9Y0Mf7QNo_KUWnEJpeojG6vPz4-tCH5_Dza8/s400/slide_50_subjec-predicate-object-relations-sentences-new-key-layering.png" width="400" /></a></div>
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh086hLdxP7Nkqmv1pteNWjBZZpy25-fuI-hob8ZCfMA-SNAhZfSGi9mEjTRBYA-OkfsVhmCAVfuolascZQCpHC8114ip-l7bRhpoQvtJv03UNfyh0BZvwwJ6jrVheys5hXTTGU7CrR1EEr7_w/s1600/semantic-web-of-linked-data.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
</a> <br />
<div style="margin-left: 1em; margin-right: 1em; text-align: center;">
</div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh086hLdxP7Nkqmv1pteNWjBZZpy25-fuI-hob8ZCfMA-SNAhZfSGi9mEjTRBYA-OkfsVhmCAVfuolascZQCpHC8114ip-l7bRhpoQvtJv03UNfyh0BZvwwJ6jrVheys5hXTTGU7CrR1EEr7_w/s1600/semantic-web-of-linked-data.png" imageanchor="1">                       </a></td>    </tr>
</tbody></table>
<br />
In recent times, major search engine vendors (Google, Microsoft, Yahoo!, and Yandex), in collaboration with the W3C and others, created a shared vocabulary referred to as <i>schema.org</i> [<a href="http://schema.org/">3</a>]. This contribution to the ongoing evolution of the Web was an effort to include islands of structured data, constructed to be comprehensible by both humans and machines, within HTML documents. Rather than taking a &quot;bottom up&quot; approach, Schema.org went &quot;top down&quot; from the outset, and Web Masters were their chosen target audience.<br />
<br />
Schema.org doesn&#39;t mandate any specific notation for construction of these structured data islands, since it&#39;s basically an application of RDF&#39;s abstract language, and fundamentally represents structured data as subject-&gt;predicate-&gt;object sentences (&quot;triples&quot;) or Entity-Attribute-Value (EAV) data structures.<br />
<br />
By leveraging the fact that RDF Language is notation agnostic, structured data islands can be constructed and embedded within HTML documents using: &nbsp;&quot;POSH&quot; (Plain Old Semantic HTML), HTML5+Microdata, RDFa, JSON-LD, RDF-Turtle, and others. As a consequence, no perceived problem with any specific notation gives cause to indict the entire project, and there is likewise no need to go on a distracting quest for a single golden notation.<br />
<br />
<h2>
Examples of Semantic Web Impact?</h2>
<br />
Google (a major backer of Schema.org) has been indexing HTML documents — including their structured data islands — since the Google project began, so they provide a nice basis for demonstrations of practical utility.<br />
<br />
Google provides a &quot;Custom Search Engine&quot; (CSE) service that enables users to pre-refine searches over Google&#39;s massive index of documents found on the web; for example, a user might set their CSE to only include documents which used terms from Schema.org in their structured data islands.<br />
<br />
Using that functionality, I&#39;ve created a number of CSEs based on specific schema.org Entity Types [<a href="https://delicious.com/kidehen/google_custom_search">4</a>]. What follows is a collection of screenshots showing the default Google search engine results pages (SERPS) for various search terms, each with a screenshot of a CSE results page alongside; clicking the search term in each image title will load a live version of the page which delivered that screenshot; clicking the screenshot thumbnail below will load the full-size image. The specific CSEs used vary, as noted in the CSE image titles.  Collectively, these images and links demonstrate how web search, search engines, and search engine optimization (SEO), are already in the throes of a massive disruption driven by the Semantic Web, courtesy of the schema.org project&#39;s contributions.<br />
<table style="border-spacing: 10px; margin-left: auto; margin-right: auto; padding: 10px; width: 90%;"><tbody>
<tr>    <th style="align: center; clear: both; text-align: center; text-align: center; vertical-align: top; width: 40%;"><br />
Standard Google Search <br />
<br />
Searth Term: <a href="https://www.google.com/search?q=Watch">Watch</a></th>    <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Google CSE <br />
based on Schema.org &quot;Offers&quot; <br />
<br />
Search Term: <a href="https://cse.google.com/cse/publicurl?cx=008280912992940796406:4mw6rtt6kjg&amp;CSE%20%3Cbr%20/%3E%20based%20onWatch">Watch</a></th> </tr>
<tr>    <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioX4Jn-3sUReF39lPtAUIVwwIU0RK7SbBiDMoG1J5WZ2sreR-zU1Yj7CNWlsi131C8E8PprW7umErA_UwvEL6INuPqXn9Okw5sa6w-O4KzXJgBvc6OYj7OU7K_X1mcvv-_6PDYdHve8ManJW8/s1600/Screen+Shot+2015-09-17+at+9.05.48+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioX4Jn-3sUReF39lPtAUIVwwIU0RK7SbBiDMoG1J5WZ2sreR-zU1Yj7CNWlsi131C8E8PprW7umErA_UwvEL6INuPqXn9Okw5sa6w-O4KzXJgBvc6OYj7OU7K_X1mcvv-_6PDYdHve8ManJW8/s320/Screen+Shot+2015-09-17+at+9.05.48+PM.png" width="314" /><br />
</a></td>    <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwjbOUVP0S84MfyiY6DHyLjX2n5u8mlLSDVoSFPp1YwlpNMWRq1dLWQ5h2_Z70Vakrt8PA8Wl942tP2NyyVaPVJwpZqeF6zCG8nZ1EP0hB4sv_P0e5P30NZz4pWjdhFTfH2wd3esBDtrjao-w/s1600/Screen+Shot+2015-09-17+at+8.59.57+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="215" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwjbOUVP0S84MfyiY6DHyLjX2n5u8mlLSDVoSFPp1YwlpNMWRq1dLWQ5h2_Z70Vakrt8PA8Wl942tP2NyyVaPVJwpZqeF6zCG8nZ1EP0hB4sv_P0e5P30NZz4pWjdhFTfH2wd3esBDtrjao-w/s320/Screen+Shot+2015-09-17+at+8.59.57+PM.png" width="320" /><br />
</a></td> </tr>
<tr>   <th colspan="2"><hr />
</th></tr>
<tr>    <th style="align: center; clear: both; text-align: center; text-align: center; vertical-align: top; width: 40%;"><br />
Standard Google Search <br />
<br />
Search Term: <a href="https://www.google.com/search?q=Rice">Rice</a></th>    <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Google CSE <br />
based on Schema.org &quot;Recipes&quot; <br />
<br />
Search Term: <a href="https://cse.google.com/cse/publicurl?cx=008280912992940796406:te5qfjcpkca&amp;q=Rice">Rice</a></th> </tr>
<tr>    <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2NbR9jOQP_6-MevYlGDkmb4UmQ5iqBppSyFe0at-Gn8dIFZwSY_qJjZjh-MwZZfBLz2gfw5FyFWcSXQENFCFcp0LvNg4aVMuZxyYTtyzUo5lZs2hOUIvW_RskAnm4XHriNvkc40c2nkCzod0/s1600/Screen+Shot+2015-09-18+at+7.43.38+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="148" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2NbR9jOQP_6-MevYlGDkmb4UmQ5iqBppSyFe0at-Gn8dIFZwSY_qJjZjh-MwZZfBLz2gfw5FyFWcSXQENFCFcp0LvNg4aVMuZxyYTtyzUo5lZs2hOUIvW_RskAnm4XHriNvkc40c2nkCzod0/s320/Screen+Shot+2015-09-18+at+7.43.38+AM.png" width="320" /><br />
</a></td>    <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEERapnypD3rETv3yrLpO_3vZewccZTX3NX2kRKI588fJX2NuABN_MnReptrYXFWZkO_naMV5KIHh9HK_tGQT0RaE3oXMO-CCH1217EvGOXfcwF0sDVbqBCj0YfMgZopP_wigNAHgDnDnol7s/s1600/Screen+Shot+2015-09-18+at+7.41.35+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEERapnypD3rETv3yrLpO_3vZewccZTX3NX2kRKI588fJX2NuABN_MnReptrYXFWZkO_naMV5KIHh9HK_tGQT0RaE3oXMO-CCH1217EvGOXfcwF0sDVbqBCj0YfMgZopP_wigNAHgDnDnol7s/s320/Screen+Shot+2015-09-18+at+7.41.35+AM.png" width="320" /><br />
</a></td> </tr>
<tr>   <th colspan="2"><hr />
</th></tr>
<tr>    <th style="align: center; clear: both; text-align: center; text-align: center; vertical-align: top; width: 40%;"><br />
Standard Google Search <br />
<br />
Search Term: <a href="https://www.google.com/search?q=The%20Blues">The Blues</a></th>    <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Google CSE <br />
based on Schema.org &quot;Sports Teams&quot; <br />
<br />
Search Term: <a href="https://cse.google.com/cse/publicurl?cx=008280912992940796406:28hriml6h8k&amp;q=The%20Blues">The Blues</a></th> </tr>
<tr>    <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4O7zkbGulEBrndH2T70UvE7eXVv2RyUFRiiM2oUFyrSTDJYg6xPR3MT1CAKQluIlwqy1xPM4XqqbRrtKlh6NRk84q1jzr2ViVQESKfiC62qu6g4AWh-GmuN-yj8cdYkA2RNj8c2wDqiHVgxA/s1600/Screen+Shot+2015-09-18+at+7.47.37+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="173" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4O7zkbGulEBrndH2T70UvE7eXVv2RyUFRiiM2oUFyrSTDJYg6xPR3MT1CAKQluIlwqy1xPM4XqqbRrtKlh6NRk84q1jzr2ViVQESKfiC62qu6g4AWh-GmuN-yj8cdYkA2RNj8c2wDqiHVgxA/s320/Screen+Shot+2015-09-18+at+7.47.37+AM.png" width="320" /><br />
</a></td>    <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXU4KpVmjclwCfO6PVEkgPOuMHppO4uENLru265uEbmQ4bZZMNfPSw3xGaRfVfQE716Myu1_Li16yaY8fSEo9zOW7dSxiDDdf81shRZqkqB8YogX9Juo0I1TgtM-eYE0_cc1IYzJqQ4MrG0K8/s1600/Screen+Shot+2015-09-18+at+7.50.57+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="195" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXU4KpVmjclwCfO6PVEkgPOuMHppO4uENLru265uEbmQ4bZZMNfPSw3xGaRfVfQE716Myu1_Li16yaY8fSEo9zOW7dSxiDDdf81shRZqkqB8YogX9Juo0I1TgtM-eYE0_cc1IYzJqQ4MrG0K8/s320/Screen+Shot+2015-09-18+at+7.50.57+AM.png" width="320" /><br />
</a></td> </tr>
<tr>   <th colspan="2"><hr />
</th></tr>
<tr>    <th style="align: center; clear: both; text-align: center; text-align: center; vertical-align: top; width: 40%;"><br />
Standard Google Search <br />
<br />
Search Term: <a href="https://www.google.com/search?q=SPARQL">SPARQL</a></th>    <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Google CSE <br />
based on Schema.org &quot;Job Postings&quot; <br />
<br />
Search Term: <a href="https://cse.google.com/cse/publicurl?cx=008280912992940796406:cf5tztptzzy&amp;q=SPARQL">SPARQL</a></th> </tr>
<tr>    <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLNg3Wy72Daop-cXuA6fLh6r9QFAMhsuFSd0KRrs7cmgppF5PHJQSQ8lA00DFbDguAn-iDLZsWcsUGHu2PMqP7nmdOY21hK1WJVgIDpWJLz_CDeTLO7ah1Uji7ax0DcTsR59ASotsLMH3EM98/s1600/Screen+Shot+2015-09-18+at+7.51.51+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLNg3Wy72Daop-cXuA6fLh6r9QFAMhsuFSd0KRrs7cmgppF5PHJQSQ8lA00DFbDguAn-iDLZsWcsUGHu2PMqP7nmdOY21hK1WJVgIDpWJLz_CDeTLO7ah1Uji7ax0DcTsR59ASotsLMH3EM98/s320/Screen+Shot+2015-09-18+at+7.51.51+AM.png" width="320" /><br />
</a></td>    <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5WR0w6qMrRSbSzOz_eyT-keyxrBFZs9dZ15kci74iGHDHV0jqgc0ZQQ8-2yGoXgf-s2Qv8bZ3R-ylpCRd-vN5drt2WqIHppknXVfiXua_EUX9aDWGHSGkEF1FoCH-X_OUJLGY6J_22ahZuYQ/s1600/Screen+Shot+2015-09-18+at+7.53.00+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5WR0w6qMrRSbSzOz_eyT-keyxrBFZs9dZ15kci74iGHDHV0jqgc0ZQQ8-2yGoXgf-s2Qv8bZ3R-ylpCRd-vN5drt2WqIHppknXVfiXua_EUX9aDWGHSGkEF1FoCH-X_OUJLGY6J_22ahZuYQ/s320/Screen+Shot+2015-09-18+at+7.53.00+AM.png" width="320" /><br />
</a></td> </tr>
<tr>   <th colspan="2"><hr />
</th></tr>
<tr>    <th style="align: center; clear: both; text-align: center; text-align: center; vertical-align: top; width: 40%;"><br />
Standard Google Search <br />
<br />
Search Term: <a href="https://www.google.com/search?q=Semantic%20Web">Semantic Web</a></th>    <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Google CSE <br />
based on Schema.org &quot;Events&quot; <br />
<br />
Search Term: <a href="https://cse.google.com/cse/publicurl?cx=008280912992940796406:uibg9gr2sly&amp;q=Semantic%20Web">Semantic Web</a></th> </tr>
<tr>    <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhelh1lfmOATopU9xUx73VCLZebHpOGAC3XTmX2W6lR90UWbZp5GPcYXpdaG0Quy6YuiRi2vnpEPkXkrzUEHiqQKfiJMDUIkzBcyKL6fUwsTTgrVrSDQmHmIVXK-rLXXP0N7cvMSgibu5rKkUI/s1600/Screen+Shot+2015-09-18+at+7.58.07+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="292" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhelh1lfmOATopU9xUx73VCLZebHpOGAC3XTmX2W6lR90UWbZp5GPcYXpdaG0Quy6YuiRi2vnpEPkXkrzUEHiqQKfiJMDUIkzBcyKL6fUwsTTgrVrSDQmHmIVXK-rLXXP0N7cvMSgibu5rKkUI/s320/Screen+Shot+2015-09-18+at+7.58.07+AM.png" width="320" /><br />
</a></td>    <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkiTeVSzn0tByC-KSdP-RGm5fFMdARtpLoC_7HSVQHcQc6nMzfqs0ceRNyLuscYA5fCgWT_CTbx61ieP9RPxBza1TyxamKOJN2DnD3BaMj32336ylyV0Nj5AYxOYJonUz2vX4nvmIEWDp4Erc/s1600/Screen+Shot+2015-09-18+at+7.58.52+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="195" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkiTeVSzn0tByC-KSdP-RGm5fFMdARtpLoC_7HSVQHcQc6nMzfqs0ceRNyLuscYA5fCgWT_CTbx61ieP9RPxBza1TyxamKOJN2DnD3BaMj32336ylyV0Nj5AYxOYJonUz2vX4nvmIEWDp4Erc/s320/Screen+Shot+2015-09-18+at+7.58.52+AM.png" width="320" /><br />
</a></td> </tr>
<tr>   <th colspan="2"><hr />
</th></tr>
<tr>    <th style="align: center; clear: both; text-align: center; text-align: center; vertical-align: top; width: 40%;"><br />
Standard Google Search <br />
<br />
Search Term: <a href="https://www.google.com/search?q=Linked%20Data">Linked Data</a></th>    <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Google CSE <br />
based on Schema.org &quot;Books&quot; <br />
<br />
Search Term: <a href="https://cse.google.com/cse/publicurl?cx=008280912992940796406:txxz39lfzo0&amp;q=Linked%20Data">Linked Data</a></th> </tr>
<tr>    <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihqTiDc9kTIMK3SioTY-IHRha1eD63XRyb24O4kg4sbKkD4cR7vzP57O1Qs6YgP8AdJbDmYrzPhpTlpBDHvNJAkM6Ufsdma6M8NOQAPfVZjW9vOIDE4WaLyge7JmWffz-wICrc3DNH0aN6E9o/s1600/Screen+Shot+2015-09-18+at+8.04.23+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="260" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihqTiDc9kTIMK3SioTY-IHRha1eD63XRyb24O4kg4sbKkD4cR7vzP57O1Qs6YgP8AdJbDmYrzPhpTlpBDHvNJAkM6Ufsdma6M8NOQAPfVZjW9vOIDE4WaLyge7JmWffz-wICrc3DNH0aN6E9o/s320/Screen+Shot+2015-09-18+at+8.04.23+AM.png" width="320" /><br />
</a></td>    <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgnqteYgUPwugZ1w1114gVuuGgxdjOgdkhobiPwUKJWgvXX9bOCPyg7XqkIbgRD-Yr-A_X91gI8c4yLeHRumcDRlT1ouAeon4r0NhfKjifiA76pDWroLhMr1Ux4wEhsnlNqgKtfOVR7phUXS8/s1600/Screen+Shot+2015-09-18+at+8.05.12+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="201" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgnqteYgUPwugZ1w1114gVuuGgxdjOgdkhobiPwUKJWgvXX9bOCPyg7XqkIbgRD-Yr-A_X91gI8c4yLeHRumcDRlT1ouAeon4r0NhfKjifiA76pDWroLhMr1Ux4wEhsnlNqgKtfOVR7phUXS8/s320/Screen+Shot+2015-09-18+at+8.05.12+AM.png" width="320" /><br />
</a></td> </tr>
<tr>   <th colspan="2"><hr />
</th></tr>
<tr>    <th style="align: center; clear: both; text-align: center; text-align: center; vertical-align: top; width: 40%;"><br />
Standard Google Search <br />
<br />
Search Term: <a href="https://www.google.com/search?q=Understanding%20Data">Understanding Data</a></th>    <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Google CSE <br />
based on Schema.org &quot;Media Objects&quot; <br />
<br />
Search Term: <a href="https://cse.google.com/cse/publicurl?cx=008280912992940796406:4vr8g7vaa6i&amp;q=Understanding%20Data">Understanding Data</a></th> </tr>
<tr>    <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsi9L-D1Loa6AV0_OLjKBcMBuc0VhGaN7PIVQstJcwFK4No5EDiu_prVs9ncrKhVJW9qxgKPMMpP7yipf0I9DwdBoZxwBM-SjViLvR5JpdU1Po3dzis4Hq6JDGuTzuCzSxElYDjm0cTz7joUY/s1600/Screen+Shot+2015-09-18+at+8.38.59+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="233" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsi9L-D1Loa6AV0_OLjKBcMBuc0VhGaN7PIVQstJcwFK4No5EDiu_prVs9ncrKhVJW9qxgKPMMpP7yipf0I9DwdBoZxwBM-SjViLvR5JpdU1Po3dzis4Hq6JDGuTzuCzSxElYDjm0cTz7joUY/s320/Screen+Shot+2015-09-18+at+8.38.59+AM.png" width="320" /><br />
</a></td>    <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVFjbWwuWKaiGCeyrhLToDRGR1S1KR6pBxSHUyqn2POKVPHyS8RxVKYPYuQ7MMX4Wgf-w2Rz1Ne0fqQcX3nlQxlf2n9JzEdfmcsanFHBK8xZnbpI_JXrmnuH85LyldQEP4nlCEtukOlVQG-Vo/s1600/Screen+Shot+2015-09-18+at+8.40.39+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="193" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVFjbWwuWKaiGCeyrhLToDRGR1S1KR6pBxSHUyqn2POKVPHyS8RxVKYPYuQ7MMX4Wgf-w2Rz1Ne0fqQcX3nlQxlf2n9JzEdfmcsanFHBK8xZnbpI_JXrmnuH85LyldQEP4nlCEtukOlVQG-Vo/s320/Screen+Shot+2015-09-18+at+8.40.39+AM.png" width="320" /><br />
</a></td> </tr>
<tr>   <th colspan="2"><hr />
</th></tr>
<tr>    <th style="align: center; clear: both; text-align: center; text-align: center; vertical-align: top; width: 40%;"><br />
Standard Google Search <br />
<br />
Search Term: <a href="https://www.google.com/search?q=Destiny">Destiny</a></th>    <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Google CSE <br />
based on Schema.org &quot;Music Groups&quot; <br />
<br />
Search Term: <a href="https://cse.google.com/cse/publicurl?cx=008280912992940796406:wppdjgkeg7e&amp;q=Destiny">Destiny</a></th> </tr>
<tr>    <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdSltQPihdcKhJeidO0_AVrtMweQSB_l6SlIjbusUhb9uc_SjVYnz6qBXOvWw2JvmBQMx2GbOKnVF0BxMuBs92wXg4QoV9CBJRTvOb_kLKfqtYBgHTjjRS4AMsxBCVp7sQa1ZEX8q_THepCVM/s1600/Screen+Shot+2015-09-18+at+8.47.13+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="299" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdSltQPihdcKhJeidO0_AVrtMweQSB_l6SlIjbusUhb9uc_SjVYnz6qBXOvWw2JvmBQMx2GbOKnVF0BxMuBs92wXg4QoV9CBJRTvOb_kLKfqtYBgHTjjRS4AMsxBCVp7sQa1ZEX8q_THepCVM/s320/Screen+Shot+2015-09-18+at+8.47.13+AM.png" width="320" /><br />
</a></td>    <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGY5ec6uSKEehaSu-wHUI4xdkgN6q1qT_xDq33_9xghvtRaH6wm_Z3QULrOVl43902lHe47tmWqUL0ZZPL6fiEeA6oX5MvbQ7L0ES3n2DzouiV8pYYSwUFqMls9lwuCYHRJsuEfdQ7SmQO_Gc/s1600/Screen+Shot+2015-09-18+at+8.48.37+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="190" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGY5ec6uSKEehaSu-wHUI4xdkgN6q1qT_xDq33_9xghvtRaH6wm_Z3QULrOVl43902lHe47tmWqUL0ZZPL6fiEeA6oX5MvbQ7L0ES3n2DzouiV8pYYSwUFqMls9lwuCYHRJsuEfdQ7SmQO_Gc/s1600/Screen+Shot+2015-09-18+at+8.48.37+AM.png" width="320" /><br />
</a></td> </tr>
<tr>   <th colspan="2"><hr />
</th></tr>
<tr>    <th style="align: center; clear: both; text-align: center; text-align: center; vertical-align: top; width: 40%;"><br />
Standard Google Search <br />
<br />
Search Term: <a href="https://www.google.com/search?q=Paris%20Hilton">Paris Hilton</a></th>    <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Google CSE <br />
based on Schema.org &quot;Hotels&quot; <br />
<br />
Search Term: <a href="https://cse.google.com/cse/publicurl?cx=008280912992940796406:9ix8v2mgr-g&amp;q=Paris%20Hilton">Paris Hilton</a></th> </tr>
<tr>    <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB2d87E7Jx8J-gDwz2huE_sNfbRcmUi8bKRAd3gZ7tNKJS2AcS0U-LpE1KaiigI2YCn37gpH2n0na2DhoJjRkNFgYbwqPOyeoPBWVPW3Fr6wVdnR2WxWNtLfPX20L72xLq70SiiANpHKVyHmk/s1600/Screen+Shot+2015-09-18+at+8.55.53+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="294" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB2d87E7Jx8J-gDwz2huE_sNfbRcmUi8bKRAd3gZ7tNKJS2AcS0U-LpE1KaiigI2YCn37gpH2n0na2DhoJjRkNFgYbwqPOyeoPBWVPW3Fr6wVdnR2WxWNtLfPX20L72xLq70SiiANpHKVyHmk/s320/Screen+Shot+2015-09-18+at+8.55.53+AM.png" width="320" /><br />
</a></td>    <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUAax6u103HUgpjxwtSSVhz24rj84oNTgT85E5vYYTz1hLMlC7MwE2O5YwtlHgB7TeQL9ucLZFkpj81ZNyVakyINNdDtYCXoMSEOCN_5wOqtK_PprzggqvV3nxJ8EGBWBWAxCoFrG7swl17JU/s1600/Screen+Shot+2015-09-18+at+8.57.22+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="181" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUAax6u103HUgpjxwtSSVhz24rj84oNTgT85E5vYYTz1hLMlC7MwE2O5YwtlHgB7TeQL9ucLZFkpj81ZNyVakyINNdDtYCXoMSEOCN_5wOqtK_PprzggqvV3nxJ8EGBWBWAxCoFrG7swl17JU/s320/Screen+Shot+2015-09-18+at+8.57.22+AM.png" width="320" /><br />
</a></td> </tr>
<tr>   <th colspan="2"><hr />
</th></tr>
<tr>    <th style="align: center; clear: both; text-align: center; text-align: center; vertical-align: top; width: 40%;"><br />
Standard Google Search <br />
<br />
Search Term: <a href="https://www.google.com/search?q=West">West</a></th>    <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Google CSE <br />
based on Schema.org &quot;Person&quot; <br />
<br />
Search Term: <a href="https://cse.google.com/cse/publicurl?cx=008280912992940796406:mj1nybvhe6w&amp;q=West">West</a></th> </tr>
<tr>    <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIxOITkUYvEKQOzntr5JEL1-0MxEYI-0lVHuZRI-2dHkB-VJfZ-OgjS8KHRhQ6YmqfeYPq-qfmPDp9Pvyn4BhhgU18O-SATSeICJY7qkKc0anjkDE1_ccAqnTKi017bAdsla8s2Dgfh4I5nLc/s1600/Screen+Shot+2015-09-18+at+9.21.09+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="231" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIxOITkUYvEKQOzntr5JEL1-0MxEYI-0lVHuZRI-2dHkB-VJfZ-OgjS8KHRhQ6YmqfeYPq-qfmPDp9Pvyn4BhhgU18O-SATSeICJY7qkKc0anjkDE1_ccAqnTKi017bAdsla8s2Dgfh4I5nLc/s320/Screen+Shot+2015-09-18+at+9.21.09+AM.png" width="320" /><br />
</a></td>    <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaqkzBM_wAWkx9d37TJnP5vU_5Q2LTgbbFtMmkz49U5kRTrJ2cYKCenns_oiAESY7z9QqiqDga82S1T59MEVWodmofoUrGhgNf3g9PmK9PlMSZP-MM7hffjpomdBNOhCn0bW2RHhkFufQF7EU/s1600/Screen+Shot+2015-09-18+at+9.22.30+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
<img border="0" height="155" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaqkzBM_wAWkx9d37TJnP5vU_5Q2LTgbbFtMmkz49U5kRTrJ2cYKCenns_oiAESY7z9QqiqDga82S1T59MEVWodmofoUrGhgNf3g9PmK9PlMSZP-MM7hffjpomdBNOhCn0bW2RHhkFufQF7EU/s320/Screen+Shot+2015-09-18+at+9.22.30+AM.png" width="320" /><br />
</a></td> </tr>
</tbody></table>
<br />
<br />
To further understand what&#39;s actually happening, in regards to structured data islands in each of the examples above, you can perform the following additional steps:<br />
<ol>
<li>equip yourself with an HTML structured data&nbsp;island sniffing utility or browser extension [<a href="https://delicious.com/kidehen/microdata,chrome_extension">5</a>][<a href="http://ode.openlinksw.com/">6</a>]</li>
<li>visit one the the examples above by clicking on a link of interest&nbsp;</li>
<li>use your HTML structured data island sniffing utility to unveil what&#39;s embedded in the page (basically how a machine/bot processes)&nbsp;or simply view HTML source.</li>
</ol>
<h3>
Examples</h3>
<ul>
<li><a href="https://www.pinterest.com/kidehen/microdata-schemaorg-related/">Pinterest Pin Collection showcasing Schema.org usage</a>&nbsp;-- using an HTML5+Microdata specific sniffer (e.g., those currently available for Chrome)</li>
<li><a href="http://linkeddata.uriburner.com/proxy-iri/be9783c604c18d47c012d9cdb70f7e78454b0601">URIBurner About Service Page</a> -- Priceline example</li>
<li><a href="http://linkeddata.uriburner.com/c/8BQ5BH2">URIBurner Faceted Browser Page</a> -- Priceline example (this page enables powerful pivoting and serendipitous discovery of related information).&nbsp;</li>
</ul>
<h2>
<br />
</h2>
<h2>
Conclusion</h2>
<br />
As you can see, there is no question that the Web already has a population of HTML documents that include semantically-enriched islands of structured data. This new generation of documents creates a new Web dimension in which links are no longer seen solely as document addresses, but can function as unambiguous names for anything, while also enabling the construction of controlled natural language sentences for encoding and decoding information [<i>data in context</i>] -- comprehensible by both humans and machines (bots). <br />
<br />
The fundamental goal of the Semantic Web Project has already been achieved. Like the initial introduction of the Web, there wasn&#39;t an official release date — it just <i>happened!</i><br />
<br />
A final note — The live demonstrations in this post demonstrate a fundamental fact: the addition of semantically-rich structured data islands to documents already being published on the Web is what modern SEO (Search Engine Optimization) is all about. Resistance is futile, so just get with the program — fast!<br />
<br />
<h2>
References</h2>
<ol>
<li><a href="https://plus.google.com/+KingsleyIdehen/posts/31yH4yL6W4M">G+ Post about Tagging, Annotation, and Semantic Web (January, 2013)</a></li>
<li><a href="http://bit.ly/Qv7sOx">Blog Post about Semantic Web and World Wide Web of Junk (May, 2005)</a></li>
<li><a href="http://schema.org/">Schema.org</a></li>
<li><a href="https://delicious.com/kidehen/google_custom_search">Google Custom Search Engine Bookmark Collection</a></li>
<li><a href="https://github.com/openlink/structured-data-sniffer">OpenLink Structured Data Sniffer Extension for Chrome and Opera</a></li>
<li><a href="https://delicious.com/kidehen/microdata,chrome_extension">Other HTML5+Microdata Extensions for Chrome</a></li>
</ol>
<br />
<h2>
Related</h2>
<ul>
<li><a href="http://searchengineland.com/schema-markup-structured-data-seo-opportunities-site-type-231077">A Guide To Schema Markup &amp; Structured Data SEO Opportunities By Site Type</a></li>
<li><a href="https://moz.com/blog/how-to-hack-the-amplification-process-whiteboard-friday">How to hack the Marketing Amplification Process</a></li>
<li><a href="https://www.youtube.com/watch?feature=player_detailpage&amp;v=3Ap5FsxvjTQ#t=327">Semantic Web: Inside Story</a> -- by Prof. Jim Hendler</li>
<li><a href="https://www.youtube.com/watch?t=17&amp;v=hcahQfN5u9Y">Schema.org presentation</a> -- by Chaals</li>
<li><a href="https://vimeo.com/112431910">Designing with Linked Data presentation</a> -- by Mike Atherton</li>
<li><a href="http://kidehen.blogspot.com/2015/07/situation-analysis-never-day-goes-by.html">Data &amp; Semantics</a></li>
<li><a href="http://kidehen.blogspot.com/2014/07/nanotation.html">Nanotation</a></li>
<li><a href="http://kidehen.blogspot.com/2015/06/data-silos-are-killing-data-flow.html">Data Silos are Killing Data Flow</a></li>
<li><a href="http://www.slideshare.net/kidehen/understanding-29894555">Understanding Data</a></li>
<li><a href="http://www.openlinksw.com/c/9DL77CLF">Glossary of Terms</a></li>
<li><a href="http://ode.openlinksw.com/">OpenLink Data Explorer</a> -- Browser Extension for processing structured data in multiple formats</li>
<li><a href="http://linkeddata.uriburner.com/">URIBurner Service</a>&nbsp;-- Publicly accessible service for processing structured data from any source</li>
<li><a href="http://virtuoso.openlinksw.com/">Virtuoso Home Page</a>&nbsp;-- Powerful multi-model data server for accessing, transforming, loading, and indexing structured data, from a variety of data source.&nbsp;</li>
</ul>
]]></content:encoded>
  <rss:link>http://kidehen.blogspot.com/2015/09/what-happened-to-semantic-web.html</rss:link>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2015-09-18T21:07:00Z</dc:date>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://kidehen.blogspot.com/2015/08/beyond-bookmarking.html">
  <rss:title>Beyond Bookmarking</rss:title>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Situation Analysis You stumble across an important document on the Web (or your private HTTP based Intranet). Naturally, you would like to store a reference to the aforementioned document via the act commonly known as &quot;bookmarking&quot; .  Bookmarking Problem When you store a bookmark at best you have a URL (hyperlink) and a piece of text commonly referred to as a Tag. That&#39;s it. As should be pretty obvious, you need a little more than that for future recall and/or construction of a useful knowledgebase. My Del.icio.us hosted IoT Bookmark Collection   Problem Solution Build on the utility of hyperlinks as document names by also using them to construct meaningful statements about a document. In this case, a hyperlink used to identity a document of interest and simply used in the subject or predicate role of a subject-&gt;predicate-&gt;object based digital sentence.  Applying the simple tip outlined above solves the basic bookmarking problem while opening up a whole new level of productivity and sophistication. Basically, this is about the use of controlled natural language to construct and enhance knowledgebases (rather than bland bookmarked link collections) where content takes to form of machine- and human-readable RDF Language based sentence graphs that are implicitly notation and serialization format agnostic. My IoT Knowledgebase  Simple Workflow based Example I stumbled across an article [1] that describes projected growth for the IoT market segment. Naturally,  I would like to capture pertinent information form the aforementioned article for future reference and knowledgebase enhancement. Thus, I simply take my notes as follows, using nanotation [2], which turns this post into a structured data source, of the NoSQL variety: { ## What follows are RDF Language sentences where the subject, predicate, and objects of the sentences are identified unambiguously using HTTP URI (hyperlinks). ## Using RDF Language sentences to describing an article, using terms from schema.org, vcard, rdfs, and foaf vocabularies.  &lt;http://www.mckinsey.com/insights/business_technology/the_internet_of_things_the_value_of_digitizing_the_physical_world/&gt; a schema:BlogPosting, schema:WebPage ; rdfs:label &quot;Unlocking the Potential of the Internet of Things&quot; ; schema:about &lt;https://twitter.com/hashtag/IoT#this&gt; ; schema:url &lt;http://www.mckinsey.com/insights/business_technology/the_internet_of_things_the_value_of_digitizing_the_physical_world&gt; ; wdrs:describedby &lt;&gt; . ## Sentences Describing Post Author &lt;https://www.linkedin.com/in/chuimichael#this&gt; a foaf:Person ; foaf:name &quot;Michael Chui&quot; ; vcard:org &lt;https://www.linkedin.com/company/1371#this&gt; ; wdrs:describedby &lt;&gt; .  } Conclusion Depending on bookmarking and meaningless tags SHOULD be a thing of the past. The same hyperlinks that gave us the Web of Linked Documents also enables the construction of a Web of Linked Data -- via RDF Language sentences.  Caution: Forget everything you&#39;ve ever heard about RDF being a format. That&#39;s the product of poor messaging. RDF is an abstract Language expressible using a variety of notations (one example used in this post) and serializable using a variety of document content formats. I&#39;ll use the comments section of this post to share live examples of the ideas covered in this post.  Links IoT Market Projections Article About Nanotation Simple Linked Data Deployment Tutorial   Related Using Nanotations in a G+ Post to create 5-Star Linked Open Data -- Basic G+ Post Description Deeper Faceted Browsing view of Nanotation-laced G+ Post Description of a variety of Market Segments Provenance Data for Market Segments Descriptions -- an audit-trail of data sources used to create a Linked Open Data meshup from posts across G+ , Facebook, and Twitter. ## What follows are RDF Language sentences where the subject, predicate, and objects of the sentences are identified unambiguously using HTTP URI (hyperlinks). ## Using RDF Language sentences to describing an article, using terms from schema.org, vcard, rdfs, and foaf vocabularies. &lt;http://www.mckinsey.com/insights/business_technology/the_internet_of_things_the_value_of_digitizing_the_physical_world/&gt; a schema:BlogPosting, schema:WebPage ; rdfs:label &quot;Unlocking the Potential of the Internet of Things&quot; ; schema:about &lt;https://twitter.com/hashtag/IoT#this&gt; ; schema:url &lt;http://www.mckinsey.com/insights/business_technology/the_internet_of_things_the_value_of_digitizing_the_physical_world&gt; ; wdrs:describedby &lt;&gt; . ## Sentences Describing Post Author &lt;https://www.linkedin.com/in/chuimichael#this&gt; a foaf:Person ; foaf:name &quot;Michael Chui&quot; ; vcard:org &lt;https://www.linkedin.com/company/1371#this&gt; ; wdrs:describedby &lt;&gt; .</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2>
Situation Analysis</h2>
<div>
You stumble across an important document on the Web (or your private HTTP based Intranet). Naturally, you would like to store a reference to the aforementioned document via the act commonly known as &quot;bookmarking&quot; . </div>
<h2>
Bookmarking Problem</h2>
<div>
When you store a bookmark at best you have a URL (hyperlink) and a piece of text commonly referred to as a Tag. That&#39;s it. As should be pretty obvious, you need a little more than that for future recall and/or construction of a useful knowledgebase.<br />
<br />
<div style="text-align: center;">
My Del.icio.us hosted IoT Bookmark Collection  </div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiB_TRoSkm0ON6bAiLmR7mEJHpzsp26XCvsImXCY1MSCbUELw1w6WU4f7-ckI0t5nmqkpRPUYNEW_AEKCWKuM63jdv4a-jW-QjuJ0_fsz1wC9Z9nkkhjfHyhttEgt8wZgyifWyy5QvZtInM68/s1600/Screen+Shot+2015-08-10+at+4.31.28+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="103" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiB_TRoSkm0ON6bAiLmR7mEJHpzsp26XCvsImXCY1MSCbUELw1w6WU4f7-ckI0t5nmqkpRPUYNEW_AEKCWKuM63jdv4a-jW-QjuJ0_fsz1wC9Z9nkkhjfHyhttEgt8wZgyifWyy5QvZtInM68/s400/Screen+Shot+2015-08-10+at+4.31.28+PM.png" width="400" /></a></div>
<br /></div>
<h3>
Problem Solution</h3>
<div>
Build on the utility of hyperlinks as document names by also using them to construct meaningful statements about a document. In this case, a hyperlink used to identity a document of interest and simply used in the subject or predicate role of a subject-&gt;predicate-&gt;object based digital sentence. </div>
<div>
<br /></div>
<div>
Applying the simple tip outlined above solves the basic bookmarking problem while opening up a whole new level of productivity and sophistication. Basically, this is about the use of controlled natural language to construct and enhance knowledgebases (rather than bland bookmarked link collections) where content takes to form of machine- and human-readable RDF Language based sentence graphs that are implicitly notation and serialization format agnostic.<br />
<br />
<div style="text-align: center;">
My IoT Knowledgebase </div>
<br /></div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimbEQhF-H-2FYYyDtq3qIQqLGe9NDMVWgbhALUqUZIdf1KwVKt9D7dCgrAhwT8v_Rf8y27HggDaQdv2PP5Anwu-lFNVczIlnhQaV8MWbgw213vl3UskgZkDhu6LDEolAfNaZxFh7kZKeCRK1Q/s1600/Screen+Shot+2015-08-10+at+4.51.09+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="207" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimbEQhF-H-2FYYyDtq3qIQqLGe9NDMVWgbhALUqUZIdf1KwVKt9D7dCgrAhwT8v_Rf8y27HggDaQdv2PP5Anwu-lFNVczIlnhQaV8MWbgw213vl3UskgZkDhu6LDEolAfNaZxFh7kZKeCRK1Q/s400/Screen+Shot+2015-08-10+at+4.51.09+PM.png" width="400" /></a></div>
<br /></div>
<h4>
Simple Workflow based Example</h4>
<div>
I stumbled across an article [1] that describes projected growth for the IoT market segment. Naturally,  I would like to capture pertinent information form the aforementioned article for future reference and knowledgebase enhancement. Thus, I simply take my notes as follows, using nanotation [2], which turns this post into a structured data source, of the NoSQL variety:</div>
<div>
<br /></div>
<div>
{</div>
<div>
<br /></div>
<div>
## What follows are RDF Language sentences where the subject, predicate, and objects of the sentences are identified unambiguously using HTTP URI (hyperlinks).</div>
<div>
<br /></div>
<div>
## Using RDF Language sentences to describing an article, using terms from schema.org, vcard, rdfs, and foaf vocabularies. </div>
<div>
<br /></div>
<div>
&lt;http://www.mckinsey.com/insights/business_technology/the_internet_of_things_the_value_of_digitizing_the_physical_world/&gt;</div>
<div>
<br /></div>
<div>
a schema:BlogPosting, schema:WebPage ;</div>
<div>
<br /></div>
<div>
rdfs:label &quot;Unlocking the Potential of the Internet of Things&quot; ;</div>
<div>
<br /></div>
<div>
schema:about &lt;https://twitter.com/hashtag/IoT#this&gt; ;</div>
<div>
<br />
schema:url &lt;http://www.mckinsey.com/insights/business_technology/the_internet_of_things_the_value_of_digitizing_the_physical_world&gt; ;</div>
<div>
<br /></div>
<div>
wdrs:describedby &lt;&gt; .</div>
<div>
<br /></div>
<div>
## Sentences Describing Post Author</div>
<div>
<br /></div>
<div>
&lt;https://www.linkedin.com/in/chuimichael#this&gt;</div>
<div>
<br /></div>
<div>
a foaf:Person ;</div>
<div>
<br /></div>
<div>
foaf:name &quot;Michael Chui&quot; ;</div>
<div>
<br /></div>
<div>
vcard:org &lt;https://www.linkedin.com/company/1371#this&gt; ;</div>
<div>
<br /></div>
<div>
wdrs:describedby &lt;&gt; . </div>
<div>
<br /></div>
<div>
}</div>
<div>
<br /></div>
<h2>
Conclusion</h2>
<div>
Depending on bookmarking and meaningless tags SHOULD be a thing of the past. The same hyperlinks that gave us the Web of Linked Documents also enables the construction of a Web of Linked Data -- via RDF Language sentences. </div>
<div>
<br /></div>
<div>
<b>Caution:</b> Forget everything you&#39;ve ever heard about RDF being a format. That&#39;s the product of poor messaging. RDF is an abstract Language expressible using a variety of notations (one example used in this post) and serializable using a variety of document content formats.<br />
<br />
I&#39;ll use the comments section of this post to share live examples of the ideas covered in this post. </div>
<div>
<h2>
<span class="s1">Links</span></h2>
<ul class="ul1">
<li class="li2"><a href="http://www.mckinsey.com/insights/business_technology/the_internet_of_things_the_value_of_digitizing_the_physical_world"><span class="s1">IoT Market Projections Article</span></a></li>
<li class="li2"><a href="http://kidehen.blogspot.com/2014/07/nanotation.html"><span class="s1">About Nanotation</span></a></li>
<li class="li2"><a href="http://kidehen.blogspot.com/2014/03/linked-data-deployment-tutorial.html"><span class="s1">Simple Linked Data Deployment Tutorial </span></a><span class="s2"> </span></li>
</ul>
<h2>
<span class="s1">Related</span></h2>
<ul class="ul1">
<li class="li2"><a href="http://linkeddata.uriburner.com/about/html/https/plus.google.com/+KingsleyIdehen/posts/bqWAj5Y3UoB"><span class="s1">Using Nanotations in a G+ Post to create 5-Star Linked Open Data</span></a><span class="s2"> -- Basic G+ Post Description</span></li>
<li class="li2"><a href="http://linkeddata.uriburner.com/c/9D6OCNH7"><span class="s1">Deeper Faceted Browsing view of Nanotation-laced G+ Post</span></a></li>
<li class="li2"><a href="http://linkeddata.uriburner.com/c/9BVUIJ4"><span class="s1">Description of a variety of Market Segments</span></a></li>
<li class="li3"><span class="s3"><a href="http://linkeddata.uriburner.com/fct/rdfdesc/usage.vsp?g=http%3A%2F%2Fwww.openlinksw.com%2Fontology%2Fmarket%23MarketSegment"><span class="s1">Provenance Data for Market Segments Descriptions</span></a></span><span class="s1"> -- an audit-trail of data sources used to create a Linked Open Data meshup from posts across G+ , Facebook, and Twitter.</span></li>
</ul>
</div>
<div>
</div>
<script type="text/turtle">
## What follows are RDF Language sentences where the subject, predicate, and objects of the sentences are identified unambiguously using HTTP URI (hyperlinks).

## Using RDF Language sentences to describing an article, using terms from schema.org, vcard, rdfs, and foaf vocabularies. 

&lt;http://www.mckinsey.com/insights/business_technology/the_internet_of_things_the_value_of_digitizing_the_physical_world/&gt;

a schema:BlogPosting, schema:WebPage ;

rdfs:label &quot;Unlocking the Potential of the Internet of Things&quot; ;

schema:about &lt;https://twitter.com/hashtag/IoT#this&gt; ;

schema:url &lt;http://www.mckinsey.com/insights/business_technology/the_internet_of_things_the_value_of_digitizing_the_physical_world&gt; ;

wdrs:describedby &lt;&gt; .

## Sentences Describing Post Author

&lt;https://www.linkedin.com/in/chuimichael#this&gt;

a foaf:Person ;

foaf:name &quot;Michael Chui&quot; ;

vcard:org &lt;https://www.linkedin.com/company/1371#this&gt; ;

wdrs:describedby &lt;&gt; .  
</script> ]]></content:encoded>
  <rss:link>http://kidehen.blogspot.com/2015/08/beyond-bookmarking.html</rss:link>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2015-08-10T19:57:00Z</dc:date>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://kidehen.blogspot.com/2015/08/dbpedia-pay-as-you-go-pago-cloud-edition.html">
  <rss:title>DBpedia Pay-As-You-Go (PAGO) Cloud Edition </rss:title>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Situation Analysis You appreciate and understand the important role of DBpedia in regards to the live Big Data collective known as the Linked Open Data Cloud, but you need to make personal, enterprise, or service-specific use of its services via a Cloud oriented Pay-As-You-Go offering.  In a nutshell, sharing access to its public Linked Data Pages [1] and SPARQL Query Service [2] with the rest of the world doesn&#39;t quite work for your specific needs.  What is a DBpedia  Pay-As-You-Go (PAGO) AMI?  An Amazon Machine Image (AMI) available from the Elastic Compute Cloud (EC2) provided by Amazon Web Services (AWS).  In regards to DBpedia, this includes: an Elastic Block Storage (EBS)-backed as opposed to older Instance-backed AMI a preconfigured Virtuoso database server and default DBpedia database instance a default license for 10 concurrent database sessions and usage of up to 4 concurrent CPUs (a/k/a 4 CPU Affinity) availability from the Amazon AWS Marketplace. Why is this important?  Convenient One-Click experience in regards to DBpedia instance instantiation combined with the following: ability to start and stop your instance without AMI termination (which isn&#39;t the case with Instance-backed AMIs) being charged for only what you use, on an hourly basis. How?  This process is comprised of the following distinct stages: AWS Signup AWS Marketplace search for &quot;DBpedia 2015)&quot; One-Click Launch Start interacting with your DBpedia Instance (via SSH or HTTP).  AWS Marketplace Search One-Click Instance Launch Instance Interaction via HTTP Administer your instantiated Virtuoso 7.2 AMI via any HTTP browser using the URL pattern: http://{ec2-dns-cname}/conductor Enter your AMI instance-id as the &#39;dba&#39; password when challenged  To access a basic DBpedia entity description page simply enter: http://{ec2-dns-cname}/resource/DBpedia To access a DBpedia Faceted Browser page simply enter: http://{ec2-dns-cname}/describe/?uri=http://dbpedia.org/resource/DBpedia To access the SPARQL Query Service endpoint simply enter: http://{ec2-dns-cname}/sparql To access the Faceted Browsing Service Query Service simply enter: http://{ec2-dns-cname}/fct Virtuoso DBMS Administrator (&quot;Conductor&quot;)  Basic DBpedia Entity Description Page Faceted Browser based Entity Description Page Sample Fact based on a specific Entity Type SPARQL Query Service Endpoint Instance Interaction via SSH Use the following command to log into your instance: ssh -i ec2-user@{pem-based-identity-file} {ec2-dns-cname} e.g., ssh -i xyz.pem ec2-user@ec2-54-160-215-169.compute-1.amazonaws.com Situate yourself in the Virtuoso installation home directory using the command: cd /opt/virtuoso Use the following command to setup your environment via the default environment variables setup script that comes as standard with all Virtuoso installations: . ./virtuoso-environment.sh  Verify your setup by running the command: virtuoso -?  If you choose, you can restart your instance (since its already started as part of the AMI instantiation process) using the command: sudo /etc/rc.d/init.d/virtuoso restart  Interact with your database instance via ISQL using the command: isql  Use your AMI instance-id as the &#39;dba&#39; default password . Now that you have your instance up and running, you can also use protocols such as ODBC, JDBC, ADO.NET, OLE-DB, and XMLA for database instance interaction. Additional Productivity Tools  A collection of Virtuoso Application Distro (VAD) packages are available for installation once your instance is up and running. Packages include: Extract, Transform, and Load Middleware (&quot;Sponger&quot; cartridges)  OpenLink Data Spaces Framework  Open Data Spaces Briefcase -- Provides a file create, save, and share interface for data stored in Virtuoso WedDAV/LDP store while also providing mount functionality across Dropbox, Box., Amazon S3, Google Drive, Microsoft OneDrive, Rackspace, 3rd party WebDAV file servers, etc. Links http://dbpedia.org/resource/DBpedia http://dbpedia.org/sparql Related DBpedia Pay-As-You-Go EBS-backed AMI -- AWS Marketplace Listing DBpedia PAGO Instance Usage Guide DBpedia Home Page Virtuoso Universal Server 7.2 (Enterprise-- Cloud PAGO Edition) -- AWS Marketplace Listing Virtuoso Universal Server 7.2 (Enterprise -- Cloud PAGO Edition) Usage Guide Experience Virtuoso&#39;s Power in 5 Simple Steps</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2>
Situation Analysis</h2>
<div>
You appreciate and understand the important role of DBpedia in regards to the live Big Data collective known as the Linked Open Data Cloud, but you need to make personal, enterprise, or service-specific use of its services via a Cloud oriented Pay-As-You-Go offering. &nbsp;In a nutshell, sharing access to its public Linked Data Pages [1] and SPARQL Query Service [2] with the rest of the world doesn&#39;t quite work for your specific needs.&nbsp;</div>
<h3>
What is a DBpedia &nbsp;Pay-As-You-Go (PAGO) AMI?&nbsp;</h3>
An Amazon Machine Image (AMI) available from the Elastic Compute Cloud (EC2)&nbsp;provided by Amazon Web Services (AWS). &nbsp;In regards to DBpedia, this includes:<br />
<ol>
<li>an Elastic Block Storage (EBS)-backed as opposed to older Instance-backed AMI</li>
<li>a preconfigured Virtuoso database server and default DBpedia database instance</li>
<li>a default license for 10 concurrent database sessions and usage of up to 4 concurrent CPUs (a/k/a 4 CPU Affinity)</li>
<li>availability from the Amazon AWS Marketplace.</li>
</ol>
<h3>
Why is this important?&nbsp;</h3>
Convenient One-Click experience in regards to DBpedia instance instantiation combined with the following:<br />
<ol>
<li>ability to start and stop your instance without AMI termination (which isn&#39;t the case with Instance-backed AMIs)</li>
<li>being charged for only what you use, on an hourly basis.</li>
</ol>
<h3>
How?&nbsp;</h3>
This process is comprised of the following distinct stages:<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<ol>
<li>AWS Signup</li>
<li>AWS Marketplace search for &quot;<b>DBpedia 2015)&quot;</b></li>
<li>One-Click Launch</li>
<li>Start interacting with your DBpedia Instance (via SSH or HTTP).&nbsp;</li>
</ol>
<h4 style="text-align: center;">
AWS Marketplace Search</h4>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxbPw3sIbr72QHdOf0GPugU0c9GujwgUy7mDwm8D85nSEjVPlsL_EHFTrKg-ghNk-UYXBgJHTVJeb5xLi5pEUjkCKQG-u6P3PMOgsxTfNUBu456Kj3rjb_WSXDLTqFQQK2UJpmzV2dPt7bks8/s1600/Screen+Shot+2015-08-05+at+5.12.25+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxbPw3sIbr72QHdOf0GPugU0c9GujwgUy7mDwm8D85nSEjVPlsL_EHFTrKg-ghNk-UYXBgJHTVJeb5xLi5pEUjkCKQG-u6P3PMOgsxTfNUBu456Kj3rjb_WSXDLTqFQQK2UJpmzV2dPt7bks8/s400/Screen+Shot+2015-08-05+at+5.12.25+PM.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div>
<br /></div>
<h4 style="text-align: center;">
One-Click Instance Launch</h4>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh__HFDdyRREVAgzGUO1gP-rdIdBtR_8fvVZztRhgABiIXzxCFmQ9wJeJHr76CdcI-stUMGOI-R8pJysO6IB6OPB6PiY7_PUzrrPaGcgr4mPwNkFGxSflP_NrE5Mka9RgEWsX_nJChbSO5mDLI/s1600/Screen+Shot+2015-08-05+at+5.12.42+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh__HFDdyRREVAgzGUO1gP-rdIdBtR_8fvVZztRhgABiIXzxCFmQ9wJeJHr76CdcI-stUMGOI-R8pJysO6IB6OPB6PiY7_PUzrrPaGcgr4mPwNkFGxSflP_NrE5Mka9RgEWsX_nJChbSO5mDLI/s400/Screen+Shot+2015-08-05+at+5.12.42+PM.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div>
<br /></div>
<h4>
Instance Interaction via HTTP</h4>
<ul>
<li>Administer your instantiated Virtuoso 7.2 AMI via any HTTP browser using the URL pattern: <span style="font-family: Courier New, Courier, monospace;">http://{ec2-dns-cname}/conductor</span></li>
<li>Enter your AMI instance-id as the &#39;dba&#39; password when challenged&nbsp;</li>
<li>To access a basic DBpedia entity description page simply enter: <span style="font-family: Courier New, Courier, monospace;">http://{ec2-dns-cname}/resource/DBpedia</span></li>
<li>To access a DBpedia Faceted Browser page simply enter: <span style="font-family: Courier New, Courier, monospace;">http://{ec2-dns-cname}/describe/?uri=http://dbpedia.org/resource/DBpedia</span></li>
<li>To access the SPARQL Query Service endpoint simply enter: <span style="font-family: Courier New, Courier, monospace;">http://{ec2-dns-cname}/sparql</span></li>
<li>To access the Faceted Browsing Service Query Service simply enter: <span style="font-family: Courier New, Courier, monospace;">http://{ec2-dns-cname}/fct</span></li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
Virtuoso DBMS Administrator (&quot;Conductor&quot;)&nbsp;</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfmnnoC0d8xnwmliZK_QAgVdIU3ufLBhKNk3V83EIzg4JM5sxQWjOhUPaQ89hdKHu55YSZ8mz3GnzlZACyhdnRiPL9ernuHFyuV9S-Wf5nMzrn2zR02BeqzhAyWJFFYZBsqdPdc-7rZZXC17w/s1600/Screen+Shot+2015-08-08+at+1.10.51+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfmnnoC0d8xnwmliZK_QAgVdIU3ufLBhKNk3V83EIzg4JM5sxQWjOhUPaQ89hdKHu55YSZ8mz3GnzlZACyhdnRiPL9ernuHFyuV9S-Wf5nMzrn2zR02BeqzhAyWJFFYZBsqdPdc-7rZZXC17w/s400/Screen+Shot+2015-08-08+at+1.10.51+PM.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Basic DBpedia Entity Description Page</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghmmnZqHlP6-URiL8ssjToWT_AwlSEkYV1We-fcsVtQVoQbkJgJsrYorMOYKHgHTNDharoJdInJsRcMOJNvYLQhISrTUmD4XRwn0OiEFGw_1SIV8BBDp63dRmtHzJ_BIGh4cwPaE4Hd07GJ9Y/s1600/Screen+Shot+2015-08-08+at+4.07.20+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghmmnZqHlP6-URiL8ssjToWT_AwlSEkYV1We-fcsVtQVoQbkJgJsrYorMOYKHgHTNDharoJdInJsRcMOJNvYLQhISrTUmD4XRwn0OiEFGw_1SIV8BBDp63dRmtHzJ_BIGh4cwPaE4Hd07GJ9Y/s400/Screen+Shot+2015-08-08+at+4.07.20+PM.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Faceted Browser based Entity Description Page</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfM0CLTdbtNJkbVG8nKvRwgDvlXqzv1POd2yG9IkEFsu7ojQWWDYSR7gQhsIPa2KjuoXHL2sdpniXgc_oyy4hcWuk8PmEUvhwZrKfYDbxyoGuqd6KlH38wpv5OiIRRwBIw8DsC4QqXuKcSK-8/s1600/Screen+Shot+2015-08-08+at+4.08.03+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="207" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfM0CLTdbtNJkbVG8nKvRwgDvlXqzv1POd2yG9IkEFsu7ojQWWDYSR7gQhsIPa2KjuoXHL2sdpniXgc_oyy4hcWuk8PmEUvhwZrKfYDbxyoGuqd6KlH38wpv5OiIRRwBIw8DsC4QqXuKcSK-8/s400/Screen+Shot+2015-08-08+at+4.08.03+PM.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Sample Fact based on a specific Entity Type</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBcEMix9SSd8B6aMetUOQ9nMoOSwlkWc2ZJqD30d3qYGxMn6LXXM43LOBe6cMVE2egRrt_j4XQvs8Q_zTmxte-Y2WExZUFrWoyQ4BrY3r2g0b7jI6xVsjEn2i4GJz4TO7AzMaO8jiI5GLuDjY/s1600/Screen+Shot+2015-08-08+at+4.11.00+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBcEMix9SSd8B6aMetUOQ9nMoOSwlkWc2ZJqD30d3qYGxMn6LXXM43LOBe6cMVE2egRrt_j4XQvs8Q_zTmxte-Y2WExZUFrWoyQ4BrY3r2g0b7jI6xVsjEn2i4GJz4TO7AzMaO8jiI5GLuDjY/s400/Screen+Shot+2015-08-08+at+4.11.00+PM.png" width="400" /></a></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
SPARQL Query Service Endpoint</div>
<div style="text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiclcbeA9SdySQYjxRodoYa7gx2i3lLERKcOFPxby3cZIhisSFBB1o8YKfjhF5pi3fu_OfV2jPR76cvWpv9GZ1kMS86M_J9JLkID4OD8U3rbF2BJc0-YTwQ_S14rPXNUMxCN9L1raUju8DSkNE/s1600/Screen+Shot+2015-08-08+at+4.14.23+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="203" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiclcbeA9SdySQYjxRodoYa7gx2i3lLERKcOFPxby3cZIhisSFBB1o8YKfjhF5pi3fu_OfV2jPR76cvWpv9GZ1kMS86M_J9JLkID4OD8U3rbF2BJc0-YTwQ_S14rPXNUMxCN9L1raUju8DSkNE/s400/Screen+Shot+2015-08-08+at+4.14.23+PM.png" width="400" /></a></div>
<div style="text-align: center;">
<br /></div>
<br />
<div>
<h4>
Instance Interaction via SSH</h4>
</div>
<ul>
<li>Use the following command to log into your instance:&nbsp;<span style="font-family: Courier New, Courier, monospace;">ssh -i ec2-user@{pem-based-identity-file} {ec2-dns-cname}</span>&nbsp;e.g.,&nbsp;<span style="font-family: Courier New, Courier, monospace;">ssh -i xyz.pem ec2-user@<span style="color: #444444; font-size: 13px; line-height: 20px;">ec2-54-160-215-169.compute-1.amazonaws.com</span></span></li>
<li>Situate yourself in the Virtuoso installation home directory using the command: <span style="font-family: Courier New, Courier, monospace;">cd /opt/virtuoso</span></li>
</ul>
<ul>
<li>Use the following command to setup your environment via the default environment variables setup script that comes as standard with all Virtuoso installations: <span style="font-family: Courier New, Courier, monospace;">. ./virtuoso-environment.sh</span>&nbsp;</li>
</ul>
<ul>
<li>Verify your setup by running the command: virtuoso -?&nbsp;</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: center;">
<div class="separator" style="clear: both;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxkCle9j0etP6KS2BOJoaqy0QXedSbrFH2wp9t_sCzJ0TyCrA-C2hbnh3yzmzwxWOfMsOxVouYQO_EQFg8N4PXu5IhuDfoTIfQsw7uxxxhna6HYWz7Oa-d_zMsoIC4gkjH0nw5qiDZgx7x-C0/s1600/Screen+Shot+2015-08-08+at+12.57.55+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="273" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxkCle9j0etP6KS2BOJoaqy0QXedSbrFH2wp9t_sCzJ0TyCrA-C2hbnh3yzmzwxWOfMsOxVouYQO_EQFg8N4PXu5IhuDfoTIfQsw7uxxxhna6HYWz7Oa-d_zMsoIC4gkjH0nw5qiDZgx7x-C0/s400/Screen+Shot+2015-08-08+at+12.57.55+PM.png" width="400" /></a></div>
<br /></div>
<div style="text-align: center;">
<ul>
<li style="text-align: left;">If you choose, you can restart your instance (since its already started as part of the AMI instantiation process) using the command: sudo /etc/rc.d/init.d/virtuoso restart&nbsp;</li>
<li style="text-align: left;">Interact with your database instance via ISQL using the command: isql&nbsp;</li>
<li style="text-align: left;">Use your AMI instance-id as the &#39;dba&#39; default password .</li>
</ul>
</div>
Now that you have your instance up and running, you can also use protocols such as ODBC, JDBC, ADO.NET, OLE-DB, and XMLA for database instance interaction.<br />
<h4>
Additional Productivity Tools&nbsp;</h4>
A collection of Virtuoso Application Distro (VAD) packages are available for installation once your instance is up and running. Packages include:<br />
<ul>
<li>Extract, Transform, and Load Middleware (&quot;Sponger&quot; cartridges)&nbsp;</li>
<li>OpenLink Data Spaces Framework&nbsp;</li>
<li>Open Data Spaces Briefcase -- Provides a file create, save, and share interface for data stored in Virtuoso WedDAV/LDP store while also providing mount functionality across Dropbox, Box., Amazon S3, Google Drive, Microsoft OneDrive, Rackspace, 3rd party WebDAV file servers, etc.</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5juek_eehCCjzfD-p87rhzyqJyUg8Wil-S8DdcVMtc6lwM9JbUThy7uimVSsxMKmgc94sI2r0ie-eWiTYRVcwMI7Yp9o6u6niRo-Z8f3kU6zW9O0Ue9U7ljcRz6KF9SaAmhaL0V4QmkTNqr0/s1600/Screen+Shot+2015-08-08+at+1.32.40+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="243" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5juek_eehCCjzfD-p87rhzyqJyUg8Wil-S8DdcVMtc6lwM9JbUThy7uimVSsxMKmgc94sI2r0ie-eWiTYRVcwMI7Yp9o6u6niRo-Z8f3kU6zW9O0Ue9U7ljcRz6KF9SaAmhaL0V4QmkTNqr0/s400/Screen+Shot+2015-08-08+at+1.32.40+PM.png" width="400" /></a></div>
<div>
<br /></div>
<br />
<h2>
Links</h2>
<div>
<ol>
<li><a href="http://dbpedia.org/resource/DBpedia">http://dbpedia.org/resource/DBpedia</a></li>
<li><a href="http://dbpedia.org/sparql">http://dbpedia.org/sparql</a></li>
</ol>
</div>
<h2>
Related</h2>
<ul>
<li><a href="https://aws.amazon.com/marketplace/pp/B012DSCFEK">DBpedia Pay-As-You-Go EBS-backed AMI</a>&nbsp;-- AWS Marketplace Listing</li>
<li><a href="http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtPayAsYouGoEBSBackedAMIDBpedia2015">DBpedia PAGO Instance Usage Guide</a></li>
<li><a href="http://dbpedia.org/About">DBpedia Home Page</a></li>
<li><a href="https://aws.amazon.com/marketplace/pp/B011VMCZ8K/">Virtuoso Universal Server 7.2 (Enterprise-- Cloud PAGO Edition)</a>&nbsp;-- AWS Marketplace Listing</li>
<li><a href="http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtPayAsYouGoEBSBackedAMI">Virtuoso Universal Server 7.2 (Enterprise -- Cloud PAGO Edition) Usage Guide</a></li>
<li><a href="http://kidehen.blogspot.com/2015/03/experiencing-power-of-virtuoso-in-5.html">Experience Virtuoso&#39;s Power in 5 Simple Steps</a></li>
</ul>
<br />
<br />]]></content:encoded>
  <rss:link>http://kidehen.blogspot.com/2015/08/dbpedia-pay-as-you-go-pago-cloud-edition.html</rss:link>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2015-08-09T00:24:00Z</dc:date>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://kidehen.blogspot.com/2015/08/virtuoso-pay-as-you-go-cloud-edition.html">
  <rss:title>Virtuoso Pay-As-You-Go Cloud Edition for Amazon AWS Cloud</rss:title>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Situation Analysis You are looking to explore the powerful data creation, access, integration, and management capabilities of Virtuoso&#39;s multi-model RDBMS and Linked Open Data deployment services (amongst other features), but would prefer to pursue this effort via the Amazon AWS Cloud on a Pay-As-You-Go (PAGO) basis.  What is a Virtuoso Pay-As-You-Go (PAGO) AMI?  An Amazon Machine Image (AMI) available from the Elastic Compute Cloud (EC2) provided by Amazon Web Services (AWS).  In regards to Virtuoso, this includes: an Elastic Block Storage (EBS)-backed as opposed to older Instance-backed AMI a preconfigured database server and default database instance a default license for 10 concurrent database sessions and usage of up to 4 concurrent CPUs (a/k/a 4 CPU Affinity) availability from the Amazon AWS Marketplace. Why is this important?  Convenient One-Click experience in regards to Virtuoso instance instantiation combined with the following: ability to start and stop your instance without AMI termination (which isn&#39;t the case with Instance-backed AMIs) being charged only for what you use, on an hourly basis. How?  This process is comprised of the following distinct stages: AWS Signup AWS Marketplace search for &quot;Virtuoso Universal Server 7.2.x (Enterprise-- Cloud PAGO Edition)&quot; One-Click Launch Start interacting with your Virtuoso Instance (via SSH or HTTP).  AWS Marketplace Search One-Click Instance Launch Instance Interaction via HTTP Administer your instantiated Virtuoso 7.2.x AMI via any HTTP browser using the URL pattern: http://{ec2-dns-cname}/conductor Enter your AMI instance-id as the &#39;dba&#39; password when challenged . Instance Interaction via SSH Use the following command to log into your instance: ssh -i ec2-user@{pem-based-identity-file} {ec2-dns-cname} e.g., ssh -i xyz.pem ec2-user@ec2-54-160-215-169.compute-1.amazonaws.com Situate yourself in the Virtuoso installation home directory using the command: cd /opt/virtuoso Use the following command to setup your environment via the default environment variables setup script that comes as standard with all Virtuoso installations: . ./virtuoso-environment.sh  Verify your setup by running the command: virtuoso -?  If you choose, you can restart your instance (since its already started as part of the AMI instantiation process) using the command: sudo /etc/rc.d/init.d/virtuoso restart  Interact with your database instance via ISQL using the command: isql  Use your AMI instance-id as the &#39;dba&#39; default password . Now that you have your instance up and running, you can also use protocols such as ODBC, JDBC, ADO.NET, OLE-DB, and XMLA for database instance interaction. Instance Interaction via SPARQL Query Protocol Goto: http://{ec2-dns-cname}/sparql Type in a SPARQL Query Language base query  . Additional Productivity Tools  A collection of Virtuoso Application Distro (VAD) packages are available for installation once your instance is up and running. Packages include: Extract, Transform, and Load Middleware (&quot;Sponger&quot; cartridges)  Faceted Browser (FCT) -- for powerful Linked Open Data exploration OpenLink Data Spaces Framework  Open Data Spaces Briefcase -- Provides a file create, save, and share interface for data stored in Virtuoso WedDAV/LDP store while also providing mount functionality across Dropbox, Box., Amazon S3, Google Drive, Microsoft OneDrive, Rackspace, 3rd party WebDAV file servers, etc. Related Experience Virtuoso&#39;s Power in 5 Simple Steps Virtuoso Universal Server 7.2.x (Enterprise-- Cloud PAGO Edition) -- AWS Marketplace Listing Virtuoso Universal Server 7.x (Enterprise -- Cloud PAGO Edition) Usage Guide DBpedia Pay-As-You-Go EBS-backed AMI -- AWS Marketplace Listing DBpedia PAGO Instance Usage Guide Virtuoso EC2 AMIs Guide  Virtuoso Pre-loaded and Pre-configured Virtuoso Instance -- Bring Your Own License (BYOL) based EBS-backed instance Virtuoso Home Page</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2>
Situation Analysis</h2>
<div>
You are looking to explore the powerful data creation, access, integration, and management capabilities of Virtuoso&#39;s multi-model RDBMS and Linked Open Data deployment services (amongst other features), but would prefer to pursue this effort via the Amazon AWS Cloud on a Pay-As-You-Go (PAGO) basis. </div>
<h3>
What is a Virtuoso Pay-As-You-Go (PAGO) AMI? </h3>
An Amazon Machine Image (AMI) available from the Elastic Compute Cloud (EC2) provided by Amazon Web Services (AWS).  In regards to Virtuoso, this includes:<br />
<ol>
<li>an Elastic Block Storage (EBS)-backed as opposed to older Instance-backed AMI</li>
<li>a preconfigured database server and default database instance</li>
<li>a default license for 10 concurrent database sessions and usage of up to 4 concurrent CPUs (a/k/a 4 CPU Affinity)</li>
<li>availability from the Amazon AWS Marketplace.</li>
</ol>
<h3>
Why is this important? </h3>
Convenient One-Click experience in regards to Virtuoso instance instantiation combined with the following:<br />
<ol>
<li>ability to start and stop your instance without AMI termination (which isn&#39;t the case with Instance-backed AMIs)</li>
<li>being charged only for what you use, on an hourly basis.</li>
</ol>
<h3>
How? </h3>
This process is comprised of the following distinct stages:<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<ol>
<li>AWS Signup</li>
<li>AWS Marketplace search for &quot;<b>Virtuoso Universal Server 7.2.x (Enterprise-- Cloud PAGO Edition)&quot;</b></li>
<li>One-Click Launch</li>
<li>Start interacting with your Virtuoso Instance (via SSH or HTTP). </li>
</ol>
<h4 style="text-align: center;">
AWS Marketplace Search</h4>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXMWCu00k_n_nmlgOxZAWccOVuiVlLMgOwypFb7VbBha7QragSCjxseA8zaSfMzHMY8a7vaup0jO1hyphenhyphencbn0__vc3DBVkRKIDabsu97m5Isdy3leGhBB-kxeiiEEgOX3WVsg2ygVuqkhQu_wgU/s1600/Screen+Shot+2015-08-05+at+12.57.02+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXMWCu00k_n_nmlgOxZAWccOVuiVlLMgOwypFb7VbBha7QragSCjxseA8zaSfMzHMY8a7vaup0jO1hyphenhyphencbn0__vc3DBVkRKIDabsu97m5Isdy3leGhBB-kxeiiEEgOX3WVsg2ygVuqkhQu_wgU/s320/Screen+Shot+2015-08-05+at+12.57.02+PM.png" width="320" /></a></div>
<div>
<br /></div>
<h4 style="text-align: center;">
One-Click Instance Launch</h4>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWSUfa_19BjtuR0znKgUnPrMnBjlR27RrmygpNW-ezHecFd9C-GtUWx2lhqDqaXHA3XlJXVmzE2kq3Kt5rV-DGoWmxNDoXmhP3r8iWmgKjJsyN3UL5XU9dI7RC6mLe12vkqGMk2oGwLaYG678/s1600/Screen+Shot+2015-08-05+at+2.13.16+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWSUfa_19BjtuR0znKgUnPrMnBjlR27RrmygpNW-ezHecFd9C-GtUWx2lhqDqaXHA3XlJXVmzE2kq3Kt5rV-DGoWmxNDoXmhP3r8iWmgKjJsyN3UL5XU9dI7RC6mLe12vkqGMk2oGwLaYG678/s320/Screen+Shot+2015-08-05+at+2.13.16+PM.png" width="320" /></a></div>
<div>
<br /></div>
<h4>
Instance Interaction via HTTP</h4>
<ul>
<li>Administer your instantiated Virtuoso 7.2.x AMI via any HTTP browser using the URL pattern: http://{ec2-dns-cname}/conductor</li>
<li>Enter your AMI instance-id as the &#39;dba&#39; password when challenged .</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfmnnoC0d8xnwmliZK_QAgVdIU3ufLBhKNk3V83EIzg4JM5sxQWjOhUPaQ89hdKHu55YSZ8mz3GnzlZACyhdnRiPL9ernuHFyuV9S-Wf5nMzrn2zR02BeqzhAyWJFFYZBsqdPdc-7rZZXC17w/s1600/Screen+Shot+2015-08-08+at+1.10.51+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="127" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfmnnoC0d8xnwmliZK_QAgVdIU3ufLBhKNk3V83EIzg4JM5sxQWjOhUPaQ89hdKHu55YSZ8mz3GnzlZACyhdnRiPL9ernuHFyuV9S-Wf5nMzrn2zR02BeqzhAyWJFFYZBsqdPdc-7rZZXC17w/s320/Screen+Shot+2015-08-08+at+1.10.51+PM.png" width="320" /></a></div>
<div>
<br /></div>
<div>
<h4>
Instance Interaction via SSH</h4>
</div>
<ul>
<li>Use the following command to log into your instance: <span style="font-family: &quot;courier new&quot; , &quot;courier&quot; , monospace;">ssh -i ec2-user@{pem-based-identity-file} {ec2-dns-cname}</span> e.g., <span style="font-family: &quot;courier new&quot; , &quot;courier&quot; , monospace;">ssh -i xyz.pem ec2-user@<span style="color: #444444; font-size: 13px; line-height: 20px;">ec2-54-160-215-169.compute-1.amazonaws.com</span></span></li>
<li>Situate yourself in the Virtuoso installation home directory using the command: cd /opt/virtuoso</li>
</ul>
<ul>
<li>Use the following command to setup your environment via the default environment variables setup script that comes as standard with all Virtuoso installations: . ./virtuoso-environment.sh </li>
</ul>
<ul>
<li>Verify your setup by running the command: virtuoso -? </li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: center;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxkCle9j0etP6KS2BOJoaqy0QXedSbrFH2wp9t_sCzJ0TyCrA-C2hbnh3yzmzwxWOfMsOxVouYQO_EQFg8N4PXu5IhuDfoTIfQsw7uxxxhna6HYWz7Oa-d_zMsoIC4gkjH0nw5qiDZgx7x-C0/s1600/Screen+Shot+2015-08-08+at+12.57.55+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="219" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxkCle9j0etP6KS2BOJoaqy0QXedSbrFH2wp9t_sCzJ0TyCrA-C2hbnh3yzmzwxWOfMsOxVouYQO_EQFg8N4PXu5IhuDfoTIfQsw7uxxxhna6HYWz7Oa-d_zMsoIC4gkjH0nw5qiDZgx7x-C0/s320/Screen+Shot+2015-08-08+at+12.57.55+PM.png" width="320" /></a></div>
<br /></div>
<div style="text-align: center;">
<ul>
<li style="text-align: left;">If you choose, you can restart your instance (since its already started as part of the AMI instantiation process) using the command: sudo /etc/rc.d/init.d/virtuoso restart </li>
<li style="text-align: left;">Interact with your database instance via ISQL using the command: isql </li>
<li style="text-align: left;">Use your AMI instance-id as the &#39;dba&#39; default password .</li>
</ul>
</div>
Now that you have your instance up and running, you can also use protocols such as ODBC, JDBC, ADO.NET, OLE-DB, and XMLA for database instance interaction.<br />
<h4>
Instance Interaction via SPARQL Query Protocol</h4>
<div>
<ul>
<li>Goto: http://{ec2-dns-cname}/sparql</li>
<li>Type in a SPARQL Query Language base query  .</li>
</ul>
</div>
<h4>
Additional Productivity Tools </h4>
A collection of Virtuoso Application Distro (VAD) packages are available for installation once your instance is up and running. Packages include:<br />
<br />
<ul>
<li>Extract, Transform, and Load Middleware (&quot;Sponger&quot; cartridges) </li>
<li>Faceted Browser (FCT) -- for powerful Linked Open Data exploration</li>
<li>OpenLink Data Spaces Framework </li>
<li>Open Data Spaces Briefcase -- Provides a file create, save, and share interface for data stored in Virtuoso WedDAV/LDP store while also providing mount functionality across Dropbox, Box., Amazon S3, Google Drive, Microsoft OneDrive, Rackspace, 3rd party WebDAV file servers, etc.</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5juek_eehCCjzfD-p87rhzyqJyUg8Wil-S8DdcVMtc6lwM9JbUThy7uimVSsxMKmgc94sI2r0ie-eWiTYRVcwMI7Yp9o6u6niRo-Z8f3kU6zW9O0Ue9U7ljcRz6KF9SaAmhaL0V4QmkTNqr0/s1600/Screen+Shot+2015-08-08+at+1.32.40+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="195" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5juek_eehCCjzfD-p87rhzyqJyUg8Wil-S8DdcVMtc6lwM9JbUThy7uimVSsxMKmgc94sI2r0ie-eWiTYRVcwMI7Yp9o6u6niRo-Z8f3kU6zW9O0Ue9U7ljcRz6KF9SaAmhaL0V4QmkTNqr0/s320/Screen+Shot+2015-08-08+at+1.32.40+PM.png" width="320" /></a></div>
<div>
<br /></div>
<br />
<h2>
Related</h2>
<ul>
<li><a href="http://kidehen.blogspot.com/2015/03/experiencing-power-of-virtuoso-in-5.html">Experience Virtuoso&#39;s Power in 5 Simple Steps</a></li>
<li><a href="https://aws.amazon.com/marketplace/pp/B011VMCZ8K">Virtuoso Universal Server 7.2.x (Enterprise-- Cloud PAGO Edition)</a> -- AWS Marketplace Listing</li>
<li><a href="http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtPayAsYouGoEBSBackedAMI">Virtuoso Universal Server 7.x (Enterprise -- Cloud PAGO Edition) Usage Guide</a></li>
<li><a href="https://aws.amazon.com/marketplace/pp/B012DSCFEK">DBpedia Pay-As-You-Go EBS-backed AMI</a> -- AWS Marketplace Listing</li>
<li><a href="http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtPayAsYouGoEBSBackedAMIDBpedia2015">DBpedia PAGO Instance Usage Guide</a></li>
<li><a href="http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtInstallationEC2">Virtuoso EC2 AMIs Guide</a> </li>
<li><a href="http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtEBSBackedBYOLAMI">Virtuoso Pre-loaded and Pre-configured Virtuoso Instance</a> -- Bring Your Own License (BYOL) based EBS-backed instance</li>
<li><a href="http://virtuoso.openlinksw.com/">Virtuoso Home Page</a></li>
</ul>
<br />
<br />
<br />]]></content:encoded>
  <rss:link>http://kidehen.blogspot.com/2015/08/virtuoso-pay-as-you-go-cloud-edition.html</rss:link>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2015-08-08T21:36:00Z</dc:date>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://kidehen.blogspot.com/2015/07/situation-analysis-never-day-goes-by.html">
  <rss:title>Data &amp; Semantics</rss:title>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Situation Analysis Never a day goes by without the issues of &quot;Data&quot; and &quot;Semantics&quot; popping up. Unfortunately, characterization of these items ultimately confuse rather than clarify the important topics at hand. What is Data? I&#39;ve published a detailed presentation on this topic on SlideShare [1]. Basically, Data is how we express Observation (what we experience) in reusable form. Actual data representation ultimately takes the form of entity relationships, inscribed to documents using a variety of notations, and then persisted using a variety of serialization formats. Fundamentally, data is represented using a language — a system of signs, syntax, and semantics for encoding and decoding information (data in some context), using sentences/statements/&quot;datums&quot;. Each sentence/statement/datum represents a singular observation. (Some entertaining but distracting digressions — into whether the English singular datum is properly pluralized as datums or data, as datum&#39;s Latin origin might suggest; and whether the English data is a &quot;mass noun&quot; in its own right — are left for another day.) Now that we have the basic unit of data expression in place — i.e., the sentence — further decomposition reveals key components such as the subject, predicate, and object (i.e., &quot;parts of speech&quot;; also known as the entity, attribute, and value, or the subject, verb, and object). Sentence Construction To create a sentence, you must have a sign (&quot;identifier&quot; or &quot;signifier&quot;) mechanism for denoting the subject, predicate, and object of that sentence. Ideally, signs should function like names (i.e., be interpretable by way of lookup or &quot;de-reference&quot;). With signs in place, sentences need to be arranged in some systematic order (e.g., subject -&gt; predicate -&gt; object), according to the rules (or grammar) of a given language. With signs and grammatical arrangement in place, the semantics (or meaning) of the subject, predicate, and object roles in a sentence need to be understood. For instance, the subject role is for the focal point entity in a relationship that possesses some discernible characteristic (or attribute). The predicate role is for the characteristic (attribute) name. The object role is for the characteristic (attribute) value. Each of the roles above collectively impact comprehension of the nature of a relationship type (a relation) and its membership (collections of sentences that represent entities related in a specific way, determined by relationship type). Properties of Relationship Types Two or more entities can be related (connected) in a variety of ways, and the nature of said relationship types (relations) could be reflexive, symmetric, and/or transitive, among others. [2][3] Simple examples A &quot;knows&quot; relationship type is defined as one that can only have a Person as the subject and another Person as the object. An &quot;employed by&quot; relationship type is defined as one that can only have a Person as the subject and an Organization as the object. A &quot;mother of&quot; relationship type is defined as one that can only have a Female Person as the subject and a Person as the object. Subject -&gt; Predicate -&gt; Object Sentence Represented as a Directed Graph Entity -&gt; Attribute -&gt; Value Sentence Represented as a Directed Graph Data and Semantics Challenge? The real challenge are as follows: Open Standards for digital sentence representation — e.g., the RDF Language from the W3C (a retrospective standardization of what was already baked into Architecture of the World Wide Web [4]) Open Standards for signs that function like names — e.g., HTTP [5] URIs (hyperlinks) from IETF [6] Open Standards for machine-comprehensible representation of relationship type semantics — e.g., RDF Schema and OWL. These are collections of RDF statements (packaged as a vocabulary or ontology) that describe the nature of different entity relationship types, in machine-comprehensible form. Open Standards-based Query Language for interacting with relations represented as fine-grained sentence/statement graphs, rather than as coarse-grained records in a table Database Management Systems that can manage data represented as sentence/statement graphs, using the open standards above, without compromising access, performance, scalability, or security. Here are a couple of links to live examples, hosted by our Virtuoso Database [7], showcasing the effect of relations and their semantics: http://linkeddata.uriburner.com/c/9SD2GWT -- without reasoning and inference applied to owl:sameAs relation semantics (which is reflective, symmetric, and transitive) http://linkeddata.uriburner.com/c/8CWGD3 -- with reasoning and inference based owl:sameAs relation semantics . Conclusion Contrary to general misconceptions, typically arising from very loose use of what could have been precise terminology, what we know as Data lies at the root of Language and is effectively mankind&#39;s most powerful tool. Our real challenge still lies in getting computers to augment our existing ability to communicate via sentences and statements. Pulling this off is much easier than is commonly assumed — the use of very basic sentences (at the level of a three-year-old) would escalate the power of computing and overall human productivity to unimaginable levels, as already demonstrated by what&#39;s happened thus far on the World Wide Web, where we have plenty of words, but no implicit sense of whether these are nouns, verbs, or adjectives, never mind whether they form sentences. &quot;Big Data&quot; is currently understood to mean, roughly, &quot;we have lots of books containing lots of sentences, written by many authors in a variety of notations, printed in a variety of formats, which are well beyond the storage capacity of a single library&quot; — or &quot;we have lots of files containing lots of statements, written by many observers in a variety of styles, saved in a variety of formats, which are well beyond the storage capacity of a single DBMS.&quot; Conflating SQL and RDBMS is akin to claiming that sentences in books can only be presented as tables comprised of rows and columns. &quot;NoSQL&quot; is an attempt to repudiate the aforementioned conflation of SQL and RDBMS, but it doesn&#39;t emphatically hone into the notion of a sentence as the mechanism for representing entity relationships, nor the nature of entity relationship types. Instead, we&#39;ve wound up with &quot;Graph&quot; which is just another confusing term. Ultimately, the semantics of relations are what matter. These semantics are how we encode and decode information, enabling us to put data in perceptive context, en route to creating knowledge by putting that same data into cognitive context. Reference Links Understanding Data presentation on SlideShare Binary Relationship Types (Relations) article on Wikipedia Mathematical Relations from DBpedia via a document describing its subject via a collection of relations (properties) Architecture of the World Wide Web RFC 7540: Hypertext Transfer Protocol Version 2 (HTTP/2) RFC 3986: Uniform Resource Identifier (URI): Generic Syntax OpenLink Virtuoso Home Page. Related Conceptual Data Virtualization (semantically enhanced data integration across heterogeneous SQL data sources) Data Silos are Killing Data Flow Demonstrating Reasoning &amp; Inference via SPARQL Query Language &quot;Heavy Metal Fan&quot; -- Illustrating why Relation Semantics are important Data &amp; Database related Glossary of Terms -- constructed using RDF Language based sentences.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2>
Situation Analysis</h2>
Never a day goes by without the issues of &quot;Data&quot; and &quot;Semantics&quot; popping up. Unfortunately, characterization of these items ultimately confuse rather than clarify the important topics at hand.<br />
<h2>
What is Data?</h2>
I&#39;ve published a detailed presentation on this topic on SlideShare [<a href="http://www.slideshare.net/kidehen/understanding-29894555">1</a>]. Basically, Data is how we express Observation (what we experience) in reusable form.<br />
<br />
<div style="clear: both; text-align: center;">
<a href="http://www.slideshare.net/kidehen/understanding-29894555/7" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="292" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisgmRT7rkbSEXw0ppD0AOKH-uyG5nbrQ-KgrRgdcz8N5YVuqpn1Q7hyphenhyphenARf9R-NFJWoq-1dGycF-MO5S5VfH2yfAz5ew1ffBeLTz4Ax4Lj83-P88UD39NSGYd-_vdc31Zcj1MbDPHCTTNmLq8s/s400/what-is-data.png" width="400" /></a></div>
<br />
Actual data representation ultimately takes the form of entity relationships, inscribed to documents using a variety of notations, and then persisted using a variety of serialization formats.<br />
<br />
Fundamentally, data is represented using a language — a system of signs, syntax, and semantics for encoding and decoding information (data in some context), using sentences/statements/&quot;datums&quot;. Each sentence/statement/datum represents a singular observation.<br />
<br />
(Some entertaining but distracting digressions — into whether the English singular <i>datum</i> is properly pluralized as <i>datums</i> or <i>data,</i> as datum&#39;s Latin origin might suggest; and whether the English <i>data</i> is a &quot;mass noun&quot; in its own right — are left for another day.)<br />
<br />
Now that we have the basic unit of data expression in place — i.e., the sentence — further decomposition reveals key components such as the subject, predicate, and object (i.e., &quot;parts of speech&quot;; also known as the entity, attribute, and value, or the subject, verb, and object).<br />
<br />
<br />
<div style="clear: both; text-align: center;">
<a href="http://www.slideshare.net/kidehen/understanding-29894555/55" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="301" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0A5D-mdDcNz4aLqWYglXlKVxdm8D72S5o_LUmy0DOQRAiJug04RBap99uScCzkvHW9ZrPSuomtjBMMwom5rDfiufEYKHWo_8rhLdNW3bgFTJpvr37IoCyC7iezoJ9NMV9W5SHG0wYhL55LS0/s400/rdf-natural-lang-quote-sowa-lenat.png" width="400" /></a></div>
<br />
<h3>
Sentence Construction</h3>
To create a sentence, you must have a sign (&quot;identifier&quot; or &quot;signifier&quot;) mechanism for denoting the subject, predicate, and object of that sentence. Ideally, signs should function like names (i.e., be interpretable by way of lookup or &quot;de-reference&quot;).<br />
<br />
With signs in place, sentences need to be arranged in some systematic order (e.g., subject -&gt; predicate -&gt; object), according to the rules (or <i>grammar</i>) of a given language. <br />
<br />
With signs and grammatical arrangement in place, the semantics (or <i>meaning</i>) of the subject, predicate, and object roles in a sentence need to be understood. For instance, the subject role is for the focal point entity in a relationship that possesses some discernible characteristic (or attribute). The predicate role is for the characteristic (attribute) name. The object role is for the characteristic (attribute) value. <br />
<br />
Each of the roles above collectively impact comprehension of the nature of a relationship type (a <i>relation</i>) and its membership (collections of sentences that represent entities related in a specific way, determined by relationship type).<br />
<br />
<h4>
Properties of Relationship Types</h4>
Two or more entities can be related (connected) in a variety of ways, and the nature of said relationship types (relations) could be <a href="https://en.wikipedia.org/wiki/Reflexive_relation">reflexive</a>, <a href="https://en.wikipedia.org/wiki/Symmetric_relation">symmetric</a>, and/or <a href="https://en.wikipedia.org/wiki/Transitive_relation">transitive</a>, among others. [<a href="https://en.wikipedia.org/wiki/Binary_relation"><span class="s2">2</span></a>][<a href="http://dbpedia.org/c/9BZF6IVK"><span class="s2">3</span></a>]<br />
<h4>
Simple examples</h4>
<ul>
<li>A <i>&quot;knows&quot;</i> relationship type is defined as one that can only have a <i>Person</i> as the subject and another <i>Person</i> as the object.</li>
<li>An <i>&quot;employed by&quot;</i> relationship type is defined as one that can only have a <i>Person</i> as the subject and an <i>Organization</i> as the object.</li>
<li>A <i>&quot;mother of&quot;</i> relationship type is defined as one that can only have a <i>Female Person</i> as the subject and a <i>Person</i> as the object.</li>
</ul>
<table style="border-spacing: 10px; margin-left: auto; margin-right: auto; padding: 10px; width: 95%;"><tbody>
<tr style="text-align: center;"> <td style="text-align: center; width: 45%;"><br />
<div style="text-align: center;">
<b>Subject -&gt; Predicate -&gt; Object Sentence</b> <br />
Represented as a Directed Graph</div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRLgL1ZUhbQ_g88AjZMdOSR2c_H8Nx-YMuGqO4zg2G6F99j0dNp51nMmF4n_hdFn3omL6DpkxiCfELwxy0cE-b-mDQQmvFm9sok9ItzxkS5rltVljFvyM1oBl1gBAmaNFOZI9fVWw14V7cPZo/s1600/slide_50_subjec-predicate-object-relations-sentences-new-key-layering.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="248" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRLgL1ZUhbQ_g88AjZMdOSR2c_H8Nx-YMuGqO4zg2G6F99j0dNp51nMmF4n_hdFn3omL6DpkxiCfELwxy0cE-b-mDQQmvFm9sok9ItzxkS5rltVljFvyM1oBl1gBAmaNFOZI9fVWw14V7cPZo/s350/slide_50_subjec-predicate-object-relations-sentences-new-key-layering.png" width="350" /></a></td> <td style="text-align: center; width: 45%;"><br />
<div style="text-align: center;">
<b>Entity -&gt; Attribute -&gt; Value Sentence</b> <br />
Represented as a Directed Graph</div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgc5NQfvLOuuDxA4dkZ0eY8BZ5_Nkk4NuY08bIVOmhP_kJlLRUVtAx4swlADhjyfhOB4ggdh1g8412bgLrhO-5ByJOHvJxBL1x9N0EfJE2sf9OxRb3ry8GbfwBdKWjD2l2UfDtGOdqV1bGvN2Q/s1600/slide_50_entity-attribute-value-relations-new-key-layering.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="253" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgc5NQfvLOuuDxA4dkZ0eY8BZ5_Nkk4NuY08bIVOmhP_kJlLRUVtAx4swlADhjyfhOB4ggdh1g8412bgLrhO-5ByJOHvJxBL1x9N0EfJE2sf9OxRb3ry8GbfwBdKWjD2l2UfDtGOdqV1bGvN2Q/s350/slide_50_entity-attribute-value-relations-new-key-layering.png" width="350" /></a></td> </tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<h2>
Data and Semantics Challenge?</h2>
<br />
The real challenge are as follows:<br />
<ul>
<li>Open Standards for digital sentence representation — e.g., the RDF Language from the W3C (a retrospective standardization of what was already baked into Architecture of the World Wide Web [<a href="http://www.w3.org/TR/2003/WD-webarch-20030627/">4</a>])<br /><br />
</li>
<li>Open Standards for signs that function like names — e.g., HTTP [<a href="https://tools.ietf.org/html/rfc7540">5</a>] URIs (hyperlinks) from IETF [<a href="https://tools.ietf.org/html/rfc3986">6</a>]<br /><br />
</li>
<li>Open Standards for machine-comprehensible representation of relationship type semantics — e.g., RDF Schema and OWL. These are collections of RDF statements (packaged as a <i>vocabulary</i> or <i>ontology</i>) that describe the nature of different entity relationship types, in machine-comprehensible form.<br /><br />
</li>
<li>Open Standards-based Query Language for interacting with relations represented as fine-grained sentence/statement graphs, rather than as coarse-grained records in a table<br /><br />
</li>
<li>Database Management Systems that can manage data represented as sentence/statement graphs, using the open standards above, without compromising access, performance, scalability, or security.</li>
</ul>
<br />
Here are a couple of links to live examples, hosted by our Virtuoso Database [<a href="http://virtuoso.openlinksw.com/">7</a>], showcasing the effect of relations and their semantics:<br />
<ul>
<li class="li2" style="margin: 0px; outline: none; padding: 0px;"><span class="s3"><a href="http://linkeddata.uriburner.com/c/9SD2GWT" style="color: #009eb8; display: inline; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; outline: none; text-decoration: none; transition: color 0.3s;">http://linkeddata.uriburner.com/c/9SD2GWT</a></span><span class="s1"> -- without reasoning and inference applied to owl:sameAs relation semantics (which is reflective, symmetric, and transitive)<br /></span></li>
<li class="li2" style="margin: 0px; outline: none; padding: 0px;"><span class="s3"><a href="http://linkeddata.uriburner.com/c/8CWGD3" style="color: #009eb8; display: inline; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; outline: none; text-decoration: none; transition: color 0.3s;">http://linkeddata.uriburner.com/c/8CWGD3</a></span><span class="s1"> -- with reasoning and inference based owl:sameAs relation semantics .</span></li>
</ul>
<br />
<h2>
Conclusion</h2>
Contrary to general misconceptions, typically arising from very loose use of what could have been precise terminology, what we know as Data lies at the root of Language and is effectively mankind&#39;s most powerful tool. Our real challenge still lies in getting computers to augment our existing ability to communicate via sentences and statements. Pulling this off is much easier than is commonly assumed — the use of very basic sentences (at the level of a three-year-old) would escalate the power of computing and overall human productivity to unimaginable levels, as already demonstrated by what&#39;s happened thus far on the World Wide Web, where we have plenty of words, but no implicit sense of whether these are nouns, verbs, or adjectives, never mind whether they form sentences. <br />
<br />
&quot;Big Data&quot; is currently understood to mean, roughly, &quot;we have lots of books containing lots of sentences, written by many authors in a variety of notations, printed in a variety of formats, which are well beyond the storage capacity of a single library&quot; — or &quot;we have lots of files containing lots of statements, written by many observers in a variety of styles, saved in a variety of formats, which are well beyond the storage capacity of a single DBMS.&quot;<br />
<br />
Conflating SQL and RDBMS is akin to claiming that sentences in books can only be presented as tables comprised of rows and columns. <br />
<br />
&quot;NoSQL&quot; is an attempt to repudiate the aforementioned conflation of SQL and RDBMS, but it doesn&#39;t emphatically hone into the notion of a sentence as the mechanism for representing entity relationships, nor the nature of entity relationship types. Instead, we&#39;ve wound up with &quot;Graph&quot; which is just another confusing term.<br />
<br />
Ultimately, the <i>semantics of relations</i> are what matter. These semantics are how we encode and decode information, enabling us to put data in <i>perceptive</i> context, <i>en route</i> to creating knowledge by putting that same data into <i>cognitive</i> context. <br />
<br />
<h2>
Reference Links</h2>
<ol>
<li><a href="http://www.slideshare.net/kidehen/understanding-29894555">Understanding Data</a> presentation on SlideShare</li>
<li><a href="https://en.wikipedia.org/wiki/Binary_relation">Binary Relationship Types (Relations)</a> article on Wikipedia</li>
<li><a href="http://dbpedia.org/c/9BZF6IVK">Mathematical Relations</a> from DBpedia via a document describing its subject via a collection of relations (properties)</li>
<li><a href="http://www.w3.org/TR/2003/WD-webarch-20030627/">Architecture of the World Wide Web</a></li>
<li><a href="https://tools.ietf.org/html/rfc7540">RFC 7540: Hypertext Transfer Protocol Version 2 (HTTP/2)</a></li>
<li><a href="https://tools.ietf.org/html/rfc3986">RFC 3986: Uniform Resource Identifier (URI): Generic Syntax</a></li>
<li><a href="http://virtuoso.openlinksw.com/">OpenLink Virtuoso Home Page</a>.</li>
</ol>
<h2>
Related</h2>
<ul>
<li><a href="http://kidehen.blogspot.com/2015/07/conceptual-data-virtualization-across.html">Conceptual Data Virtualization (semantically enhanced data integration across heterogeneous SQL data sources)</a></li>
<li><a href="http://kidehen.blogspot.com/2015/06/data-silos-are-killing-data-flow.html">Data Silos are Killing Data Flow</a></li>
<li><a href="http://kidehen.blogspot.com/2014/01/demonstrating-reasoning-via-sparql.html">Demonstrating Reasoning &amp; Inference via SPARQL Query Language</a></li>
<li><a href="https://plus.google.com/+TeodoraPetkova/posts/2BSeApFw3Lp"><span class="s1">&quot;Heavy Metal Fan&quot;</span></a> -- Illustrating why Relation Semantics are important</li>
<li><a href="http://www.openlinksw.com/data/turtle/general/GlossaryOfTerms.ttl">Data &amp; Database related Glossary of Terms</a> -- constructed using RDF Language based sentences.</li>
</ul>
]]></content:encoded>
  <rss:link>http://kidehen.blogspot.com/2015/07/situation-analysis-never-day-goes-by.html</rss:link>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2015-07-14T02:28:00Z</dc:date>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://kidehen.blogspot.com/2015/07/conceptual-data-virtualization-across.html">
  <rss:title>Conceptual Data Virtualization across Disparate SQL Data Sources </rss:title>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Situation Analysis Over the years, you&#39;ve accumulated a number of line-of-business applications, each of which supports specific operations in a given department. These applications have been developed with intimate binding to a specific SQL-compliant RDBMS (Relational Database Management System). In recent times, you&#39;ve increasingly found the need to cross-reference data across these SQL RDBMS-based applications as part of a quest to enhance discovery, analysis, and dissemination of data, information, and knowledge, to the right person, in appropriate form. Most options presented as a solution to the challenges of this quest are firmly rooted in the &quot;rip and replace&quot; approach to systems evolution. Rather than demonstrably integrating with, and then enhancing, what exists, they remain philosophically focused on a total replacement of that existing infrastructure, moving to an alternative application or DBMS that&#39;s just n-times faster. In this post, I am going to provide a simple demonstration (with live links, of course!) that shows how conceptual integration can be achieved across disparate SQL RDBMS databases, with heterogeneously shaped and disparately located data, using the kind of controlled natural language constructs inherent to the RDF Language. (It&#39;s important to note that this has nothing to do with document serialization formats or content types.) Conceptual Data Virtualization Illustration Data Sources Conveniently, all major SQL RDBMS vendors provide a demonstration database as an easy entry point into their particular RDBMS. Likewise, over the years, a number of vocabularies constructed by domain experts have been published to the World Wide Web (Web), as part of an effort to increase the semantic fidelity of hyperlinks in general; i.e., rather than being confined to the simplistic notion that &quot;one document links to another,&quot; it becomes possible (using the same Web) to express and understand the unique meanings (semantics) of different kinds of relationship types which may be represented by a given hyperlink. For this exercise, I have set up the following demonstration SQL RDBMS Data Sources, where entity relationships are represented as records, grouped by Table Name: Human Resources -- Oracle Northwind -- Microsoft SQL Server &amp; Virtuoso Pub -- Sybase iSports -- Progress / OpenEdge Stores -- Informix Demo DB -- Ingres Demo -- Virtuoso (this is also based on Northwind) TPC-H -- Facebook PrestoDB atop Hive .  As my alternative relational data source, I am going to use the FOAF (Friend of a Friend) vocabulary [1], where entity relationships are represented as RDF Language sentences/statements, grouped by statement predicate. Colloquially, this may be referred to as an RDF Graph-based representation of entity relationship types (or relations). Bridging Heterogeneously Shaped Data Having established that entity relationships are represented (or shaped) in different ways, let&#39;s now make a bridge between these representation types using the lowest common denominator. Basically, each relational table can be broken down into a class, where each field/column is a property associated with members/individuals/instances of that class, and some number of instances of that class (one instance per record/row). An open standard by the W3C known as R2RML (Relational to RDF Mapping Language) [2] enables declarative construction of this kind of mapping across different entity relationship type representations. The fundamental steps are as follows: Derive Classes and Class Instances (Individuals) from SQL RDBMS Tables of interest. Some effort is necessary here because the intent of a typical 3rd normal form SQL RDBMS Table is frequently blurred by conflation of the Nature of what being represented and actual Instances of what&#39;s being represented. Map Derived Classes to a shared Vocabulary that defines the nature of Classes and Properties for a specific &quot;discourse domain&quot; or realm of specialization. For example, the FOAF vocabulary defines the nature of Classes and Properties associated with People, Organizations, and related profiles. Create Reasoning and Inference Rules that enable exploration of data using different &quot;context lenses.&quot; In some cases, reasoning and inference might be required for enhanced exploration and discovery, while in other cases, it might not be necessary. Tools of the Trade Virtuoso [3], our multi-model RDBMS for Relational Tables and RDF Property/Predicate Graphs, includes an R2RML processor [4][5][6] that imports and exports R2RML declarations. This built-in functionality is part of Virtuoso&#39;s powerful middleware layer for data virtualization. Naturally, I&#39;ve used this functionality to generate the mappings presented in this post. For data visualization, I&#39;ve used our HTML5-based SQL and SPARQL Query Builder [7][8] alongside Virtuoso&#39;s DBMS-hosted Faceted Browsing services [9]. Attaching External Tables to Virtuoso Before we can commence integration across Oracle, SQL Server, Sybase, Progress / OpenEdge, and Ingres, we need to attach all the tables of interest to Virtuoso&#39;s via its Data Virtualization Layer (just as you may have when using Microsoft Access to work with external ODBC data sources). Virtuoso provides an HTML-based Wizard [9] and SQL extensions [10] for attaching remote tables from ODBC data sources. We can also link in remote tables from JDBC data sources by leveraging our ODBC-to-JDBC Bridge drivers [11][12]. For sake of brevity, I am leaving attachment of external SQL RDBMS objects via ODBC DSNs (data source names) out of this post. Class and Class Instance Identification (Naming) &amp; Generation Each Class is identified using a hyperlink (HTTP URI) derived from a target table name, while each Instance of the Class is identified by a hyperlink derived from the primary key of a record in the table from which its Class has been generated. The screenshots that follow show the original SQL RDBMS schema definitions of each Table, Classes derived from each Table, and Class Instances generated by processing R2RML declarations. Employees Table (Oracle) Employees Class Derived from Employees Table Customers Table (Microsoft SQL Server) Customers Class &amp; Instances Derived from Customers Table Publishers Table (Sybase) Publishers Class &amp; Instances Derived from Publishers Table Customers Table (Informix) Customers Class Derived from Customers Table Customers Table (Progress / OpenEdge) Customers Class Derived from Customers Table Cust_Info Table (Ingres) Cust_Info Class Derived from Cust_Info Table Customers Table (Virtuoso) Customers Class Derived from Customers Table Customer Table (PrestoDB) Customer Class Derived from Customer Table Mapping Generated Classes to Classes Defined by FOAF Vocabulary At this stage in the process, we have generated Classes and Instances (or Individuals), in the form of RDF Language sentences, as output from processing performed by Virtuoso&#39;s R2RML processor. The next step in this mapping/bridging process, is to use additional RDF Language statements to describe how these generated Classes are related to Classes described in the FOAF vocabulary. The following three screenshots showcase a snippet of the FOAF vocabulary of terms, the specific definition of the Person Class, and the specific definition of the Organization Class: FOAF Vocabulary Person Class Definition from FOAF Vocabulary Organization Class Definition from FOAF Vocabulary Actual Mapping of Generated Classes to FOAF Vocabulary Classes: We can now map generated Class Definitions for each SQL RDBMS to Class Definitions in the FOAF Vocabulary. The actual mapping process could take the form of RDF document content (as per snippet below) that&#39;s loaded into the Virtuoso RDBMS: ## Class derived from Virtuoso&#39;s Customers Table &lt;http://demo.openlinksw.com/schemas/Demo/Customers&gt; rdfs:subClassOf foaf:Organization . ## Class derived from Microsoft SQL Server Customers Table &lt;http://demo.openlinksw.com/schemas/SQLServer/Customers&gt; rdfs:subClassOf foaf:Organization . ## Class derived from Sybase Publishers Table &lt;http://demo.openlinksw.com/schemas/sybase12/publishers&gt; rdfs:subClassOf foaf:Organization . ## Class derived from Progress Customer Table &lt;http://demo.openlinksw.com/schemas/progress9/Customer&gt; rdfs:subClassOf foaf:Organization . ## Class derived from PrestoDB Customer Table &lt;http://demo.openlinksw.com/schemas/PrestoDB/customer&gt; rdfs:subClassOf foaf:Organization . ## Class derived from Informix Customer Table &lt;http://demo.openlinksw.com/schemas/informix/customer&gt; rdfs:subClassOf foaf:Person . ## Class derived from Ingres Cust_Info Table &lt;http://demo.openlinksw.com/schemas/ingres/cust_info&gt; rdfs:subClassOf foaf:Person . ## Class derived from Oracle EMPLOYEES Table &lt;http://demo.openlinksw.com/schemas/OracleHR/EMPLOYEES&gt; rdfs:subClassOf foaf:Person . Alternatively, the same mapping could be loaded into Virtuoso using a SPARQL Query Language INSERT statement: INSERT { GRAPH &lt;urn:rdbms:inference:reasoning:demo:1&gt; { ## Class derived from Virtuoso&#39;s Customers Table &lt;http://demo.openlinksw.com/schemas/Demo/Customers&gt; rdfs:subClassOf foaf:Organization . ## Class derived from Microsoft SQL Server Customers Table &lt;http://demo.openlinksw.com/schemas/SQLServer/Customers&gt; rdfs:subClassOf foaf:Organization . ## Class derived from Sybase Publishers Table &lt;http://demo.openlinksw.com/schemas/sybase12/publishers&gt; rdfs:subClassOf foaf:Organization . ## Class derived from Progress Customer Table &lt;http://demo.openlinksw.com/schemas/progress9/Customer&gt; rdfs:subClassOf foaf:Organization . ## Class derived from PrestoDB Customer Table &lt;http://demo.openlinksw.com/schemas/PrestoDB/customer&gt; rdfs:subClassOf foaf:Organization . ## Class derived from Informix Customer Table &lt;http://demo.openlinksw.com/schemas/informix/customer&gt; rdfs:subClassOf foaf:Person . ## Class derived from Ingres Cust_Info Table &lt;http://demo.openlinksw.com/schemas/ingres/cust_info&gt; rdfs:subClassOf foaf:Person . ## Class derived from Oracle EMPLOYEES Table &lt;http://demo.openlinksw.com/schemas/OracleHR/EMPLOYEES&gt; rdfs:subClassOf foaf:Person . } } For good measure, ensure that terms from the RDF Schema Vocabulary are also loaded to the Named Graph identified by &lt;urn:rdbms:inference:reasoning:demo:1&gt; . ADD &lt;http://www.w3.org/2000/01/rdf-schema#&gt; TO &lt;urn:rdbms:inference:reasoning:demo:1&gt; Currently, the RDF Schema document published on the Web [13] lacks an explicit indication of the transitive nature of rdfs:subClassOf based statements. I will therefore add this explicitly, using the following SPARQL INSERT statement: INSERT { GRAPH &lt;urn:rdbms:inference:reasoning:demo:1&gt; { rdfs:subClassOf a owl:TransitiveProperty } } Finally, we also need to indicate to Virtuoso that the RDF statements loaded into the Named Graph identified by &lt;urn:rdbms:inference:reasoning:demo:1&gt; should be used as the basis for reasoning and inference (i.e., provide rich &quot;Context Lenses&quot; into the data). This is done by creating an inference rule, with the following SQL stored procedure call: rdfs_rule_set ( &#39;sql-vdb-data-lake&#39; , &#39;urn:rdbms:inference:reasoning:demo:1&#39; ) ; With all of the steps above successfully completed, Virtuoso is equipped with all the information it needs to map the selected Relational Tables from Oracle, Microsoft SQL Server, Sybase, Informix, Progress / OpenEdge, Ingres, and Virtuoso, to instances of People and Organization as defined by the FOAF Vocabulary. These two screenshots demonstrate the result of this mapping, combined with the effects of RDF statement-aided inference and reasoning. In both cases, Individuals were derived from a union of records across the Tables (from all the SQL RDBMS) which were mapped to this Class. Instances of the Organization Class Instances of the People Class As you can see in the screenshots above, HTTP URI identifiers are in full view. This aesthetic issue can blur appreciation of the power in hand. To remove that blur and bring the power into focus, we will take a further step -- adding a few additional RDF statements to the Virtuoso RDBMS, to enable its built-in Faceted Browser to replace those HTTP URIs with more aesthetically-pleasing and human-friendly labels without compromising their lookup (de-reference) functionality. The following SPARQL INSERT statement (or upload of an RDF document containing the same RDF sentences/statements) will do the job: SPARQL INSERT { GRAPH &lt;urn:rdbms:inference:reasoning:demo:labels&gt; { ?s foaf:name ?name . } } WHERE { ## Person Class Instances { GRAPH &lt;urn:demo.openlinksw.com:OracleHR&gt; { ?s &lt;http://demo.openlinksw.com/schemas/OracleHR/first_name&gt; ?fname ; &lt;http://demo.openlinksw.com/schemas/OracleHR/last_name&gt; ?sname . bind (concat(?fname,&#39; &#39;, ?sname) as ?name) } } UNION { GRAPH &lt;urn:demo.openlinksw.com:ingres&gt; { ?s &lt;http://demo.openlinksw.com/schemas/ingres/name&gt; ?name . } } UNION { GRAPH &lt;urn:demo.openlinksw.com:informix&gt; { ?s &lt;http://demo.openlinksw.com/schemas/informix/fname&gt; ?fname ; &lt;http://demo.openlinksw.com/schemas/informix/lname&gt; ?sname . bind (concat(?fname,&#39; &#39;, ?sname) as ?name) } } UNION ## Oragnization Class Instances { GRAPH &lt;urn:demo.openlinksw.com:Demo&gt; { ?s &lt;http://demo.openlinksw.com/schemas/Demo/companyname&gt; ?name . } } UNION { GRAPH &lt;urn:demo.openlinksw.com:SQLServer&gt; { ?s &lt;http://demo.openlinksw.com/schemas/SQLServer/companyname&gt; ?name . } } UNION { GRAPH &lt;urn:demo.openlinksw.com:progress9&gt; { ?s &lt;http://demo.openlinksw.com/schemas/progress9/name&gt; ?name . } } UNION { GRAPH &lt;urn:demo.openlinksw.com:sybase12&gt; { ?s &lt;http://demo.openlinksw.com/schemas/sybase12/pub_name&gt; ?name . } } UNION { GRAPH &lt;urn:demo.openlinksw.com:prestoDB&gt; { ?s &lt;http://demo.openlinksw.com/schemas/PrestoDB/c_name&gt; ?name . } } }; These two screenshots that follow demonstrate the total effect of this effort, after application of the aesthetically pleasing label rules above: Instances of the Organization Class, with Aesthetically Pleasing Labels Instances of the People Class, with Aesthetically Pleasing Labels In addition, here are live links for the pages in the screenshots above: Instances of the Organization Class Instances of the Person Class . Conclusion Data Integration across heterogeneously shaped and disparately located data -- Variety -- is the immutable &quot;V&quot; in the &quot;Big Data&quot; meme. The challenges it presents cannot be resolved by painting new buzzwords and phrases over flawed approaches. For any kind of agility to be viable as a result of data integration, the integration process itself has to be conceptual in nature. In this post, I&#39;ve provided a detailed example of how RDF statements enable conceptual data integration across heterogeneously shaped and disparately located data. In the process, I&#39;ve also demonstrated how to practically exploit entity relationship type semantics (e.g., rdfs:subClassOf), bridge across different SQL RDBMS (merging Organizations and Person instances/records), and improve presentational aesthetics (replacing raw HTTP URIs with labels, without compromising underlying lookup functionality). Links Referenced Here FOAF Vocabulary R2RML Language for Mapping Relational Tables to RDF Property/Predicate Graphs Virtuoso Home Page About Virtuoso&#39;s R2RML Functionality Virtuoso&#39;s HTML based R2RML import wizard Virtuoso HTML based R2RML export wizard HTML5 based SQL and SPARQL Query Builder Documentation HTML5 based SQL and SPARQL Query Builder Live Demo Instance Virtuoso&#39;s DBMS hosted Faceted Browsing services Virtuoso HTML Wizard for attaching external ODBC/JDBC accessible SQL RDBMS Tables to its Virtual Database Engine SQL extensions for attaching external ODBC/JDBC accessible SQL RDBMS Tables to its Virtual Database Engine ODBC to JDBC Bridge Drivers (Single-Tier Lite Edition) ODBC to JDBC Bridge Drivers (Multi-Tier Enterprise Edition) RDF Schema Vocabulary Description Document Additional Reading Data Silos are Killing Data Flow Understanding Data Glossary of Terms</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2>
Situation Analysis</h2>
<br />
Over the years, you&#39;ve accumulated a number of line-of-business applications, each of which supports specific operations in a given department. These applications have been developed with intimate binding to a specific SQL-compliant RDBMS (Relational Database Management System).<br />
<br />
In recent times, you&#39;ve increasingly found the need to cross-reference data across these SQL RDBMS-based applications as part of a quest to enhance discovery, analysis, and dissemination of data, information, and knowledge, to the right person, in appropriate form.<br />
<br />
Most options presented as a solution to the challenges of this quest are firmly rooted in the &quot;rip and replace&quot; approach to systems evolution. Rather than demonstrably integrating with, and then enhancing, what exists, they remain philosophically focused on a total replacement of that existing infrastructure, moving to an alternative application or DBMS that&#39;s just <i>n</i>-times faster.<br />
<br />
In this post, I am going to provide a simple demonstration (with live links, of course!) that shows how conceptual integration can be achieved across disparate SQL RDBMS databases, with heterogeneously shaped and disparately located data, using the kind of controlled natural language constructs inherent to the RDF Language. (It&#39;s important to note that this has nothing to do with document serialization formats or content types.)<br />
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<b>Conceptual Data Virtualization Illustration</b></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBB6PnKST9GXseO53VkDt38QrHK10GjkYcN6C9As_M-kxbeFW1nM_YPok-i6fEwqXQGw2wjRIuCf8D4jQK1RVBM3_a9ZKvrXfq-5OWVy9idTCjbjRNfvHGak27xM2omZW2i-nrvwiwIKu5A8k/s1600/Sponger_LinkedDataGenOptions_2014_v3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBB6PnKST9GXseO53VkDt38QrHK10GjkYcN6C9As_M-kxbeFW1nM_YPok-i6fEwqXQGw2wjRIuCf8D4jQK1RVBM3_a9ZKvrXfq-5OWVy9idTCjbjRNfvHGak27xM2omZW2i-nrvwiwIKu5A8k/s400/Sponger_LinkedDataGenOptions_2014_v3.png" width="400" /></a></div>
<br />
<br />
<h2>
Data Sources</h2>
<br />
Conveniently, all major SQL RDBMS vendors provide a demonstration database as an easy entry point into their particular RDBMS. Likewise, over the years, a number of vocabularies constructed by domain experts have been published to the World Wide Web (Web), as part of an effort to increase the semantic fidelity of hyperlinks in general; i.e., rather than being confined to the simplistic notion that &quot;one document links to another,&quot; it becomes possible (using the same Web) to express and understand the unique meanings (semantics) of different kinds of relationship types which may be represented by a given hyperlink.<br />
<br />
For this exercise, I have set up the following demonstration SQL RDBMS Data Sources, where entity relationships are represented as records, grouped by Table Name:<br />
<br />
<ul>
<li>Human Resources -- Oracle</li>
<li>Northwind -- Microsoft SQL Server &amp; Virtuoso</li>
<li>Pub -- Sybase</li>
<li>iSports -- Progress / OpenEdge</li>
<li>Stores -- Informix</li>
<li>Demo DB -- Ingres</li>
<li>Demo -- Virtuoso (this is also based on Northwind)</li>
<li>TPC-H -- Facebook PrestoDB atop Hive . </li>
</ul>
<br />
As my alternative relational data source, I am going to use the FOAF (Friend of a Friend) vocabulary [<a href="http://xmlns.com/foaf/0.1/">1</a>], where entity relationships are represented as RDF Language sentences/statements, grouped by statement predicate. Colloquially, this may be referred to as an RDF Graph-based representation of <i>entity relationship types</i> (or <i>relations</i>).<br />
<br />
<h3>
Bridging Heterogeneously Shaped Data</h3>
<br />
Having established that entity relationships are represented (or shaped) in different ways, let&#39;s now make a bridge between these representation types using the lowest common denominator. Basically, each relational table can be broken down into a <i>class</i>, where each field/column is a <i>property</i> associated with members/individuals/instances of that class, and some number of <i>instances</i> of that class (one instance per record/row).<br />
<br />
An open standard by the W3C known as R2RML (Relational to RDF Mapping Language) [<a href="http://www.w3.org/TR/r2rml/">2</a>] enables declarative construction of this kind of mapping across different entity relationship type representations. The fundamental steps are as follows:<br />
<br />
<ol>
<li><b>Derive Classes and Class Instances (Individuals) from SQL RDBMS Tables of interest.</b> Some effort is necessary here because the intent of a typical 3rd normal form SQL RDBMS Table is frequently blurred by conflation of the Nature of what being represented and actual Instances of what&#39;s being represented.</li>
<li><b>Map Derived Classes to a shared Vocabulary that defines the nature of Classes and Properties for a specific &quot;discourse domain&quot; or realm of specialization.</b> For example, the FOAF vocabulary defines the nature of Classes and Properties associated with People, Organizations, and related profiles.</li>
<li><b>Create Reasoning and Inference Rules that enable exploration of data using different &quot;context lenses.&quot;</b> In some cases, reasoning and inference might be required for enhanced exploration and discovery, while in other cases, it might not be necessary.</li>
</ol>
<br />
<h3>
Tools of the Trade</h3>
<br />
Virtuoso [<a href="http://virtuoso.openlinksw.com/">3</a>], our multi-model RDBMS for Relational Tables and RDF Property/Predicate Graphs, includes an R2RML processor [<a href="http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtR2RML">4</a>][<a href="http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtConductorR2RMLImport">5</a>][<a href="http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtTipsAndTricksGuideConductorR2RML">6</a>] that imports and exports R2RML declarations. This built-in functionality is part of Virtuoso&#39;s powerful middleware layer for data virtualization. Naturally, I&#39;ve used this functionality to generate the mappings presented in this post.<br />
<br />
For data visualization, I&#39;ve used our HTML5-based SQL and SPARQL Query Builder [<a href="http://wikis.openlinksw.com/dataspace/owiki/wiki/UdaWikiWeb/HTML5XMLAExplorerSampleProg">7</a>][<a href="http://demo.openlinksw.com/spasqlqb/spasqlqb.html">8</a>] alongside Virtuoso&#39;s DBMS-hosted Faceted Browsing services [<a href="http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtFacetBrowserInstallConfig">9</a>].<br />
<br />
<h3>
Attaching External Tables to Virtuoso</h3>
<br />
Before we can commence integration across Oracle, SQL Server, Sybase, Progress / OpenEdge, and Ingres, we need to attach all the tables of interest to Virtuoso&#39;s via its Data Virtualization Layer (just as you may have when using Microsoft Access to work with external ODBC data sources).<br />
<br />
Virtuoso provides an HTML-based Wizard [<a href="http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtLinkRemoteTables">9</a>] and SQL extensions [<a href="http://docs.openlinksw.com/virtuoso/databaseadmsrv.html#linkrmttableauto">10</a>] for attaching remote tables from ODBC data sources. We can also link in remote tables from JDBC data sources by leveraging our ODBC-to-JDBC Bridge drivers [<a href="http://uda.openlinksw.com/odbc-jdbc-st/">11</a>][<a href="http://uda.openlinksw.com/odbc-jdbc-mt/">12</a>].<br />
<br />
For sake of brevity, I am leaving <a href="http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtLinkRemoteTables">attachment of external SQL RDBMS</a> objects via ODBC DSNs (data source names) out of this post.<br />
<br />
<h3>
Class and Class Instance Identification (Naming) &amp; Generation</h3>
<br />
Each Class is identified using a hyperlink (HTTP URI) derived from a target table name, while each Instance of the Class is identified by a hyperlink derived from the primary key of a record in the table from which its Class has been generated.<br />
<br />
The screenshots that follow show the original SQL RDBMS schema definitions of each Table, Classes derived from each Table, and Class Instances generated by processing R2RML declarations.<br />
<br />
<table style="border-spacing: 10px; margin-left: auto; margin-right: auto; padding: 10px; width: 90%;"><tbody>
<tr> <th style="align: center; clear: both; text-align: center; text-align: center; vertical-align: top; width: 40%;"><br />
Employees Table<br />
(Oracle)</th> <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Employees Class<br />
Derived from Employees Table</th> </tr>
<tr> <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitS_dkXahlqEiV3D3XRCekaLC558qmFTKCw-B-mP1HnUQJpONbtU5IvPa3Nqs-Ls2kd22cyzPl8niQ4xQoxHIVyGQzCCEfPJ1Xpp3zT4_fLa0NJZn3Qm33JlygLVu10p3hgrJYUu8yOstxSrw/s1600/Screen+Shot+2015-06-30+at+2.45.03+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="181" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitS_dkXahlqEiV3D3XRCekaLC558qmFTKCw-B-mP1HnUQJpONbtU5IvPa3Nqs-Ls2kd22cyzPl8niQ4xQoxHIVyGQzCCEfPJ1Xpp3zT4_fLa0NJZn3Qm33JlygLVu10p3hgrJYUu8yOstxSrw/s350/Screen+Shot+2015-06-30+at+2.45.03+PM.png" width="350" /></a></td> <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi95dlsKlvC4Gn9uyrN2_pdhlkHwKxzSJwBeEhyXeC7sToksmBpOWapVX4f9jySjRC_OPT7lAla4kueQ-XsIRknb4H4cT2wCBX8ZshYbjkTYJ9mGx1zaIWI03R3pPVGFEMz00a6J2oTdAwAxh4/s1600/Screen+Shot+2015-06-30+at+2.43.16+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="181" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi95dlsKlvC4Gn9uyrN2_pdhlkHwKxzSJwBeEhyXeC7sToksmBpOWapVX4f9jySjRC_OPT7lAla4kueQ-XsIRknb4H4cT2wCBX8ZshYbjkTYJ9mGx1zaIWI03R3pPVGFEMz00a6J2oTdAwAxh4/s350/Screen+Shot+2015-06-30+at+2.43.16+PM.png" width="350" /></a></td> </tr>
<tr> <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Customers Table<br />
(Microsoft SQL Server)</th> <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Customers Class &amp; Instances<br />
Derived from Customers Table</th> </tr>
<tr> <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDJS77H56_eV_9q00BjqicHNFH-yvFvOaPZK2yiBosBKxmzP6n2kC_q5g3ZZfqL4brtRO_7DhellwHzPwTieQuiWRoQMwa3zQPBGHgBbz7HtYoCx8SksPBp4FovvBviFw3Wp_YLW9KxKde9OY/s1600/sql-server-customers-table-def.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="181" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDJS77H56_eV_9q00BjqicHNFH-yvFvOaPZK2yiBosBKxmzP6n2kC_q5g3ZZfqL4brtRO_7DhellwHzPwTieQuiWRoQMwa3zQPBGHgBbz7HtYoCx8SksPBp4FovvBviFw3Wp_YLW9KxKde9OY/s350/sql-server-customers-table-def.png" width="350" /></a></td> <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXZDTQIvGwpFaRvX5y2bIZ6Rp7WdJnwNLbSqzT0m5nNlhVs4lHPcAHPbP0_XH8LQGbkmxVHJwj8YP-p2nOfYj1IrVaFuWp8-hZt3gmwWUOYpEox9K0pn7KhH4LpIX56oqGSuYr0Nqv8GAhrWA/s1600/sql-server-customer-class-def-foaf-org.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="155" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXZDTQIvGwpFaRvX5y2bIZ6Rp7WdJnwNLbSqzT0m5nNlhVs4lHPcAHPbP0_XH8LQGbkmxVHJwj8YP-p2nOfYj1IrVaFuWp8-hZt3gmwWUOYpEox9K0pn7KhH4LpIX56oqGSuYr0Nqv8GAhrWA/s350/sql-server-customer-class-def-foaf-org.png" width="350" /></a></td> </tr>
<tr> <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Publishers Table<br />
(Sybase)</th> <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Publishers Class &amp; Instances<br />
Derived from Publishers Table</th> </tr>
<tr> <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggziZTWaBjOdqisNVHlPz4KU8nBo7qSU8-lSkmuDNcB42BQZAmrCMyhIb2842TQiquHGEXM_PphFC5_ix_jd_Ll1xCfQ1LrrMvLVihFqaOeUoN-OGVEOLNwgfgn2RPYecw9Ox59nny1Lp9zco/s1600/Screen+Shot+2015-06-30+at+2.49.10+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="172" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggziZTWaBjOdqisNVHlPz4KU8nBo7qSU8-lSkmuDNcB42BQZAmrCMyhIb2842TQiquHGEXM_PphFC5_ix_jd_Ll1xCfQ1LrrMvLVihFqaOeUoN-OGVEOLNwgfgn2RPYecw9Ox59nny1Lp9zco/s350/Screen+Shot+2015-06-30+at+2.49.10+PM.png" width="350" /></a></td> <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhH3Z6-y39Gtc8_WKX-m3DSQ9IsWrzxm0EAABpONqqCOZy-Y2mVLSYhcWXkokZJLD8ph9IJKi9fqBauCPx2qDzq61xT5zm53EEjsdrBhSgzujzojd7D55HjK8EUaryDCSTqx8VQkHYLJMpRCk/s1600/sybase-publishers-class-def-instances.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="172" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhH3Z6-y39Gtc8_WKX-m3DSQ9IsWrzxm0EAABpONqqCOZy-Y2mVLSYhcWXkokZJLD8ph9IJKi9fqBauCPx2qDzq61xT5zm53EEjsdrBhSgzujzojd7D55HjK8EUaryDCSTqx8VQkHYLJMpRCk/s350/sybase-publishers-class-def-instances.png" width="350" /></a></td> </tr>
<tr> <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Customers Table<br />
(Informix)</th> <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Customers Class<br />
Derived from Customers Table</th> </tr>
<tr> <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9HRGx5dhP2HE7D0Sw0RzynzKHd7gHHVgn28-EsWdkxVy6e09vj8G6GbwZgAx9BjiWhkK4pv67O091C95hSfHDeYIZneOvr-OjulhiCEkPfEzbFkvzKYPSDyKdG4GzMvYYDa4CUwGL16hxzi0/s1600/informix-customers-table-def.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="182" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9HRGx5dhP2HE7D0Sw0RzynzKHd7gHHVgn28-EsWdkxVy6e09vj8G6GbwZgAx9BjiWhkK4pv67O091C95hSfHDeYIZneOvr-OjulhiCEkPfEzbFkvzKYPSDyKdG4GzMvYYDa4CUwGL16hxzi0/s350/informix-customers-table-def.png" width="350" /><br />
</a></td> <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8L7CzwUDeeNNBUmS6uZe0s6p8T9-fSX-t04MaDFeVskziXmC4QTt7q1WuuPtQ7-lEgH-qCCtpLoiBD-Qjl65oim3vRpOoH3I66PWhlZre_P9j9tboVxu2shzc7rsvK1A__gyGinGH-e8TgKo/s1600/informix-customers-class-def-instances.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="182" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8L7CzwUDeeNNBUmS6uZe0s6p8T9-fSX-t04MaDFeVskziXmC4QTt7q1WuuPtQ7-lEgH-qCCtpLoiBD-Qjl65oim3vRpOoH3I66PWhlZre_P9j9tboVxu2shzc7rsvK1A__gyGinGH-e8TgKo/s350/informix-customers-class-def-instances.png" width="350" /></a></td> </tr>
<tr> <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Customers Table<br />
(Progress / OpenEdge)</th> <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Customers Class<br />
Derived from Customers Table</th> </tr>
<tr> <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgV_9_u5sN3FdIusuKLNgGChMqLX-RFQ8lQQWe5S_mGo6gaO5po-p5eoHuqP_KFO9cS95yDR8ctPKDumb_6GrT2Cefslt2u-N9_Fae3bEgoS7QLJ_QXjZfLZVlAmNyfr6YB69uHmHKJMXmQPSs/s1600/Screen+Shot+2015-06-30+at+2.51.29+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="182" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgV_9_u5sN3FdIusuKLNgGChMqLX-RFQ8lQQWe5S_mGo6gaO5po-p5eoHuqP_KFO9cS95yDR8ctPKDumb_6GrT2Cefslt2u-N9_Fae3bEgoS7QLJ_QXjZfLZVlAmNyfr6YB69uHmHKJMXmQPSs/s350/Screen+Shot+2015-06-30+at+2.51.29+PM.png" width="350" /></a></td> <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNzkq0XwkCN-ofwtEABxfociKNNqGh2XWsPkh6QTD-jAME8UFimuemrIdgB2HIrfhiKg1ifaPr3XebQnwHf-TX0vnMrtI020pdBk4PlPJCEzAz5opr0YWhFH45Vy1omS0GsQwh8S4lBTrn3eQ/s1600/progress-customers-class-def-instances.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNzkq0XwkCN-ofwtEABxfociKNNqGh2XWsPkh6QTD-jAME8UFimuemrIdgB2HIrfhiKg1ifaPr3XebQnwHf-TX0vnMrtI020pdBk4PlPJCEzAz5opr0YWhFH45Vy1omS0GsQwh8S4lBTrn3eQ/s350/progress-customers-class-def-instances.png" width="350" /></a></td> </tr>
<tr> <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Cust_Info Table<br />
(Ingres)</th> <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Cust_Info Class<br />
Derived from Cust_Info Table</th> </tr>
<tr> <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAA0TTp1aqY5dFnKDcs7pvKHVSgMBLxw-vpMjseY-w3uWs6XxzesWqW_PTVcHMoh_kUpy1aMl-XIQf7PemLH1mzVrztp-bXadBqsyywqsL-uFRQv3nhKXfh0mIwKfyYXj_uHgPlbRBocooqj4/s1600/Screen+Shot+2015-06-30+at+2.52.59+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="185" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAA0TTp1aqY5dFnKDcs7pvKHVSgMBLxw-vpMjseY-w3uWs6XxzesWqW_PTVcHMoh_kUpy1aMl-XIQf7PemLH1mzVrztp-bXadBqsyywqsL-uFRQv3nhKXfh0mIwKfyYXj_uHgPlbRBocooqj4/s350/Screen+Shot+2015-06-30+at+2.52.59+PM.png" width="350" /></a></td> <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRvN4YrReShexL3xZLs5UliHlkQ6mb2OFRPS-6B7nukYjzzyGQXkj81ykSJQWwKtt8fP4UVwnxn2FB-AEt_G38Icg53LL2I1YdiPKSpvgzxYvcumNLHQ-vIDCJHMLfJBLMP2YTLRT94FKwp3Q/s1600/ingres-cust-info-class-def-instances.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="176" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRvN4YrReShexL3xZLs5UliHlkQ6mb2OFRPS-6B7nukYjzzyGQXkj81ykSJQWwKtt8fP4UVwnxn2FB-AEt_G38Icg53LL2I1YdiPKSpvgzxYvcumNLHQ-vIDCJHMLfJBLMP2YTLRT94FKwp3Q/s350/ingres-cust-info-class-def-instances.png" width="350" /></a></td> </tr>
<tr> <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Customers Table<br />
(Virtuoso)</th> <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Customers Class<br />
Derived from Customers Table</th> </tr>
<tr> <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhavT_8YEpJX5PTaJ8qjof0-s2QDkCB4HGuxQsAWF7C66aZclxid6vtuhd7PSKBfsFL3Ws9EiBsdttEJUjMTC_KMVm4ooLE5G6_tkgywJSQdz27Wy6BArFuaidB9dtInUH-tA3wallVPvTOQ4o/s1600/virtuoso-customers-table-def.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="184" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhavT_8YEpJX5PTaJ8qjof0-s2QDkCB4HGuxQsAWF7C66aZclxid6vtuhd7PSKBfsFL3Ws9EiBsdttEJUjMTC_KMVm4ooLE5G6_tkgywJSQdz27Wy6BArFuaidB9dtInUH-tA3wallVPvTOQ4o/s350/virtuoso-customers-table-def.png" width="350" /></a></td> <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBX0e4HpeNFukyyvmWiZCN5wTzfaWLvni994DI-jaILMXO1itGcs6Htnpl5m5jnm0pvpyjd5iFiaYYFohzMP0CbftEzy81PRCczEY1M9TF4THuXx5oTCpH7xXeVowBCmPcg30Bn5V19CHikT8/s1600/virtuoso-customers-class-def-instances.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="181" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBX0e4HpeNFukyyvmWiZCN5wTzfaWLvni994DI-jaILMXO1itGcs6Htnpl5m5jnm0pvpyjd5iFiaYYFohzMP0CbftEzy81PRCczEY1M9TF4THuXx5oTCpH7xXeVowBCmPcg30Bn5V19CHikT8/s350/virtuoso-customers-class-def-instances.png" width="350" /></a></td> </tr>
<tr> <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Customer Table<br />
(PrestoDB)</th> <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Customer Class<br />
Derived from Customer Table</th> </tr>
<tr> <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlU-Z-bdAEYrLVDBG34Wjl5Meb4XxWZMChAGbB35oAOnitaqer9iuI20jh0YYTj5lpP45Yipd1ZY9RLJ0E0BeGlau7Sg4Y_SoMF_qosxiKaBlnzWV6BLIVHVOafEuofiaHngYLZEG7FnqYnjY/s320/prestodb-attacted-table-virtuoso-schema.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="184" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlU-Z-bdAEYrLVDBG34Wjl5Meb4XxWZMChAGbB35oAOnitaqer9iuI20jh0YYTj5lpP45Yipd1ZY9RLJ0E0BeGlau7Sg4Y_SoMF_qosxiKaBlnzWV6BLIVHVOafEuofiaHngYLZEG7FnqYnjY/s320/prestodb-attacted-table-virtuoso-schema.png" width="350" /></a></td> <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0YVOSUn_ehST_RXqrCLolCmAg-ZojLYTjpkxulZPrxADMh20BOav_Bd9Yb_3qPi5obvu24kTj5ISUw0UCiDbbi4H9nyn2wZaXmSVDhphOeQWv0WtYzg2rrFbhkh6_tIg9BfhRvy7ElL54ox8/s1600/prestodb-customer-class-instances.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="181" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0YVOSUn_ehST_RXqrCLolCmAg-ZojLYTjpkxulZPrxADMh20BOav_Bd9Yb_3qPi5obvu24kTj5ISUw0UCiDbbi4H9nyn2wZaXmSVDhphOeQWv0WtYzg2rrFbhkh6_tIg9BfhRvy7ElL54ox8/s1600/prestodb-customer-class-instances.png" width="350" /></a></td> </tr>
</tbody></table>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<h3>
Mapping Generated Classes to Classes Defined by FOAF Vocabulary</h3>
<br />
At this stage in the process, we have generated Classes and Instances (or Individuals), in the form of RDF Language sentences, as output from processing performed by Virtuoso&#39;s R2RML processor.<br />
<br />
The next step in this mapping/bridging process, is to use additional RDF Language statements to describe how these generated Classes are related to Classes described in the FOAF vocabulary.<br />
<br />
The following three screenshots showcase a snippet of the FOAF vocabulary of terms, the specific definition of the Person Class, and the specific definition of the Organization Class:<br />
<br />
<table style="border-spacing: 10px; margin-left: auto; margin-right: auto; padding: 10px; width: 90%;"><tbody>
<tr> <th colspan="2" style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
FOAF Vocabulary</th> </tr>
<tr> <td colspan="2" style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<div style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIQYSNHkEJDao9wvLQ-qUF-3BkFVtDovPXhO8oQ4cuEaxVqmzXdFcz1VQZEKu4tCSlyRvbYyRSgAWoiwn5LDxQ5nktKzniwQoDxuxtjpOOg2fbc5lCyQlI31_YWa4e6NvSWNd1GgdlJ255aT0/s1600/Screen+Shot+2015-06-30+at+2.55.42+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="182" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIQYSNHkEJDao9wvLQ-qUF-3BkFVtDovPXhO8oQ4cuEaxVqmzXdFcz1VQZEKu4tCSlyRvbYyRSgAWoiwn5LDxQ5nktKzniwQoDxuxtjpOOg2fbc5lCyQlI31_YWa4e6NvSWNd1GgdlJ255aT0/s350/Screen+Shot+2015-06-30+at+2.55.42+PM.png" width="350" /></a></div>
</td> </tr>
<tr> <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Person Class Definition from FOAF Vocabulary</th> <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Organization Class Definition from FOAF Vocabulary</th> </tr>
<tr> <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEpLSlK0ck6AAH3cCkuQWiHJI3XwbthCYQMgQW4IiPubMullszH38nQoXKSnpVh_QM2kmPJa3AWl8qwOzw8UJpIflCRsComMGyr2hsFQp6okd02f1snCdIUXlr6YreQ6yIaWRn04CUey7sL18/s1600/Screen+Shot+2015-06-30+at+2.56.09+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="185" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEpLSlK0ck6AAH3cCkuQWiHJI3XwbthCYQMgQW4IiPubMullszH38nQoXKSnpVh_QM2kmPJa3AWl8qwOzw8UJpIflCRsComMGyr2hsFQp6okd02f1snCdIUXlr6YreQ6yIaWRn04CUey7sL18/s350/Screen+Shot+2015-06-30+at+2.56.09+PM.png" width="350" /></a></td> <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAA_qb389TeyuUto2oEmaE4T0-FD-KYQ0MZipBrUhzCzNEJ3CkcUq0w4BnY2H18cPZnTNJPbK2oCx5o0lmqKV4dSZw-pa9M-oyWDKfmxINDMp4pHXNm3_BhgnBjazCEBMJqGcKWQbX0V9sJZ0/s1600/Screen+Shot+2015-06-30+at+2.56.37+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="184" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAA_qb389TeyuUto2oEmaE4T0-FD-KYQ0MZipBrUhzCzNEJ3CkcUq0w4BnY2H18cPZnTNJPbK2oCx5o0lmqKV4dSZw-pa9M-oyWDKfmxINDMp4pHXNm3_BhgnBjazCEBMJqGcKWQbX0V9sJZ0/s350/Screen+Shot+2015-06-30+at+2.56.37+PM.png" width="350" /></a></td> </tr>
</tbody></table>
<br />
<h4>
Actual Mapping of Generated Classes to FOAF Vocabulary Classes:</h4>
We can now map generated Class Definitions for each SQL RDBMS to Class Definitions in the FOAF Vocabulary.<br />
<br />
The actual mapping process could take the form of RDF document content (as per snippet below) that&#39;s loaded into the Virtuoso RDBMS:<br />
<br />
<pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>## Class derived from Virtuoso&#39;s Customers Table
&lt;<a href="http://demo.openlinksw.com/schemas/Demo/Customers" target="_blank">http://demo.openlinksw.com/schemas/Demo/Customers</a>&gt;
   rdfs:subClassOf   foaf:Organization   .

## Class derived from Microsoft SQL Server Customers Table
&lt;<a href="http://demo.openlinksw.com/schemas/SQLServer/Customers" target="_blank">http://demo.openlinksw.com/schemas/SQLServer/Customers</a>&gt;
   rdfs:subClassOf   foaf:Organization   .

## Class derived from Sybase Publishers Table
&lt;<a href="http://demo.openlinksw.com/schemas/sybase12/publishers" target="_blank">http://demo.openlinksw.com/schemas/sybase12/publishers</a>&gt;
   rdfs:subClassOf   foaf:Organization   .

## Class derived from Progress Customer Table
&lt;<a href="http://demo.openlinksw.com/schemas/progress9/Customer" target="_blank">http://demo.openlinksw.com/schemas/progress9/Customer</a>&gt;
   rdfs:subClassOf   foaf:Organization   .

## Class derived from PrestoDB Customer Table
&lt;<a href="http://demo.openlinksw.com/schemas/PrestoDB/customer" target="_blank">http://demo.openlinksw.com/schemas/PrestoDB/customer</a>&gt;
   rdfs:subClassOf   foaf:Organization   .

## Class derived from Informix Customer Table
&lt;<a href="http://demo.openlinksw.com/schemas/informix/customer" target="_blank">http://demo.openlinksw.com/schemas/informix/customer</a>&gt;
   rdfs:subClassOf   foaf:Person   .

## Class derived from Ingres Cust_Info Table
&lt;<a href="http://demo.openlinksw.com/schemas/ingres/cust_info" target="_blank">http://demo.openlinksw.com/schemas/ingres/cust_info</a>&gt;
   rdfs:subClassOf   foaf:Person   .

## Class derived from Oracle EMPLOYEES Table
&lt;<a href="http://demo.openlinksw.com/schemas/OracleHR/EMPLOYEES" target="_blank">http://demo.openlinksw.com/schemas/OracleHR/EMPLOYEES</a>&gt;
   rdfs:subClassOf   foaf:Person   .

</code></pre>
<br />
Alternatively, the same mapping could be loaded into Virtuoso using a SPARQL Query Language INSERT statement:<br />
<pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>INSERT
   {
      GRAPH &lt;urn:rdbms:inference:reasoning:demo:1&gt;
         {
            ## Class derived from Virtuoso&#39;s Customers Table
            &lt;<a href="http://demo.openlinksw.com/schemas/Demo/Customers" target="_blank">http://demo.openlinksw.com/schemas/Demo/Customers</a>&gt;
               rdfs:subClassOf   foaf:Organization   .

            ## Class derived from Microsoft SQL Server Customers Table
            &lt;<a href="http://demo.openlinksw.com/schemas/SQLServer/Customers" target="_blank">http://demo.openlinksw.com/schemas/SQLServer/Customers</a>&gt;
               rdfs:subClassOf   foaf:Organization   .

            ## Class derived from Sybase Publishers Table
            &lt;<a href="http://demo.openlinksw.com/schemas/sybase12/publishers" target="_blank">http://demo.openlinksw.com/schemas/sybase12/publishers</a>&gt;
               rdfs:subClassOf   foaf:Organization   .

            ## Class derived from Progress Customer Table
            &lt;<a href="http://demo.openlinksw.com/schemas/progress9/Customer" target="_blank">http://demo.openlinksw.com/schemas/progress9/Customer</a>&gt;
               rdfs:subClassOf   foaf:Organization   .

            ## Class derived from PrestoDB Customer Table
            &lt;<a href="http://demo.openlinksw.com/schemas/PrestoDB/customer" target="_blank">http://demo.openlinksw.com/schemas/PrestoDB/customer</a>&gt;
            rdfs:subClassOf   foaf:Organization   .

            ## Class derived from Informix Customer Table
            &lt;<a href="http://demo.openlinksw.com/schemas/informix/customer" target="_blank">http://demo.openlinksw.com/schemas/informix/customer</a>&gt;
               rdfs:subClassOf   foaf:Person   .

            ## Class derived from Ingres Cust_Info Table
            &lt;<a href="http://demo.openlinksw.com/schemas/ingres/cust_info" target="_blank">http://demo.openlinksw.com/schemas/ingres/cust_info</a>&gt;
               rdfs:subClassOf   foaf:Person   .

            ## Class derived from Oracle EMPLOYEES Table
            &lt;<a href="http://demo.openlinksw.com/schemas/OracleHR/EMPLOYEES" target="_blank">http://demo.openlinksw.com/schemas/OracleHR/EMPLOYEES</a>&gt;
               rdfs:subClassOf   foaf:Person   .
         }
   }
</code></pre>
<br />
For good measure, ensure that terms from the RDF Schema Vocabulary are also loaded to the Named Graph identified by &lt;urn:rdbms:inference:reasoning:demo:1&gt; .<br />
<br />
<pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>ADD &lt;http://www.w3.org/2000/01/rdf-schema#&gt; TO <span style="font-family: &quot;andale mono&quot;, &quot;lucida console&quot;, monaco, fixed, monospace;">&lt;urn:rdbms:inference:reasoning:demo:1&gt;</span>
</code></pre>
<br />
Currently, the RDF Schema document published on the Web [<a href="http://www.w3.org/2000/01/rdf-schema#">13</a>] lacks an explicit indication of the transitive nature of <code>rdfs:subClassOf</code> based statements. I will therefore add this explicitly, using the following SPARQL INSERT statement:<br />
<br />
<pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>INSERT
   { GRAPH <span style="font-family: &quot;andale mono&quot;, &quot;lucida console&quot;, monaco, fixed, monospace;">&lt;urn:rdbms:inference:reasoning:demo:1&gt;</span>

      {  rdfs:subClassOf   a   owl:TransitiveProperty   }
   }
</code></pre>
<br />
Finally, we also need to indicate to Virtuoso that the RDF statements loaded into the Named Graph identified by <code>&lt;urn:rdbms:inference:reasoning:demo:1&gt;</code> should be used as the basis for reasoning and inference (i.e., provide rich &quot;Context Lenses&quot; into the data). This is done by creating an inference rule, with the following SQL stored procedure call:<br />
<br />
<pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>rdfs_rule_set
   ( &#39;sql-vdb-data-lake&#39; ,
     &#39;urn:rdbms:inference:reasoning:demo:1&#39;
   ) ;
</code></pre>
<br />
With all of the steps above successfully completed, Virtuoso is equipped with all the information it needs to map the selected Relational Tables from Oracle, Microsoft SQL Server, Sybase, Informix, Progress / OpenEdge, Ingres, and Virtuoso, to instances of People and Organization as defined by the FOAF Vocabulary.<br />
<br />
These two screenshots demonstrate the result of this mapping, combined with the effects of RDF statement-aided inference and reasoning. In both cases, Individuals were derived from a union of records across the Tables (from all the SQL RDBMS) which were mapped to this Class.<br />
<br />
<table style="border-spacing: 10px; margin-left: auto; margin-right: auto; padding: 10px; width: 90%;"><tbody>
<tr> <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Instances of the Organization Class</th> <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Instances of the People Class</th> </tr>
<tr> <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0Ysjp3wGAFKB_DJuDsMfrdv_bRNaN56Bszut4oN1rvgrGYXQDC6ELuLHp0ceMUO4hD9hntCjlharqzGkfla8ZkRgkzPpH4glgqqEI8-Fmtyg2AJT24jIj03tISbYlNjcxqWLol2zURWahNes/s1600/foaf-organization-merged-instances.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0Ysjp3wGAFKB_DJuDsMfrdv_bRNaN56Bszut4oN1rvgrGYXQDC6ELuLHp0ceMUO4hD9hntCjlharqzGkfla8ZkRgkzPpH4glgqqEI8-Fmtyg2AJT24jIj03tISbYlNjcxqWLol2zURWahNes/s350/foaf-organization-merged-instances.png" width="350" /></a></td> <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP_YCJ0T6HUFFNk_2QIw9eiRx-_3CunI0BBRe1Mo41qtaQU15A3qtFBOelb8sO0k790h63oyS50cuybXPslkuHsfK5EllZWxHSk4hWQNGKIs5yTU0Avn2sf-RxuRli6hAdEY0VOsJImlZjrk4/s1600/foaf-person-merged-instances.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="155" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP_YCJ0T6HUFFNk_2QIw9eiRx-_3CunI0BBRe1Mo41qtaQU15A3qtFBOelb8sO0k790h63oyS50cuybXPslkuHsfK5EllZWxHSk4hWQNGKIs5yTU0Avn2sf-RxuRli6hAdEY0VOsJImlZjrk4/s350/foaf-person-merged-instances.png" width="350" /></a></td> </tr>
</tbody></table>
<br />
As you can see in the screenshots above, HTTP URI identifiers are in full view. This aesthetic issue can blur appreciation of the power in hand. To remove that blur and bring the power into focus, we will take a further step -- adding a few additional RDF statements to the Virtuoso RDBMS, to enable its built-in Faceted Browser to replace those HTTP URIs with more aesthetically-pleasing and human-friendly labels without compromising their lookup (de-reference) functionality. The following SPARQL INSERT statement (or upload of an RDF document containing the same RDF sentences/statements) will do the job:<br />
<br />
<pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>SPARQL

INSERT
   {  GRAPH &lt;urn:rdbms:inference:reasoning:demo:labels&gt;
         {
            ?s   foaf:name   ?name   .
         }
   }
WHERE
   {
      ## Person Class Instances
  
      {  GRAPH &lt;urn:demo.openlinksw.com:OracleHR&gt;
         {
             ?s   &lt;<a href="http://demo.openlinksw.com/schemas/OracleHR/first_name" target="_blank">http://demo.openlinksw.com/schemas/OracleHR/first_name</a>&gt;   ?fname   ;
                  &lt;<a href="http://demo.openlinksw.com/schemas/OracleHR/last_name" target="_blank">http://demo.openlinksw.com/schemas/OracleHR/last_name</a>&gt;    ?sname   .
             bind (concat(?fname,&#39; &#39;, ?sname) as ?name)
         }
      }
  
   UNION
  
      {  GRAPH &lt;urn:demo.openlinksw.com:ingres&gt;
         {
             ?s   &lt;<a href="http://demo.openlinksw.com/schemas/ingres/name" target="_blank">http://demo.openlinksw.com/schemas/ingres/name</a>&gt;   ?name   .
         }
      }
  
   UNION
  
      {  GRAPH &lt;urn:demo.openlinksw.com:informix&gt;
         {
             ?s   &lt;<a href="http://demo.openlinksw.com/schemas/informix/fname" target="_blank">http://demo.openlinksw.com/schemas/informix/fname</a>&gt;   ?fname   ;
                  &lt;<a href="http://demo.openlinksw.com/schemas/informix/lname" target="_blank">http://demo.openlinksw.com/schemas/informix/lname</a>&gt;   ?sname   .
             bind (concat(?fname,&#39; &#39;, ?sname) as ?name)
         }
      }
  
   UNION
  
      ## Oragnization Class Instances
  
      {  GRAPH &lt;urn:demo.openlinksw.com:Demo&gt;
         {
             ?s   &lt;<a href="http://demo.openlinksw.com/schemas/Demo/companyname" target="_blank">http://demo.openlinksw.com/schemas/Demo/companyname</a>&gt;   ?name   .
         }
      }
  
   UNION
     
      {  GRAPH &lt;urn:demo.openlinksw.com:SQLServer&gt;
         {
             ?s   &lt;<a href="http://demo.openlinksw.com/schemas/SQLServer/companyname" target="_blank">http://demo.openlinksw.com/schemas/SQLServer/companyname</a>&gt;   ?name   .
         }
      }
  
   UNION

      {  GRAPH &lt;urn:demo.openlinksw.com:progress9&gt;
         {
             ?s   &lt;<a href="http://demo.openlinksw.com/schemas/progress9/name" target="_blank">http://demo.openlinksw.com/schemas/progress9/name</a>&gt;   ?name   .
         }
      }
  
   UNION
  
      {  GRAPH &lt;urn:demo.openlinksw.com:sybase12&gt;
         {
            ?s   &lt;<a href="http://demo.openlinksw.com/schemas/sybase12/pub_name" target="_blank">http://demo.openlinksw.com/schemas/sybase12/pub_name</a>&gt;   ?name   .
         }
      }

   UNION

      {  GRAPH &lt;urn:demo.openlinksw.com:prestoDB&gt;
         {
            ?s   &lt;<a href="http://demo.openlinksw.com/schemas/PrestoDB/c_name" target="_blank">http://demo.openlinksw.com/schemas/PrestoDB/c_name</a>&gt;   ?name   .
         }
      }
   };
</code></pre>
<br />
These two screenshots that follow demonstrate the total effect of this effort, after application of the aesthetically pleasing label rules above:<br />
<br />
<table style="border-spacing: 10px; margin-left: auto; margin-right: auto; padding: 10px; width: 90%;"><tbody>
<tr><th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Instances of the Organization Class,<br />
with Aesthetically Pleasing Labels</th> <th style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><br />
Instances of the People Class,<br />
with Aesthetically Pleasing Labels</th> </tr>
<tr> <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjXAALZMbDTu2unmYs7AgyrjdGE_nDRA0pUXLsIsAQ0lAAGOXoQR7KgIAg5wonZUJKBPh9beSlJ5McEsoxhI_zlnACktr4wrFWVzyYXn-5yvvqeCjA37aTFwP0HlmMxbAfFWa5rxgk3vBQVc0/s1600/foaf-organization-merged-instances-with-labels.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="154" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjXAALZMbDTu2unmYs7AgyrjdGE_nDRA0pUXLsIsAQ0lAAGOXoQR7KgIAg5wonZUJKBPh9beSlJ5McEsoxhI_zlnACktr4wrFWVzyYXn-5yvvqeCjA37aTFwP0HlmMxbAfFWa5rxgk3vBQVc0/s320/foaf-organization-merged-instances-with-labels.png" width="320" /></a></div>
<br /></td> <td style="align: center; clear: both; text-align: center; vertical-align: top; width: 40%;"><div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNRfmER3N9m9Mw9oYaHOOi-VEpmVKPKUKPWTzzGN2dFG8EEqHq4x9MbfFZGVGgMvWTt6n6Uin-_-UBLTmud6YQf2Llc7Dc3taXtqTnsLm56gU2fWp5XITJiueH7IqrpiDLUyX-7wFhb9zIhHc/s1600/foaf-person-merged-instances-with-labels.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="154" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNRfmER3N9m9Mw9oYaHOOi-VEpmVKPKUKPWTzzGN2dFG8EEqHq4x9MbfFZGVGgMvWTt6n6Uin-_-UBLTmud6YQf2Llc7Dc3taXtqTnsLm56gU2fWp5XITJiueH7IqrpiDLUyX-7wFhb9zIhHc/s320/foaf-person-merged-instances-with-labels.png" width="320" /></a></div>
<br /></td> </tr>
</tbody></table>
In addition, here are live links for the pages in the screenshots above:<br />
<ul>
<li><a href="http://demo.openlinksw.com/describe/?url=http%3A%2F%2Fxmlns.com%2Ffoaf%2F0.1%2FOrganization&amp;inf=sql-vdb-data-lake&amp;distinct=1" target="_blank">Instances of the Organization Class</a></li>
<li><a href="http://demo.openlinksw.com/describe/?url=http%3A%2F%2Fxmlns.com%2Ffoaf%2F0.1%2FPerson&amp;inf=sql-vdb-data-lake&amp;distinct=1" target="_blank">Instances of the Person Class</a> .</li>
</ul>
<h2>
</h2>
<h2>
Conclusion</h2>
Data Integration across heterogeneously shaped and disparately located data -- <b><i>Variety</i></b> -- is the immutable &quot;V&quot; in the &quot;Big Data&quot; meme. The challenges it presents cannot be resolved by painting new buzzwords and phrases over flawed approaches. For any kind of agility to be viable as a result of data integration, the integration process itself has to be conceptual in nature.<br />
<br />
In this post, I&#39;ve provided a detailed example of how RDF statements enable conceptual data integration across heterogeneously shaped and disparately located data. In the process, I&#39;ve also demonstrated how to practically exploit entity relationship type semantics (e.g., <code>rdfs:subClassOf</code>), bridge across different SQL RDBMS (merging Organizations and Person instances/records), and improve presentational aesthetics (replacing raw HTTP URIs with labels, without compromising underlying lookup functionality).<br />
<br />
<h2>
Links Referenced Here</h2>
<ol>
<li><a href="http://xmlns.com/foaf/0.1/">FOAF Vocabulary</a></li>
<li><a href="http://www.w3.org/TR/r2rml/">R2RML Language for Mapping Relational Tables to RDF Property/Predicate Graphs</a></li>
<li><a href="http://virtuoso.openlinksw.com/">Virtuoso Home Page</a></li>
<li><a href="http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtR2RML">About Virtuoso&#39;s R2RML Functionality</a></li>
<li><a href="http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtConductorR2RMLImport">Virtuoso&#39;s HTML based R2RML import wizard</a></li>
<li><a href="http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtTipsAndTricksGuideConductorR2RML">Virtuoso HTML based R2RML export wizard</a></li>
<li><a href="http://wikis.openlinksw.com/dataspace/owiki/wiki/UdaWikiWeb/HTML5XMLAExplorerSampleProg">HTML5 based SQL and SPARQL Query Builder Documentation</a></li>
<li><a href="http://demo.openlinksw.com/spasqlqb/spasqlqb.html">HTML5 based SQL and SPARQL Query Builder Live Demo Instance</a></li>
<li><a href="http://wikis.openlinksw.com/dataspace/owiki/wiki/UdaWikiWeb/HTML5XMLAExplorerSampleProg">Virtuoso&#39;s DBMS hosted Faceted Browsing services</a></li>
<li><a href="http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtLinkRemoteTables">Virtuoso HTML Wizard for attaching external ODBC/JDBC accessible SQL RDBMS Tables to its Virtual Database Engine</a></li>
<li><a href="http://docs.openlinksw.com/virtuoso/databaseadmsrv.html#linkrmttableauto">SQL extensions for attaching external ODBC/JDBC accessible SQL RDBMS Tables to its Virtual Database Engine</a></li>
<li><a href="http://uda.openlinksw.com/odbc-jdbc-st/">ODBC to JDBC Bridge Drivers (Single-Tier Lite Edition)</a></li>
<li><a href="http://uda.openlinksw.com/odbc-jdbc-mt/">ODBC to JDBC Bridge Drivers (Multi-Tier Enterprise Edition)</a></li>
<li><a href="http://www.w3.org/2000/01/rdf-schema#">RDF Schema Vocabulary Description Document</a></li>
</ol>
<br />
<h2>
Additional Reading</h2>
<ul>
<li><a href="http://kidehen.blogspot.com/2015/06/data-silos-are-killing-data-flow.html">Data Silos are Killing Data Flow</a></li>
<li><a href="http://www.slideshare.net/kidehen/understanding-29894555">Understanding Data</a></li>
<li><a href="http://www.openlinksw.com/c/9DL77CLF">Glossary of Terms</a></li>
</ul>
]]></content:encoded>
  <rss:link>http://kidehen.blogspot.com/2015/07/conceptual-data-virtualization-across.html</rss:link>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2015-07-01T22:30:00Z</dc:date>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://kidehen.blogspot.com/2015/06/importing-data-into-google-spreadsheet.html">
  <rss:title>Importing Data into Google Spreadsheet Docs using SPARQL</rss:title>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Situation Analysis Spreadsheets are eternally powerful productivity tools. For instance, showcasing the use of an ODBC Data Source Name (DSN) as the basis for binding and importing data into Excel -- en route to creating  Pivot Tables -- remains ODBC&#39;s ultimate value proposition showcase.  In this post, I am going to repeat the data import into a spreadsheet capability using Google Spreadsheet and data from the Big Linked Open Data Cloud using DBpedia. Net effect, a Google Spreadsheet becomes a powerful Linked Data access and exploration tool for analytics, deep exploration, serendipitous discovery, and powerful data sharing.What follows is a simple guide for importing Linked Data into a Google Spreadsheet using a SPARQL Protocol URLs. Steps Go to the HTML UI of your SPARQL Endpoint -- in this case I am using DBpedia SPARQL endpoint (meaning: a Virtuoso based SPARQL Query Service) Create your SPARQL Query choosing CSV as your output format -- for this exercise we use SELECT but note it works just as well for more sophisticated DESCRIBE and CONSTRUCT queries Copy your SPARQL Results URL to your clipboard and then paste into the ImportData() function within a Google Spreadsheet formula -- the function signature is ImportData(URL) so usage pattern is: ImportData(&quot;{SPARQL-Protocol-based-Query-Results-URL}&quot;). Screenshots  HTML Based SPARQL Query Interface SPARQL Query Results in CSV Format Google Spreadsheet Formula Construction  Google Spreadsheet Formula Construction using ImportData() Function Data Imported from DBpedia HyperLinks (HTTP URIs) &amp; Import Data Formula Text http://bit.ly/google-import-from-dbpedia-sparql-query-results -- SPARQL Query Results URL (*note:* this also works with Excel and any other package that can handle CSV files/resources) http://bit.ly/google-import-from-dbpedia-sparql-query-definition -- SPARQL Query Text URL =ImportData(&quot;http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&amp;query=select+distinct+%3Fperson+%28sql%3AGROUP_CONCAT%28%3Fgenre%2C+%22+%2C+%22%29%29+as+%3Fgenres+%3Fdied+%3Fborn%0D%0A%28+if+%28%0D%0A++%28datatype+%28%3Fborn%29+in+%28xsd%3AdateTime%2C+xsd%3Adate%29%29+and%0D%0A++%28datatype+%28%3Fdied%29+in+%28xsd%3AdateTime%2C+xsd%3Adate%29%29%2C%0D%0A++bif%3Adatediff%28%27year%27%2Cxsd%3AdateTime%28str%28%3Fborn%29%29%2Cxsd%3AdateTime%28str%28%3Fdied%29%29%29%2C%0D%0A++%22error%22+%29+%29+as+%3Fage%0D%0Awhere+%7B+%7B%0D%0Aselect+distinct+%3Fperson+%3Fgenre+%3Fdied+%3Fborn+from+%3Chttp%3A%2F%2Fdbpedia.org%3E+where+%0D%0A%7B+%0D%0A%3Fperson+a+%3Chttp%3A%2F%2Fdbpedia.org%2Fontology%2FMusicalArtist%3E+%3B%0D%0A+++%3Chttp%3A%2F%2Fdbpedia.org%2Fontology%2Fgenre%3E+%3Fgenre%3B%0D%0A+++%3Chttp%3A%2F%2Fdbpedia.org%2Fontology%2FdeathDate%3E+%3Fdied%3B%0D%0A+++%3Chttp%3A%2F%2Fdbpedia.org%2Fontology%2FbirthDate%3E+%3Fborn+.%0D%0A%0D%0A%0D%0A%7D%0D%0Aorder+by+desc+%28+%3CLONG%3A%3AIRI_RANK%3E+%28%3Fperson%29+%29+limit+50++%7D%7D&amp;format=text%2Fcsv&amp;timeout=15000&amp;debug=on&quot;) -- actual Google Spreadsheet Formula (just copy and paste as is, into a cell of choice in your Google Spreadsheet) https://docs.google.com/spreadsheet/ccc?key=0AihbIyhlsQSxdFNzZzVsMzJOdDh5TDdvR25JSXNLTlE -- shared Google Spreadsheet containing data used in this post. Conclusion Once again, data is flowing freely across different domains (DBpedia and Google Spreadsheet), with ease, due to the power of Hyperlinks (HTTP URIs) as Identifiers for any kind of entity type (documents, people, and anything else you can think of).  Related http://kidehen.blogspot.com/2015/06/importing-data-into-microsoft-excel-via.html -- Importing Data into Excel via SPARQL http://kidehen.blogspot.com/2015/06/data-silos-are-killing-data-flow.html -- Data Silos are Killing Data Flow! http://virtuoso.openlinksw.com -- Virtuoso Home Page .</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<br /><br /><br /><h2>
Situation Analysis</h2>
<div>
Spreadsheets are eternally powerful productivity tools. For instance, showcasing the use of an ODBC Data Source Name (DSN) as the basis for binding and importing data into Excel -- en route to creating  Pivot Tables -- remains ODBC&#39;s ultimate value proposition showcase. </div>
<div>
<br /></div>
<div>
In this post, I am going to repeat the data import into a spreadsheet capability using Google Spreadsheet and data from the Big Linked Open Data Cloud using DBpedia. Net effect, a Google Spreadsheet becomes a powerful Linked Data access and exploration tool for analytics, deep exploration, serendipitous discovery, and powerful data sharing.<br /><br /><br />What follows is a simple guide for importing Linked Data into a Google Spreadsheet using a SPARQL Protocol URLs. <br /><br /><h2>
Steps</h2>
</div>
<div>
<ol>
<li>Go to the HTML UI of your SPARQL Endpoint -- in this case I am using DBpedia SPARQL endpoint (meaning: a Virtuoso based SPARQL Query Service)</li>
<li>Create your SPARQL Query choosing CSV as your output format -- for this exercise we use SELECT but note it works just as well for more sophisticated DESCRIBE and CONSTRUCT queries</li>
<li>Copy your SPARQL Results URL to your clipboard and then paste into the ImportData() function within a Google Spreadsheet formula -- the function signature is ImportData(URL) so usage pattern is: ImportData(&quot;{SPARQL-Protocol-based-Query-Results-URL}&quot;).</li>
</ol>
<h3>
<br /></h3>
<h3>
Screenshots </h3>
<div style="text-align: center;">
HTML Based SPARQL Query Interface</div>
<br /><br /><a href="http://1.bp.blogspot.com/-tko1baL8NLo/T1ja_4X1OtI/AAAAAAAAIuc/Cy7Jezh1py4/w1849-h900-no/google-spreadsheet-sparql-csv-demo-screen1.png"><img border="0" src="https://1.bp.blogspot.com/-tko1baL8NLo/T1ja_4X1OtI/AAAAAAAAIuc/Cy7Jezh1py4/w1849-h900-no/google-spreadsheet-sparql-csv-demo-screen1.png" /></a><br /><br /><div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
SPARQL Query Results in CSV Format</div>
<br /><br /><a href="http://3.bp.blogspot.com/-IyWbiVn01FI/T1jbCTvvZBI/AAAAAAAAIy8/gVx-pe4MH9E/w1849-h722-no/google-spreadsheet-sparql-csv-demo-screen2.png"><img border="0" src="https://3.bp.blogspot.com/-IyWbiVn01FI/T1jbCTvvZBI/AAAAAAAAIy8/gVx-pe4MH9E/w1849-h722-no/google-spreadsheet-sparql-csv-demo-screen2.png" /></a><br /><br /><div style="text-align: center;">
Google Spreadsheet Formula Construction </div>
<br /><a href="http://1.bp.blogspot.com/-4i3w28OZwOY/T1jbEZhh9bI/AAAAAAAADE8/wy3z-Hn7GmI/w1849-h471-no/google-spreadsheet-sparql-csv-demo-screen3.png"><img border="0" src="https://1.bp.blogspot.com/-4i3w28OZwOY/T1jbEZhh9bI/AAAAAAAADE8/wy3z-Hn7GmI/w1849-h471-no/google-spreadsheet-sparql-csv-demo-screen3.png" /></a><br /><br /><br /><br /><div style="text-align: center;">
Google Spreadsheet Formula Construction using ImportData() Function</div>
<br /><a href="http://2.bp.blogspot.com/-CN2sF_LdpcE/T1jbIOm3DLI/AAAAAAAADFM/qOYI0kXviYE/w1849-h522-no/google-spreadsheet-sparql-csv-demo-screen4.png"><img border="0" src="https://2.bp.blogspot.com/-CN2sF_LdpcE/T1jbIOm3DLI/AAAAAAAADFM/qOYI0kXviYE/w1849-h522-no/google-spreadsheet-sparql-csv-demo-screen4.png" /></a><br /><br /><br /><div style="text-align: center;">
Data Imported from DBpedia</div>
<br /><a href="http://1.bp.blogspot.com/-kkRZmMdP8rg/T1jbJuxjAxI/AAAAAAAADFU/fMS7hiJcNg4/w1849-h876-no/google-spreadsheet-sparql-csv-demo-screen5.png"><img border="0" src="https://1.bp.blogspot.com/-kkRZmMdP8rg/T1jbJuxjAxI/AAAAAAAADFU/fMS7hiJcNg4/w1849-h876-no/google-spreadsheet-sparql-csv-demo-screen5.png" /></a><br /><br /><br /><h3>
HyperLinks (HTTP URIs) &amp; Import Data Formula Text</h3>
<ul>
<li><a href="http://bit.ly/google-import-from-dbpedia-sparql-query-results">http://bit.ly/google-import-from-dbpedia-sparql-query-results</a> -- SPARQL Query Results URL (*note:* this also works with Excel and any other package that can handle CSV files/resources)<br /></li>
<li><a href="http://bit.ly/google-import-from-dbpedia-sparql-query-definition">http://bit.ly/google-import-from-dbpedia-sparql-query-definition</a> -- SPARQL Query Text URL<br /></li>
<li>=ImportData(&quot;http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&amp;query=select+distinct+%3Fperson+%28sql%3AGROUP_CONCAT%28%3Fgenre%2C+%22+%2C+%22%29%29+as+%3Fgenres+%3Fdied+%3Fborn%0D%0A%28+if+%28%0D%0A++%28datatype+%28%3Fborn%29+in+%28xsd%3AdateTime%2C+xsd%3Adate%29%29+and%0D%0A++%28datatype+%28%3Fdied%29+in+%28xsd%3AdateTime%2C+xsd%3Adate%29%29%2C%0D%0A++bif%3Adatediff%28%27year%27%2Cxsd%3AdateTime%28str%28%3Fborn%29%29%2Cxsd%3AdateTime%28str%28%3Fdied%29%29%29%2C%0D%0A++%22error%22+%29+%29+as+%3Fage%0D%0Awhere+%7B+%7B%0D%0Aselect+distinct+%3Fperson+%3Fgenre+%3Fdied+%3Fborn+from+%3Chttp%3A%2F%2Fdbpedia.org%3E+where+%0D%0A%7B+%0D%0A%3Fperson+a+%3Chttp%3A%2F%2Fdbpedia.org%2Fontology%2FMusicalArtist%3E+%3B%0D%0A+++%3Chttp%3A%2F%2Fdbpedia.org%2Fontology%2Fgenre%3E+%3Fgenre%3B%0D%0A+++%3Chttp%3A%2F%2Fdbpedia.org%2Fontology%2FdeathDate%3E+%3Fdied%3B%0D%0A+++%3Chttp%3A%2F%2Fdbpedia.org%2Fontology%2FbirthDate%3E+%3Fborn+.%0D%0A%0D%0A%0D%0A%7D%0D%0Aorder+by+desc+%28+%3CLONG%3A%3AIRI_RANK%3E+%28%3Fperson%29+%29+limit+50++%7D%7D&amp;format=text%2Fcsv&amp;timeout=15000&amp;debug=on&quot;) -- actual Google Spreadsheet Formula (just copy and paste as is, into a cell of choice in your Google Spreadsheet)<br /></li>
<li><a href="https://docs.google.com/spreadsheet/ccc?key=0AihbIyhlsQSxdFNzZzVsMzJOdDh5TDdvR25JSXNLTlE">https://docs.google.com/spreadsheet/ccc?key=0AihbIyhlsQSxdFNzZzVsMzJOdDh5TDdvR25JSXNLTlE</a> -- shared Google Spreadsheet containing data used in this post.</li>
</ul>
<h2>
Conclusion</h2>
<div>
Once again, data is flowing freely across different domains (DBpedia and Google Spreadsheet), with ease, due to the power of Hyperlinks (HTTP URIs) as Identifiers for any kind of entity type (documents, people, and anything else you can think of). </div>
<h2>
Related</h2>
<ul>
<li><a href="http://kidehen.blogspot.com/2015/06/importing-data-into-microsoft-excel-via.html">http://kidehen.blogspot.com/2015/06/importing-data-into-microsoft-excel-via.html</a> -- Importing Data into Excel via SPARQL<br /></li>
<li><a href="http://kidehen.blogspot.com/2015/06/data-silos-are-killing-data-flow.html">http://kidehen.blogspot.com/2015/06/data-silos-are-killing-data-flow.html</a> -- Data Silos are Killing Data Flow!<br /></li>
<li><a href="http://virtuoso.openlinksw.com/">http://virtuoso.openlinksw.com</a> -- Virtuoso Home Page .</li>
</ul>
</div>
]]></content:encoded>
  <rss:link>http://kidehen.blogspot.com/2015/06/importing-data-into-google-spreadsheet.html</rss:link>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2015-06-30T16:55:00Z</dc:date>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://kidehen.blogspot.com/2015/06/importing-data-into-microsoft-excel-via.html">
  <rss:title>Importing Data Into Microsoft Excel via SPARQL</rss:title>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Situation Analysis You&#39;ve discovered the existence and utility of the Big Linked Open Data collective known as the Linked Open Data (LOD) Cloud [1]. Naturally, you would like to import some of this data into a local spreadsheet for additional processing and/or integration. Data Import from the LOD Cloud  Simply exploit the power of SPARQL, a structured query language for querying data represented as RDF statements/sentences. SPARQL queries are executed over HTTP networks (e.g., Web) using the SPARQL Protocol and query results (solutions) are represented using a variety of content-types. In this particular example we are going to be using a SPARQL Protocol URL that returns query results in CSV format which Excel understands. Steps: Locate a SPARQL Service (e.g. Virtuoso&#39;s) that supports CSV as an output for SELECT, DESCRIBE, or CONSTRUCT queries Execute your query with CSV output parameter Copy the SPARQL Query Results URL to your OS clipboard Use a URL shortener to shorten the SPARQL Results URL Start Excel Follow the File | Open URL menu path and then paste in your SPARQL Results URL Let Excel&#39;s CSV import wizard do the rest. Sample SPARQL Protocol URL: http://bit.ly/Tp61H3 Screenshots Illustrating Steps SPARQL Query Results URL as CSV Data Source Excel CSV Import Wizard Screen 1 Excel CSV Import Wizard Screen 2 Excel CSV Import Wizard Screen 3 Excel CSV Import Wizard Screen 4 Conclusion SPARQL (unlike SQL) includes a wire protocol as part of its specification. This wire protocol is HTTP based which enables it leverage all in-built ability to negotiate document content formats (content-types). Net effect, data flow between disparate applications and data sources is enhanced by the combination of a powerful query language and dexterous data access protocol. Links http://lod-cloud.net/ -- LOD Cloud http://kidehen.blogspot.com/2015/06/data-silos-are-killing-data-flow.html -- Data Silos are Killing Data Flow! http://virtuoso.openlinksw.com -- Virtuoso Home Page. </dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2>
Situation Analysis</h2>
You&#39;ve discovered the existence and utility of the Big Linked Open Data collective known as the Linked Open Data (LOD) Cloud [1]. Naturally, you would like to import some of this data into a local spreadsheet for additional processing and/or integration. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuXNCdqGJEJxBl0YXJRVZZqv8Wei0Bq-9Wy8xxpDs7lJR_ez5BAueaqikoOWAyZkOMl6SijLncm4PGk-FJ0l1F2uugG__iF9ADYj0yK60fxbcmzzVdphTqWwPDQND0bwb70HletO-epJwIaNg/s1600/webby_structured_data_packets_v9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuXNCdqGJEJxBl0YXJRVZZqv8Wei0Bq-9Wy8xxpDs7lJR_ez5BAueaqikoOWAyZkOMl6SijLncm4PGk-FJ0l1F2uugG__iF9ADYj0yK60fxbcmzzVdphTqWwPDQND0bwb70HletO-epJwIaNg/s400/webby_structured_data_packets_v9.jpg" width="400" /></a></div>
<br />
<br />
<h2>
Data Import from the LOD Cloud </h2>
Simply exploit the power of SPARQL, a structured query language for querying data represented as RDF statements/sentences.<br />
<br />
SPARQL queries are executed over HTTP networks (e.g., Web) using the SPARQL Protocol and query results (solutions) are represented using a variety of content-types. In this particular example we are going to be using a SPARQL Protocol URL that returns query results in CSV format which Excel understands.<br />
<br />
<h3>
Steps:</h3>
<br />
<ol>
<li><span style="background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 16.5454540252686px;">Locate a SPARQL Service (e.g. Virtuoso&#39;s) that supports CSV as an output for SELECT, DESCRIBE, or CONSTRUCT queries</span></li>
<li><span style="background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 16.5454540252686px;">Execute your query with CSV output parameter</span></li>
<li><span style="background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 16.5454540252686px;">Copy the SPARQL Query Results URL to your OS clipboard</span></li>
<li><span style="background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 16.5454540252686px;">Use a URL shortener to shorten the SPARQL Results URL</span></li>
<li><span style="background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 16.5454540252686px;">Start Excel</span></li>
<li><span style="background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 16.5454540252686px;">Follow the File | Open URL menu path and then paste in your SPARQL Results URL</span></li>
<li><span style="background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 16.5454540252686px;">Let Excel&#39;s CSV import wizard do the rest.</span></li>
<li><span style="background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 16.5454540252686px;">Sample SPARQL Protocol URL: http://bit.ly/Tp61H3</span></li>
</ol>
<h3>
Screenshots Illustrating Steps</h3>
<br />
<span style="background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 16.5454540252686px;"><br /></span>
<br />
<div style="text-align: center;">
<span style="background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 16.5454540252686px;">SPARQL Query Results URL as CSV Data Source</span></div>
<span style="background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 16.5454540252686px;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-NHR-te6DYk0/T2IdhMaMSMI/AAAAAAAADJY/on_n29IytF4/w1340-h364-no/sparql-csv-import-to-excel1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="107" src="https://4.bp.blogspot.com/-NHR-te6DYk0/T2IdhMaMSMI/AAAAAAAADJY/on_n29IytF4/w1340-h364-no/sparql-csv-import-to-excel1.png" style="cursor: move;" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Excel CSV Import Wizard Screen 1</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-dVvVMlc4OBk/T2IdjV7qXQI/AAAAAAAADJg/Tbuf5nMcUfA/w1200-h1019-no/sparql-csv-import-to-excel2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="338" src="https://2.bp.blogspot.com/-dVvVMlc4OBk/T2IdjV7qXQI/AAAAAAAADJg/Tbuf5nMcUfA/w1200-h1019-no/sparql-csv-import-to-excel2.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Excel CSV Import Wizard Screen 2</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-g3RqLZPzqEg/T2IdmrS5e3I/AAAAAAAADJo/EMGkQpPSfOA/w1184-h1015-no/sparql-csv-import-to-excel3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="342" src="https://3.bp.blogspot.com/-g3RqLZPzqEg/T2IdmrS5e3I/AAAAAAAADJo/EMGkQpPSfOA/w1184-h1015-no/sparql-csv-import-to-excel3.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Excel CSV Import Wizard Screen 3</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-tAj4w0YVQYs/T2IdpLeH3vI/AAAAAAAADJw/P1Ro7o7WT1A/w1193-h1015-no/sparql-csv-import-to-excel4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="340" src="https://3.bp.blogspot.com/-tAj4w0YVQYs/T2IdpLeH3vI/AAAAAAAADJw/P1Ro7o7WT1A/w1193-h1015-no/sparql-csv-import-to-excel4.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Excel CSV Import Wizard Screen 4</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-eJrp-0kHbzU/T2IdsLII9VI/AAAAAAAADJ4/rWYCM7QEBC4/w973-h1043-no/sparql-csv-import-to-excel15.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://2.bp.blogspot.com/-eJrp-0kHbzU/T2IdsLII9VI/AAAAAAAADJ4/rWYCM7QEBC4/w973-h1043-no/sparql-csv-import-to-excel15.png" width="372" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<h2>
Conclusion</h2>
SPARQL (unlike SQL) includes a wire protocol as part of its specification. This wire protocol is HTTP based which enables it leverage all in-built ability to negotiate document content formats (content-types). Net effect, data flow between disparate applications and data sources is enhanced by the combination of a powerful query language and dexterous data access protocol.<br />
<br />
<h2>
Links</h2>
<ol>
<li><a href="http://lod-cloud.net/">http://lod-cloud.net/ </a>-- LOD Cloud</li>
<li><a href="http://kidehen.blogspot.com/2015/06/data-silos-are-killing-data-flow.html">http://kidehen.blogspot.com/2015/06/data-silos-are-killing-data-flow.html</a> -- Data Silos are Killing Data Flow!</li>
<li><a href="http://virtuoso.openlinksw.com/">http://virtuoso.openlinksw.com</a> -- Virtuoso Home Page. </li>
</ol>
<br />]]></content:encoded>
  <rss:link>http://kidehen.blogspot.com/2015/06/importing-data-into-microsoft-excel-via.html</rss:link>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2015-06-26T00:28:00Z</dc:date>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://kidehen.blogspot.com/2015/06/data-silos-are-killing-data-flow.html">
  <rss:title>Data Silos are Killing Data Flow!</rss:title>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Situation Analysis Data Silos are bad. Even worse, they are growing exponentially! It&#39;s no secret that Big Data is a conventional stool that consists of three legs: data volume, velocity, and variety. Unfortunately, data volume and velocity increasingly receive too much time, attention, and energy at the expense of variety.  Today, we have a NoSQL (&quot;Not Only SQL Relational Tables&quot; Relational DBMS World View) vs SQL (&quot;SQL Relational Tables Only&quot; World View) raging across DBMS vendors in either camp. The aforementioned camps have a simple value proposition: I can process more data at lower costs, with regards to data volume and velocity challenges. Thus, if you want to get some dead-silence in this noisy realm, simply introduce the issue of heterogeneously shaped and disparately located data. Basically, how does one reference data across database management systems (SQL or NoSQL)?  What is a Data Silo?  Technology that&#39;s inherently constructed with an internalized view of data, in relation to how its represented, accessed, and manipulated. Data Silo vectors include: Myopic views of structured data representation e.g., the notion that &quot;unstructured data&quot; exists when that&#39;s a subjective view held by those who don&#39;t understand or care about loosely coupling data, data representation notations, and data serialization formats  Query languages tightly coupled too a specific overreaching view of data representation (e.g., SQL imposition in a world where nobody sees entity relationships in Tabular form, when thinking) Use of Literals as opposed to References (e.g., Hyperlinks) for identifying (naming) entities.  What&#39;s the problem with Data Silos?  They impede the pursuit of data-driven agility. Ironically, we tout (with fervor) the imminence of a data-driven Internet of Things, a Web of Things, Big Data, and the like, while completely overlooking the inevitable impact of heterogeneously shaped data on this fine-grained mesh of machines, data, and people. Data Silos are also extremely expensive, in every sense of the word.   How do we address the Data Silo problem?  Simply step back and look at the World Wide Web (Web) abstraction over the Internet. Basically, if we were to go back 26 years (prior to its emergence), using today&#39;s dominant thinking about data matters, the meme of the day would be &quot;Big Documents&quot; and a race amongst vendors to provide the fastest &quot;Big Documents&quot; processing system. The fact that document content format varies wouldn&#39;t matter since vendors would simply pursue the misguided notion that the fastest document management system wins and all alternatives die -- en route to a single document content format that serves all purposes.  Luckily for all of us, the Web emerged instead. It provided fundamental infrastructure, via sound architecture, for document content creation, sharing, and integration. It delivered this virtue without confining the world to a specific content format -- courtesy of &quot;content type negotiation&quot; which is backed into its core.  What worked for what would have been &quot;Big Documents&quot; will also work for &quot;Big Data&quot; using the very same infrastructure of the Web -- thanks to the underly dexterity of its core architectural components (URIs and HTTP).   Core Web Architecture: Hyperlinks (URIs + HTTP)  If we can identify documents using hyperlinks, we can do the same for other entity types (people, places, music,  and other things that make up our experiential existence).  Likewise, if we can use hyperlinks to signal the fact that one document is related to another, we can apply the very same approach to identifying  how a variety of entities are related, and then even describe the very nature of different entity relationship types.  The Web fundamentally demonstrates the power of Data as the new Electricity conducted via hyperlinks. Thus, in this noisy world of DBMS technology (SQL or NoSQL) and its &quot;Big Data&quot; meme, we must pay attention to the role hyperlinks should be playing in regards to data representation. For instance, to what degree (if any) are hyperlinks used to identify entity relationship components (i.e., an entity, its attribute names, and associated attribute values) or the subject, predicate, and objects aspects of a sentence (re., parts of speech)? Ignoring this fundamental step is a recipe for data silo explosion, and that&#39;s exactly what&#39;s happening today.  Data De-Silo-Fication Example Be it within the confines of an enterprise intranet or the public echelons of the World Wide Web. The data silo induced data-flow-inertia problems remain the same i.e., we need to increase data flow across data silos, using methods that go beyond Tables, Forms, and Graphics (pretty silos). Basically, we need to add hyperlink enhanced sentences to the mix, using an approach I call nanotation.  Nanotation is simply about the ability to create controlled natural language sentences in any medium that accepts plain text. That&#39;s it. In my specific case, I prefer to use Turtle Notation due to its closeness to controlled english and the visibility it brings to relationship type semantics. It also doesn&#39;t hurt that one of its creators also invented what we know as the Web.  Here&#39;s a simple Nanotation example that basically creates a webby structured data island right within this post. {   &lt;&gt; a schema:BlogPosting .   &lt;&gt; rdfs:label &quot;Data Silos are Killing Data Flow!&quot; .   &lt;&gt; rdfs:comment &quot;&quot;&quot;                                Simple sentences that systematically encode                                 information [data in some context] in reusable form.                               &quot;&quot;&quot; .    &lt;&gt; schema:author &lt;https://www.linkedin.com/in/kidehen#this&gt; .   &lt;&gt; schema:about &lt;https://twitter.com/hashtag/DataSilo#this&gt;,        &lt;https://twitter.com/hashtag/Web#this&gt;, &lt;https://twitter.com/hashtag/RDBMS#this&gt;,      &lt;https://twitter.com/hashtag/BigData#this&gt;, &lt;https://twitter.com/hashtag/NoSQL#this&gt; .   &lt;&gt; schema:mentions &lt;https://twitter.com/hashtag/Nanotation#this&gt; .    &lt;&gt; skos:related &lt;http://www.slideshare.net/kidehen/understanding-29894555&gt; .  } In the example above, &lt;&gt; identifies this post using a relative HTTP URI which surmounts the fact that an actual document location on the Web doesn&#39;t exist for my content until I save and publish this post. Anyway, once published, I will use the comments section associated with this post to showcase the effects of hyperlink enhanced data representation.  Here are some additional links that showcase the effect of nanotation-style digital sentences or statements as an effective vehicle for alleviating current and future challenges posed by data silos: http://linkeddata.uriburner.com/c/9C57PBNP -- Subjects of statements embedded in Twitter posts (tweets) as a mechanism for Linked Open Data generation http://linkeddata.uriburner.com/c/9D563BNP -- Objects of statements embedded in Twitter posts (tweets) as a mechanism for Linked Open Data generation http://linkeddata.uriburner.com/c/9C57PBNP -- Predicates used in statements embedded in Twitter posts (tweets) as a mechanism for Linked Open Data generation. Conclusion Database management system performance and scalability are not the most important aspects of the Big Data meme. They are simply an aspect of said meme. Data variety, privacy, and security are also extremely important issues that cannot be ignored, during the process of product design, development, acquisition, and deployment.  The issue of data de-silo-fication shouldn&#39;t be the topic used to invoke silence in a noisy space. It should actually be the issue around which the most noise swirls :)  Related Links http://www.w3.org/TR/turtle/ -- Turtle Notation http://bit.ly/linked-open-data-and-the-enterprise -- Linked Open Data &amp; The Enterprise Blog Post http://kidehen.blogspot.com/2014/08/linked-local-data-lld-and-linked-open.html -- Linked Local Data vs Linked Open Data  http://kidehen.blogspot.com/2014/03/world-wide-web-25-years-later.html -- World Wide Web 26 Years Later (that post was written last year) http://bit.ly/blog-post-about-nanotation -- Nanotation  http://bit.ly/twitter-nanotation-subjects-for-2014-09-03 -- Twitter Nanotation subjects frequency for 3rd September 2014 http://bit.ly/twitter-nanotation-predicates-for-2014-09-03 -- Twitter Nanotation predicate frequency for 3rd September 2014 http://bit.ly/twitter-nanotation-objects-for-2014-09-03 -- Twitter Nanotation objects frequency for 3rd September 2014.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2>
<span class="s1">Situation Analysis</span></h2>
<div class="p2">
<span class="s1">Data Silos are bad. Even worse, they are growing exponentially!</span></div>
<div class="p2">
<span class="s1"><br /></span></div>
<div class="p2">
<span class="s1">It&#39;s no secret that Big Data is a conventional stool that consists of three legs: <i>data volume, velocity</i>, and <i>variety</i>. Unfortunately, data volume and velocity increasingly receive too much time, attention, and energy at the expense of <i>variety</i>. </span></div>
<div class="p2">
<br /></div>
<div class="p2">
<span class="s1">Today, we have a NoSQL (&quot;Not Only SQL Relational Tables&quot; Relational DBMS World View) vs SQL (&quot;SQL Relational Tables Only&quot; World View) raging across DBMS vendors in either camp. The aforementioned camps have a simple value proposition: I can process more data at lower costs, with regards to data volume and velocity challenges. Thus, if you want to get some dead-silence in this noisy realm, simply introduce the issue of heterogeneously shaped and disparately located data. Basically, how does one reference data across database management systems (SQL or NoSQL)? </span></div>
<div class="p2">
<span class="s1"><br /></span></div>
<h2>
<span class="s1">What is a Data Silo? </span></h2>
<div class="p2">
Technology that&#39;s inherently constructed with an internalized view of data, in relation to how its represented, accessed, and manipulated. Data Silo vectors include:</div>
<div class="p2">
</div>
<ul>
<li>Myopic views of structured data representation e.g., the notion that &quot;unstructured data&quot; exists when that&#39;s a subjective view held by those who don&#39;t understand or care about loosely coupling data, data representation notations, and data serialization formats </li>
<li>Query languages tightly coupled too a specific overreaching view of data representation (e.g., SQL imposition in a world where nobody sees entity relationships in Tabular form, when thinking)</li>
<li>Use of Literals as opposed to References (e.g., Hyperlinks) for identifying (naming) entities. </li>
</ul>
<h2>
What&#39;s the problem with Data Silos? </h2>
<div>
They impede the pursuit of data-driven agility. Ironically, we tout (with fervor) the imminence of a data-driven Internet of Things, a Web of Things, Big Data, and the like, while completely overlooking the inevitable impact of heterogeneously shaped data on this fine-grained mesh of machines, data, and people. Data Silos are also extremely expensive, in every sense of the word.  </div>
<div>
<br /></div>
<h2>
How do we address the Data Silo problem? </h2>
<div>
Simply step back and look at the World Wide Web (Web) abstraction over the Internet. Basically, if we were to go back 26 years (prior to its emergence), using today&#39;s dominant thinking about data matters, the meme of the day would be &quot;Big Documents&quot; and a race amongst vendors to provide the fastest &quot;Big Documents&quot; processing system. The fact that document content format varies wouldn&#39;t matter since vendors would simply pursue the misguided notion that the fastest document management system wins and all alternatives die -- en route to a single document content format that serves all purposes. </div>
<div>
<br /></div>
<div>
Luckily for all of us, the Web emerged instead. It provided fundamental infrastructure, via sound architecture, for document content creation, sharing, and integration. It delivered this virtue without confining the world to a specific content format -- courtesy of &quot;content type negotiation&quot; which is backed into its core. </div>
<div>
<br /></div>
<div>
What worked for what would have been &quot;Big Documents&quot; will also work for &quot;Big Data&quot; using the very same infrastructure of the Web -- thanks to the underly dexterity of its core architectural components (URIs and HTTP).  </div>
<div>
<br /></div>
<h3>
Core Web Architecture: Hyperlinks (URIs + HTTP) </h3>
<div>
If we can identify documents using hyperlinks, we can do the same for other entity types (people, places, music,  and other things that make up our experiential existence).  Likewise, if we can use hyperlinks to signal the fact that one document is related to another, we can apply the very same approach to identifying  how a variety of entities are related, and then even describe the very nature of different entity relationship types. </div>
<div>
<br /></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYN0WjR1YPRwTgBMevclzEXd2HqCWzqIZkVtXWYgaB0HSRXGC8CAiJHgwqnwMhOJcSEeWnmDB9x8ftprSamYzvpdwUs0bAs4s415obl6Vl0eiJ9pt74Ck4gKZ2l12hRzWfyNr3d7Eup1jbHNA/s1600/slide40_linked_data_network_v2_SPO+_latest_relative_uris.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="263" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYN0WjR1YPRwTgBMevclzEXd2HqCWzqIZkVtXWYgaB0HSRXGC8CAiJHgwqnwMhOJcSEeWnmDB9x8ftprSamYzvpdwUs0bAs4s415obl6Vl0eiJ9pt74Ck4gKZ2l12hRzWfyNr3d7Eup1jbHNA/s400/slide40_linked_data_network_v2_SPO+_latest_relative_uris.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div>
<br /></div>
<div>
The Web fundamentally demonstrates the power of Data as the new Electricity conducted via hyperlinks. Thus, in this noisy world of DBMS technology (SQL or NoSQL) and its &quot;Big Data&quot; meme, we must pay attention to the role hyperlinks should be playing in regards to data representation. For instance, to what degree (if any) are hyperlinks used to identify entity relationship components (i.e., an entity, its attribute names, and associated attribute values) or the subject, predicate, and objects aspects of a sentence (re., parts of speech)? Ignoring this fundamental step is a recipe for data silo explosion, and that&#39;s exactly what&#39;s happening today. </div>
<div>
<br /></div>
<h3>
Data De-Silo-Fication Example</h3>
<br />
<div class="p2">
<span class="s1">Be it within the confines of an enterprise intranet or the public echelons of the World Wide Web. The data silo induced data-flow-inertia problems remain the same i.e., we need to increase data flow across data silos, using methods that go beyond Tables, Forms, and Graphics (pretty silos). Basically, we need to add hyperlink enhanced sentences to the mix, using an approach I call nanotation. </span></div>
<div class="p2">
<span class="s1"><br /></span></div>
<div class="p2">
<span class="s1">Nanotation is simply about the ability to create controlled natural language sentences in any medium that accepts plain text. That&#39;s it. In my specific case, I prefer to use <a href="http://www.w3.org/TR/turtle/">Turtle Notation</a> due to its closeness to controlled english and the visibility it brings to relationship type semantics. It also doesn&#39;t hurt that one of its creators also invented what we know as the Web. </span></div>
<div class="p2">
<span class="s1"><br /></span></div>
<div class="p2">
<span class="s1">Here&#39;s a simple Nanotation example that basically creates a webby structured data island right within this post.</span></div>
<div class="p2">
<span class="s1"><br /></span></div>
<div class="p2">
<span class="s1">{</span></div>
<div class="p2">
<span class="s1">  &lt;&gt; a schema:BlogPosting .</span></div>
<div class="p2">
<span class="s1">  &lt;&gt; rdfs:label &quot;Data Silos are Killing Data Flow!&quot; .</span></div>
<div class="p2">
<span class="s1">  &lt;&gt; rdfs:comment &quot;&quot;&quot;</span></div>
<div class="p2">
                               Simple sentences that systematically encode </div>
<div class="p2">
                               information [data in some context] in reusable form.</div>
<div class="p2">
                              &quot;&quot;&quot; . </div>
<div class="p2">
<span class="s1">  &lt;&gt; schema:author &lt;</span>https://www.linkedin.com/in/kidehen#this&gt; .</div>
<div class="p2">
  &lt;&gt; schema:about &lt;https://twitter.com/hashtag/DataSilo#this&gt;,     </div>
<div class="p2">
  &lt;https://twitter.com/hashtag/Web#this&gt;, &lt;https://twitter.com/hashtag/RDBMS#this&gt;,   </div>
<div class="p2">
  &lt;https://twitter.com/hashtag/BigData#this&gt;, &lt;https://twitter.com/hashtag/NoSQL#this&gt; .</div>
<div class="p2">
  &lt;&gt; schema:mentions &lt;https://twitter.com/hashtag/Nanotation#this&gt; . </div>
<div class="p2">
  &lt;&gt; skos:related &lt;http://www.slideshare.net/kidehen/understanding-29894555&gt; . </div>
<div class="p2">
<span class="s1">}</span></div>
<div class="p2">
<span class="s1"><br /></span></div>
<div class="p2">
<span class="s1">In the example above, &lt;&gt; identifies this post using a relative HTTP URI which surmounts the fact that an actual document location on the Web doesn&#39;t exist for my content until I save and publish this post. Anyway, once published, I will use the comments section associated with this post to showcase the effects of hyperlink enhanced data representation. </span></div>
<div class="p2">
<span class="s1"><br /></span></div>
<div class="p2">
<span class="s1">Here are some additional links that showcase the effect of nanotation-style digital sentences or statements as an effective vehicle for alleviating current and future challenges posed by data silos:</span></div>
<ul class="ul1">
<li class="li2"><span class="s2"><a href="http://linkeddata.uriburner.com/c/9C57PBNP"><span class="s3">http://linkeddata.uriburner.com/c/9C57PBNP</span></a></span><span class="s1"> -- Subjects of statements embedded in Twitter posts (tweets) as a mechanism for Linked Open Data generation</span></li>
<li class="li2"><span class="s2"><a href="http://linkeddata.uriburner.com/c/9D563BNP"><span class="s3">http://linkeddata.uriburner.com/c/9D563BNP</span></a></span><span class="s1"> -- Objects of statements embedded in Twitter posts (tweets) as a mechanism for Linked Open Data generation</span></li>
<li class="li2"><span class="s2"><a href="http://linkeddata.uriburner.com/c/9C57PBNP"><span class="s3">http://linkeddata.uriburner.com/c/9C57PBNP</span></a></span><span class="s1"> -- Predicates used in statements embedded in Twitter posts (tweets) as a mechanism for Linked Open Data generation.</span></li>
</ul>
<h2>
<span class="s1">Conclusion</span></h2>
<div>
Database management system <i>performance</i> and <i>scalability</i> are not the most important aspects of the Big Data meme. They are simply an aspect of said meme. Data <i>variety, privacy, </i>and <i>security</i> are also extremely important issues that cannot be ignored, during the process of product design, development, acquisition, and deployment. </div>
<div>
<br /></div>
<div>
The issue of data de-silo-fication shouldn&#39;t be the topic used to invoke silence in a noisy space. It should actually be the issue around which the most noise swirls :) </div>
<h2>
<span class="s1">Related Links</span></h2>
<br />
<ul class="ul1">
<li class="li4"><a href="http://www.w3.org/TR/turtle/">http://www.w3.org/TR/turtle/</a> -- Turtle Notation</li>
<li class="li4"><span class="s3"><a href="http://bit.ly/linked-open-data-and-the-enterprise">http://bit.ly/linked-open-data-and-the-enterprise</a></span><span class="s4"> -- Linked Open Data &amp; The Enterprise Blog Post</span></li>
<li class="li4"><span class="s4"><a href="http://kidehen.blogspot.com/2014/08/linked-local-data-lld-and-linked-open.html">http://kidehen.blogspot.com/2014/08/linked-local-data-lld-and-linked-open.html</a> -- Linked Local Data vs Linked Open Data </span></li>
<li class="li4"><span class="s4"><a href="http://kidehen.blogspot.com/2014/03/world-wide-web-25-years-later.html">http://kidehen.blogspot.com/2014/03/world-wide-web-25-years-later.html</a> -- World Wide Web 26 Years Later (that post was written last year)</span></li>
<li class="li4"><a href="http://bit.ly/blog-post-about-nanotation"><span class="s3">http://bit.ly/blog-post-about-nanotation</span></a><span class="s4"> -- Nanotation </span></li>
<li class="li2"><span class="s2"><a href="http://bit.ly/twitter-nanotation-subjects-for-2014-09-03"><span class="s3">http://bit.ly/twitter-nanotation-subjects-for-2014-09-03</span></a></span><span class="s1"> -- Twitter Nanotation subjects frequency for 3rd September 2014</span></li>
<li class="li2"><span class="s2"><a href="http://bit.ly/twitter-nanotation-predicates-for-2014-09-03"><span class="s3">http://bit.ly/twitter-nanotation-predicates-for-2014-09-03</span></a></span><span class="s1"> -- Twitter Nanotation predicate frequency for 3rd September 2014</span></li>
<li class="li2"><span class="s2"><a href="http://bit.ly/twitter-nanotation-objects-for-2014-09-03"><span class="s3">http://bit.ly/twitter-nanotation-objects-for-2014-09-03</span></a></span><span class="s1"> -- Twitter Nanotation objects frequency for 3rd September 2014.</span></li>
</ul>
]]></content:encoded>
  <rss:link>http://kidehen.blogspot.com/2015/06/data-silos-are-killing-data-flow.html</rss:link>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2015-06-23T23:43:00Z</dc:date>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://kidehen.blogspot.com/2015/06/why-do-i-need-to-pay-for-odbc-jdbc-and.html">
  <rss:title>Why Do I Need To Pay For ODBC , JDBC, and ADO.NET Drivers?</rss:title>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Situation Analysis It&#39;s the year 2015, and the fundamental issues associated with data access drivers utility remains confusing. Basically, we remain uncertain about the value-to-compensation alignment of Open Database Connectivity (ODBC),  Java Database Connectivity (JDBC),  and ADO.NET drivers/providers. ODBC JDBC ADO.NET Why do we pay for anything?  After allowing for consumer irrationality [1], the basis of any payment is fundamentally tied to the monetization of opportunity costs. Essentially, we pay for one thing to alleviate the (usually higher) costs of something else. The rest of this post focuses on highlighting the real pains associated with the $0.00 value misconception associated with Data Access Drivers: ODBC, JDBC, ADO.NET, OLE-DB etc. Real Costs of Data Access Drivers In the most basic sense, there are some fundamental aspects of data access that are complex to implement and rarely implemented (if at all) by free drivers. The list includes: Escape Syntaxes for Dates and Functions -- abstraction for dates and function signatures at the application level (i.e., the same abstraction works across all compliant databases) Metadata Calls which enable smarter ODBC compliant applications -- this feature is typically missing on Driver Side and abused on the Client side i.e., making clients DBMS specific by testing for specific DBMS names as opposed to utilizing metadata returned by drivers Scrollable Cursors -- this is how you deal with change sensitivity and paging through large datasets; some drivers actually fake support and get away with it due to shortage of applications to test proper cursor types (Static, Forward-Only, Key-Set, Dynamic, and Mixed models). Beyond actual driver sophistication, in regards to key feature implementations, let&#39;s up the ante by veering into the area of data security. At the most basic level, It&#39;s extremely important to understand that all data access drivers provide read-write access to your databases; thus, it&#39;s imperative that data access drivers address the following: Read-Only or Read-Write Access modalities scoped to specific Users, specific User Groups, specific Databases, data access standard (ODBC, JDBC, or ADO.NET) compliant applications, client host operating systems, IP addresses or Ranges on your Network Any combination of the above as part of a configurable collection of data access rules (or policies). Once you&#39;re done with security, you then have the thorny issue of data access and data flow management. In a nutshell, your driver needs to be able to handle: Protection against cartesian product based network flooding (e.g., user queries Customer Table via an ODBC, JDBC, ADO.NET, OLE-DB compliant application without comprehension of back-end implications) Enabling or Disabling of key DBMS engine data access optimization features (e.g. SQL RDBMS specific extensions exposed via Environment Variables or SQL commands based settings) Conditional Connection Pooling across User, User Groups, Applications, Host Operating System, IP Address dimensions Data Encryption in Transit. Once you&#39;ve dealt with Security and Data Flow, you then have to address the enforcement of these settings across a myriad of ODBC compliant host, which is where Zeroconfig and centralized data access administration comes into play i.e., configure once (locally) and enforce globally. OpenLink Universal Data Access (UDA) Drivers  When OpenLink Software entered the ODBC Driver Market segment (circa 1992), the issues above were the fundamental basis of our Multi-Tier Drivers. Although the marketplace highlighted our drivers for high performance, stability, and specification adherence -- to all of which we remain committed -- our fundamental engineering focus has always been skewed towards configurable data security, platform independence, and scalability. Every item of concern outlined in the section above is addressed by security features built into our Multi-Tier Drivers [2][3][4]. These features all leverage the fact that our multi-tier drivers include a sophisticated DB session rules book that enables construction and enforcement of user attribute (user name, application, client operating system, IP address, target database etc.) based rules which are applied to all database sessions (single or pooled).  Today, in the year 2015, the security issues that pervade Native SQL RDBMS Drivers, ODBC, JDBC, and ADO.NET Drivers/Providers have only increased, courtesy of ubiquitous computing -- facilitated by the Internet &amp; Web, across desktop and mobile device dimensions.  Paradoxically, there remains a fundamental illusion that all Data Access Drivers are made the same i.e., they simply provide you with the ability to connect to SQL RDBMS back-ends, for the industry standard price of $0.00, without consequence -- thereby skewing the very nature of SQL RDBMS data access and its security and privacy implications.  I hope that this post brings some clarity to a very serious security and general configuration management issues associated with Data Access Drivers. Free ODBC Drivers offer nothing, that&#39;s why the cost $0.00. When dealing with real issues associated with Open Data Access you must have a handle on the inevitable issues of data security and privacy.  Links The Irrational Consumer: Why Economics Is Dead Wrong About How We Make Choices OpenLink Multi-Tier ODBC Drivers OpenLink Multi-Tier JDBC Drivers OpenLink Multi-Tier ADO.NET Providers. Related Oracle Security Auditing Horror Stories -- showcases social dimension of security that exploits literal identifiers used by SQL RDBMS products in regards to user identity Database Security Strategies Need to Grow Up in 2010 Who&#39;s Data is it? Part 1 Who&#39;s Data is it? Part 2.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2>
Situation Analysis</h2>
<div class="p2">
<span class="s1">It&#39;s the year 2015, and the fundamental issues associated with data access drivers utility remains confusing. Basically, we remain uncertain about the value-to-compensation alignment of Open Database Connectivity (ODBC),  Java Database Connectivity (JDBC),  and ADO.NET drivers/providers.</span></div>
<div class="p2">
<span class="s1"><br /></span></div>
<div class="p2" style="text-align: center;">
<span class="s1"><b>ODBC</b></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://s-media-cache-ak0.pinimg.com/originals/ef/b2/7e/efb27e54ef098c18a93aa8a074d5817d.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="290" src="https://s-media-cache-ak0.pinimg.com/originals/ef/b2/7e/efb27e54ef098c18a93aa8a074d5817d.png" width="320" /></a></div>
<div class="p2">
<span class="s1"><br /></span></div>
<div class="p2" style="text-align: center;">
<span class="s1"><b>JDBC</b></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://s-media-cache-ak0.pinimg.com/originals/75/11/a8/7511a81c2e4ec244473cc514d997bd0a.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://s-media-cache-ak0.pinimg.com/originals/75/11/a8/7511a81c2e4ec244473cc514d997bd0a.png" width="318" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<b>ADO.NET</b></div>
<div class="p2">
<span class="s1"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://s-media-cache-ak0.pinimg.com/originals/70/67/69/706769ab0ff453e94c50f38c956beeab.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="289" src="https://s-media-cache-ak0.pinimg.com/originals/70/67/69/706769ab0ff453e94c50f38c956beeab.jpg" width="320" /></a></div>
<div class="p2">
<br /></div>
<h3>
<span class="s1">Why do we pay for anything? </span></h3>
<div class="p2">
<span class="s1">







</span><br />
<div class="p1">
After allowing for consumer irrationality [<a href="http://www.theatlantic.com/business/archive/2013/01/the-irrational-consumer-why-economics-is-dead-wrong-about-how-we-make-choices/267255/">1</a>], the basis of any payment is fundamentally tied to the monetization of opportunity costs. Essentially, we pay for one thing to alleviate the (usually higher) costs of something else.</div>
</div>
<div class="p2">
<span class="s1"><br /></span></div>
<div class="p2">
<span class="s1">The rest of this post focuses on highlighting the real pains associated with the $0.00 value misconception associated with Data Access Drivers: <span class="s2">ODBC</span>, <span class="s2">JDBC</span>, <span class="s2">ADO</span>.NET, <span class="s2">OLE-DB</span> etc.</span></div>
<div class="p2">
<span class="s1"><br /></span></div>
<h2>
<span class="s1">Real Costs of Data Access Drivers</span></h2>
<div class="p2">
<span class="s1">In the most basic sense, there are some fundamental aspects of data access that are complex to implement and rarely implemented (if at all) by free drivers. The list includes:</span></div>
<ul>
<li class="li2"><span class="s1">Escape Syntaxes for Dates and Functions -- abstraction for dates and function signatures at the application level (i.e., the same abstraction works across all compliant databases)</span></li>
<li class="li2"><span class="s1">Metadata Calls which enable smarter ODBC compliant applications -- this feature is typically missing on Driver Side and abused on the Client side i.e., making clients DBMS specific by testing for specific DBMS names as opposed to utilizing metadata returned by drivers</span></li>
<li class="li2"><span class="s1">Scrollable Cursors -- this is how you deal with change sensitivity and paging through large datasets; some drivers actually fake support and get away with it due to shortage of applications to test proper cursor types (Static, Forward-Only, Key-Set, Dynamic, and Mixed models).</span></li>
</ul>
<div class="p2">
<span class="s1">Beyond actual driver sophistication, in regards to key feature implementations, let&#39;s up the ante by veering into the area of data security. At the most basic level, It&#39;s extremely important to understand that all data access drivers provide read-write access to your databases; thus, it&#39;s imperative that data access drivers address the following:</span></div>
<ul>
<li class="li2"><span class="s1">Read-Only or Read-Write Access modalities scoped to <i>specific Users</i>, </span><i>specific User Groups, specific Databases</i>, <i>data access standard (ODBC, JDBC, or ADO.NET) compliant applications</i>, <i>client host operating systems</i>, <i>IP addresses or Ranges on your Network</i></li>
<li class="li2"><span class="s1">Any combination of the above as part of a configurable collection of data access rules (or policies).</span></li>
</ul>
<div class="p2">
<span class="s1">Once you&#39;re done with security, you then have the thorny issue of data access and data flow management. In a nutshell, your driver needs to be able to handle:</span></div>
<ul>
<li class="li2"><span class="s1">Protection against cartesian product based network flooding (e.g., user queries Customer Table via an ODBC, JDBC, ADO.NET, OLE-DB compliant application without comprehension of back-end implications)</span></li>
<li class="li2"><span class="s1">Enabling or Disabling of key DBMS engine data access optimization features (e.g. SQL RDBMS specific extensions exposed via Environment Variables or <span class="s2">SQL</span> commands based settings)</span></li>
<li class="li2"><span class="s1">Conditional Connection Pooling across User, User Groups, Applications, Host Operating System, IP Address dimensions</span></li>
<li class="li2"><span class="s1">Data Encryption in Transit.</span></li>
</ul>
<div class="p2">
<span class="s1">Once you&#39;ve dealt with Security and Data Flow, you then have to address the enforcement of these settings across a myriad of ODBC compliant host, which is where Zeroconfig and centralized data access administration comes into play i.e., configure once (locally) and enforce globally.</span></div>
<div class="p2">
<span class="s1"><br /></span></div>
<h2>
<span class="s1">OpenLink Universal Data Access (UDA) Drivers </span></h2>
<div class="p2">
<br />
<div class="p1">
When OpenLink Software entered the ODBC Driver Market segment (circa 1992), the issues above were the fundamental basis of our Multi-Tier Drivers. Although the marketplace highlighted our drivers for high performance, stability, and specification adherence -- to all of which we remain committed -- our fundamental engineering focus has always been skewed towards configurable data security, platform independence, and scalability.</div>
</div>
<div class="p2">
<span class="s1"><br /></span></div>
<div class="p2">
<span class="s1">Every item of concern outlined in the section above is addressed by security features built into our Multi-Tier Drivers [<a href="http://uda.openlinksw.com/odbc/mt/">2</a>][<a href="http://uda.openlinksw.com/jdbc/mt/">3</a>][<a href="http://uda.openlinksw.com/dotnet/">4</a>]. These features all leverage the fact that our multi-tier drivers include a sophisticated DB session rules book that enables construction and enforcement of user attribute (user name, application, client operating system, IP address, target database etc.) based rules which are applied to all database sessions (single or pooled). </span></div>
<div class="p2">
<span class="s1"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://s-media-cache-ak0.pinimg.com/originals/ed/95/14/ed9514178ecf89849402af1c48942412.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://s-media-cache-ak0.pinimg.com/originals/ed/95/14/ed9514178ecf89849402af1c48942412.png" width="528" /></a></div>
<div class="p2">
<br /></div>
<div class="p2">
<span class="s1">Today, in the year 2015, the security issues that pervade Native SQL RDBMS Drivers, ODBC, JDBC, and ADO.NET Drivers/Providers have only increased, courtesy of ubiquitous computing -- facilitated by the Internet &amp; Web, across desktop and mobile device dimensions.  Paradoxically, there remains a fundamental illusion that all Data Access Drivers are made the same i.e., they simply provide you with the ability to connect to SQL RDBMS back-ends, for the industry standard price of $0.00, without consequence -- thereby skewing the very nature of SQL RDBMS data access and its security and privacy implications. </span></div>
<div class="p2">
<span class="s1"><br /></span></div>
<div class="p2">
<span class="s1">I hope that this post brings some clarity to a very serious security and general configuration management issues associated with Data Access Drivers. Free ODBC Drivers offer nothing, that&#39;s why the cost $0.00. When dealing with real issues associated with Open Data Access you must have a handle on the inevitable issues of data security and privacy. </span></div>
<div class="p2">
<span class="s1"><br /></span></div>
<h2>
<span class="s1">Links</span></h2>
<div class="p2">
</div>
<ol>
<li><a href="http://www.theatlantic.com/business/archive/2013/01/the-irrational-consumer-why-economics-is-dead-wrong-about-how-we-make-choices/267255/">The Irrational Consumer: Why Economics Is Dead Wrong About How We Make Choices</a></li>
<li><a href="http://uda.openlinksw.com/odbc/mt/">OpenLink Multi-Tier ODBC Drivers</a></li>
<li><a href="http://uda.openlinksw.com/jdbc/mt/">OpenLink Multi-Tier JDBC Drivers</a></li>
<li><a href="http://uda.openlinksw.com/dotnet/mt/">OpenLink Multi-Tier ADO.NET Providers</a>.</li>
</ol>
<br />
<h2>
<span class="s1"><b>Related</b></span></h2>
<ul class="ul1">
<li class="li2"><span class="s3"><a href="http://www.dba-oracle.com/t_auditing4_horror_stories_inside_jobs.htm"><span class="s1">Oracle Security Auditing Horror Stories</span></a></span><span class="s1"> -- showcases social dimension of security that exploits literal identifiers used by SQL RDBMS products in regards to user identity</span></li>
<li class="li3"><span class="s1"><a href="http://searchoracle.techtarget.com/news/2240015728/Database-security-strategies-need-to-grow-up-in-2010?">Database Security Strategies Need to Grow Up in 2010</a></span></li>
<li class="li3"><a href="http://walkingoncoals.blogspot.com/2009/12/whos-data-is-it-part-1.html"><span class="s1">Who&#39;s Data is it? Part 1</span></a></li>
<li class="li3"><span class="s1"><a href="http://walkingoncoals.blogspot.com/2009/12/whos-data-is-it-part-2.html">Who&#39;s Data is it? Part 2</a>.</span></li>
</ul>
]]></content:encoded>
  <rss:link>http://kidehen.blogspot.com/2015/06/why-do-i-need-to-pay-for-odbc-jdbc-and.html</rss:link>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2015-06-11T17:52:00Z</dc:date>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://kidehen.blogspot.com/2015/06/sending-digitally-signed-email-using.html">
  <rss:title>Sending Digitally Signed Email Using Thunderbird</rss:title>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Situation Analysis Following the increasing awareness of the importance of digitally signed emails, exemplified by Facebook&#39;s recent announcements about OpenPGP support [1], here&#39;s a screenshot based guide showcasing how I setup digital signing of emails via Thunderbird. Identity Credentials In my case, I am going to be using an X.509 certificate [2] rather than an PGP public key [3]. I am taking this route for the following reasons: X.509 certificates are required by S/MIME  S/MIME is a protocol for handling digitally signed and encrypted emails that&#39;s widely implemented by all native email clients (desktop and/or mobile devices) X.509 certificates support URIs in the SubjectAlternativeName (SAN) field which enables the use of HTTP URIs as Personal Identifiers (i.e., WebIDs) Public Key distribution and management is handled by all native email applications running on desktops and mobile devices. Steps Initial email notification when I attempt to digitally sign my email with an expired certificate. Use of YouID to generate a new certificate (step 1 of 4). Profile data used to create the certificate that&#39;s generated and then stored to a pkcs#12 file (step 2 of 4). Publication to LinkedIn of an ni: scheme URI that identifies an SHA1 hash of the generated certificate (step 3 of 4). Verifying my identity claims using the WebID-TLS protocol (a proof-of-work is based on looking-up the WebID in the generated certificate&#39;s SAN to see if it resolves to a profile document where a specific statement associates makes the connection between my WebID and the certificate&#39;s Public Key (step 4 of 4). Opening up Thunderbird preferences for certificate management via its in-built identity credentials store. Importing contents of the pkcs#12 file that was created by the YouID certificate generation process (Step 1 of 4). Authenticated access to pkcs#12 file content (Step 2 of 4). Successful import (Step 3 of 4). List of all certificates (current and expired) in the identity credentials store (Step 4 of 4). Using Thunderbird&#39;s security setup, for a given email account, here&#39;s the UI for associating an Email Account with identity credentials for digitally signing and encrypting outbound emails. Related Links Facebook PGP Support Announcement X.509 PGP  S/MIME Importance of Digitally Signed Emails YouID -- Identity Credentials Generator</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2>
Situation Analysis</h2>
<br />
Following the increasing awareness of the importance of digitally signed emails, exemplified by Facebook&#39;s recent announcements about OpenPGP support [<a href="https://www.facebook.com/notes/protect-the-graph/securing-email-communications-from-facebook/1611941762379302" target="_blank">1</a>], here&#39;s a screenshot based guide showcasing how I setup digital signing of emails via Thunderbird.<br />
<br />
<h3>
Identity Credentials</h3>
In my case, I am going to be using an X.509 certificate [2] rather than an PGP public key [3]. I am taking this route for the following reasons:<br />
<ol>
<li>X.509 certificates are required by S/MIME </li>
<li>S/MIME is a protocol for handling digitally signed and encrypted emails that&#39;s widely implemented by all native email clients (desktop and/or mobile devices)</li>
<li>X.509 certificates support URIs in the SubjectAlternativeName (SAN) field which enables the use of HTTP URIs as Personal Identifiers (i.e., WebIDs)</li>
<li>Public Key distribution and management is handled by all native email applications running on desktops and mobile devices.</li>
</ol>
<h3>
Steps</h3>
<div>
<br /></div>
<div>
Initial email notification when I attempt to digitally sign my email with an expired certificate.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhncIsJVg_FD6MlZA2WdkFFGIKbU8anBSNW4JZFYKjYq69GzYPe3-pp0WdEG8tYCFsV8XujdM7R0ucwkEQLup31ljEXkvvY4iH7h4x3UaLQLsuoo5sedvepyX6uQWwjDisRujEHplNjEx2ARAE/s1600/thunderbird-smime-digitally-signed-email-flow-screen-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhncIsJVg_FD6MlZA2WdkFFGIKbU8anBSNW4JZFYKjYq69GzYPe3-pp0WdEG8tYCFsV8XujdM7R0ucwkEQLup31ljEXkvvY4iH7h4x3UaLQLsuoo5sedvepyX6uQWwjDisRujEHplNjEx2ARAE/s400/thunderbird-smime-digitally-signed-email-flow-screen-1.png" width="400" /></a></div>
Use of YouID to generate a new certificate (step 1 of 4).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnUwVaNHBNUcD9jIVvwuYXNi8lctEchvVa0bP-QvdmotwgwlrAZmMWaO328x_n9qRKbAUQ7Ajt9iCEE6nUR6mxnvx2SEoAS86mNB3zEd1-Gy4soHt0HMj3Tk5YAWtfPgk0wG_EtAjDjji3w9Q/s1600/thunderbird-smime-digitally-signed-email-flow-screen-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnUwVaNHBNUcD9jIVvwuYXNi8lctEchvVa0bP-QvdmotwgwlrAZmMWaO328x_n9qRKbAUQ7Ajt9iCEE6nUR6mxnvx2SEoAS86mNB3zEd1-Gy4soHt0HMj3Tk5YAWtfPgk0wG_EtAjDjji3w9Q/s400/thunderbird-smime-digitally-signed-email-flow-screen-2.png" width="400" /></a></div>
<br />
Profile data used to create the certificate that&#39;s generated and then stored to a pkcs#12 file (step 2 of 4).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYla8GTz4VnQajsoqZXoFsQ2wueOgfuT0Ma_74qOM_XB2vaOv7GdcRrhLY6JCP7aCrzUBXkQoFa9sxz-nmJFgPq1ZllflYn_eqdW5gLehTOvZuqqmo_OC3iDWBMalIposedwSEE0cqp_cdIlM/s1600/thunderbird-smime-digitally-signed-email-flow-screen-3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="246" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYla8GTz4VnQajsoqZXoFsQ2wueOgfuT0Ma_74qOM_XB2vaOv7GdcRrhLY6JCP7aCrzUBXkQoFa9sxz-nmJFgPq1ZllflYn_eqdW5gLehTOvZuqqmo_OC3iDWBMalIposedwSEE0cqp_cdIlM/s400/thunderbird-smime-digitally-signed-email-flow-screen-3.png" width="400" /></a></div>
<br />
Publication to LinkedIn of an ni: scheme URI that identifies an SHA1 hash of the generated certificate (step 3 of 4).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQbBQWK709EVhKqWVOftg7qx1KpjWEO0UPdwrRtFvbDAnUNhVRe_UlI0lzVNYbhze_K_uhcp8FenWYz2BV28BOg0QYhUpEQ2rCjnsArDHhFZr64LhjhyZMnBdr2IMEEaKK5JTL4AyiZWfWJmo/s1600/thunderbird-smime-digitally-signed-email-flow-screen-5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQbBQWK709EVhKqWVOftg7qx1KpjWEO0UPdwrRtFvbDAnUNhVRe_UlI0lzVNYbhze_K_uhcp8FenWYz2BV28BOg0QYhUpEQ2rCjnsArDHhFZr64LhjhyZMnBdr2IMEEaKK5JTL4AyiZWfWJmo/s400/thunderbird-smime-digitally-signed-email-flow-screen-5.png" width="400" /></a></div>
<br />
Verifying my identity claims using the WebID-TLS protocol (a proof-of-work is based on looking-up the WebID in the generated certificate&#39;s SAN to see if it resolves to a profile document where a specific statement associates makes the connection between my WebID and the certificate&#39;s Public Key (step 4 of 4).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg39LvL8JHM-uvc4b1awz4vnSfoys1nwOMSJb2Q8-lLPQ44tU-J1NhQNKwQRjUDUPvNkZHv3hHLcEswR_UIyCXmO2d8U6ixeSsgwX5Aw9GWK3e5TYu8xcjpez4mY9ZLPJmVzF3en-Q5z_VYvrs/s1600/thunderbird-smime-digitally-signed-email-flow-screen-6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg39LvL8JHM-uvc4b1awz4vnSfoys1nwOMSJb2Q8-lLPQ44tU-J1NhQNKwQRjUDUPvNkZHv3hHLcEswR_UIyCXmO2d8U6ixeSsgwX5Aw9GWK3e5TYu8xcjpez4mY9ZLPJmVzF3en-Q5z_VYvrs/s400/thunderbird-smime-digitally-signed-email-flow-screen-6.png" width="400" /></a></div>
<br />
Opening up Thunderbird preferences for certificate management via its in-built identity credentials store.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcGoDNECAX_QLYPZKtTzznX_dQQl2MWe_zGYqqncL0WP_2eAoMD8yDEXIQ1ULJR5l0ZzHwlDWyG8fPqBSpoLGLqtZ0ig7xjkcxiV0A2O9Z95IjSf4honRFpkHY3uS4Uas66B-RBrrW7oV0r-0/s1600/thunderbird-smime-digitally-signed-email-flow-screen-7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="181" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcGoDNECAX_QLYPZKtTzznX_dQQl2MWe_zGYqqncL0WP_2eAoMD8yDEXIQ1ULJR5l0ZzHwlDWyG8fPqBSpoLGLqtZ0ig7xjkcxiV0A2O9Z95IjSf4honRFpkHY3uS4Uas66B-RBrrW7oV0r-0/s400/thunderbird-smime-digitally-signed-email-flow-screen-7.png" width="400" /></a></div>
<br />
Importing contents of the pkcs#12 file that was created by the YouID certificate generation process (Step 1 of 4).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLs2FDmC2qnpU8x5HR5a6wHgDAQroRo1tVdBX4wJpPseaOulIBZSzKtEQ_vt1sYjZJqJEjsqs93DsgXA-6HYzkLH7Zz5wHksypFZ80FIrXYC30Y2608KM93_6f9i4BgXQgDT7_voZdHXz_Y-k/s1600/thunderbird-smime-digitally-signed-email-flow-screen-8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="227" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLs2FDmC2qnpU8x5HR5a6wHgDAQroRo1tVdBX4wJpPseaOulIBZSzKtEQ_vt1sYjZJqJEjsqs93DsgXA-6HYzkLH7Zz5wHksypFZ80FIrXYC30Y2608KM93_6f9i4BgXQgDT7_voZdHXz_Y-k/s400/thunderbird-smime-digitally-signed-email-flow-screen-8.png" width="400" /></a></div>
<br />
Authenticated access to pkcs#12 file content (Step 2 of 4).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMWXIKrFJVfytN1aacyoQTrdQqnStiypPbQ0G6eoNRtyaXwqkywDlbuvw5dFSBR9jPbg7exwvBivKR9cVuzi5WwMJKUWLGZLj9YapAXgbFoj0uyDD2dGWpweLvRg219toZeTyT4FAni7EHOCA/s1600/thunderbird-smime-digitally-signed-email-flow-screen-9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="72" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMWXIKrFJVfytN1aacyoQTrdQqnStiypPbQ0G6eoNRtyaXwqkywDlbuvw5dFSBR9jPbg7exwvBivKR9cVuzi5WwMJKUWLGZLj9YapAXgbFoj0uyDD2dGWpweLvRg219toZeTyT4FAni7EHOCA/s400/thunderbird-smime-digitally-signed-email-flow-screen-9.png" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjijZGWn3sF_S1ZYpmhgXzLRRvcWrruabuvpKMA8ng288dA8ZiYseo25CGByIGRM3ACzc30JJ9c3bDhOLLqkLIdbrz6eY8HLwJPFddhQ6v7Lln0EAfUydTEWNpRUvrF0mDTWqewUuz_n3lF-08/s1600/thunderbird-smime-digitally-signed-email-flow-screen-10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjijZGWn3sF_S1ZYpmhgXzLRRvcWrruabuvpKMA8ng288dA8ZiYseo25CGByIGRM3ACzc30JJ9c3bDhOLLqkLIdbrz6eY8HLwJPFddhQ6v7Lln0EAfUydTEWNpRUvrF0mDTWqewUuz_n3lF-08/s400/thunderbird-smime-digitally-signed-email-flow-screen-10.png" width="400" /></a></div>
<br />
Successful import (Step 3 of 4).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCJckEJkSvMEv30dwvsrbSj49Td98o2Ti909bFXO7A17xplSZ25BbXPnTW0jyIHSV1OyKa8PcHUSCivxzwKTLPkMX2_kHiJuuCHhP9YiuU_-7i5hg_yn5DAxcz4T9JaPMOOaek3DfckuC3iNE/s1600/thunderbird-smime-digitally-signed-email-flow-screen-11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCJckEJkSvMEv30dwvsrbSj49Td98o2Ti909bFXO7A17xplSZ25BbXPnTW0jyIHSV1OyKa8PcHUSCivxzwKTLPkMX2_kHiJuuCHhP9YiuU_-7i5hg_yn5DAxcz4T9JaPMOOaek3DfckuC3iNE/s400/thunderbird-smime-digitally-signed-email-flow-screen-11.png" width="400" /></a></div>
<br />
List of all certificates (current and expired) in the identity credentials store (Step 4 of 4).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEid_dKPLQyOTn_D5V7vrIi8RmkebRPdX9KVYL_vkW0SAIASn5qN18x4pXxAwx41kwarko4AYUn1u_vthA696f4HkrlIfCcTnxMea8YgN0aQWx-CJIDV5so83mCmOfXgAzAaOSKH06UAsD1wKcI/s1600/thunderbird-smime-digitally-signed-email-flow-screen-12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEid_dKPLQyOTn_D5V7vrIi8RmkebRPdX9KVYL_vkW0SAIASn5qN18x4pXxAwx41kwarko4AYUn1u_vthA696f4HkrlIfCcTnxMea8YgN0aQWx-CJIDV5so83mCmOfXgAzAaOSKH06UAsD1wKcI/s400/thunderbird-smime-digitally-signed-email-flow-screen-12.png" width="400" /></a></div>
<br />
Using Thunderbird&#39;s security setup, for a given email account, here&#39;s the UI for associating an Email Account with identity credentials for digitally signing and encrypting outbound emails.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7Xdw5nX_d_Xfd6MeSYBqTGJmeqJoKYwsxci5IxWX3h04H7Z1Fe1TO1Jo2ohSyir70j124B8erxaXTLTMNMvMpP6cN0xSsSzZavUeN_oLoHEIq2n7327uSUgO5PatJDZB-bCSy_zTTjjumYb0/s1600/thunderbird-smime-digitally-signed-email-flow-screen-13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7Xdw5nX_d_Xfd6MeSYBqTGJmeqJoKYwsxci5IxWX3h04H7Z1Fe1TO1Jo2ohSyir70j124B8erxaXTLTMNMvMpP6cN0xSsSzZavUeN_oLoHEIq2n7327uSUgO5PatJDZB-bCSy_zTTjjumYb0/s400/thunderbird-smime-digitally-signed-email-flow-screen-13.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<h2 style="clear: both; text-align: left;">
Related Links</h2>
<div class="separator" style="clear: both; text-align: left;">
</div>
<ol>
<li><a href="https://www.facebook.com/notes/protect-the-graph/securing-email-communications-from-facebook/1611941762379302" target="_blank">Facebook PGP Support Announcement</a></li>
<li><a href="http://en.wikipedia.org/wiki/X.509">X.509</a></li>
<li><a href="http://en.wikipedia.org/wiki/Pretty_Good_Privacy" target="_blank">PGP</a> </li>
<li><a href="http://en.wikipedia.org/wiki/S/MIME">S/MIME</a></li>
<li><a href="http://kidehen.blogspot.com/2014/04/importance-of-signing-encrypting-emails.html" target="_blank">Importance of Digitally Signed Emails</a></li>
<li><a href="http://youid.openlinksw.com/" target="_blank">YouID</a> -- Identity Credentials Generator</li>
</ol>
<br />
<div>
<br /></div>
]]></content:encoded>
  <rss:link>http://kidehen.blogspot.com/2015/06/sending-digitally-signed-email-using.html</rss:link>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2015-06-03T20:57:00Z</dc:date>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://kidehen.blogspot.com/2015/03/experiencing-power-of-virtuoso-in-5.html">
  <rss:title>Experiencing the Power of Virtuoso in 5 Steps (Part 1) </rss:title>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Situation Analysis For individuals and organizations alike, computing remains challenged by the pervasiveness of data silos, something I&#39;ve written about in various posts over the years. Common to those posts is my use of Virtuoso (our product) to demonstrate how data de-silo-fication can be achieved in an unobtrusive manner i.e., you don&#39;t have to &quot;rip &amp; replace&quot; existing infrastructure in order to take advantage of what Virtuoso enables. Fundamentals Data de-silo-fication is the fundamental value proposition of Virtuoso. Thus, following installation of Virtuoso (on your desktop or server) you are immediately equipped with a data-junction-box that enables conceptual virtualization of heterogeneous data. Virtuoso&#39;s conceptual harmonization of heterogeneous data is also known as &quot;data virtualization&quot; and for all intents an purposes Virtuoso is a full-blown relational database management system that&#39;s equipped with a built-in data virtualization engine that supports a wide variety of open standards based protocols. Broad open standards support ensures data virtualization doesn&#39;t come at the cost of product lock-in i.e., we only want our customers and prospects to consider Virtuoso because its the &quot;best of class&quot; solution in its problem space, that&#39;s it. Exploiting Virtuoso&#39;s Prowess Simply perform the following steps: download and install software -- for Windows, Mac OS X, or Linux (which includes Amazon EC2 AMIs for instantiation from the Cloud)  start the Virtuoso Server -- Windows Native UI, Mac OS X Native UI, Linux (command-line: virtuoso -c virtuoso.ini -f ) perform basic post-installation configuration - change default passwords for the &#39;dba&#39; and &#39;dav&#39; super-user accounts using the HTML Administrator (Conductor) or SQL Command-line install productivity modules (Extract, Load, and Transform Middleware for RDF based Linked Open Data (a/k/a &quot;Sponger&quot;) and Faceted Browser) -- via their respective Virtuoso Application Distribution archives (VADs)  install the OpenLink Data Explorer (ODE) browser extensions -- which turn Safari, IE, Firefox, Chrome, and Opera browsers into Linked Data aware user agents commence Virtuoso data access, integration, and management exploitation.  Extract, Transform, and Load (ETL) Services Once the Sponger ETL Middleware module has been installed, your Virtuoso instance is equipped with a live service endpoint identified by the URL pattern: http://&lt;your-instance-cname&gt;/sponger. The endpoint above resolves to an HTML page that includes an input field for capturing URLs that identify documents against which you seek to perform ETL operations. Alternatively, you can construct a sponger service URL (by hand) using the pattern: http://&lt;your-instance-cname&gt;/about/html/{document-url}. Simplest of all, you can use the context menu additions created by our ODE browser extension to simply invoke analysis of the page currently in focus (which is displayed in your browser&#39;s address bar). ODE Extension Context Menu (via CTRL+RightMouse+Click)  Entity Description Page Returned by URIBurner ETL Service Irrespective of usage preference, Virtuoso&#39;s built-in spongrer middleware provides ETL services that analyze document content (from a variety of data source types) and then generate descriptions of said documents in 5-Star Linked Open Data form i.e., web-like structured data constructed using RDF language based digital sentences/statements. In addition, RDF documents generated by this transformation service are available in a variety of content formats that include: TURTLE, JSON-LD, HTML5+Microdata, HTML+RDFa, RDF/JSON, RDF/XML, CSV, OData/Atom, OData/JSON.  Live Examples  What follows are live examples based on our URIBurner Service (a public version of the Virtuoso ETL middleware). Every example based on this service provides the same experience that you will have when running your own public or private Virtuoso instance. HTML Page (no HTML5+Microdata or HTML+RDFa included) Transformation Steps: Data Source URLs:  http://share.cisco.com/internet-of-things.html http://www.bidnessetc.com/business/tech-giants-like-google-apple-investing-heavily-in-internet-of-things/ Sponger ETL service URLs:  http://linkeddata.uriburner.com/about/html/http://share.cisco.com/internet-of-things.html -- basic entity description page http://linkeddata.uriburner.com/describe/?uri=http://share.cisco.com/internet-of-things.html -- deeper follow-your-nose page (for deeper exploration and serendipitous discovery of additional relevant information) http://linkeddata.uriburner.com/about/html/http://www.bidnessetc.com/business/tech-giants-like-google-apple-investing-heavily-in-internet-of-things/ -- basic entity description page http://linkeddata.uriburner.com/describe/?uri=http://www.bidnessetc.com/business/tech-giants-like-google-apple-investing-heavily-in-internet-of-things/ -- deeper follow-your-nose page (for deeper exploration and serendipitous discovery of additional relevant information) . Understanding Sponger Generated Entity Description Page Content Basic Entity Description Pages: This type of page is referred to as being &quot;basic&quot; due to the fact that link traversal (i.e., HTTP URI lookups or de-reference) doesn&#39;t include deep expansion of rdf:type attribute/property (relation) values. The annotated diagram below presents an entity description document (generated by the Sponger) using EAV (Entity-Attribute-Value) terminology. The annotated diagram below presents an entity description document (generated by the Sponger) using SPO (Subject, Predicate, Object) terminology.  Deeper Linked Data Follow-Your-Nose Entity Description Pages: This type of page is referred to as being &quot;deeper&quot; due to the fact that link traversal (i.e., HTTP URI lookups or de-reference) does include deep expansion of rdf:type attribute/property (relation) values. The annotated diagram below presents an entity description document (generated by the Sponger) using EAV (Entity-Attribute-Value) terminology. The annotated diagram below presents an entity description document (generated by the Sponger) using SPO (Subject, Predicate, Object) terminology. Related OpenLink Unleashes Update To Semantically-Aware Column-Store For Handling Big Data Challenges OpenLink Unleashes New ODBC, JDBC, ADO.NET, and OLE DB Drivers for the World Wide Web Open Data Access Changed Forever, via Linked Open Data Configuring an ODBC DSN for the World Wide Web RDBMS  URIBurner Service OpenLink Data Explorer Browser Extensions Virtuoso Home Page  Preloaded &amp; Preconfigured Virtuoso Instances from Amazon EC2 Cloud.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2>
Situation Analysis</h2>
For individuals and organizations alike, computing remains challenged by the pervasiveness of data silos, something I&#39;ve written about in various posts over the years. Common to those posts is my use of Virtuoso (our product) to demonstrate how data de-silo-fication can be achieved in an unobtrusive manner i.e., you don&#39;t have to &quot;rip &amp; replace&quot; existing infrastructure in order to take advantage of what Virtuoso enables.<br />
<br />
<h3>
Fundamentals</h3>
Data de-silo-fication is the fundamental value proposition of Virtuoso. Thus, following installation of Virtuoso (on your desktop or server) you are immediately equipped with a data-junction-box that enables conceptual virtualization of heterogeneous data.<br />
<br />
Virtuoso&#39;s conceptual harmonization of heterogeneous data is also known as &quot;data virtualization&quot; and for all intents an purposes Virtuoso is a full-blown relational database management system that&#39;s equipped with a built-in data virtualization engine that supports a wide variety of open standards based protocols.<br />
<br />
Broad open standards support ensures data virtualization doesn&#39;t come at the cost of product lock-in i.e., we only want our customers and prospects to consider Virtuoso because its the &quot;best of class&quot; solution in its problem space, that&#39;s it.<br />
<br />
<h2>
Exploiting Virtuoso&#39;s Prowess</h2>
Simply perform the following steps:<br />
<ol>
<li>download and install software -- for <a href="http://www.openlinksw.com/c/9BH3MMED">Windows,</a> <a href="http://www.openlinksw.com/c/9DZLMLJM">Mac OS X</a>, or <a href="http://www.openlinksw.com/c/9C3LOMLI">Linux</a> (which includes <a href="http://kidehen.blogspot.com/2014/03/preloaded-preconfigured-dbpedia.html">Amazon EC2 AMIs</a> for instantiation from the Cloud) </li>
<li>start the Virtuoso Server -- <a href="http://www.openlinksw.com/describe/?url=%23StartVirtuosoScreenActionItemActivity1&amp;graph=http%3A%2F%2Fvirtuoso.openlinksw.com%2Fdata%2Fturtle%2Fstepbyguides%2FUpgrade72GuideWindows.ttl&amp;distinct=1">Windows Native UI</a>, <a href="http://www.openlinksw.com/describe/?url=%23StartVirtuosoScreenActionItemActivity1&amp;graph=http%3A%2F%2Fvirtuoso.openlinksw.com%2Fdata%2Fturtle%2Fstepbyguides%2FUpgrade72GuideMacOSX.ttl&amp;distinct=1">Mac OS X Native UI</a>, Linux (command-line: virtuoso -c virtuoso.ini -f )</li>
<li>perform basic post-installation configuration - change default passwords for the &#39;dba&#39; and &#39;dav&#39; super-user accounts using the HTML Administrator (Conductor) or SQL Command-line</li>
<li>install productivity modules (<a href="http://opldownload.s3.amazonaws.com/uda/vad-packages/7.2/cartridges_dav.vad">Extract, Load, and Transform Middleware</a> for RDF based Linked Open Data (a/k/a &quot;Sponger&quot;) and <a href="http://opldownload.s3.amazonaws.com/uda/vad-packages/7.2/fct_dav.vad">Faceted Browser</a>) -- via their respective Virtuoso Application Distribution archives (<a href="http://virtuoso.openlinksw.com/download/#Release72VADPackages">VAD</a>s) </li>
<li>install the <a href="http://ode.openlinksw.com/">OpenLink Data Explorer (ODE) browser extensions</a> -- which turn Safari, IE, Firefox, Chrome, and Opera browsers into Linked Data aware user agents</li>
<li>commence Virtuoso data access, integration, and management exploitation. </li>
</ol>
<div>
<h3>
Extract, Transform, and Load (ETL) Services</h3>
<div>
Once the Sponger ETL Middleware module has been installed, your Virtuoso instance is equipped with a live service endpoint identified by the URL pattern: http://&lt;your-instance-cname&gt;/sponger.</div>
<div>
The endpoint above resolves to an HTML page that includes an input field for capturing URLs that identify documents against which you seek to perform ETL operations.<br />
<br />
Alternatively, you can construct a sponger service URL (by hand) using the pattern: http://&lt;your-instance-cname&gt;/about/html/{document-url}.<br />
<br />
Simplest of all, you can use the context menu additions created by our ODE browser extension to simply invoke analysis of the page currently in focus (which is displayed in your browser&#39;s address bar).<br />
<br />
<div style="text-align: center;">
ODE Extension Context Menu (via CTRL+RightMouse+Click) </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3e9mfgSGMZDBx-i70WLGxkxub_psDjbWCzEMgiNCXrfJOO2hjTzUzPmPMe9NLBF1IJPS-nw3xPy4eLweBj25SXPg8X3V4u0N_MLgk6DVNWEsDU_mRo5_bsNViaZ3AEdatKf46nurLLENJPaE/s1600/Screen+Shot+2015-08-04+at+11.37.12+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="393" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3e9mfgSGMZDBx-i70WLGxkxub_psDjbWCzEMgiNCXrfJOO2hjTzUzPmPMe9NLBF1IJPS-nw3xPy4eLweBj25SXPg8X3V4u0N_MLgk6DVNWEsDU_mRo5_bsNViaZ3AEdatKf46nurLLENJPaE/s640/Screen+Shot+2015-08-04+at+11.37.12+AM.png" width="640" /></a></div>
<br />
<span style="text-align: center;"><br /></span>
<br />
<div style="text-align: center;">
Entity Description Page Returned by URIBurner ETL Service</div>
<div style="text-align: center;">
<br /></div>
</div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ8uhexWQgExw44TnSvO_MH97UpbWa5eYO4gAlkyJe8ZMo2pxR-NXFcX82dcj6MrlmzdsKX2w4MFg_-H9u20NhYjt41aSWezvLyFsYY3EgQ4NKmizP2fIpeTOubwobDYmN9GO93SVOys9kN8U/s1600/Screen+Shot+2015-08-04+at+11.40.32+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="534" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ8uhexWQgExw44TnSvO_MH97UpbWa5eYO4gAlkyJe8ZMo2pxR-NXFcX82dcj6MrlmzdsKX2w4MFg_-H9u20NhYjt41aSWezvLyFsYY3EgQ4NKmizP2fIpeTOubwobDYmN9GO93SVOys9kN8U/s640/Screen+Shot+2015-08-04+at+11.40.32+AM.png" width="640" /></a></div>
<br /></div>
<div>
Irrespective of usage preference, Virtuoso&#39;s built-in spongrer middleware provides ETL services that analyze document content (from a variety of data source types) and then generate descriptions of said documents in 5-Star Linked Open Data form i.e., web-like structured data constructed using RDF language based digital sentences/statements. In addition, RDF documents generated by this transformation service are available in a variety of content formats that include: TURTLE, JSON-LD, HTML5+Microdata, HTML+RDFa, RDF/JSON, RDF/XML, CSV, OData/Atom, OData/JSON. </div>
<div>
<br /></div>
<h4>
Live Examples </h4>
<div>
What follows are live examples based on our <a href="http://linkeddata.uriburner.com/sponger">URIBurner Service</a> (a public version of the Virtuoso ETL middleware). Every example based on this service provides the same experience that you will have when running your own public or private Virtuoso instance.</div>
<div>
<br /></div>
<div>
HTML Page (no HTML5+Microdata or HTML+RDFa included) Transformation Steps:</div>
<div>
<br /></div>
<div>
<i>Data Source URLs: </i></div>
<div>
<ol>
<li><a href="http://share.cisco.com/internet-of-things.html">http://share.cisco.com/internet-of-things.html</a></li>
<li><a href="http://www.bidnessetc.com/business/tech-giants-like-google-apple-investing-heavily-in-internet-of-things/">http://www.bidnessetc.com/business/tech-giants-like-google-apple-investing-heavily-in-internet-of-things/</a></li>
</ol>
</div>
<div>
<br /></div>
<div>
<i>Sponger ETL service URLs: </i></div>
<div>
<ol>
<li><a href="http://linkeddata.uriburner.com/about/html/http://share.cisco.com/internet-of-things.html">http://linkeddata.uriburner.com/about/html/http://share.cisco.com/internet-of-things.html</a> -- basic entity description page</li>
<li><a href="http://linkeddata.uriburner.com/describe/?uri=http://share.cisco.com/internet-of-things.html">http://linkeddata.uriburner.com/describe/?uri=http://share.cisco.com/internet-of-things.html</a> -- deeper follow-your-nose page (for deeper exploration and serendipitous discovery of additional relevant information)</li>
<li><a href="http://linkeddata.uriburner.com/about/html/http://www.bidnessetc.com/business/tech-giants-like-google-apple-investing-heavily-in-internet-of-things/">http://linkeddata.uriburner.com/about/html/http://www.bidnessetc.com/business/tech-giants-like-google-apple-investing-heavily-in-internet-of-things/</a> -- basic entity description page</li>
<li><a href="http://linkeddata.uriburner.com/describe/?uri=http://www.bidnessetc.com/business/tech-giants-like-google-apple-investing-heavily-in-internet-of-things/">http://linkeddata.uriburner.com/describe/?uri=http://www.bidnessetc.com/business/tech-giants-like-google-apple-investing-heavily-in-internet-of-things/</a> -- deeper follow-your-nose page (for deeper exploration and serendipitous discovery of additional relevant information) .</li>
</ol>
</div>
</div>
<h3>
Understanding Sponger Generated Entity Description Page Content</h3>
<i>Basic Entity Description Pages:</i><br />
<br />
This type of page is referred to as being &quot;basic&quot; due to the fact that link traversal (i.e., HTTP URI lookups or de-reference) doesn&#39;t include deep expansion of rdf:type attribute/property (relation) values.<br />
<br />
The annotated diagram below presents an entity description document (generated by the Sponger) using EAV (Entity-Attribute-Value) terminology.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg-V8C2551xji_WlrtzrdDrb4-NN2LWfcslG3dYYaUPIfORjvRZmeJ7ipYiscD73dEZ985EMq4IouCMlNWcWcN7dXsA7ZEQcjisIx51FImbiB3znNYoE_X_YWWP4wMbzNKV73_RrtKbQ8md7I/s1600/sponger-about-page-eav-annotation.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="478" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg-V8C2551xji_WlrtzrdDrb4-NN2LWfcslG3dYYaUPIfORjvRZmeJ7ipYiscD73dEZ985EMq4IouCMlNWcWcN7dXsA7ZEQcjisIx51FImbiB3znNYoE_X_YWWP4wMbzNKV73_RrtKbQ8md7I/s1600/sponger-about-page-eav-annotation.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The annotated diagram below presents an entity description document (generated by the Sponger) using SPO (Subject, Predicate, Object) terminology. </div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUT0I7kf7zG33b_M21Aypd28RgDld4Mb-VeQAljoNKRNKNylQj08lqXw0SDJTscORR0k8Tvdzc-acUq3v_xjejbVPH1TuvlJln98zFKnkOpsJHv8jLTlmm8RPqN1aOpAd9fT9B0gvY4W5_nt0/s1600/sponger-about-page-spo-annotation.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="478" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUT0I7kf7zG33b_M21Aypd28RgDld4Mb-VeQAljoNKRNKNylQj08lqXw0SDJTscORR0k8Tvdzc-acUq3v_xjejbVPH1TuvlJln98zFKnkOpsJHv8jLTlmm8RPqN1aOpAd9fT9B0gvY4W5_nt0/s1600/sponger-about-page-spo-annotation.png" width="640" /></a></div>
<br />
<br />
<i>Deeper Linked Data Follow-Your-Nose Entity Description Pages:</i><br />
<i><br /></i> This type of page is referred to as being &quot;deeper&quot; due to the fact that link traversal (i.e., HTTP URI lookups or de-reference) does include deep expansion of rdf:type attribute/property (relation) values.<br />
<br />
The annotated diagram below presents an entity description document (generated by the Sponger) using EAV (Entity-Attribute-Value) terminology.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAM1T3s8xA3G3gT3Q_JiOfnDcz4wbPIK5hkIQTneX0v3Gdvpkn7ybhpt1zRasUc4lLOpofFse9HGk3yrsB8DqUJskiIW9_GQrf0Qeh0coWX22NoM9Tl22T08V8mADO5N5wYzh1ei20e0BwyTI/s1600/sponger-faceted-browsing-page-eav-annotation.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="518" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAM1T3s8xA3G3gT3Q_JiOfnDcz4wbPIK5hkIQTneX0v3Gdvpkn7ybhpt1zRasUc4lLOpofFse9HGk3yrsB8DqUJskiIW9_GQrf0Qeh0coWX22NoM9Tl22T08V8mADO5N5wYzh1ei20e0BwyTI/s1600/sponger-faceted-browsing-page-eav-annotation.png" width="640" /></a></div>
<br />
The annotated diagram below presents an entity description document (generated by the Sponger) using SPO (Subject, Predicate, Object) terminology.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXoqXtoqZzIkEuMtpG1Wh0wly2nI4RWLaJZ4i5w3EXDmpQf4375kHjID_-Np3PivtluTUmitbmUmeTJdVkJ23EmO4ovJA7R_1JAhTqoB_54qEgTvaXhwSr4nmNx4XkInYPhivfOtUTyp7Y_p4/s1600/sponger-faceted-browsing-page-spo-annotation.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="518" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXoqXtoqZzIkEuMtpG1Wh0wly2nI4RWLaJZ4i5w3EXDmpQf4375kHjID_-Np3PivtluTUmitbmUmeTJdVkJ23EmO4ovJA7R_1JAhTqoB_54qEgTvaXhwSr4nmNx4XkInYPhivfOtUTyp7Y_p4/s1600/sponger-faceted-browsing-page-spo-annotation.png" width="640" /></a></div>
<br />
<h2>
Related</h2>
<br />
<ul>
<li><a href="http://virtuoso.openlinksw.com/news/virtuoso-v72-press-release/">OpenLink Unleashes Update To Semantically-Aware Column-Store For Handling Big Data Challenges</a></li>
<li><a href="http://virtuoso.openlinksw.com/news/virtuoso-lod-cloud-access-driver-press-release/">OpenLink Unleashes New ODBC, JDBC, ADO.NET, and OLE DB Drivers for the World Wide Web</a></li>
<li><a href="http://kidehen.blogspot.com/2015/02/open-data-access-changed-forever-via.html">Open Data Access Changed Forever, via Linked Open Data</a></li>
<li><a href="http://kidehen.blogspot.com/2015/03/configuring-odbc-dsn-for-world-wide-web.html">Configuring an ODBC DSN for the World Wide Web RDBMS</a> </li>
<li><a href="http://linkeddata.uriburner.com/">URIBurner Service</a></li>
<li><a href="http://ode.openlinksw.com/">OpenLink Data Explorer Browser Extensions</a></li>
<li><a href="http://virtuoso.openlinksw.com/">Virtuoso Home Page</a> </li>
<li><a href="http://kidehen.blogspot.com/2014/03/preloaded-preconfigured-dbpedia.html">Preloaded &amp; Preconfigured Virtuoso Instances from Amazon EC2 Cloud</a>.</li>
</ul>
<br />
<br />]]></content:encoded>
  <rss:link>http://kidehen.blogspot.com/2015/03/experiencing-power-of-virtuoso-in-5.html</rss:link>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2015-03-21T01:18:00Z</dc:date>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://kidehen.blogspot.com/2015/03/configuring-odbc-dsn-for-world-wide-web.html">
  <rss:title>Configuring an ODBC DSN for the World Wide Web RDBMS</rss:title>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Situation Analysis The world generally perceives the World Wide Web (Web) as a database, of sorts. The &quot;sorts&quot; aspect is the devilish detail that inevitably throws a spanner in the works. Basically, most folks are uncertain as to the  category of database to which the aforementioned Web belongs. The Web is actually a distributed relational database. It isn&#39;t a relational database in which sets of entity relationship types (relations) are grouped in tabular form, as you would find in a typical SQL RDBMS, instead its a relational database where relations take the form of predicates (sentence forming relations) colloquially referred to as graphs. The Web is a collection of hyperlinks that identify different types of things. Conventionally, the following come to mind: Folders (Directories) HTML Documents/Files XML Documents/Files JSON Document/Files CSV Document/Files Image Documents/Files Audio Document/Files And many others.     Unbeknownst to most , the following are also identified by hyperlinks that constitute the Web: People Organizations -- government, companies, clubs etc..  Preferences -- likes, dislikes, favorites, etc. Social Connections -- groups, competitors, friends, enemies etc.  Commercial Connections -- products, offers, prices Places Music Smart Agents (software and machines) Relationship Types (sets or digital sentences grouped by sentence predicates) Relationship Participants -- the subject, predicate, and objects of digital sentences can also be identified by  etc.. Like primary keys in a SQL RDBMS, which consists of sets of entity relationships grouped as tables (relational tables, henceforth), each hyperlink in the Web database identifies something, but unlike a typical relational tables database, these hyperlinks resolve to a description of what they identify -- from any HTTP aware client (or user agent).  What&#39;s outlined above is the fundamental reason why the Web is a major enhancement on RDBMS vendor constrained SQL tables based relational database that most are familiar with.  Going one step further, hyperlinks can also be used to construct sentences, according to specific syntax rules and role semantics -- as exemplified by open standards such as RDF (which is actually a Language for which sentences can be constructed using a variety of notations).  What follows is a simple demonstration of how existing Open Database Connectivity (ODBC) compliant tools, built for SQL RDBMS hosted tabular relations, can immediately take advantage of the Web are just another ODBC Data Source Name (DSN).  ODBC Data Source Setup for World Wide Web RDBMS I am performing this exercise using ODBC from Mac OS X, and I will make a Windows variant of this post that demonstrates the same thing, since ODBC is common to both of these operating systems.  The ODBC Driver in question is the Virtuoso ODBC Driver for Mac OS X (which also exists for Windows). This driver will be used to connect to the public Virtuoso RDBMS instance that serves as a major data-junction-box into the massive Linked Open Data Cloud.  Bloomberg and Google Finance are the target database in the Web database collective that will be used in this particular exercise. The ODBC Data Source Name configuration steps are as follows:  Install the iODBC Runtime and SDK package for Mac OS X Install the Virtuoso ODBC Driver for Mac OS X -- you don&#39;t need to install the server in this scenario Open up the iODBC Administrator on Mac OS X  Configure a Data Source Name (DSN) Make a connection to the configured DSN using an ODBC compliant application -- e.g., the C++ Demo Application that&#39;s bundled with the iODBC Runtime &amp; SDK Execute a SPARQL Query (Web Database Query Language) via the SQL channel provided by ODBC Experience the Web&#39;s added value by clicking on one of the hyperlink based super keys presented in the query result.  ODBC DSN creation sequence screenshots: Existing Data Source Name (DSN) List Database Connection Attributes Configuration (Note: Use of SSL/TLS and Public Key Infrastructure [PKI] based Authentication) Secure PKCS#12 File Selection (Note: this is how the private key used to sign SSL/TLS requests is accessed. This secure file can reside anywhere) Actual Secure PKCS#12 (.p12) File Selection (In this case the .p12 file actually resides in a Dropbox folder) Authentication Challenge for Private Key Access (this is where you are challenged locally [not over the Web] en route to private key access) Initial Database Connection via ODBC  (verifies that a successful ODBC connection over SSL/TLS has been established, using the credentials in the PKCS#12 file) Sample SPARQL Query piped through the SQL channel provided by ODBC out to Google Finance Stock Quote Pages Query Results  (The blue hyperlinks a super keys included in the query results which [unlike SQL primary keys] will resolve to a description of the entities they identify, from any HTTP client (user agent)  What happens when you click on a hyperlink from the ODBC query result presented by C++ Demo re. Google Finance Stock Quotes What&#39;s Happening Here?  The Virtuoso ODBC Driver is communicating with a Virtuoso instance that has built-in ability to represent data as sets of relations that have predicates represented as Tables and/or RDF statements graphs. Net effect, it is able to present the same data (relations) in either relational form. How Do I Use This Functionality Today?  Virtuoso instance-wise, you have the following options: Data as a Service (DaaS) -- where you simply obtain a Linked Open Data (LOD) Connectivity License (15 Day $0.00 [Free] Evaluation or 30 Day $19.99) from our License Offers Page -- this is a secure pkcs#12 file that includes an X.509 certificate [holding your identity credentials] and a private key Instantiate your own Virtuoso Instance via the Amazon EC2 Cloud using an Elastic Block Storage (EBS) backed Virtual Machine Image (AMI) -- where you simply use the Bring Your Own License (BYOL) option (meaning: you acquire a normal Virtuoso license file which is then used with this instance) Instantiate your own Virtuoso instance via Amazon EC2 Cloud using an Instance backed AMI -- in this case, you already have a Virtuoso License in place (which you can upgrade, if need be) following AMI instantiation Download and install your own Virtuoso instance from the Virtuoso Download page -- this is a conventional installation hosted in your own network.  If you opt to use your own Virtuoso instance, following instance installation, you will need to configure API access for the built-in middleware layer drivers for some data sources on the World Wide Web  e.g., LinkedIn, Crunchbase, Facebook, Google+, etc.. Thus, for those usecases, simply follow instructions provided as part of the description of the relevant cartridge (or driver). Examples include: Facebook Cartridge Google+ Cartridge  Twitter Cartridge LinkedIn Cartridge Crunchbase Cartridge Cartridge Catalog -- provides information about all the cartridges.  In regards to data sources like Google Finance, Bloomberg etc., you don&#39;t need to configure API access because these data sources publish Linked Open Data using HTML5+Microdata that has been embedded in all of their HTML based documents.  Generally, any site that publishes HTML documents that include structured data islands, based on terms from Schema.org (or any other vocabulary), is simply ready to be used in the manner described by this post.  Conclusion This simple exercise demonstrates how anyone can harness the power of the Web as just another SQL or SPARQL accessible distributed RDBMS, using existing ODBC (or even JDBC, ADO.NET etc..) compliant applications.  In addition, you can mesh (naturally join) data across the Web and conventional SQL RDBMS hosted data sources such as: Oracle, Microsoft SQL Server, IBM DB2, IBM Informix, SAP Sybase, Actian Ingres, MySQL, PostgreSQL, Firebird, etc..  Live Demo Links (viewable via HTTP Browser) http://bit.ly/odbc-spasql-cached-bloomberg-stock-quotes -- Cached results from our URIBurner SPARQL Query Service Endpoint querying Bloomberg http://bit.ly/odbc-spasql-live-bloomberg-stock-quotes -- Live Results from our URIBurner SPARQL Query Service Endpoint querying Bloomberg (hence, authentication challenge) http://bit.ly/odbc-spasql-live-bloomberg-stock-quotes-query-definition -- Live Query Definition (so in addition to being able to query data from wherever, actually query definition are also shareable) querying Bloomberg http://bit.ly/sparql-query-result-google-finance-no-sponging-2 -- Cached results from our URIBurner SPARQL Query Service Endpoint querying Google Finance http://bit.ly/sparql-query-results-google-finance-2 -- Live Results from our URIBurner SPARQL Query Service Endpoint querying Google Finance (hence, authentication challenge) http://bit.ly/sparql-query-definition-google-finance-stocks-2 -- Live Query Definition (so in addition to being able to query data from wherever, actually query definition are also shareable) querying Google Finance.  Related Links http://kidehen.blogspot.com/2015/02/open-data-access-changed-forever-via.html -- Open Data Access Changed Forever, via Linked Open Data  http://kidehen.blogspot.com/2015/01/from-open-database-connectivity-to.html -- From Open Database Connectivity to Open Data Connectivity  http://kidehen.blogspot.com/2014/12/deceptively-simple-conceptual-data.html -- Deceptively Simple Conceptual Data Virtualization http://linkeddata.uriburner.com -- About URIBurner (Linked Open Data Transformation Service in the Cloud) http://virtuoso.openlinksw.com/screencasts/virtuoso-rdf-middleware3.swf -- How URIBurner Transforms Web Documents into RDF based Linked Open Data http://www.openlinksw.com/c/9G7Y7FR -- Description of the Various Cartridges/Drivers that enabled Web Resource transformations to RDF based Linked Open Data that are SQL and SPARQL accessible. </dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2>
Situation Analysis</h2>
<br />
The world generally perceives the World Wide Web (Web) as a database, of sorts. The &quot;sorts&quot; aspect is the devilish detail that inevitably throws a spanner in the works. Basically, most folks are uncertain as to the  category of database to which the aforementioned Web belongs.<br />
<br />
The Web is actually a distributed relational database. It isn&#39;t a relational database in which sets of entity relationship types (relations) are grouped in tabular form, as you would find in a typical SQL RDBMS, instead its a relational database where relations take the form of predicates (sentence forming relations) colloquially referred to as graphs.<br />
<br />
The Web is a collection of hyperlinks that identify different types of things. Conventionally, the following come to mind:<br />
<ul>
<li>Folders (Directories)</li>
<li>HTML Documents/Files</li>
<li>XML Documents/Files</li>
<li>JSON Document/Files</li>
<li>CSV Document/Files</li>
<li>Image Documents/Files</li>
<li>Audio Document/Files</li>
<li>And many others.    </li>
</ul>
<div>
Unbeknownst to most , the following are also identified by hyperlinks that constitute the Web:</div>
<div>
<ul>
<li>People</li>
<li>Organizations -- government, companies, clubs etc.. </li>
<li>Preferences -- likes, dislikes, favorites, etc.</li>
<li>Social Connections -- groups, competitors, friends, enemies etc. </li>
<li>Commercial Connections -- products, offers, prices</li>
<li>Places</li>
<li>Music</li>
<li>Smart Agents (software and machines)</li>
<li>Relationship Types (sets or digital sentences grouped by sentence predicates)</li>
<li>Relationship Participants -- the subject, predicate, and objects of digital sentences can also be identified by </li>
<li>etc..</li>
</ul>
<div>
Like primary keys in a SQL RDBMS, which consists of sets of entity relationships grouped as tables (relational tables, henceforth), each hyperlink in the Web database identifies something, but unlike a typical relational tables database, these hyperlinks resolve to a description of what they identify -- from any HTTP aware client (or user agent). </div>
</div>
<div>
<br /></div>
<div>
What&#39;s outlined above is the fundamental reason why the Web is a major enhancement on RDBMS vendor constrained SQL tables based relational database that most are familiar with. </div>
<div>
<br /></div>
<div>
Going one step further, hyperlinks can also be used to construct sentences, according to specific syntax rules and role semantics -- as exemplified by open standards such as RDF (which is actually a Language for which sentences can be constructed using a variety of notations). </div>
<div>
<br /></div>
<div>
What follows is a simple demonstration of how existing Open Database Connectivity (ODBC) compliant tools, built for SQL RDBMS hosted tabular relations, can immediately take advantage of the Web are just another ODBC Data Source Name (DSN). </div>
<div>
<br /></div>
<div>
<h2>
ODBC Data Source Setup for World Wide Web RDBMS</h2>
</div>
<div>
<br /></div>
<div>
I am performing this exercise using ODBC from Mac OS X, and I will make a Windows variant of this post that demonstrates the same thing, since ODBC is common to both of these operating systems. </div>
<div>
<br /></div>
<div>
The ODBC Driver in question is the Virtuoso ODBC Driver for Mac OS X (which also exists for Windows). This driver will be used to connect to the public Virtuoso RDBMS instance that serves as a major data-junction-box into the massive Linked Open Data Cloud. </div>
<div>
<br /></div>
<div>
Bloomberg and Google Finance are the target database in the Web database collective that will be used in this particular exercise.</div>
<div>
<br /></div>
<div>
The ODBC Data Source Name configuration steps are as follows: </div>
<div>
<ol>
<li>Install the iODBC Runtime and SDK package for Mac OS X</li>
<li>Install the Virtuoso ODBC Driver for Mac OS X -- you don&#39;t need to install the server in this scenario</li>
<li>Open up the iODBC Administrator on Mac OS X </li>
<li>Configure a Data Source Name (DSN)</li>
<li>Make a connection to the configured DSN using an ODBC compliant application -- e.g., the C++ Demo Application that&#39;s bundled with the iODBC Runtime &amp; SDK</li>
<li>Execute a SPARQL Query (Web Database Query Language) via the SQL channel provided by ODBC</li>
<li>Experience the Web&#39;s added value by clicking on one of the hyperlink based super keys presented in the query result. </li>
</ol>
<div>
<h3>
</h3>
<h3>
ODBC DSN creation sequence screenshots:</h3>
</div>
</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
Existing Data Source Name (DSN) List</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLYeQdqsopbd_gxPd6V3GT99pqRy372SylRazLR5PmeWSuxBoTjZ2oUW37iIZ5eZagZaC1p0OnelEj6HZ_i4i6UHOwvfiuhuYTGh6uaxkLkc3MWmWcJB8ivj0pYztKExWM8Xxn9a5e5HxQcR0/s1600/macosx-iodbc-admin-dsn-selection-screen-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="464" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLYeQdqsopbd_gxPd6V3GT99pqRy372SylRazLR5PmeWSuxBoTjZ2oUW37iIZ5eZagZaC1p0OnelEj6HZ_i4i6UHOwvfiuhuYTGh6uaxkLkc3MWmWcJB8ivj0pYztKExWM8Xxn9a5e5HxQcR0/s1600/macosx-iodbc-admin-dsn-selection-screen-1.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Database Connection Attributes Configuration</div>
<div class="separator" style="clear: both; text-align: center;">
(Note: Use of SSL/TLS and Public Key Infrastructure [PKI] based Authentication)</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgePTPKOf0yLAU1I_7Uq_r0kY9FyfeD5r4saza4krLFYwS9apm4JBDmHXQdgHqcUgLIhLE3tD0wAwFc0fhQ2a0aprumzA-qniSkmMZuz61pK8-jgPlcNJ_PDecdM8mmL927zUMr2Zxx4YE1lug/s1600/macosx-iodbc-admin-dsn-selection-screen-3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgePTPKOf0yLAU1I_7Uq_r0kY9FyfeD5r4saza4krLFYwS9apm4JBDmHXQdgHqcUgLIhLE3tD0wAwFc0fhQ2a0aprumzA-qniSkmMZuz61pK8-jgPlcNJ_PDecdM8mmL927zUMr2Zxx4YE1lug/s1600/macosx-iodbc-admin-dsn-selection-screen-3.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Secure PKCS#12 File Selection</div>
<div class="separator" style="clear: both; text-align: center;">
(Note: this is how the private key used to sign SSL/TLS requests is accessed. This secure file can reside anywhere)</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQNfghb0WGZeAgX1bOztBURwDEkeqghg_7iLbgAQY8wDstechqGdgRY6_fd8QNuVmJzede-kmatiIsocmiH8CCBwPIvLTbDpj-8eTzoOZy3uo1yS67vAH1buUl1btE8LUPwgRT5GNt70BxsM0/s1600/macosx-iodbc-admin-dsn-selection-screen-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="402" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQNfghb0WGZeAgX1bOztBURwDEkeqghg_7iLbgAQY8wDstechqGdgRY6_fd8QNuVmJzede-kmatiIsocmiH8CCBwPIvLTbDpj-8eTzoOZy3uo1yS67vAH1buUl1btE8LUPwgRT5GNt70BxsM0/s1600/macosx-iodbc-admin-dsn-selection-screen-2.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Actual Secure PKCS#12 (.p12) File Selection</div>
<div class="separator" style="clear: both; text-align: center;">
(In this case the .p12 file actually resides in a Dropbox folder)</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhN8Vk-hE8JQWodRx700alKmwSyAGhrf1WHX_nBvCKh71CihyZT7wTPdJWMEiFTAdQof3stATw07niMHMI48sXBROIpiC4eAoSu8cS84NP5SFbqZ5Mny4Iz5Qtx2hYNdMYWQJeGoYK7LGVrzYk/s1600/macosx-iodbc-admin-dsn-selection-screen-5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="404" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhN8Vk-hE8JQWodRx700alKmwSyAGhrf1WHX_nBvCKh71CihyZT7wTPdJWMEiFTAdQof3stATw07niMHMI48sXBROIpiC4eAoSu8cS84NP5SFbqZ5Mny4Iz5Qtx2hYNdMYWQJeGoYK7LGVrzYk/s1600/macosx-iodbc-admin-dsn-selection-screen-5.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Authentication Challenge for Private Key Access</div>
<div class="separator" style="clear: both; text-align: center;">
(this is where you are challenged locally [not over the Web] en route to private key access)</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbkKt210nCczHEYdafTVlLR93KVXpIMtkKir1MyEfLG5xyaHBrSjxXG3853HNgzloHD_J5u4v-UtD6ua2anqaKXpkmYISjWarnIvF-67Dz8e8XsCfntFG_ups8a8strp8HvtDFqkmJZn-CN_4/s1600/macosx-iodbc-admin-dsn-selection-screen-4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="410" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbkKt210nCczHEYdafTVlLR93KVXpIMtkKir1MyEfLG5xyaHBrSjxXG3853HNgzloHD_J5u4v-UtD6ua2anqaKXpkmYISjWarnIvF-67Dz8e8XsCfntFG_ups8a8strp8HvtDFqkmJZn-CN_4/s1600/macosx-iodbc-admin-dsn-selection-screen-4.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Initial Database Connection via ODBC </div>
<div class="separator" style="clear: both; text-align: center;">
(verifies that a successful ODBC connection over SSL/TLS has been established, using the credentials in the PKCS#12 file)</div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMMf0A3fycocA04s_BfMmjn0lhJBlxu0Y1AULZc3v-xZr5ls6YgNEUS3Zlsh_9OsbaepwuY8iV2j15KTCKfr_iLA4VdnNGK9fSy148g8X1S1Yb5d2FR6j80osJOLLHkF5nPv3i6ZoDbxHQJDs/s1600/macosx-iodbc-admin-dsn-selection-screen-6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="408" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMMf0A3fycocA04s_BfMmjn0lhJBlxu0Y1AULZc3v-xZr5ls6YgNEUS3Zlsh_9OsbaepwuY8iV2j15KTCKfr_iLA4VdnNGK9fSy148g8X1S1Yb5d2FR6j80osJOLLHkF5nPv3i6ZoDbxHQJDs/s1600/macosx-iodbc-admin-dsn-selection-screen-6.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Sample SPARQL Query piped through the SQL channel provided by ODBC out to Google Finance Stock Quote Pages</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivXheDL4OIKh53_qu0dO1iiQa3FHNB7lDndqV_RGZd9gKeZ9V49UJSAx5gHlK61Us-YTmsCLm4Ueyked8jO09dlpvRv-UCa7nTUyfKGcOcKmySEi2YS2J-Fi8r9Ex1UA8h1BPnQ3ASBndBTpI/s1600/cpp-demo-google-finance-sparql-query-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="434" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivXheDL4OIKh53_qu0dO1iiQa3FHNB7lDndqV_RGZd9gKeZ9V49UJSAx5gHlK61Us-YTmsCLm4Ueyked8jO09dlpvRv-UCa7nTUyfKGcOcKmySEi2YS2J-Fi8r9Ex1UA8h1BPnQ3ASBndBTpI/s1600/cpp-demo-google-finance-sparql-query-1.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Query Results </div>
<div class="separator" style="clear: both; text-align: center;">
(The blue hyperlinks a super keys included in the query results which [unlike SQL primary keys] will resolve to a description of the entities they identify, from any HTTP client (user agent) </div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZO486vHD1-3fn5VuKIigkbWomxGARZzSHF5-x_cqHcZB-w2zfY1XccKb1vihbiFFwXIorMpoDwLBL8Y2LmCjSuvEtl1aDuuEhQ8NWGbm46uqt-aKwv47xChjaOJbNyIFgJwBcDGs8EofT8xM/s1600/cpp-demo-google-finance-sparql-query-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="198" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZO486vHD1-3fn5VuKIigkbWomxGARZzSHF5-x_cqHcZB-w2zfY1XccKb1vihbiFFwXIorMpoDwLBL8Y2LmCjSuvEtl1aDuuEhQ8NWGbm46uqt-aKwv47xChjaOJbNyIFgJwBcDGs8EofT8xM/s1600/cpp-demo-google-finance-sparql-query-2.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
What happens when you click on a hyperlink from the ODBC query result presented by C++ Demo</div>
<div class="separator" style="clear: both; text-align: center;">
re. Google Finance Stock Quotes</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO7ZjQssGO5uWuCojnJMv69dGRhLuBdseUVIdWwHFelr351JNj0q2cR0RIc2IPpl6wQmUjGCfI3ZS6MRdOG-iNpcRKE83-1pc-MQNfo2s6PhygSVG2Wyvr7hvg6GmgDO7HI7Jq-KUF_KYTPWI/s1600/cpp-demo-google-finance-sparql-query-4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="326" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO7ZjQssGO5uWuCojnJMv69dGRhLuBdseUVIdWwHFelr351JNj0q2cR0RIc2IPpl6wQmUjGCfI3ZS6MRdOG-iNpcRKE83-1pc-MQNfo2s6PhygSVG2Wyvr7hvg6GmgDO7HI7Jq-KUF_KYTPWI/s1600/cpp-demo-google-finance-sparql-query-4.png" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div>
<h3>
What&#39;s Happening Here? </h3>
The Virtuoso ODBC Driver is communicating with a Virtuoso instance that has built-in ability to represent data as sets of relations that have predicates represented as Tables and/or RDF statements graphs. Net effect, it is able to present the same data (relations) in either relational form.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://s-media-cache-ak0.pinimg.com/originals/ac/f3/0f/acf30f15248f0044396fdc00a4c91c02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="504" src="https://s-media-cache-ak0.pinimg.com/originals/ac/f3/0f/acf30f15248f0044396fdc00a4c91c02.jpg" width="640" /></a></div>
<br />
<br />
<h2>
How Do I Use This Functionality Today? </h2>
<div>
Virtuoso instance-wise, you have the following options:</div>
<div>
<ol>
<li>Data as a Service (DaaS) -- where you simply obtain a Linked Open Data (LOD) Connectivity License (<a href="http://virtuoso.openlinksw.com/offers/order?uri=http%3A%2F%2Fdata.openlinksw.com%2Foplweb%2Foffer%2FOffer-2015-05-WWW-eval-personal-client-access-basic-sql%23this&amp;type=buy&amp;mode=v">15 Day $0.00 [Free] Evaluation</a> or <a href="http://virtuoso.openlinksw.com/offers/order?uri=http%3A%2F%2Fdata.openlinksw.com%2Foplweb%2Foffer%2FOffer-2015-05-LOD-personal-client-access-basic-sql%23this&amp;type=buy&amp;mode=v">30 Day $19.99</a>) from our License Offers Page -- this is a secure pkcs#12 file that includes an X.509 certificate [holding your identity credentials] and a private key</li>
<li>Instantiate your own Virtuoso Instance via the Amazon EC2 Cloud using an Elastic Block Storage (EBS) backed Virtual Machine Image (AMI) -- where you simply use the Bring Your Own License (BYOL) option (meaning: you acquire a normal Virtuoso license file which is then used with this instance)</li>
<li>Instantiate your own Virtuoso instance via Amazon EC2 Cloud using an Instance backed AMI -- in this case, you already have a Virtuoso License in place (which you can upgrade, if need be) following AMI instantiation</li>
<li>Download and install your own Virtuoso instance from the Virtuoso Download page -- this is a conventional installation hosted in your own network. </li>
</ol>
<div>
If you opt to use your own Virtuoso instance, following instance installation, you will need to configure API access for the built-in middleware layer drivers for some data sources on the World Wide Web  e.g., LinkedIn, Crunchbase, Facebook, Google+, etc.. Thus, for those usecases, simply follow instructions provided as part of the description of the relevant cartridge (or driver). Examples include:</div>
</div>
<div>
<ul>
<li><a href="http://www.openlinksw.com/c/92K652V">Facebook Cartridge</a></li>
<li><a href="http://www.openlinksw.com/c/9DD765EY">Google+ Cartridge </a></li>
<li><a href="http://www.openlinksw.com/c/9WOO5AS">Twitter Cartridge</a></li>
<li><a href="http://data.openlinksw.com/oplweb/component/xc_linkedin#this">LinkedIn Cartridge</a></li>
<li><a href="http://www.openlinksw.com/c/9XV65AW">Crunchbase Cartridge</a></li>
<li><a href="http://www.openlinksw.com/data/turtle/cartridge_descriptions/Cartridges_catalog.ttl">Cartridge Catalog</a> -- provides information about all the cartridges. </li>
</ul>
<div>
In regards to data sources like Google Finance, Bloomberg etc., you don&#39;t need to configure API access because these data sources publish Linked Open Data using HTML5+Microdata that has been embedded in all of their HTML based documents. </div>
<div>
<br /></div>
<div>
Generally, any site that publishes HTML documents that include structured data islands, based on terms from Schema.org (or any other vocabulary), is simply ready to be used in the manner described by this post. </div>
</div>
<h2>
Conclusion</h2>
This simple exercise demonstrates how anyone can harness the power of the Web as just another SQL or SPARQL accessible distributed RDBMS, using existing ODBC (or even JDBC, ADO.NET etc..) compliant applications.  In addition, you can mesh (naturally join) data across the Web and conventional SQL RDBMS hosted data sources such as: Oracle, Microsoft SQL Server, IBM DB2, IBM Informix, SAP Sybase, Actian Ingres, MySQL, PostgreSQL, Firebird, etc.. </div>
<div>
<br />
<h2>
Live Demo Links (viewable via HTTP Browser)</h2>
<div>
<ul class="ul1">
<li class="li2"><span class="s2"><a href="http://bit.ly/odbc-spasql-cached-bloomberg-stock-quotes" target="_blank">http://bit.ly/odbc-spasql-cached-bloomberg-stock-quotes</a> -- Cached r</span>esults from our URIBurner SPARQL Query Service Endpoint querying Bloomberg</li>
<li class="li2"><span class="s2"><span class="s1"><a href="http://bit.ly/odbc-spasql-live-bloomberg-stock-quotes" target="_blank">http://bit.ly/odbc-spasql-live-bloomberg-stock-quotes</a></span></span><span class="s1"> -- Live Results from our URIBurner SPARQL Query Service Endpoint querying Bloomberg (hence, authentication challenge)</span></li>
<li class="li2"><span class="s3"><a href="http://bit.ly/odbc-spasql-live-bloomberg-stock-quotes-query-definition" target="_blank"><span class="s1">http://bit.ly/odbc-spasql-live-bloomberg-stock-quotes-query-definition</span></a></span><span class="s1"> -- Live Query Definition (so in addition to being able to query data from wherever, actually query definition are also shareable) querying Bloomberg</span></li>
<li class="li2"><span class="s2"><a href="http://bit.ly/sparql-query-result-google-finance-no-sponging">http://bit.ly/sparql-query-result-google-finance-no-sponging-2</a> -- Cached r</span>esults from our URIBurner SPARQL Query Service Endpoint querying Google Finance</li>
<li class="li2"><span class="s2"><span class="s1"><a href="http://bit.ly/sparql-query-results-google-finance-2">http://bit.ly/sparql-query-results-google-finance-2</a></span></span><span class="s1"> -- Live Results from our URIBurner SPARQL Query Service Endpoint querying Google Finance (hence, authentication challenge)</span></li>
<li class="li2"><span class="s3"><a href="http://bit.ly/sparql-query-definition-google-finance-stocks-2"><span class="s1">http://bit.ly/sparql-query-definition-google-finance-stocks-2</span></a></span><span class="s1"> -- Live Query Definition (so in addition to being able to query data from wherever, actually query definition are also shareable) querying Google Finance. </span></li>
</ul>
</div>
<h2>
Related Links</h2>
<ul>
<li><a href="http://kidehen.blogspot.com/2015/02/open-data-access-changed-forever-via.html">http://kidehen.blogspot.com/2015/02/open-data-access-changed-forever-via.html</a> -- Open Data Access Changed Forever, via Linked Open Data </li>
<li><a href="http://kidehen.blogspot.com/2015/01/from-open-database-connectivity-to.html">http://kidehen.blogspot.com/2015/01/from-open-database-connectivity-to.html</a> -- From Open Database Connectivity to Open Data Connectivity </li>
<li><a href="http://kidehen.blogspot.com/2014/12/deceptively-simple-conceptual-data.html">http://kidehen.blogspot.com/2014/12/deceptively-simple-conceptual-data.html</a> -- Deceptively Simple Conceptual Data Virtualization</li>
<li><a href="http://linkeddata.uriburner.com/">http://linkeddata.uriburner.com</a> -- About URIBurner (Linked Open Data Transformation Service in the Cloud)</li>
<li><a href="http://virtuoso.openlinksw.com/screencasts/virtuoso-rdf-middleware3.swf">http://virtuoso.openlinksw.com/screencasts/virtuoso-rdf-middleware3.swf</a> -- How URIBurner Transforms Web Documents into RDF based Linked Open Data</li>
<li><a href="http://www.openlinksw.com/c/9G7Y7FR">http://www.openlinksw.com/c/9G7Y7FR</a> -- Description of the Various Cartridges/Drivers that enabled Web Resource transformations to RDF based Linked Open Data that are SQL and SPARQL accessible. </li>
</ul>
</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
]]></content:encoded>
  <rss:link>http://kidehen.blogspot.com/2015/03/configuring-odbc-dsn-for-world-wide-web.html</rss:link>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2015-03-03T02:51:00Z</dc:date>
 </rss:item>
</rdf:RDF>