Author: buildbot
Date: Thu Jul 31 11:52:36 2014
New Revision: 918036
Log:
Staging update by buildbot for jena
Modified:
websites/staging/jena/trunk/content/ (props changed)
websites/staging/jena/trunk/content/documentation/csv/index.html
Propchange: websites/staging/jena/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Thu Jul 31 11:52:36 2014
@@ -1 +1 @@
-1614863
+1614865
Modified: websites/staging/jena/trunk/content/documentation/csv/index.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/csv/index.html (original)
+++ websites/staging/jena/trunk/content/documentation/csv/index.html Thu Jul 31
11:52:36 2014
@@ -145,7 +145,56 @@
<div class="col-md-12">
<div id="breadcrumbs"></div>
<h1 class="title">CSV PropertyTable
</h1>
-
+ <p>This module is about getting CSVs into a form that is amenable to Jena
SPARQL processing, and doing so in a way that is not specific to CSV files.
+It includes getting the right architecture in place for regular table shaped
data, using the core abstraction of PropertyTable.</p>
+<p><em>Illustration</em></p>
+<p>This module involves the basic mapping of CSV to RDF using a fixed
algorithm, including interpreting data as numbers or strings.</p>
+<p>Suppose we have a CSV file located in âfile:///c:/town.csvâ, which has
one header row, two data rows:</p>
+<div class="codehilite"><pre><span class="n">Town</span><span
class="p">,</span><span class="n">Population</span>
+<span class="n">Southton</span><span class="p">,</span>123000
+<span class="n">Northville</span><span class="p">,</span>654000
+</pre></div>
+
+
+<p>As RDF this might be viewable as:</p>
+<div class="codehilite"><pre><span class="p">@</span><span
class="n">prefix</span> <span class="p">:</span> <span
class="o"><</span><span class="n">file</span><span class="p">:</span><span
class="o">///</span><span class="n">c</span><span class="p">:</span><span
class="o">/</span><span class="n">town</span><span class="p">.</span><span
class="n">csv</span>#<span class="o">></span> <span class="p">.</span>
+<span class="p">@</span><span class="n">prefix</span> <span
class="n">csv</span><span class="p">:</span> <span class="o"><</span><span
class="n">http</span><span class="p">:</span><span class="o">//</span><span
class="n">w3c</span><span class="o">/</span><span class="n">future</span><span
class="o">-</span><span class="n">csv</span><span class="o">-</span><span
class="n">vocab</span><span class="o">/></span> <span class="p">.</span>
+<span class="p">[</span> <span class="n">csv</span><span
class="p">:</span><span class="n">row</span> 1 <span class="p">;</span> <span
class="p">:</span><span class="n">Town</span> "<span
class="n">Southton</span>" <span class="p">;</span> <span
class="p">:</span><span class="n">Population</span> â123000â^^<span
class="n">http</span><span class="p">:</span><span class="o">//</span><span
class="n">www</span><span class="p">.</span><span class="n">w3</span><span
class="p">.</span><span class="n">org</span><span class="o">/</span>2001<span
class="o">/</span><span class="n">XMLSchema</span>#<span class="n">int</span>
<span class="p">]</span> <span class="p">.</span>
+<span class="p">[</span> <span class="n">csv</span><span
class="p">:</span><span class="n">row</span> 2 <span class="p">;</span> <span
class="p">:</span><span class="n">Town</span> "<span
class="n">Northville</span>" <span class="p">;</span> <span
class="p">:</span><span class="n">Population</span> â654000â^^<span
class="n">http</span><span class="p">:</span><span class="o">//</span><span
class="n">www</span><span class="p">.</span><span class="n">w3</span><span
class="p">.</span><span class="n">org</span><span class="o">/</span>2001<span
class="o">/</span><span class="n">XMLSchema</span>#<span class="n">int</span>
<span class="p">]</span> <span class="p">.</span>
+</pre></div>
+
+
+<p>or without the bnode abbreviation:</p>
+<div class="codehilite"><pre><span class="p">@</span><span
class="n">prefix</span> <span class="p">:</span> <span
class="o"><</span><span class="n">file</span><span class="p">:</span><span
class="o">///</span><span class="n">c</span><span class="p">:</span><span
class="o">/</span><span class="n">town</span><span class="p">.</span><span
class="n">csv</span>#<span class="o">></span> <span class="p">.</span>
+<span class="p">@</span><span class="n">prefix</span> <span
class="n">csv</span><span class="p">:</span> <span class="o"><</span><span
class="n">http</span><span class="p">:</span><span class="o">//</span><span
class="n">w3c</span><span class="o">/</span><span class="n">future</span><span
class="o">-</span><span class="n">csv</span><span class="o">-</span><span
class="n">vocab</span><span class="o">/></span> <span class="p">.</span>
+<span class="n">_</span><span class="p">:</span><span class="n">b0</span>
<span class="n">csv</span><span class="p">:</span><span class="n">row</span> 1
<span class="p">;</span>
+ <span class="p">:</span><span class="n">Town</span> "<span
class="n">Southton</span>" <span class="p">;</span>
+ <span class="p">:</span><span class="n">Population</span>
â123000â^^<span class="n">http</span><span class="p">:</span><span
class="o">//</span><span class="n">www</span><span class="p">.</span><span
class="n">w3</span><span class="p">.</span><span class="n">org</span><span
class="o">/</span>2001<span class="o">/</span><span
class="n">XMLSchema</span>#<span class="n">int</span> <span class="p">.</span>
+<span class="n">_</span><span class="p">:</span><span class="n">b1</span>
<span class="n">csv</span><span class="p">:</span><span class="n">row</span> 2
<span class="p">;</span>
+ <span class="p">:</span><span class="n">Town</span> "<span
class="n">Northville</span>" <span class="p">;</span>
+ <span class="p">:</span><span class="n">Population</span>
â654000â^^<span class="n">http</span><span class="p">:</span><span
class="o">//</span><span class="n">www</span><span class="p">.</span><span
class="n">w3</span><span class="p">.</span><span class="n">org</span><span
class="o">/</span>2001<span class="o">/</span><span
class="n">XMLSchema</span>#<span class="n">int</span><span class="p">.</span>
+</pre></div>
+
+
+<p>Each row is modeling one "entity" (here, a population observation).
+There is a subject (a blank node) and one predicate-value for each cell of the
row.
+Row numbers are added because it can be important.
+Now the CSV file is viewed as a graph - normal, unmodified SPARQL can be used.
+Multiple CSVs files can be multiple graphs in one dataset to give query across
different data sources.</p>
+<p>We can use the following SPARQL query for âTowns over 500,000 peopleâ
mentioned in the CSV file:</p>
+<div class="codehilite"><pre><span class="n">SELECT</span> ?<span
class="n">townName</span> ?<span class="n">pop</span> <span class="p">{</span>
+ <span class="n">GRAPH</span> <span class="o"><</span><span
class="n">file</span><span class="p">:</span><span class="o">///</span><span
class="n">c</span><span class="p">:</span><span class="o">/</span><span
class="n">town</span><span class="p">.</span><span class="n">csv</span><span
class="o">></span> <span class="p">{</span>
+ ?<span class="n">x</span> <span class="p">:</span><span
class="n">Town</span> ?<span class="n">townName</span> <span class="p">;</span>
+ <span class="p">:</span><span class="n">Popuation</span> ?<span
class="n">pop</span> <span class="p">.</span>
+ <span class="n">FILTER</span><span class="p">(</span>?<span
class="n">pop</span> <span class="o">></span> 500000<span class="p">)</span>
+ <span class="p">}</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<h2 id="get-started">Get Started</h2>
+<h2 id="design">Design</h2>
+<h2 id="implementation">Implementation</h2>
</div>
</div>