Updates based on recent changes in the formal spec as well as discussions at the latest face-to-face. Corrected code examples to reflect new container types. Added section on use of dot-segments in URIs. Clarified section on use of the rdf:type predicate. Removed screenshots of external web sites so that doc might not become dated when views in external sites change.
--- a/ldp-bp/include-rdf-type.ttl Thu Apr 24 18:17:42 2014 +0200
+++ b/ldp-bp/include-rdf-type.ttl Sun Apr 27 11:36:35 2014 -0500
@@ -2,7 +2,7 @@
@prefix contact: <http://www.w3.org/2000/10/swap/pim/contact#>.
<http://www.w3.org/People/EM/contact#me>
- rdf:type contact:Person;
+ a contact:Person;
contact:fullName "Eric Miller";
contact:mailbox <mailto:em@w3.org>;
contact:personalTitle "Dr.".
\ No newline at end of file
--- a/ldp-bp/ldp-bp.html Thu Apr 24 18:17:42 2014 +0200
+++ b/ldp-bp/ldp-bp.html Sun Apr 27 11:36:35 2014 -0500
@@ -11,6 +11,7 @@
<!-- script src='http://dev.w3.org/2009/dap/ReSpec.js/js/respec.js' class='remove'></script -->
<script src='https://www.w3.org/Tools/respec/respec-w3c-common'
class='remove' async></script>
+
<script class='remove'>
var respecConfig = {
// specification status (e.g. WD, LCWD, NOTE, etc.). If in doubt use ED.
@@ -45,7 +46,7 @@
// if you want to have extra CSS, append them to this list
// it is recommended that the respec.css stylesheet be kept
- extraCSS : [ "http://dev.w3.org/2009/dap/ReSpec.js/css/respec.css" ],
+ // extraCSS : [ "http://dev.w3.org/2009/dap/ReSpec.js/css/respec.css" ],
// editors, add as many as you like
// only "name" is required
@@ -81,6 +82,8 @@
// name of the WG
wg : "Linked Data Platform Working Group",
+ wgPatentURI : 'http://www.w3.org/2004/01/pp-impl/55082/status',
+
// URI of the public WG page
wgURI : "http://www.w3.org/2012/ldp/wiki/Main_Page",
@@ -115,8 +118,7 @@
"LD-GLOSSARY" : {
title : "Linked Data Glossary",
href : "http://www.w3.org/TR/ld-glossary/",
- authors : [ "B Hyland", "G Atemezing", "M Pendleton",
- "B Srivastava" ],
+ authors : [ "B Hyland", "G Atemezing", "M Pendleton","B Srivastava" ],
//status: "WD",
//deliveredBy: [
// "http://www.w3.org/2012/ldp/"
@@ -125,7 +127,7 @@
},
"LDP-PRIMER" : {
title : "Linked Data Platforn Primer",
- href : "https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp-primer/ldp-primer.html",
+ href : "https://dvcs.w3.org/hg/ldpwg/raw-file/tip/ldp-primer/ldp-primer.html",
authors : [ "Nandana Mihindukulasooriya", "Roger Menday" ],
status : "WD",
deliveredBy : [ "http://www.w3.org/2012/ldp/" ],
@@ -156,6 +158,13 @@
title : "Linked Open Vocabularies (LOV)",
href : "http://lov.okfn.org/dataset/lov/",
publisher : "Open Knowledge Foundation (OKFN)"
+ },
+ "RDF-PRIMER11" : {
+ title : "RDF 1.1 Primer",
+ href : "http://www.w3.org/TR/2014/NOTE-rdf11-primer-20140225/",
+ editors : ["Guus Schreiber" , "Yves Raimond"],
+ status : "WG-NOTE",
+ publisher : "W3C"
}
}
@@ -189,9 +198,13 @@
<section id='abstract'>This document provides best practices
- and general guidelines for implementing Linked Data Platform servers
+ and guidelines for implementing Linked Data Platform servers
and clients.</section>
+ <section id='sotd'>
+
+ </section>
+
<section id="intro">
@@ -222,8 +235,8 @@
<p>For the purposes of this document, it is useful to
make a minor, yet important distinction between the term 'best
- practice' and the term 'guideline'. For the purposes of this
- document, we define and differentiate the terms as follows:</p>
+ practice' and the term 'guideline'. We define and differentiate
+ the terms as follows:</p>
<dl>
<dt>best practice</dt>
@@ -231,7 +244,7 @@
consistently shown results superior to those achieved with other
means and that is used as a benchmark. Best practices within this
document apply specifically to the ways that LDP servers and
- clients are implemented as well as how certain resources should are
+ clients are implemented as well as how certain resources are
prepared and used with them. In this document, the best practices
might be used as a kind of check-list against which an implementer
can directly evaluate a system's design and code. Lack of adherence
@@ -266,13 +279,13 @@
</p>
<ul>
- <li><strong>RDF Vocabulary Description Language 1.0:
- RDF Schema</strong> [[RDF-SCHEMA]] - The Resource Description Framework
+ <li><strong>RDF Vocabulary Description Language 1.0: RDF Schema</strong>
+ [[RDF-SCHEMA]] - The Resource Description Framework
(RDF) is a general-purpose language for representing information in
the Web and it is the defacto language for expressing Linked Data.
This specification describes how to use RDF to describe RDF
vocabularies.</li>
- <li><strong>RDF Primer</strong> - This Primer is designed to
+ <li><strong>RDF Primer 1.1</strong> [[RDF-PRIMER11]] - 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 describes its
XML syntax. It describes how to define RDF vocabularies using the
@@ -313,7 +326,6 @@
describe their state using RDF.</li>
</ul>
-
</section>
</section>
@@ -338,7 +350,7 @@
("dereferenced"). This important principle was originally
outlined by Tim Berners-Lee as rule #2 of "the four rules"
for linking data [[LD-DI]]]. It is therefore ideal that predicate
- URIs identify LDPRs with representations that are retrievable. LDP
+ URIs identify resources with representations that are retrievable. LDP
servers should at least provide [[RDF-SCHEMA]] representations of
these predicates where possible.</p>
@@ -379,6 +391,9 @@
class='example' data-include='include-rdf-type.ttl'
data-oninclude='fixCode'></pre>
+ <p>The token 'a' in the predicate position of a Turtle triple represents the IRI http://www.w3.org/1999/02/22-rdf-syntax-ns#type.
+ In the example above, therefore, <code>a contact:Person</code> is the same as <code>rdf:type contact:Person</code> or the fully-qualified form, <code><http://www.w3.org/1999/02/22-rdf-syntax-ns#type> contact:Person</code>.</p>
+
</section>
<section>
@@ -458,6 +473,21 @@
</section>
<section>
+ <h3>Avoid dot-segments in URIs of POSTed content or use with caution</h3>
+
+ <p>The semantics of dot-segments (eg. <code>../</code>) within relative URIs may be implied by other
+ specifications and by common historical use, but in the case of LDP, additional consideration is required.</p>
+
+ <p>The LDP specification states that... <blockquote>LDP servers MUST assign the default base-URI for [[RFC3987]] relative-URI resolution
+ to be the HTTP Request-URI when the resource already exists, and to the URI of the created resource when the request results in the creation
+ of a new resource.</blockquote> It follows from this definition that use of <code>../</code> and other non-null relative URI constructs during
+ POST can cause the posted content to be referring to resources in a manner the client might not be able to predict.
+ Dot-segments should therefore be avoided unless the client knows specifically what can be expected of the given implementation
+ and/or deployment.</p>
+ </section>
+
+
+ <section>
<h3>Represent container membership with hierarchical URIs</h3>
@@ -639,7 +669,7 @@
<p>LDPR representations should use only the following standard
datatypes. RDF does not by itself define datatypes to be used for
literal property values, therefore a set of standard datatypes based
- on [[XMLSCHEMA11-2]] and [[RDF-PRIMER]] should be used:</p>
+ on [[XMLSCHEMA11-2]] and [[RDF-PRIMER11]] should be used:</p>
<table class="simple">
<thead>
@@ -937,26 +967,12 @@
<section>
- <h3>Containers are not limited to same-subject, same-predicate
- triples</h3>
-
- <p>
- The LDP specification defines a Container as "a Linked Data
- Platform Resource (LDPR) representing a collection of same-subject,
- same-predicate triples." This can easily be misconstrued to
- mean that a Container should <em>only</em> contain same-subject,
- same-predicate triples. While Containers <em>may</em> contain only
- same-subject, same-predicate triples (i.e. the membership subjects
- and membership predicates of its membership triples), it is free to
- contain others. The definition is meant to clarify only those
- attributes that are directly relavant to the interaction model of a
- Container, but not to limit them to those attributes alone.
- </p>
+ <h3>Containers are not limited to membership and containment triples</h3>
<p>It is important to remember that a Linked Data Platform
Container (LDPC) is also a Linked Data Platform Resource (LDPR) and
- though it might exist as a membership controller, it may also
- represent additional data that is valuable to the agents that access
+ though it might exist as a membership controller, it may also represent
+ additional data that is valuable to the agents that access
it.</p>
</section>
@@ -967,11 +983,10 @@
<p>Following are some useful resources for finding and leveraging
pre-existing, common, and well-established vocabularies.</p>
- <p style="clear: both">
- <img src="lov-thumb.jpg" width="150"
- style="float: left; margin: 0 20px 20px 0"> <a
- href="http://lov.okfn.org" target="_blank">Linked Open
- Vocabularies (LOV)</a><br /> LOV is an entry point to the growing
+
+ <ul>
+ <li><strong>Linked Open Vocabularies (LOV)</strong>
+ [[LOV]] - an entry point to the growing
ecosystem of linked open vocabularies (RDFS or OWL ontologies) used
in the Linked Data Cloud. Users can find vocabularies listed and
individually described by metadata, classified by vocabulary spaces,
@@ -980,17 +995,9 @@
element level, exploring the vocabulary content using full-text
faceted search, and finding metrics about the use of vocabularies in
the Semantic Web. Users can also suggest a new vocabulary to add to
- LOV. [[LOV]]
- </p>
-
- <p style="clear: both">
- <img src="lodCommonVocabs-thumb.jpg" width="150"
- style="float: left; margin: 0 20px 20px 0"> <a
- href="http://www.w3.org/wiki/TaskForces/CommunityProjects/LinkingOpenData/CommonVocabularies"
- target="_blank">Common Vocabularies / Ontologies / Micromodels</a><br />
- A wiki list maintained by the Linked Data LOD community project.
- [[LOD-COMMON-VOCABS]]
- </p>
+ LOV. [[LOV]]</li>
+ <li><strong>Common Vocabularies / Ontologies / Micromodels</strong> [[LOD-COMMON-VOCABS]] - a wiki list maintained by the Linked Data LOD community project.</li>
+ </ul>
<div style="clear: both"></div>
Binary file ldp-bp/lodCommonVocabs-thumb.jpg has changed
Binary file ldp-bp/lov-thumb.jpg has changed
--- a/ldp-bp/rdf-absolute-uris.ttl Thu Apr 24 18:17:42 2014 +0200
+++ b/ldp-bp/rdf-absolute-uris.ttl Sun Apr 27 11:36:35 2014 -0500
@@ -3,9 +3,9 @@
@prefix ldp: <http://www.w3.org/ns/ldp#>.
<http://example.org/container1/>
- a ldp:Container;
+ a ldp:BasicContainer;
dcterms:title "A very simple container";
- rdfs:member
+ ldp:contains
<http://example.org/container1/member1>,
<http://example.org/container1/member2>,
<http://example.org/container1/member3>.
\ No newline at end of file
--- a/ldp-bp/rdf-relative-uris.ttl Thu Apr 24 18:17:42 2014 +0200
+++ b/ldp-bp/rdf-relative-uris.ttl Sun Apr 27 11:36:35 2014 -0500
@@ -2,6 +2,6 @@
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix ldp: <http://www.w3.org/ns/ldp#>.
-<> a ldp:Container;
+<> a ldp:BasicContainer;
dcterms:title "A very simple container";
- rdfs:member <member1>, <member2>, <member3> .
+ ldp:contains <member1>, <member2>, <member3> .
--- a/ldp-bp/trailing-slash-1.ttl Thu Apr 24 18:17:42 2014 +0200
+++ b/ldp-bp/trailing-slash-1.ttl Sun Apr 27 11:36:35 2014 -0500
@@ -3,9 +3,9 @@
@prefix ldp: <http://www.w3.org/ns/ldp#>.
<http://example.org/container1>
- a ldp:Container;
+ a ldp:BasicContainer;
dcterms:title "A very simple container";
- rdfs:member
+ ldp:contains
<http://example.org/container1/member1>,
<http://example.org/container1/member2>,
<http://example.org/container1/member3>.
\ No newline at end of file
--- a/ldp-bp/trailing-slash-2.ttl Thu Apr 24 18:17:42 2014 +0200
+++ b/ldp-bp/trailing-slash-2.ttl Sun Apr 27 11:36:35 2014 -0500
@@ -2,6 +2,6 @@
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix ldp: <http://www.w3.org/ns/ldp#>.
-<> a ldp:Container;
+<> a ldp:BasicContainer;
dcterms:title "A very simple container";
- rdfs:member <member1>, <member2>, <member3> .
\ No newline at end of file
+ ldp:contains <member1>, <member2>, <member3> .
\ No newline at end of file
--- a/ldp-bp/trailing-slash-3.ttl Thu Apr 24 18:17:42 2014 +0200
+++ b/ldp-bp/trailing-slash-3.ttl Sun Apr 27 11:36:35 2014 -0500
@@ -3,9 +3,9 @@
@prefix ldp: <http://www.w3.org/ns/ldp#>.
<http://example.org/container1>
- a ldp:Container;
+ a ldp:BasicContainer;
dcterms:title "A very simple container";
- rdfs:member
+ ldp:contains
<http://example.org/member1>,
<http://example.org/member2>,
<http://example.org/member3>.
\ No newline at end of file
--- a/ldp-bp/trailing-slash-4.ttl Thu Apr 24 18:17:42 2014 +0200
+++ b/ldp-bp/trailing-slash-4.ttl Sun Apr 27 11:36:35 2014 -0500
@@ -2,6 +2,6 @@
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix ldp: <http://www.w3.org/ns/ldp#>.
-<> a ldp:Container;
+<> a ldp:BasicContainer;
dcterms:title "A very simple container";
- rdfs:member <container1/member1>, <container1/member2>, <container1/member3> .
\ No newline at end of file
+ ldp:contains <container1/member1>, <container1/member2>, <container1/member3> .
\ No newline at end of file