blob: 1432a155b6fca4872d1ab38011493c0c31edd6be [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<title>Apache Jena - SPARQL Tutorial - Data Formats</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="/css/bootstrap.min.css" rel="stylesheet" media="screen">
<link href="/css/bootstrap-extension.css" rel="stylesheet" type="text/css">
<link href="/css/jena.css" rel="stylesheet" type="text/css">
<link rel="shortcut icon" href="/images/favicon.ico" />
<script src="https://code.jquery.com/jquery-2.2.4.min.js"
integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44="
crossorigin="anonymous"></script>
<script src="/js/jena-navigation.js" type="text/javascript"></script>
<script src="/js/bootstrap.min.js" type="text/javascript"></script>
<script src="/js/improve.js" type="text/javascript"></script>
</head>
<body>
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/index.html">
<img class="logo-menu" src="/images/jena-logo/jena-logo-notext-small.png" alt="jena logo">Apache Jena</a>
</div>
<div class="collapse navbar-collapse navbar-ex1-collapse">
<ul class="nav navbar-nav">
<li id="homepage"><a href="/index.html"><span class="glyphicon glyphicon-home"></span> Home</a></li>
<li id="download"><a href="/download/index.cgi"><span class="glyphicon glyphicon-download-alt"></span> Download</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-book"></span> Learn <b class="caret"></b></a>
<ul class="dropdown-menu">
<li class="dropdown-header">Tutorials</li>
<li><a href="/tutorials/index.html">Overview</a></li>
<li><a href="/documentation/fuseki2/index.html">Fuseki Triplestore</a></li>
<li><a href="/documentation/notes/index.html">How-To's</a></li>
<li><a href="/documentation/query/manipulating_sparql_using_arq.html">Manipulating SPARQL using ARQ</a></li>
<li><a href="/tutorials/rdf_api.html">RDF core API tutorial</a></li>
<li><a href="/tutorials/sparql.html">SPARQL tutorial</a></li>
<li><a href="/tutorials/using_jena_with_eclipse.html">Using Jena with Eclipse</a></li>
<li class="divider"></li>
<li class="dropdown-header">References</li>
<li><a href="/documentation/index.html">Overview</a></li>
<li><a href="/documentation/query/index.html">ARQ (SPARQL)</a></li>
<li><a href="/documentation/assembler/index.html">Assembler</a></li>
<li><a href="/documentation/tools/index.html">Command-line tools</a></li>
<li><a href="/documentation/rdfs/">Data with RDFS Inferencing</a></li>
<li><a href="/documentation/geosparql/index.html">GeoSPARQL</a></li>
<li><a href="/documentation/inference/index.html">Inference API</a></li>
<li><a href="/documentation/javadoc.html">Javadoc</a></li>
<li><a href="/documentation/ontology/">Ontology API</a></li>
<li><a href="/documentation/permissions/index.html">Permissions</a></li>
<li><a href="/documentation/extras/querybuilder/index.html">Query Builder</a></li>
<li><a href="/documentation/rdf/index.html">RDF API</a></li>
<li><a href="/documentation/rdfconnection/">RDF Connection - SPARQL API</a></li>
<li><a href="/documentation/io/">RDF I/O</a></li>
<li><a href="/documentation/rdfstar/index.html">RDF-star</a></li>
<li><a href="/documentation/shacl/index.html">SHACL</a></li>
<li><a href="/documentation/shex/index.html">ShEx</a></li>
<li><a href="/documentation/jdbc/index.html">SPARQL over JDBC</a></li>
<li><a href="/documentation/tdb/index.html">TDB</a></li>
<li><a href="/documentation/tdb2/index.html">TDB2</a></li>
<li><a href="/documentation/query/text-query.html">Text Search</a></li>
</ul>
</li>
<li class="drop down">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-book"></span> Javadoc <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/documentation/javadoc.html">All Javadoc</a></li>
<li><a href="/documentation/javadoc/arq/">ARQ</a></li>
<li><a href="/documentation/javadoc_elephas.html">Elephas</a></li>
<li><a href="/documentation/javadoc/fuseki2/">Fuseki</a></li>
<li><a href="/documentation/javadoc/geosparql/">GeoSPARQL</a></li>
<li><a href="/documentation/javadoc/jdbc/">JDBC</a></li>
<li><a href="/documentation/javadoc/jena/">Jena Core</a></li>
<li><a href="/documentation/javadoc/permissions/">Permissions</a></li>
<li><a href="/documentation/javadoc/extras/querybuilder/">Query Builder</a></li>
<li><a href="/documentation/javadoc/shacl/">SHACL</a></li>
<li><a href="/documentation/javadoc/tdb/">TDB</a></li>
<li><a href="/documentation/javadoc/text/">Text Search</a></li>
</ul>
</li>
<li id="ask"><a href="/help_and_support/index.html"><span class="glyphicon glyphicon-question-sign"></span> Ask</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-bullhorn"></span> Get involved <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/getting_involved/index.html">Contribute</a></li>
<li><a href="/help_and_support/bugs_and_suggestions.html">Report a bug</a></li>
<li class="divider"></li>
<li class="dropdown-header">Project</li>
<li><a href="/about_jena/about.html">About Jena</a></li>
<li><a href="/about_jena/architecture.html">Architecture</a></li>
<li><a href="/about_jena/citing.html">Citing</a></li>
<li><a href="/about_jena/team.html">Project team</a></li>
<li><a href="/about_jena/contributions.html">Related projects</a></li>
<li><a href="/about_jena/roadmap.html">Roadmap</a></li>
<li class="divider"></li>
<li class="dropdown-header">ASF</li>
<li><a href="http://www.apache.org/">Apache Software Foundation</a></li>
<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
<li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
<li><a href="http://www.apache.org/security/">Security</a></li>
<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
</ul>
</li>
<li id="edit"><a href="https://github.com/apache/jena-site/edit/main/source/tutorials/sparql_data.md" title="Edit this page on GitHub"><span class="glyphicon glyphicon-pencil"></span> Edit this page</a></li>
</ul>
</div>
</div>
</nav>
<div class="container">
<div class="row">
<div class="col-md-12">
<div id="breadcrumbs">
<ol class="breadcrumb">
<li><a href='/tutorials'>TUTORIALS</a></li>
<li class="active">SPARQL DATA</li>
</ol>
</div>
<h1 class="title">SPARQL Tutorial - Data Formats</h1>
<p>First, we need to be clear about what data is being queried. SPARQL
queries RDF graphs. An RDF graph is a set of triples (Jena calls
RDF graphs &ldquo;models&rdquo; and triples &ldquo;statements&rdquo; because that is what
they were called at the time the Jena API was first designed).</p>
<p>It is important to realize that it is the triples that matter, not
the serialization. The serialization is just a way to write the
triples down. RDF/XML is the W3C recommendation but it can be
difficult to see the triples in the serialized form because there are
multiple ways to encode the same graph.  In this tutorial, we use a
more &ldquo;triple-like&rdquo; serialization, called
<a href="http://www.ilrt.bris.ac.uk/discovery/2004/01/turtle/">Turtle</a> (see
also N3 language described in the
<a href="http://www.w3.org/2000/10/swap/Primer">W3C semantic web primer</a>).</p>
<p>We will start with the simple data in <a href="sparql_data/vc-db-1.rdf">vc-db-1.rdf</a>:
this file contains RDF for a number of vCard descriptions of
people.  vCards are described in
<a href="http://www.ietf.org/rfc/rfc2426.txt">RFC2426</a> and the RDF
translation is described in the W3C note
&ldquo;<a href="http://www.w3.org/TR/vcard-rdf.html">Representing vCard Objects in RDF/XML</a>&quot;. 
Our example database just contains some name information.</p>
<p>Graphically, the data looks like:</p>
<p><img src="/images/vc-db.png" alt="Graph of the vCard database" title="Graph of the vCard database"></p>
<p>In triples, this might look like:</p>
<pre><code>@prefix vCard: &lt;http://www.w3.org/2001/vcard-rdf/3.0#&gt; .
@prefix rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt; .
@prefix : &lt;#&gt; .
&lt;http://somewhere/MattJones/&gt;
vCard:FN &quot;Matt Jones&quot; ;
vCard:N [ vCard:Family
&quot;Jones&quot; ;
vCard:Given
&quot;Matthew&quot;
] .
&lt;http://somewhere/RebeccaSmith/&gt;
vCard:FN &quot;Becky Smith&quot; ;
vCard:N [ vCard:Family
&quot;Smith&quot; ;
vCard:Given
&quot;Rebecca&quot;
] .
&lt;http://somewhere/JohnSmith/&gt;
vCard:FN &quot;John Smith&quot; ;
vCard:N [ vCard:Family
&quot;Smith&quot; ;
vCard:Given
&quot;John&quot;
] .
&lt;http://somewhere/SarahJones/&gt;
vCard:FN &quot;Sarah Jones&quot; ;
vCard:N [ vCard:Family
&quot;Jones&quot; ;
vCard:Given
&quot;Sarah&quot;
] .
</code></pre>
<p>or even more explicitly as triples:</p>
<pre><code>@prefix vCard: &lt;http://www.w3.org/2001/vcard-rdf/3.0#&gt; .
@prefix rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt; .
&lt;http://somewhere/MattJones/&gt; vCard:FN &quot;Matt Jones&quot; .
&lt;http://somewhere/MattJones/&gt; vCard:N _:b0 .
_:b0 vCard:Family &quot;Jones&quot; .
_:b0 vCard:Given &quot;Matthew&quot; .
&lt;http://somewhere/RebeccaSmith/&gt; vCard:FN &quot;Becky Smith&quot; .
&lt;http://somewhere/RebeccaSmith/&gt; vCard:N _:b1 .
_:b1 vCard:Family &quot;Smith&quot; .
_:b1 vCard:Given &quot;Rebecca&quot; .
&lt;http://somewhere/JohnSmith/&gt; vCard:FN &quot;John Smith&quot; .
&lt;http://somewhere/JohnSmith/&gt; vCard:N _:b2 .
_:b2 vCard:Family &quot;Smith&quot; .
_:b2 vCard:Given &quot;John&quot; .
&lt;http://somewhere/SarahJones/&gt; vCard:FN &quot;Sarah Jones&quot; .
&lt;http://somewhere/SarahJones/&gt; vCard:N _:b3 .
_:b3 vCard:Family &quot;Jones&quot; .
_:b3 vCard:Given &quot;Sarah&quot; .
</code></pre>
<p>It is important to realize that these are the same RDF graph and
that the triples in the graph are in no particular order.  They are
just written in related groups above for the human reader - the
machine does not care.</p>
<p><a href="sparql_query1.html">Next: A Simple Query</a></p>
</div>
</div>
</div>
<footer class="footer">
<div class="container" style="font-size:80%" >
<p>
Copyright &copy; 2011&ndash;2022 The Apache Software Foundation, Licensed under the
<a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
</p>
<p>
Apache Jena, Jena, the Apache Jena project logo, Apache and the Apache feather logos are trademarks of
The Apache Software Foundation.
<br/>
<a href="https://privacy.apache.org/policies/privacy-policy-public.html"
>Apache Software Foundation Privacy Policy</a>.
</p>
</div>
</footer>
<script type="text/javascript">
var link = $('a[href="' + this.location.pathname + '"]');
if (link != undefined)
link.parents('li,ul').addClass('active');
</script>
</body>
</html>