--- a/rdf-primer/index.html Wed Jan 08 18:11:21 2014 +0100
+++ b/rdf-primer/index.html Tue Jan 28 23:05:50 2014 +0100
@@ -11,7 +11,7 @@
localBiblio: localBibliography,
// specification status (e.g. WD, LC, WG-NOTE, etc.). If in doubt use ED.
- specStatus: "FPWD",
+ specStatus: "ED",
// noRecTrack: true,
// the specification's short name, as in http://www.w3.org/TR/short-name/
@@ -22,7 +22,7 @@
// subtitle : "an excellent document",
// if you wish the publication date to be other than today, set this
- publishDate: "2013-12-17",
+ // publishDate: "2014-02-27",
// if the specification's copyright date is a range of years, specify
@@ -31,8 +31,8 @@
// if there is a previously published draft, uncomment this and set its YYYY-MM-DD date
// and its maturity status
- // previousPublishDate: "2004-02-10",
- // previousMaturity: "REC",
+ previousPublishDate: "2013-12-17",
+ previousMaturity: "FPWD",
// if there a publicly available Editor's Draft, this is the link
edDraftURI: "https://dvcs.w3.org/hg/rdf/raw-file/default/rdf-primer/index.html",
@@ -115,15 +115,15 @@
<body>
<section id="abstract">
- <p>The Resource Description Framework (RDF) is a language for
- representing information about resources in the World Wide
- Web. This primer is designed to provide the reader with the basic
+ <p>This primer is designed to provide the reader with the basic
knowledge required to effectively use RDF. It introduces the basic
concepts of RDF and shows concrete examples of the use of RDF. </p>
</section>
<section id="sotd">
- <p>The RDF Working Group expects this document to become a Working
- Group Note.</p>
+ <p>This document is part of the RDF 1.1 document suite. It is an
+ informative note on the key concepts of RDF. For a normative
+ specifcation of RDF 1.1 the reader is refrerred to the RDF
+ 1.1. Concepts and Abstract Syntax document [[RDF11-CONCEPTS]].</p>
</section>
</div>
@@ -138,9 +138,9 @@
1.1" [[RDF11-NEW]].</p>
<p>The Resource Description Framework (RDF) is a framework for
- describing information about <strong>resources</strong> in the World Wide Web,
- such as author and modification time of a
- Web page or copyright and licensing information of a Web video.</p>
+ expressing information about <strong>resources</strong>. Resources
+ can be anything, including documents, people, physical objects, and abstract
+ concepts.</p>
<p>RDF is intended for situations in which information on the Web needs to
be processed by applications, rather than being only displayed to
@@ -154,7 +154,7 @@
originally created. </p>
<p>In particular RDF can be used to publish and interlink data on the Web.
- For example retrieving <code>http://www.example.org/bob</code>
+ For example, retrieving <code>http://www.example.org/bob#me</code>
could provide data about Bob, including the fact that he
knows Alice, as identified by her IRI.
Retrieving Alice's IRI could then provide more data about her, including links
@@ -200,13 +200,13 @@
at different communities of practice.</p>
<ul>
- <li>Adding machine-readable information to web pages using for example
+ <li>Adding machine-readable information to Web pages using, for example,
the popular <a href="http://schema.org">schema.org</a>
vocabulary, enabling them to be displayed
in an enhanced format on search engines or to be processed automatically
by third-party applications.</li>
<li>Enriching a dataset by linking it to third-party
- datasets. For example a dataset about
+ datasets. For example, a dataset about
paintings could be enriched by linking them to the corresponding
artists in <a href="http://www.wikidata.org">Wikidata</a>,
therefore giving access to a wide range of information about
@@ -218,7 +218,7 @@
building aggregations of data around specific topics.</li>
<li>Building distributed social networks by interlinking RDF
descriptions of people
- across multiple web sites.</li>
+ across multiple Web sites.</li>
<li>Providing a standard-compliant way for exchanging data
between RDF databases.</li>
<li>Interlinking various datasets within an organisation,
@@ -240,7 +240,7 @@
The format of these statements is simple. It always
has the following form:<p>
<pre>
- <subject> <predicate> <object>
+ <subject> <predicate> <object>
</pre>
<!--
@@ -265,18 +265,26 @@
<p>Informally speaking, RDF allows us to make
statements of the form:</p>
- <pre class="example">
+ <pre class="example" id="example-1">
<Bob> <is a> <person>.
<Bob> <is a friend of> <Alice>.
<Bob> <is born on> <the 4th of July 1990>.
<Bob> <is interested in> <the Mona Lisa>.
- <The Mona Lisa> <was created by> <Leonardo da Vinci>.
- <The video 'La Joconde à Washington'> <is about> <the Mona Lisa>
+ <the Mona Lisa> <was created by> <Leonardo da Vinci>.
+ <the video 'La Joconde à Washington'> <is about> <the Mona Lisa>
</pre>
- <p>Resources typically occur in multiple
- triples, for example Bob and the Mona Lisa painting in the examples above. We
- can therefore visualise triples as a connected
+ <p class="note">The example above does not constitute actual RDF
+ syntax; it is just intended to provide an informal
+ view of the notion of RDF triples. </p>
+
+ <p>The same resource is often referenced in multiple triples. In the example above,
+ Bob is the subject of four triples, and the Mona Lisa is the subject of
+ one and the object of two triples. This ability to have the same resource be
+ in the subject position of one triple and the object position of another
+ makes it possible to find connections between triples, which is an
+ important part of RDF's power.
+ Wem can therefore visualise triples as a connected
<strong>graph</strong>. Graphs consists
of nodes and arcs. The subjects and
objects of the triples make up the nodes in the graph; the
@@ -288,14 +296,11 @@
alt="Informal graphs of the sample triples">
<figcaption>Informal graph of the sample triples</figcaption>
</figure>
-
- <p>The example above does not constitute actual RDF
- syntax; it is just intended to provide an informal
- view of the notion of an RDF graph. </p>
- <p class="note">The RDF Data Model is described in this section
+ <p>The RDF Data Model is described in this section
in the form of an "abstract syntax", i.e. a data model that is independent of a
- particular encoding. Different encodings may
+ particular concrete syntax (the syntax used to represent triples stored in
+ text files). Different concrete synyaxes may
produce exactly the same graph from the perspective of the
abstract syntax. The semantics of RDF graphs [[RDF11-MT]] are defined in
terms of this abstract syntax. Concrete RDF syntax is introduced
@@ -310,9 +315,13 @@
<h3>IRIs</h3>
+
<p>The abbreviation IRI is short for "International Resource
Identifier". An <a href="http://www.w3.org/TR/rdf11-concepts/#section-IRIs">IRI</a>
- identifies a Web resource. The notion of IRI is a
+ identifies a resource. The URLs (Uniform Resource Locators) that
+ people use as Web addresses are one form of IRI. Other forms of IRI
+ provide an identifier for a resource without implying its location
+ or how to access it. The notion of IRI is a
generalization of URI (Uniform Resource Identifier), allowing
non-ASCII characters to be used in the IRI character string. IRIs are specified
in RFC 3987 [[!RFC3987]].
@@ -335,7 +344,7 @@
<div class="example"><a href="http://data.europeana.eu/item/04802/243FA8618938F4117025F17A8B813C5F9AA4D619">http://data.europeana.eu/item/04802/243FA8618938F4117025F17A8B813C5F9AA4D619</a></div>
- <p class="note">RDF is agnostic about what the IRI stands for. However,
+ <p class="note">RDF is agnostic about what the IRI represents. However,
IRIs may be given meaning by particular vocabularies or
conventions. For example, <a
href="http://wiki.dbpedia.org/Datasets#h338-3">DBpedia</a> uses IRIs of the form
@@ -358,7 +367,7 @@
Literals are associated with a <i>datatype</i> enabling such
values to be parsed and interpreted correctly.
String literals can optionally be associated with a <i>language
- tag</i>. For example "Léonard de Vinci" could
+ tag</i>. For example, "Léonard de Vinci" could
be associated with the "fr" language tag and "李奥纳多·达·文西"
with the "zh" language tag.</p>
@@ -369,7 +378,7 @@
"plain literal" with no datatype. This feature has been removed, as the
distinction between "plain" literals and literals with datatype
<code>string</code> was confusing. RDF syntaxes such as Turtle allow
- writing literals without an explicit datatype and treat this
+ writing of literals without an explicit datatype and treat this
as syntactic sugar for a <code>string</code> datatype.</p>
<p>Literals may only appear in the <strong>object position</strong> of a triple.</p>
@@ -390,8 +399,8 @@
to be able to talk about resources without bothering to use an
identifier. For example, we might want to state that the Mona
Lisa painting has in its background an unidentified tree which
- we know to be a cypress tree. Resources such as the unidentified
- cypress tree are called <a
+ we know to be a cypress tree. Resources without identifiers such as the
+ painting's cypress tree can be represented by <a
href="http://www.w3.org/TR/rdf11-concepts/#section-blank-nodes">"blank
nodes"</a> in RDF. A blank node indicates an un-named
thing. Blank nodes are like simple
@@ -404,6 +413,9 @@
to denote resources without explicitly naming them with an
IRI.</p>
+ <p class="issue">Consider including a diagram with a blank
+ node</p>
+
</section>
<section id="subsection-multiple-graphs">
@@ -431,9 +443,7 @@
</pre>
<p class="note">The IRI associated with the graph is
- called the "graph name" in [[!RDF11-CONCEPTS]]. However
- RDF 1.1 does not specify a particular semantics for the
- relation between the "graph name" and the graph [[!RDF11-MT]].</p>
+ called the "graph name" in [[!RDF11-CONCEPTS]]. </p>
<p>A second graph could be provided by <a
href="http://www.wikidata.org/">Wikidata</a>
@@ -459,8 +469,8 @@
names represent the source of the RDF data held within the
corresponding graphs, i.e. by retrieving
<code><http://example.org/bob></code> we would get access to the four triples
- in that graph. In the example default graph we associate provenance
- information (publisher, license) with the
+ in that graph. In the example default graph we associate
+ metadata (publisher and license information) with the
<code><http://example.org/bob></code> graph.</p>
<p class="note">RDF provides no way to convey this semantic
@@ -474,7 +484,8 @@
<p class="note">Multiple graphs are a recent extension of the RDF
data model. In practice, RDF tool builders and
- data managers needed a mechanism to talk about subsets of
+ data managers needed a mechanism to talk about subsets of of a
+ collection of
triples. Multiple graphs were first introduced in the RDF query
language SPARQL. The RDF data model was therefore extended with a notion of
multiple graphs that is closely aligned with SPARQL. </p>
@@ -499,9 +510,9 @@
[[!RDF11-SCHEMA]]. This language allows one to define semantic
characteristics of
RDF data. For example, one can state that the IRI
- <code>ex:friendOf</code> can be used as a property and that the
- subjects and objects of <code>ex:friendOf</code> triples must be
- resources of class <code>ex:Person</code>. <p>
+ <code>http://www.example.org/friendOf</code> can be used as a property and that the
+ subjects and objects of <code>http://www.example.org/friendOf</code> triples must be
+ resources of class <code>http://www.example.org/Person</code>. <p>
<p>RDF Schema uses the notion of <strong>class</strong> to
specify categories that can be used to classify resources. The
@@ -509,7 +520,9 @@
<strong>type</strong> property. For both classes and properties one can create
subtype hierarchies. Type restrictions on the subjects
and objects of particular triples can be defined through
- <strong>domain</strong> respectively <strong>range</strong> restrictions.</p>
+ <strong>domain</strong> and <strong>range</strong>
+ restrictions. An example of a domain restriction was given above:
+ subjects of "friendOf" triples should be ofn class "Person".</p>
<p>The main modeling
constructs provided by RDF Schema are summarized in the table below:</p>
@@ -579,6 +592,15 @@
<is a good friend of> <<strong>subPropertyOf</strong>> <is a friend of>
</pre>
+<p>Note that, while <code><is a friend of></code> is a
+property typically used as the predicate of a triple (as it was in
+<a href="#example-1">Example 1</a>), properties like this are themselves resources that can be
+described by triples or provide values in the descriptions of other
+resources. In this example, <code><is a friend of></code> is the subject of triples
+that assign type, domain, and range values to it, and it's the object of
+a triple that describes something about the <code><is a good friend of></code>
+property.
+
<p>One of first RDF vocabularies used worldwide was the
<a href="http://www.foaf-project.org/">"Friend of a Friend"</a> (FOAF)
vocabulary for describing social networks. Other typical examples of RDF
@@ -592,8 +614,8 @@
<dt><a href="http://schema.org/">schema.org</a>
<dd>Schema.org is a vocabulary developed by a group of major search
- providers. The idea is that webmasters can use these terms to markup
- webpages, so that search engines understand what the pages are
+ providers. The idea is that webmasters can use these terms to mark-up
+ Web pages, so that search engines understand what the pages are
about.</dd>
<dt><a href="http://wordnet.princeton.edu/">WordNet</a></dt>
@@ -607,7 +629,7 @@
<dt><a href="http://www.w3.org/2004/02/skos/">SKOS</a></dt>
<dd>SKOS is a vocabulary for publishing classification schemes
such as terminologies and thesauri on the Web. SKOS is since 2009 a W3C
- recommendation and is widely used in the library world. Library of
+ recommendation and is widely used in the library world. The Library of
Congress published its Subject Headings as a <a
href="http://id.loc.gov/authorities/subjects.html">SKOS
vocabulary</a>.</dd>
@@ -616,8 +638,8 @@
<p>For a formal specification of the semantics of the RDF Schema
constructs the reader is referred to
the RDF Semantics document [[RDF11-MT]]. Users interested in more comprehensive
-semantic modeling of RDF data might consider using the OWL
-[[OWL2-OVERVIEW]]. OWL is a RDF vocabulary, so it can be
+semantic modeling of RDF data might consider using OWL
+[[OWL2-OVERVIEW]]. OWL is an RDF vocabulary, so it can be
used in combination with RDF Schema.</p>
</section>
@@ -630,17 +652,17 @@
section.</p>
<p>Many different concrete syntaxes exist for writing down RDF
- graphs. However, different encodings of the same graph lead
- to exactly the same triples. </p>
+ graphs. However, different ways of writing down the same graph lead
+ to exactly the same triples, and are thus logically equivalent. </p>
<p>In the next two
subsections we show RDF syntax examples using the Turtle and Trig
language, because these two languages are best suited for human
consumption. The final subsection lists the other RDF syntaxes,
- which include RDFa (for HTML embedding), JSON-LD (JSON-based syntax),
+ which include RDFa (for HTML and XML embedding), JSON-LD (JSON-based syntax),
N-Triples/N-Quads (line-based exchange formats) and RDF/XML. In
<a href="#section-other-syntaxes">Appendix C</a> the
- reader can find for each RDF syntax
+ reader can find, for each RDF syntax,
corresponding examples of the ones in this section. </p>
<section id="subsection-turtle">
@@ -648,12 +670,23 @@
<h3>Turtle</h3>
<p>Turtle [[TURTLE]] provides a syntax for RDF
- graphs, which is relatively convenient for humans. Turtle
+ graphs, which is relatively convenient for humans.
+ In its basic form a triple in Turtle looks this:<P>:
+
+ <pre class="example">
+ <http://example.org/bob#me> <http://xmlns.com/foaf/0.1/knows> <http://example.org/alice#me> .
+ <pre>
+
+ <p>In Turtle full IRIs are enclosed in angle brackets; the period signals the
+ end of the triple. This example represents concrete syntax for
+ the second triple in <a href="#example-1">Example 1</a>.</p>
+
+ <p>In addition to this basic stntax, Turtle
introduces a number of syntax shortcuts, such as
support for namespaces, lists and shorthands for datatyped
literals. Turtle provides a trade-off between ease of
writing, ease of parsing and readability. Our
- <a href="#subsection-triple">first example</a> (in slightly
+ <a href="#example-1">first example</a> (in slightly
extended form) can be
represented in Turtle as follows:</p>
@@ -691,17 +724,11 @@
<p>Lines 8-12 show how Turtle provides a shorthand for a set of
triples with the same subject. Lines 9-12 specify the predicate-object
-part of triples with <code><http://example.org/bob#me></code> as
-subject. The semicolons at the end of lines 9-11 indicate that the
-set is not yet complete. A period is used to
-signal the end of a Turtle statement.</p>
-
-<P>The triple represented by line 10 looks in
-its expanded form like this (see the <a href="#subsection-ntriples">N-Triples example</a>
-for the expanded form of the full example):</p>
-<pre>
-<code><http://example.org/bob#me> <http://xmlns.com/foaf/0.1/knows> <http://example.org/alice#me> .</code>
-</pre>
+part of triples that habe <code><http://example.org/bob#me></code> as
+their subject. The semicolons at the end of lines 9-11 indicate that
+the predicate-object pair that follows it is part of
+a new triple that uses the most recent subject shown in the data — in
+this case <code>bob#me</code>. </p>
<p>Line 9 shows an example of a special kind of syntactic sugar. The triple
should informally be read as "Bob (is) a Person". The
@@ -729,6 +756,12 @@
<figcaption>Graph of the Turtle example</figcaption>
</figure>
+<P class="note">N-Triples is a line-based subset of Turtle, where each triple
+corresponds to one line. Check the <a
+href="#subsection-ntriples">N-Triples example</a>
+to see that each line represents precisely one triple of the graph above. </p>
+</pre>
+
<p>In case of language-tagged strings the tag
appears directly after the string, separated by a <code>@</code>
symbol, e.g. <code>"La Joconde"@fr</code> (the French name of the Mona
@@ -750,13 +783,11 @@
_:x a <http://dbpedia.org/resource/Cypress> .
</pre>
-<p>The term <code>_:x</code> is a blank node. It represents some
-unnamed tree depicted in the Mona Lisa painting and belonging to the
-"Cypress" class. </p>
+<p>The term <code>_:x</code> is a blank node. It represents an unnamed resource depicted in
+> the Mona Lisa painting that is an instance of the <code>Cypress</code> class. </p>
<p>The above is by no means a full account of the Turtle syntax. For
-more details about the syntax of Turtle the reader is referred to the
-Turtle document [[TURTLE]].</p>
+more details about the syntax of Turtle please consult the Turtle specification [[TURTLE]].</p>
</section>
@@ -837,7 +868,7 @@
<h3>Other concrete syntaxes for RDF</h3>
<p>Next to Turtle/TriG there are a number of other concrete syntaxes
- for RDF data. These syntaxes were developed to cater for specific
+ for RDF data. These syntaxes were developed to cater to specific
application and/or usage needs. The examples given for each of
these syntaxes correspond to the same graph (i.e., the same set of
triples) as the Turtle example (in the case of a single graph, see <a
@@ -850,7 +881,7 @@
<dd>RDFa [[RDFA-PRIMER]] (<a href="#rdfa-example">single-graph example</a>)
can be used to embed RDF data within
HTML documents. This enables, for example, search engines to aggregate
- this data when crawling the web and use it to enrich search
+ this data when crawling the Web and use it to enrich search
results (see, e.g.,
<a href="http://schema.org">schema.org</a>
and <a
@@ -974,14 +1005,14 @@
<ul>
<li><a href="http://www.wikidata.org/">Wikidata</a>, a free,
collaborative and multilingual database and ran by the
- <a href="http://www.wikimedia.org/">Wikimedia Foundation</a></li>
+ <a href="http://www.wikimedia.org/">Wikimedia Foundation</a>.</li>
<li><a href="http://dbpedia.org/">DBpedia</a>, publishing data extracted
- from <a href="http://en.wikipedia.org/wiki/Help:Infobox">Wikipedia infoboxes</a>.
+ from <a href="http://en.wikipedia.org/wiki/Help:Infobox">Wikipedia infoboxes</a>.</li>
<li><a href="http://www.europeana.eu/">Europeana</a>, publishing
data about cultural objects from a large number of European
- institutions</li>
+ institutions.</li>
<li><a href="http://viaf.org/">VIAF</a>, publishing data about
people, works and geographic places from a number of national
@@ -1028,9 +1059,9 @@
different syntactic forms. Pierre-Antoine Champin provided the
alternate JSON-LD example. Andrew Wood designed the graph
diagrams. We are grateful for the comments provided by (in
- alphabetical order) Thomas Baker, Dan Brickley, Pierre-Antoine
- Champin, Sandro Hawke, Patrick
- Hayes, Ivan Herman, Markus Lanthaler, and David Wood. </p>
+ alphabetical order) Gareth Adams, Thomas Baker, Dan Brickley, Pierre-Antoine
+ Champin, Bob Ducharme, Sandro Hawke, Patrick
+ Hayes, Ivan Herman, Antoine Isaac, Markus Lanthaler, and David Wood. </p>
</section>