--- a/TR/WD-ldp-02140311/Overview.html Tue Mar 04 13:00:15 2014 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2351 +0,0 @@
-<!DOCTYPE html>
-<!-- saved from url=(0054)https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html -->
-<html lang="en" dir="ltr" typeof="bibo:Document w3p:LastCall" about="" property="dcterms:language" content="en" prefix="bibo: http://purl.org/ontology/bibo/ w3p: http://www.w3.org/2001/02pd/rec54#"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Linked Data Platform 1.0</title>
-
- <!--
- === NOTA BENE ===
- For the three scripts below, if your spec resides on dev.w3 you can check them
- out in the same tree and use relative links so that they'll work offline,
- -->
-
-
- <style type="text/css">
- div.rule {padding-top: 1em;}
- div.ldp-issue-open {
- border-color: #E05252;
- background: #FBE9E9;
- padding: 0.5em;
- margin: 1em 0;
- position: relative;
- clear: both;
- border-left-width: .5em;
- border-left-style: solid;
- }
- div.ldp-issue-pending {
- border-color: #FAF602;
- background: #F7F6BC;
- padding: 0.5em;
- margin: 1em 0;
- position: relative;
- clear: both;
- border-left-width: .5em;
- border-left-style: solid;
- }
- div.ldp-issue-closed {
- border-color: #009900;
- background: #BCF7CF;
- padding: 0.5em;
- margin: 1em 0;
- position: relative;
- clear: both;
- border-left-width: .5em;
- border-left-style: solid;
- }
- div.ldp-issue-title {
- color: #E05252;
- padding-right: 1em;
- min-width: 7.5em;
- }
- .atrisk {
- padding: 1em;
- margin: 1em 0em 0em;
- border: 1px solid #f00;
- background: #ffc;
- }
- .atrisktext {
- /* content: "Feature At Risk"; */
- display: block;
- width: 150px;
- margin: -1.5em 0 0.5em 0;
- font-weight: bold;
- border: 1px solid #f00;
- background: #fff;
- padding: 3px 1em;
- }
- .normal {
- font-weight: normal;
- font: normal 100% sans-serif;
- }
- .indented {
- margin-left: +3em;
- }
- tr:nth-of-type(odd),.oddrow {
- background:#F2F2F2; /* light grey, just enough to differentiate from white */
- }
- td {
- padding:0 +1ex 0 +1ex; /* add a bit of space from rule/edge to text */
- }
-
- </style>
- <style type="text/css" media="all">
- code {
- font-weight:bold;
- font-size:larger;
- }
- /* ReSpec uses color ff4500 for code elements, which does not print well on some black & white printers
- and is a little hard to read for some folks even on-line.
- The default code font size was also somewhat too small/hard to read.
- */
- </style>
- <style>/*****************************************************************
- * ReSpec 3 CSS
- * Robin Berjon - http://berjon.com/
- *****************************************************************/
-
-/* --- INLINES --- */
-em.rfc2119 {
- text-transform: lowercase;
- font-variant: small-caps;
- font-style: normal;
- color: #900;
-}
-
-h1 acronym, h2 acronym, h3 acronym, h4 acronym, h5 acronym, h6 acronym, a acronym,
-h1 abbr, h2 abbr, h3 abbr, h4 abbr, h5 abbr, h6 abbr, a abbr {
- border: none;
-}
-
-dfn {
- font-weight: bold;
-}
-
-a.internalDFN {
- color: inherit;
- border-bottom: 1px solid #99c;
- text-decoration: none;
-}
-
-a.externalDFN {
- color: inherit;
- border-bottom: 1px dotted #ccc;
- text-decoration: none;
-}
-
-a.bibref {
- text-decoration: none;
-}
-
-cite .bibref {
- font-style: normal;
-}
-
-code {
- color: #ff4500;
-}
-
-/* --- TOC --- */
-.toc a, .tof a {
- text-decoration: none;
-}
-
-a .secno, a .figno {
- color: #000;
-}
-
-ul.tof, ol.tof {
- list-style: none outside none;
-}
-
-.caption {
- margin-top: 0.5em;
- font-style: italic;
-}
-
-/* --- TABLE --- */
-table.simple {
- border-spacing: 0;
- border-collapse: collapse;
- border-bottom: 3px solid #005a9c;
-}
-
-.simple th {
- background: #005a9c;
- color: #fff;
- padding: 3px 5px;
- text-align: left;
-}
-
-.simple th[scope="row"] {
- background: inherit;
- color: inherit;
- border-top: 1px solid #ddd;
-}
-
-.simple td {
- padding: 3px 10px;
- border-top: 1px solid #ddd;
-}
-
-.simple tr:nth-child(even) {
- background: #f0f6ff;
-}
-
-/* --- DL --- */
-.section dd > p:first-child {
- margin-top: 0;
-}
-
-.section dd > p:last-child {
- margin-bottom: 0;
-}
-
-.section dd {
- margin-bottom: 1em;
-}
-
-.section dl.attrs dd, .section dl.eldef dd {
- margin-bottom: 0;
-}
-
-@media print {
- .removeOnSave {
- display: none;
- }
-}
-</style><style>/* --- EXAMPLES --- */
-div.example-title {
- min-width: 7.5em;
- color: #b9ab2d;
-}
-div.example-title span {
- text-transform: uppercase;
-}
-aside.example, div.example, div.illegal-example {
- padding: 0.5em;
- margin: 1em 0;
- position: relative;
- clear: both;
-}
-div.illegal-example { color: red }
-div.illegal-example p { color: black }
-aside.example, div.example {
- padding: .5em;
- border-left-width: .5em;
- border-left-style: solid;
- border-color: #e0cb52;
- background: #fcfaee;
-}
-
-aside.example div.example {
- border-left-width: .1em;
- border-color: #999;
- background: #fff;
-}
-aside.example div.example div.example-title {
- color: #999;
-}
-</style><link rel="stylesheet" href="https://www.w3.org/StyleSheets/TR/W3C-WD"><!--[if lt IE 9]><script src='https://www.w3.org/2008/site/js/html5shiv.js'></script><![endif]--></head>
-<body class="h-entry" style="" role="document" id="respecDocument"><div class="head" role="contentinfo" id="respecHeader">
- <p>
-
- <a href="http://www.w3.org/"><img width="72" height="48" src="http://www.w3.org/Icons/w3c_home" alt="W3C"></a>
-
- </p>
- <h1 class="title p-name" id="title" property="dcterms:title">Linked Data Platform 1.0</h1>
-
- <h2 property="dcterms:issued" datatype="xsd:dateTime" content="2014-03-11T04:00:00.000Z" id="w3c-last-call-working-draft-11-march-2014"><abbr title="World Wide Web Consortium">W3C</abbr> Last Call Working Draft <time class="dt-published" datetime="2014-03-11">11 March 2014</time></h2>
- <dl>
-
- <dt>This version:</dt>
- <dd><a class="u-url" href="http://www.w3.org/TR/2014/WD-ldp-20140311/">http://www.w3.org/TR/2014/WD-ldp-20140311/</a></dd>
- <dt>Latest published version:</dt>
- <dd><a href="http://www.w3.org/TR/ldp/">http://www.w3.org/TR/ldp/</a></dd>
-
-
- <dt>Latest editor's draft:</dt>
- <dd><a href="http://www.w3.org/2012/ldp/hg/ldp.html">http://www.w3.org/2012/ldp/hg/ldp.html</a></dd>
-
-
-
-
-
-
- <dt>Previous version:</dt>
- <dd><a rel="dcterms:replaces" href="http://www.w3.org/TR/2013/WD-ldp-20130730/">http://www.w3.org/TR/2013/WD-ldp-20130730/</a></dd>
-
-
- <dt>Editors:</dt>
- <dd class="p-author h-card vcard" rel="bibo:editor" inlist=""><span typeof="foaf:Person"><a class="u-url url p-name fn" rel="foaf:homepage" property="foaf:name" content="Steve Speicher" href="http://stevespeicher.blogspot.com/">Steve Speicher</a>, <a rel="foaf:workplaceHomepage" class="p-org org h-org h-card" href="http://ibm.com/">IBM Corporation</a></span>
-</dd>
-<dd class="p-author h-card vcard" rel="bibo:editor" inlist=""><span typeof="foaf:Person"><a class="u-url url p-name fn" rel="foaf:homepage" property="foaf:name" content="John Arwe" href="https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/allcommunities?userid=120000CAW7">John Arwe</a>, <a rel="foaf:workplaceHomepage" class="p-org org h-org h-card" href="http://ibm.com/">IBM Corporation</a></span>
-</dd>
-<dd class="p-author h-card vcard" rel="bibo:editor" inlist=""><span typeof="foaf:Person"><a class="u-url url p-name fn" rel="foaf:homepage" property="foaf:name" content="Ashok Malhotra" href="mailto:ashok.malhotra@oracle.com">Ashok Malhotra</a>, <a rel="foaf:workplaceHomepage" class="p-org org h-org h-card" href="http://www.oracle.com/">Oracle Corporation</a></span>
-</dd>
-
-
-
- </dl>
-
- <p class="copyright">
- <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a>
- © 2014 <a href="http://www.w3.org/"><acronym
- title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a
- href="http://www.csail.mit.edu/"><acronym
- title="Massachusetts Institute of Technology">MIT</acronym></a>, <a
- href="http://www.ercim.eu/"><acronym
- title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>,
- <a href="http://www.keio.ac.jp/">Keio</a>, <a
- href="http://ev.buaa.edu.cn/">Beihang</a>), All Rights Reserved. W3C
- <a
- href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
- <a
- href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>
- and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document
- use</a> rules apply.
- </p>
-
- </div>
-<hr>
-<section id="abstract" class="introductory" property="dcterms:abstract" datatype="" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h2 aria-level="1" role="heading" id="h2_abstract">Abstract</h2><p>
-This document describes a set of best practices and simple approach for a read-write Linked Data architecture, based on
-HTTP access to web resources that describe their state using the <abbr title="Resource Description Framework">RDF</abbr>
-data model.
-</p></section><section id="sotd" class="introductory" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h2 aria-level="1" role="heading" id="h2_sotd">Status of This Document</h2>
-
-
-
- <p>
- <em>This section describes the status of this document at the time of its publication.
- Other documents may supersede this document. A list of current <abbr title="World Wide Web Consortium">W3C</abbr> publications and the
- latest revision of this technical report can be found in the <a href="http://www.w3.org/TR/"><abbr title="World Wide Web Consortium">W3C</abbr> technical reports index</a> at
- http://www.w3.org/TR/.</em>
- </p>
-
- <p>
- This document was published by the <a href="http://www.w3.org/2012/ldp">Linked Data Platform Working Group</a> as a Last Call Working Draft.
-
- This document is intended to become a <abbr title="World Wide Web Consortium">W3C</abbr> Recommendation.
-
-
- If you wish to make comments regarding this document, please send them to
- <a href="mailto:public-ldp-comments@w3.org">public-ldp-comments@w3.org</a>
- (<a href="mailto:public-ldp-comments-request@w3.org?subject=subscribe">subscribe</a>,
- <a href="http://lists.w3.org/Archives/Public/public-ldp-comments/">archives</a>).
-
- The Last Call period ends 02 April 2014.
-
-
- All comments are welcome.
-
- </p>
-
-
- <p>
- Publication as a Last Call Working Draft does not imply endorsement by the <abbr title="World Wide Web Consortium">W3C</abbr>
- Membership. This is a draft document and may be updated, replaced or obsoleted by other
- documents at any time. It is inappropriate to cite this document as other than work in
- progress.
- </p>
-
-
-
- <p>
- This is a Last Call Working Draft and thus the Working Group has determined that this
- document has satisfied the relevant technical requirements and is sufficiently stable to
- advance through the Technical Recommendation process.
- </p>
-
- <p>
-
- This document was produced by a group operating under the
- <a id="sotd_patent" about="" rel="w3p:patentRules" href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 <abbr title="World Wide Web Consortium">W3C</abbr> Patent
- Policy</a>.
-
-
-
-
- <abbr title="World Wide Web Consortium">W3C</abbr> maintains a <a href="http://www.w3.org/2004/01/pp-impl/55082/status" rel="disclosure">public list of any patent
- disclosures</a>
-
- made in connection with the deliverables of the group; that page also includes
- instructions for disclosing a patent. An individual who has actual knowledge of a patent
- which the individual believes contains
- <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential
- Claim(s)</a> must disclose the information in accordance with
- <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section
- 6 of the <abbr title="World Wide Web Consortium">W3C</abbr> Patent Policy</a>.
-
-
- </p>
-
-
-
-
-</section><section id="toc"><h2 class="introductory" aria-level="1" role="heading" id="h2_toc">Table of Contents</h2><ul class="toc" role="directory" id="respecContents"><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#intro" class="tocxref"><span class="secno">1. </span>Introduction</a></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#terms" class="tocxref"><span class="secno">2. </span>Terminology</a><ul class="toc"><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#conventions" class="tocxref"><span class="secno">2.1 </span>Conventions Used in This Document</a></li></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#conformance" class="tocxref"><span class="secno">3. </span>Conformance</a></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr" class="tocxref"><span class="secno">4. </span>Linked Data Platform Resources</a><ul class="toc"><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-informative" class="tocxref"><span class="secno">4.1 </span>Introduction</a></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-resource" class="tocxref"><span class="secno">4.2 </span>Resource</a><ul class="toc"></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldprs" class="tocxref"><span class="secno">4.3 </span><abbr title="Resource Description Framework">RDF</abbr> Source</a><ul class="toc"></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpnr" class="tocxref"><span class="secno">4.4 </span>Non-<abbr title="Resource Description Framework">RDF</abbr> Source</a><ul class="toc"></ul></li></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc" class="tocxref"><span class="secno">5. </span>Linked Data Platform Containers</a><ul class="toc"><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-informative" class="tocxref"><span class="secno">5.1 </span>Introduction</a><ul class="toc"></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-container" class="tocxref"><span class="secno">5.2 </span>Container</a><ul class="toc"></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpbc" class="tocxref"><span class="secno">5.3 </span>Basic</a><ul class="toc"></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpdc" class="tocxref"><span class="secno">5.4 </span>Direct</a><ul class="toc"></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpic" class="tocxref"><span class="secno">5.5 </span>Indirect</a><ul class="toc"></ul></li></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#base-specs" class="tocxref"><span class="secno">6. </span>Notable information from normative references</a><ul class="toc"><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#specs-webarch" class="tocxref"><span class="secno">6.1 </span>Architecture of the World Wide Web</a><ul class="toc"></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#specs-http" class="tocxref"><span class="secno">6.2 </span>HTTP 1.1</a><ul class="toc"></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#specs-rdf" class="tocxref"><span class="secno">6.3 </span><abbr title="Resource Description Framework">RDF</abbr></a><ul class="toc"></ul></li></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#http-header-definitions" class="tocxref"><span class="secno">7. </span>HTTP Header Definitions</a><ul class="toc"><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#header-accept-post" class="tocxref"><span class="secno">7.1 </span>The Accept-Post Response Header</a><ul class="toc"></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#prefer-parameters" class="tocxref"><span class="secno">7.2 </span>Preferences on the Prefer Request Header</a><ul class="toc"></ul></li></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#security" class="tocxref"><span class="secno">8. </span>Security Considerations</a></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#acknowledgements" class="tocxref"><span class="secno">A. </span>Acknowledgements</a></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#history" class="tocxref"><span class="secno">B. </span>Change History</a></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#references" class="tocxref"><span class="secno">C. </span>References</a><ul class="toc"><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#normative-references" class="tocxref"><span class="secno">C.1 </span>Normative references</a></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#informative-references" class="tocxref"><span class="secno">C.2 </span>Informative references</a></li></ul></li></ul></section>
-
-<section class="informative" id="intro" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<!--OddPage--><h2 aria-level="1" role="heading" id="h2_intro"><span class="secno">1. </span>Introduction</h2><p><em>This section is non-normative.</em></p>
- <p>This specification describes the use
- of HTTP for accessing, updating, creating and deleting resources from
- servers that expose their resources as Linked Data. It provides clarifications
- and extensions of the rules of Linked Data [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-LINKED-DATA">LINKED-DATA</a></cite>]:</p>
- <ol>
- <li>Use URIs as names for things</li>
- <li>Use HTTP URIs so that people can look up those names</li>
- <li>When someone looks up a URI, provide useful information, using the standards
- (<abbr title="Resource Description Framework">RDF</abbr>*, <abbr title="SPARQL Protocol and RDF Query Language">SPARQL</abbr>)
- </li>
- <li>Include links to other URIs, so that they can discover more things</li>
- </ol>
- <p>This specification discusses standard HTTP and <abbr title="Resource Description Framework">RDF</abbr> techniques
- used when constructing clients and servers that
- create, read, and write <a title="Linked Data Platform Resource" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-resource" class="internalDFN">Linked Data Platform Resources</a>.
- A companion document discusses best practices that you
- should use, and anti-patterns you should avoid, when constructing these clients and servers.
- </p>
- <p>This specification defines a special type of <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-resource" class="internalDFN">Linked Data Platform Resource</a>: a
- <a title="Linked Data Platform Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-container" class="internalDFN">Container</a>. Containers are very useful
- in building application models involving collections of resources, often homogeneous ones.
- For example, universities offer a collection of classes
- and have a collection of faculty members, each faculty member teaches a collection of courses, and so on.
- This specification discusses how to work with containers. Resources can be added to containers
- using standard HTTP operations like
- POST (see <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-HTTP_POST" class="sectionRef sec-ref">section <span class="secno">5.2.3</span> <span class="sec-title">HTTP POST</span></a>).</p>
- <p>The intention of this specification is to enable additional rules and layered groupings of rules as
- additional specifications. The scope is intentionally narrow to provide a set of key rules for
- reading and writing Linked Data that most, if not all, other specifications will depend upon and
- implementations will support.</p>
- <p>This specification provides some approaches to deal with large resources. An extension to this specification
- provides the ability to break large resource representations into multiple paged responses [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-LDP-PAGING">LDP-PAGING</a></cite>].</p>
- <p>For context and background, it could be useful to read <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-LDP-UCR">Linked Data Platform Use Case and Requirements</a> [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-LDP-UCR">LDP-UCR</a></cite>]
- and <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#base-specs" class="sectionRef sec-ref">section <span class="secno">6.</span> <span class="sec-title">Notable information from normative references</span></a>.</p>
-</section>
-
-<section id="terms" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<!--OddPage--><h2 aria-level="1" role="heading" id="h2_terms"><span class="secno">2. </span>Terminology</h2>
-
-<p>Terminology is based on <abbr title="World Wide Web Consortium">W3C</abbr>'s Architecture of the World Wide Web [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-WEBARCH">WEBARCH</a></cite>] and Hyper-text Transfer Protocol [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>].
-</p>
- <dl class="glossary">
- <dt>Link</dt>
- <dd>A relationship between two resources when one resource (representation) refers to the other resource by means
- of a URI [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-WEBARCH">WEBARCH</a></cite>].
- <p></p></dd>
-
- <dt>Linked Data</dt>
- <dd>As defined by Tim Berners-Lee [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-LINKED-DATA">LINKED-DATA</a></cite>].<p></p></dd>
-
- <dt>Client</dt>
- <dd>A program that establishes connections for the purpose of sending requests [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>].<p></p></dd>
-
- <dt>Server</dt>
- <dd>An application
- program that accepts connections in order to service requests by
- sending back responses.
- <p>Any given program may be capable of being
- both a client and a server; our use of these terms refers only to
- the role being performed by the program for a particular
- connection, rather than to the program's capabilities in general.
- Likewise, any server may act as an origin server, proxy, gateway,
- or tunnel, switching behavior based on the nature of each request
- [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>]. </p></dd>
-
- <dt><dfn id="dfn-linked-data-platform-resource">Linked Data Platform Resource</dfn> (<abbr title="Linked Data Platform Resource">LDPR</abbr>)</dt>
- <dd>A HTTP resource whose state is represented in any way that conforms to the simple lifecycle
- patterns and conventions in <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr" class="sectionRef sec-ref">section <span class="secno">4.</span> <span class="sec-title">Linked Data Platform Resources</span></a>.<p></p></dd>
-
- <dt><dfn id="dfn-linked-data-platform-rdf-source">Linked Data Platform <abbr title="Resource Description Framework">RDF</abbr> Source</dfn> (<abbr title="Linked Data Platform RDF Source">LDP-RS</abbr>)</dt>
- <dd>An <a title="Linked Data Platform Resource" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-resource" class="internalDFN"><abbr title="Linked Data Platform Resource">LDPR</abbr></a> whose state is fully represented in <abbr title="Resource Description Framework">RDF</abbr>, corresponding to
- an <abbr title="Resource Description Framework">RDF</abbr> <a href="http://www.w3.org/TR/rdf11-concepts/#dfn-named-graph">named graph</a>. See also the term
- <a href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-source"><abbr title="Resource Description Framework">RDF</abbr> Source</a> from [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-rdf11-concepts">rdf11-concepts</a></cite>].
- <p></p></dd>
-
- <dt><dfn id="dfn-linked-data-platform-non-rdf-source">Linked Data Platform Non-<abbr title="Resource Description Framework">RDF</abbr> Source</dfn> (<abbr title="Linked Data Platform Non-RDF Source">LDP-NR</abbr>)</dt>
- <dd>An <a title="Linked Data Platform Resource" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-resource" class="internalDFN"><abbr title="Linked Data Platform Resource">LDPR</abbr></a> whose state is <em>not</em> represented in <abbr title="Resource Description Framework">RDF</abbr>.
- These are binary or text documents that do not have useful <abbr title="Resource Description Framework">RDF</abbr> representations.
- <p></p></dd>
-
- <dt><dfn id="dfn-linked-data-platform-container">Linked Data Platform Container</dfn> (<abbr title="Linked Data Platform Container">LDPC</abbr>)</dt>
- <dd>An <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> representing a collection of linked
- documents (<a href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-document"><abbr title="Resource Description Framework">RDF</abbr> Document</a> [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-rdf11-concepts">rdf11-concepts</a></cite>] or information resources [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-WEBARCH">WEBARCH</a></cite>])
- that responds to client requests for creation, modification, and/or enumeration of its linked members and documents,
- and that conforms to the simple lifecycle
- patterns and conventions in <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc" class="sectionRef sec-ref">section <span class="secno">5.</span> <span class="sec-title">Linked Data Platform Containers</span></a>.
- <p></p></dd>
-
- <dt><dfn id="dfn-linked-data-platform-basic-container">Linked Data Platform Basic Container</dfn> (<abbr title="Linked Data Platform Basic Container">LDP-BC</abbr>)</dt>
- <dd>An <a title="Linked Data Platform Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-container" class="internalDFN"><abbr title="Linked Data Platform Container">LDPC</abbr></a> that defines a simple link to
- its <a title="Containment" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-containment" class="internalDFN">contained</a> documents (information resources) [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-WEBARCH">WEBARCH</a></cite>].
- <p></p></dd>
-
- <dt><dfn id="dfn-linked-data-platform-direct-container">Linked Data Platform Direct Container</dfn> (<abbr title="Linked Data Platform Direct Container">LDP-DC</abbr>)</dt>
- <dd>An <a title="Linked Data Platform Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-container" class="internalDFN"><abbr title="Linked Data Platform Container">LDPC</abbr></a> adds the concept <a title="Membership" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership" class="internalDFN">membership</a>, allows the flexibility of choosing what form its
- <a title="Membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">membership triples</a> take, and allows <a title="Membership" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership" class="internalDFN">members</a> to be
- any resources [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-WEBARCH">WEBARCH</a></cite>], not only documents.
- <p></p></dd>
-
- <dt><dfn id="dfn-linked-data-platform-indirect-container">Linked Data Platform Indirect Container</dfn> (<abbr title="Linked Data Platform Indirect Container">LDP-IC</abbr>)</dt>
- <dd>An <a title="Linked Data Platform Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-container" class="internalDFN"><abbr title="Linked Data Platform Container">LDPC</abbr></a> that is similar to a <a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN"><abbr title="Linked Data Platform Direct Container">LDP-DC</abbr></a>
- and is capable of having <a title="Membership" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership" class="internalDFN">members</a> whose URIs are based
- on the content of its <a title="Containment" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-containment" class="internalDFN">contained</a> documents rather than the URIs assigned to those documents.
- <p></p></dd>
-
- <dt><dfn id="dfn-membership">Membership</dfn></dt>
- <dd>The relationship linking an <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> (<abbr title="Linked Data Platform Containers">LDPCs</abbr> are also LDP-RSs) and its member <abbr title="Linked Data Platform Resources">LDPRs</abbr>.
- There often is a linked <abbr title="Linked Data Platform Container">LDPC</abbr> that assists with managing the member <abbr title="Linked Data Platform Resources">LDPRs</abbr>.<p></p></dd>
-
- <dt><dfn id="dfn-membership-triples">Membership triples</dfn></dt>
- <dd>A set of triples in an <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr>'s state that lists its members.
- An <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr>'s membership triples all have one of the following patterns:
- <table class="indented">
- <tbody><tr>
- <td style="background:#DDDDDD"> <var>membership-constant-URI</var> </td>
- <td style="background:#FFFFFF"> <var>membership-predicate</var> </td>
- <td style="background:#CCFFFF"> <var>member-derived-URI</var> </td>
- </tr>
- <tr>
- <td style="background:#CCFFFF"> <var>member-derived-URI</var> </td>
- <td style="background:#FFFFFF"> <var>membership-predicate</var> </td>
- <td style="background:#DDDDDD"> <var>membership-constant-URI</var> </td>
- </tr>
- </tbody></table>
- The difference between the two is simply which position member-derived-URI occupies, which is usually
- driven by the choice of <var>membership-predicate</var>. Most predicates have a natural forward direction
- inherent in their name, and existing vocabularies contain useful examples that read naturally in
- each direction. <code>ldp:member</code> and <code>dcterms:isPartOf</code> are representative examples.
- <p>
- Each linked container exposes properties (see <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-general" class="sectionRef sec-ref">section <span class="secno">5.2.1</span> <span class="sec-title">General</span></a>)
- that allow clients to determine which pattern it
- uses, what the actual <var>membership-predicate</var> and <var>membership-constant-URI</var> values are,
- and (for containers that allow the creation of new members) what value is used
- for the <var>member-derived-URI</var> based on the client's input to the
- creation process.</p>
- <p></p></dd>
-
- <dt><dfn id="dfn-membership-predicate">Membership predicate</dfn></dt>
- <dd>The predicate of all an <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr>'s <a title="Membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">membership triples</a>.
- <p></p></dd>
-
- <dt><dfn id="dfn-containment">Containment</dfn></dt>
- <dd>The relationship binding an <abbr title="Linked Data Platform Container">LDPC</abbr> to <abbr title="Linked Data Platform Resources">LDPRs</abbr> whose lifecycle it controls and is aware of. The
- lifecycle of the contained <abbr title="Linked Data Platform Resource">LDPR</abbr> is limited by the lifecycle of the containing <abbr title="Linked Data Platform Container">LDPC</abbr>;
- that is, a contained <abbr title="Linked Data Platform Resource">LDPR</abbr> cannot be created (through LDP-defined means) before its containing <abbr title="Linked Data Platform Container">LDPC</abbr> exists.
- <p></p></dd>
-
- <dt><dfn id="dfn-containment-triples">Containment triples</dfn></dt>
- <dd>
- A set of triples in an <abbr title="Linked Data Platform Container">LDPC</abbr>'s state, maintained by the <abbr title="Linked Data Platform Container">LDPC</abbr>, that lists documents created by the <abbr title="Linked Data Platform Container">LDPC</abbr> but not yet deleted.
- These triples <strong>always</strong> have the form: <var>( <abbr title="Linked Data Platform Container">LDPC</abbr> URI, ldp:contains , document-URI )</var>.
- <p></p></dd>
-
- <dt><dfn id="dfn-empty-container-triples">Empty-container triples</dfn></dt>
- <dd>
- The portion of an <abbr title="Linked Data Platform Container">LDPC</abbr>'s state that would be present when the container is empty. Currently, this definition
- is equivalent to all the <abbr title="Linked Data Platform Container">LDPC</abbr>'s triples minus its containment triples and minus its membership
- triples, but if future versions of LDP define additional classes of triples then this definition
- would expand to subtract out those classes as well.
- <p></p></dd>
- </dl>
-
-<section id="conventions" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h3 aria-level="2" role="heading" id="h3_conventions"><span class="secno">2.1 </span>Conventions Used in This Document</h3>
- <p>The namespace for LDP is <code>http://www.w3.org/ns/ldp#</code>.</p>
- <p>Sample resource representations are provided in <code>text/turtle</code>
- format [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-turtle">turtle</a></cite>].</p>
- <p>Commonly used namespace prefixes:</p>
- <pre style="word-wrap: break-word; white-space: pre-wrap;"> @prefix dcterms: <http://purl.org/dc/terms/>.
- @prefix foaf: <http://xmlns.com/foaf/0.1/>.
- @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
- @prefix ldp: <http://www.w3.org/ns/ldp#>.
- @prefix xsd: <http://www.w3.org/2001/XMLSchema#>.</pre>
-</section>
-</section>
-
-<section id="conformance" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><!--OddPage--><h2 aria-level="1" role="heading" id="h2_conformance"><span class="secno">3. </span>Conformance</h2>
-<p>
- As well as sections marked as non-normative, all authoring guidelines, diagrams, examples,
- and notes in this specification are non-normative. Everything else in this specification is
- normative.
-</p>
-<p>
- The key words <em class="rfc2119" title="MUST">MUST</em>, <em class="rfc2119" title="MUST NOT">MUST NOT</em>, <em class="rfc2119" title="REQUIRED">REQUIRED</em>, <em class="rfc2119" title="SHOULD">SHOULD</em>, <em class="rfc2119" title="SHOULD NOT">SHOULD NOT</em>, <em class="rfc2119" title="RECOMMENDED">RECOMMENDED</em>, <em class="rfc2119" title="MAY">MAY</em>,
- and <em class="rfc2119" title="OPTIONAL">OPTIONAL</em> in this specification are to be interpreted as described in [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC2119">RFC2119</a></cite>].
-</p>
-
-
-<p>The status of the sections of Linked Data Platform 1.0 (this document) is as follows:</p>
-<ul>
- <li>1. Introduction: <b>non-normative</b></li>
- <li>2. Terminology: <b>normative</b></li>
- <li>3. Conformance: <b>normative</b></li>
- <li>4. Linked Data Platform Resources: <b>normative</b></li>
- <li>5. Linked Data Platform Containers: <b>normative</b></li>
- <li>6. Notable information from normative references: <b>non-normative</b></li>
- <li>7. HTTP Header Definitions: <b>normative</b></li>
- <li>8. Security Considerations: <b>non-normative</b></li>
- <li>A. Acknowledgements: <b>non-normative</b></li>
- <li>B.1 Normative references: <b>normative</b></li>
- <li>B.2 Non-normative references: <b>non-normative</b></li>
-</ul>
-
-<p>A conforming <b><dfn id="dfn-ldp-client">LDP client</dfn></b> is a conforming HTTP client [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>] that follows the rules defined by LDP in
-<a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr" class="sectionRef sec-ref">section <span class="secno">4.</span> <span class="sec-title">Linked Data Platform Resources</span></a> and also
-<a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc" class="sectionRef sec-ref">section <span class="secno">5.</span> <span class="sec-title">Linked Data Platform Containers</span></a>.
-</p>
-
-<p>A conforming <b><dfn id="dfn-ldp-server">LDP server</dfn></b> is a conforming HTTP server [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>] that follows the rules defined by LDP in
-<a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr" class="sectionRef sec-ref">section <span class="secno">4.</span> <span class="sec-title">Linked Data Platform Resources</span></a> when it is serving <abbr title="Linked Data Platform Resources">LDPRs</abbr>, and also
-<a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc" class="sectionRef sec-ref">section <span class="secno">5.</span> <span class="sec-title">Linked Data Platform Containers</span></a> when it is serving <abbr title="Linked Data Platform Containers">LDPCs</abbr>.
-LDP does not constrain its behavior when serving other HTTP resources.
-</p>
-</section>
-
-<section id="ldpr" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<!--OddPage--><h2 aria-level="1" role="heading" id="h2_ldpr"><span class="secno">4. </span>Linked Data Platform Resources</h2>
-
-<section class="informative" id="ldpr-informative" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h3 aria-level="2" role="heading" id="h3_ldpr-informative"><span class="secno">4.1 </span>Introduction</h3><p><em>This section is non-normative.</em></p>
- <p>Linked Data Platform Resources (<dfn id="dfn-linked-data-platform-resources"><abbr title="Linked Data Platform Resources">LDPRs</abbr></dfn>) are HTTP resources
- that conform to the simple patterns and conventions in this section.
- HTTP requests to access, modify, create or delete <abbr title="Linked Data Platform Resources">LDPRs</abbr> are accepted
- and processed by <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a>. Most <abbr title="Linked Data Platform Resources">LDPRs</abbr> are domain-specific resources
- that contain data for an entity in some domain, which could be
- commercial, governmental, scientific, religious, or other.</p>
- <p>Some of the rules defined in this document provide
- clarification and refinement of the base Linked Data rules [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-LINKED-DATA">LINKED-DATA</a></cite>];
- others address additional needs.</p>
- <p>The rules for Linked Data Platform Resources address basic
- questions such as:</p>
- <ul>
- <li>What resource representations should be used?</li>
- <li>How is optimistic collision detection handled for updates?</li>
- <li>What should client expectations be for changes to linked-to resources,
- such as type changes?</li>
- <li>What can servers do to ease the burden of constraints for resource
- creation?</li>
- <li>How do I GET the representation of a large resource broken up into pages?</li>
- </ul>
- <p>Additional non-normative guidance is available in the <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp-bp/ldp-bp.html" class="external" title="LDP Best Practices and Guidelines" rel="nofollow">LDP Best Practices and Guidelines editor's draft</a> that addresses
- questions such as:</p>
- <ul>
- <li>What literal value types should be used?</li>
- <li>Are there some typical vocabularies that should be reused?</li>
- </ul>
- <p>The following sections define the conformance rules for LDP servers when serving <abbr title="Linked Data Platform Resources">LDPRs</abbr>.
- Companion non-normative documents describe additional guidelines for use when interacting with <abbr title="Linked Data Platform Resources">LDPRs</abbr>.
- </p>
- <p><abbr title="Linked Data Platform RDF Source">LDP-RS</abbr>'s representations may be too big, one strategy is to break up the response representation
- into client consumable chunks called pages. A separate LDP specification outlines the conformance
- rules around pagination [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-LDP-PAGING">LDP-PAGING</a></cite>].
- </p>
- <p>An LDP server manages two kinds of <a title="Linked Data Platform Resources" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-resources" class="internalDFN"><abbr title="Linked Data Platform Resources">LDPRs</abbr></a>, those resources who whose state
- is represented using <abbr title="Resource Description Framework">RDF</abbr> (<abbr title="Linked Data Platform RDF Source">LDP-RS</abbr>) and those using other formats (<abbr title="Linked Data Platform Non-RDF Source">LDP-NR</abbr>). LDP-RSs have the unique
- quality that their representation is based on <abbr title="Resource Description Framework">RDF</abbr>, which addresses a number of use cases from web metadata, open data
- models, machine processable information, and automated processing by software agents [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-rdf11-concepts">rdf11-concepts</a></cite>]. LDP-NRs are almost anything
- on the Web today: images, HTML pages, word processing documents, spreadsheets, etc. and LDP-RSs hold
- metadata associated with LDP-NRs in some cases.
- </p>
- <figure id="fig-ldpr-types">
- <img src="images/ldpr1.png" alt="Sample separation of Linked Data Platform Resource">
- <figcaption>Fig. <span class="figno">1</span> <span class="fig-title">Samples of different types of <abbr title="Linked Data Platform Resources">LDPRs</abbr></span></figcaption>
- </figure>
- <p>The LDP-NRs and LDP-RSs are simply sub-types of <abbr title="Linked Data Platform Resources">LDPRs</abbr>, as illustrated in <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#fig-ldpr-class" class="fig-ref">Fig. <span class="figno">2</span> <span class="fig-title">Class relationship of types of Linked Data Platform Resources</span></a>.</p>
- <figure id="fig-ldpr-class">
- <img src="images/ldpr2.png" alt="Class Diagram of Linked Data Platform Resource">
- <figcaption>Fig. <span class="figno">2</span> <span class="fig-title">Class relationship of types of Linked Data Platform Resources</span></figcaption>
- </figure>
-
-</section>
-
-<section id="ldpr-resource" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h3 aria-level="2" role="heading" id="h3_ldpr-resource"><span class="secno">4.2 </span>Resource</h3>
-
-<section id="ldpr-general" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_ldpr-general"><span class="secno">4.2.1 </span>General</h4>
-
- <section id="ldpr-gen-http" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-gen-http"><span class="secno">4.2.1.1 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> at least be HTTP/1.1 conformant servers [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>].
- </h5></section><!-- Was 4.2.1 / #ldpr-4_2_1 -->
-
- <section id="ldpr-gen-binary" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-gen-binary"><span class="secno">4.2.1.2 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MAY">MAY</em> host a mixture of <abbr title="Linked Data Platform Resources">LDPRs</abbr>, <a title="Linked Data Platform RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN">LDP-RSs</a>
- and <a title="Linked Data Platform Non-RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-non-rdf-source" class="internalDFN">LDP-NRs</a>. For example, it
- is common for <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> to need to host binary or text resources
- that do not have useful <abbr title="Resource Description Framework">RDF</abbr> representations.</h5></section><!-- Was 4.2.3 / #ldpr-4_2_3 -->
-
- <section id="ldpr-gen-etags" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-gen-etags"><span class="secno">4.2.1.3 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP server</a> responses <em class="rfc2119" title="MUST">MUST</em> use entity tags (either
- weak or strong ones) as response <code>ETag</code> header values.
- </h5></section><!-- Was 4.2.8 / #ldpr-4_2_8 -->
-
- <section id="ldpr-gen-linktypehdr" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-gen-linktypehdr"><span class="secno">4.2.1.4 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a>
- exposing <abbr title="Linked Data Platform Resources">LDPRs</abbr>
- <em class="rfc2119" title="MUST">MUST</em> advertise their LDP support by exposing a HTTP <code>Link</code> header
- with a target URI of <code>http://www.w3.org/ns/ldp#Resource</code>, and
- a link relation type of <code>type</code> (that is, <code>rel='type'</code>)
- in all responses to requests made
- to the <abbr title="Linked Data Platform Resource">LDPR</abbr>'s HTTP <code>Request-URI</code>.
- </h5></section><!-- Was 4.2.10 / #ldpr-4_2_10 -->
- <blockquote>
- <p>
- Note:
- The HTTP <code>Link</code> header is the method by which servers assert their support for the LDP specification
- on a specific resource in a way that clients can inspect dynamically at run-time.
- This is <strong>not</strong> equivalent to the
- presence of a <var>(subject-URI, <code>rdf:type</code>, <code>ldp:Resource</code>)</var> triple in an <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr>.
- The presence of this header asserts that the server complies with the LDP specification's constraints on
- HTTP interactions with <abbr title="Linked Data Platform Resources">LDPRs</abbr>, that is
- it asserts that the resource <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-gen-etags">has Etags</a>, <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldprs-gen-rdf">has an <abbr title="Resource Description Framework">RDF</abbr> representation</a>, and so on,
- which is not true of all Web resources served as <abbr title="Resource Description Framework">RDF</abbr> media types.
- </p>
- <p>
- Note:
- <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-gen-binary">An LDP server can host a mixture of <abbr title="Linked Data Platform Resources">LDPRs</abbr> and other resources</a>, and therefore there is no implication
- that LDP support advertised on one HTTP <code>Request-URI</code> means that other
- resources on the same server are also <abbr title="Linked Data Platform Resources">LDPRs</abbr>. Each HTTP <code>Request-URI</code> needs to be
- individually inspected, in the absence of outside information.
- </p>
- </blockquote>
-
- <section id="ldpr-gen-defbaseuri" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-gen-defbaseuri"><span class="secno">4.2.1.5 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> assign the default
- base-URI for [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC3987">RFC3987</a></cite>] relative-URI resolution to be the HTTP
- <code>Request-URI</code> when the resource already exists, and to the URI of the created resource when the request results
- in the creation of a new resource.
- </h5></section><!-- Was 4.2.12 / #ldpr-4_2_12 -->
-
- <section id="ldpr-gen-pubclireqs" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-gen-pubclireqs"><span class="secno">4.2.1.6 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em>
- publish any constraints on <a title="LDP client" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP clients’</a> ability to
- create or update <abbr title="Linked Data Platform Resources">LDPRs</abbr>, by adding a Link header with <code>rel='describedby'</code>
- [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC5988">RFC5988</a></cite>] to all responses to requests which fail due to violation of
- those constraints. For example, a server that refuses resource creation
- requests via HTTP PUT, POST, or PATCH would return this <code>Link</code> header on its
- 4xx responses to such requests.
- The same <code>Link</code> header <em class="rfc2119" title="MAY">MAY</em> be provided on other responses. LDP neither
- defines nor constrains the representation of the link's target resource. Natural language
- constraint documents are therefore permitted,
- although machine-readable ones facilitate better client interactions.
- </h5></section><!-- Was 4.2.13 / #ldpr-4_2_13 -->
-
-</section>
-
-<section id="ldpr-HTTP_GET" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_ldpr-HTTP_GET"><span class="secno">4.2.2 </span>HTTP GET</h4>
- <section id="ldpr-get-must" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-get-must"><span class="secno">4.2.2.1 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> support the HTTP <code>GET</code> Method for <abbr title="Linked Data Platform Resources">LDPRs</abbr>.
- </h5></section><!-- Was 4.3.1 / #ldpr-4_3_1 -->
-
- <section id="ldpr-get-options" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-get-options"><span class="secno">4.2.2.2 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> support the HTTP response headers defined in
- <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-HTTP_OPTIONS" class="sectionRef sec-ref">section <span class="secno">4.2.8</span> <span class="sec-title">HTTP OPTIONS</span></a>.
- </h5></section><!-- Was 4.3.2 / #ldpr-4_3_2 -->
-
-</section>
-
-<section id="ldpr-HTTP_POST" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_ldpr-HTTP_POST"><span class="secno">4.2.3 </span>HTTP POST</h4>
- <p>
- Per [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>], this HTTP method is optional and
- this specification does not require <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> to support it.
- When an LDP server supports this method,
- this specification imposes no new requirements for <abbr title="Linked Data Platform Resources">LDPRs</abbr>.
- </p>
-
- <p>Clients can create <abbr title="Linked Data Platform Resources">LDPRs</abbr> via <code>POST</code> (<a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-HTTP_POST" class="sectionRef sec-ref">section <span class="secno">5.2.3</span> <span class="sec-title">HTTP POST</span></a>) to an <abbr title="Linked Data Platform Container">LDPC</abbr>,
- via <code>PUT</code> (<a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-HTTP_PUT" class="sectionRef sec-ref">section <span class="secno">4.2.4</span> <span class="sec-title">HTTP PUT</span></a>), or any other methods allowed
- for HTTP resources. Any server-imposed constraints on <abbr title="Linked Data Platform Resource">LDPR</abbr> creation or update
- <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-gen-pubclireqs">must be advertised</a> to clients.
-
- </p>
-</section>
-
-<section id="ldpr-HTTP_PUT" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_ldpr-HTTP_PUT"><span class="secno">4.2.4 </span>HTTP PUT</h4>
- <p>
- Per [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>], this HTTP method is optional and
- this specification does not require <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> to support it.
- When an LDP server supports this method,
- this specification imposes the following new requirements for <abbr title="Linked Data Platform Resources">LDPRs</abbr>.
- </p>
-
- <p>
- Any server-imposed constraints on <abbr title="Linked Data Platform Resource">LDPR</abbr> creation or update
- <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-gen-pubclireqs">must be advertised</a> to clients.
- </p>
-
- <section id="ldpr-put-replaceall" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-put-replaceall"><span class="secno">4.2.4.1 </span>If a HTTP <code>PUT</code> is accepted on an existing resource,
- <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em>
- replace the entire persistent state of the identified resource with
- the entity representation in the body of the request.
- <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MAY">MAY</em> ignore server managed properties such as <code>dcterms:modified</code>
- and <code>dcterms:creator</code> if they are not under
- client control. Any <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> that wish
- to support a more sophisticated merge of data provided by the client
- with existing state stored on the server for a resource <em class="rfc2119" title="MUST">MUST</em> use HTTP
- <code>PATCH</code>, not HTTP <code>PUT</code>.
- </h5></section><!-- Was 4.5.1 / #ldpr-4_5_1 -->
-
- <section id="ldpr-put-simpleupdate" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-put-simpleupdate"><span class="secno">4.2.4.2 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="SHOULD">SHOULD</em> allow clients to update resources without
- requiring detailed knowledge of server-specific constraints.
- This is a consequence of the requirement to enable simple creation and modification of <abbr title="Linked Data Platform Resources">LDPRs</abbr>.
- </h5></section><!-- Was 4.5.7 / #ldpr-4_5_7 -->
-
- <section id="ldprs-put-servermanagedprops" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldprs-put-servermanagedprops"><span class="secno">4.2.4.3 </span>
- If an otherwise valid HTTP <code>PUT</code> request is received
- that attempts to change properties the server does not allow clients to modify,
- <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em>
- respond with a 4xx range status code (typically
- 409 Conflict).
- <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="SHOULD">SHOULD</em> provide a corresponding response body containing
- information about which properties could not be
- persisted.
- The format of the 4xx response body is not constrained by LDP.
- </h5></section><!-- Was 4.5.1.1 / #ldpr-4_5_1_1 -->
- <blockquote>
- Non-normative note: Clients might provide properties equivalent to those already in the resource's state,
- e.g. as part of a GET/update representation/PUT sequence, and those PUT requests are intended to work as long as the
- server-controlled properties are identical on the GET response and the subsequent PUT request.
- </blockquote>
-
- <section id="ldprs-put-failed" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldprs-put-failed"><span class="secno">4.2.4.4 </span>
- If an otherwise valid HTTP <code>PUT</code> request is received that contains properties the server
- chooses not to persist, e.g. unknown content,
- <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> respond with an appropriate 4xx range status code
- [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>].
- <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="SHOULD">SHOULD</em> provide a corresponding response body containing
- information about which properties could not be
- persisted.
- The format of the 4xx response body is not constrained by LDP. LDP servers
- expose these application-specific constraints as described in <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-general" class="sectionRef sec-ref">section <span class="secno">4.2.1</span> <span class="sec-title">General</span></a>.
- </h5></section><!-- Was 4.5.4 / #ldpr-4_5_4 -->
-
- <section id="ldpr-put-precond" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-put-precond"><span class="secno">4.2.4.5 </span><a title="LDP client" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP clients</a> <em class="rfc2119" title="SHOULD">SHOULD</em> use the HTTP <code>If-Match</code>
- header and HTTP <code>ETags</code> to ensure it isn’t
- modifying a resource that has changed since the client last retrieved
- its representation. <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="SHOULD">SHOULD</em> require the HTTP <code>If-Match</code> header and HTTP <code>ETags</code>
- to detect collisions. <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> respond with status code 412
- (Condition Failed) if <code>ETag</code>s fail to match when there are no other
- errors with the request [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>]. <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> that require conditional requests <em class="rfc2119" title="MUST">MUST</em> respond with status code 428
- (Precondition Required) when the absence of a precondition is the only reason for rejecting the request [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC6585">RFC6585</a></cite>].
- </h5></section><!-- Was 4.5.2 / #ldpr-4_5_2 -->
-
- <section id="ldpr-put-create" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-put-create"><span class="secno">4.2.4.6 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MAY">MAY</em> choose to allow the creation of new resources using HTTP <code>PUT</code>.
- </h5></section><!-- Was 4.5.6 / #ldpr-4_5_6 -->
-
-</section>
-
-<section id="ldpr-HTTP_DELETE" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_ldpr-HTTP_DELETE"><span class="secno">4.2.5 </span>HTTP DELETE</h4>
- <p>
- Per [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>], this HTTP method is optional and
- this specification does not require <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> to support it.
- When an LDP server supports this method,
- this specification imposes the following new requirements for <abbr title="Linked Data Platform Resources">LDPRs</abbr>.
- </p>
-
- <p>Additional requirements on HTTP <code>DELETE</code> of <abbr title="Linked Data Platform Resources">LDPRs</abbr> within containers can be found in
- <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-HTTP_DELETE" class="sectionRef sec-ref">section <span class="secno">5.2.5</span> <span class="sec-title">HTTP DELETE</span></a>.
- </p>
-</section>
-
-<section id="ldpr-HTTP_HEAD" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_ldpr-HTTP_HEAD"><span class="secno">4.2.6 </span>HTTP HEAD</h4>
- <p>Note that certain LDP mechanisms rely on HTTP headers, and HTTP generally requires that
- <code>HEAD</code> responses include the same headers as <code>GET</code> responses.
- Thus, implementers should also carefully read sections <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-HTTP_GET" class="sec-ref"><span class="secno">4.2.2</span> <span class="sec-title">HTTP GET</span></a>
- and <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-HTTP_OPTIONS" class="sec-ref"><span class="secno">4.2.8</span> <span class="sec-title">HTTP OPTIONS</span></a>.</p>
- <section id="ldpr-head-must" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-head-must"><span class="secno">4.2.6.1 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> support the HTTP <code>HEAD</code> method.
- </h5></section><!-- Was 4.7.1 / #ldpr-4_7_1 -->
-</section>
-
-<section id="ldpr-HTTP_PATCH" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_ldpr-HTTP_PATCH"><span class="secno">4.2.7 </span>HTTP PATCH</h4>
- <p>
- Per [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC5789">RFC5789</a></cite>], this HTTP method is optional and
- this specification does not require <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> to support it.
- When an LDP server supports this method,
- this specification imposes the following new requirements for <abbr title="Linked Data Platform Resources">LDPRs</abbr>.
- </p>
-
- <p>
- Any server-imposed constraints on <abbr title="Linked Data Platform Resource">LDPR</abbr> creation or update
- <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-gen-pubclireqs">must be advertised</a> to clients.
- </p>
-
- <section id="ldpr-patch-acceptpatch" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-patch-acceptpatch"><span class="secno">4.2.7.1 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> that support <code>PATCH</code> <em class="rfc2119" title="MUST">MUST</em>
- include an <code>Accept-Patch</code> HTTP response header [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC5789">RFC5789</a></cite>] on HTTP <code>OPTIONS</code>
- requests, listing patch document media type(s) supported by the server.
- </h5></section><!-- Was 4.8.4 / #ldpr-4_8_4 -->
-
-</section>
-
-<section id="ldpr-HTTP_OPTIONS" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_ldpr-HTTP_OPTIONS"><span class="secno">4.2.8 </span>HTTP OPTIONS</h4>
- <p>This specification imposes the following new requirements on HTTP <code>OPTIONS</code> for <abbr title="Linked Data Platform Resources">LDPRs</abbr>
- beyond those in [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>]. Other sections of this specification, for example
- <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-HTTP_PATCH">PATCH</a>,
- <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#header-accept-post">Accept-Post</a>,
- add other requirements on <code>OPTIONS</code> responses.
- </p>
-
- <section id="ldpr-options-must" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-options-must"><span class="secno">4.2.8.1 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> support the HTTP <code>OPTIONS</code> method.
- </h5></section><!-- Was 4.9.1 / #ldpr-4_9_1 -->
-
- <section id="ldpr-options-allow" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-options-allow"><span class="secno">4.2.8.2 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> indicate their support for HTTP Methods by
- responding to a HTTP <code>OPTIONS</code> request on the <abbr title="Linked Data Platform Resource">LDPR</abbr>’s URL with the HTTP
- Method tokens in the HTTP response header <code>Allow</code>.
- </h5></section><!-- Was 4.9.2 / #ldpr-4_9_2 -->
-
-</section> <!-- h2 -->
-
-</section> <!-- ldpr-resource -->
-
-<section id="ldprs" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h3 aria-level="2" role="heading" id="h3_ldprs"><span class="secno">4.3 </span><abbr title="Resource Description Framework">RDF</abbr> Source</h3>
-
-<p>The following section contains normative clauses for <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN">Linked Data Platform <abbr title="Resource Description Framework">RDF</abbr> Source</a>.</p>
-
-<section id="ldprs-general" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_ldprs-general"><span class="secno">4.3.1 </span>General</h4>
-
- <section id="ldprs-are-ldpr" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldprs-are-ldpr"><span class="secno">4.3.1.1 </span>Each <a title="Linked Data Platform RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN">LDP <abbr title="Resource Description Framework">RDF</abbr> Source</a> <em class="rfc2119" title="MUST">MUST</em> also be
- a conforming <a title="Linked Data Platform Resource" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-resource" class="internalDFN">LDP Resource</a> in <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-resource" class="sectionRef sec-ref">section <span class="secno">4.2</span> <span class="sec-title">Resource</span></a> along the
- following restrictions in this section. <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP client</a>s <em class="rfc2119" title="MAY">MAY</em> infer the following triple:
- whose subject is <code>ldp:RDFSource</code>,
- whose predicate is <code>rdfs:subClassOf</code>,
- and whose object is <code>ldp:Resource</code>,
- but there is no requirement to materialize this triple in the <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> representation.
- </h5></section>
-
- <section id="ldprs-gen-atleast1rdftype" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldprs-gen-atleast1rdftype"><span class="secno">4.3.1.2 </span><a title="Linked Data Platform RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN">LDP-RSs</a> representations <em class="rfc2119" title="SHOULD">SHOULD</em> have at least one <code>rdf:type</code>
- set explicitly. This makes the representations much more useful to
- client applications that don’t support inferencing.
- </h5></section><!-- Was 4.2.5 / #ldpr-4_2_5 -->
-
- <section id="ldprs-rdftype" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldprs-rdftype"><span class="secno">4.3.1.3 </span>The representation of an <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> <em class="rfc2119" title="MAY">MAY</em> have an <code>rdf:type</code>
- of only one of <code>ldp:RDFSource</code> for <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN">Linked Data Platform <abbr title="Resource Description Framework">RDF</abbr> Source</a>.
- </h5></section><!-- Was 5.2.7 / #ldpc-5_2_7 -->
-
- <section id="ldprs-gen-rdf" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldprs-gen-rdf"><span class="secno">4.3.1.4 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> provide an <abbr title="Resource Description Framework">RDF</abbr> representation for <a title="Linked Data Platform RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN">LDP-RSs</a>.
- The HTTP <code>Request-URI</code> of the <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> is typically the subject of most triples in the response.
- </h5></section><!-- Was 4.2.2 / #ldpr-4_2_2 -->
-
- <section id="ldprs-gen-reusevocab" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldprs-gen-reusevocab"><span class="secno">4.3.1.5 </span><a title="Linked Data Platform RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN">LDP-RSs</a> <em class="rfc2119" title="SHOULD">SHOULD</em> reuse existing vocabularies instead of creating
- their own duplicate vocabulary terms. In addition to this general rule, some specific cases are
- covered by other conformance rules.
- </h5></section><!-- Was 4.2.4 / #ldpr-4_2_4 -->
-
- <section id="ldprs-gen-reusevocabsuchas" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldprs-gen-reusevocabsuchas"><span class="secno">4.3.1.6 </span><a title="Linked Data Platform RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN">LDP-RSs</a> predicates <em class="rfc2119" title="SHOULD">SHOULD</em> use standard vocabularies such as Dublin Core
- [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-DC-TERMS">DC-TERMS</a></cite>], <abbr title="Resource Description Framework">RDF</abbr> [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-rdf11-concepts">rdf11-concepts</a></cite>] and <abbr title="Resource Description Framework">RDF</abbr> Schema [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-rdf-schema">rdf-schema</a></cite>], whenever
- possible.
- </h5></section><!-- Was 4.2.4.1 / #ldpr-4_2_4_1 -->
-
- <section id="ldp-cli-multitype" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldp-cli-multitype"><span class="secno">4.3.1.7 </span>In the absence of special knowledge of the application or domain,
- <a title="LDP client" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP clients</a> <em class="rfc2119" title="MUST">MUST</em> assume that any <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> can have multiple values for <code>rdf:type</code>.
- </h5></section> <!-- Was 4.3.5 / #ldpr-4_3_5 -->
-
- <section id="ldpr-cli-typeschange" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-cli-typeschange"><span class="secno">4.3.1.8 </span>In the absence of special knowledge of the application or domain,
- <a title="LDP client" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP clients</a> <em class="rfc2119" title="MUST">MUST</em> assume that the <code>rdf:type</code> values
- of a given <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> can change over time.
- </h5></section> <!-- Was 4.3.6 / #ldpr-4_3_6 -->
-
- <section id="ldpr-cli-openpreds" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-cli-openpreds"><span class="secno">4.3.1.9 </span><a title="LDP client" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP clients</a> <em class="rfc2119" title="SHOULD">SHOULD</em> always assume that the set of predicates for a
- <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> of a particular type at an arbitrary server is open, in the
- sense that different resources of the same type may not all have the
- same set of predicates in their triples, and the set of predicates that
- are used in the state of any one <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> is not limited to any pre-defined
- set.
- </h5></section> <!-- Was 4.5.3 / #ldpr-ldpr-4_5_3 -->
-
- <section id="ldprs-gen-noinferencing" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldprs-gen-noinferencing"><span class="secno">4.3.1.10 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a>
- <em class="rfc2119" title="MUST NOT">MUST NOT</em> require LDP clients to implement inferencing in order to recognize the subset
- of content defined by LDP. Other specifications built on top of LDP may require clients
- to implement inferencing [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-rdf11-concepts">rdf11-concepts</a></cite>]. The practical implication is that all content defined by LDP
- must be explicitly represented, unless noted otherwise within this document.
- </h5></section><!-- Was 4.2.11 / #ldpr-4_2_11 -->
-
- <section id="ldpr-cli-preservetriples" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-cli-preservetriples"><span class="secno">4.3.1.11 </span>
- A <a title="LDP client" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP client</a> <em class="rfc2119" title="MUST">MUST</em> preserve all triples retrieved from an <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> using HTTP <code>GET</code> that
- it doesn’t change whether it understands the predicates or not, when
- its intent is to perform an update using HTTP <code>PUT</code>. The use of HTTP
- <code>PATCH</code> instead of HTTP <code>PUT</code> for update avoids this burden for clients
- [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC5789">RFC5789</a></cite>].
- </h5></section> <!-- Was 4.5.5 / #ldpr-ldpr-4_5_5 -->
-
- <section id="ldpr-cli-can-hint" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-cli-can-hint"><span class="secno">4.3.1.12 </span>
- <a title="LDP client" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP clients</a> <em class="rfc2119" title="MAY">MAY</em>
- provide LDP-defined hints that allow servers to optimize the content of responses.
- <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#prefer-parameters" class="sectionRef sec-ref">section <span class="secno">7.2</span> <span class="sec-title">Preferences on the Prefer Request Header</span></a> defines hints that apply to
- <a title="Linked Data Platform RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN">LDP-RSs</a>.
- </h5></section>
-
- <section id="ldpr-cli-hints-ignorable" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-cli-hints-ignorable"><span class="secno">4.3.1.13 </span>
- <a title="LDP client" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP clients</a> <em class="rfc2119" title="MUST">MUST</em>
- be capable of processing responses formed by an LDP server that ignores hints,
- including LDP-defined hints.
- </h5></section>
-
- <section id="ldpr-cli-paging" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-cli-paging"><span class="secno">4.3.1.14 </span>
- <div class="atrisk" id="atrisk-paging"><p class="atrisktext">Feature At Risk</p>
- <p>The LDP Working Group proposes incorporation of the following clause to make LDP clients paging aware:</p>
- <a title="LDP client" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP clients</a> <em class="rfc2119" title="SHOULD">SHOULD</em>
- be capable of processing successful HTTP <code>GET</code> responses formed by an LDP server
- that independently initiated paging, returning a page of representation instead of full resource
- representation [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-LDP-PAGING">LDP-PAGING</a></cite>].
- </div></h5>
- </section>
-
-</section> <!-- ldprs-general -->
-
-<section id="ldprs-HTTP_GET" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_ldprs-HTTP_GET"><span class="secno">4.3.2 </span>HTTP GET</h4>
- <section id="ldprs-get-turtle" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldprs-get-turtle"><span class="secno">4.3.2.1 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> provide a <code>text/turtle</code>
- representation of the requested <a title="Linked Data Platform RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN"><abbr title="Linked Data Platform RDF Source">LDP-RS</abbr></a> [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-turtle">turtle</a></cite>].
- </h5></section><!-- Was 4.3.3 / #ldpr-4_3_3 -->
-
-</section> <!-- ldprs-HTTP_GET -->
-
-</section> <!-- ldprs RDF Source-->
-
-<section id="ldpnr" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h3 aria-level="2" role="heading" id="h3_ldpnr"><span class="secno">4.4 </span>Non-<abbr title="Resource Description Framework">RDF</abbr> Source</h3>
-
-<p>The following section contains normative clauses for <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-non-rdf-source" class="internalDFN">Linked Data Platform Non-<abbr title="Resource Description Framework">RDF</abbr> Source</a>.</p>
-
-<section id="ldpnr-general" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_ldpnr-general"><span class="secno">4.4.1 </span>General</h4>
-
- <section id="ldpnr-are-ldpr" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpnr-are-ldpr"><span class="secno">4.4.1.1 </span>Each <a title="Linked Data Platform Non-RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-non-rdf-source" class="internalDFN">LDP Non-<abbr title="Resource Description Framework">RDF</abbr> Source</a> <em class="rfc2119" title="MUST">MUST</em> also be
- a conforming <a title="Linked Data Platform Resource" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-resource" class="internalDFN">LDP Resource</a> in <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-resource" class="sectionRef sec-ref">section <span class="secno">4.2</span> <span class="sec-title">Resource</span></a>.
- <a title="Linked Data Platform Non-RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-non-rdf-source" class="internalDFN">LDP Non-<abbr title="Resource Description Framework">RDF</abbr> Source</a> may not be able to fully express their
- state using <abbr title="Resource Description Framework">RDF</abbr>. [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-rdf11-concepts">rdf11-concepts</a></cite>]
- </h5></section>
-
-</section> <!-- ldpnr Non-RDF Source-->
-
-</section>
-
-</section> <!-- ldpr h1 -->
-
-<section id="ldpc" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<!--OddPage--><h2 aria-level="1" role="heading" id="h2_ldpc"><span class="secno">5. </span>Linked Data Platform Containers</h2>
-
-<section class="informative" id="ldpc-informative" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h3 aria-level="2" role="heading" id="h3_ldpc-informative"><span class="secno">5.1 </span>Introduction</h3><p><em>This section is non-normative.</em></p>
- <p>Many HTTP applications and sites have organizing
- concepts that partition the overall space of resources into smaller
- containers. Blog posts are grouped into blogs, wiki pages are grouped
- into wikis, and products are grouped into catalogs. Each resource
- created in the application or site is created within an instance of
- one of these container-like entities, and users can list the existing
- artifacts within one. Containers answer some basic questions, which
- are:</p>
- <ol>
- <li>To which URLs can I POST to create new resources?</li>
- <li>Where can I GET a list of existing resources?</li>
- <li>How do I get information about the members along with the container?</li>
- <li>How can I ensure the resource data is easy to query?</li>
- <li>How is the order of the container entries expressed? [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-LDP-PAGING">LDP-PAGING</a></cite>]</li>
- </ol>
- <p>
- This document defines the representation and behavior of containers
- that address these issues. There are multiple types of containers defined
- to support a variety of use cases, all that support a base set of capabilities.
- The contents of a container is
- defined by a set of triples in its representation (and state) called
- the <a title="Containment triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-containment-triples" class="internalDFN">containment triples</a> that follow a fixed pattern.
- Additional types of containers allow for the set of members of a container to be
- defined by a set of triples in its representation called
- the <a title="Membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">membership triples</a> that follow a consistent pattern
- (see the linked-to definition for the possible patterns).
- The membership triples of a container all
- have the same predicate, called the membership predicate,
- and either the subject or the object is also a consistent value
- – the remaining position of the membership
- triples (the one that varies) define the members of the container.
- In the simplest cases, the
- consistent value will be the <abbr title="Linked Data Platform Container">LDPC</abbr> resource's URI, but it does not
- have to be. The membership predicate is also variable and will often
- be a predicate from the server application vocabulary or the <code>ldp:member</code> predicate.
- </p>
- <p>This document includes a set of guidelines for
- creating new resources and adding them to the list of
- resources linked to a container. It goes on to explain how to learn about a set of related
- resources, regardless of how they were created or added to the container's membership.
- It also defines behavior when resources created using a container are later deleted;
- deleting containers removes membership information and
- possibly performs some cleanup tasks on unreferenced member resources.</p>
-
- <p>The following illustrates a very simple
- container with only three members and some information about the
- container (the fact that it is a container and a brief title):</p>
-
-<div class="example"><div class="example-title"><span>Example 1</span></div><pre class="example" id="ldpc-ex-simple"># The following is the representation of
-# http://example.org/c1/
-<!-- @base is here only so it's easier to paste into validators for checking -->
-# @base <http://example.org/c1/>
-@prefix dcterms: <http://purl.org/dc/terms/>.
-@prefix ldp: <http://www.w3.org/ns/ldp#>.
-
-<>
- a ldp:BasicContainer;
- dcterms:title "A very simple container";
- ldp:contains <r1>, <r2>, <r3>.</pre></div>
-
- <!-- TODO: consider if basic container diagram helps, if so...add for other cases too
- <figure id="fig-ldpc-basic">
- <img src="images/ldpc-basic.png" alt="Sample Linked Data Platform Basic Container" />
- <figcaption>Sample of Linked Data Platform Basic Container</figcaption>
- </figure>
- -->
-
- <p>This example is very straightforward - there is the containment triple
- with subject of the container, predicate of
- <code>ldp:contains</code> and objects indicating the URIs of the contained resources.
- A POST to this container will create a new resource
- and add it to the list of contained resources by adding a new containment triple
- to the container. This type of container is also referred to as
- <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-basic-container" class="internalDFN">Linked Data Platform Basic Container</a>.</p>
-
- <p>Sometimes it is useful to use a subject
- other than the container itself as the consistent membership value, and/or to use
- a predicate from an application's domain model as the membership predicate. Let's
- start with a domain resource for a person's net worth, as illustrated below:</p>
-
-<div class="example"><div class="example-title"><span>Example 2</span></div><pre class="example" id="ldpc-ex-membership-partial"># The following is a partial representation of
-# http://example.org/netWorth/nw1
-<!-- @base is here only so it's easier to paste into validators for checking -->
-# @base <http://example.org/netWorth/nw1/>
-@prefix ldp: <http://www.w3.org/ns/ldp#>.
-@prefix o: <http://example.org/ontology/>.
-<>
- a o:NetWorth;
- o:netWorthOf <http://example.org/users/JohnZSmith>;
- o:asset
- <assetContainer/a1>,
- <assetContainer/a2>;
- o:liability
- <liabilityContainer/l1>,
- <liabilityContainer/l2>,
- <liabilityContainer/l3>.</pre></div>
- <p>From this example, there is a <code>rdf:type</code> of <code>o:NetWorth</code> indicating the
- resource represents an instance of a person's net worth and <code>o:netWorthOf</code> predicate indicating
- the associated person. There are two sets of same-subject, same-predicate pairings; one for assets and
- one for liabilities. It would be helpful to be able to associate these multi-valued sets using a URL
- for them to assist with managing these, this is done by associating containers with them as
- illustrated in the set of related examples (one example per HTTP resource) below:
- </p>
-
-<div class="example"><div class="example-title"><span>Example 3</span></div><pre class="example" id="ldpc-ex-membership-full"># The following is an elaborated representation of LDPR
-# http://example.org/netWorth/nw1
-<!-- @base is here only so it's easier to paste into validators for checking -->
-# @base <http://example.org/netWorth/nw1/>.
-@prefix ldp: <http://www.w3.org/ns/ldp#>.
-@prefix dcterms: <http://purl.org/dc/terms/>.
-@prefix o: <http://example.org/ontology/>.
-<>
- a o:NetWorth;
- o:netWorthOf <http://example.org/users/JohnZSmith>;
- o:asset
- <assetContainer/a1>,
- <assetContainer/a2>;
- o:liability
- <liabilityContainer/l1>,
- <liabilityContainer/l2>,
- <liabilityContainer/l3>.</pre></div>
-
-<div class="example"><div class="example-title"><span>Example 4</span></div><pre class="example" id="ldpc-ex-membership-subj"># The following is an elaborated representation of LDPC
-# http://example.org/netWorth/nw1/assetContainer/
-<!-- @base is here only so it's easier to paste into validators for checking -->
-# @base <http://example.org/netWorth/nw1/assetContainer/>.
-@prefix ldp: <http://www.w3.org/ns/ldp#>.
-@prefix dcterms: <http://purl.org/dc/terms/>.
-@prefix o: <http://example.org/ontology/>.
-<>
- a ldp:DirectContainer;
- dcterms:title "The assets of JohnZSmith";
- ldp:membershipResource <http://example.org/netWorth/nw1/>;
- ldp:hasMemberRelation o:asset;
- ldp:contains <a1>, <a2>.</pre></div>
-
-<div class="example"><div class="example-title"><span>Example 5</span></div><pre class="example" id="ldpc-ex-membership-full-liabcont"># The following is an elaborated representation of LDPC
-# http://example.org/netWorth/nw1/liabilityContainer/
-<!-- @base is here only so it's easier to paste into validators for checking -->
-# @base <http://example.org/netWorth/nw1/liabilityContainer/>.
-@prefix ldp: <http://www.w3.org/ns/ldp#>.
-@prefix dcterms: <http://purl.org/dc/terms/>.
-@prefix o: <http://example.org/ontology/>.
-<>
- a ldp:DirectContainer;
- dcterms:title "The liabilities of JohnZSmith";
- ldp:membershipResource <http://example.org/netWorth/nw1/>;
- ldp:hasMemberRelation o:liability;
- ldp:contains <l1>, <l2>, <l3>.</pre></div>
-
- <p>The essential structure of the container is
- the same, but in this example, the consistent membership value
- (<a title="Membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">membership-constant-URI</a>, still in the subject position) is not the
- container itself – it is a separate net worth resource. The
- membership predicates are <code>o:asset</code> and <code>o:liability</code> – predicates
- from the domain model. A POST of an asset representation to the asset container will create a new
- asset and add it to the list of members by adding a new membership triple
- to the resource and containment triple to the container. You might wonder why
- <code>http://example.org/netWorth/nw1</code> isn't made a container itself and POST
- the new asset directly there. That would be a fine design if <code>http://example.org/netWorth/nw1</code>
- had only assets, but if it has separate predicates for assets and liabilities,
- that design will not work because it is unspecified to which predicate the POST
- should add a membership triple. Having separate <code>http://example.org/netWorth/nw1/assetContainer/</code>
- and <code>http://example.org/netWorth/nw1/liabilityContainer/</code> container
- resources allows both assets and liabilities to be created.
- </p>
- <p>This type of container is referred to as an <a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">LDP Direct Container</a>.
- <a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">LDP Direct Container</a> adds the concept of <a title="Membership" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership" class="internalDFN">membership</a>
- and flexibilty on how to specify the <a title="Membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">membership triples</a>.
- </p>
-
- <p>As seen in the <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-ex-membership-subj"><code>assetContainer/</code> example</a>,
- clients cannot correctly guess
- at the membership triples, so the example includes this information in
- triples whose subject is the <abbr title="Linked Data Platform Container">LDPC</abbr> resource itself.
- </p>
-
- <p>Alternatively, servers may provide the net worth resource and supporting containers in a single response
- representations. When doing this, a preference would be for <abbr title="Resource Description Framework">RDF</abbr> formats that support multiple named graphs, one
- named graph for the net worth resource and then two others for asset and liability containers. This allows for
- the membership triples to be represented with the named graph for the net worth resource, while the containment triples
- would be represented within the liability and asset containers [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-rdf11-concepts">rdf11-concepts</a></cite>]. Generally, the membership triples belong
- to the representation of an <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> and the containment triples belong to the representation of the <abbr title="Linked Data Platform Container">LDPC</abbr>.
- </p>
-
- <p>Additionally, we could extend our net worth example to include a container for
- advisors (people) that have managed the assets and liabilities. We have decided
- to identify these advisors with URLs that contain a fragment (hash) to represent
- these real-world resources, not the documents that describe them.</p>
-
-<div class="example"><div class="example-title"><span>Example 6</span></div><pre class="example" id="ldpc-ex-membership-full-elab"># The following is an elaborated representation of
-# http://example.org/netWorth/nw1
-# Adding o:advisor but eaving off o:asset and o:liability for brevity.
-<!-- @base is here only so it's easier to paste into validators for checking -->
-# @base <http://example.org/netWorth/nw1/>
-@prefix ldp: <http://www.w3.org/ns/ldp#>.
-@prefix dcterms: <http://purl.org/dc/terms/>.
-@prefix foaf: <http://xmlns.com/foaf/0.1/>.
-@prefix o: <http://example.org/ontology/>.
-<>
- a o:NetWorth;
- o:netWorthOf <http://example.org/users/JohnZSmith>;
- o:advisor
- <advisorContainer/bob#me>,
- <advisorContainer/marsha#me>.
-
-<advisorContainer/>
- a ldp:IndirectContainer;
- dcterms:title "The asset advisors of JohnZSmith";
- ldp:membershipResource <>;
- ldp:hasMemberRelation o:advisor;
- ldp:insertedContentRelation foaf:primaryTopic;
- ldp:contains
- <advisorContainer/bob>,
- <advisorContainer/marsha>.</pre></div>
-
- <p>To handle this type of indirection, the triple with predicate of <code>ldp:insertedContentRelation</code> and object of
- <code>foaf:primaryTopic</code> informs clients that when POSTing to this container, they need to include a triple of the
- form <code>(<>, foaf:primaryTopic, topic-URI)</code> to inform the server which URI to use
- (<code>topic-URI</code>) in the new membership triple.</p>
-
- <p>This type of container is also referred to as a <a title="Linked Data Platform Indirect Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-indirect-container" class="internalDFN">LDP Indirect Container</a>.
- It is similar to an <a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">LDP Direct Container</a>
- but it provides an indirection to add (via a create request) as member any resource,
- such as a URI representing a real-world object,
- that is different from the document that is created.</p>
-
- <p><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#fig-ldpc-types" class="fig-ref">Fig. <span class="figno">3</span> <span class="fig-title">Class relationship of types of Linked Data Platform Containers</span></a> illustrates the 3 types: Container, Basic Container and Direct Container, along
- with their class relationship to types of <abbr title="Linked Data Platform Resources">LDPRs</abbr>.</p>
-
- <figure id="fig-ldpc-types">
- <img src="images/ldpc-hierarchy.png" alt="Types of Linked Data Platform Containers">
- <figcaption>Fig. <span class="figno">3</span> <span class="fig-title">Class relationship of types of Linked Data Platform Containers</span></figcaption>
- </figure>
-
- <p>The following table illustrates some differences between <a title="membership" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership" class="internalDFN">membership</a> and
- <a title="containment" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-containment" class="internalDFN">containment</a> triples. For details on the normative behavior, see appropriate sections
- below.
- </p>
- <table border="1" id="ldpc-mbrcntdiff">
- <thead><tr><th rowspan="2">Completed Request</th><th colspan="2">Effects</th></tr>
- <tr class="oddrow"><th>Membership</th><th>Containment</th></tr></thead>
- <tbody><tr><td><abbr title="Linked Data Platform Resource">LDPR</abbr> created in <abbr title="Linked Data Platform Basic Container">LDP-BC</abbr></td><td>New triple: (<abbr title="Linked Data Platform Container">LDPC</abbr>, ldp:contains, <abbr title="Linked Data Platform Resource">LDPR</abbr>)</td><td>Same</td></tr>
- <tr><td><abbr title="Linked Data Platform Resource">LDPR</abbr> created in <abbr title="Linked Data Platform Direct Container">LDP-DC</abbr></td><td>New triple links <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> to created <abbr title="Linked Data Platform Resource">LDPR</abbr>. <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> URI may be same as <abbr title="Linked Data Platform Direct Container">LDP-DC</abbr></td>
- <td>New triple: (<abbr title="Linked Data Platform Container">LDPC</abbr>, ldp:contains, <abbr title="Linked Data Platform Resource">LDPR</abbr>)</td></tr>
- <tr><td><abbr title="Linked Data Platform Resource">LDPR</abbr> created in <abbr title="Linked Data Platform Indirect Container">LDP-IC</abbr></td><td>New triple links <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> to content indicated URI</td>
- <td>New triple: (<abbr title="Linked Data Platform Container">LDPC</abbr>, ldp:contains, <abbr title="Linked Data Platform Resource">LDPR</abbr>)</td></tr>
- <tr><td><abbr title="Linked Data Platform Resource">LDPR</abbr> is deleted</td><td>Membership triple may be removed</td><td>(<abbr title="Linked Data Platform Container">LDPC</abbr>, ldp:contains, <abbr title="Linked Data Platform Resource">LDPR</abbr>) triple is removed
- </td></tr>
- <tr><td><abbr title="Linked Data Platform Container">LDPC</abbr> is deleted</td><td>Triples and member resources may be removed</td><td>Triples of form
- (<abbr title="Linked Data Platform Container">LDPC</abbr>, ldp:contains, <abbr title="Linked Data Platform Resource">LDPR</abbr>) and contained <abbr title="Linked Data Platform Resources">LDPRs</abbr> may be removed</td></tr>
- </tbody></table>
-
-<section id="ldpc-get_empty-container_props" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_ldpc-get_empty-container_props"><span class="secno">5.1.1 </span>Retrieving Only Empty-Container Triples
- </h4><!-- Was 5.1.1 / #ldpc-get_empty-container_props -->
- <p>The representation of a container
- that has many members will be large. There are several important
- cases where clients need to access only the subset of the container's properties
- that are unrelated to member resources and unrelated to contained documents, for
- example to determine the membership triple pattern and membership predicate of an
- <abbr title="Linked Data Platform Direct Container">LDP-DC</abbr>. LDP calls these <a title="Empty-container triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-empty-container-triples" class="internalDFN">empty-container triples</a>,
- because they are what remains when the container has zero members and zero contained resources.
- Since retrieving the whole container representation to
- get this information may be onerous for clients and cause unnecessary
- overhead on servers, we define a way to retrieve only
- these property values (and more generally, a way to retrieve only the
- subset of properties used to address other major clusters of use cases).
- LDP adds parameters to the HTTP <code>Prefer</code> header's
- <code>return=representation</code> preference for this
- (see <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#prefer-parameters" class="sectionRef sec-ref">section <span class="secno">7.2</span> <span class="sec-title">Preferences on the Prefer Request Header</span></a> for details).
- </p>
- <p>The example listed here only shows
- a simple case where few empty-container triples are
- retrieved. In real world situations more complex cases are likely, such as those that add other predicates to
- containers, for example providing validation information and
- associating <abbr title="SPARQL Protocol and RDF Query Language">SPARQL</abbr> endpoints. [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-sparql11-query">sparql11-query</a></cite>]</p>
- <p>
- Here is an example requesting the empty-container triples of a
- container identified by the URL <code>http://example.org/container1/</code>.
- </p>
-<p id="ldpc-ex-empty-container">Request:</p>
-<div class="example"><div class="example-title"><span>Example 7</span></div><pre class="example">GET /container1 HTTP/1.1
-Host: example.org
-Accept: text/turtle; charset=UTF-8
-Prefer: return=representation; include="http://www.w3.org/ns/ldp#PreferEmptyContainer"</pre></div>
-<p>Response:</p>
-<div class="example"><div class="example-title"><span>Example 8</span></div><pre class="example">HTTP/1.1 200 OK
-Content-Type: text/turtle; charset=UTF-8
-ETag: "_87e52ce291112"
-Content-Length: 325
-Link: <http://www.w3.org/ns/ldp#Container>; rel="type"
-Preference-Applied: return=representation
-
-@prefix dcterms: <http://purl.org/dc/terms/>.
-@prefix ldp: <http://www.w3.org/ns/ldp#>.
-
-<http://example.org/container1/>
- a ldp:DirectContainer;
- dcterms:title "A Linked Data Platform Container of Acme Resources";
- ldp:membershipResource <http://example.org/container1/>;
- ldp:hasMemberRelation ldp:member;
- ldp:insertedContentRelation ldp:MemberSubject;
- dcterms:publisher <http://acme.com/>.</pre></div>
-
- <p>
- LDP recommends using PATCH to update these properties, if necessary. It provides no facility
- for updating them via PUT without replacing the entire container's state.
- </p>
- </section><!-- ldpc-get_empty-container_props -->
-
-</section>
-
-<section id="ldpc-container" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h3 aria-level="2" role="heading" id="h3_ldpc-container"><span class="secno">5.2 </span>Container</h3>
-<p>The following section contains normative clauses for <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-container" class="internalDFN">Linked Data Platform Container</a>.</p>
-
-<section id="ldpc-general" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_ldpc-general"><span class="secno">5.2.1 </span>General</h4>
- <p>The Linked Data Platform does not define how clients
- discover <dfn id="dfn-linked-data-platform-containers"><abbr title="Linked Data Platform Containers">LDPCs</abbr></dfn>.</p>
-
- <section id="ldpc-isldpr" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-isldpr"><span class="secno">5.2.1.1 </span>Each <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-container" class="internalDFN">Linked Data Platform Container</a> <em class="rfc2119" title="MUST">MUST</em> also be
- a conforming <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN">Linked Data Platform <abbr title="Resource Description Framework">RDF</abbr> Source</a>. <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP client</a>s <em class="rfc2119" title="MAY">MAY</em> infer the following triple:
- whose subject is <code>ldp:Container</code>,
- whose predicate is <code>rdfs:subClassOf</code>,
- and whose object is <code>ldp:RDFSource</code>,
- but there is no requirement to materialize this triple in the <abbr title="Linked Data Platform Container">LDPC</abbr> representation.
- </h5></section><!-- Was 5.2.1 / #ldpc-5_2_1 -->
-
- <section id="ldpc-typecontainer" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-typecontainer"><span class="secno">5.2.1.2 </span>The representation of an <abbr title="Linked Data Platform Container">LDPC</abbr> <em class="rfc2119" title="MAY">MAY</em> have an <code>rdf:type</code>
- of only one of <code>ldp:Container</code> for <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-container" class="internalDFN">Linked Data Platform Container</a>.
- Non-normative note: <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldp-rdfconcepts-extra-triples-types"><abbr title="Linked Data Platform Containers">LDPCs</abbr>
- might have additional types</a>, like any <a title="Linked Data Platform RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN"><abbr title="Linked Data Platform RDF Source">LDP-RS</abbr></a>.
- </h5></section><!-- Was 5.2.7 / #ldpc-5_2_7 -->
-
- <section id="ldpc-nordfcontainertypes" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-nordfcontainertypes"><span class="secno">5.2.1.3 </span><abbr title="Linked Data Platform Container">LDPC</abbr> representations <em class="rfc2119" title="SHOULD NOT">SHOULD NOT</em> use <abbr title="Resource Description Framework">RDF</abbr> container types <code>rdf:Bag</code>,
- <code>rdf:Seq</code> or <code>rdf:List</code>.
- </h5></section><!-- Was 5.2.8 / #ldpc-5_2_8 -->
-
- <section id="ldpc-linktypehdr" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-linktypehdr"><span class="secno">5.2.1.4 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a>
- exposing <abbr title="Linked Data Platform Containers">LDPCs</abbr>
- <em class="rfc2119" title="MUST">MUST</em> advertise their LDP support by exposing a HTTP <code>Link</code> header
- with a target URI matching the type of container (see below) the
- server supports, and
- a link relation type of <code>type</code> (that is, <code>rel='type'</code>)
- in all responses to requests made
- to the <abbr title="Linked Data Platform Container">LDPC</abbr>'s HTTP <code>Request-URI</code>.
- <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MAY">MAY</em> provide additional HTTP <code>Link: rel='type'</code> headers.
- The <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-gen-linktypehdr">notes on the corresponding <abbr title="Linked Data Platform Resource">LDPR</abbr> constraint</a> apply
- equally to <abbr title="Linked Data Platform Containers">LDPCs</abbr>.
- </h5>
- <p>Valid container type URIs for <code>rel='type'</code> defined by this document are:
- </p><ul>
- <li><code>http://www.w3.org/ns/ldp#BasicContainer</code> - for <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpbc">LDP Basic Containers</a></li>
- <li><code>http://www.w3.org/ns/ldp#DirectContainer</code> - for <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpdc">LDP Direct Containers</a></li>
- <li><code>http://www.w3.org/ns/ldp#IndirectContainer</code> - for <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpic">LDP Indirect Containers</a></li>
- </ul>
- <p></p>
- </section><!-- Was 5.2.11 / #ldpc-5_2_11 -->
-
- <section id="ldpc-prefer" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-prefer"><span class="secno">5.2.1.5 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a>
- <em class="rfc2119" title="SHOULD">SHOULD</em> respect all of a client's LDP-defined hints, for example
- <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#prefer-parameters">which subsets of LDP-defined state</a>
- the client is interested in processing,
- to influence the set of triples returned in representations of an <abbr title="Linked Data Platform Container">LDPC</abbr>,
- particularly for large <abbr title="Linked Data Platform Containers">LDPCs</abbr>. See also [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-LDP-PAGING">LDP-PAGING</a></cite>].
- </h5></section>
-
-</section>
-
-<section id="ldpc-HTTP_GET" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_ldpc-HTTP_GET"><span class="secno">5.2.2 </span>HTTP GET</h4>
- <p>
- Per <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-HTTP_GET" class="sectionRef sec-ref">section <span class="secno">4.2.2</span> <span class="sec-title">HTTP GET</span></a> the HTTP GET method is required and
- additional requirements can be found in <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-general" class="sectionRef sec-ref">section <span class="secno">5.2.1</span> <span class="sec-title">General</span></a>.
- </p>
-
-</section>
-
-<section id="ldpc-HTTP_POST" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_ldpc-HTTP_POST"><span class="secno">5.2.3 </span>HTTP POST</h4>
- <p>
- Per [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>], this HTTP method is optional and
- this specification does not require <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> to support it.
- When an LDP server supports this method,
- this specification imposes the following new requirements for <abbr title="Linked Data Platform Containers">LDPCs</abbr>.
- </p>
-
- <p>
- Any server-imposed constraints on creation or update
- <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-gen-pubclireqs">must be advertised</a> to clients.
- </p>
-
- <section id="ldpc-post-created201" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-created201"><span class="secno">5.2.3.1 </span><abbr title="Linked Data Platform Container">LDPC</abbr> clients <em class="rfc2119" title="SHOULD">SHOULD</em> create member resources by submitting a representation as
- the entity body of the HTTP <code>POST</code> to a known <abbr title="Linked Data Platform Container">LDPC</abbr>. If the resource was created successfully, <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em>
- respond with status code 201 (Created) and the <code>Location</code>
- header set to the new resource’s URL. Clients shall not expect any representation in the response
- entity body on a 201 (Created) response.
- </h5></section><!-- Was 5.4.1 / #ldpc-5_4_1 -->
-
- <section id="ldpc-post-createdmbr-contains" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-createdmbr-contains"><span class="secno">5.2.3.2 </span>
- When a successful HTTP <code>POST</code> request to an <abbr title="Linked Data Platform Container">LDPC</abbr> results in the creation of an <abbr title="Linked Data Platform Resource">LDPR</abbr>, a
- <a title="Containment triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-containment-triples" class="internalDFN">containment triple</a> <em class="rfc2119" title="MUST">MUST</em> be added to the state of <abbr title="Linked Data Platform Container">LDPC</abbr>. The
- <a title="Containment triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-containment-triples" class="internalDFN">containment triple</a> whose subject is the <abbr title="Linked Data Platform Container">LDPC</abbr> URI,
- whose predicate is <code>ldp:contains</code> and whose object is the URI for the newly created document (<abbr title="Linked Data Platform Resource">LDPR</abbr>).
- The newly created <abbr title="Linked Data Platform Resource">LDPR</abbr> appears as a contained resource of the <abbr title="Linked Data Platform Container">LDPC</abbr> until the
- newly created document is deleted or removed by other methods. Other triples may be added as well.
- </h5></section>
-
- <section id="ldpc-post-createbins" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-createbins"><span class="secno">5.2.3.3 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MAY">MAY</em> accept an HTTP <code>POST</code> of non-<abbr title="Resource Description Framework">RDF</abbr> representations
- <a title="Linked Data Platform Non-RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-non-rdf-source" class="internalDFN">(LDP-NRs)</a> for
- creation of any kind of resource, for example binary resources. See <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-post-acceptposthdr">the Accept-Post section</a> for
- details on how clients can discover whether an <abbr title="Linked Data Platform Container">LDPC</abbr> supports this behavior.
- </h5></section><!-- Was 5.4.3 / #ldpc-5_4_3 -->
-
- <section id="ldpc-post-createrdf" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-createrdf"><span class="secno">5.2.3.4 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> that successfully create a resource from a
- <abbr title="Resource Description Framework">RDF</abbr> representation in the request entity body <em class="rfc2119" title="MUST">MUST</em> honor the client's requested interaction model(s). The created resource
- can be thought of as an <abbr title="Resource Description Framework">RDF</abbr> <a href="http://www.w3.org/TR/rdf11-concepts/#dfn-named-graph">named graph</a> [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-rdf11-concepts">rdf11-concepts</a></cite>].
- If any model cannot be honored, the server <em class="rfc2119" title="MUST">MUST</em> fail the request.
- </h5><!-- Was 5.4.4 / #ldpc-5_4_4 -->
- <ul>
- <li>If the request header <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-gen-linktypehdr">specifies an <abbr title="Linked Data Platform Resource">LDPR</abbr> interaction model</a>, then the server <em class="rfc2119" title="MUST">MUST</em> handle subsequent
- requests to the newly created resource's URI as if it is an <abbr title="Linked Data Platform Resource">LDPR</abbr>.
- (even if the content contains an <code>rdf:type</code> triple indicating a type of <abbr title="Linked Data Platform Container">LDPC</abbr>).</li>
- <li>If the request header <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-linktypehdr">specifies an <abbr title="Linked Data Platform Container">LDPC</abbr> interaction model</a>, then the server <em class="rfc2119" title="MUST">MUST</em> handle subsequent
- requests to the newly created resource's URI as if it is an <abbr title="Linked Data Platform Container">LDPC</abbr>.
- </li>
- <li>This specification does not constrain the server's behavior in other cases.</li>
- <p>Note: A consequence of this is that <abbr title="Linked Data Platform Containers">LDPCs</abbr> can be used to create <abbr title="Linked Data Platform Containers">LDPCs</abbr>, if the server supports doing so.</p>
- </ul>
- </section>
-
- <section id="ldpc-post-turtle" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-turtle"><span class="secno">5.2.3.5 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> accept a request entity body with a request header
- of <code>Content-Type</code> with value of <code>text/turtle</code> [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-turtle">turtle</a></cite>].
- </h5></section><!-- Was 5.4.5 / #ldpc-5_4_5 -->
-
- <section id="ldpc-post-contenttype" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-contenttype"><span class="secno">5.2.3.6 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="SHOULD">SHOULD</em> use the <code>Content-Type</code> request header
- to determine the representation format when the request has an entity body.
- </h5></section><!-- Was 5.4.6 / #ldpc-5_4_6 -->
-
- <section id="ldpc-post-rdfnullrel" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-rdfnullrel"><span class="secno">5.2.3.7 </span>In <abbr title="Resource Description Framework">RDF</abbr> representations, <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> interpret the null relative
- URI for the subject of triples in the <abbr title="Linked Data Platform Resource">LDPR</abbr> representation in the
- request entity body as referring to the entity in the request body.
- Commonly, that entity is the model for the “to be created” <abbr title="Linked Data Platform Resource">LDPR</abbr>, so
- triples whose subject is the null relative URI will usually result in
- triples in the created resource whose subject is the created
- resource.
- </h5></section><!-- Was 5.4.7 / #ldpc-5_4_7 -->
-
- <section id="ldpc-post-serverassignuri" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-serverassignuri"><span class="secno">5.2.3.8 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="SHOULD">SHOULD</em> assign the URI for the resource to be
- created using server application specific rules in the absence of a <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-post-slug">client hint</a>.
- </h5></section><!-- Was 5.4.8 / #ldpc-5_4_8 -->
-
- <section id="ldpc-post-mincontraints" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-mincontraints"><span class="secno">5.2.3.9 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="SHOULD">SHOULD</em> allow clients to create new resources without
- requiring detailed knowledge of application-specific constraints.
- This is a consequence of the requirement to enable simple creation and modification of <abbr title="Linked Data Platform Resources">LDPRs</abbr>. LDP servers
- expose these application-specific constraints as described in <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-general" class="sectionRef sec-ref">section <span class="secno">4.2.1</span> <span class="sec-title">General</span></a>.
- </h5></section><!-- Was 5.4.9 / #ldpc-5_4_9 -->
-
- <section id="ldpc-post-slug" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-slug"><span class="secno">5.2.3.10 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MAY">MAY</em> allow clients to suggest the URI for a resource
- created through <code>POST</code>, using the HTTP <code>Slug</code> header as defined in [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC5023">RFC5023</a></cite>]. LDP adds
- no new requirements to this usage, so its presence functions as a client hint to the server
- providing a desired string to be incorporated into the server's final choice of resource URI.
- </h5></section><!-- Was 5.4.10 / #ldpc-5_4_10 -->
-
- <section id="ldpc-post-dontreuseuris" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-dontreuseuris"><span class="secno">5.2.3.11 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> that allow member creation via <code>POST</code>
- <em class="rfc2119" title="SHOULD NOT">SHOULD NOT</em> re-use URIs.
- </h5></section><!-- Was 5.4.11 / #ldpc-5_4_11 -->
-
- <section id="ldpc-post-createbinlinkmetahdr" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-createbinlinkmetahdr"><span class="secno">5.2.3.12 </span>Upon successful creation of an
- <a title="Linked Data Platform Non-RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-non-rdf-source" class="internalDFN"><abbr title="Linked Data Platform Non-RDF Source">LDP-NR</abbr></a> (HTTP status code of
- 201-Created and URI indicated by <code>Location</code> response header), <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MAY">MAY</em> create an associated
- <a title="Linked Data Platform RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN"><abbr title="Linked Data Platform RDF Source">LDP-RS</abbr></a>
- to contain data about the newly created <abbr title="Linked Data Platform Non-RDF Source">LDP-NR</abbr>. If an <abbr title="Linked Data Platform Container">LDPC</abbr> server creates this associated <a title="Linked Data Platform RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN"><abbr title="Linked Data Platform RDF Source">LDP-RS</abbr></a> it <em class="rfc2119" title="MUST">MUST</em> indicate
- its location on the HTTP response using the HTTP <code>Link</code> response header with link relation <code>describedby</code>
- and <code>href</code> to be the URI of the associated <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> resource [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC5988">RFC5988</a></cite>].
- </h5></section><!-- Was 5.4.12 / #ldpc-5_4_12 -->
-
- <section id="ldpc-post-acceptposthdr" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-acceptposthdr"><span class="secno">5.2.3.13 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> that support <code>POST</code> <em class="rfc2119" title="MUST">MUST</em>
- include an <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#header-accept-post"><code>Accept-Post</code> response header</a> on HTTP <code>OPTIONS</code>
- responses, listing post document media type(s) supported by the server.
- LDP only specifies the use of <code>POST</code> for the purpose of creating new resources, but a server
- can accept <code>POST</code> requests with other semantics.
- While "POST to create" is a common interaction pattern, LDP clients are not guaranteed, even when
- making requests to an LDP server, that every successful <code>POST</code> request will result in the
- creation of a new resource; they must rely on out of band information for knowledge of which <code>POST</code> requests,
- if any, will have the "create new resource" semantics.
- This requirement on LDP servers is intentionally stronger than the one levied in the
- <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#header-accept-post">header registration</a>; it is unrealistic to expect all existing resources
- that support <code>POST</code> to suddenly return a new header or for all new specifications constraining
- <code>POST</code> to be aware of its existence and require it, but it is a reasonable requirement for new
- specifications such as LDP.
- </h5></section><!-- Was 5.4.13 / #ldpc-5_4_13 -->
-
-</section>
-
-<section id="ldpc-HTTP_PUT" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_ldpc-HTTP_PUT"><span class="secno">5.2.4 </span>HTTP PUT</h4>
- <p>
- Per [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>], this HTTP method is optional and
- this specification does not require <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> to support it.
- When an LDP server supports this method,
- this specification imposes the following new requirements for <abbr title="Linked Data Platform Containers">LDPCs</abbr>.
- </p>
-
- <p>
- Any server-imposed constraints on creation or update
- <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-gen-pubclireqs">must be advertised</a> to clients.
- </p>
-
- <section id="ldpc-put-mbrprops" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-put-mbrprops"><span class="secno">5.2.4.1 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="SHOULD NOT">SHOULD NOT</em> allow HTTP <code>PUT</code> to update an <abbr title="Linked Data Platform Container">LDPC</abbr>’s <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-containment-triples" class="internalDFN">containment triples</a>;
- if the server receives such a request, it <em class="rfc2119" title="SHOULD">SHOULD</em> respond with a 409
- (Conflict) status code.
- </h5></section><!-- Was 5.5.1 / #ldpc-5_5_1 -->
-
- <section id="ldpc-put-create" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-put-create"><span class="secno">5.2.4.2 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> that allow <abbr title="Linked Data Platform Resource">LDPR</abbr> creation via <code>PUT</code>
- <em class="rfc2119" title="SHOULD NOT">SHOULD NOT</em> re-use URIs. For <abbr title="Resource Description Framework">RDF</abbr> representations (LDP-RSs),the created resource
- can be thought of as an <abbr title="Resource Description Framework">RDF</abbr> <a href="http://www.w3.org/TR/rdf11-concepts/#dfn-named-graph">named graph</a> [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-rdf11-concepts">rdf11-concepts</a></cite>].
- </h5></section><!-- Was 5.5.4 / #ldpc-5_5_4 -->
-
-</section>
-
-<section id="ldpc-HTTP_DELETE" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_ldpc-HTTP_DELETE"><span class="secno">5.2.5 </span>HTTP DELETE</h4>
- <p>
- Per [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>], this HTTP method is optional and
- this specification does not require <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> to support it.
- When an LDP server supports this method,
- this specification imposes the following new requirements for <abbr title="Linked Data Platform Containers">LDPCs</abbr>.
- </p>
-
- <section id="ldpc-del-contremovesconttriple" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-del-contremovesconttriple"><span class="secno">5.2.5.1 </span>
- When an <abbr title="Linked Data Platform Resource">LDPR</abbr> identified by the object of a <a title="containment triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-containment-triples" class="internalDFN">containment triple</a> is deleted, the <abbr title="Linked Data Platform Container">LDPC</abbr> server <em class="rfc2119" title="MUST">MUST</em> also remove
- the <abbr title="Linked Data Platform Resource">LDPR</abbr> from the containing <abbr title="Linked Data Platform Container">LDPC</abbr> by removing the corresponding containment triple.
- </h5>
- <blockquote>
- Non-normative note: The <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP server</a> might perform additional actions,
- as described in the <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldp-http-method-side-effects">normative references</a> like [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>].
- For example, the server could perform additional cleanup tasks for resources it knows are no longer referenced or have not
- been accessed for some period of time.
- </blockquote>
- </section><!-- Was 5.6.1 / #ldpc-5_6_1 -->
-
- <section id="ldpc-del-contremovescontres" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-del-contremovescontres"><span class="secno">5.2.5.2 </span>
- When an <abbr title="Linked Data Platform Resource">LDPR</abbr> identified by the object of a <a title="containment triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-containment-triples" class="internalDFN">containment triple</a> is deleted, and the <abbr title="Linked Data Platform Container">LDPC</abbr> server
- created an associated <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> (see the <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-post-createbinlinkmetahdr"><abbr title="Linked Data Platform Container">LDPC</abbr> POST section</a>), the <abbr title="Linked Data Platform Container">LDPC</abbr> server <em class="rfc2119" title="MUST">MUST</em> also remove the associated <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> it created.
- </h5></section><!-- Was 5.6.4 / #ldpc-5_6_4 -->
-
-</section>
-
-<section id="ldpc-HTTP_HEAD" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_ldpc-HTTP_HEAD"><span class="secno">5.2.6 </span>HTTP HEAD</h4>
- <p>Note that certain LDP mechanisms
- rely on HTTP headers, and HTTP generally requires that
- <code>HEAD</code> responses include the same headers as <code>GET</code> responses. Also <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> must also include HTTP headers
- on response to <code>OPTIONS</code>, see <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-HTTP_OPTIONS" class="sectionRef sec-ref">section <span class="secno">4.2.8</span> <span class="sec-title">HTTP OPTIONS</span></a>.
- Thus, implementers supporting <code>HEAD</code> should also carefully read the
- <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-HTTP_GET" class="sectionRef sec-ref">section <span class="secno">5.2.2</span> <span class="sec-title">HTTP GET</span></a> and <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-HTTP_OPTIONS" class="sectionRef sec-ref">section <span class="secno">5.2.8</span> <span class="sec-title">HTTP OPTIONS</span></a>.</p>
-</section>
-
-<section id="ldpc-HTTP_PATCH" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_ldpc-HTTP_PATCH"><span class="secno">5.2.7 </span>HTTP PATCH</h4>
- <p>
- Per [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>], this HTTP method is optional and
- this specification does not require <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> to support it.
- When an LDP server supports this method,
- this specification imposes the following new requirements for <abbr title="Linked Data Platform Containers">LDPCs</abbr>.
- </p>
-
- <p>
- Any server-imposed constraints on <abbr title="Linked Data Platform Resource">LDPR</abbr> creation or update
- <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-gen-pubclireqs">must be advertised</a> to clients.
- </p>
-
- <section id="ldpc-patch-req" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-patch-req"><span class="secno">5.2.7.1 </span>
- <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> are <em class="rfc2119" title="RECOMMENDED">RECOMMENDED</em>
- to support HTTP <code>PATCH</code> as the preferred method for
- updating an <abbr title="Linked Data Platform Container">LDPC</abbr>'s <a title="Empty-container triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-empty-container-triples" class="internalDFN">empty-container triples</a>.
- </h5></section><!-- Was 5.8.1 / #ldpc-5_8_1 -->
-</section>
-
-<section id="ldpc-HTTP_OPTIONS" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_ldpc-HTTP_OPTIONS"><span class="secno">5.2.8 </span>HTTP OPTIONS</h4>
- <p>This specification imposes the following new requirements on HTTP <code>OPTIONS</code> for <abbr title="Linked Data Platform Containers">LDPCs</abbr>.
- </p>
-
- <section id="ldpc-options-linkmetahdr" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-options-linkmetahdr"><span class="secno">5.2.8.1 </span>When an <abbr title="Linked Data Platform Container">LDPC</abbr> server creates an
- <a title="Linked Data Platform Non-RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-non-rdf-source" class="internalDFN"><abbr title="Linked Data Platform Non-RDF Source">LDP-NR</abbr></a> (for example, one whose
- representation was HTTP <code>POST</code>ed to the <abbr title="Linked Data Platform Container">LDPC</abbr>)
- the LDP server might create an associated <a title="Linked Data Platform RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN"><abbr title="Linked Data Platform RDF Source">LDP-RS</abbr></a>
- to contain data about the non-<abbr title="Linked Data Platform Resource">LDPR</abbr> (see <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-post-createbinlinkmetahdr"><abbr title="Linked Data Platform Container">LDPC</abbr> POST section</a>).
- For LDP-NRs that have this associated <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr>, an <abbr title="Linked Data Platform Container">LDPC</abbr> server <em class="rfc2119" title="MUST">MUST</em> provide an HTTP <code>Link</code>
- header whose target URI is the associated <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr>, and whose link relation type is
- <code>describedby</code> [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC5988">RFC5988</a></cite>].
- </h5></section><!-- Was 5.9.2 / #ldpc-5_9_2 -->
-</section> <!-- h2 -->
-</section> <!-- ldpc-container -->
-
-<section id="ldpbc" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h3 aria-level="2" role="heading" id="h3_ldpbc"><span class="secno">5.3 </span>Basic</h3>
-
-<p>The following section contains normative clauses for <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-basic-container" class="internalDFN">Linked Data Platform Basic Container</a>.</p>
-
-
-<section id="ldpbc-general" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_ldpbc-general"><span class="secno">5.3.1 </span>General</h4>
-
-<section id="ldpbc-are-ldpcs" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpbc-are-ldpcs"><span class="secno">5.3.1.1 </span>Each <a title="Linked Data Platform Basic Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-basic-container" class="internalDFN">LDP Basic Container</a> <em class="rfc2119" title="MUST">MUST</em> also be
- a conforming <a title="Linked Data Platform Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-container" class="internalDFN">LDP Container</a> in <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-container" class="sectionRef sec-ref">section <span class="secno">5.2</span> <span class="sec-title">Container</span></a> along the
- following restrictions in this section. <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP client</a>s <em class="rfc2119" title="MAY">MAY</em> infer the following triple:
- whose subject is <code>ldp:BasicContainer</code>,
- whose predicate is <code>rdfs:subClassOf</code>,
- and whose object is <code>ldp:Container</code>,
- but there is no requirement to materialize this triple in the <abbr title="Linked Data Platform Basic Container">LDP-BC</abbr> representation.
-</h5></section>
-
-</section> <!-- ldpbc General -->
-
-</section> <!-- ldpbc Basic -->
-
-
-<section id="ldpdc" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h3 aria-level="2" role="heading" id="h3_ldpdc"><span class="secno">5.4 </span>Direct</h3>
-
-<p>The following section contains normative clauses for <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">Linked Data Platform Direct Container</a>.</p>
-
-<section id="ldpdc-general" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_ldpdc-general"><span class="secno">5.4.1 </span>General</h4>
-
-<section id="ldpdc-are-ldpcs" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpdc-are-ldpcs"><span class="secno">5.4.1.1 </span>Each <a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">LDP Direct Container</a> <em class="rfc2119" title="MUST">MUST</em> also be
- a conforming <a title="Linked Data Platform Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-container" class="internalDFN">LDP Container</a> in <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-container" class="sectionRef sec-ref">section <span class="secno">5.2</span> <span class="sec-title">Container</span></a> along the following
- restrictions. <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP client</a>s <em class="rfc2119" title="MAY">MAY</em> infer the following triple:
- whose subject is <code>ldp:BasicContainer</code>,
- whose predicate is <code>rdfs:subClassOf</code>,
- and whose object is <code>ldp:Container</code>,
- but there is no requirement to materialize this triple in the <abbr title="Linked Data Platform Direct Container">LDP-DC</abbr> representation.
-</h5></section>
-
-<section id="ldpdc-mbrpred" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpdc-mbrpred"><span class="secno">5.4.1.2 </span>
- <a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">LDP Direct Containers</a>
- <em class="rfc2119" title="SHOULD">SHOULD</em> use the <code>ldp:member</code> predicate as an <abbr title="Linked Data Platform Container">LDPC</abbr>'s <a title="Membership predicate" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-predicate" class="internalDFN">membership predicate</a>
- if there is no obvious predicate from an application vocabulary to use..
- The state of an <abbr title="Linked Data Platform Container">LDPC</abbr> includes information about which
- resources are its members, in the form of <a title="Membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">membership triples</a> that
- follow a consistent pattern. The <abbr title="Linked Data Platform Container">LDPC</abbr>'s state contains enough information for clients to discern
- the <a title="Membership predicate" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-predicate" class="internalDFN">membership predicate</a>, the other consistent membership
- value used in the container's membership triples (<var>membership-constant-URI</var>),
- and the position (subject or object) where those URIs
- occurs in the <a title="Membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">membership triples</a>.
- Member resources can be
- any kind of resource identified by a URI, <abbr title="Linked Data Platform Resource">LDPR</abbr> or otherwise.
-</h5></section><!-- Was 5.2.3 / #ldpc-5_2_3 -->
-
-<section id="ldpdc-containres" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpdc-containres"><span class="secno">5.4.1.3 </span>Each <a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">LDP Direct Container</a>
- representation <em class="rfc2119" title="MUST">MUST</em> contain exactly one triple
- whose subject is the <abbr title="Linked Data Platform Container">LDPC</abbr> URI,
- whose predicate is the <code>ldp:membershipResource</code>,
- and whose object is the <abbr title="Linked Data Platform Container">LDPC</abbr>'s <var>membership-constant-URI</var>.
- Commonly the <abbr title="Linked Data Platform Container">LDPC</abbr>'s URI is the <var>membership-constant-URI</var>, but LDP does not require this.
-</h5>
-</section><!-- Was 5.2.4 / #ldpc-5_2_4 -->
-
-<section id="ldpdc-containtriples" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpdc-containtriples"><span class="secno">5.4.1.4 </span>Each <a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">LDP Direct Container</a>
- representation <em class="rfc2119" title="MUST">MUST</em> contain exactly one triple
- whose subject is the <abbr title="Linked Data Platform Container">LDPC</abbr> URI,
- and whose predicate is either <code>ldp:hasMemberRelation</code> or <code>ldp:isMemberOfRelation</code>.
- The object of the triple is constrained by other sections, such as
- <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpdc-containtriple-relation" class="sectionRef">ldp:hasMemberRelation</a> or
- <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpdc-containtriple-byrelation" class="sectionRef">ldp:isMemberOfRelation</a>, based on the
- <a title="Membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">membership triple</a>
- pattern used by the container.
-</h5><!-- Was 5.2.5 / #ldpc-5_2_5 -->
-
-<section id="ldpdc-containtriple-relation" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h6 class="normal" aria-level="5" role="heading" id="h6_ldpdc-containtriple-relation"><span class="secno">5.4.1.4.1 </span><a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">LDP Direct Containers</a>
- whose <a title="Membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">membership triple</a>
- pattern is <var>( membership-constant-URI , membership-predicate , member-derived-URI )</var> <em class="rfc2119" title="MUST">MUST</em>
- contain exactly one triple
- whose subject is the <abbr title="Linked Data Platform Container">LDPC</abbr> URI,
- whose predicate is <code>ldp:hasMemberRelation</code>,
- and whose object is the URI of <var>membership-predicate</var>.
-</h6>
-</section><!-- Was 5.2.5.1 / #ldpc-5_2_5_1 -->
-
-<section id="ldpdc-containtriple-byrelation" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h6 class="normal" aria-level="5" role="heading" id="h6_ldpdc-containtriple-byrelation"><span class="secno">5.4.1.4.2 </span><a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">LDP Direct Containers</a>
- whose <a title="Membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">membership triple</a>
- pattern is <var>( member-derived-URI , membership-predicate , membership-constant-URI )</var> <em class="rfc2119" title="MUST">MUST</em>
- contain exactly one triple
- whose subject is the <abbr title="Linked Data Platform Container">LDPC</abbr> URI,
- whose predicate is either <code>ldp:isMemberOfRelation</code>,
- and whose object is the URI of <var>membership-predicate</var>.
-</h6></section><!-- Was 5.2.5.2 / #ldpc-5_2_5_2 -->
-</section>
-
-<section id="ldpdc-indirectmbr-basic" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpdc-indirectmbr-basic"><span class="secno">5.4.1.5 </span>
- <a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">LDP Direct Containers</a>
- <em class="rfc2119" title="MUST">MUST</em> behave as if they
- have a <var>( <abbr title="Linked Data Platform Container">LDPC</abbr> URI, <code>ldp:insertedContentRelation</code> , <code>ldp:MemberSubject</code> )</var>
- triple, but LDP imposes no requirement to materialize such a triple in the <abbr title="Linked Data Platform Direct Container">LDP-DC</abbr> representation.
- The value <code>ldp:MemberSubject</code> means that the
- <var>member-derived-URI</var> is the URI assigned by the server to a
- document it creates; for example, if the client POSTs content to a container
- that causes the container to create a new <abbr title="Linked Data Platform Resource">LDPR</abbr>, <code>ldp:MemberSubject</code> says
- that the <var>member-derived-URI</var> is the URI assigned to the newly created <abbr title="Linked Data Platform Resource">LDPR</abbr>.
-</h5></section>
-
-</section> <!-- ldpdc-general -->
-
-<section id="ldpdc-HTTP_POST" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_ldpdc-HTTP_POST"><span class="secno">5.4.2 </span>HTTP POST</h4>
- <section id="ldpdc-post-createdmbr-member" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpdc-post-createdmbr-member"><span class="secno">5.4.2.1 </span>
- When a successful HTTP <code>POST</code> request to an <abbr title="Linked Data Platform Container">LDPC</abbr> results in the creation of an <abbr title="Linked Data Platform Resource">LDPR</abbr>,
- the <abbr title="Linked Data Platform Container">LDPC</abbr> <em class="rfc2119" title="MUST">MUST</em> update its membership triples to reflect that addition, and the resulting
- membership triple <em class="rfc2119" title="MUST">MUST</em> be consistent with any LDP-defined predicates it exposes.
- A <a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">LDP Direct Container</a>'s membership triples <em class="rfc2119" title="MAY">MAY</em> also be modified via
- through other means.
- </h5></section><!-- Was 5.4.2 / #ldpc-5_4_2 -->
-</section> <!-- ldpdc-HTTP_POST -->
-
-<section id="ldpdc-HTTP_DELETE" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_ldpdc-HTTP_DELETE"><span class="secno">5.4.3 </span>HTTP DELETE</h4>
-
- <section id="ldpdc-del-contremovesmbrtriple" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpdc-del-contremovesmbrtriple"><span class="secno">5.4.3.1 </span>
- When an <abbr title="Linked Data Platform Resource">LDPR</abbr> identified by the object of a <a title="membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">membership triple</a> which was
- originally created by the <abbr title="Linked Data Platform Direct Container">LDP-DC</abbr> is deleted, the <abbr title="Linked Data Platform Container">LDPC</abbr> server <em class="rfc2119" title="MUST">MUST</em> also remove
- the corresponding membership triple..
- </h5>
- </section><!-- Was 5.6.1 / #ldpc-5_6_1 -->
-
-</section> <!-- ldpdc-HTTP_DELETE -->
-
-</section> <!-- ldpdc Direct -->
-
-<section id="ldpic" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h3 aria-level="2" role="heading" id="h3_ldpic"><span class="secno">5.5 </span>Indirect</h3>
-
-<p>The following section contains normative clauses for <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-indirect-container" class="internalDFN">Linked Data Platform Indirect Container</a>.</p>
-
-<section id="ldpic-general" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_ldpic-general"><span class="secno">5.5.1 </span>General</h4>
-
-<section id="ldpic-are-ldpcs" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpic-are-ldpcs"><span class="secno">5.5.1.1 </span>Each <a title="Linked Data Platform Indirect Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-indirect-container" class="internalDFN">LDP Indirect Container</a> <em class="rfc2119" title="MUST">MUST</em> also be
- a conforming <a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">LDP Direct Container</a> in <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpdc" class="sectionRef sec-ref">section <span class="secno">5.4</span> <span class="sec-title">Direct</span></a> along the following
- restrictions. <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP client</a>s <em class="rfc2119" title="MAY">MAY</em> infer the following triple:
- whose subject is <code>ldp:IndirectContainer</code>,
- whose predicate is <code>rdfs:subClassOf</code>,
- and whose object is <code>ldp:Container</code>,
- but there is no requirement to materialize this triple in the <abbr title="Linked Data Platform Indirect Container">LDP-IC</abbr> representation.
-</h5></section>
-
-<section id="ldpic-indirectmbr" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpic-indirectmbr"><span class="secno">5.5.1.2 </span>
- <a title="Linked Data Platform Indirect Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-indirect-container" class="internalDFN">LDP Indirect Containers</a>
- <em class="rfc2119" title="MUST">MUST</em> contain exactly one triple whose
- subject is the <abbr title="Linked Data Platform Container">LDPC</abbr> URI,
- whose predicate is <code>ldp:insertedContentRelation</code>, and
- whose object <var>ICR</var> describes how the <var>member-derived-URI</var> in
- the container's <a title="Membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">membership triples</a> is chosen.
- The <var>member-derived-URI</var> is taken from some triple
- <var>( S, P, O )</var> in the document supplied by the client as input to the create request;
- if <var>ICR</var>'s value is <var>P</var>, then the <var>member-derived-URI</var> is
- <var>O</var>. LDP does not define the behavior when more than one triple containing
- the predicate <var>P</var> is present in the client's input.
- For example, if the client POSTs <abbr title="Resource Description Framework">RDF</abbr> content to a container
- that causes the container to create a new <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr>, and that content contains the triple
- <var>( <> , foaf:primaryTopic , bob#me )</var>
- <code>foaf:primaryTopic</code> says
- that the <var>member-derived-URI</var> is <var>bob#me</var>.
- </h5>
-</section><!-- Was 5.2.10 / #ldpc-5_2_10 -->
-</section> <!-- ldpic General -->
-
-<section id="ldpic-HTTP_POST" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_ldpic-HTTP_POST"><span class="secno">5.5.2 </span>HTTP POST</h4>
- <section id="ldpic-post-indirectmbrrel" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpic-post-indirectmbrrel"><span class="secno">5.5.2.1 </span><abbr title="Linked Data Platform Containers">LDPCs</abbr>
- whose <code>ldp:insertedContentRelation</code> triple has an object
- <strong>other than</strong> <code>ldp:MemberSubject</code>
- and that create new resources
- <em class="rfc2119" title="MUST">MUST</em> add a triple to the container
- whose subject is the container's URI,
- whose predicate is <code>ldp:contains</code>, and
- whose object is the newly created resource's URI (which will be different from
- the <var><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpic-indirectmbr">member-derived URI</a></var> in this case).
- This <code>ldp:contains</code> triple can be the only link from the container to the newly created
- resource in certain cases.
- </h5></section><!-- Was 5.4.15 / #ldpc-5_4_15 -->
-</section> <!-- ldpic HTTP_POST -->
-
-</section> <!-- ldpic Indirect -->
-
-</section> <!-- h1 LDPC -->
-
-
-<section id="base-specs" class="informative" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<!--OddPage--><h2 aria-level="1" role="heading" id="h2_base-specs"><span class="secno">6. </span>Notable information from normative references</h2><p><em>This section is non-normative.</em></p>
-<p>
-While readers, and especially implementers, of LDP are assumed to understand the information in its normative
-references, the working group has found that certain points are particularly important to understand.
-For those thoroughly familiar with the referenced specifications, these points might seem obvious, yet
-experience has shown that few non-experts find all of them obvious. This section enumerates these topics;
-it is simply re-stating (non-normatively) information locatable via the normative references.
-</p>
-
-<section id="specs-webarch" class="informative" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h3 aria-level="2" role="heading" id="h3_specs-webarch"><span class="secno">6.1 </span>Architecture of the World Wide Web</h3><p><em>This section is non-normative.</em></p>
-Reference: [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-WEBARCH">WEBARCH</a></cite>]
-
- <section id="ldp-webarch-nonexcl-membership" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_ldp-webarch-nonexcl-membership"><span class="secno">6.1.1 </span><abbr title="Linked Data Platform Container">LDPC</abbr> membership is not exclusive; this means that the same resource
- (<abbr title="Linked Data Platform Resource">LDPR</abbr> or not) can be a member of more than one <abbr title="Linked Data Platform Container">LDPC</abbr>.
- </h4></section>
-
- <section id="ldp-webarch-uri-reuse" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_ldp-webarch-uri-reuse"><span class="secno">6.1.2 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> should not re-use URIs,
- regardless of the mechanism by which members are created (<code>POST</code>, <code>PUT</code>, etc.).
- Certain specific cases exist where an <abbr title="Linked Data Platform Container">LDPC</abbr> server might delete a resource and then later re-use the
- URI when it identifies the same resource, but only when consistent with Web architecture.
- While it is difficult to provide absolute implementation guarantees of non-reuse in all failure
- scenarios, re-using URIs creates ambiguities for clients that are best avoided.
- </h4></section>
-
-</section>
-
-<section id="specs-http" class="informative" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h3 aria-level="2" role="heading" id="h3_specs-http"><span class="secno">6.2 </span>HTTP 1.1</h3><p><em>This section is non-normative.</em></p>
-Reference: [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>]
-
- <section id="ldp-http-other-representations" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_ldp-http-other-representations"><span class="secno">6.2.1 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> can support representations beyond those
- necessary to conform to this specification. These
- could be other <abbr title="Resource Description Framework">RDF</abbr> formats, like N3 or NTriples, but non-<abbr title="Resource Description Framework">RDF</abbr> formats
- like HTML [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTML401">HTML401</a></cite>] and JSON [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC4627">RFC4627</a></cite>] would likely be common.
- HTTP content negotiation ([<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>] Section 12 - Content Negotiation) is used to select the format.
- </h4></section>
-
- <section id="ldp-http-other-methods" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_ldp-http-other-methods"><span class="secno">6.2.2 </span><abbr title="Linked Data Platform Resources">LDPRs</abbr> can be created, updated and deleted using methods not defined in
- this document, for example through application-specific means, <abbr title="SPARQL Protocol and RDF Query Language">SPARQL</abbr>
- UPDATE, etc. [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-SPARQL-UPDATE">SPARQL-UPDATE</a></cite>], as long as those methods do not conflict with this specification's
- normative requirements.
- </h4></section>
-
- <section id="ldp-http-delete-uri-reuse" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_ldp-http-delete-uri-reuse"><span class="secno">6.2.3 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a>
- remove the resource identified by the <code>Request-URI</code> in response to a successful HTTP <code>DELETE</code> request.
- After such a request, a subsequent HTTP <code>GET</code> on the same
- <code>Request-URI</code> usually results in a 404 (Not found) or 410 (Gone) status
- code, although HTTP allows others.
- </h4></section>
-
- <section id="ldp-http-method-side-effects" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_ldp-http-method-side-effects"><span class="secno">6.2.4 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> can alter the state of other resources
- as a result of any HTTP request, especially when non-safe methods are used ([<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>] section 9.1).
- For example, it is acceptable for the server to
- remove triples from other resources whose subject or object is the
- deleted resource as the result of a successful HTTP <code>DELETE</code> request.
- It is also acceptable and common for <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> to
- not do this – the server's behavior can vary, so LDP clients cannot depend on it.
- </h4></section>
-
- <section id="ldp-http-patch-allowed" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_ldp-http-patch-allowed"><span class="secno">6.2.5 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> can implement HTTP <code>PATCH</code>
- to allow modifications,
- especially partial replacement, of their resources. No
- minimal set of patch document formats is mandated by this document or by the definition of <code>PATCH</code> [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC5789">RFC5789</a></cite>].
- </h4></section>
-
- <section id="ldp-http-content-sniffing" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_ldp-http-content-sniffing"><span class="secno">6.2.6 </span>
- When the <code>Content-Type</code> request header is absent from a request,
- <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> might infer the content type by inspecting the entity body contents [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>].
- </h4></section>
-
-</section>
-
-<section id="specs-rdf" class="informative" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h3 aria-level="2" role="heading" id="h3_specs-rdf"><span class="secno">6.3 </span><abbr title="Resource Description Framework">RDF</abbr></h3><p><em>This section is non-normative.</em></p>
-Reference: [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-rdf11-concepts">rdf11-concepts</a></cite>]
-
- <section id="ldp-rdfconcepts-extra-triples-any" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_ldp-rdfconcepts-extra-triples-any"><span class="secno">6.3.1 </span>The state of an <abbr title="Linked Data Platform Resource">LDPR</abbr>
- can have triples with any subject(s). The URL used to retrieve the
- representation of an <abbr title="Linked Data Platform Resource">LDPR</abbr> need not be the subject of any of its triples.
- </h4></section>
-
- <section id="ldp-rdfconcepts-extra-triples-members" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_ldp-rdfconcepts-extra-triples-members"><span class="secno">6.3.2 </span>The representation of an <abbr title="Linked Data Platform Container">LDPC</abbr>
- can include an arbitrary number of
- additional triples whose subjects are the members of the container,
- or that are from the representations of the members (if they have <abbr title="Resource Description Framework">RDF</abbr>
- representations). This allows an <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP server</a> to provide clients with
- information about the members without the client having to do a <code>GET</code>
- on each member individually.
- </h4></section>
-
- <section id="ldp-rdfconcepts-extra-triples-types" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_ldp-rdfconcepts-extra-triples-types"><span class="secno">6.3.3 </span>The state of an <abbr title="Linked Data Platform Resource">LDPR</abbr> can have more than one
- triple with an <code>rdf:type</code> predicate.
- </h4></section>
-
-</section>
-
-</section> <!-- Base specs -->
-
-<section id="http-header-definitions">
-<!--OddPage--><h2 aria-level="1" role="heading" id="h2_http-header-definitions"><span class="secno">7. </span>HTTP Header Definitions</h2>
-
-<section id="header-accept-post" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h3 aria-level="2" role="heading" id="h3_header-accept-post"><span class="secno">7.1 </span>The Accept-Post Response Header</h3>
-
- <div class="atrisk"><p class="atrisktext">Feature At Risk</p>
- <p>The LDP Working Group proposes incorporation of the features described in this section.</p>
- <ul>
- <li>The addition of <code>Accept-Post</code> in this specification is pending
- advancement of an <a href="https://datatracker.ietf.org/doc/draft-wilde-accept-post/">IETF draft</a>
- that would fully include it, based on the Accept-Patch header's design from [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC5789">RFC5789</a></cite>]. Once LDP is in
- Candidate Recommendation, the LDP WG will make an assessment based on the status at IETF
- working with the <abbr title="World Wide Web Consortium">W3C</abbr> Director.</li>
- </ul>
- </div>
-
- <p>This specification introduces a new HTTP response header <code>Accept-Post</code> used
- to specify the document formats accepted by the server on HTTP <code>POST</code> requests.
- It is modelled after the <code>Accept-Patch</code> header defined in [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC5789">RFC5789</a></cite>].
- </p>
-
- <section id="header-accept-post-1" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_header-accept-post-1"><span class="secno">7.1.1 </span>The syntax for <code>Accept-Post</code>, using
- the ABNF syntax defined in Section 2.1 of [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>], is:</h4>
- <blockquote><code>Accept-Post = "Accept-Post" ":" 1#media-type</code>
- <p>
- The <code>Accept-Post</code> header specifies a comma-separated list of media-
- types (with optional parameters) as defined by [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>], Section 3.7.
- </p>
- </blockquote>
- </section><!-- Was 6.1.1 / #header-accept-post-1 -->
-
- <section id="header-accept-post-2" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_header-accept-post-2"><span class="secno">7.1.2 </span>
- The <code>Accept-Post</code> HTTP header <em class="rfc2119" title="SHOULD">SHOULD</em> appear in the <code>OPTIONS</code> response for any resource
- that supports the use of the <code>POST</code> method. The presence of the
- <code>Accept-Post</code> header in response to any method is an implicit
- indication that <code>POST</code> is allowed on the resource identified by the
- <code>Request-URI</code>. The presence of a specific document format in
- this header indicates that that specific format is allowed on <code>POST</code> requests to the
- resource identified by the <code>Request-URI</code>.
- </h4></section><!-- Was 6.1.2 / #header-accept-post-2 -->
-
- <section id="header-accept-post-iana" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_header-accept-post-iana"><span class="secno">7.1.3 </span>IANA Registration Template</h4>
- <div>
- <blockquote>
- <p>
- The Accept-Post response header must be added to the permanent registry (see [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC3864">RFC3864</a></cite>]).
- </p>
- <p>
- Header field name: Accept-Post
- </p>
- <p>
- Applicable Protocol: HTTP
- </p>
- <p>
- Author/Change controller: <abbr title="World Wide Web Consortium">W3C</abbr>
- </p>
- <p>
- Specification document: this specification
- </p>
- </blockquote>
- </div>
- </section><!-- Was 6.1.3 / #header-accept-post-iana -->
-
-</section>
-
-<section id="prefer-parameters" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h3 aria-level="2" role="heading" id="h3_prefer-parameters"><span class="secno">7.2 </span>Preferences on the Prefer Request Header</h3>
-
-<section id="prefer-summary" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_prefer-summary"><span class="secno">7.2.1 </span>Summary</h4>
-
- <div class="ldp-issue-pending">
- <div class="ldp-issue-title">Need to update normative reference once RFC number is assigned.</div>
- The <a href="http://tools.ietf.org/html/draft-snell-http-prefer-18">HTTP Prefer header</a> is queued for an RFC number behind HTTPbis, whose BNF Prefer normatively refers to.
- </div>
-
- <p>This specification introduces new parameters on the HTTP <code>Prefer</code> request header's
- <code>return=representation</code> preference [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-Prefer">Prefer</a></cite>], used optionally by clients to
- supply a hint to help the server form a response that is most appropriate to
- the client's needs. The LDP-defined parameters suggest the portion(s) of a resource's state that the
- client application is interested in and, if received, is likely to be
- processed. LDP Containers with large numbers of associated documents
- and/or members will have large representations, and many client
- applications may be interested in processing only a subset of the <abbr title="Linked Data Platform Container">LDPC</abbr>'s
- information (for example, only membership triples or only containment triples),
- resulting in a potentially large savings in server, client,
- and network processing.
- </p>
-
- <p>
- Non-normative note: LDP server implementers should carefully consider the effects of these
- preferences on caching, as described in section 2 of [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-Prefer">Prefer</a></cite>].
- </p>
-
- <p>
- Non-normative note: [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-Prefer">Prefer</a></cite>] recommends that server implementers include a
- <code>Preference-Applied</code> response header when the client cannot otherwise determine the server's
- behavior with respect to honoring hints from the response content.
- <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#prefer-examples">Examples</a> illustrates some cases where the header is unnecessary.
- </p>
-
-</section> <!-- Prefer summary -->
-
-<section id="prefer-rules" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_prefer-rules"><span class="secno">7.2.2 </span>Specification</h4>
-
- <section id="prefer-include" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_prefer-include"><span class="secno">7.2.2.1 </span>
- The <code>include</code> hint defines a subset of an <abbr title="Linked Data Platform Resource">LDPR</abbr>'s content that a client
- would like included in a representation.
- The syntax for the <code>include</code> parameter of the
- HTTP <code>Prefer</code> request header's
- <code>return=representation</code> preference [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-Prefer">Prefer</a></cite>] is:</h5>
- <blockquote>
- <code>include-parameter = "include" *WSP "=" *WSP ldp-uri-list</code>
- <p>
- Where <code>WSP</code> is whitespace [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC5234">RFC5234</a></cite>], and
- <code>ldp-uri-list</code> is a double-quoted blank-delimited unordered set of URIs whose ABNF is given below.
- The generic preference BNF [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-Prefer">Prefer</a></cite>] allows either a quoted string or a token as the value of a
- preference parameter; LDP assigns a meaning to the value only when it is a quoted string of
- the form:
- </p>
- <code>ldp-uri-list = DQUOTE *WSP URI *[ 1*WSP URI ] *WSP DQUOTE</code>
- <p>
- where <code>DQUOTE</code> is a double quote [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC5234">RFC5234</a></cite>], and <code>URI</code> is an absolute URI with an optional
- fragment component [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC3986">RFC3986</a></cite>].
- </p>
- </blockquote>
- </section>
-
- <section id="prefer-omit" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_prefer-omit"><span class="secno">7.2.2.2 </span>
- The <code>omit</code> hint defines a subset of an <abbr title="Linked Data Platform Resource">LDPR</abbr>'s content that a client
- would like omitted from a representation.
- The syntax for the <code>omit</code> parameter of the
- HTTP <code>Prefer</code> request header's
- <code>return=representation</code> preference [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-Prefer">Prefer</a></cite>] is:</h5>
- <blockquote>
- <code>omit-parameter = "omit" *WSP "=" *WSP ldp-uri-list</code>
- <p>
- Where <code>WSP</code> and <code>ldp-uri-list</code> are defined as above for <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#prefer-include">include</a>.
- </p>
- </blockquote>
- </section>
-
- <section id="prefer-conflicts" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_prefer-conflicts"><span class="secno">7.2.2.3 </span>
- When LDP servers receive a request with conflicting hints, this specification imposes
- no requirements on their behavior. They are free to reject the request, process it
- applying some subset of the hints, or anything else appropriate to the server.
- [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-Prefer">Prefer</a></cite>] suggests treating similar requests as though none of the conflicting
- preferences were specified.
- </h5>
- </section>
-
- <section id="prefer-uris" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_prefer-uris"><span class="secno">7.2.2.4 </span>
- This specification defines the following URIs for clients to use with <code>include</code>
- and <code>omit</code> parameters. It assigns no meaning to other URIs, although
- other specifications <em class="rfc2119" title="MAY">MAY</em> do so.
- <table class="indented">
- <tbody><tr>
- <td> <a title="Containment triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-containment-triples" class="internalDFN">Containment triples </a></td>
- <td> <code>http://www.w3.org/ns/ldp#PreferContainment</code> </td>
- </tr>
- <tr>
- <td> <a title="Membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">Membership triples </a></td>
- <td> <code>http://www.w3.org/ns/ldp#PreferMembership</code> </td>
- </tr>
- <tr>
- <td> <a title="Empty-container triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-empty-container-triples" class="internalDFN">Empty-container triples</a>
- </td>
- <td> <code>http://www.w3.org/ns/ldp#PreferEmptyContainer</code> </td>
- </tr>
- </tbody></table>
- <blockquote>
- <p>
- Non-normative note: all currently defined URIs are only coherent for LDP-RSs,
- and in fact only for <abbr title="Linked Data Platform Containers">LDPCs</abbr>, however in
- the future it is possible that additional URIs with other scopes of applicability
- could be defined.
- </p>
- </blockquote>
-
- </h5>
- </section>
-
-</section> <!-- Prefer specification -->
-<section id="prefer-examples" class="informative" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<h4 aria-level="3" role="heading" id="h4_prefer-examples"><span class="secno">7.2.3 </span>Examples</h4><p><em>This section is non-normative.</em></p>
- <p>
- If we assume a container like
- the one below:
- </p>
- <div class="example"><div class="example-title"><span>Example 9</span></div><pre class="example" id="prefer-examples-direct"># The following is the representation of
-# http://example.org/netWorth/nw1/assetContainer/
-<!-- @base is here only so it's easier to paste into validators for checking -->
-# @base <http://example.org/netWorth/nw1/assetContainer/>.
-@prefix dcterms: <http://purl.org/dc/terms/>.
-@prefix ldp: <http://www.w3.org/ns/ldp#>.
-@prefix o: <http://example.org/ontology/>.
-
-<>
- a ldp:DirectContainer;
- dcterms:title "The assets of JohnZSmith";
- ldp:membershipResource <http://example.org/netWorth/nw1>;
- ldp:hasMemberRelation o:asset;
- ldp:insertedContentRelation ldp:MemberSubject.
-
-<http://example.org/netWorth/nw1>
- a o:NetWorth;
- o:asset <a1>, <a3>, <a2>.
-
-<a1>
- a o:Stock;
- o:value 100.00 .
-<a2>
- a o:Cash;
- o:value 50.00 .
-<a3>
- a o:RealEstateHolding;
- o:value 300000 .</pre></div>
-
- <p id="prefer-examples-direct-empty-container-only1">
- Clients interested only in information about the container
- (for example, which membership predicate it uses) might use this hint on a <code>GET</code> request:
- <code>Prefer: return=representation; include="http://www.w3.org/ns/ldp#PreferEmptyContainer"</code>
- </p>
- <p>
- A server that honors this hint would return a following response containing the HTTP header
- <code>Preference-Applied: return=representation</code>
- and this representation:
- </p>
-
- <div class="example"><div class="example-title"><span>Example 10</span></div><pre class="example"># The following is the ordered representation of
-# http://example.org/netWorth/nw1/assetContainer/
-<!-- @base is here only so it's easier to paste into validators for checking -->
-# @base <http://example.org/netWorth/nw1/assetContainer/>.
-@prefix dcterms: <http://purl.org/dc/terms/>.
-@prefix ldp: <http://www.w3.org/ns/ldp#>.
-@prefix o: <http://example.org/ontology/>.
-
-<>
- a ldp:DirectContainer;
- dcterms:title "The assets of JohnZSmith";
- ldp:membershipResource <http://example.org/netWorth/nw1>;
- ldp:hasMemberRelation o:asset;
- ldp:insertedContentRelation ldp:MemberSubject.</pre></div>
-
- <p id="prefer-examples-direct-empty-container-only2">
- Clients interested only in information about the container
- (same as before) might use this hint instead:
- <code>Prefer: return=representation; omit="http://www.w3.org/ns/ldp#PreferMembership http://www.w3.org/ns/ldp#PreferContainment"</code>. Note: <strong>Treating the two as equivalent is not recommended.</strong> While today this
- <code>omit</code> parameter value is equivalent to the preceding <code>include</code> parameter value,
- they may not be equivalent in the future
- due to the definition of <a title="Empty-container triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-empty-container-triples" class="internalDFN">empty-container triples</a>.
- Clients should preferentially use the <code>include</code> parameter, as it more precisely communicates their needs.
- </p>
- <p>
- A <strong>LDP 1.0</strong> server that honors this hint would return the following response. Servers
- implementing later versions of LDP might return substantively different responses.
- </p>
-
- <div class="example"><div class="example-title"><span>Example 11</span></div><pre class="example"># The following is the ordered representation of
-# http://example.org/netWorth/nw1/assetContainer/
-<!-- @base is here only so it's easier to paste into validators for checking -->
-# @base <http://example.org/netWorth/nw1/assetContainer/>.
-@prefix dcterms: <http://purl.org/dc/terms/>.
-@prefix ldp: <http://www.w3.org/ns/ldp#>.
-@prefix o: <http://example.org/ontology/>.
-
-<>
- a ldp:DirectContainer;
- dcterms:title "The assets of JohnZSmith";
- ldp:membershipResource <http://example.org/netWorth/nw1>;
- ldp:hasMemberRelation o:asset;
- ldp:insertedContentRelation ldp:MemberSubject.</pre></div>
-
- <p id="prefer-examples-direct-membershiponly">
- Clients interested only in information about the container
- (for example, which membership predicate it uses) and its membership might use this hint on a <code>GET</code> request:
- <code>Prefer: return=representation; include="http://www.w3.org/ns/ldp#PreferMembership http://www.w3.org/ns/ldp#PreferEmptyContainer"</code>
- </p>
- <p>
- A server that honors this hint would return
- (at least) the following response, and perhaps only this (it might
- well omit containment triples if they are not specifically requested).
- In cases like this example, where a client can detect from the content that its hints were honored
- (the presence of the predicates <code>dcterms:title</code> and <code>o:asset</code> demonstrate this in the representation below),
- there is no need for the server to include a <code>Preference-Applied</code> response header
- in many common cases like a <code>200 (OK)</code> response. In other cases, like status code <code>303</code>,
- the header would still be required for the client to know that the <code>303</code> response entity
- is a representation of the resource identified by the <code>Location</code> URI
- instead of a short hypertext note (one with a hyperlink to
- the same URI reference provided in the <code>Location</code> header field [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTPBIS-SEMANTICS">HTTPBIS-SEMANTICS</a></cite>]).
- </p>
-
- <div class="example"><div class="example-title"><span>Example 12</span></div><pre class="example"># The following is the representation of
-# http://example.org/netWorth/nw1/assetContainer/
-<!-- @base is here only so it's easier to paste into validators for checking -->
-# @base <http://example.org/netWorth/nw1/assetContainer/>.
-@prefix dcterms: <http://purl.org/dc/terms/>.
-@prefix ldp: <http://www.w3.org/ns/ldp#>.
-@prefix o: <http://example.org/ontology/>.
-
-<>
- a ldp:DirectContainer;
- dcterms:title "The assets of JohnZSmith";
- ldp:membershipResource <http://example.org/netWorth/nw1>;
- ldp:hasMemberRelation o:asset;
- ldp:insertedContentRelation ldp:MemberSubject.
-
-<http://example.org/netWorth/nw1>
- a o:NetWorth;
- o:asset <a1>, <a3>, <a2>.</pre></div>
-
- </section> <!-- Prefer examples -->
-
-</section> <!-- Prefer defns -->
-</section> <!-- Header defns -->
-
-<!-- Removed for action-113
-<section>
-<h1>HTTP Status Code Definitions</h1>
-
-<section id="status-code-related-content">
-<h2>209 Related Content</h2>
-
- <div class="atrisk"><p class="atrisktext">Feature At Risk</p>
- <p>The LDP Working Group proposes incorporation of the features described in this section.</p>
- <ul>
- <li>The addition of <a>209 Related Content</a> in this specification is pending
- advancement of an <a href="https://datatracker.ietf.org/doc/draft-wilde-related-content/">IETF draft</a>
- that would fully include it, patterned after the codes defined by [[RFC6585]]. Once LDP is in
- Candidate Recommendation status, the LDP WG will make an assessment based on the status at IETF
- working with the W3C Director.</li>
- </ul>
- </div>
-
- <p>The <code>209 Related Content</code> status code indicates that the origin server
- is supplying the representation of a different resource than the target resource,
- and the origin server believes that the supplied representation
- is likely to satisfy the user agent's original request.
- The resource whose representation is supplied is descriptive of the target resource, in
- the same way that the <code>Location</code> header in a <code>303 See Other</code>
- response is descriptive of the target resource.
- </p>
- <p><code>209 Related Content</code> is intended to be used in situations where
- <code>303 See Other</code> could have been used and would most likely result in a
- user agent retrieving the other resource, but saves the user agent from
- the latency penalty of having to perform a separate retrieval request.
- </p>
-
- <p> LDP uses <code>209 Related Content</code> to provide clients with the
- <a href="#ldpr-Paging">first page of a large resource</a>, but it can also be used in
- other common situations. Linked Data clients could benefit by avoiding the latency
- of additional requests when the target resource is a concept resource (one without any
- representation capable of transmission over HTTP), and general HTTP clients would
- benefit in many of the more general cases where <code>303 See Other</code> responses
- are currently used.
- </p>
-
- <div id="status-code-related-content-1" class="rule">7.1.1 A <code>209</code> response to a
- <code>GET</code> request MUST contain a <code>Location</code> header with the same
- <code>Location</code> field value as a <code>303 See Other</code> response would use [[!HTTP11]].
- </div>
-
- <div id="status-code-related-content-2" class="rule">7.1.2 A <code>209</code> response to a
- <code>GET</code> request MUST contain a representation of the resource identified
- by the response's <code>Location</code> header.
- </div>
-
- <div id="status-code-related-content-iana" class="rule">7.1.3 IANA Considerations</div>
- <div>
- <blockquote>
- <p>
- The <code>209 Related Content</code> must be added to the permanent status code registry
- maintained at <a href="http://www.iana.org/assignments/http-status-codes">http://www.iana.org/assignments/http-status-codes</a>
- (see [[HTTPBIS-SEMANTICS]], [[!RFC2817]]).
- </p>
- <p>
- Value: 209
- </p>
- <p>
- Description: Related Content
- </p>
- <p>
- Reference: this specification
- </p>
- </blockquote>
- </div>
-
-</section>
-</section> <!-- status code defns -->
-
-<section class="informative" id="security" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
-<!--OddPage--><h2 aria-level="1" role="heading" id="h2_security"><span class="secno">8. </span>Security Considerations</h2><p><em>This section is non-normative.</em></p>
-<p>As with any protocol that is implemented leveraging HTTP, implementations should take advantage of the many
-security-related facilities associated with it and are not required to carry out LDP operations
-that may be in contradistinction to a particular security policy in place. For example, when faced with an
-unauthenticated request to replace system critical <abbr title="Resource Description Framework">RDF</abbr> statements in a graph through the PUT method, applications may
-consider responding with the 401 status code (Unauthorized), indicating that the appropriate authorization
-is required. In cases where authentication is provided fails to meet the requirements of a particular access control
-policy, the 403 status code (Forbidden) can be sent back to the client to indicate this failure to meet the
-access control policy.</p>
-</section>
-
-<section class="appendix informative" id="acknowledgements">
-<!--OddPage--><h2 aria-level="1" role="heading" id="h2_acknowledgements"><span class="secno">A. </span>Acknowledgements</h2><p><em>This section is non-normative.</em></p>
-
- <p>The following people have been instrumental in providing thoughts, feedback,
-reviews, content, criticism and input in the creation of this specification:</p>
-
- <p style="margin-left: 3em;">
- Alexandre Bertails, Andrei Sambra, Andy Seaborne, Antonis Loizou, Arnaud Le Hors, Ashok Malhota, Bart van Leeuwen, Cody Burleson, David Wood, Eric Prud'hommeaux, Erik Wilde, Henry Story, John Arwe, Kevin Page, Kingsley Idehen, Mark Baker, Martin P. Nally, Miel Vander Sande, Miguel Esteban Gutiérrez, Nandana Mihindukulasooriya, Olivier Berger, Pierre-Antoine Champin, Raúl García Castro, Reza B'Far, Richard Cyganiak, Roger Menday, Ruben Verborgh, Sandro Hawke, Serena Villata, Sergio Fernandez, Steve Battle, Steve Speicher, Ted Thibodeau, Tim Berners-Lee, Yves Lafon
- </p>
-
-</section>
-
-<section id="references" class="appendix" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><!--OddPage--><h2 aria-level="1" role="heading" id="h2_references"><span class="secno">C. </span>References</h2><section id="normative-references" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h3 aria-level="2" role="heading" id="h3_normative-references"><span class="secno">C.1 </span>Normative references</h3><dl class="bibliography" about=""><dt id="bib-DC-TERMS">[DC-TERMS]</dt><dd rel="dcterms:requires">Dublin Core Metadata Initiative. <a href="http://dublincore.org/documents/2010/10/11/dcmi-terms/"><cite>Dublin Core Metadata Initiative Terms, version 1.1.</cite></a> 11 October 2010. DCMI Recommendation. URL: <a href="http://dublincore.org/documents/2010/10/11/dcmi-terms/">http://dublincore.org/documents/2010/10/11/dcmi-terms/</a>.
-</dd><dt id="bib-HTTP11">[HTTP11]</dt><dd rel="dcterms:requires">R. Fielding et al. <a href="http://www.ietf.org/rfc/rfc2616.txt"><cite>Hypertext Transfer Protocol - HTTP/1.1</cite></a>. June 1999. RFC. URL: <a href="http://www.ietf.org/rfc/rfc2616.txt">http://www.ietf.org/rfc/rfc2616.txt</a>
-</dd><dt id="bib-LDP-PAGING">[LDP-PAGING]</dt><dd rel="dcterms:requires">S. Speicher; J. Arwe; A. Malhotra. <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp-paging.html"><cite>Linked Data Platform Paging</cite></a>. Editor's Working Draft. URL: <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp-paging.html">https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp-paging.html</a>
-</dd><dt id="bib-Prefer">[Prefer]</dt><dd rel="dcterms:requires">J. Snell. <a href="http://tools.ietf.org/html/draft-snell-http-prefer-18"><cite>Prefer</cite></a>. Internet Draft. URL: <a href="http://tools.ietf.org/html/draft-snell-http-prefer-18">http://tools.ietf.org/html/draft-snell-http-prefer-18</a>
-</dd><dt id="bib-RFC2119">[RFC2119]</dt><dd rel="dcterms:requires">S. Bradner. <a href="http://www.ietf.org/rfc/rfc2119.txt"><cite>Key words for use in RFCs to Indicate Requirement Levels.</cite></a> March 1997. Internet RFC 2119. URL: <a href="http://www.ietf.org/rfc/rfc2119.txt">http://www.ietf.org/rfc/rfc2119.txt</a>
-</dd><dt id="bib-RFC3864">[RFC3864]</dt><dd rel="dcterms:requires">G. Klyne; M. Nottingham; J. Mogul. <a href="http://www.ietf.org/rfc/rfc3864.txt"><cite>Registration Procedures for Message Header Fields</cite></a>. September 2004. RFC. URL: <a href="http://www.ietf.org/rfc/rfc3864.txt">http://www.ietf.org/rfc/rfc3864.txt</a>
-</dd><dt id="bib-RFC3986">[RFC3986]</dt><dd rel="dcterms:requires">T. Berners-Lee; R. Fielding; L. Masinter. <a href="http://www.ietf.org/rfc/rfc3986.txt"><cite>Uniform Resource Identifier (URI): Generic Syntax (RFC 3986)</cite></a>. January 2005. RFC. URL: <a href="http://www.ietf.org/rfc/rfc3986.txt">http://www.ietf.org/rfc/rfc3986.txt</a>
-</dd><dt id="bib-RFC3987">[RFC3987]</dt><dd rel="dcterms:requires">M. Dürst; M. Suignard. <a href="http://www.ietf.org/rfc/rfc3987.txt"><cite>Internationalized Resource Identifiers (IRIs)</cite></a>. January 2005. RFC. URL: <a href="http://www.ietf.org/rfc/rfc3987.txt">http://www.ietf.org/rfc/rfc3987.txt</a>
-</dd><dt id="bib-RFC5023">[RFC5023]</dt><dd rel="dcterms:requires">J. Gregorio; B. de hOra. <a href="http://www.ietf.org/rfc/rfc5023.txt"><cite>The Atom Publishing Protocol</cite></a>. October 2007. RFC. URL: <a href="http://www.ietf.org/rfc/rfc5023.txt">http://www.ietf.org/rfc/rfc5023.txt</a>
-</dd><dt id="bib-RFC5234">[RFC5234]</dt><dd rel="dcterms:requires">D. Crocker; P. Overell. <a href="http://www.ietf.org/rfc/rfc5234.txt"><cite>Augmented BNF for Syntax Specifications: ABNF</cite></a>. January 2008. STD. URL: <a href="http://www.ietf.org/rfc/rfc5234.txt">http://www.ietf.org/rfc/rfc5234.txt</a>
-</dd><dt id="bib-RFC5789">[RFC5789]</dt><dd rel="dcterms:requires">L Dusseault; J. Snell. <a href="http://tools.ietf.org/html/rfc5789"><cite>PATCH Method for HTTP (RFC 5789)</cite></a>. March 2010. RFC. URL: <a href="http://tools.ietf.org/html/rfc5789">http://tools.ietf.org/html/rfc5789</a>
-</dd><dt id="bib-RFC5988">[RFC5988]</dt><dd rel="dcterms:requires">Mark Nottingham. <a href="http://www.ietf.org/rfc/rfc5988.txt"><cite>Web Linking (RFC 5988)</cite></a>. October 2010. RFC. URL: <a href="http://www.ietf.org/rfc/rfc5988.txt">http://www.ietf.org/rfc/rfc5988.txt</a>
-</dd><dt id="bib-RFC6585">[RFC6585]</dt><dd rel="dcterms:requires">M. Nottingham; R. Fielding. <a href="http://www.ietf.org/rfc/rfc6585.txt"><cite>Additional HTTP Status Codes</cite></a>. April 2012. RFC. URL: <a href="http://www.ietf.org/rfc/rfc6585.txt">http://www.ietf.org/rfc/rfc6585.txt</a>
-</dd><dt id="bib-WEBARCH">[WEBARCH]</dt><dd rel="dcterms:requires">Ian Jacobs; Norman Walsh. <a href="http://www.w3.org/TR/webarch/"><cite>Architecture of the World Wide Web, Volume One</cite></a>. 15 December 2004. W3C Recommendation. URL: <a href="http://www.w3.org/TR/webarch/">http://www.w3.org/TR/webarch/</a>
-</dd><dt id="bib-rdf-schema">[rdf-schema]</dt><dd rel="dcterms:requires">Dan Brickley; Ramanathan Guha. <a href="http://www.w3.org/TR/rdf-schema/"><cite>RDF Schema 1.1</cite></a>. 9 January 2014. W3C Proposed Edited Recommendation. URL: <a href="http://www.w3.org/TR/rdf-schema/">http://www.w3.org/TR/rdf-schema/</a>
-</dd><dt id="bib-rdf11-concepts">[rdf11-concepts]</dt><dd rel="dcterms:requires">Richard Cyganiak; David Wood; Markus Lanthaler. <a href="http://www.w3.org/TR/rdf11-concepts/"><cite>RDF 1.1 Concepts and Abstract Syntax</cite></a>. 9 January 2014. W3C Proposed Recommendation. URL: <a href="http://www.w3.org/TR/rdf11-concepts/">http://www.w3.org/TR/rdf11-concepts/</a>
-</dd><dt id="bib-turtle">[turtle]</dt><dd rel="dcterms:requires">Eric Prud'hommeaux; Gavin Carothers. <a href="http://www.w3.org/TR/turtle/"><cite>RDF 1.1 Turtle</cite></a>. 9 January 2014. W3C Proposed Recommendation. URL: <a href="http://www.w3.org/TR/turtle/">http://www.w3.org/TR/turtle/</a>
-</dd></dl></section><section id="informative-references" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h3 aria-level="2" role="heading" id="h3_informative-references"><span class="secno">C.2 </span>Informative references</h3><dl class="bibliography" about=""><dt id="bib-HTML401">[HTML401]</dt><dd rel="dcterms:references">Dave Raggett; Arnaud Le Hors; Ian Jacobs. <a href="http://www.w3.org/TR/html401"><cite>HTML 4.01 Specification</cite></a>. 24 December 1999. W3C Recommendation. URL: <a href="http://www.w3.org/TR/html401">http://www.w3.org/TR/html401</a>
-</dd><dt id="bib-HTTPBIS-SEMANTICS">[HTTPBIS-SEMANTICS]</dt><dd rel="dcterms:references">R. Fielding; J. Reschke. <a href="http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics/"><cite>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</cite></a>. In Last Call. URL: <a href="http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics/">http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics/</a>
-</dd><dt id="bib-LDP-UCR">[LDP-UCR]</dt><dd rel="dcterms:references">Steve Battle; Steve Speicher. <a href="http://www.w3.org/TR/ldp-ucr/"><cite>Linked Data Platform Use Cases and Requirements</cite></a>. 31 October 2013. W3C Working Draft. URL: <a href="http://www.w3.org/TR/ldp-ucr/">http://www.w3.org/TR/ldp-ucr/</a>
-</dd><dt id="bib-LINKED-DATA">[LINKED-DATA]</dt><dd rel="dcterms:references">Tim Berners-Lee. <a href="http://www.w3.org/DesignIssues/LinkedData.html"><cite>Linked Data Design Issues</cite></a>. 27 July 2006. W3C-Internal Document. URL: <a href="http://www.w3.org/DesignIssues/LinkedData.html">http://www.w3.org/DesignIssues/LinkedData.html</a>
-</dd><dt id="bib-RFC4627">[RFC4627]</dt><dd rel="dcterms:references">D. Crockford. <a href="http://www.ietf.org/rfc/rfc4627.txt"><cite>The application/json Media Type for JavaScript Object Notation (JSON) (RFC 4627)</cite></a>. July 2006. RFC. URL: <a href="http://www.ietf.org/rfc/rfc4627.txt">http://www.ietf.org/rfc/rfc4627.txt</a>
-</dd><dt id="bib-SPARQL-UPDATE">[SPARQL-UPDATE]</dt><dd rel="dcterms:references">Paul Gearon; Alexandre Passant; Axel Polleres. <a href="http://www.w3.org/TR/sparql11-update/"><cite>SPARQL 1.1 Update</cite></a>. 21 March 2013. W3C Recommendation. URL: <a href="http://www.w3.org/TR/sparql11-update/">http://www.w3.org/TR/sparql11-update/</a>
-</dd><dt id="bib-sparql11-query">[sparql11-query]</dt><dd rel="dcterms:references">Steven Harris; Andy Seaborne. <a href="http://www.w3.org/TR/sparql11-query/"><cite>SPARQL 1.1 Query Language</cite></a>. 21 March 2013. W3C Recommendation. URL: <a href="http://www.w3.org/TR/sparql11-query/">http://www.w3.org/TR/sparql11-query/</a>
-</dd></dl></section></section></body></html>
\ No newline at end of file
Binary file TR/WD-ldp-02140311/images/ldpc-hierarchy.png has changed
Binary file TR/WD-ldp-02140311/images/ldpr1.png has changed
Binary file TR/WD-ldp-02140311/images/ldpr2.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/TR/WD-ldp-20140311/Overview.html Tue Mar 04 13:14:38 2014 -0500
@@ -0,0 +1,2382 @@
+<!DOCTYPE html>
+<!-- saved from url=(0054)https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html -->
+<html lang="en" dir="ltr" typeof="bibo:Document w3p:LastCall" about="" property="dcterms:language" content="en" prefix="bibo: http://purl.org/ontology/bibo/ w3p: http://www.w3.org/2001/02pd/rec54#"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Linked Data Platform 1.0</title>
+
+ <!--
+ === NOTA BENE ===
+ For the three scripts below, if your spec resides on dev.w3 you can check them
+ out in the same tree and use relative links so that they'll work offline,
+ -->
+
+
+ <style type="text/css">
+ div.rule {padding-top: 1em;}
+ div.ldp-issue-open {
+ border-color: #E05252;
+ background: #FBE9E9;
+ padding: 0.5em;
+ margin: 1em 0;
+ position: relative;
+ clear: both;
+ border-left-width: .5em;
+ border-left-style: solid;
+ }
+ div.ldp-issue-pending {
+ border-color: #FAF602;
+ background: #F7F6BC;
+ padding: 0.5em;
+ margin: 1em 0;
+ position: relative;
+ clear: both;
+ border-left-width: .5em;
+ border-left-style: solid;
+ }
+ div.ldp-issue-closed {
+ border-color: #009900;
+ background: #BCF7CF;
+ padding: 0.5em;
+ margin: 1em 0;
+ position: relative;
+ clear: both;
+ border-left-width: .5em;
+ border-left-style: solid;
+ }
+ div.ldp-issue-title {
+ color: #E05252;
+ padding-right: 1em;
+ min-width: 7.5em;
+ }
+ .atrisk {
+ padding: 1em;
+ margin: 1em 0em 0em;
+ border: 1px solid #f00;
+ background: #ffc;
+ }
+ .atrisktext {
+ /* content: "Feature At Risk"; */
+ display: block;
+ width: 150px;
+ margin: -1.5em 0 0.5em 0;
+ font-weight: bold;
+ border: 1px solid #f00;
+ background: #fff;
+ padding: 3px 1em;
+ }
+ .normal {
+ font-weight: normal;
+ font: normal 100% sans-serif;
+ }
+ .indented {
+ margin-left: +3em;
+ }
+ tr:nth-of-type(odd),.oddrow {
+ background:#F2F2F2; /* light grey, just enough to differentiate from white */
+ }
+ td {
+ padding:0 +1ex 0 +1ex; /* add a bit of space from rule/edge to text */
+ }
+
+ </style>
+ <style type="text/css" media="all">
+ code {
+ font-weight:bold;
+ font-size:larger;
+ }
+ /* ReSpec uses color ff4500 for code elements, which does not print well on some black & white printers
+ and is a little hard to read for some folks even on-line.
+ The default code font size was also somewhat too small/hard to read.
+ */
+ </style>
+ <style>/*****************************************************************
+ * ReSpec 3 CSS
+ * Robin Berjon - http://berjon.com/
+ *****************************************************************/
+
+/* --- INLINES --- */
+em.rfc2119 {
+ text-transform: lowercase;
+ font-variant: small-caps;
+ font-style: normal;
+ color: #900;
+}
+
+h1 acronym, h2 acronym, h3 acronym, h4 acronym, h5 acronym, h6 acronym, a acronym,
+h1 abbr, h2 abbr, h3 abbr, h4 abbr, h5 abbr, h6 abbr, a abbr {
+ border: none;
+}
+
+dfn {
+ font-weight: bold;
+}
+
+a.internalDFN {
+ color: inherit;
+ border-bottom: 1px solid #99c;
+ text-decoration: none;
+}
+
+a.externalDFN {
+ color: inherit;
+ border-bottom: 1px dotted #ccc;
+ text-decoration: none;
+}
+
+a.bibref {
+ text-decoration: none;
+}
+
+cite .bibref {
+ font-style: normal;
+}
+
+code {
+ color: #ff4500;
+}
+
+/* --- TOC --- */
+.toc a, .tof a {
+ text-decoration: none;
+}
+
+a .secno, a .figno {
+ color: #000;
+}
+
+ul.tof, ol.tof {
+ list-style: none outside none;
+}
+
+.caption {
+ margin-top: 0.5em;
+ font-style: italic;
+}
+
+/* --- TABLE --- */
+table.simple {
+ border-spacing: 0;
+ border-collapse: collapse;
+ border-bottom: 3px solid #005a9c;
+}
+
+.simple th {
+ background: #005a9c;
+ color: #fff;
+ padding: 3px 5px;
+ text-align: left;
+}
+
+.simple th[scope="row"] {
+ background: inherit;
+ color: inherit;
+ border-top: 1px solid #ddd;
+}
+
+.simple td {
+ padding: 3px 10px;
+ border-top: 1px solid #ddd;
+}
+
+.simple tr:nth-child(even) {
+ background: #f0f6ff;
+}
+
+/* --- DL --- */
+.section dd > p:first-child {
+ margin-top: 0;
+}
+
+.section dd > p:last-child {
+ margin-bottom: 0;
+}
+
+.section dd {
+ margin-bottom: 1em;
+}
+
+.section dl.attrs dd, .section dl.eldef dd {
+ margin-bottom: 0;
+}
+
+@media print {
+ .removeOnSave {
+ display: none;
+ }
+}
+</style><style>/* --- EXAMPLES --- */
+div.example-title {
+ min-width: 7.5em;
+ color: #b9ab2d;
+}
+div.example-title span {
+ text-transform: uppercase;
+}
+aside.example, div.example, div.illegal-example {
+ padding: 0.5em;
+ margin: 1em 0;
+ position: relative;
+ clear: both;
+}
+div.illegal-example { color: red }
+div.illegal-example p { color: black }
+aside.example, div.example {
+ padding: .5em;
+ border-left-width: .5em;
+ border-left-style: solid;
+ border-color: #e0cb52;
+ background: #fcfaee;
+}
+
+aside.example div.example {
+ border-left-width: .1em;
+ border-color: #999;
+ background: #fff;
+}
+aside.example div.example div.example-title {
+ color: #999;
+}
+</style><link rel="stylesheet" href="https://www.w3.org/StyleSheets/TR/W3C-WD"><!--[if lt IE 9]><script src='https://www.w3.org/2008/site/js/html5shiv.js'></script><![endif]--></head>
+<body class="h-entry" style="" role="document" id="respecDocument"><div class="head" role="contentinfo" id="respecHeader">
+ <p>
+
+ <a href="http://www.w3.org/"><img width="72" height="48" src="http://www.w3.org/Icons/w3c_home" alt="W3C"></a>
+
+ </p>
+ <h1 class="title p-name" id="title" property="dcterms:title">Linked Data Platform 1.0</h1>
+
+ <h2 property="dcterms:issued" datatype="xsd:dateTime" content="2014-03-11T04:00:00.000Z" id="w3c-last-call-working-draft-11-march-2014"><abbr title="World Wide Web Consortium">W3C</abbr> Last Call Working Draft <time class="dt-published" datetime="2014-03-11">11 March 2014</time></h2>
+ <dl>
+
+ <dt>This version:</dt>
+ <dd><a class="u-url" href="http://www.w3.org/TR/2014/WD-ldp-20140311/">http://www.w3.org/TR/2014/WD-ldp-20140311/</a></dd>
+ <dt>Latest published version:</dt>
+ <dd><a href="http://www.w3.org/TR/ldp/">http://www.w3.org/TR/ldp/</a></dd>
+
+
+ <dt>Latest editor's draft:</dt>
+ <dd><a href="http://www.w3.org/2012/ldp/hg/ldp.html">http://www.w3.org/2012/ldp/hg/ldp.html</a></dd>
+
+
+
+
+
+
+ <dt>Previous version:</dt>
+ <dd><a rel="dcterms:replaces" href="http://www.w3.org/TR/2013/WD-ldp-20130730/">http://www.w3.org/TR/2013/WD-ldp-20130730/</a></dd>
+
+
+ <dt>Editors:</dt>
+ <dd class="p-author h-card vcard" rel="bibo:editor" inlist=""><span typeof="foaf:Person"><a class="u-url url p-name fn" rel="foaf:homepage" property="foaf:name" content="Steve Speicher" href="http://stevespeicher.blogspot.com/">Steve Speicher</a>, <a rel="foaf:workplaceHomepage" class="p-org org h-org h-card" href="http://ibm.com/">IBM Corporation</a></span>
+</dd>
+<dd class="p-author h-card vcard" rel="bibo:editor" inlist=""><span typeof="foaf:Person"><a class="u-url url p-name fn" rel="foaf:homepage" property="foaf:name" content="John Arwe" href="https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/allcommunities?userid=120000CAW7">John Arwe</a>, <a rel="foaf:workplaceHomepage" class="p-org org h-org h-card" href="http://ibm.com/">IBM Corporation</a></span>
+</dd>
+<dd class="p-author h-card vcard" rel="bibo:editor" inlist=""><span typeof="foaf:Person"><a class="u-url url p-name fn" rel="foaf:homepage" property="foaf:name" content="Ashok Malhotra" href="mailto:ashok.malhotra@oracle.com">Ashok Malhotra</a>, <a rel="foaf:workplaceHomepage" class="p-org org h-org h-card" href="http://www.oracle.com/">Oracle Corporation</a></span>
+</dd>
+
+
+
+ </dl>
+
+ <p class="copyright">
+ <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a>
+ © 2014 <a href="http://www.w3.org/"><acronym
+ title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a
+ href="http://www.csail.mit.edu/"><acronym
+ title="Massachusetts Institute of Technology">MIT</acronym></a>, <a
+ href="http://www.ercim.eu/"><acronym
+ title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>,
+ <a href="http://www.keio.ac.jp/">Keio</a>, <a
+ href="http://ev.buaa.edu.cn/">Beihang</a>), All Rights Reserved. W3C
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
+ <a
+ href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>
+ and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document
+ use</a> rules apply.
+ </p>
+
+</div>
+<hr>
+<section id="abstract" class="introductory" property="dcterms:abstract" datatype="" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h2 aria-level="1" role="heading" id="h2_abstract">Abstract</h2><p>
+This document describes a set of best practices and simple approach for a read-write Linked Data architecture, based on
+HTTP access to web resources that describe their state using the <abbr title="Resource Description Framework">RDF</abbr>
+data model.
+</p></section><section id="sotd" class="introductory" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h2 aria-level="1" role="heading" id="h2_sotd">Status of This Document</h2>
+
+
+
+ <p>
+ <em>This section describes the status of this document at the time of its publication.
+ Other documents may supersede this document. A list of current <abbr title="World Wide Web Consortium">W3C</abbr> publications and the
+ latest revision of this technical report can be found in the <a href="http://www.w3.org/TR/"><abbr title="World Wide Web Consortium">W3C</abbr> technical reports index</a> at
+ http://www.w3.org/TR/.</em>
+ </p>
+
+ <p>
+ This is the 2nd Last Call for Comments where the Working Group has addressed all
+ raised issues and as a result some significant changes have been made, see <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#history" class="sectionRef sec-ref">section <span class="secno">B.</span> <span class="sec-title">Change History</span></a>. Most notably
+ the Working Group has decided to handle paging as an extension to LDP in a separate
+ REC-track specification. [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-LDP-PAGING">LDP-PAGING</a></cite>]
+ </p>
+
+ <p>
+ This document was published by the <a href="http://www.w3.org/2012/ldp">Linked Data Platform Working Group</a> as a Last Call Working Draft.
+
+ This document is intended to become a <abbr title="World Wide Web Consortium">W3C</abbr> Recommendation.
+
+
+ If you wish to make comments regarding this document, please send them to
+ <a href="mailto:public-ldp-comments@w3.org">public-ldp-comments@w3.org</a>
+ (<a href="mailto:public-ldp-comments-request@w3.org?subject=subscribe">subscribe</a>,
+ <a href="http://lists.w3.org/Archives/Public/public-ldp-comments/">archives</a>).
+
+ The Last Call period ends 02 April 2014.
+
+
+ All comments are welcome.
+
+ </p>
+
+
+ <p>
+ Publication as a Last Call Working Draft does not imply endorsement by the <abbr title="World Wide Web Consortium">W3C</abbr>
+ Membership. This is a draft document and may be updated, replaced or obsoleted by other
+ documents at any time. It is inappropriate to cite this document as other than work in
+ progress.
+ </p>
+
+
+
+ <p>
+ This is a Last Call Working Draft and thus the Working Group has determined that this
+ document has satisfied the relevant technical requirements and is sufficiently stable to
+ advance through the Technical Recommendation process.
+ </p>
+
+ <p>
+
+ This document was produced by a group operating under the
+ <a id="sotd_patent" about="" rel="w3p:patentRules" href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 <abbr title="World Wide Web Consortium">W3C</abbr> Patent
+ Policy</a>.
+
+
+
+
+ <abbr title="World Wide Web Consortium">W3C</abbr> maintains a <a href="http://www.w3.org/2004/01/pp-impl/55082/status" rel="disclosure">public list of any patent
+ disclosures</a>
+
+ made in connection with the deliverables of the group; that page also includes
+ instructions for disclosing a patent. An individual who has actual knowledge of a patent
+ which the individual believes contains
+ <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential
+ Claim(s)</a> must disclose the information in accordance with
+ <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section
+ 6 of the <abbr title="World Wide Web Consortium">W3C</abbr> Patent Policy</a>.
+
+
+ </p>
+
+
+
+
+</section><section id="toc"><h2 class="introductory" aria-level="1" role="heading" id="h2_toc">Table of Contents</h2><ul class="toc" role="directory" id="respecContents"><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#intro" class="tocxref"><span class="secno">1. </span>Introduction</a></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#terms" class="tocxref"><span class="secno">2. </span>Terminology</a><ul class="toc"><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#conventions" class="tocxref"><span class="secno">2.1 </span>Conventions Used in This Document</a></li></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#conformance" class="tocxref"><span class="secno">3. </span>Conformance</a></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr" class="tocxref"><span class="secno">4. </span>Linked Data Platform Resources</a><ul class="toc"><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-informative" class="tocxref"><span class="secno">4.1 </span>Introduction</a></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-resource" class="tocxref"><span class="secno">4.2 </span>Resource</a><ul class="toc"></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldprs" class="tocxref"><span class="secno">4.3 </span><abbr title="Resource Description Framework">RDF</abbr> Source</a><ul class="toc"></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpnr" class="tocxref"><span class="secno">4.4 </span>Non-<abbr title="Resource Description Framework">RDF</abbr> Source</a><ul class="toc"></ul></li></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc" class="tocxref"><span class="secno">5. </span>Linked Data Platform Containers</a><ul class="toc"><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-informative" class="tocxref"><span class="secno">5.1 </span>Introduction</a><ul class="toc"></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-container" class="tocxref"><span class="secno">5.2 </span>Container</a><ul class="toc"></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpbc" class="tocxref"><span class="secno">5.3 </span>Basic</a><ul class="toc"></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpdc" class="tocxref"><span class="secno">5.4 </span>Direct</a><ul class="toc"></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpic" class="tocxref"><span class="secno">5.5 </span>Indirect</a><ul class="toc"></ul></li></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#base-specs" class="tocxref"><span class="secno">6. </span>Notable information from normative references</a><ul class="toc"><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#specs-webarch" class="tocxref"><span class="secno">6.1 </span>Architecture of the World Wide Web</a><ul class="toc"></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#specs-http" class="tocxref"><span class="secno">6.2 </span>HTTP 1.1</a><ul class="toc"></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#specs-rdf" class="tocxref"><span class="secno">6.3 </span><abbr title="Resource Description Framework">RDF</abbr></a><ul class="toc"></ul></li></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#http-header-definitions" class="tocxref"><span class="secno">7. </span>HTTP Header Definitions</a><ul class="toc"><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#header-accept-post" class="tocxref"><span class="secno">7.1 </span>The Accept-Post Response Header</a><ul class="toc"></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#prefer-parameters" class="tocxref"><span class="secno">7.2 </span>Preferences on the Prefer Request Header</a><ul class="toc"></ul></li></ul></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#security" class="tocxref"><span class="secno">8. </span>Security Considerations</a></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#acknowledgements" class="tocxref"><span class="secno">A. </span>Acknowledgements</a></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#history" class="tocxref"><span class="secno">B. </span>Change History</a></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#references" class="tocxref"><span class="secno">C. </span>References</a><ul class="toc"><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#normative-references" class="tocxref"><span class="secno">C.1 </span>Normative references</a></li><li class="tocline"><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#informative-references" class="tocxref"><span class="secno">C.2 </span>Informative references</a></li></ul></li></ul></section>
+
+
+
+<section class="informative" id="intro" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<!--OddPage--><h2 aria-level="1" role="heading" id="h2_intro"><span class="secno">1. </span>Introduction</h2><p><em>This section is non-normative.</em></p>
+ <p>This specification describes the use
+ of HTTP for accessing, updating, creating and deleting resources from
+ servers that expose their resources as Linked Data. It provides clarifications
+ and extensions of the rules of Linked Data [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-LINKED-DATA">LINKED-DATA</a></cite>]:</p>
+ <ol>
+ <li>Use URIs as names for things</li>
+ <li>Use HTTP URIs so that people can look up those names</li>
+ <li>When someone looks up a URI, provide useful information, using the standards
+ (<abbr title="Resource Description Framework">RDF</abbr>*, <abbr title="SPARQL Protocol and RDF Query Language">SPARQL</abbr>)
+ </li>
+ <li>Include links to other URIs, so that they can discover more things</li>
+ </ol>
+ <p>This specification discusses standard HTTP and <abbr title="Resource Description Framework">RDF</abbr> techniques
+ used when constructing clients and servers that
+ create, read, and write <a title="Linked Data Platform Resource" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-resource" class="internalDFN">Linked Data Platform Resources</a>.
+ A companion document discusses best practices that you
+ should use, and anti-patterns you should avoid, when constructing these clients and servers.
+ </p>
+ <p>This specification defines a special type of <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-resource" class="internalDFN">Linked Data Platform Resource</a>: a
+ <a title="Linked Data Platform Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-container" class="internalDFN">Container</a>. Containers are very useful
+ in building application models involving collections of resources, often homogeneous ones.
+ For example, universities offer a collection of classes
+ and have a collection of faculty members, each faculty member teaches a collection of courses, and so on.
+ This specification discusses how to work with containers. Resources can be added to containers
+ using standard HTTP operations like
+ POST (see <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-HTTP_POST" class="sectionRef sec-ref">section <span class="secno">5.2.3</span> <span class="sec-title">HTTP POST</span></a>).</p>
+ <p>The intention of this specification is to enable additional rules and layered groupings of rules as
+ additional specifications. The scope is intentionally narrow to provide a set of key rules for
+ reading and writing Linked Data that most, if not all, other specifications will depend upon and
+ implementations will support.</p>
+ <p>This specification provides some approaches to deal with large resources. An extension to this specification
+ provides the ability to break large resource representations into multiple paged responses [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-LDP-PAGING">LDP-PAGING</a></cite>].</p>
+ <p>For context and background, it could be useful to read <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-LDP-UCR">Linked Data Platform Use Case and Requirements</a> [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-LDP-UCR">LDP-UCR</a></cite>]
+ and <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#base-specs" class="sectionRef sec-ref">section <span class="secno">6.</span> <span class="sec-title">Notable information from normative references</span></a>.</p>
+</section>
+
+<section id="terms" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<!--OddPage--><h2 aria-level="1" role="heading" id="h2_terms"><span class="secno">2. </span>Terminology</h2>
+
+<p>Terminology is based on <abbr title="World Wide Web Consortium">W3C</abbr>'s Architecture of the World Wide Web [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-WEBARCH">WEBARCH</a></cite>] and Hyper-text Transfer Protocol [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>].
+</p>
+ <dl class="glossary">
+ <dt>Link</dt>
+ <dd>A relationship between two resources when one resource (representation) refers to the other resource by means
+ of a URI [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-WEBARCH">WEBARCH</a></cite>].
+ <p></p></dd>
+
+ <dt>Linked Data</dt>
+ <dd>As defined by Tim Berners-Lee [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-LINKED-DATA">LINKED-DATA</a></cite>].<p></p></dd>
+
+ <dt>Client</dt>
+ <dd>A program that establishes connections for the purpose of sending requests [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>].<p></p></dd>
+
+ <dt>Server</dt>
+ <dd>An application
+ program that accepts connections in order to service requests by
+ sending back responses.
+ <p>Any given program may be capable of being
+ both a client and a server; our use of these terms refers only to
+ the role being performed by the program for a particular
+ connection, rather than to the program's capabilities in general.
+ Likewise, any server may act as an origin server, proxy, gateway,
+ or tunnel, switching behavior based on the nature of each request
+ [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>]. </p></dd>
+
+ <dt><dfn id="dfn-linked-data-platform-resource">Linked Data Platform Resource</dfn> (<abbr title="Linked Data Platform Resource">LDPR</abbr>)</dt>
+ <dd>A HTTP resource whose state is represented in any way that conforms to the simple lifecycle
+ patterns and conventions in <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr" class="sectionRef sec-ref">section <span class="secno">4.</span> <span class="sec-title">Linked Data Platform Resources</span></a>.<p></p></dd>
+
+ <dt><dfn id="dfn-linked-data-platform-rdf-source">Linked Data Platform <abbr title="Resource Description Framework">RDF</abbr> Source</dfn> (<abbr title="Linked Data Platform RDF Source">LDP-RS</abbr>)</dt>
+ <dd>An <a title="Linked Data Platform Resource" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-resource" class="internalDFN"><abbr title="Linked Data Platform Resource">LDPR</abbr></a> whose state is fully represented in <abbr title="Resource Description Framework">RDF</abbr>, corresponding to
+ an <abbr title="Resource Description Framework">RDF</abbr> <a href="http://www.w3.org/TR/rdf11-concepts/#dfn-named-graph">named graph</a>. See also the term
+ <a href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-source"><abbr title="Resource Description Framework">RDF</abbr> Source</a> from [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-rdf11-concepts">rdf11-concepts</a></cite>].
+ <p></p></dd>
+
+ <dt><dfn id="dfn-linked-data-platform-non-rdf-source">Linked Data Platform Non-<abbr title="Resource Description Framework">RDF</abbr> Source</dfn> (<abbr title="Linked Data Platform Non-RDF Source">LDP-NR</abbr>)</dt>
+ <dd>An <a title="Linked Data Platform Resource" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-resource" class="internalDFN"><abbr title="Linked Data Platform Resource">LDPR</abbr></a> whose state is <em>not</em> represented in <abbr title="Resource Description Framework">RDF</abbr>.
+ These are binary or text documents that do not have useful <abbr title="Resource Description Framework">RDF</abbr> representations.
+ <p></p></dd>
+
+ <dt><dfn id="dfn-linked-data-platform-container">Linked Data Platform Container</dfn> (<abbr title="Linked Data Platform Container">LDPC</abbr>)</dt>
+ <dd>An <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> representing a collection of linked
+ documents (<a href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-document"><abbr title="Resource Description Framework">RDF</abbr> Document</a> [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-rdf11-concepts">rdf11-concepts</a></cite>] or information resources [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-WEBARCH">WEBARCH</a></cite>])
+ that responds to client requests for creation, modification, and/or enumeration of its linked members and documents,
+ and that conforms to the simple lifecycle
+ patterns and conventions in <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc" class="sectionRef sec-ref">section <span class="secno">5.</span> <span class="sec-title">Linked Data Platform Containers</span></a>.
+ <p></p></dd>
+
+ <dt><dfn id="dfn-linked-data-platform-basic-container">Linked Data Platform Basic Container</dfn> (<abbr title="Linked Data Platform Basic Container">LDP-BC</abbr>)</dt>
+ <dd>An <a title="Linked Data Platform Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-container" class="internalDFN"><abbr title="Linked Data Platform Container">LDPC</abbr></a> that defines a simple link to
+ its <a title="Containment" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-containment" class="internalDFN">contained</a> documents (information resources) [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-WEBARCH">WEBARCH</a></cite>].
+ <p></p></dd>
+
+ <dt><dfn id="dfn-linked-data-platform-direct-container">Linked Data Platform Direct Container</dfn> (<abbr title="Linked Data Platform Direct Container">LDP-DC</abbr>)</dt>
+ <dd>An <a title="Linked Data Platform Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-container" class="internalDFN"><abbr title="Linked Data Platform Container">LDPC</abbr></a> adds the concept <a title="Membership" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership" class="internalDFN">membership</a>, allows the flexibility of choosing what form its
+ <a title="Membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">membership triples</a> take, and allows <a title="Membership" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership" class="internalDFN">members</a> to be
+ any resources [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-WEBARCH">WEBARCH</a></cite>], not only documents.
+ <p></p></dd>
+
+ <dt><dfn id="dfn-linked-data-platform-indirect-container">Linked Data Platform Indirect Container</dfn> (<abbr title="Linked Data Platform Indirect Container">LDP-IC</abbr>)</dt>
+ <dd>An <a title="Linked Data Platform Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-container" class="internalDFN"><abbr title="Linked Data Platform Container">LDPC</abbr></a> that is similar to a <a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN"><abbr title="Linked Data Platform Direct Container">LDP-DC</abbr></a>
+ and is capable of having <a title="Membership" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership" class="internalDFN">members</a> whose URIs are based
+ on the content of its <a title="Containment" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-containment" class="internalDFN">contained</a> documents rather than the URIs assigned to those documents.
+ <p></p></dd>
+
+ <dt><dfn id="dfn-membership">Membership</dfn></dt>
+ <dd>The relationship linking an <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> (<abbr title="Linked Data Platform Containers">LDPCs</abbr> are also LDP-RSs) and its member <abbr title="Linked Data Platform Resources">LDPRs</abbr>.
+ There often is a linked <abbr title="Linked Data Platform Container">LDPC</abbr> that assists with managing the member <abbr title="Linked Data Platform Resources">LDPRs</abbr>.<p></p></dd>
+
+ <dt><dfn id="dfn-membership-triples">Membership triples</dfn></dt>
+ <dd>A set of triples in an <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr>'s state that lists its members.
+ An <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr>'s membership triples all have one of the following patterns:
+ <table class="indented">
+ <tbody><tr>
+ <td style="background:#DDDDDD"> <var>membership-constant-URI</var> </td>
+ <td style="background:#FFFFFF"> <var>membership-predicate</var> </td>
+ <td style="background:#CCFFFF"> <var>member-derived-URI</var> </td>
+ </tr>
+ <tr>
+ <td style="background:#CCFFFF"> <var>member-derived-URI</var> </td>
+ <td style="background:#FFFFFF"> <var>membership-predicate</var> </td>
+ <td style="background:#DDDDDD"> <var>membership-constant-URI</var> </td>
+ </tr>
+ </tbody></table>
+ The difference between the two is simply which position member-derived-URI occupies, which is usually
+ driven by the choice of <var>membership-predicate</var>. Most predicates have a natural forward direction
+ inherent in their name, and existing vocabularies contain useful examples that read naturally in
+ each direction. <code>ldp:member</code> and <code>dcterms:isPartOf</code> are representative examples.
+ <p>
+ Each linked container exposes properties (see <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-general" class="sectionRef sec-ref">section <span class="secno">5.2.1</span> <span class="sec-title">General</span></a>)
+ that allow clients to determine which pattern it
+ uses, what the actual <var>membership-predicate</var> and <var>membership-constant-URI</var> values are,
+ and (for containers that allow the creation of new members) what value is used
+ for the <var>member-derived-URI</var> based on the client's input to the
+ creation process.</p>
+ <p></p></dd>
+
+ <dt><dfn id="dfn-membership-predicate">Membership predicate</dfn></dt>
+ <dd>The predicate of all an <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr>'s <a title="Membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">membership triples</a>.
+ <p></p></dd>
+
+ <dt><dfn id="dfn-containment">Containment</dfn></dt>
+ <dd>The relationship binding an <abbr title="Linked Data Platform Container">LDPC</abbr> to <abbr title="Linked Data Platform Resources">LDPRs</abbr> whose lifecycle it controls and is aware of. The
+ lifecycle of the contained <abbr title="Linked Data Platform Resource">LDPR</abbr> is limited by the lifecycle of the containing <abbr title="Linked Data Platform Container">LDPC</abbr>;
+ that is, a contained <abbr title="Linked Data Platform Resource">LDPR</abbr> cannot be created (through LDP-defined means) before its containing <abbr title="Linked Data Platform Container">LDPC</abbr> exists.
+ <p></p></dd>
+
+ <dt><dfn id="dfn-containment-triples">Containment triples</dfn></dt>
+ <dd>
+ A set of triples in an <abbr title="Linked Data Platform Container">LDPC</abbr>'s state, maintained by the <abbr title="Linked Data Platform Container">LDPC</abbr>, that lists documents created by the <abbr title="Linked Data Platform Container">LDPC</abbr> but not yet deleted.
+ These triples <strong>always</strong> have the form: <var>( <abbr title="Linked Data Platform Container">LDPC</abbr> URI, ldp:contains , document-URI )</var>.
+ <p></p></dd>
+
+ <dt><dfn id="dfn-empty-container-triples">Empty-container triples</dfn></dt>
+ <dd>
+ The portion of an <abbr title="Linked Data Platform Container">LDPC</abbr>'s state that would be present when the container is empty. Currently, this definition
+ is equivalent to all the <abbr title="Linked Data Platform Container">LDPC</abbr>'s triples minus its containment triples and minus its membership
+ triples, but if future versions of LDP define additional classes of triples then this definition
+ would expand to subtract out those classes as well.
+ <p></p></dd>
+ </dl>
+
+<section id="conventions" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h3 aria-level="2" role="heading" id="h3_conventions"><span class="secno">2.1 </span>Conventions Used in This Document</h3>
+ <p>The namespace for LDP is <code>http://www.w3.org/ns/ldp#</code>.</p>
+ <p>Sample resource representations are provided in <code>text/turtle</code>
+ format [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-turtle">turtle</a></cite>].</p>
+ <p>Commonly used namespace prefixes:</p>
+ <pre style="word-wrap: break-word; white-space: pre-wrap;"> @prefix dcterms: <http://purl.org/dc/terms/>.
+ @prefix foaf: <http://xmlns.com/foaf/0.1/>.
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
+ @prefix ldp: <http://www.w3.org/ns/ldp#>.
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#>.</pre>
+</section>
+</section>
+
+<section id="conformance" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><!--OddPage--><h2 aria-level="1" role="heading" id="h2_conformance"><span class="secno">3. </span>Conformance</h2>
+<p>
+ As well as sections marked as non-normative, all authoring guidelines, diagrams, examples,
+ and notes in this specification are non-normative. Everything else in this specification is
+ normative.
+</p>
+<p>
+ The key words <em class="rfc2119" title="MUST">MUST</em>, <em class="rfc2119" title="MUST NOT">MUST NOT</em>, <em class="rfc2119" title="REQUIRED">REQUIRED</em>, <em class="rfc2119" title="SHOULD">SHOULD</em>, <em class="rfc2119" title="SHOULD NOT">SHOULD NOT</em>, <em class="rfc2119" title="RECOMMENDED">RECOMMENDED</em>, <em class="rfc2119" title="MAY">MAY</em>,
+ and <em class="rfc2119" title="OPTIONAL">OPTIONAL</em> in this specification are to be interpreted as described in [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC2119">RFC2119</a></cite>].
+</p>
+
+
+<p>The status of the sections of Linked Data Platform 1.0 (this document) is as follows:</p>
+<ul>
+ <li>1. Introduction: <b>non-normative</b></li>
+ <li>2. Terminology: <b>normative</b></li>
+ <li>3. Conformance: <b>normative</b></li>
+ <li>4. Linked Data Platform Resources: <b>normative</b></li>
+ <li>5. Linked Data Platform Containers: <b>normative</b></li>
+ <li>6. Notable information from normative references: <b>non-normative</b></li>
+ <li>7. HTTP Header Definitions: <b>normative</b></li>
+ <li>8. Security Considerations: <b>non-normative</b></li>
+ <li>A. Acknowledgements: <b>non-normative</b></li>
+ <li>B. Change History: <b>non-normative</b></li>
+ <li>C.1 Normative references: <b>normative</b></li>
+ <li>C.2 Non-normative references: <b>non-normative</b></li>
+</ul>
+
+<p>A conforming <b><dfn id="dfn-ldp-client">LDP client</dfn></b> is a conforming HTTP client [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>] that follows the rules defined by LDP in
+<a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr" class="sectionRef sec-ref">section <span class="secno">4.</span> <span class="sec-title">Linked Data Platform Resources</span></a> and also
+<a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc" class="sectionRef sec-ref">section <span class="secno">5.</span> <span class="sec-title">Linked Data Platform Containers</span></a>.
+</p>
+
+<p>A conforming <b><dfn id="dfn-ldp-server">LDP server</dfn></b> is a conforming HTTP server [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>] that follows the rules defined by LDP in
+<a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr" class="sectionRef sec-ref">section <span class="secno">4.</span> <span class="sec-title">Linked Data Platform Resources</span></a> when it is serving <abbr title="Linked Data Platform Resources">LDPRs</abbr>, and also
+<a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc" class="sectionRef sec-ref">section <span class="secno">5.</span> <span class="sec-title">Linked Data Platform Containers</span></a> when it is serving <abbr title="Linked Data Platform Containers">LDPCs</abbr>.
+LDP does not constrain its behavior when serving other HTTP resources.
+</p>
+</section>
+
+<section id="ldpr" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<!--OddPage--><h2 aria-level="1" role="heading" id="h2_ldpr"><span class="secno">4. </span>Linked Data Platform Resources</h2>
+
+<section class="informative" id="ldpr-informative" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h3 aria-level="2" role="heading" id="h3_ldpr-informative"><span class="secno">4.1 </span>Introduction</h3><p><em>This section is non-normative.</em></p>
+ <p>Linked Data Platform Resources (<dfn id="dfn-linked-data-platform-resources"><abbr title="Linked Data Platform Resources">LDPRs</abbr></dfn>) are HTTP resources
+ that conform to the simple patterns and conventions in this section.
+ HTTP requests to access, modify, create or delete <abbr title="Linked Data Platform Resources">LDPRs</abbr> are accepted
+ and processed by <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a>. Most <abbr title="Linked Data Platform Resources">LDPRs</abbr> are domain-specific resources
+ that contain data for an entity in some domain, which could be
+ commercial, governmental, scientific, religious, or other.</p>
+ <p>Some of the rules defined in this document provide
+ clarification and refinement of the base Linked Data rules [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-LINKED-DATA">LINKED-DATA</a></cite>];
+ others address additional needs.</p>
+ <p>The rules for Linked Data Platform Resources address basic
+ questions such as:</p>
+ <ul>
+ <li>What resource representations should be used?</li>
+ <li>How is optimistic collision detection handled for updates?</li>
+ <li>What should client expectations be for changes to linked-to resources,
+ such as type changes?</li>
+ <li>What can servers do to ease the burden of constraints for resource
+ creation?</li>
+ <li>How do I GET the representation of a large resource broken up into pages?</li>
+ </ul>
+ <p>Additional non-normative guidance is available in the <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp-bp/ldp-bp.html" class="external" title="LDP Best Practices and Guidelines" rel="nofollow">LDP Best Practices and Guidelines editor's draft</a> that addresses
+ questions such as:</p>
+ <ul>
+ <li>What literal value types should be used?</li>
+ <li>Are there some typical vocabularies that should be reused?</li>
+ </ul>
+ <p>The following sections define the conformance rules for LDP servers when serving <abbr title="Linked Data Platform Resources">LDPRs</abbr>.
+ Companion non-normative documents describe additional guidelines for use when interacting with <abbr title="Linked Data Platform Resources">LDPRs</abbr>.
+ </p>
+ <p><abbr title="Linked Data Platform RDF Source">LDP-RS</abbr>'s representations may be too big, one strategy is to break up the response representation
+ into client consumable chunks called pages. A separate LDP specification outlines the conformance
+ rules around pagination [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-LDP-PAGING">LDP-PAGING</a></cite>].
+ </p>
+ <p>An LDP server manages two kinds of <a title="Linked Data Platform Resources" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-resources" class="internalDFN"><abbr title="Linked Data Platform Resources">LDPRs</abbr></a>, those resources who whose state
+ is represented using <abbr title="Resource Description Framework">RDF</abbr> (<abbr title="Linked Data Platform RDF Source">LDP-RS</abbr>) and those using other formats (<abbr title="Linked Data Platform Non-RDF Source">LDP-NR</abbr>). LDP-RSs have the unique
+ quality that their representation is based on <abbr title="Resource Description Framework">RDF</abbr>, which addresses a number of use cases from web metadata, open data
+ models, machine processable information, and automated processing by software agents [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-rdf11-concepts">rdf11-concepts</a></cite>]. LDP-NRs are almost anything
+ on the Web today: images, HTML pages, word processing documents, spreadsheets, etc. and LDP-RSs hold
+ metadata associated with LDP-NRs in some cases.
+ </p>
+ <figure id="fig-ldpr-types">
+ <img src="images/ldpr1.png" alt="Sample separation of Linked Data Platform Resource">
+ <figcaption>Fig. <span class="figno">1</span> <span class="fig-title">Samples of different types of <abbr title="Linked Data Platform Resources">LDPRs</abbr></span></figcaption>
+ </figure>
+ <p>The LDP-NRs and LDP-RSs are simply sub-types of <abbr title="Linked Data Platform Resources">LDPRs</abbr>, as illustrated in <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#fig-ldpr-class" class="fig-ref">Fig. <span class="figno">2</span> <span class="fig-title">Class relationship of types of Linked Data Platform Resources</span></a>.</p>
+ <figure id="fig-ldpr-class">
+ <img src="images/ldpr2.png" alt="Class Diagram of Linked Data Platform Resource">
+ <figcaption>Fig. <span class="figno">2</span> <span class="fig-title">Class relationship of types of Linked Data Platform Resources</span></figcaption>
+ </figure>
+
+</section>
+
+<section id="ldpr-resource" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h3 aria-level="2" role="heading" id="h3_ldpr-resource"><span class="secno">4.2 </span>Resource</h3>
+
+<section id="ldpr-general" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_ldpr-general"><span class="secno">4.2.1 </span>General</h4>
+
+ <section id="ldpr-gen-http" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-gen-http"><span class="secno">4.2.1.1 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> at least be HTTP/1.1 conformant servers [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>].
+ </h5></section><!-- Was 4.2.1 / #ldpr-4_2_1 -->
+
+ <section id="ldpr-gen-binary" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-gen-binary"><span class="secno">4.2.1.2 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MAY">MAY</em> host a mixture of <abbr title="Linked Data Platform Resources">LDPRs</abbr>, <a title="Linked Data Platform RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN">LDP-RSs</a>
+ and <a title="Linked Data Platform Non-RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-non-rdf-source" class="internalDFN">LDP-NRs</a>. For example, it
+ is common for <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> to need to host binary or text resources
+ that do not have useful <abbr title="Resource Description Framework">RDF</abbr> representations.</h5></section><!-- Was 4.2.3 / #ldpr-4_2_3 -->
+
+ <section id="ldpr-gen-etags" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-gen-etags"><span class="secno">4.2.1.3 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP server</a> responses <em class="rfc2119" title="MUST">MUST</em> use entity tags (either
+ weak or strong ones) as response <code>ETag</code> header values.
+ </h5></section><!-- Was 4.2.8 / #ldpr-4_2_8 -->
+
+ <section id="ldpr-gen-linktypehdr" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-gen-linktypehdr"><span class="secno">4.2.1.4 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a>
+ exposing <abbr title="Linked Data Platform Resources">LDPRs</abbr>
+ <em class="rfc2119" title="MUST">MUST</em> advertise their LDP support by exposing a HTTP <code>Link</code> header
+ with a target URI of <code>http://www.w3.org/ns/ldp#Resource</code>, and
+ a link relation type of <code>type</code> (that is, <code>rel='type'</code>)
+ in all responses to requests made
+ to the <abbr title="Linked Data Platform Resource">LDPR</abbr>'s HTTP <code>Request-URI</code>.
+ </h5></section><!-- Was 4.2.10 / #ldpr-4_2_10 -->
+ <blockquote>
+ <p>
+ Note:
+ The HTTP <code>Link</code> header is the method by which servers assert their support for the LDP specification
+ on a specific resource in a way that clients can inspect dynamically at run-time.
+ This is <strong>not</strong> equivalent to the
+ presence of a <var>(subject-URI, <code>rdf:type</code>, <code>ldp:Resource</code>)</var> triple in an <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr>.
+ The presence of this header asserts that the server complies with the LDP specification's constraints on
+ HTTP interactions with <abbr title="Linked Data Platform Resources">LDPRs</abbr>, that is
+ it asserts that the resource <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-gen-etags">has Etags</a>, <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldprs-gen-rdf">has an <abbr title="Resource Description Framework">RDF</abbr> representation</a>, and so on,
+ which is not true of all Web resources served as <abbr title="Resource Description Framework">RDF</abbr> media types.
+ </p>
+ <p>
+ Note:
+ <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-gen-binary">An LDP server can host a mixture of <abbr title="Linked Data Platform Resources">LDPRs</abbr> and other resources</a>, and therefore there is no implication
+ that LDP support advertised on one HTTP <code>Request-URI</code> means that other
+ resources on the same server are also <abbr title="Linked Data Platform Resources">LDPRs</abbr>. Each HTTP <code>Request-URI</code> needs to be
+ individually inspected, in the absence of outside information.
+ </p>
+ </blockquote>
+
+ <section id="ldpr-gen-defbaseuri" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-gen-defbaseuri"><span class="secno">4.2.1.5 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> assign the default
+ base-URI for [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC3987">RFC3987</a></cite>] relative-URI resolution to be the HTTP
+ <code>Request-URI</code> when the resource already exists, and to the URI of the created resource when the request results
+ in the creation of a new resource.
+ </h5></section><!-- Was 4.2.12 / #ldpr-4_2_12 -->
+
+ <section id="ldpr-gen-pubclireqs" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-gen-pubclireqs"><span class="secno">4.2.1.6 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em>
+ publish any constraints on <a title="LDP client" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP clients’</a> ability to
+ create or update <abbr title="Linked Data Platform Resources">LDPRs</abbr>, by adding a Link header with <code>rel='describedby'</code>
+ [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC5988">RFC5988</a></cite>] to all responses to requests which fail due to violation of
+ those constraints. For example, a server that refuses resource creation
+ requests via HTTP PUT, POST, or PATCH would return this <code>Link</code> header on its
+ 4xx responses to such requests.
+ The same <code>Link</code> header <em class="rfc2119" title="MAY">MAY</em> be provided on other responses. LDP neither
+ defines nor constrains the representation of the link's target resource. Natural language
+ constraint documents are therefore permitted,
+ although machine-readable ones facilitate better client interactions.
+ </h5></section><!-- Was 4.2.13 / #ldpr-4_2_13 -->
+
+</section>
+
+<section id="ldpr-HTTP_GET" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_ldpr-HTTP_GET"><span class="secno">4.2.2 </span>HTTP GET</h4>
+ <section id="ldpr-get-must" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-get-must"><span class="secno">4.2.2.1 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> support the HTTP <code>GET</code> Method for <abbr title="Linked Data Platform Resources">LDPRs</abbr>.
+ </h5></section><!-- Was 4.3.1 / #ldpr-4_3_1 -->
+
+ <section id="ldpr-get-options" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-get-options"><span class="secno">4.2.2.2 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> support the HTTP response headers defined in
+ <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-HTTP_OPTIONS" class="sectionRef sec-ref">section <span class="secno">4.2.8</span> <span class="sec-title">HTTP OPTIONS</span></a>.
+ </h5></section><!-- Was 4.3.2 / #ldpr-4_3_2 -->
+
+</section>
+
+<section id="ldpr-HTTP_POST" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_ldpr-HTTP_POST"><span class="secno">4.2.3 </span>HTTP POST</h4>
+ <p>
+ Per [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>], this HTTP method is optional and
+ this specification does not require <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> to support it.
+ When an LDP server supports this method,
+ this specification imposes no new requirements for <abbr title="Linked Data Platform Resources">LDPRs</abbr>.
+ </p>
+
+ <p>Clients can create <abbr title="Linked Data Platform Resources">LDPRs</abbr> via <code>POST</code> (<a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-HTTP_POST" class="sectionRef sec-ref">section <span class="secno">5.2.3</span> <span class="sec-title">HTTP POST</span></a>) to an <abbr title="Linked Data Platform Container">LDPC</abbr>,
+ via <code>PUT</code> (<a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-HTTP_PUT" class="sectionRef sec-ref">section <span class="secno">4.2.4</span> <span class="sec-title">HTTP PUT</span></a>), or any other methods allowed
+ for HTTP resources. Any server-imposed constraints on <abbr title="Linked Data Platform Resource">LDPR</abbr> creation or update
+ <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-gen-pubclireqs">must be advertised</a> to clients.
+
+ </p>
+</section>
+
+<section id="ldpr-HTTP_PUT" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_ldpr-HTTP_PUT"><span class="secno">4.2.4 </span>HTTP PUT</h4>
+ <p>
+ Per [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>], this HTTP method is optional and
+ this specification does not require <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> to support it.
+ When an LDP server supports this method,
+ this specification imposes the following new requirements for <abbr title="Linked Data Platform Resources">LDPRs</abbr>.
+ </p>
+
+ <p>
+ Any server-imposed constraints on <abbr title="Linked Data Platform Resource">LDPR</abbr> creation or update
+ <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-gen-pubclireqs">must be advertised</a> to clients.
+ </p>
+
+ <section id="ldpr-put-replaceall" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-put-replaceall"><span class="secno">4.2.4.1 </span>If a HTTP <code>PUT</code> is accepted on an existing resource,
+ <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em>
+ replace the entire persistent state of the identified resource with
+ the entity representation in the body of the request.
+ <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MAY">MAY</em> ignore server managed properties such as <code>dcterms:modified</code>
+ and <code>dcterms:creator</code> if they are not under
+ client control. Any <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> that wish
+ to support a more sophisticated merge of data provided by the client
+ with existing state stored on the server for a resource <em class="rfc2119" title="MUST">MUST</em> use HTTP
+ <code>PATCH</code>, not HTTP <code>PUT</code>.
+ </h5></section><!-- Was 4.5.1 / #ldpr-4_5_1 -->
+
+ <section id="ldpr-put-simpleupdate" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-put-simpleupdate"><span class="secno">4.2.4.2 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="SHOULD">SHOULD</em> allow clients to update resources without
+ requiring detailed knowledge of server-specific constraints.
+ This is a consequence of the requirement to enable simple creation and modification of <abbr title="Linked Data Platform Resources">LDPRs</abbr>.
+ </h5></section><!-- Was 4.5.7 / #ldpr-4_5_7 -->
+
+ <section id="ldprs-put-servermanagedprops" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldprs-put-servermanagedprops"><span class="secno">4.2.4.3 </span>
+ If an otherwise valid HTTP <code>PUT</code> request is received
+ that attempts to change properties the server does not allow clients to modify,
+ <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em>
+ respond with a 4xx range status code (typically
+ 409 Conflict).
+ <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="SHOULD">SHOULD</em> provide a corresponding response body containing
+ information about which properties could not be
+ persisted.
+ The format of the 4xx response body is not constrained by LDP.
+ </h5></section><!-- Was 4.5.1.1 / #ldpr-4_5_1_1 -->
+ <blockquote>
+ Non-normative note: Clients might provide properties equivalent to those already in the resource's state,
+ e.g. as part of a GET/update representation/PUT sequence, and those PUT requests are intended to work as long as the
+ server-controlled properties are identical on the GET response and the subsequent PUT request.
+ </blockquote>
+
+ <section id="ldprs-put-failed" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldprs-put-failed"><span class="secno">4.2.4.4 </span>
+ If an otherwise valid HTTP <code>PUT</code> request is received that contains properties the server
+ chooses not to persist, e.g. unknown content,
+ <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> respond with an appropriate 4xx range status code
+ [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>].
+ <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="SHOULD">SHOULD</em> provide a corresponding response body containing
+ information about which properties could not be
+ persisted.
+ The format of the 4xx response body is not constrained by LDP. LDP servers
+ expose these application-specific constraints as described in <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-general" class="sectionRef sec-ref">section <span class="secno">4.2.1</span> <span class="sec-title">General</span></a>.
+ </h5></section><!-- Was 4.5.4 / #ldpr-4_5_4 -->
+
+ <section id="ldpr-put-precond" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-put-precond"><span class="secno">4.2.4.5 </span><a title="LDP client" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP clients</a> <em class="rfc2119" title="SHOULD">SHOULD</em> use the HTTP <code>If-Match</code>
+ header and HTTP <code>ETags</code> to ensure it isn’t
+ modifying a resource that has changed since the client last retrieved
+ its representation. <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="SHOULD">SHOULD</em> require the HTTP <code>If-Match</code> header and HTTP <code>ETags</code>
+ to detect collisions. <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> respond with status code 412
+ (Condition Failed) if <code>ETag</code>s fail to match when there are no other
+ errors with the request [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>]. <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> that require conditional requests <em class="rfc2119" title="MUST">MUST</em> respond with status code 428
+ (Precondition Required) when the absence of a precondition is the only reason for rejecting the request [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC6585">RFC6585</a></cite>].
+ </h5></section><!-- Was 4.5.2 / #ldpr-4_5_2 -->
+
+ <section id="ldpr-put-create" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-put-create"><span class="secno">4.2.4.6 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MAY">MAY</em> choose to allow the creation of new resources using HTTP <code>PUT</code>.
+ </h5></section><!-- Was 4.5.6 / #ldpr-4_5_6 -->
+
+</section>
+
+<section id="ldpr-HTTP_DELETE" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_ldpr-HTTP_DELETE"><span class="secno">4.2.5 </span>HTTP DELETE</h4>
+ <p>
+ Per [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>], this HTTP method is optional and
+ this specification does not require <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> to support it.
+ When an LDP server supports this method,
+ this specification imposes the following new requirements for <abbr title="Linked Data Platform Resources">LDPRs</abbr>.
+ </p>
+
+ <p>Additional requirements on HTTP <code>DELETE</code> of <abbr title="Linked Data Platform Resources">LDPRs</abbr> within containers can be found in
+ <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-HTTP_DELETE" class="sectionRef sec-ref">section <span class="secno">5.2.5</span> <span class="sec-title">HTTP DELETE</span></a>.
+ </p>
+</section>
+
+<section id="ldpr-HTTP_HEAD" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_ldpr-HTTP_HEAD"><span class="secno">4.2.6 </span>HTTP HEAD</h4>
+ <p>Note that certain LDP mechanisms rely on HTTP headers, and HTTP generally requires that
+ <code>HEAD</code> responses include the same headers as <code>GET</code> responses.
+ Thus, implementers should also carefully read sections <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-HTTP_GET" class="sec-ref"><span class="secno">4.2.2</span> <span class="sec-title">HTTP GET</span></a>
+ and <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-HTTP_OPTIONS" class="sec-ref"><span class="secno">4.2.8</span> <span class="sec-title">HTTP OPTIONS</span></a>.</p>
+ <section id="ldpr-head-must" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-head-must"><span class="secno">4.2.6.1 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> support the HTTP <code>HEAD</code> method.
+ </h5></section><!-- Was 4.7.1 / #ldpr-4_7_1 -->
+</section>
+
+<section id="ldpr-HTTP_PATCH" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_ldpr-HTTP_PATCH"><span class="secno">4.2.7 </span>HTTP PATCH</h4>
+ <p>
+ Per [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC5789">RFC5789</a></cite>], this HTTP method is optional and
+ this specification does not require <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> to support it.
+ When an LDP server supports this method,
+ this specification imposes the following new requirements for <abbr title="Linked Data Platform Resources">LDPRs</abbr>.
+ </p>
+
+ <p>
+ Any server-imposed constraints on <abbr title="Linked Data Platform Resource">LDPR</abbr> creation or update
+ <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-gen-pubclireqs">must be advertised</a> to clients.
+ </p>
+
+ <section id="ldpr-patch-acceptpatch" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-patch-acceptpatch"><span class="secno">4.2.7.1 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> that support <code>PATCH</code> <em class="rfc2119" title="MUST">MUST</em>
+ include an <code>Accept-Patch</code> HTTP response header [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC5789">RFC5789</a></cite>] on HTTP <code>OPTIONS</code>
+ requests, listing patch document media type(s) supported by the server.
+ </h5></section><!-- Was 4.8.4 / #ldpr-4_8_4 -->
+
+</section>
+
+<section id="ldpr-HTTP_OPTIONS" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_ldpr-HTTP_OPTIONS"><span class="secno">4.2.8 </span>HTTP OPTIONS</h4>
+ <p>This specification imposes the following new requirements on HTTP <code>OPTIONS</code> for <abbr title="Linked Data Platform Resources">LDPRs</abbr>
+ beyond those in [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>]. Other sections of this specification, for example
+ <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-HTTP_PATCH">PATCH</a>,
+ <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#header-accept-post">Accept-Post</a>,
+ add other requirements on <code>OPTIONS</code> responses.
+ </p>
+
+ <section id="ldpr-options-must" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-options-must"><span class="secno">4.2.8.1 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> support the HTTP <code>OPTIONS</code> method.
+ </h5></section><!-- Was 4.9.1 / #ldpr-4_9_1 -->
+
+ <section id="ldpr-options-allow" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-options-allow"><span class="secno">4.2.8.2 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> indicate their support for HTTP Methods by
+ responding to a HTTP <code>OPTIONS</code> request on the <abbr title="Linked Data Platform Resource">LDPR</abbr>’s URL with the HTTP
+ Method tokens in the HTTP response header <code>Allow</code>.
+ </h5></section><!-- Was 4.9.2 / #ldpr-4_9_2 -->
+
+</section> <!-- h2 -->
+
+</section> <!-- ldpr-resource -->
+
+<section id="ldprs" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h3 aria-level="2" role="heading" id="h3_ldprs"><span class="secno">4.3 </span><abbr title="Resource Description Framework">RDF</abbr> Source</h3>
+
+<p>The following section contains normative clauses for <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN">Linked Data Platform <abbr title="Resource Description Framework">RDF</abbr> Source</a>.</p>
+
+<section id="ldprs-general" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_ldprs-general"><span class="secno">4.3.1 </span>General</h4>
+
+ <section id="ldprs-are-ldpr" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldprs-are-ldpr"><span class="secno">4.3.1.1 </span>Each <a title="Linked Data Platform RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN">LDP <abbr title="Resource Description Framework">RDF</abbr> Source</a> <em class="rfc2119" title="MUST">MUST</em> also be
+ a conforming <a title="Linked Data Platform Resource" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-resource" class="internalDFN">LDP Resource</a> in <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-resource" class="sectionRef sec-ref">section <span class="secno">4.2</span> <span class="sec-title">Resource</span></a> along the
+ following restrictions in this section. <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP client</a>s <em class="rfc2119" title="MAY">MAY</em> infer the following triple:
+ whose subject is <code>ldp:RDFSource</code>,
+ whose predicate is <code>rdfs:subClassOf</code>,
+ and whose object is <code>ldp:Resource</code>,
+ but there is no requirement to materialize this triple in the <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> representation.
+ </h5></section>
+
+ <section id="ldprs-gen-atleast1rdftype" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldprs-gen-atleast1rdftype"><span class="secno">4.3.1.2 </span><a title="Linked Data Platform RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN">LDP-RSs</a> representations <em class="rfc2119" title="SHOULD">SHOULD</em> have at least one <code>rdf:type</code>
+ set explicitly. This makes the representations much more useful to
+ client applications that don’t support inferencing.
+ </h5></section><!-- Was 4.2.5 / #ldpr-4_2_5 -->
+
+ <section id="ldprs-rdftype" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldprs-rdftype"><span class="secno">4.3.1.3 </span>The representation of an <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> <em class="rfc2119" title="MAY">MAY</em> have an <code>rdf:type</code>
+ of only one of <code>ldp:RDFSource</code> for <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN">Linked Data Platform <abbr title="Resource Description Framework">RDF</abbr> Source</a>.
+ </h5></section><!-- Was 5.2.7 / #ldpc-5_2_7 -->
+
+ <section id="ldprs-gen-rdf" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldprs-gen-rdf"><span class="secno">4.3.1.4 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> provide an <abbr title="Resource Description Framework">RDF</abbr> representation for <a title="Linked Data Platform RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN">LDP-RSs</a>.
+ The HTTP <code>Request-URI</code> of the <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> is typically the subject of most triples in the response.
+ </h5></section><!-- Was 4.2.2 / #ldpr-4_2_2 -->
+
+ <section id="ldprs-gen-reusevocab" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldprs-gen-reusevocab"><span class="secno">4.3.1.5 </span><a title="Linked Data Platform RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN">LDP-RSs</a> <em class="rfc2119" title="SHOULD">SHOULD</em> reuse existing vocabularies instead of creating
+ their own duplicate vocabulary terms. In addition to this general rule, some specific cases are
+ covered by other conformance rules.
+ </h5></section><!-- Was 4.2.4 / #ldpr-4_2_4 -->
+
+ <section id="ldprs-gen-reusevocabsuchas" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldprs-gen-reusevocabsuchas"><span class="secno">4.3.1.6 </span><a title="Linked Data Platform RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN">LDP-RSs</a> predicates <em class="rfc2119" title="SHOULD">SHOULD</em> use standard vocabularies such as Dublin Core
+ [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-DC-TERMS">DC-TERMS</a></cite>], <abbr title="Resource Description Framework">RDF</abbr> [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-rdf11-concepts">rdf11-concepts</a></cite>] and <abbr title="Resource Description Framework">RDF</abbr> Schema [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-rdf-schema">rdf-schema</a></cite>], whenever
+ possible.
+ </h5></section><!-- Was 4.2.4.1 / #ldpr-4_2_4_1 -->
+
+ <section id="ldp-cli-multitype" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldp-cli-multitype"><span class="secno">4.3.1.7 </span>In the absence of special knowledge of the application or domain,
+ <a title="LDP client" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP clients</a> <em class="rfc2119" title="MUST">MUST</em> assume that any <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> can have multiple values for <code>rdf:type</code>.
+ </h5></section> <!-- Was 4.3.5 / #ldpr-4_3_5 -->
+
+ <section id="ldpr-cli-typeschange" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-cli-typeschange"><span class="secno">4.3.1.8 </span>In the absence of special knowledge of the application or domain,
+ <a title="LDP client" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP clients</a> <em class="rfc2119" title="MUST">MUST</em> assume that the <code>rdf:type</code> values
+ of a given <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> can change over time.
+ </h5></section> <!-- Was 4.3.6 / #ldpr-4_3_6 -->
+
+ <section id="ldpr-cli-openpreds" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-cli-openpreds"><span class="secno">4.3.1.9 </span><a title="LDP client" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP clients</a> <em class="rfc2119" title="SHOULD">SHOULD</em> always assume that the set of predicates for a
+ <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> of a particular type at an arbitrary server is open, in the
+ sense that different resources of the same type may not all have the
+ same set of predicates in their triples, and the set of predicates that
+ are used in the state of any one <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> is not limited to any pre-defined
+ set.
+ </h5></section> <!-- Was 4.5.3 / #ldpr-ldpr-4_5_3 -->
+
+ <section id="ldprs-gen-noinferencing" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldprs-gen-noinferencing"><span class="secno">4.3.1.10 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a>
+ <em class="rfc2119" title="MUST NOT">MUST NOT</em> require LDP clients to implement inferencing in order to recognize the subset
+ of content defined by LDP. Other specifications built on top of LDP may require clients
+ to implement inferencing [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-rdf11-concepts">rdf11-concepts</a></cite>]. The practical implication is that all content defined by LDP
+ must be explicitly represented, unless noted otherwise within this document.
+ </h5></section><!-- Was 4.2.11 / #ldpr-4_2_11 -->
+
+ <section id="ldpr-cli-preservetriples" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-cli-preservetriples"><span class="secno">4.3.1.11 </span>
+ A <a title="LDP client" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP client</a> <em class="rfc2119" title="MUST">MUST</em> preserve all triples retrieved from an <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> using HTTP <code>GET</code> that
+ it doesn’t change whether it understands the predicates or not, when
+ its intent is to perform an update using HTTP <code>PUT</code>. The use of HTTP
+ <code>PATCH</code> instead of HTTP <code>PUT</code> for update avoids this burden for clients
+ [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC5789">RFC5789</a></cite>].
+ </h5></section> <!-- Was 4.5.5 / #ldpr-ldpr-4_5_5 -->
+
+ <section id="ldpr-cli-can-hint" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-cli-can-hint"><span class="secno">4.3.1.12 </span>
+ <a title="LDP client" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP clients</a> <em class="rfc2119" title="MAY">MAY</em>
+ provide LDP-defined hints that allow servers to optimize the content of responses.
+ <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#prefer-parameters" class="sectionRef sec-ref">section <span class="secno">7.2</span> <span class="sec-title">Preferences on the Prefer Request Header</span></a> defines hints that apply to
+ <a title="Linked Data Platform RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN">LDP-RSs</a>.
+ </h5></section>
+
+ <section id="ldpr-cli-hints-ignorable" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-cli-hints-ignorable"><span class="secno">4.3.1.13 </span>
+ <a title="LDP client" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP clients</a> <em class="rfc2119" title="MUST">MUST</em>
+ be capable of processing responses formed by an LDP server that ignores hints,
+ including LDP-defined hints.
+ </h5></section>
+
+ <section id="ldpr-cli-paging" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpr-cli-paging"><span class="secno">4.3.1.14 </span>
+ <div class="atrisk" id="atrisk-paging"><p class="atrisktext">Feature At Risk</p>
+ <p>The LDP Working Group proposes incorporation of the following clause to make LDP clients paging aware:</p>
+ <a title="LDP client" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP clients</a> <em class="rfc2119" title="SHOULD">SHOULD</em>
+ be capable of processing successful HTTP <code>GET</code> responses formed by an LDP server
+ that independently initiated paging, returning a page of representation instead of full resource
+ representation [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-LDP-PAGING">LDP-PAGING</a></cite>].
+ </div></h5>
+ </section>
+
+</section> <!-- ldprs-general -->
+
+<section id="ldprs-HTTP_GET" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_ldprs-HTTP_GET"><span class="secno">4.3.2 </span>HTTP GET</h4>
+ <section id="ldprs-get-turtle" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldprs-get-turtle"><span class="secno">4.3.2.1 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> provide a <code>text/turtle</code>
+ representation of the requested <a title="Linked Data Platform RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN"><abbr title="Linked Data Platform RDF Source">LDP-RS</abbr></a> [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-turtle">turtle</a></cite>].
+ </h5></section><!-- Was 4.3.3 / #ldpr-4_3_3 -->
+
+</section> <!-- ldprs-HTTP_GET -->
+
+</section> <!-- ldprs RDF Source-->
+
+<section id="ldpnr" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h3 aria-level="2" role="heading" id="h3_ldpnr"><span class="secno">4.4 </span>Non-<abbr title="Resource Description Framework">RDF</abbr> Source</h3>
+
+<p>The following section contains normative clauses for <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-non-rdf-source" class="internalDFN">Linked Data Platform Non-<abbr title="Resource Description Framework">RDF</abbr> Source</a>.</p>
+
+<section id="ldpnr-general" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_ldpnr-general"><span class="secno">4.4.1 </span>General</h4>
+
+ <section id="ldpnr-are-ldpr" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpnr-are-ldpr"><span class="secno">4.4.1.1 </span>Each <a title="Linked Data Platform Non-RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-non-rdf-source" class="internalDFN">LDP Non-<abbr title="Resource Description Framework">RDF</abbr> Source</a> <em class="rfc2119" title="MUST">MUST</em> also be
+ a conforming <a title="Linked Data Platform Resource" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-resource" class="internalDFN">LDP Resource</a> in <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-resource" class="sectionRef sec-ref">section <span class="secno">4.2</span> <span class="sec-title">Resource</span></a>.
+ <a title="Linked Data Platform Non-RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-non-rdf-source" class="internalDFN">LDP Non-<abbr title="Resource Description Framework">RDF</abbr> Source</a> may not be able to fully express their
+ state using <abbr title="Resource Description Framework">RDF</abbr>. [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-rdf11-concepts">rdf11-concepts</a></cite>]
+ </h5></section>
+
+</section> <!-- ldpnr Non-RDF Source-->
+
+</section>
+
+</section> <!-- ldpr h1 -->
+
+<section id="ldpc" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<!--OddPage--><h2 aria-level="1" role="heading" id="h2_ldpc"><span class="secno">5. </span>Linked Data Platform Containers</h2>
+
+<section class="informative" id="ldpc-informative" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h3 aria-level="2" role="heading" id="h3_ldpc-informative"><span class="secno">5.1 </span>Introduction</h3><p><em>This section is non-normative.</em></p>
+ <p>Many HTTP applications and sites have organizing
+ concepts that partition the overall space of resources into smaller
+ containers. Blog posts are grouped into blogs, wiki pages are grouped
+ into wikis, and products are grouped into catalogs. Each resource
+ created in the application or site is created within an instance of
+ one of these container-like entities, and users can list the existing
+ artifacts within one. Containers answer some basic questions, which
+ are:</p>
+ <ol>
+ <li>To which URLs can I POST to create new resources?</li>
+ <li>Where can I GET a list of existing resources?</li>
+ <li>How do I get information about the members along with the container?</li>
+ <li>How can I ensure the resource data is easy to query?</li>
+ <li>How is the order of the container entries expressed? [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-LDP-PAGING">LDP-PAGING</a></cite>]</li>
+ </ol>
+ <p>
+ This document defines the representation and behavior of containers
+ that address these issues. There are multiple types of containers defined
+ to support a variety of use cases, all that support a base set of capabilities.
+ The contents of a container is
+ defined by a set of triples in its representation (and state) called
+ the <a title="Containment triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-containment-triples" class="internalDFN">containment triples</a> that follow a fixed pattern.
+ Additional types of containers allow for the set of members of a container to be
+ defined by a set of triples in its representation called
+ the <a title="Membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">membership triples</a> that follow a consistent pattern
+ (see the linked-to definition for the possible patterns).
+ The membership triples of a container all
+ have the same predicate, called the membership predicate,
+ and either the subject or the object is also a consistent value
+ – the remaining position of the membership
+ triples (the one that varies) define the members of the container.
+ In the simplest cases, the
+ consistent value will be the <abbr title="Linked Data Platform Container">LDPC</abbr> resource's URI, but it does not
+ have to be. The membership predicate is also variable and will often
+ be a predicate from the server application vocabulary or the <code>ldp:member</code> predicate.
+ </p>
+ <p>This document includes a set of guidelines for
+ creating new resources and adding them to the list of
+ resources linked to a container. It goes on to explain how to learn about a set of related
+ resources, regardless of how they were created or added to the container's membership.
+ It also defines behavior when resources created using a container are later deleted;
+ deleting containers removes membership information and
+ possibly performs some cleanup tasks on unreferenced member resources.</p>
+
+ <p>The following illustrates a very simple
+ container with only three members and some information about the
+ container (the fact that it is a container and a brief title):</p>
+
+<div class="example"><div class="example-title"><span>Example 1</span></div><pre class="example" id="ldpc-ex-simple"># The following is the representation of
+# http://example.org/c1/
+<!-- @base is here only so it's easier to paste into validators for checking -->
+# @base <http://example.org/c1/>
+@prefix dcterms: <http://purl.org/dc/terms/>.
+@prefix ldp: <http://www.w3.org/ns/ldp#>.
+
+<>
+ a ldp:BasicContainer;
+ dcterms:title "A very simple container";
+ ldp:contains <r1>, <r2>, <r3>.</pre></div>
+
+ <!-- TODO: consider if basic container diagram helps, if so...add for other cases too
+ <figure id="fig-ldpc-basic">
+ <img src="images/ldpc-basic.png" alt="Sample Linked Data Platform Basic Container" />
+ <figcaption>Sample of Linked Data Platform Basic Container</figcaption>
+ </figure>
+ -->
+
+ <p>This example is very straightforward - there is the containment triple
+ with subject of the container, predicate of
+ <code>ldp:contains</code> and objects indicating the URIs of the contained resources.
+ A POST to this container will create a new resource
+ and add it to the list of contained resources by adding a new containment triple
+ to the container. This type of container is also referred to as
+ <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-basic-container" class="internalDFN">Linked Data Platform Basic Container</a>.</p>
+
+ <p>Sometimes it is useful to use a subject
+ other than the container itself as the consistent membership value, and/or to use
+ a predicate from an application's domain model as the membership predicate. Let's
+ start with a domain resource for a person's net worth, as illustrated below:</p>
+
+<div class="example"><div class="example-title"><span>Example 2</span></div><pre class="example" id="ldpc-ex-membership-partial"># The following is a partial representation of
+# http://example.org/netWorth/nw1
+<!-- @base is here only so it's easier to paste into validators for checking -->
+# @base <http://example.org/netWorth/nw1/>
+@prefix ldp: <http://www.w3.org/ns/ldp#>.
+@prefix o: <http://example.org/ontology/>.
+<>
+ a o:NetWorth;
+ o:netWorthOf <http://example.org/users/JohnZSmith>;
+ o:asset
+ <assetContainer/a1>,
+ <assetContainer/a2>;
+ o:liability
+ <liabilityContainer/l1>,
+ <liabilityContainer/l2>,
+ <liabilityContainer/l3>.</pre></div>
+ <p>From this example, there is a <code>rdf:type</code> of <code>o:NetWorth</code> indicating the
+ resource represents an instance of a person's net worth and <code>o:netWorthOf</code> predicate indicating
+ the associated person. There are two sets of same-subject, same-predicate pairings; one for assets and
+ one for liabilities. It would be helpful to be able to associate these multi-valued sets using a URL
+ for them to assist with managing these, this is done by associating containers with them as
+ illustrated in the set of related examples (one example per HTTP resource) below:
+ </p>
+
+<div class="example"><div class="example-title"><span>Example 3</span></div><pre class="example" id="ldpc-ex-membership-full"># The following is an elaborated representation of LDPR
+# http://example.org/netWorth/nw1
+<!-- @base is here only so it's easier to paste into validators for checking -->
+# @base <http://example.org/netWorth/nw1/>.
+@prefix ldp: <http://www.w3.org/ns/ldp#>.
+@prefix dcterms: <http://purl.org/dc/terms/>.
+@prefix o: <http://example.org/ontology/>.
+<>
+ a o:NetWorth;
+ o:netWorthOf <http://example.org/users/JohnZSmith>;
+ o:asset
+ <assetContainer/a1>,
+ <assetContainer/a2>;
+ o:liability
+ <liabilityContainer/l1>,
+ <liabilityContainer/l2>,
+ <liabilityContainer/l3>.</pre></div>
+
+<div class="example"><div class="example-title"><span>Example 4</span></div><pre class="example" id="ldpc-ex-membership-subj"># The following is an elaborated representation of LDPC
+# http://example.org/netWorth/nw1/assetContainer/
+<!-- @base is here only so it's easier to paste into validators for checking -->
+# @base <http://example.org/netWorth/nw1/assetContainer/>.
+@prefix ldp: <http://www.w3.org/ns/ldp#>.
+@prefix dcterms: <http://purl.org/dc/terms/>.
+@prefix o: <http://example.org/ontology/>.
+<>
+ a ldp:DirectContainer;
+ dcterms:title "The assets of JohnZSmith";
+ ldp:membershipResource <http://example.org/netWorth/nw1/>;
+ ldp:hasMemberRelation o:asset;
+ ldp:contains <a1>, <a2>.</pre></div>
+
+<div class="example"><div class="example-title"><span>Example 5</span></div><pre class="example" id="ldpc-ex-membership-full-liabcont"># The following is an elaborated representation of LDPC
+# http://example.org/netWorth/nw1/liabilityContainer/
+<!-- @base is here only so it's easier to paste into validators for checking -->
+# @base <http://example.org/netWorth/nw1/liabilityContainer/>.
+@prefix ldp: <http://www.w3.org/ns/ldp#>.
+@prefix dcterms: <http://purl.org/dc/terms/>.
+@prefix o: <http://example.org/ontology/>.
+<>
+ a ldp:DirectContainer;
+ dcterms:title "The liabilities of JohnZSmith";
+ ldp:membershipResource <http://example.org/netWorth/nw1/>;
+ ldp:hasMemberRelation o:liability;
+ ldp:contains <l1>, <l2>, <l3>.</pre></div>
+
+ <p>The essential structure of the container is
+ the same, but in this example, the consistent membership value
+ (<a title="Membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">membership-constant-URI</a>, still in the subject position) is not the
+ container itself – it is a separate net worth resource. The
+ membership predicates are <code>o:asset</code> and <code>o:liability</code> – predicates
+ from the domain model. A POST of an asset representation to the asset container will create a new
+ asset and add it to the list of members by adding a new membership triple
+ to the resource and containment triple to the container. You might wonder why
+ <code>http://example.org/netWorth/nw1</code> isn't made a container itself and POST
+ the new asset directly there. That would be a fine design if <code>http://example.org/netWorth/nw1</code>
+ had only assets, but if it has separate predicates for assets and liabilities,
+ that design will not work because it is unspecified to which predicate the POST
+ should add a membership triple. Having separate <code>http://example.org/netWorth/nw1/assetContainer/</code>
+ and <code>http://example.org/netWorth/nw1/liabilityContainer/</code> container
+ resources allows both assets and liabilities to be created.
+ </p>
+ <p>This type of container is referred to as an <a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">LDP Direct Container</a>.
+ <a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">LDP Direct Container</a> adds the concept of <a title="Membership" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership" class="internalDFN">membership</a>
+ and flexibilty on how to specify the <a title="Membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">membership triples</a>.
+ </p>
+
+ <p>As seen in the <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-ex-membership-subj"><code>assetContainer/</code> example</a>,
+ clients cannot correctly guess
+ at the membership triples, so the example includes this information in
+ triples whose subject is the <abbr title="Linked Data Platform Container">LDPC</abbr> resource itself.
+ </p>
+
+ <p>Alternatively, servers may provide the net worth resource and supporting containers in a single response
+ representations. When doing this, a preference would be for <abbr title="Resource Description Framework">RDF</abbr> formats that support multiple named graphs, one
+ named graph for the net worth resource and then two others for asset and liability containers. This allows for
+ the membership triples to be represented with the named graph for the net worth resource, while the containment triples
+ would be represented within the liability and asset containers [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-rdf11-concepts">rdf11-concepts</a></cite>]. Generally, the membership triples belong
+ to the representation of an <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> and the containment triples belong to the representation of the <abbr title="Linked Data Platform Container">LDPC</abbr>.
+ </p>
+
+ <p>Additionally, we could extend our net worth example to include a container for
+ advisors (people) that have managed the assets and liabilities. We have decided
+ to identify these advisors with URLs that contain a fragment (hash) to represent
+ these real-world resources, not the documents that describe them.</p>
+
+<div class="example"><div class="example-title"><span>Example 6</span></div><pre class="example" id="ldpc-ex-membership-full-elab"># The following is an elaborated representation of
+# http://example.org/netWorth/nw1
+# Adding o:advisor but eaving off o:asset and o:liability for brevity.
+<!-- @base is here only so it's easier to paste into validators for checking -->
+# @base <http://example.org/netWorth/nw1/>
+@prefix ldp: <http://www.w3.org/ns/ldp#>.
+@prefix dcterms: <http://purl.org/dc/terms/>.
+@prefix foaf: <http://xmlns.com/foaf/0.1/>.
+@prefix o: <http://example.org/ontology/>.
+<>
+ a o:NetWorth;
+ o:netWorthOf <http://example.org/users/JohnZSmith>;
+ o:advisor
+ <advisorContainer/bob#me>,
+ <advisorContainer/marsha#me>.
+
+<advisorContainer/>
+ a ldp:IndirectContainer;
+ dcterms:title "The asset advisors of JohnZSmith";
+ ldp:membershipResource <>;
+ ldp:hasMemberRelation o:advisor;
+ ldp:insertedContentRelation foaf:primaryTopic;
+ ldp:contains
+ <advisorContainer/bob>,
+ <advisorContainer/marsha>.</pre></div>
+
+ <p>To handle this type of indirection, the triple with predicate of <code>ldp:insertedContentRelation</code> and object of
+ <code>foaf:primaryTopic</code> informs clients that when POSTing to this container, they need to include a triple of the
+ form <code>(<>, foaf:primaryTopic, topic-URI)</code> to inform the server which URI to use
+ (<code>topic-URI</code>) in the new membership triple.</p>
+
+ <p>This type of container is also referred to as a <a title="Linked Data Platform Indirect Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-indirect-container" class="internalDFN">LDP Indirect Container</a>.
+ It is similar to an <a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">LDP Direct Container</a>
+ but it provides an indirection to add (via a create request) as member any resource,
+ such as a URI representing a real-world object,
+ that is different from the document that is created.</p>
+
+ <p><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#fig-ldpc-types" class="fig-ref">Fig. <span class="figno">3</span> <span class="fig-title">Class relationship of types of Linked Data Platform Containers</span></a> illustrates the 3 types: Container, Basic Container and Direct Container, along
+ with their class relationship to types of <abbr title="Linked Data Platform Resources">LDPRs</abbr>.</p>
+
+ <figure id="fig-ldpc-types">
+ <img src="images/ldpc-hierarchy.png" alt="Types of Linked Data Platform Containers">
+ <figcaption>Fig. <span class="figno">3</span> <span class="fig-title">Class relationship of types of Linked Data Platform Containers</span></figcaption>
+ </figure>
+
+ <p>The following table illustrates some differences between <a title="membership" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership" class="internalDFN">membership</a> and
+ <a title="containment" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-containment" class="internalDFN">containment</a> triples. For details on the normative behavior, see appropriate sections
+ below.
+ </p>
+ <table border="1" id="ldpc-mbrcntdiff">
+ <thead><tr><th rowspan="2">Completed Request</th><th colspan="2">Effects</th></tr>
+ <tr class="oddrow"><th>Membership</th><th>Containment</th></tr></thead>
+ <tbody><tr><td><abbr title="Linked Data Platform Resource">LDPR</abbr> created in <abbr title="Linked Data Platform Basic Container">LDP-BC</abbr></td><td>New triple: (<abbr title="Linked Data Platform Container">LDPC</abbr>, ldp:contains, <abbr title="Linked Data Platform Resource">LDPR</abbr>)</td><td>Same</td></tr>
+ <tr><td><abbr title="Linked Data Platform Resource">LDPR</abbr> created in <abbr title="Linked Data Platform Direct Container">LDP-DC</abbr></td><td>New triple links <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> to created <abbr title="Linked Data Platform Resource">LDPR</abbr>. <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> URI may be same as <abbr title="Linked Data Platform Direct Container">LDP-DC</abbr></td>
+ <td>New triple: (<abbr title="Linked Data Platform Container">LDPC</abbr>, ldp:contains, <abbr title="Linked Data Platform Resource">LDPR</abbr>)</td></tr>
+ <tr><td><abbr title="Linked Data Platform Resource">LDPR</abbr> created in <abbr title="Linked Data Platform Indirect Container">LDP-IC</abbr></td><td>New triple links <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> to content indicated URI</td>
+ <td>New triple: (<abbr title="Linked Data Platform Container">LDPC</abbr>, ldp:contains, <abbr title="Linked Data Platform Resource">LDPR</abbr>)</td></tr>
+ <tr><td><abbr title="Linked Data Platform Resource">LDPR</abbr> is deleted</td><td>Membership triple may be removed</td><td>(<abbr title="Linked Data Platform Container">LDPC</abbr>, ldp:contains, <abbr title="Linked Data Platform Resource">LDPR</abbr>) triple is removed
+ </td></tr>
+ <tr><td><abbr title="Linked Data Platform Container">LDPC</abbr> is deleted</td><td>Triples and member resources may be removed</td><td>Triples of form
+ (<abbr title="Linked Data Platform Container">LDPC</abbr>, ldp:contains, <abbr title="Linked Data Platform Resource">LDPR</abbr>) and contained <abbr title="Linked Data Platform Resources">LDPRs</abbr> may be removed</td></tr>
+ </tbody></table>
+
+<section id="ldpc-get_empty-container_props" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_ldpc-get_empty-container_props"><span class="secno">5.1.1 </span>Retrieving Only Empty-Container Triples
+ </h4><!-- Was 5.1.1 / #ldpc-get_empty-container_props -->
+ <p>The representation of a container
+ that has many members will be large. There are several important
+ cases where clients need to access only the subset of the container's properties
+ that are unrelated to member resources and unrelated to contained documents, for
+ example to determine the membership triple pattern and membership predicate of an
+ <abbr title="Linked Data Platform Direct Container">LDP-DC</abbr>. LDP calls these <a title="Empty-container triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-empty-container-triples" class="internalDFN">empty-container triples</a>,
+ because they are what remains when the container has zero members and zero contained resources.
+ Since retrieving the whole container representation to
+ get this information may be onerous for clients and cause unnecessary
+ overhead on servers, we define a way to retrieve only
+ these property values (and more generally, a way to retrieve only the
+ subset of properties used to address other major clusters of use cases).
+ LDP adds parameters to the HTTP <code>Prefer</code> header's
+ <code>return=representation</code> preference for this
+ (see <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#prefer-parameters" class="sectionRef sec-ref">section <span class="secno">7.2</span> <span class="sec-title">Preferences on the Prefer Request Header</span></a> for details).
+ </p>
+ <p>The example listed here only shows
+ a simple case where few empty-container triples are
+ retrieved. In real world situations more complex cases are likely, such as those that add other predicates to
+ containers, for example providing validation information and
+ associating <abbr title="SPARQL Protocol and RDF Query Language">SPARQL</abbr> endpoints. [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-sparql11-query">sparql11-query</a></cite>]</p>
+ <p>
+ Here is an example requesting the empty-container triples of a
+ container identified by the URL <code>http://example.org/container1/</code>.
+ </p>
+<p id="ldpc-ex-empty-container">Request:</p>
+<div class="example"><div class="example-title"><span>Example 7</span></div><pre class="example">GET /container1 HTTP/1.1
+Host: example.org
+Accept: text/turtle; charset=UTF-8
+Prefer: return=representation; include="http://www.w3.org/ns/ldp#PreferEmptyContainer"</pre></div>
+<p>Response:</p>
+<div class="example"><div class="example-title"><span>Example 8</span></div><pre class="example">HTTP/1.1 200 OK
+Content-Type: text/turtle; charset=UTF-8
+ETag: "_87e52ce291112"
+Content-Length: 325
+Link: <http://www.w3.org/ns/ldp#Container>; rel="type"
+Preference-Applied: return=representation
+
+@prefix dcterms: <http://purl.org/dc/terms/>.
+@prefix ldp: <http://www.w3.org/ns/ldp#>.
+
+<http://example.org/container1/>
+ a ldp:DirectContainer;
+ dcterms:title "A Linked Data Platform Container of Acme Resources";
+ ldp:membershipResource <http://example.org/container1/>;
+ ldp:hasMemberRelation ldp:member;
+ ldp:insertedContentRelation ldp:MemberSubject;
+ dcterms:publisher <http://acme.com/>.</pre></div>
+
+ <p>
+ LDP recommends using PATCH to update these properties, if necessary. It provides no facility
+ for updating them via PUT without replacing the entire container's state.
+ </p>
+ </section><!-- ldpc-get_empty-container_props -->
+
+</section>
+
+<section id="ldpc-container" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h3 aria-level="2" role="heading" id="h3_ldpc-container"><span class="secno">5.2 </span>Container</h3>
+<p>The following section contains normative clauses for <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-container" class="internalDFN">Linked Data Platform Container</a>.</p>
+
+<section id="ldpc-general" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_ldpc-general"><span class="secno">5.2.1 </span>General</h4>
+ <p>The Linked Data Platform does not define how clients
+ discover <dfn id="dfn-linked-data-platform-containers"><abbr title="Linked Data Platform Containers">LDPCs</abbr></dfn>.</p>
+
+ <section id="ldpc-isldpr" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-isldpr"><span class="secno">5.2.1.1 </span>Each <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-container" class="internalDFN">Linked Data Platform Container</a> <em class="rfc2119" title="MUST">MUST</em> also be
+ a conforming <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN">Linked Data Platform <abbr title="Resource Description Framework">RDF</abbr> Source</a>. <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP client</a>s <em class="rfc2119" title="MAY">MAY</em> infer the following triple:
+ whose subject is <code>ldp:Container</code>,
+ whose predicate is <code>rdfs:subClassOf</code>,
+ and whose object is <code>ldp:RDFSource</code>,
+ but there is no requirement to materialize this triple in the <abbr title="Linked Data Platform Container">LDPC</abbr> representation.
+ </h5></section><!-- Was 5.2.1 / #ldpc-5_2_1 -->
+
+ <section id="ldpc-typecontainer" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-typecontainer"><span class="secno">5.2.1.2 </span>The representation of an <abbr title="Linked Data Platform Container">LDPC</abbr> <em class="rfc2119" title="MAY">MAY</em> have an <code>rdf:type</code>
+ of only one of <code>ldp:Container</code> for <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-container" class="internalDFN">Linked Data Platform Container</a>.
+ Non-normative note: <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldp-rdfconcepts-extra-triples-types"><abbr title="Linked Data Platform Containers">LDPCs</abbr>
+ might have additional types</a>, like any <a title="Linked Data Platform RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN"><abbr title="Linked Data Platform RDF Source">LDP-RS</abbr></a>.
+ </h5></section><!-- Was 5.2.7 / #ldpc-5_2_7 -->
+
+ <section id="ldpc-nordfcontainertypes" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-nordfcontainertypes"><span class="secno">5.2.1.3 </span><abbr title="Linked Data Platform Container">LDPC</abbr> representations <em class="rfc2119" title="SHOULD NOT">SHOULD NOT</em> use <abbr title="Resource Description Framework">RDF</abbr> container types <code>rdf:Bag</code>,
+ <code>rdf:Seq</code> or <code>rdf:List</code>.
+ </h5></section><!-- Was 5.2.8 / #ldpc-5_2_8 -->
+
+ <section id="ldpc-linktypehdr" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-linktypehdr"><span class="secno">5.2.1.4 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a>
+ exposing <abbr title="Linked Data Platform Containers">LDPCs</abbr>
+ <em class="rfc2119" title="MUST">MUST</em> advertise their LDP support by exposing a HTTP <code>Link</code> header
+ with a target URI matching the type of container (see below) the
+ server supports, and
+ a link relation type of <code>type</code> (that is, <code>rel='type'</code>)
+ in all responses to requests made
+ to the <abbr title="Linked Data Platform Container">LDPC</abbr>'s HTTP <code>Request-URI</code>.
+ <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MAY">MAY</em> provide additional HTTP <code>Link: rel='type'</code> headers.
+ The <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-gen-linktypehdr">notes on the corresponding <abbr title="Linked Data Platform Resource">LDPR</abbr> constraint</a> apply
+ equally to <abbr title="Linked Data Platform Containers">LDPCs</abbr>.
+ </h5>
+ <p>Valid container type URIs for <code>rel='type'</code> defined by this document are:
+ </p><ul>
+ <li><code>http://www.w3.org/ns/ldp#BasicContainer</code> - for <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpbc">LDP Basic Containers</a></li>
+ <li><code>http://www.w3.org/ns/ldp#DirectContainer</code> - for <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpdc">LDP Direct Containers</a></li>
+ <li><code>http://www.w3.org/ns/ldp#IndirectContainer</code> - for <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpic">LDP Indirect Containers</a></li>
+ </ul>
+ <p></p>
+ </section><!-- Was 5.2.11 / #ldpc-5_2_11 -->
+
+ <section id="ldpc-prefer" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-prefer"><span class="secno">5.2.1.5 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a>
+ <em class="rfc2119" title="SHOULD">SHOULD</em> respect all of a client's LDP-defined hints, for example
+ <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#prefer-parameters">which subsets of LDP-defined state</a>
+ the client is interested in processing,
+ to influence the set of triples returned in representations of an <abbr title="Linked Data Platform Container">LDPC</abbr>,
+ particularly for large <abbr title="Linked Data Platform Containers">LDPCs</abbr>. See also [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-LDP-PAGING">LDP-PAGING</a></cite>].
+ </h5></section>
+
+</section>
+
+<section id="ldpc-HTTP_GET" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_ldpc-HTTP_GET"><span class="secno">5.2.2 </span>HTTP GET</h4>
+ <p>
+ Per <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-HTTP_GET" class="sectionRef sec-ref">section <span class="secno">4.2.2</span> <span class="sec-title">HTTP GET</span></a> the HTTP GET method is required and
+ additional requirements can be found in <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-general" class="sectionRef sec-ref">section <span class="secno">5.2.1</span> <span class="sec-title">General</span></a>.
+ </p>
+
+</section>
+
+<section id="ldpc-HTTP_POST" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_ldpc-HTTP_POST"><span class="secno">5.2.3 </span>HTTP POST</h4>
+ <p>
+ Per [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>], this HTTP method is optional and
+ this specification does not require <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> to support it.
+ When an LDP server supports this method,
+ this specification imposes the following new requirements for <abbr title="Linked Data Platform Containers">LDPCs</abbr>.
+ </p>
+
+ <p>
+ Any server-imposed constraints on creation or update
+ <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-gen-pubclireqs">must be advertised</a> to clients.
+ </p>
+
+ <section id="ldpc-post-created201" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-created201"><span class="secno">5.2.3.1 </span><abbr title="Linked Data Platform Container">LDPC</abbr> clients <em class="rfc2119" title="SHOULD">SHOULD</em> create member resources by submitting a representation as
+ the entity body of the HTTP <code>POST</code> to a known <abbr title="Linked Data Platform Container">LDPC</abbr>. If the resource was created successfully, <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em>
+ respond with status code 201 (Created) and the <code>Location</code>
+ header set to the new resource’s URL. Clients shall not expect any representation in the response
+ entity body on a 201 (Created) response.
+ </h5></section><!-- Was 5.4.1 / #ldpc-5_4_1 -->
+
+ <section id="ldpc-post-createdmbr-contains" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-createdmbr-contains"><span class="secno">5.2.3.2 </span>
+ When a successful HTTP <code>POST</code> request to an <abbr title="Linked Data Platform Container">LDPC</abbr> results in the creation of an <abbr title="Linked Data Platform Resource">LDPR</abbr>, a
+ <a title="Containment triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-containment-triples" class="internalDFN">containment triple</a> <em class="rfc2119" title="MUST">MUST</em> be added to the state of <abbr title="Linked Data Platform Container">LDPC</abbr>. The
+ <a title="Containment triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-containment-triples" class="internalDFN">containment triple</a> whose subject is the <abbr title="Linked Data Platform Container">LDPC</abbr> URI,
+ whose predicate is <code>ldp:contains</code> and whose object is the URI for the newly created document (<abbr title="Linked Data Platform Resource">LDPR</abbr>).
+ The newly created <abbr title="Linked Data Platform Resource">LDPR</abbr> appears as a contained resource of the <abbr title="Linked Data Platform Container">LDPC</abbr> until the
+ newly created document is deleted or removed by other methods. Other triples may be added as well.
+ </h5></section>
+
+ <section id="ldpc-post-createbins" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-createbins"><span class="secno">5.2.3.3 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MAY">MAY</em> accept an HTTP <code>POST</code> of non-<abbr title="Resource Description Framework">RDF</abbr> representations
+ <a title="Linked Data Platform Non-RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-non-rdf-source" class="internalDFN">(LDP-NRs)</a> for
+ creation of any kind of resource, for example binary resources. See <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-post-acceptposthdr">the Accept-Post section</a> for
+ details on how clients can discover whether an <abbr title="Linked Data Platform Container">LDPC</abbr> supports this behavior.
+ </h5></section><!-- Was 5.4.3 / #ldpc-5_4_3 -->
+
+ <section id="ldpc-post-createrdf" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-createrdf"><span class="secno">5.2.3.4 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> that successfully create a resource from a
+ <abbr title="Resource Description Framework">RDF</abbr> representation in the request entity body <em class="rfc2119" title="MUST">MUST</em> honor the client's requested interaction model(s). The created resource
+ can be thought of as an <abbr title="Resource Description Framework">RDF</abbr> <a href="http://www.w3.org/TR/rdf11-concepts/#dfn-named-graph">named graph</a> [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-rdf11-concepts">rdf11-concepts</a></cite>].
+ If any model cannot be honored, the server <em class="rfc2119" title="MUST">MUST</em> fail the request.
+ </h5><!-- Was 5.4.4 / #ldpc-5_4_4 -->
+ <ul>
+ <li>If the request header <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-gen-linktypehdr">specifies an <abbr title="Linked Data Platform Resource">LDPR</abbr> interaction model</a>, then the server <em class="rfc2119" title="MUST">MUST</em> handle subsequent
+ requests to the newly created resource's URI as if it is an <abbr title="Linked Data Platform Resource">LDPR</abbr>.
+ (even if the content contains an <code>rdf:type</code> triple indicating a type of <abbr title="Linked Data Platform Container">LDPC</abbr>).</li>
+ <li>If the request header <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-linktypehdr">specifies an <abbr title="Linked Data Platform Container">LDPC</abbr> interaction model</a>, then the server <em class="rfc2119" title="MUST">MUST</em> handle subsequent
+ requests to the newly created resource's URI as if it is an <abbr title="Linked Data Platform Container">LDPC</abbr>.
+ </li>
+ <li>This specification does not constrain the server's behavior in other cases.</li>
+ <p>Note: A consequence of this is that <abbr title="Linked Data Platform Containers">LDPCs</abbr> can be used to create <abbr title="Linked Data Platform Containers">LDPCs</abbr>, if the server supports doing so.</p>
+ </ul>
+ </section>
+
+ <section id="ldpc-post-turtle" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-turtle"><span class="secno">5.2.3.5 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> accept a request entity body with a request header
+ of <code>Content-Type</code> with value of <code>text/turtle</code> [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-turtle">turtle</a></cite>].
+ </h5></section><!-- Was 5.4.5 / #ldpc-5_4_5 -->
+
+ <section id="ldpc-post-contenttype" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-contenttype"><span class="secno">5.2.3.6 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="SHOULD">SHOULD</em> use the <code>Content-Type</code> request header
+ to determine the representation format when the request has an entity body.
+ </h5></section><!-- Was 5.4.6 / #ldpc-5_4_6 -->
+
+ <section id="ldpc-post-rdfnullrel" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-rdfnullrel"><span class="secno">5.2.3.7 </span>In <abbr title="Resource Description Framework">RDF</abbr> representations, <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MUST">MUST</em> interpret the null relative
+ URI for the subject of triples in the <abbr title="Linked Data Platform Resource">LDPR</abbr> representation in the
+ request entity body as referring to the entity in the request body.
+ Commonly, that entity is the model for the “to be created” <abbr title="Linked Data Platform Resource">LDPR</abbr>, so
+ triples whose subject is the null relative URI will usually result in
+ triples in the created resource whose subject is the created
+ resource.
+ </h5></section><!-- Was 5.4.7 / #ldpc-5_4_7 -->
+
+ <section id="ldpc-post-serverassignuri" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-serverassignuri"><span class="secno">5.2.3.8 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="SHOULD">SHOULD</em> assign the URI for the resource to be
+ created using server application specific rules in the absence of a <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-post-slug">client hint</a>.
+ </h5></section><!-- Was 5.4.8 / #ldpc-5_4_8 -->
+
+ <section id="ldpc-post-mincontraints" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-mincontraints"><span class="secno">5.2.3.9 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="SHOULD">SHOULD</em> allow clients to create new resources without
+ requiring detailed knowledge of application-specific constraints.
+ This is a consequence of the requirement to enable simple creation and modification of <abbr title="Linked Data Platform Resources">LDPRs</abbr>. LDP servers
+ expose these application-specific constraints as described in <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-general" class="sectionRef sec-ref">section <span class="secno">4.2.1</span> <span class="sec-title">General</span></a>.
+ </h5></section><!-- Was 5.4.9 / #ldpc-5_4_9 -->
+
+ <section id="ldpc-post-slug" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-slug"><span class="secno">5.2.3.10 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MAY">MAY</em> allow clients to suggest the URI for a resource
+ created through <code>POST</code>, using the HTTP <code>Slug</code> header as defined in [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC5023">RFC5023</a></cite>]. LDP adds
+ no new requirements to this usage, so its presence functions as a client hint to the server
+ providing a desired string to be incorporated into the server's final choice of resource URI.
+ </h5></section><!-- Was 5.4.10 / #ldpc-5_4_10 -->
+
+ <section id="ldpc-post-dontreuseuris" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-dontreuseuris"><span class="secno">5.2.3.11 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> that allow member creation via <code>POST</code>
+ <em class="rfc2119" title="SHOULD NOT">SHOULD NOT</em> re-use URIs.
+ </h5></section><!-- Was 5.4.11 / #ldpc-5_4_11 -->
+
+ <section id="ldpc-post-createbinlinkmetahdr" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-createbinlinkmetahdr"><span class="secno">5.2.3.12 </span>Upon successful creation of an
+ <a title="Linked Data Platform Non-RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-non-rdf-source" class="internalDFN"><abbr title="Linked Data Platform Non-RDF Source">LDP-NR</abbr></a> (HTTP status code of
+ 201-Created and URI indicated by <code>Location</code> response header), <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="MAY">MAY</em> create an associated
+ <a title="Linked Data Platform RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN"><abbr title="Linked Data Platform RDF Source">LDP-RS</abbr></a>
+ to contain data about the newly created <abbr title="Linked Data Platform Non-RDF Source">LDP-NR</abbr>. If an <abbr title="Linked Data Platform Container">LDPC</abbr> server creates this associated <a title="Linked Data Platform RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN"><abbr title="Linked Data Platform RDF Source">LDP-RS</abbr></a> it <em class="rfc2119" title="MUST">MUST</em> indicate
+ its location on the HTTP response using the HTTP <code>Link</code> response header with link relation <code>describedby</code>
+ and <code>href</code> to be the URI of the associated <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> resource [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC5988">RFC5988</a></cite>].
+ </h5></section><!-- Was 5.4.12 / #ldpc-5_4_12 -->
+
+ <section id="ldpc-post-acceptposthdr" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-post-acceptposthdr"><span class="secno">5.2.3.13 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> that support <code>POST</code> <em class="rfc2119" title="MUST">MUST</em>
+ include an <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#header-accept-post"><code>Accept-Post</code> response header</a> on HTTP <code>OPTIONS</code>
+ responses, listing post document media type(s) supported by the server.
+ LDP only specifies the use of <code>POST</code> for the purpose of creating new resources, but a server
+ can accept <code>POST</code> requests with other semantics.
+ While "POST to create" is a common interaction pattern, LDP clients are not guaranteed, even when
+ making requests to an LDP server, that every successful <code>POST</code> request will result in the
+ creation of a new resource; they must rely on out of band information for knowledge of which <code>POST</code> requests,
+ if any, will have the "create new resource" semantics.
+ This requirement on LDP servers is intentionally stronger than the one levied in the
+ <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#header-accept-post">header registration</a>; it is unrealistic to expect all existing resources
+ that support <code>POST</code> to suddenly return a new header or for all new specifications constraining
+ <code>POST</code> to be aware of its existence and require it, but it is a reasonable requirement for new
+ specifications such as LDP.
+ </h5></section><!-- Was 5.4.13 / #ldpc-5_4_13 -->
+
+</section>
+
+<section id="ldpc-HTTP_PUT" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_ldpc-HTTP_PUT"><span class="secno">5.2.4 </span>HTTP PUT</h4>
+ <p>
+ Per [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>], this HTTP method is optional and
+ this specification does not require <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> to support it.
+ When an LDP server supports this method,
+ this specification imposes the following new requirements for <abbr title="Linked Data Platform Containers">LDPCs</abbr>.
+ </p>
+
+ <p>
+ Any server-imposed constraints on creation or update
+ <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-gen-pubclireqs">must be advertised</a> to clients.
+ </p>
+
+ <section id="ldpc-put-mbrprops" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-put-mbrprops"><span class="secno">5.2.4.1 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> <em class="rfc2119" title="SHOULD NOT">SHOULD NOT</em> allow HTTP <code>PUT</code> to update an <abbr title="Linked Data Platform Container">LDPC</abbr>’s <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-containment-triples" class="internalDFN">containment triples</a>;
+ if the server receives such a request, it <em class="rfc2119" title="SHOULD">SHOULD</em> respond with a 409
+ (Conflict) status code.
+ </h5></section><!-- Was 5.5.1 / #ldpc-5_5_1 -->
+
+ <section id="ldpc-put-create" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-put-create"><span class="secno">5.2.4.2 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> that allow <abbr title="Linked Data Platform Resource">LDPR</abbr> creation via <code>PUT</code>
+ <em class="rfc2119" title="SHOULD NOT">SHOULD NOT</em> re-use URIs. For <abbr title="Resource Description Framework">RDF</abbr> representations (LDP-RSs),the created resource
+ can be thought of as an <abbr title="Resource Description Framework">RDF</abbr> <a href="http://www.w3.org/TR/rdf11-concepts/#dfn-named-graph">named graph</a> [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-rdf11-concepts">rdf11-concepts</a></cite>].
+ </h5></section><!-- Was 5.5.4 / #ldpc-5_5_4 -->
+
+</section>
+
+<section id="ldpc-HTTP_DELETE" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_ldpc-HTTP_DELETE"><span class="secno">5.2.5 </span>HTTP DELETE</h4>
+ <p>
+ Per [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>], this HTTP method is optional and
+ this specification does not require <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> to support it.
+ When an LDP server supports this method,
+ this specification imposes the following new requirements for <abbr title="Linked Data Platform Containers">LDPCs</abbr>.
+ </p>
+
+ <section id="ldpc-del-contremovesconttriple" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-del-contremovesconttriple"><span class="secno">5.2.5.1 </span>
+ When an <abbr title="Linked Data Platform Resource">LDPR</abbr> identified by the object of a <a title="containment triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-containment-triples" class="internalDFN">containment triple</a> is deleted, the <abbr title="Linked Data Platform Container">LDPC</abbr> server <em class="rfc2119" title="MUST">MUST</em> also remove
+ the <abbr title="Linked Data Platform Resource">LDPR</abbr> from the containing <abbr title="Linked Data Platform Container">LDPC</abbr> by removing the corresponding containment triple.
+ </h5>
+ <blockquote>
+ Non-normative note: The <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP server</a> might perform additional actions,
+ as described in the <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldp-http-method-side-effects">normative references</a> like [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>].
+ For example, the server could perform additional cleanup tasks for resources it knows are no longer referenced or have not
+ been accessed for some period of time.
+ </blockquote>
+ </section><!-- Was 5.6.1 / #ldpc-5_6_1 -->
+
+ <section id="ldpc-del-contremovescontres" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-del-contremovescontres"><span class="secno">5.2.5.2 </span>
+ When an <abbr title="Linked Data Platform Resource">LDPR</abbr> identified by the object of a <a title="containment triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-containment-triples" class="internalDFN">containment triple</a> is deleted, and the <abbr title="Linked Data Platform Container">LDPC</abbr> server
+ created an associated <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> (see the <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-post-createbinlinkmetahdr"><abbr title="Linked Data Platform Container">LDPC</abbr> POST section</a>), the <abbr title="Linked Data Platform Container">LDPC</abbr> server <em class="rfc2119" title="MUST">MUST</em> also remove the associated <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr> it created.
+ </h5></section><!-- Was 5.6.4 / #ldpc-5_6_4 -->
+
+</section>
+
+<section id="ldpc-HTTP_HEAD" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_ldpc-HTTP_HEAD"><span class="secno">5.2.6 </span>HTTP HEAD</h4>
+ <p>Note that certain LDP mechanisms
+ rely on HTTP headers, and HTTP generally requires that
+ <code>HEAD</code> responses include the same headers as <code>GET</code> responses. Also <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> must also include HTTP headers
+ on response to <code>OPTIONS</code>, see <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-HTTP_OPTIONS" class="sectionRef sec-ref">section <span class="secno">4.2.8</span> <span class="sec-title">HTTP OPTIONS</span></a>.
+ Thus, implementers supporting <code>HEAD</code> should also carefully read the
+ <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-HTTP_GET" class="sectionRef sec-ref">section <span class="secno">5.2.2</span> <span class="sec-title">HTTP GET</span></a> and <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-HTTP_OPTIONS" class="sectionRef sec-ref">section <span class="secno">5.2.8</span> <span class="sec-title">HTTP OPTIONS</span></a>.</p>
+</section>
+
+<section id="ldpc-HTTP_PATCH" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_ldpc-HTTP_PATCH"><span class="secno">5.2.7 </span>HTTP PATCH</h4>
+ <p>
+ Per [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>], this HTTP method is optional and
+ this specification does not require <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> to support it.
+ When an LDP server supports this method,
+ this specification imposes the following new requirements for <abbr title="Linked Data Platform Containers">LDPCs</abbr>.
+ </p>
+
+ <p>
+ Any server-imposed constraints on <abbr title="Linked Data Platform Resource">LDPR</abbr> creation or update
+ <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-gen-pubclireqs">must be advertised</a> to clients.
+ </p>
+
+ <section id="ldpc-patch-req" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-patch-req"><span class="secno">5.2.7.1 </span>
+ <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> are <em class="rfc2119" title="RECOMMENDED">RECOMMENDED</em>
+ to support HTTP <code>PATCH</code> as the preferred method for
+ updating an <abbr title="Linked Data Platform Container">LDPC</abbr>'s <a title="Empty-container triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-empty-container-triples" class="internalDFN">empty-container triples</a>.
+ </h5></section><!-- Was 5.8.1 / #ldpc-5_8_1 -->
+</section>
+
+<section id="ldpc-HTTP_OPTIONS" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_ldpc-HTTP_OPTIONS"><span class="secno">5.2.8 </span>HTTP OPTIONS</h4>
+ <p>This specification imposes the following new requirements on HTTP <code>OPTIONS</code> for <abbr title="Linked Data Platform Containers">LDPCs</abbr>.
+ </p>
+
+ <section id="ldpc-options-linkmetahdr" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpc-options-linkmetahdr"><span class="secno">5.2.8.1 </span>When an <abbr title="Linked Data Platform Container">LDPC</abbr> server creates an
+ <a title="Linked Data Platform Non-RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-non-rdf-source" class="internalDFN"><abbr title="Linked Data Platform Non-RDF Source">LDP-NR</abbr></a> (for example, one whose
+ representation was HTTP <code>POST</code>ed to the <abbr title="Linked Data Platform Container">LDPC</abbr>)
+ the LDP server might create an associated <a title="Linked Data Platform RDF Source" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-rdf-source" class="internalDFN"><abbr title="Linked Data Platform RDF Source">LDP-RS</abbr></a>
+ to contain data about the non-<abbr title="Linked Data Platform Resource">LDPR</abbr> (see <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-post-createbinlinkmetahdr"><abbr title="Linked Data Platform Container">LDPC</abbr> POST section</a>).
+ For LDP-NRs that have this associated <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr>, an <abbr title="Linked Data Platform Container">LDPC</abbr> server <em class="rfc2119" title="MUST">MUST</em> provide an HTTP <code>Link</code>
+ header whose target URI is the associated <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr>, and whose link relation type is
+ <code>describedby</code> [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC5988">RFC5988</a></cite>].
+ </h5></section><!-- Was 5.9.2 / #ldpc-5_9_2 -->
+</section> <!-- h2 -->
+</section> <!-- ldpc-container -->
+
+<section id="ldpbc" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h3 aria-level="2" role="heading" id="h3_ldpbc"><span class="secno">5.3 </span>Basic</h3>
+
+<p>The following section contains normative clauses for <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-basic-container" class="internalDFN">Linked Data Platform Basic Container</a>.</p>
+
+
+<section id="ldpbc-general" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_ldpbc-general"><span class="secno">5.3.1 </span>General</h4>
+
+<section id="ldpbc-are-ldpcs" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpbc-are-ldpcs"><span class="secno">5.3.1.1 </span>Each <a title="Linked Data Platform Basic Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-basic-container" class="internalDFN">LDP Basic Container</a> <em class="rfc2119" title="MUST">MUST</em> also be
+ a conforming <a title="Linked Data Platform Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-container" class="internalDFN">LDP Container</a> in <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-container" class="sectionRef sec-ref">section <span class="secno">5.2</span> <span class="sec-title">Container</span></a> along the
+ following restrictions in this section. <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP client</a>s <em class="rfc2119" title="MAY">MAY</em> infer the following triple:
+ whose subject is <code>ldp:BasicContainer</code>,
+ whose predicate is <code>rdfs:subClassOf</code>,
+ and whose object is <code>ldp:Container</code>,
+ but there is no requirement to materialize this triple in the <abbr title="Linked Data Platform Basic Container">LDP-BC</abbr> representation.
+</h5></section>
+
+</section> <!-- ldpbc General -->
+
+</section> <!-- ldpbc Basic -->
+
+
+<section id="ldpdc" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h3 aria-level="2" role="heading" id="h3_ldpdc"><span class="secno">5.4 </span>Direct</h3>
+
+<p>The following section contains normative clauses for <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">Linked Data Platform Direct Container</a>.</p>
+
+<section id="ldpdc-general" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_ldpdc-general"><span class="secno">5.4.1 </span>General</h4>
+
+<section id="ldpdc-are-ldpcs" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpdc-are-ldpcs"><span class="secno">5.4.1.1 </span>Each <a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">LDP Direct Container</a> <em class="rfc2119" title="MUST">MUST</em> also be
+ a conforming <a title="Linked Data Platform Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-container" class="internalDFN">LDP Container</a> in <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpc-container" class="sectionRef sec-ref">section <span class="secno">5.2</span> <span class="sec-title">Container</span></a> along the following
+ restrictions. <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP client</a>s <em class="rfc2119" title="MAY">MAY</em> infer the following triple:
+ whose subject is <code>ldp:BasicContainer</code>,
+ whose predicate is <code>rdfs:subClassOf</code>,
+ and whose object is <code>ldp:Container</code>,
+ but there is no requirement to materialize this triple in the <abbr title="Linked Data Platform Direct Container">LDP-DC</abbr> representation.
+</h5></section>
+
+<section id="ldpdc-mbrpred" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpdc-mbrpred"><span class="secno">5.4.1.2 </span>
+ <a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">LDP Direct Containers</a>
+ <em class="rfc2119" title="SHOULD">SHOULD</em> use the <code>ldp:member</code> predicate as an <abbr title="Linked Data Platform Container">LDPC</abbr>'s <a title="Membership predicate" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-predicate" class="internalDFN">membership predicate</a>
+ if there is no obvious predicate from an application vocabulary to use..
+ The state of an <abbr title="Linked Data Platform Container">LDPC</abbr> includes information about which
+ resources are its members, in the form of <a title="Membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">membership triples</a> that
+ follow a consistent pattern. The <abbr title="Linked Data Platform Container">LDPC</abbr>'s state contains enough information for clients to discern
+ the <a title="Membership predicate" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-predicate" class="internalDFN">membership predicate</a>, the other consistent membership
+ value used in the container's membership triples (<var>membership-constant-URI</var>),
+ and the position (subject or object) where those URIs
+ occurs in the <a title="Membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">membership triples</a>.
+ Member resources can be
+ any kind of resource identified by a URI, <abbr title="Linked Data Platform Resource">LDPR</abbr> or otherwise.
+</h5></section><!-- Was 5.2.3 / #ldpc-5_2_3 -->
+
+<section id="ldpdc-containres" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpdc-containres"><span class="secno">5.4.1.3 </span>Each <a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">LDP Direct Container</a>
+ representation <em class="rfc2119" title="MUST">MUST</em> contain exactly one triple
+ whose subject is the <abbr title="Linked Data Platform Container">LDPC</abbr> URI,
+ whose predicate is the <code>ldp:membershipResource</code>,
+ and whose object is the <abbr title="Linked Data Platform Container">LDPC</abbr>'s <var>membership-constant-URI</var>.
+ Commonly the <abbr title="Linked Data Platform Container">LDPC</abbr>'s URI is the <var>membership-constant-URI</var>, but LDP does not require this.
+</h5>
+</section><!-- Was 5.2.4 / #ldpc-5_2_4 -->
+
+<section id="ldpdc-containtriples" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpdc-containtriples"><span class="secno">5.4.1.4 </span>Each <a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">LDP Direct Container</a>
+ representation <em class="rfc2119" title="MUST">MUST</em> contain exactly one triple
+ whose subject is the <abbr title="Linked Data Platform Container">LDPC</abbr> URI,
+ and whose predicate is either <code>ldp:hasMemberRelation</code> or <code>ldp:isMemberOfRelation</code>.
+ The object of the triple is constrained by other sections, such as
+ <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpdc-containtriple-relation" class="sectionRef">ldp:hasMemberRelation</a> or
+ <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpdc-containtriple-byrelation" class="sectionRef">ldp:isMemberOfRelation</a>, based on the
+ <a title="Membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">membership triple</a>
+ pattern used by the container.
+</h5><!-- Was 5.2.5 / #ldpc-5_2_5 -->
+
+<section id="ldpdc-containtriple-relation" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h6 class="normal" aria-level="5" role="heading" id="h6_ldpdc-containtriple-relation"><span class="secno">5.4.1.4.1 </span><a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">LDP Direct Containers</a>
+ whose <a title="Membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">membership triple</a>
+ pattern is <var>( membership-constant-URI , membership-predicate , member-derived-URI )</var> <em class="rfc2119" title="MUST">MUST</em>
+ contain exactly one triple
+ whose subject is the <abbr title="Linked Data Platform Container">LDPC</abbr> URI,
+ whose predicate is <code>ldp:hasMemberRelation</code>,
+ and whose object is the URI of <var>membership-predicate</var>.
+</h6>
+</section><!-- Was 5.2.5.1 / #ldpc-5_2_5_1 -->
+
+<section id="ldpdc-containtriple-byrelation" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h6 class="normal" aria-level="5" role="heading" id="h6_ldpdc-containtriple-byrelation"><span class="secno">5.4.1.4.2 </span><a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">LDP Direct Containers</a>
+ whose <a title="Membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">membership triple</a>
+ pattern is <var>( member-derived-URI , membership-predicate , membership-constant-URI )</var> <em class="rfc2119" title="MUST">MUST</em>
+ contain exactly one triple
+ whose subject is the <abbr title="Linked Data Platform Container">LDPC</abbr> URI,
+ whose predicate is either <code>ldp:isMemberOfRelation</code>,
+ and whose object is the URI of <var>membership-predicate</var>.
+</h6></section><!-- Was 5.2.5.2 / #ldpc-5_2_5_2 -->
+</section>
+
+<section id="ldpdc-indirectmbr-basic" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpdc-indirectmbr-basic"><span class="secno">5.4.1.5 </span>
+ <a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">LDP Direct Containers</a>
+ <em class="rfc2119" title="MUST">MUST</em> behave as if they
+ have a <var>( <abbr title="Linked Data Platform Container">LDPC</abbr> URI, <code>ldp:insertedContentRelation</code> , <code>ldp:MemberSubject</code> )</var>
+ triple, but LDP imposes no requirement to materialize such a triple in the <abbr title="Linked Data Platform Direct Container">LDP-DC</abbr> representation.
+ The value <code>ldp:MemberSubject</code> means that the
+ <var>member-derived-URI</var> is the URI assigned by the server to a
+ document it creates; for example, if the client POSTs content to a container
+ that causes the container to create a new <abbr title="Linked Data Platform Resource">LDPR</abbr>, <code>ldp:MemberSubject</code> says
+ that the <var>member-derived-URI</var> is the URI assigned to the newly created <abbr title="Linked Data Platform Resource">LDPR</abbr>.
+</h5></section>
+
+</section> <!-- ldpdc-general -->
+
+<section id="ldpdc-HTTP_POST" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_ldpdc-HTTP_POST"><span class="secno">5.4.2 </span>HTTP POST</h4>
+ <section id="ldpdc-post-createdmbr-member" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpdc-post-createdmbr-member"><span class="secno">5.4.2.1 </span>
+ When a successful HTTP <code>POST</code> request to an <abbr title="Linked Data Platform Container">LDPC</abbr> results in the creation of an <abbr title="Linked Data Platform Resource">LDPR</abbr>,
+ the <abbr title="Linked Data Platform Container">LDPC</abbr> <em class="rfc2119" title="MUST">MUST</em> update its membership triples to reflect that addition, and the resulting
+ membership triple <em class="rfc2119" title="MUST">MUST</em> be consistent with any LDP-defined predicates it exposes.
+ A <a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">LDP Direct Container</a>'s membership triples <em class="rfc2119" title="MAY">MAY</em> also be modified via
+ through other means.
+ </h5></section><!-- Was 5.4.2 / #ldpc-5_4_2 -->
+</section> <!-- ldpdc-HTTP_POST -->
+
+<section id="ldpdc-HTTP_DELETE" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_ldpdc-HTTP_DELETE"><span class="secno">5.4.3 </span>HTTP DELETE</h4>
+
+ <section id="ldpdc-del-contremovesmbrtriple" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpdc-del-contremovesmbrtriple"><span class="secno">5.4.3.1 </span>
+ When an <abbr title="Linked Data Platform Resource">LDPR</abbr> identified by the object of a <a title="membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">membership triple</a> which was
+ originally created by the <abbr title="Linked Data Platform Direct Container">LDP-DC</abbr> is deleted, the <abbr title="Linked Data Platform Container">LDPC</abbr> server <em class="rfc2119" title="MUST">MUST</em> also remove
+ the corresponding membership triple..
+ </h5>
+ </section><!-- Was 5.6.1 / #ldpc-5_6_1 -->
+
+</section> <!-- ldpdc-HTTP_DELETE -->
+
+</section> <!-- ldpdc Direct -->
+
+<section id="ldpic" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h3 aria-level="2" role="heading" id="h3_ldpic"><span class="secno">5.5 </span>Indirect</h3>
+
+<p>The following section contains normative clauses for <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-indirect-container" class="internalDFN">Linked Data Platform Indirect Container</a>.</p>
+
+<section id="ldpic-general" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_ldpic-general"><span class="secno">5.5.1 </span>General</h4>
+
+<section id="ldpic-are-ldpcs" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpic-are-ldpcs"><span class="secno">5.5.1.1 </span>Each <a title="Linked Data Platform Indirect Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-indirect-container" class="internalDFN">LDP Indirect Container</a> <em class="rfc2119" title="MUST">MUST</em> also be
+ a conforming <a title="Linked Data Platform Direct Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-direct-container" class="internalDFN">LDP Direct Container</a> in <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpdc" class="sectionRef sec-ref">section <span class="secno">5.4</span> <span class="sec-title">Direct</span></a> along the following
+ restrictions. <a title="" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-client" class="internalDFN">LDP client</a>s <em class="rfc2119" title="MAY">MAY</em> infer the following triple:
+ whose subject is <code>ldp:IndirectContainer</code>,
+ whose predicate is <code>rdfs:subClassOf</code>,
+ and whose object is <code>ldp:Container</code>,
+ but there is no requirement to materialize this triple in the <abbr title="Linked Data Platform Indirect Container">LDP-IC</abbr> representation.
+</h5></section>
+
+<section id="ldpic-indirectmbr" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpic-indirectmbr"><span class="secno">5.5.1.2 </span>
+ <a title="Linked Data Platform Indirect Container" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-linked-data-platform-indirect-container" class="internalDFN">LDP Indirect Containers</a>
+ <em class="rfc2119" title="MUST">MUST</em> contain exactly one triple whose
+ subject is the <abbr title="Linked Data Platform Container">LDPC</abbr> URI,
+ whose predicate is <code>ldp:insertedContentRelation</code>, and
+ whose object <var>ICR</var> describes how the <var>member-derived-URI</var> in
+ the container's <a title="Membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">membership triples</a> is chosen.
+ The <var>member-derived-URI</var> is taken from some triple
+ <var>( S, P, O )</var> in the document supplied by the client as input to the create request;
+ if <var>ICR</var>'s value is <var>P</var>, then the <var>member-derived-URI</var> is
+ <var>O</var>. LDP does not define the behavior when more than one triple containing
+ the predicate <var>P</var> is present in the client's input.
+ For example, if the client POSTs <abbr title="Resource Description Framework">RDF</abbr> content to a container
+ that causes the container to create a new <abbr title="Linked Data Platform RDF Source">LDP-RS</abbr>, and that content contains the triple
+ <var>( <> , foaf:primaryTopic , bob#me )</var>
+ <code>foaf:primaryTopic</code> says
+ that the <var>member-derived-URI</var> is <var>bob#me</var>.
+ </h5>
+</section><!-- Was 5.2.10 / #ldpc-5_2_10 -->
+</section> <!-- ldpic General -->
+
+<section id="ldpic-HTTP_POST" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_ldpic-HTTP_POST"><span class="secno">5.5.2 </span>HTTP POST</h4>
+ <section id="ldpic-post-indirectmbrrel" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_ldpic-post-indirectmbrrel"><span class="secno">5.5.2.1 </span><abbr title="Linked Data Platform Containers">LDPCs</abbr>
+ whose <code>ldp:insertedContentRelation</code> triple has an object
+ <strong>other than</strong> <code>ldp:MemberSubject</code>
+ and that create new resources
+ <em class="rfc2119" title="MUST">MUST</em> add a triple to the container
+ whose subject is the container's URI,
+ whose predicate is <code>ldp:contains</code>, and
+ whose object is the newly created resource's URI (which will be different from
+ the <var><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpic-indirectmbr">member-derived URI</a></var> in this case).
+ This <code>ldp:contains</code> triple can be the only link from the container to the newly created
+ resource in certain cases.
+ </h5></section><!-- Was 5.4.15 / #ldpc-5_4_15 -->
+</section> <!-- ldpic HTTP_POST -->
+
+</section> <!-- ldpic Indirect -->
+
+</section> <!-- h1 LDPC -->
+
+
+<section id="base-specs" class="informative" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<!--OddPage--><h2 aria-level="1" role="heading" id="h2_base-specs"><span class="secno">6. </span>Notable information from normative references</h2><p><em>This section is non-normative.</em></p>
+<p>
+While readers, and especially implementers, of LDP are assumed to understand the information in its normative
+references, the working group has found that certain points are particularly important to understand.
+For those thoroughly familiar with the referenced specifications, these points might seem obvious, yet
+experience has shown that few non-experts find all of them obvious. This section enumerates these topics;
+it is simply re-stating (non-normatively) information locatable via the normative references.
+</p>
+
+<section id="specs-webarch" class="informative" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h3 aria-level="2" role="heading" id="h3_specs-webarch"><span class="secno">6.1 </span>Architecture of the World Wide Web</h3><p><em>This section is non-normative.</em></p>
+Reference: [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-WEBARCH">WEBARCH</a></cite>]
+
+ <section id="ldp-webarch-nonexcl-membership" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_ldp-webarch-nonexcl-membership"><span class="secno">6.1.1 </span><abbr title="Linked Data Platform Container">LDPC</abbr> membership is not exclusive; this means that the same resource
+ (<abbr title="Linked Data Platform Resource">LDPR</abbr> or not) can be a member of more than one <abbr title="Linked Data Platform Container">LDPC</abbr>.
+ </h4></section>
+
+ <section id="ldp-webarch-uri-reuse" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_ldp-webarch-uri-reuse"><span class="secno">6.1.2 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> should not re-use URIs,
+ regardless of the mechanism by which members are created (<code>POST</code>, <code>PUT</code>, etc.).
+ Certain specific cases exist where an <abbr title="Linked Data Platform Container">LDPC</abbr> server might delete a resource and then later re-use the
+ URI when it identifies the same resource, but only when consistent with Web architecture.
+ While it is difficult to provide absolute implementation guarantees of non-reuse in all failure
+ scenarios, re-using URIs creates ambiguities for clients that are best avoided.
+ </h4></section>
+
+</section>
+
+<section id="specs-http" class="informative" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h3 aria-level="2" role="heading" id="h3_specs-http"><span class="secno">6.2 </span>HTTP 1.1</h3><p><em>This section is non-normative.</em></p>
+Reference: [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>]
+
+ <section id="ldp-http-other-representations" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_ldp-http-other-representations"><span class="secno">6.2.1 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> can support representations beyond those
+ necessary to conform to this specification. These
+ could be other <abbr title="Resource Description Framework">RDF</abbr> formats, like N3 or NTriples, but non-<abbr title="Resource Description Framework">RDF</abbr> formats
+ like HTML [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTML401">HTML401</a></cite>] and JSON [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC4627">RFC4627</a></cite>] would likely be common.
+ HTTP content negotiation ([<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>] Section 12 - Content Negotiation) is used to select the format.
+ </h4></section>
+
+ <section id="ldp-http-other-methods" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_ldp-http-other-methods"><span class="secno">6.2.2 </span><abbr title="Linked Data Platform Resources">LDPRs</abbr> can be created, updated and deleted using methods not defined in
+ this document, for example through application-specific means, <abbr title="SPARQL Protocol and RDF Query Language">SPARQL</abbr>
+ UPDATE, etc. [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-SPARQL-UPDATE">SPARQL-UPDATE</a></cite>], as long as those methods do not conflict with this specification's
+ normative requirements.
+ </h4></section>
+
+ <section id="ldp-http-delete-uri-reuse" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_ldp-http-delete-uri-reuse"><span class="secno">6.2.3 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a>
+ remove the resource identified by the <code>Request-URI</code> in response to a successful HTTP <code>DELETE</code> request.
+ After such a request, a subsequent HTTP <code>GET</code> on the same
+ <code>Request-URI</code> usually results in a 404 (Not found) or 410 (Gone) status
+ code, although HTTP allows others.
+ </h4></section>
+
+ <section id="ldp-http-method-side-effects" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_ldp-http-method-side-effects"><span class="secno">6.2.4 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> can alter the state of other resources
+ as a result of any HTTP request, especially when non-safe methods are used ([<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>] section 9.1).
+ For example, it is acceptable for the server to
+ remove triples from other resources whose subject or object is the
+ deleted resource as the result of a successful HTTP <code>DELETE</code> request.
+ It is also acceptable and common for <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> to
+ not do this – the server's behavior can vary, so LDP clients cannot depend on it.
+ </h4></section>
+
+ <section id="ldp-http-patch-allowed" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_ldp-http-patch-allowed"><span class="secno">6.2.5 </span><a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> can implement HTTP <code>PATCH</code>
+ to allow modifications,
+ especially partial replacement, of their resources. No
+ minimal set of patch document formats is mandated by this document or by the definition of <code>PATCH</code> [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC5789">RFC5789</a></cite>].
+ </h4></section>
+
+ <section id="ldp-http-content-sniffing" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_ldp-http-content-sniffing"><span class="secno">6.2.6 </span>
+ When the <code>Content-Type</code> request header is absent from a request,
+ <a title="LDP server" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP servers</a> might infer the content type by inspecting the entity body contents [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>].
+ </h4></section>
+
+</section>
+
+<section id="specs-rdf" class="informative" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h3 aria-level="2" role="heading" id="h3_specs-rdf"><span class="secno">6.3 </span><abbr title="Resource Description Framework">RDF</abbr></h3><p><em>This section is non-normative.</em></p>
+Reference: [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-rdf11-concepts">rdf11-concepts</a></cite>]
+
+ <section id="ldp-rdfconcepts-extra-triples-any" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_ldp-rdfconcepts-extra-triples-any"><span class="secno">6.3.1 </span>The state of an <abbr title="Linked Data Platform Resource">LDPR</abbr>
+ can have triples with any subject(s). The URL used to retrieve the
+ representation of an <abbr title="Linked Data Platform Resource">LDPR</abbr> need not be the subject of any of its triples.
+ </h4></section>
+
+ <section id="ldp-rdfconcepts-extra-triples-members" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_ldp-rdfconcepts-extra-triples-members"><span class="secno">6.3.2 </span>The representation of an <abbr title="Linked Data Platform Container">LDPC</abbr>
+ can include an arbitrary number of
+ additional triples whose subjects are the members of the container,
+ or that are from the representations of the members (if they have <abbr title="Resource Description Framework">RDF</abbr>
+ representations). This allows an <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-ldp-server" class="internalDFN">LDP server</a> to provide clients with
+ information about the members without the client having to do a <code>GET</code>
+ on each member individually.
+ </h4></section>
+
+ <section id="ldp-rdfconcepts-extra-triples-types" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_ldp-rdfconcepts-extra-triples-types"><span class="secno">6.3.3 </span>The state of an <abbr title="Linked Data Platform Resource">LDPR</abbr> can have more than one
+ triple with an <code>rdf:type</code> predicate.
+ </h4></section>
+
+</section>
+
+</section> <!-- Base specs -->
+
+<section id="http-header-definitions">
+<!--OddPage--><h2 aria-level="1" role="heading" id="h2_http-header-definitions"><span class="secno">7. </span>HTTP Header Definitions</h2>
+
+<section id="header-accept-post" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h3 aria-level="2" role="heading" id="h3_header-accept-post"><span class="secno">7.1 </span>The Accept-Post Response Header</h3>
+
+ <div class="atrisk"><p class="atrisktext">Feature At Risk</p>
+ <p>The LDP Working Group proposes incorporation of the features described in this section.</p>
+ <ul>
+ <li>The addition of <code>Accept-Post</code> in this specification is pending
+ advancement of an <a href="https://datatracker.ietf.org/doc/draft-wilde-accept-post/">IETF draft</a>
+ that would fully include it, based on the Accept-Patch header's design from [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC5789">RFC5789</a></cite>]. Once LDP is in
+ Candidate Recommendation, the LDP WG will make an assessment based on the status at IETF
+ working with the <abbr title="World Wide Web Consortium">W3C</abbr> Director.</li>
+ </ul>
+ </div>
+
+ <p>This specification introduces a new HTTP response header <code>Accept-Post</code> used
+ to specify the document formats accepted by the server on HTTP <code>POST</code> requests.
+ It is modelled after the <code>Accept-Patch</code> header defined in [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC5789">RFC5789</a></cite>].
+ </p>
+
+ <section id="header-accept-post-1" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_header-accept-post-1"><span class="secno">7.1.1 </span>The syntax for <code>Accept-Post</code>, using
+ the ABNF syntax defined in Section 2.1 of [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>], is:</h4>
+ <blockquote><code>Accept-Post = "Accept-Post" ":" 1#media-type</code>
+ <p>
+ The <code>Accept-Post</code> header specifies a comma-separated list of media-
+ types (with optional parameters) as defined by [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTP11">HTTP11</a></cite>], Section 3.7.
+ </p>
+ </blockquote>
+ </section><!-- Was 6.1.1 / #header-accept-post-1 -->
+
+ <section id="header-accept-post-2" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_header-accept-post-2"><span class="secno">7.1.2 </span>
+ The <code>Accept-Post</code> HTTP header <em class="rfc2119" title="SHOULD">SHOULD</em> appear in the <code>OPTIONS</code> response for any resource
+ that supports the use of the <code>POST</code> method. The presence of the
+ <code>Accept-Post</code> header in response to any method is an implicit
+ indication that <code>POST</code> is allowed on the resource identified by the
+ <code>Request-URI</code>. The presence of a specific document format in
+ this header indicates that that specific format is allowed on <code>POST</code> requests to the
+ resource identified by the <code>Request-URI</code>.
+ </h4></section><!-- Was 6.1.2 / #header-accept-post-2 -->
+
+ <section id="header-accept-post-iana" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h4 class="normal" aria-level="3" role="heading" id="h4_header-accept-post-iana"><span class="secno">7.1.3 </span>IANA Registration Template</h4>
+ <div>
+ <blockquote>
+ <p>
+ The Accept-Post response header must be added to the permanent registry (see [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC3864">RFC3864</a></cite>]).
+ </p>
+ <p>
+ Header field name: Accept-Post
+ </p>
+ <p>
+ Applicable Protocol: HTTP
+ </p>
+ <p>
+ Author/Change controller: <abbr title="World Wide Web Consortium">W3C</abbr>
+ </p>
+ <p>
+ Specification document: this specification
+ </p>
+ </blockquote>
+ </div>
+ </section><!-- Was 6.1.3 / #header-accept-post-iana -->
+
+</section>
+
+<section id="prefer-parameters" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h3 aria-level="2" role="heading" id="h3_prefer-parameters"><span class="secno">7.2 </span>Preferences on the Prefer Request Header</h3>
+
+<section id="prefer-summary" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_prefer-summary"><span class="secno">7.2.1 </span>Summary</h4>
+
+ <div class="ldp-issue-pending">
+ <div class="ldp-issue-title">Need to update normative reference once RFC number is assigned.</div>
+ The <a href="http://tools.ietf.org/html/draft-snell-http-prefer-18">HTTP Prefer header</a> is queued for an RFC number behind HTTPbis, whose BNF Prefer normatively refers to.
+ </div>
+
+ <p>This specification introduces new parameters on the HTTP <code>Prefer</code> request header's
+ <code>return=representation</code> preference [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-Prefer">Prefer</a></cite>], used optionally by clients to
+ supply a hint to help the server form a response that is most appropriate to
+ the client's needs. The LDP-defined parameters suggest the portion(s) of a resource's state that the
+ client application is interested in and, if received, is likely to be
+ processed. LDP Containers with large numbers of associated documents
+ and/or members will have large representations, and many client
+ applications may be interested in processing only a subset of the <abbr title="Linked Data Platform Container">LDPC</abbr>'s
+ information (for example, only membership triples or only containment triples),
+ resulting in a potentially large savings in server, client,
+ and network processing.
+ </p>
+
+ <p>
+ Non-normative note: LDP server implementers should carefully consider the effects of these
+ preferences on caching, as described in section 2 of [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-Prefer">Prefer</a></cite>].
+ </p>
+
+ <p>
+ Non-normative note: [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-Prefer">Prefer</a></cite>] recommends that server implementers include a
+ <code>Preference-Applied</code> response header when the client cannot otherwise determine the server's
+ behavior with respect to honoring hints from the response content.
+ <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#prefer-examples">Examples</a> illustrates some cases where the header is unnecessary.
+ </p>
+
+</section> <!-- Prefer summary -->
+
+<section id="prefer-rules" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_prefer-rules"><span class="secno">7.2.2 </span>Specification</h4>
+
+ <section id="prefer-include" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_prefer-include"><span class="secno">7.2.2.1 </span>
+ The <code>include</code> hint defines a subset of an <abbr title="Linked Data Platform Resource">LDPR</abbr>'s content that a client
+ would like included in a representation.
+ The syntax for the <code>include</code> parameter of the
+ HTTP <code>Prefer</code> request header's
+ <code>return=representation</code> preference [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-Prefer">Prefer</a></cite>] is:</h5>
+ <blockquote>
+ <code>include-parameter = "include" *WSP "=" *WSP ldp-uri-list</code>
+ <p>
+ Where <code>WSP</code> is whitespace [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC5234">RFC5234</a></cite>], and
+ <code>ldp-uri-list</code> is a double-quoted blank-delimited unordered set of URIs whose ABNF is given below.
+ The generic preference BNF [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-Prefer">Prefer</a></cite>] allows either a quoted string or a token as the value of a
+ preference parameter; LDP assigns a meaning to the value only when it is a quoted string of
+ the form:
+ </p>
+ <code>ldp-uri-list = DQUOTE *WSP URI *[ 1*WSP URI ] *WSP DQUOTE</code>
+ <p>
+ where <code>DQUOTE</code> is a double quote [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC5234">RFC5234</a></cite>], and <code>URI</code> is an absolute URI with an optional
+ fragment component [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-RFC3986">RFC3986</a></cite>].
+ </p>
+ </blockquote>
+ </section>
+
+ <section id="prefer-omit" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_prefer-omit"><span class="secno">7.2.2.2 </span>
+ The <code>omit</code> hint defines a subset of an <abbr title="Linked Data Platform Resource">LDPR</abbr>'s content that a client
+ would like omitted from a representation.
+ The syntax for the <code>omit</code> parameter of the
+ HTTP <code>Prefer</code> request header's
+ <code>return=representation</code> preference [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-Prefer">Prefer</a></cite>] is:</h5>
+ <blockquote>
+ <code>omit-parameter = "omit" *WSP "=" *WSP ldp-uri-list</code>
+ <p>
+ Where <code>WSP</code> and <code>ldp-uri-list</code> are defined as above for <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#prefer-include">include</a>.
+ </p>
+ </blockquote>
+ </section>
+
+ <section id="prefer-conflicts" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_prefer-conflicts"><span class="secno">7.2.2.3 </span>
+ When LDP servers receive a request with conflicting hints, this specification imposes
+ no requirements on their behavior. They are free to reject the request, process it
+ applying some subset of the hints, or anything else appropriate to the server.
+ [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-Prefer">Prefer</a></cite>] suggests treating similar requests as though none of the conflicting
+ preferences were specified.
+ </h5>
+ </section>
+
+ <section id="prefer-uris" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h5 class="normal" aria-level="4" role="heading" id="h5_prefer-uris"><span class="secno">7.2.2.4 </span>
+ This specification defines the following URIs for clients to use with <code>include</code>
+ and <code>omit</code> parameters. It assigns no meaning to other URIs, although
+ other specifications <em class="rfc2119" title="MAY">MAY</em> do so.
+ <table class="indented">
+ <tbody><tr>
+ <td> <a title="Containment triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-containment-triples" class="internalDFN">Containment triples </a></td>
+ <td> <code>http://www.w3.org/ns/ldp#PreferContainment</code> </td>
+ </tr>
+ <tr>
+ <td> <a title="Membership triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-membership-triples" class="internalDFN">Membership triples </a></td>
+ <td> <code>http://www.w3.org/ns/ldp#PreferMembership</code> </td>
+ </tr>
+ <tr>
+ <td> <a title="Empty-container triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-empty-container-triples" class="internalDFN">Empty-container triples</a>
+ </td>
+ <td> <code>http://www.w3.org/ns/ldp#PreferEmptyContainer</code> </td>
+ </tr>
+ </tbody></table>
+ <blockquote>
+ <p>
+ Non-normative note: all currently defined URIs are only coherent for LDP-RSs,
+ and in fact only for <abbr title="Linked Data Platform Containers">LDPCs</abbr>, however in
+ the future it is possible that additional URIs with other scopes of applicability
+ could be defined.
+ </p>
+ </blockquote>
+
+ </h5>
+ </section>
+
+</section> <!-- Prefer specification -->
+<section id="prefer-examples" class="informative" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<h4 aria-level="3" role="heading" id="h4_prefer-examples"><span class="secno">7.2.3 </span>Examples</h4><p><em>This section is non-normative.</em></p>
+ <p>
+ If we assume a container like
+ the one below:
+ </p>
+ <div class="example"><div class="example-title"><span>Example 9</span></div><pre class="example" id="prefer-examples-direct"># The following is the representation of
+# http://example.org/netWorth/nw1/assetContainer/
+<!-- @base is here only so it's easier to paste into validators for checking -->
+# @base <http://example.org/netWorth/nw1/assetContainer/>.
+@prefix dcterms: <http://purl.org/dc/terms/>.
+@prefix ldp: <http://www.w3.org/ns/ldp#>.
+@prefix o: <http://example.org/ontology/>.
+
+<>
+ a ldp:DirectContainer;
+ dcterms:title "The assets of JohnZSmith";
+ ldp:membershipResource <http://example.org/netWorth/nw1>;
+ ldp:hasMemberRelation o:asset;
+ ldp:insertedContentRelation ldp:MemberSubject.
+
+<http://example.org/netWorth/nw1>
+ a o:NetWorth;
+ o:asset <a1>, <a3>, <a2>.
+
+<a1>
+ a o:Stock;
+ o:value 100.00 .
+<a2>
+ a o:Cash;
+ o:value 50.00 .
+<a3>
+ a o:RealEstateHolding;
+ o:value 300000 .</pre></div>
+
+ <p id="prefer-examples-direct-empty-container-only1">
+ Clients interested only in information about the container
+ (for example, which membership predicate it uses) might use this hint on a <code>GET</code> request:
+ <code>Prefer: return=representation; include="http://www.w3.org/ns/ldp#PreferEmptyContainer"</code>
+ </p>
+ <p>
+ A server that honors this hint would return a following response containing the HTTP header
+ <code>Preference-Applied: return=representation</code>
+ and this representation:
+ </p>
+
+ <div class="example"><div class="example-title"><span>Example 10</span></div><pre class="example"># The following is the ordered representation of
+# http://example.org/netWorth/nw1/assetContainer/
+<!-- @base is here only so it's easier to paste into validators for checking -->
+# @base <http://example.org/netWorth/nw1/assetContainer/>.
+@prefix dcterms: <http://purl.org/dc/terms/>.
+@prefix ldp: <http://www.w3.org/ns/ldp#>.
+@prefix o: <http://example.org/ontology/>.
+
+<>
+ a ldp:DirectContainer;
+ dcterms:title "The assets of JohnZSmith";
+ ldp:membershipResource <http://example.org/netWorth/nw1>;
+ ldp:hasMemberRelation o:asset;
+ ldp:insertedContentRelation ldp:MemberSubject.</pre></div>
+
+ <p id="prefer-examples-direct-empty-container-only2">
+ Clients interested only in information about the container
+ (same as before) might use this hint instead:
+ <code>Prefer: return=representation; omit="http://www.w3.org/ns/ldp#PreferMembership http://www.w3.org/ns/ldp#PreferContainment"</code>. Note: <strong>Treating the two as equivalent is not recommended.</strong> While today this
+ <code>omit</code> parameter value is equivalent to the preceding <code>include</code> parameter value,
+ they may not be equivalent in the future
+ due to the definition of <a title="Empty-container triples" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#dfn-empty-container-triples" class="internalDFN">empty-container triples</a>.
+ Clients should preferentially use the <code>include</code> parameter, as it more precisely communicates their needs.
+ </p>
+ <p>
+ A <strong>LDP 1.0</strong> server that honors this hint would return the following response. Servers
+ implementing later versions of LDP might return substantively different responses.
+ </p>
+
+ <div class="example"><div class="example-title"><span>Example 11</span></div><pre class="example"># The following is the ordered representation of
+# http://example.org/netWorth/nw1/assetContainer/
+<!-- @base is here only so it's easier to paste into validators for checking -->
+# @base <http://example.org/netWorth/nw1/assetContainer/>.
+@prefix dcterms: <http://purl.org/dc/terms/>.
+@prefix ldp: <http://www.w3.org/ns/ldp#>.
+@prefix o: <http://example.org/ontology/>.
+
+<>
+ a ldp:DirectContainer;
+ dcterms:title "The assets of JohnZSmith";
+ ldp:membershipResource <http://example.org/netWorth/nw1>;
+ ldp:hasMemberRelation o:asset;
+ ldp:insertedContentRelation ldp:MemberSubject.</pre></div>
+
+ <p id="prefer-examples-direct-membershiponly">
+ Clients interested only in information about the container
+ (for example, which membership predicate it uses) and its membership might use this hint on a <code>GET</code> request:
+ <code>Prefer: return=representation; include="http://www.w3.org/ns/ldp#PreferMembership http://www.w3.org/ns/ldp#PreferEmptyContainer"</code>
+ </p>
+ <p>
+ A server that honors this hint would return
+ (at least) the following response, and perhaps only this (it might
+ well omit containment triples if they are not specifically requested).
+ In cases like this example, where a client can detect from the content that its hints were honored
+ (the presence of the predicates <code>dcterms:title</code> and <code>o:asset</code> demonstrate this in the representation below),
+ there is no need for the server to include a <code>Preference-Applied</code> response header
+ in many common cases like a <code>200 (OK)</code> response. In other cases, like status code <code>303</code>,
+ the header would still be required for the client to know that the <code>303</code> response entity
+ is a representation of the resource identified by the <code>Location</code> URI
+ instead of a short hypertext note (one with a hyperlink to
+ the same URI reference provided in the <code>Location</code> header field [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-HTTPBIS-SEMANTICS">HTTPBIS-SEMANTICS</a></cite>]).
+ </p>
+
+ <div class="example"><div class="example-title"><span>Example 12</span></div><pre class="example"># The following is the representation of
+# http://example.org/netWorth/nw1/assetContainer/
+<!-- @base is here only so it's easier to paste into validators for checking -->
+# @base <http://example.org/netWorth/nw1/assetContainer/>.
+@prefix dcterms: <http://purl.org/dc/terms/>.
+@prefix ldp: <http://www.w3.org/ns/ldp#>.
+@prefix o: <http://example.org/ontology/>.
+
+<>
+ a ldp:DirectContainer;
+ dcterms:title "The assets of JohnZSmith";
+ ldp:membershipResource <http://example.org/netWorth/nw1>;
+ ldp:hasMemberRelation o:asset;
+ ldp:insertedContentRelation ldp:MemberSubject.
+
+<http://example.org/netWorth/nw1>
+ a o:NetWorth;
+ o:asset <a1>, <a3>, <a2>.</pre></div>
+
+ </section> <!-- Prefer examples -->
+
+</section> <!-- Prefer defns -->
+</section> <!-- Header defns -->
+
+<!-- Removed for action-113
+<section>
+<h1>HTTP Status Code Definitions</h1>
+
+<section id="status-code-related-content">
+<h2>209 Related Content</h2>
+
+ <div class="atrisk"><p class="atrisktext">Feature At Risk</p>
+ <p>The LDP Working Group proposes incorporation of the features described in this section.</p>
+ <ul>
+ <li>The addition of <a>209 Related Content</a> in this specification is pending
+ advancement of an <a href="https://datatracker.ietf.org/doc/draft-wilde-related-content/">IETF draft</a>
+ that would fully include it, patterned after the codes defined by [[RFC6585]]. Once LDP is in
+ Candidate Recommendation status, the LDP WG will make an assessment based on the status at IETF
+ working with the W3C Director.</li>
+ </ul>
+ </div>
+
+ <p>The <code>209 Related Content</code> status code indicates that the origin server
+ is supplying the representation of a different resource than the target resource,
+ and the origin server believes that the supplied representation
+ is likely to satisfy the user agent's original request.
+ The resource whose representation is supplied is descriptive of the target resource, in
+ the same way that the <code>Location</code> header in a <code>303 See Other</code>
+ response is descriptive of the target resource.
+ </p>
+ <p><code>209 Related Content</code> is intended to be used in situations where
+ <code>303 See Other</code> could have been used and would most likely result in a
+ user agent retrieving the other resource, but saves the user agent from
+ the latency penalty of having to perform a separate retrieval request.
+ </p>
+
+ <p> LDP uses <code>209 Related Content</code> to provide clients with the
+ <a href="#ldpr-Paging">first page of a large resource</a>, but it can also be used in
+ other common situations. Linked Data clients could benefit by avoiding the latency
+ of additional requests when the target resource is a concept resource (one without any
+ representation capable of transmission over HTTP), and general HTTP clients would
+ benefit in many of the more general cases where <code>303 See Other</code> responses
+ are currently used.
+ </p>
+
+ <div id="status-code-related-content-1" class="rule">7.1.1 A <code>209</code> response to a
+ <code>GET</code> request MUST contain a <code>Location</code> header with the same
+ <code>Location</code> field value as a <code>303 See Other</code> response would use [[!HTTP11]].
+ </div>
+
+ <div id="status-code-related-content-2" class="rule">7.1.2 A <code>209</code> response to a
+ <code>GET</code> request MUST contain a representation of the resource identified
+ by the response's <code>Location</code> header.
+ </div>
+
+ <div id="status-code-related-content-iana" class="rule">7.1.3 IANA Considerations</div>
+ <div>
+ <blockquote>
+ <p>
+ The <code>209 Related Content</code> must be added to the permanent status code registry
+ maintained at <a href="http://www.iana.org/assignments/http-status-codes">http://www.iana.org/assignments/http-status-codes</a>
+ (see [[HTTPBIS-SEMANTICS]], [[!RFC2817]]).
+ </p>
+ <p>
+ Value: 209
+ </p>
+ <p>
+ Description: Related Content
+ </p>
+ <p>
+ Reference: this specification
+ </p>
+ </blockquote>
+ </div>
+
+</section>
+</section> <!-- status code defns -->
+
+<section class="informative" id="security" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<!--OddPage--><h2 aria-level="1" role="heading" id="h2_security"><span class="secno">8. </span>Security Considerations</h2><p><em>This section is non-normative.</em></p>
+<p>As with any protocol that is implemented leveraging HTTP, implementations should take advantage of the many
+security-related facilities associated with it and are not required to carry out LDP operations
+that may be in contradistinction to a particular security policy in place. For example, when faced with an
+unauthenticated request to replace system critical <abbr title="Resource Description Framework">RDF</abbr> statements in a graph through the PUT method, applications may
+consider responding with the 401 status code (Unauthorized), indicating that the appropriate authorization
+is required. In cases where authentication is provided fails to meet the requirements of a particular access control
+policy, the 403 status code (Forbidden) can be sent back to the client to indicate this failure to meet the
+access control policy.</p>
+</section>
+
+<section class="appendix informative" id="acknowledgements">
+<!--OddPage--><h2 aria-level="1" role="heading" id="h2_acknowledgements"><span class="secno">A. </span>Acknowledgements</h2><p><em>This section is non-normative.</em></p>
+
+ <p>The following people have been instrumental in providing thoughts, feedback,
+reviews, content, criticism and input in the creation of this specification:</p>
+
+ <p style="margin-left: 3em;">
+ Alexandre Bertails, Andrei Sambra, Andy Seaborne, Antonis Loizou, Arnaud Le Hors, Ashok Malhota, Bart van Leeuwen, Cody Burleson, David Wood, Eric Prud'hommeaux, Erik Wilde, Henry Story, John Arwe, Kevin Page, Kingsley Idehen, Mark Baker, Martin P. Nally, Miel Vander Sande, Miguel Esteban Gutiérrez, Nandana Mihindukulasooriya, Olivier Berger, Pierre-Antoine Champin, Raúl García Castro, Reza B'Far, Richard Cyganiak, Roger Menday, Ruben Verborgh, Sandro Hawke, Serena Villata, Sergio Fernandez, Steve Battle, Steve Speicher, Ted Thibodeau, Tim Berners-Lee, Yves Lafon
+ </p>
+
+</section>
+
+<section class="appendix informative" id="history" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter">
+<!--OddPage--><h2 aria-level="1" role="heading" id="h2_history"><span class="secno">B. </span>Change History</h2><p><em>This section is non-normative.</em></p>
+<p>Summary of notable changes from previous public working draft.</p>
+
+<ul>
+ <li>Changed a number of the should/may clauses to must</li>
+ <li>Introduced separate concepts for memerbship and containment</li>
+ <li>Defined sub-types of ldp:Container : Basic, Direct and Indirect</li>
+ <li>Defined sub-types of ldp:Resource : <abbr title="Resource Description Framework">RDF</abbr> Source and non-<abbr title="Resource Description Framework">RDF</abbr> Source</li>
+ <li>Improved membership predicate names, changed vocabulary terms</li>
+ <li>Reorganized conformance clauses based on type of resource</li>
+ <li>Moved paging and sorting capability into a separate document [<cite><a class="bibref" href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#bib-LDP-PAGING">LDP-PAGING</a></cite>]</li>
+ <li>Removed non-member property mechanism and replaced with usage of Prefer header</li>
+ <li>Added support for client requested interaction models on containers</li>
+ <li>Move restatements of HTTP et al. out of normative sections</li>
+</ul>
+
+</section>
+
+
+
+<section id="references" class="appendix" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><!--OddPage--><h2 aria-level="1" role="heading" id="h2_references"><span class="secno">C. </span>References</h2><section id="normative-references" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h3 aria-level="2" role="heading" id="h3_normative-references"><span class="secno">C.1 </span>Normative references</h3><dl class="bibliography" about=""><dt id="bib-DC-TERMS">[DC-TERMS]</dt><dd rel="dcterms:requires">Dublin Core Metadata Initiative. <a href="http://dublincore.org/documents/2010/10/11/dcmi-terms/"><cite>Dublin Core Metadata Initiative Terms, version 1.1.</cite></a> 11 October 2010. DCMI Recommendation. URL: <a href="http://dublincore.org/documents/2010/10/11/dcmi-terms/">http://dublincore.org/documents/2010/10/11/dcmi-terms/</a>.
+</dd><dt id="bib-HTTP11">[HTTP11]</dt><dd rel="dcterms:requires">R. Fielding et al. <a href="http://www.ietf.org/rfc/rfc2616.txt"><cite>Hypertext Transfer Protocol - HTTP/1.1</cite></a>. June 1999. RFC. URL: <a href="http://www.ietf.org/rfc/rfc2616.txt">http://www.ietf.org/rfc/rfc2616.txt</a>
+</dd><dt id="bib-LDP-PAGING">[LDP-PAGING]</dt><dd rel="dcterms:requires">S. Speicher; J. Arwe; A. Malhotra. <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp-paging.html"><cite>Linked Data Platform Paging</cite></a>. Editor's Working Draft. URL: <a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp-paging.html">https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp-paging.html</a>
+</dd><dt id="bib-Prefer">[Prefer]</dt><dd rel="dcterms:requires">J. Snell. <a href="http://tools.ietf.org/html/draft-snell-http-prefer-18"><cite>Prefer</cite></a>. Internet Draft. URL: <a href="http://tools.ietf.org/html/draft-snell-http-prefer-18">http://tools.ietf.org/html/draft-snell-http-prefer-18</a>
+</dd><dt id="bib-RFC2119">[RFC2119]</dt><dd rel="dcterms:requires">S. Bradner. <a href="http://www.ietf.org/rfc/rfc2119.txt"><cite>Key words for use in RFCs to Indicate Requirement Levels.</cite></a> March 1997. Internet RFC 2119. URL: <a href="http://www.ietf.org/rfc/rfc2119.txt">http://www.ietf.org/rfc/rfc2119.txt</a>
+</dd><dt id="bib-RFC3864">[RFC3864]</dt><dd rel="dcterms:requires">G. Klyne; M. Nottingham; J. Mogul. <a href="http://www.ietf.org/rfc/rfc3864.txt"><cite>Registration Procedures for Message Header Fields</cite></a>. September 2004. RFC. URL: <a href="http://www.ietf.org/rfc/rfc3864.txt">http://www.ietf.org/rfc/rfc3864.txt</a>
+</dd><dt id="bib-RFC3986">[RFC3986]</dt><dd rel="dcterms:requires">T. Berners-Lee; R. Fielding; L. Masinter. <a href="http://www.ietf.org/rfc/rfc3986.txt"><cite>Uniform Resource Identifier (URI): Generic Syntax (RFC 3986)</cite></a>. January 2005. RFC. URL: <a href="http://www.ietf.org/rfc/rfc3986.txt">http://www.ietf.org/rfc/rfc3986.txt</a>
+</dd><dt id="bib-RFC3987">[RFC3987]</dt><dd rel="dcterms:requires">M. Dürst; M. Suignard. <a href="http://www.ietf.org/rfc/rfc3987.txt"><cite>Internationalized Resource Identifiers (IRIs)</cite></a>. January 2005. RFC. URL: <a href="http://www.ietf.org/rfc/rfc3987.txt">http://www.ietf.org/rfc/rfc3987.txt</a>
+</dd><dt id="bib-RFC5023">[RFC5023]</dt><dd rel="dcterms:requires">J. Gregorio; B. de hOra. <a href="http://www.ietf.org/rfc/rfc5023.txt"><cite>The Atom Publishing Protocol</cite></a>. October 2007. RFC. URL: <a href="http://www.ietf.org/rfc/rfc5023.txt">http://www.ietf.org/rfc/rfc5023.txt</a>
+</dd><dt id="bib-RFC5234">[RFC5234]</dt><dd rel="dcterms:requires">D. Crocker; P. Overell. <a href="http://www.ietf.org/rfc/rfc5234.txt"><cite>Augmented BNF for Syntax Specifications: ABNF</cite></a>. January 2008. STD. URL: <a href="http://www.ietf.org/rfc/rfc5234.txt">http://www.ietf.org/rfc/rfc5234.txt</a>
+</dd><dt id="bib-RFC5789">[RFC5789]</dt><dd rel="dcterms:requires">L Dusseault; J. Snell. <a href="http://tools.ietf.org/html/rfc5789"><cite>PATCH Method for HTTP (RFC 5789)</cite></a>. March 2010. RFC. URL: <a href="http://tools.ietf.org/html/rfc5789">http://tools.ietf.org/html/rfc5789</a>
+</dd><dt id="bib-RFC5988">[RFC5988]</dt><dd rel="dcterms:requires">Mark Nottingham. <a href="http://www.ietf.org/rfc/rfc5988.txt"><cite>Web Linking (RFC 5988)</cite></a>. October 2010. RFC. URL: <a href="http://www.ietf.org/rfc/rfc5988.txt">http://www.ietf.org/rfc/rfc5988.txt</a>
+</dd><dt id="bib-RFC6585">[RFC6585]</dt><dd rel="dcterms:requires">M. Nottingham; R. Fielding. <a href="http://www.ietf.org/rfc/rfc6585.txt"><cite>Additional HTTP Status Codes</cite></a>. April 2012. RFC. URL: <a href="http://www.ietf.org/rfc/rfc6585.txt">http://www.ietf.org/rfc/rfc6585.txt</a>
+</dd><dt id="bib-WEBARCH">[WEBARCH]</dt><dd rel="dcterms:requires">Ian Jacobs; Norman Walsh. <a href="http://www.w3.org/TR/webarch/"><cite>Architecture of the World Wide Web, Volume One</cite></a>. 15 December 2004. W3C Recommendation. URL: <a href="http://www.w3.org/TR/webarch/">http://www.w3.org/TR/webarch/</a>
+</dd><dt id="bib-rdf-schema">[rdf-schema]</dt><dd rel="dcterms:requires">Dan Brickley; Ramanathan Guha. <a href="http://www.w3.org/TR/rdf-schema/"><cite>RDF Schema 1.1</cite></a>. 9 January 2014. W3C Proposed Edited Recommendation. URL: <a href="http://www.w3.org/TR/rdf-schema/">http://www.w3.org/TR/rdf-schema/</a>
+</dd><dt id="bib-rdf11-concepts">[rdf11-concepts]</dt><dd rel="dcterms:requires">Richard Cyganiak; David Wood; Markus Lanthaler. <a href="http://www.w3.org/TR/rdf11-concepts/"><cite>RDF 1.1 Concepts and Abstract Syntax</cite></a>. 9 January 2014. W3C Proposed Recommendation. URL: <a href="http://www.w3.org/TR/rdf11-concepts/">http://www.w3.org/TR/rdf11-concepts/</a>
+</dd><dt id="bib-turtle">[turtle]</dt><dd rel="dcterms:requires">Eric Prud'hommeaux; Gavin Carothers. <a href="http://www.w3.org/TR/turtle/"><cite>RDF 1.1 Turtle</cite></a>. 9 January 2014. W3C Proposed Recommendation. URL: <a href="http://www.w3.org/TR/turtle/">http://www.w3.org/TR/turtle/</a>
+</dd></dl></section><section id="informative-references" typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter"><h3 aria-level="2" role="heading" id="h3_informative-references"><span class="secno">C.2 </span>Informative references</h3><dl class="bibliography" about=""><dt id="bib-HTML401">[HTML401]</dt><dd rel="dcterms:references">Dave Raggett; Arnaud Le Hors; Ian Jacobs. <a href="http://www.w3.org/TR/html401"><cite>HTML 4.01 Specification</cite></a>. 24 December 1999. W3C Recommendation. URL: <a href="http://www.w3.org/TR/html401">http://www.w3.org/TR/html401</a>
+</dd><dt id="bib-HTTPBIS-SEMANTICS">[HTTPBIS-SEMANTICS]</dt><dd rel="dcterms:references">R. Fielding; J. Reschke. <a href="http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics/"><cite>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</cite></a>. In Last Call. URL: <a href="http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics/">http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics/</a>
+</dd><dt id="bib-LDP-UCR">[LDP-UCR]</dt><dd rel="dcterms:references">Steve Battle; Steve Speicher. <a href="http://www.w3.org/TR/ldp-ucr/"><cite>Linked Data Platform Use Cases and Requirements</cite></a>. 31 October 2013. W3C Working Draft. URL: <a href="http://www.w3.org/TR/ldp-ucr/">http://www.w3.org/TR/ldp-ucr/</a>
+</dd><dt id="bib-LINKED-DATA">[LINKED-DATA]</dt><dd rel="dcterms:references">Tim Berners-Lee. <a href="http://www.w3.org/DesignIssues/LinkedData.html"><cite>Linked Data Design Issues</cite></a>. 27 July 2006. W3C-Internal Document. URL: <a href="http://www.w3.org/DesignIssues/LinkedData.html">http://www.w3.org/DesignIssues/LinkedData.html</a>
+</dd><dt id="bib-RFC4627">[RFC4627]</dt><dd rel="dcterms:references">D. Crockford. <a href="http://www.ietf.org/rfc/rfc4627.txt"><cite>The application/json Media Type for JavaScript Object Notation (JSON) (RFC 4627)</cite></a>. July 2006. RFC. URL: <a href="http://www.ietf.org/rfc/rfc4627.txt">http://www.ietf.org/rfc/rfc4627.txt</a>
+</dd><dt id="bib-SPARQL-UPDATE">[SPARQL-UPDATE]</dt><dd rel="dcterms:references">Paul Gearon; Alexandre Passant; Axel Polleres. <a href="http://www.w3.org/TR/sparql11-update/"><cite>SPARQL 1.1 Update</cite></a>. 21 March 2013. W3C Recommendation. URL: <a href="http://www.w3.org/TR/sparql11-update/">http://www.w3.org/TR/sparql11-update/</a>
+</dd><dt id="bib-sparql11-query">[sparql11-query]</dt><dd rel="dcterms:references">Steven Harris; Andy Seaborne. <a href="http://www.w3.org/TR/sparql11-query/"><cite>SPARQL 1.1 Query Language</cite></a>. 21 March 2013. W3C Recommendation. URL: <a href="http://www.w3.org/TR/sparql11-query/">http://www.w3.org/TR/sparql11-query/</a>
+</dd></dl></section></section></body></html>
\ No newline at end of file
Binary file TR/WD-ldp-20140311/images/ldpc-hierarchy.png has changed
Binary file TR/WD-ldp-20140311/images/ldpr1.png has changed
Binary file TR/WD-ldp-20140311/images/ldpr2.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/TR/WD-ldp-20140311/ldp.ttl Tue Mar 04 13:14:38 2014 -0500
@@ -0,0 +1,165 @@
+# See details within this document for linkage to specification and purpose.
+# This ontology file is a non-normative supporting document.
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
+@prefix owl: <http://www.w3.org/2002/07/owl#>.
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
+@prefix dcterms: <http://purl.org/dc/terms/>.
+@prefix vs: <http://www.w3.org/2003/06/sw-vocab-status/ns#> .
+@prefix : <http://www.w3.org/ns/ldp#>.
+
+:
+ a owl:Ontology;
+ dcterms:description "All vocabulary URIs defined in the Linked Data Platform (LDP) namespace.";
+ dcterms:title "The W3C Linked Data Platform (LDP) Vocabulary";
+ rdfs:label "W3C Linked Data Platform (LDP)";
+ rdfs:comment "This ontology provides an informal representation of the concepts and terms
+ as defined in the LDP specification. Consult the LDP specification for normative reference.";
+ rdfs:seeAlso <http://www.w3.org/2012/ldp>,
+ <http://www.w3.org/TR/ldp-ucr/>,
+ <http://www.w3.org/TR/ldp/>,
+ <http://www.w3.org/2011/09/LinkedData/>.
+
+:Resource
+ a rdfs:Class;
+ rdfs:comment "A HTTP-addressable resource whose lifecycle is managed by a LDP server.";
+ vs:term_status "unstable";
+ rdfs:isDefinedBy :;
+ rdfs:label "Resource".
+
+:RDFSource
+ a rdfs:Class;
+ rdfs:subClassOf :Resource;
+ rdfs:comment "A Linked Data Platform Resource (LDPR) whose state is represented as
+ RDF.";
+ vs:term_status "unstable";
+ rdfs:isDefinedBy :;
+ rdfs:label "RDFSource".
+
+:NonRDFSource
+ a rdfs:Class;
+ rdfs:subClassOf :Resource;
+ rdfs:comment "A Linked Data Platform Resource (LDPR) whose state is NOT represented as
+ RDF.";
+ vs:term_status "unstable";
+ rdfs:isDefinedBy :;
+ rdfs:label "NonRDFSource".
+
+:Container
+ a rdfs:Class;
+ rdfs:subClassOf :RDFSource;
+ rdfs:comment "A Linked Data Platform RDF Source (LDP-RS) that also conforms to
+ additional patterns and conventions for managing membership.
+ Readers should refer to the specification defining this ontology for the list of
+ behaviors associated with it.";
+ vs:term_status "unstable";
+ rdfs:isDefinedBy :;
+ rdfs:label "Container".
+
+:BasicContainer
+ a rdfs:Class;
+ rdfs:subClassOf :Container;
+ rdfs:comment "An LDPC that uses a predefined predicate to simply link to its contained resources.";
+ vs:term_status "unstable";
+ rdfs:isDefinedBy :;
+ rdfs:label "BasicContainer".
+
+:DirectContainer
+ a rdfs:Class;
+ rdfs:subClassOf :Container;
+ rdfs:comment "An LDPC that is similar to a LDP-DC but it allows an indirection with the ability to
+ list as member a resource, such as a URI representing a real-world object, that is different
+ from the resource that is created";
+ vs:term_status "unstable";
+ rdfs:isDefinedBy :;
+ rdfs:label "DirectContainer".
+
+:IndirectContainer
+ a rdfs:Class;
+ rdfs:subClassOf :Container;
+ rdfs:comment "An LDPC that has the flexibility of choosing what form the membership triples take.";
+ vs:term_status "unstable";
+ rdfs:isDefinedBy :;
+ rdfs:label "IndirectContainer".
+
+:hasMemberRelation
+ a rdf:Property;
+ rdfs:comment "Indicates which predicate is used in membership triples, and that the membership triple pattern is < membership-constant-URI , object-of-hasMemberRelation, member-URI >.";
+ vs:term_status "unstable";
+ rdfs:domain :Container;
+ rdfs:isDefinedBy :;
+ rdfs:label "hasMemberRelation";
+ rdfs:range rdf:Property.
+
+:isMemberOfRelation
+ a rdf:Property;
+ rdfs:comment "Indicates which predicate is used in membership triples, and that the membership triple pattern is < member-URI , object-of-isMemberOfRelation, membership-constant-URI >.";
+ vs:term_status "unstable";
+ rdfs:domain :Container;
+ rdfs:isDefinedBy :;
+ rdfs:label "isMemmberOfRelation";
+ rdfs:range rdf:Property.
+
+:membershipResource
+ a rdf:Property;
+ rdfs:comment "Indicates the membership-constant-URI in a membership triple. Depending upon the membership triple pattern a container uses, as indicated by the presence of ldp:hasMemberRelation or ldp:isMemberOfRelation, the membership-constant-URI might occupy either the subject or object position in membership triples.";
+ vs:term_status "unstable";
+ rdfs:domain :Container;
+ rdfs:isDefinedBy :;
+ rdfs:label "membershipResource";
+ rdfs:range rdf:Property.
+
+:insertedContentRelation
+ a rdf:Property;
+ rdfs:comment "Indicates which triple in a creation request should be used as the member-URI value in the membership triple added when the creation request is successful.";
+ vs:term_status "unstable";
+ rdfs:domain :Container;
+ rdfs:isDefinedBy :;
+ rdfs:label "insertedContentRelation";
+ rdfs:range rdf:Property.
+
+:member
+ a rdf:Property;
+ rdfs:comment "LDP servers should use this predicate as the membership predicate if there is no obvious predicate from an application vocabulary to use.";
+ vs:term_status "unstable";
+ rdfs:domain :Resource;
+ rdfs:isDefinedBy :;
+ rdfs:label "member";
+ rdfs:range rdfs:Resource.
+
+:contains
+ a rdf:Property;
+ rdfs:comment "Links a container with resources created through the container.";
+ vs:term_status "unstable";
+ rdfs:domain :Container;
+ rdfs:isDefinedBy :;
+ rdfs:label "contains";
+ rdfs:range rdfs:Resource.
+
+:MemberSubject
+ a rdf:Description; # individual
+ rdfs:comment "Used to indicate default and typical behavior for ldp:insertedContentRelation, where the member-URI value in the membership triple added when a creation request is successful is the URI assigned to the newly created resource.";
+ vs:term_status "unstable";
+ rdfs:isDefinedBy :;
+ rdfs:label "MemberSubject".
+
+:PreferContainment
+ a rdf:Description; # individual
+ rdfs:comment "URI identifying a LDPC's containment triples, for example to allow clients to express interest in receiving them.";
+ vs:term_status "unstable";
+ rdfs:isDefinedBy :;
+ rdfs:label "PreferContainment".
+
+:PreferMembership
+ a rdf:Description; # individual
+ rdfs:comment "URI identifying a LDPC's membership triples, for example to allow clients to express interest in receiving them.";
+ vs:term_status "unstable";
+ rdfs:isDefinedBy :;
+ rdfs:label "PreferMembership".
+
+:PreferEmptyContainer
+ a rdf:Description; # individual
+ rdfs:comment "URI identifying the subset of a LDPC's triples present in an empty LDPC, for example to allow clients to express interest in receiving them. Currently this excludes containment and membership triples, but in the future other exclusions might be added. This definition is written to automatically exclude those new classes of triples.";
+ vs:term_status "unstable";
+ rdfs:isDefinedBy :;
+ rdfs:label "PreferEmptyContainer".
+
\ No newline at end of file