Merge
authorJohn Arwe
Wed, 16 Apr 2014 09:48:18 -0400
changeset 560 dcc78fa4ea34
parent 559 c447c216451e (current diff)
parent 557 fc47cc77db0c (diff)
child 561 ceeb37eb8f71
Merge
--- a/Test Cases/LDP Test Cases.html	Wed Apr 16 09:47:23 2014 -0400
+++ b/Test Cases/LDP Test Cases.html	Wed Apr 16 09:48:18 2014 -0400
@@ -1,1 +1,3 @@
-<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.1//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	prefix="td: http://www.w3.org/2006/03/test-description# tn: http://ldp.example.org/NewTestDefinitions# ht: http://www.w3.org/2011/http#">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<!--    rgarcia: Had to uncomment it so it can read the local image
<base href="http://www.w3.org/TR/ldp/TestCases">-->
<title>Linked Data Platform 1.0 Test Cases</title>
<script src='https://www.w3.org/Tools/respec/respec-w3c-common'
	class='remove' async></script>
<script class='remove'>
	var respecConfig = {
		// specification status (e.g. WD, LCWD, NOTE, etc.). If in doubt use ED.
		specStatus : "NOTE",

		// the specification's short name, as in http://www.w3.org/TR/short-name/
		shortName : "ldp-test-cases",
		// TODO: Confirm short name

		// if your specification has a subtitle that goes below the main
		// formal title, define it here
		// subtitle   :  "an excellent document",

		// if you wish the publication date to be other than today, set this
		// publishDate:  "2009-08-06",

		// if the specification's copyright date is a range of years, specify
		// the start date here:
		// copyrightStart: "2005"

		// if there is a previously published draft, uncomment this and set its YYYY-MM-DD date
		// and its maturity status
		//previousPublishDate:  "2013-03-07",
		//previousMaturity:  	"FPWD",
		//previousURI: 			"http://www.w3.org/TR/2013/WD-ldp-20130307/",

		// if there a publicly available Editor's Draft, this is the link
		//edDraftURI:           "http://www.w3.org/2012/ldp/hg/ldp.html",

		// if this is a LCWD, uncomment and set the end of its review period
		// lcEnd: "2009-08-05",

		// if you want to have extra CSS, append them to this list
		// it is recommended that the respec.css stylesheet be kept
		//extraCSS:             ["https://dvcs.w3.org/hg/ldpwg/css/respec.css"],

		// editors, add as many as you like
		// only "name" is required
		editors : [
				{
					name : "Raúl García-Castro",
					url : "http://www.garcia-castro.com/",
					company : "Ontology Engineering Group, Universidad Politécnica de Madrid",
					companyURL : "http://www.oeg-upm.net/"
				},
				{
					name : "Fernando Serena",
					company : "Ontology Engineering Group, Universidad Politécnica de Madrid",
					companyURL : "http://www.oeg-upm.net/"
				}
		//{ name: "John Arwe", url: "https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/allcommunities?userid=120000CAW7",
		//  company: "IBM Corporation", companyURL: "http://ibm.com/" },
		],

		// authors, add as many as you like.
		// This is optional, uncomment if you have authors as well as editors.
		// only "name" is required. Same format as editors.

		//authors:  [
		//    { name: "Your Name", url: "http://example.org/",
		//      company: "Your Company", companyURL: "http://example.com/" },
		//],

		// name of the WG
		wg : "Linked Data Platform Working Group",

		// URI of the public WG page
		wgURI : "http://www.w3.org/2012/ldp",

		// name (without the @w3c.org) of the public mailing to which comments are due
		wgPublicList : "public-ldp-wg",

		// URI of the patent status for this WG, for Rec-track documents
		// !!!! IMPORTANT !!!!
		// This is important for Rec-track documents, do not copy a patent URI from a random
		// document unless you know what you're doing. If in doubt ask your friendly neighbourhood
		// Team Contact.
		wgPatentURI : "http://www.w3.org/2004/01/pp-impl/55082/status",
		doRDFa : "1.1",
	};
</script>
</head>
<body>

	<section id='abstract'>
	<p>The Linked Data Platform specification, informally LDP,
		describes the use of HTTP for accessing, updating, creating and
		deleting resources from servers that expose their resources as Linked
		Data. This document describes the conditions that LDP servers must
		satisfy in order to be conformant with the specification and presents
		a common format for describing LDP test cases and server results.
		These test cases both illustrate the features of the specification and
		can be used for testing conformance.</p>
	</section>

	<section id='sotd'>
      <p>
      <!--Empty. Nothing else to add.-->
      </p>
    </section>

	<section>
	<h2>
		Introduction
	</h2>
	<p>
		This document describes a test suite that can be used to evaluate the
		conformance of LDP servers to the LDP specification
		[[LINKED-DATA-PLATFORM]]. The document also presents the design
		principles that guided the development of the test suite, a testing
		process, and a common format for describing test cases and server
		results. <br> The purpose of the test cases is to illustrate the
			specification features and to help in testing conformance. The
			provided set of test cases is "incomplete" in the sense that passing
			all the tests does not prove that a given system conforms to the LDP
			specification; failing a test does, however, prove that the system
			does not conform to the specification.
		<br> The presented format is intended to facilitate the use of
			tests by LDP server developers, e.g., in a test harness, as well as
			the extension of the test suite with new tests. Developers can check
			the LDP Primer [[LDP-PRIMER]] for concrete examples of inputs and
			expected outputs that can be used for testing.
	</p>
	</section>

	<section>
	<h2>
		Design principles
	</h2>

	<section>
	<h3>
		Generic vs domain-specific servers
	</h3>
	<p>There will be two types of systems implementing the LDP
		specification:</p>
	<ul>
		<li>Generic RDF storage systems that allow interacting with their
			resources by means of the LDP specification. These servers do not
			impose any restriction on LDPRs.</li>
		<li>Systems exposing their data using the LDP specification.
			These systems impose restrictions on LDPRs since they have an
			underlying business logic and data model.</li>
	</ul>
	<p>In order to cover both types of systems, we do not provide
		specific input data in the test suite. It is up to the evaluator to
		define specific input data for a certain system. Evaluators must
		include these input data along with the results when reporting the
		results of a certain system.</p>
	</section> <section>
	<h3>
		Protocol evaluation vs data evaluation
	</h3>
	<p>The LDP specification includes restrictions on LDP servers at
		the protocol level and at the data level. Currently, the restrictions
		at the data level are minimal and servers are not forced to have a
		certain behaviour when processing LDPR representations. Therefore, the
		test suite evaluates LDP servers at a protocol level; the only
		exception is in the case of LDPCs, since they are required to include
		an rdf.type statement in their representation.</p>
	<p>It is out of the scope of the test suite to test LDP servers in
		terms of the restrictions imposed by their underlying data models.</p>
	</section> <section>
	<h3>
		Test suite coverage
	</h3>
	<p>
		This test suite only covers those absolute requirements present in the
		LDP specification (as stated by the use of the MUST key word). This
		set of absolute requirements identifies the core subset of the LDP
		specification,
		<dfn>LDP Core</dfn>
		from now on, and any LDP server that satisfies these absolute
		requirements will be an LDP Core conformant server.
	</p>
	<p>It is out of the scope of this test suite to test other levels
		of conformance in terms of optional capabilities (e.g., paging).</p>
	<p>
		Furthermore, the LDP specification [[LINKED-DATA-PLATFORM]] contains
		the following absolute requirements for <a>LDP Core</a> that are not
		directly testable and, therefore, are not covered by the current test
		suite:
	</p>
	<ul>
		<li>4.2.1.1 LDP servers MUST at least be HTTP/1.1 conformant servers [HTTP11].</li>
		<li>4.2.1.5 LDP servers MUST assign the default base-URI for [RFC3987] relative-URI resolution to be the HTTP Request-URI when the resource already exists, and to the URI of the created resource when the request results in the creation of a new resource.</li>
		<li>4.2.1.6 LDP servers MUST publish any constraints on LDP clients’ ability to create or update LDPRs, by adding a Link header with rel='describedby' [RFC5988] to all responses to requests which fail due to violation of those constraints.</li>
		<li>4.2.2.2 LDP servers MUST support the HTTP response headers defined in section 4.2.8 HTTP OPTIONS.</li>
		<li>4.2.4.1 If a HTTP PUT is accepted on an existing resource, LDP servers MUST replace the entire persistent state of the identified resource with the entity representation in the body of the request. [...] Any LDP servers that wish to support a more sophisticated merge of data provided by the client with existing state stored on the server for a resource MUST use HTTP PATCH, not HTTP PUT.</li>
		<li>4.2.4.3 If an otherwise valid HTTP PUT request is received that attempts to change properties the server does not allow clients to modify, LDP servers MUST respond with a 4xx range status code (typically 409 Conflict).</li>
		<li>4.2.4.4 If an otherwise valid HTTP PUT request is received that contains properties the server chooses not to persist, e.g. unknown content, LDP servers MUST respond with an appropriate 4xx range status code [HTTP11].</li>
		<li>4.2.4.5 [...] LDP servers that require conditional requests MUST respond with status code 428 (Precondition Required) when the absence of a precondition is the only reason for rejecting the request [RFC6585].</li>
		<li>4.2.7.1 LDP servers that support PATCH MUST include an Accept-Patch HTTP response header [RFC5789] on HTTP OPTIONS requests, listing patch document media type(s) supported by the server.</li>
		<li>4.3.1.4 LDP servers MUST provide an RDF representation for LDP-RSs [...]</li>
		<li>4.3.1.10 LDP servers MUST NOT require LDP clients to implement inferencing in order to recognize the subset of content defined by LDP.</li>
		<li>5.2.3.12 If an LDPC server creates this associated LDP-RS it MUST indicate its location on the HTTP response using the HTTP Link response header with link relation describedby and href to be the URI of the associated LDP-RS resource [RFC5988].</li>
		<li>5.2.3.13 LDP servers that support POST MUST include an Accept-Post response header on HTTP OPTIONS responses, listing post document media type(s) supported by the server.</li>
		<li>5.2.5.1 When an LDPR identified by the object of a containment triple is deleted, the LDPC server MUST also remove the LDPR from the containing LDPC by removing the corresponding containment triple.</li>
		<li>5.2.5.2 When an LDPR identified by the object of a containment triple is deleted, and the LDPC server created an associated LDP-RS (see the LDPC POST section), the LDPC server MUST also remove the associated LDP-RS it created.</li>
		<li>5.2.8.1 When an LDPC server creates an LDP-NR (for example, one whose representation was HTTP POSTed to the LDPC) the LDP server might create an associated LDP-RS to contain data about the non-LDPR (see LDPC POST section). For LDP-NRs that have this associated LDP-RS, an LDPC server MUST provide an HTTP Link header whose target URI is the associated LDP-RS, and whose link relation type is describedby [RFC5988].</li>
		<li>5.4.1.5 LDP Direct Containers MUST behave as if they have a ( LDPC URI, ldp:insertedContentRelation , ldp:MemberSubject ) triple, but LDP imposes no requirement to materialize such a triple in the LDP-DC representation.</li>
		<li>5.4.3.1 When an LDPR identified by the object of a membership triple which was originally created by the LDP-DC is deleted, the LDPC server MUST also remove the corresponding membership triple.</li>
	</ul>
	</section> <section>
	<h3>
		Separation of results and assertions
	</h3>
	<p>Instead of defining expected results for tests, which will be
		dependent on specific implementations, we have defined the assertions
		to be made over test results. In order to successfully pass a test,
		all of the assertions must be satisfied.</p>
	<p>Separating test outputs and assertions has other benefits: it
		makes simpler to report tool results and assertions can be made by a
		third party.</p>
	</section> <section>
	<h3>
		Traceability of test cases
	</h3>
	<p>Any test case and its produced results and assertions should be
		related to those documents that are relevant for it (e.g.,
		specifications, uses cases, etc.).</p>
	</section> </section>

	<section>
	<h2>
		Testing process
	</h2>
	<p>The LDP Test Cases are defined in this same page, which is
		annotated using RDFa so that it can be consumed both by persons and
		machines. The testing process is composed of two steps, depicted in
		the figure below.</p>
	<ol>
		<li>The person or agent in charge of executing the test cases in
			a specific LDP server will take the test case definitions and run
			every test case on the LDP server. It is recommended (but not
			required) that test execution is automated. The execution of test
			cases must produce a test execution report for the LDP server, in RDF
			format, that contains for every test case: the specific inputs used
			during its execution, the produced outputs, and the assertion of
			whether the test case is passed. The test execution report must be
			available in the Web.</li>
		<li>A report generator software will take all the LDP server
			execution reports and will generate an implementation report that
			includes the results of all the LDP servers.</li>
	</ol>
	<p>
		<object data="TestingProcess.svg" type="image/svg+xml">Your
			browser does not support SVG.</object>
	</p>
	</section>

	<section>
	<h2>
		Describing testing artifacts in RDF
	</h2>

	<section>
	<h3>
		Namespaces used
	</h3>
	<p>
		The following vocabularies are reused for describing the testing
		artifacts: DOAP (
		<code>doap</code>
		), Dublin Core (
		<code>dc</code>
		) [[DC11]], FOAF (
		<code>foaf</code>
		) [[FOAF]], HTTP Vocabulary in RDF (
		<code>ht</code>
		) [[HTTP-IN-RDF]], and W3C Test Metadata (
		<code>td</code>
		) [[TEST-METADATA]].
	</p>
	<p>
		All the new required entities that are not covered by those
		vocabularies have been defined under a new namespace (
		<code>tn</code>
		). Besides, the LDP test cases have been defined under their own
		namespace (
		<code>ldptc</code>
		).
	</p>
	<p>Next we present the definition of these namespaces and of all
		the namespaces used in the examples.</p>
	<pre>cnt: &lt;http://www.w3.org/2011/content#&gt;
dc: &lt;http://purl.org/dc/terms/&gt;
doap: &lt;http://usefulinc.com/ns/doap#&gt;
earl: &lt;http://www.w3.org/ns/earl#&gt;
foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
ht: &lt;http://www.w3.org/2011/http#&gt;
httph: &lt;http://www.w3.org/2011/http-headers#&gt;
ldptc: &lt;http://www.w3.org/TR/ldp/TestCases#&gt;
td: &lt;http://www.w3.org/2006/03/test-description#&gt;
tn: &lt;http://ldp.example.org/NewTestDefinitions#&gt;</pre> </section> <!--
    <section>
    <h3><a id="TestSuiteDescription">Test suite description</a></h3>
    <p><em>To be completed</em></p>
    </section>
--> <section>
	<h3>
		Test case description
	</h3>
	<p>
		A
		<dfn id="dfn-test-case" title="test case">test case</dfn>
		is defined as an instance of the
		<code>td:TestCase</code>
		class and it can be further described using the following properties:
	</p>
	<ul>
		<li><code>rdfs:label</code>. The human-readable label of the
			test.</li>
		<li><code>dc:title</code>. The name of the test.</li>
		<li><code>dc:description</code>. The description of the test.</li>
		<li><code>dc:contributor</code>. The person (<code>foaf:Person</code>)
			contributing the test.</li>
		<li><code>td:reviewStatus</code>. The status of the test;
			possible status are: <code>td:unreviewed</code>, <code>td:approved</code>
			or <code>td:rejected</code>.</li>
		<li><code>rdfs:seeAlso</code>. A link to the specification it
			refers to.</li>
		<li><code>td:specificationReference</code>. An <a href="#dfn-excerpt">excerpt</a> (<code>tn:Excerpt</code>)
			of the specification that is relevant to the test.</li>
		<li><code>td:input</code>. An <a href="#dfn-test-input">input</a> (<code>tn:TestInput</code>)
			used in the test.</li>
		<li><code>td:precondition</code>. A precondition that must be
			satisfied before running the test.</li>
		<li><code>tn:output</code>. An <a href="#dfn-test-output">output</a>
			(<code>tn:TestOutput</code>) to be produced by the test.</li>
		<li><code>tn:testProcess</code>. The list of <a href="#dfn-step">steps</a>
			(<code>tn:Step</code>) to be performed during the test.</li>
		<li><code>tn:testAssertion</code>. An <a
			href="#dfn-test-assertion">assertion</a> (<code>tn:TestAssertion</code>)
			to be performed over the test output.</li>
	</ul>

	<p>
		An
		<dfn id="dfn-excerpt" title="excerpt">excerpt</dfn>
		is defined as an instance of the
		<code>tn:Excerpt </code>
		class and it can be further described using the following properties:
	</p>
	<ul>
		<li><code>rdfs:seeAlso</code>: The document where the excerpt is
			included.</li>
		<li><code>tn:includesText</code>. The excerpt from the document.</li>
	</ul>

	<p>
		A
		<dfn id="dfn-test-input" title="test input">test input</dfn>
		is defined as an instance of the
		<code>td:TestInput </code>
		class and it can be further described using the following properties:
	</p>
	<ul>
		<li><code>dc:title</code>: The name of the test input.</li>
		<li><code>dc:description</code>. The description of the test
			input.</li>
	</ul>

	<p>
		A
		<dfn id="dfn-test-output" title="test output">test output</dfn>
		is defined as an instance of the
		<code>td:TestOutput</code>
		class and it can be further described using the following properties:
	</p>
	<ul>
		<li><code>dc:title</code>: The name of the test output.</li>
		<li><code>dc:description</code>. The description of the test
			output.</li>
		<li><code>tn:fromStep</code>. The <a href="#dfn-step">step</a> in
			the process in which the output is produced.</li>
	</ul>
	<p>
		In the LDP test cases, test outputs are expected to be HTTP responses
		(
		<code>ht:Response</code>
		).
	</p>

	<p>
		A
		<dfn id="dfn-step" title="step">step</dfn>
		in the test process is defined as an instance of the
		<code>td:Step</code>
		class and it can be further described using the following properties:
	</p>
	<ul>
		<li><code>dc:description</code>. The description of the step.</li>
		<li><code>tn:usesInput</code>. A <a href="#dfn-test-input">test
				input</a> used in the step.</li>
	</ul>
	<p>
		In the LDP test cases, steps are expected to be HTTP requests (
		<code>ht:Request</code>
		).
	</p>

	<p>
		A
		<dfn id="dfn-test-assertion" title="test assertion">test
			assertion</dfn>
		is defined as an instance of the
		<code>td:TestAssertion</code>
		class and it can be further described using the following properties:
	</p>
	<ul>
		<li><code>dc:title</code>: The name of the test assertion.</li>
		<li><code>dc:description</code>. The description of the test
			assertion.</li>
		<li><code>tn:outputAsserted</code>. An <a href="#dfn-test-output">output</a>
			under assertion.</li>
	</ul>
	<p>The following example contains the description of one of the LDP
		test cases.</p>
	<pre class="example" id="test-case-example">:TCR1 a td:TestCase;
         rdfs:label "TC-R1";
         dc:title "GET on an LDPR";
         dc:description "Tests making a GET request on an existing LDPR";
         dc:contributor :RaulGarciaCastro;
         td:reviewStatus td:unreviewed;
         rdfs:seeAlso &lt;http://www.w3.org/TR/ldp/&gt;;
         td:specificationReference [
             a tn:Excerpt;
             rdfs:seeAlso &lt;http://www.w3.org/TR/ldp/&gt;;
             tn:includesText "4.2.8 LDPR server responses MUST use entity tags (either weak or strong ones) as response ETag header values.".
           ],
         	                       [
         	 a tn:Excerpt;
             rdfs:seeAlso &lt;http://www.w3.org/TR/ldp/&gt;;
             tn:includesText "4.2.10 LDPR servers MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp/Resource, and a link relation type of type (that is, rel=&quot;type&quot;) in all responses to requests made to the resource's HTTP Request-URI. [...]".
           ],
         	                       [
         	 a tn:Excerpt;
             rdfs:seeAlso &lt;http://www.w3.org/TR/ldp/&gt;;
             tn:includesText "4.3.1 LDPR servers MUST support the HTTP GET Method for LDPRs.".
           ];
         td:input :TCR1-I1-LDPR-URI;
         td:precondition "The LDP server contains an LDPR at &lt;LDPR URI&gt;";
         tn:output :TCR1-O1-Response-1-GET;
         tn:testProcess (:TCR1-RQ1-GET-LDPR-URI);
         tn:testAssertion :TCR1-A1-Response-1-GET.

:RaulGarciaCastro a foaf:Person;
                    rdfs:label "Raúl García-Castro";
                    owl:sameAs &lt;http://www.garcia-castro.com/#me&gt;.

:TCR1-I1-LDPR-URI a tn:TestInput;
           dc:title "&lt;LDPR URI&gt;";
           dc:description "The URI of an LDPR".

:TCR1-O1-Response-1-GET a tn:TestOutput;
            a ht:Response;
            tn:fromStep :TCR1-RQ1-GET-LDPR-URI;
            dc:title "&lt;Response 1 GET&gt;";
            dc:description "The response of the GET request in step 1".

:TCR1-RQ1-GET-LDPR-URI a tn:Step;
            a ht:Request;
            dc:description "GET &lt;LDPR URI&gt;";
            tn:usesInput :TCR1-I1-LDPR-URI.

:TCR1-A1-Response-1-GET a tn:TestAssertion;
            tn:outputAsserted :TCR1-O1-Response-1-GET;
            dc:title "GET correct";
            dc:description """[Status-Line].Status-Code = 2xx
        [response-header].ETag exists
        [response-header].Link includes ldp:Resource; rel=&quot;type&quot;""".
</pre> </section> <section>
	<h3>
		Execution report description
	</h3>
	<p>
		A
		<dfn id="dfn-test-execution" title="test execution">test
			execution</dfn>
		is defined as an instance of the
		<code>tn:TestExecution</code>
		class and it can be further described using the following properties:
	</p>
	<ul>
		<li><code>tn:testExecuted</code>. The <a href="#dfn-test-case">test
				case</a> (<code>td:TestCase</code>) used in the execution.</li>
		<li><code>tn:subjectTested</code>. The subject (<code>doap:Project</code>)
			tested.</li>
		<li><code>dc:date</code>. The date when the test was executed.</li>
		<li><code>tn:inputUsed</code>. The <a
			href="#dfn-test-input-value">input value</a> (<code>tn:TestInputValue</code>)
			used in the execution.</li>
		<li><code>tn:outputProduced</code>. The <a
			href="#dfn-test-output-value">output value</a> (<code>tn:TestOutputValue</code>)
			produced in the execution.</li>
	</ul>

	<p>
		A
		<dfn id="dfn-test-input-value" title="test input value">test
			input value</dfn>
		is defined as an instance of the
		<code>tn:TestInputValue</code>
		class and it can be further described using the following properties:
	</p>
	<ul>
		<li><code>tn:relatedInput</code>. The <a href="#dfn-test-input">input</a>
			in the test definition (<code>tn:TestInput</code>) for which the
			value is defined.</li>
		<li><code>tn:inputValue</code>. The specific input defined for
			the execution.</li>
	</ul>

	<p>
		A
		<dfn id="dfn-test-output-value" title="test output value">test
			output value</dfn>
		is defined as an instance of the
		<code>tn:TestOutputValue</code>
		class and it can be further described using the following properties:
	</p>
	<ul>
		<li><code>tn:relatedOutput</code>. The <a href="#dfn-test-output">output</a>
			in the test definition (<code>tn:TestOutput</code>) for which the
			value is defined.</li>
		<li><code>tn:outputValue</code>. The specific output defined for
			the execution.</li>
	</ul>
	<p>
		In the LDP test cases, test output values are expected to be HTTP
		responses (
		<code>ht:Response</code>
		).
	</p>
	<p>The following example contains the description of one test
		execution.</p>
	<pre class="example" id="execution-report-example">:TCR1-Execution a tn:TestExecution;
                tn:testExecuted ldptc:TCR1;
                tn:subjectTested :SomeServer;
                dc:date "2013-03-30T09:30:10";
                tn:inputUsed [
                  a tn:TestInputValue ;
                  tn:relatedInput :TCR1-I1-LDPR-URI ;
                  tn:inputValue &lt;http://www.example.org/MyResource&gt; .
                ];
                tn:outputProduced [
                  a tn:TestOutputValue ;
                  tn:relatedOutput :TCR1-O1-Response-1-GET ;
                  tn:outputValue :TCR1-Exec-Response-1-GET .
                ].

:SomeServer a doap:Project;
            doap:name "Sample server".

:TCR1-Exec-Response-1-GET a ht:Response;
    ht:httpVersion "1.1";
    dc:date "2013-03-30T09:30:10";
    ht:sc &lt;http://www.w3.org/2011/http-statusCodes#OK&gt;;
    ht:statusCodeValue "200";
    ht:reasonPhrase "OK";
    ht:headers (
      [
        a ht:ResponseHeader;
        ht:hdrName httph:etag;
        ht:fieldName "ETag";
        ht:fieldValue "hd73hck43".
      ]
      [
        a ht:EntityHeader;
        ht:hdrName httph:content-type;
        ht:fieldName "Content-Type";
        ht:fieldValue "text/turtle; charset=utf-8".
      ]
    );
    ht:body [
      a cnt:ContentAsText ;
      cnt:chars """
			@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;.
			@prefix dc: &lt;http://purl.org/dc/terms/&gt;.
			@prefix ldp: &lt;http://www.w3.org/ns/ldp#&gt;.

			&lt;http://example.org/MyResource&gt;
			   a ldp:Resource;
			   dc:title "My LDP resource".
      """;
      cnt:characterEncoding "UTF-8".
    ].
</pre> </section> <section>
	<h3>
		Test case assertion description
	</h3>
	<p>
		An
		<dfn id="dfn-assertion" title="assertion">assertion</dfn>
		is defined as an instance of the
		<code>earl:Assertion</code>
		class and it can be further described using the following properties:
	</p>
	<ul>
		<li><code>earl:subject</code>.The subject (<code>doap:Project</code>)
			asserted.</li>
		<li><code>earl:test</code>. The <a href="#dfn-test-case">test
				case</a> (<code>td:TestCase</code>) to which the assertion refers to.</li>
		<li><code>tn:fromTestExecution</code>. The <a
			href="#dfn-test-execution">test execution</a> (<code>td:TestExecution</code>)
			used in the assertion.</li>
		<li><code>dc:date</code>. The date when the assertion was
			performed.</li>
		<li><code>earl:assertedBy</code>. The validator (<code>doap:Project</code>)
			that makes the assertion.</li>
		<li><code>
				<code>earl:mode</code>
				.
			</code> The execution mode of the validator. In this case it will always be
			<code>earl:automatic</code>.</li>
		<li><code>earl:result</code>. The outcome value (<code>earl:OutcomeValue</code>)
			of the assertion.</li>
	</ul>
	<p>The following example contains the description of one test
		assertion.</p>
	<pre class="example" id="test-assertion-example">:TCR1-Assertion-SomeServer a earl:Assertion;
                earl:subject sr:SomeServer;
                earl:test ldptc:TCR1;
                tn:fromTestExecution sr:TCR1-Execution;
                dc:date "2013-03-30T09:30:10";
                earl:assertedBy :Validator;
                earl:mode:  earl:automatic;
                earl:result [
                  a earl:OutcomeValue ;
                  earl:outcome earl:passed .
                ].

:Validator a doap:Project;
            doap:name "Some validator".</pre> </section> </section>

			
			
	<section>
	<h2>
		Tests for LDPRs
	</h2>
	<p>These tests involve only LDPRs.</p>

	
		<!-- TC-R1: GET on an LDPR -->
		
		
		<section resource="#TCR1" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-R1</span>.
					<span property="dc:title">GET on an LDPR</span>
			</h3>
			<p property="dc:description">Tests making a GET request on an existing LDPR.</p>
			<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person">
				<strong>Contributor: </strong><span property="rdfs:label">Raúl García-Castro</span>
				<span property="owl:sameAs" href="http://www.garcia-castro.com/#me"></span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"	property="rdfs:seeAlso">Linked Data Platform 1.0</a>:</em>
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.2.1 LDP servers MUST support the HTTP GET Method for LDPRs.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCR1-I1-LDPR-URI" typeof="tn:TestInput">
					<em property="dc:title">&lt;LDPR URI&gt;</em>. 
					<span property="dc:description">The URI of an LDPR.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDPR at &lt;LDPR URI&gt;</li>
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess" resource="#TCR1-RQ1-GET-LDPR-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDPR URI&gt;</div> 
					<span property="tn:usesInput" resource="#TCR1-I1-LDPR-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCR1-O1-Response-1-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 GET&gt;</em>. 
					<span property="dc:description">The response of the GET request in step 1.</span> 
					<span property="tn:fromStep" resource="#TCR1-RQ1-GET-LDPR-URI"></span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCR1-A1-Response-1-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCR1-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource; rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section> 
		
		
		<!-- TC-R2: HEAD on an LDPR -->
		
		
		<section resource="#TCR2" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-R2</span>. 
					<span property="dc:title">HEAD on an LDPR</span>
			</h3>
			<p property="dc:description">Tests making a HEAD request on an LDPR.</p>
			<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Raúl García-Castro</span> 
				<span property="owl:sameAs" href="http://www.garcia-castro.com/#me"></span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.6.1 LDP servers MUST support the HTTP HEAD method.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<p>
				<em><a target="_blank" href="http://tools.ietf.org/html/rfc2616" property="rdfs:seeAlso">Hypertext Transfer Protocol - HTTP/1.1</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">9.4 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.</span>
						<span property="rdfs:seeAlso" href="http://tools.ietf.org/html/rfc2616"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCR2-I1-LDPR-URI" typeof="tn:TestInput">
					<em property="dc:title">&lt;LDPR URI&gt;</em>.
					<span property="dc:description">The URI of an LDPR.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDPR at &lt;LDPR URI&gt;</li>
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess" resource="#TCR2-RQ1-HEAD-LDPR-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">HEAD &lt;LDPR URI&gt;</div> 
					<span property="tn:usesInput" resource="#TCR2-I1-LDPR-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCR2-O1-Response-1-HEAD" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 HEAD&gt;</em>.
					<span property="dc:description">The response of the HEAD request in step 1.</span>
					<span property="tn:fromStep" resource="#TCR2-RQ1-HEAD-LDPR-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCR2-A1-Response-1-HEAD" typeof="tn:TestAssertion">
				<div property="tn:outputAsserted" resource="TCR2-O1-Response-1-HEAD">
						Assert &lt;Response 1 HEAD&gt; (<span property="dc:title">HEAD correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource; rel="type"</li>
								<li>[message-body] not exists</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
		
			
		<!-- TC-R3: OPTIONS on an LDPR -->
		
		
		<section resource="#TCR3" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-R3</span>.
					<span property="dc:title">OPTIONS on an LDPR</span>
			</h3>
			<p property="dc:description">Tests making an OPTIONS request on an LDPR.</p>
			<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person">
				<strong>Contributor: </strong>
				<span property="rdfs:label">Raúl García-Castro</span>
				<span property="owl:sameAs" href="http://www.garcia-castro.com/#me"></span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag
							header values.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.8.1 LDP servers MUST support the HTTP OPTIONS method.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.8.2 LDP servers MUST indicate their support for HTTP Methods by responding to a HTTP OPTIONS request on the LDPR’s URL with the HTTP Method tokens in the HTTP response header Allow.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCR3-I1-LDPR-URI" typeof="tn:TestInput">
					<em property="dc:title">&lt;LDPR URI&gt;</em>.
					<span property="dc:description">The URI of an LDPR.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDPR at &lt;LDPR URI&gt;</li>
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"
					resource="#TCR3-RQ1-OPTIONS-LDPR-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">OPTIONS &lt;LDPR URI&gt;</div>
					<span property="tn:usesInput" resource="#TCR3-I1-LDPR-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCR3-O1-Response-1-OPTIONS" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 OPTIONS&gt;</em>.
					<span property="dc:description">The response of the OPTIONS request in step 1.</span>
					<span property="tn:fromStep" resource="#TCR3-RQ1-OPTIONS-LDPR-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCR3-A1-Response-1-OPTIONS" typeof="tn:TestAssertion">
				<div property="tn:outputAsserted" resource="TCR3-O1-Response-1-OPTIONS">
						Assert &lt;Response 1 OPTIONS&gt; (<span property="dc:title">OPTIONS correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource; rel="type"</li>
								<li>[entity-header].Allow exists</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
	
	</section>
	

	<section>
		<h2>
			Tests for LDP Basic Containers
		</h2>
		<p>These tests involve LDP-BCs and LDPRs.</p>
		
		
		<!-- TC-BC1: Get on an empty LDP-BC -->
		
		
		<section resource="#TCBC1" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-BC1</span>.
					<span property="dc:title">GET on an empty LDP-BC</span>
			</h3>
			<p property="dc:description">Tests making a GET request on an empty LDP Basic Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.2.1 LDP servers MUST support the HTTP GET Method for LDPRs.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.2 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, a containment triple MUST be added to the state of LDPC.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.3.1.1 Each LDP Basic Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCBC1-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-BC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-BC.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Basic Container at &lt;LDP-BC URI&gt;.</li>
				<li property="td:precondition">The LDP Basic Container is empty.</li>
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCBC1-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-BC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCBC1-I1-LDPC-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCBC1-O1-Response-1-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 1.</span>
					<span property="tn:fromStep" resource="#TCBC1-RQ1-GET-LDPC-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCBC1-A1-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC1-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC1-A2-Response-1-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC1-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET basic container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:BasicContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC1-A3-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC1-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">container does not contain resources</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] does not contain &lt;LDP-BC URI&gt; ldp:contains &lt;?x&gt;.</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-BC2: Get on a non-empty LDP-BC -->
		
		
		<section resource="#TCBC2" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-BC2</span>.
					<span property="dc:title">GET on a non-empty LDP-BC</span>
			</h3>
			<p property="dc:description">Tests making a GET request on a non-empty LDP Basic Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.2.1 LDP servers MUST support the HTTP GET Method for LDPRs.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.2 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, a containment triple MUST be added to the state of LDPC.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.3.1.1 Each LDP Basic Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCBC2-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-BC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-BC.</span>
				</li>
				<li property="td:input" resource="#TCBC2-I2-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;C URI&gt;</em>.
					<span property="dc:description">The URI of a resource in the container.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Basic Container at &lt;LDP-BC URI&gt;.</li>
				<li property="td:precondition">The LDP Basic Container contains a resource at &lt;C URI&gt;.</li>
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCBC2-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-BC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCBC2-I1-LDPC-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCBC2-O1-Response-1-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 1.</span>
					<span property="tn:fromStep" resource="#TCBC2-RQ1-GET-LDPC-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCBC2-A1-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC2-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC2-A2-Response-1-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC2-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET basic container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:BasicContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC2-A3-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC2-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">container contains resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;LDP-BC URI&gt; ldp:contains &lt;C URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-BC3: POST an LDP-NR on an LDP-BC -->
		
		
		<section resource="#TCBC3" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-BC3</span>.
					<span property="dc:title">POST an LDP-NR on an LDP-BC</span>
			</h3>
			<p property="dc:description">Tests making a POST request of an LDP-NR on an LDP Basic Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.2.1 LDP servers MUST support the HTTP GET Method for LDPRs.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.4.1.1 Each LDP Non-RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.1 If the resource was created successfully, LDP servers MUST respond with status code 201 (Created) and the Location header set to the new resource’s URL.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.2 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, a containment triple MUST be added to the state of LDPC.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.3.1.1 Each LDP Basic Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCBC3-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-BC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-BC.</span>
				</li>
				<li property="td:input" resource="#TCBC3-I2-LDPNR-REP"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-NR representation&gt;</em>.
					<span property="dc:description">The representation of the LDP-NR to be created.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Basic Container at &lt;LDP-BC URI&gt;.</li>
				<li property="td:precondition">The LDP-BC at &lt;LDP-BC URI&gt; allows POSTS of LDP-NRs.</li>
				<li property="td:precondition">The LDP server does not desire to direct the user agent to retrieve a cacheable resource.</li>
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCBC3-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-BC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCBC3-I1-LDPC-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCBC3-RQ2-POST-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">POST &lt;LDP-BC URI&gt;</div>
					<ul>
						<li>[message-body] = &lt;LDP-NR representation&gt;</li>
					</ul>
					<span property="tn:usesInput" resource="#TCBC3-I1-LDPC-URI"> </span>
					<span property="tn:usesInput" resource="#TCBC3-I2-LDPNR-REP"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCBC3-RQ3-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-BC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCBC3-I1-LDPC-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCBC3-RQ4-GET-LOC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;Response 2 POST&gt;.[response-header].Location</div>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCBC3-O1-Response-1-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 1.</span>
					<span property="tn:fromStep" resource="#TCBC3-RQ1-GET-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCBC3-O2-Response-2-POST" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 2 POST&gt;</em>.
					<span property="dc:description">The response of	the POST request in step 2.</span>
					<span property="tn:fromStep" resource="#TCBC3-RQ2-POST-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCBC3-O3-Response-3-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 3 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 3.</span>
					<span property="tn:fromStep" resource="#TCBC3-RQ3-GET-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCBC3-O4-Response-4-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 4 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 4.</span>
					<span property="tn:fromStep" resource="#TCBC3-RQ4-GET-LOC-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCBC3-A1-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC3-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC3-A2-Response-1-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC3-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET basic container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:BasicContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC3-A3-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC3-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">container does not contain resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] does not contain &lt;LDP-BC URI&gt; ldp:contains &lt;Response 2 POST&gt;.[response-header].Location</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC3-A4-Response-2-POST"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC3-O2-Response-2-POST">
						Assert &lt;Response 2 POST&gt; (<span property="dc:title">POST correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 201</li>
								<li>[response-header].Location exists</li>
								<li>[response-header].Link includes ldp:Resource, ldp:BasicContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC3-A5-Response-3-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC3-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC3-A6-Response-3-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC3-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">GET basic container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:BasicContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC3-A7-Response-3-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC3-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">container contains new resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;LDP-BC&gt; ldp:contains &lt;Response 2 POST&gt;.[response-header].Location</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC3-A8-Response-4-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC3-O4-Response-4-GET">
						Assert &lt;Response 4 GET&gt; (<span property="dc:title">GET new resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-BC4: POST an LDP-RS on an LDP-BC -->
		
		
		<section resource="#TCBC4" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-BC4</span>.
					<span property="dc:title">POST an LDP-RS on an LDP-BC</span>
			</h3>
			<p property="dc:description">Tests making a POST request of an LDP-RS on an LDP Basic Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.2.1 LDP servers MUST support the HTTP GET Method for LDPRs.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.1 If the resource was created successfully, LDP servers MUST respond with status code 201 (Created) and the Location header set to the new resource’s URL.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.2 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, a containment triple MUST be added to the state of LDPC.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.4 LDP servers that successfully create a resource from a RDF representation in the request entity body MUST honor the client's requested interaction model(s). [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.5 LDP servers MUST accept a request entity body with a request header of Content-Type with value of text/turtle [turtle].</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.7 In RDF representations, LDP servers MUST interpret the null relative URI for the subject of triples in the LDPR representation in the request entity body as referring to the entity in the request body.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.3.1.1 Each LDP Basic Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCBC4-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-BC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-BC.</span>
				</li>
				<li property="td:input" resource="#TCBC4-I2-LDPRS-REP"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-RS representation&gt;</em>.
					<span property="dc:description">The representation of the LDP-RS to be created.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Basic Container at &lt;LDP-BC URI&gt;.</li>
				<li property="td:precondition">The LDP-BC at &lt;LDP-BC URI&gt; allows POSTS of LDP-RSs.</li>
				<li property="td:precondition">The LDP server does not desire to direct the user agent to retrieve a cacheable resource.</li>
				<li property="td:precondition">&lt;LDP-RS representation&gt; is in text/turtle.</li>
				<li property="td:precondition">&lt;LDP-RS representation&gt; is a valid representation for a resource to be created in the LDP-BC.</li>
				<li property="td:precondition">&lt;LDP-RS representation&gt; uses null relative URI as the entity in the request body.</li>				
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCBC4-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-BC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCBC4-I1-LDPC-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCBC4-RQ2-POST-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">POST &lt;LDP-BC URI&gt;</div>
					<ul>
						<li>[entity-header].Content-type = text/turtle</li>
						<li>[message-body] = &lt;LDP-RS representation&gt;</li>
					</ul>
					<span property="tn:usesInput" resource="#TCBC4-I1-LDPC-URI"> </span>
					<span property="tn:usesInput" resource="#TCBC4-I2-LDPRS-REP"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCBC4-RQ3-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-BC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCBC4-I1-LDPC-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCBC4-RQ4-GET-LOC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;Response 2 POST&gt;.[response-header].Location</div>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCBC4-O1-Response-1-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 1.</span>
					<span property="tn:fromStep" resource="#TCBC4-RQ1-GET-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCBC4-O2-Response-2-POST" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 2 POST&gt;</em>.
					<span property="dc:description">The response of	the POST request in step 2.</span>
					<span property="tn:fromStep" resource="#TCBC4-RQ2-POST-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCBC4-O3-Response-3-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 3 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 3.</span>
					<span property="tn:fromStep" resource="#TCBC4-RQ3-GET-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCBC4-O4-Response-4-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 4 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 4.</span>
					<span property="tn:fromStep" resource="#TCBC4-RQ4-GET-LOC-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCBC4-A1-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC4-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC4-A2-Response-1-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC4-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET basic container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:BasicContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC4-A3-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC4-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">container does not contain resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] does not contain &lt;LDP-BC URI&gt; ldp:contains &lt;Response 2 POST&gt;.[response-header].Location</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC4-A4-Response-2-POST"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC4-O2-Response-2-POST">
						Assert &lt;Response 2 POST&gt; (<span property="dc:title">POST correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 201</li>
								<li>[response-header].Location exists</li>
								<li>[response-header].Link includes ldp:Resource, ldp:BasicContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC4-A5-Response-3-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC4-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC4-A6-Response-3-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC4-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">GET basic container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:BasicContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC4-A7-Response-3-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC4-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">container contains new resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;LDP-BC&gt; ldp:contains &lt;Response 2 POST&gt;.[response-header].Location</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC4-A8-Response-4-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC4-O4-Response-4-GET">
						Assert &lt;Response 4 GET&gt; (<span property="dc:title">GET new resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-BC5: HEAD on an LDP-BC -->
		
		
		<section resource="#TCBC5" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-BC5</span>.
					<span property="dc:title">HEAD on an LDP-BC</span>
			</h3>
			<p property="dc:description">Tests making a HEAD request on an LDP Basic Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.6.1 LDP servers MUST support the HTTP HEAD method.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.3.1.1 Each LDP Basic Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<p>
				<em><a target="_blank" href="http://tools.ietf.org/html/rfc2616"
					property="rdfs:seeAlso">Hypertext Transfer Protocol - HTTP/1.1</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">9.4 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.</span>
						<span property="rdfs:seeAlso" href="http://tools.ietf.org/html/rfc2616"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCBC5-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-BC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-BC.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Basic Container at &lt;LDP-BC URI&gt;.</li>			
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCBC5-RQ1-HEAD-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">HEAD &lt;LDP-BC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCBC5-I1-LDPC-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCBC5-O1-Response-1-HEAD" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 HEAD&gt;</em>.
					<span property="dc:description">The response of	the HEAD request in step 1.</span>
					<span property="tn:fromStep" resource="#TCBC5-RQ1-HEAD-LDPC-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCBC5-A1-Response-1-HEAD" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC5-O1-Response-1-HEAD">
						Assert &lt;Response 1 HEAD&gt; (<span property="dc:title">HEAD correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
								<li>[message-body] not exists</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC5-A2-Response-1-HEAD" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC5-O1-Response-1-HEAD">
						Assert &lt;Response 1 HEAD&gt; (<span property="dc:title">HEAD container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:BasicContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-BC6: OPTIONS on an LDP-BC -->
		
		
		<section resource="#TCBC6" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-BC6</span>.
					<span property="dc:title">OPTIONS on an LDP-BC</span>
			</h3>
			<p property="dc:description">Tests making a OPTIONS request on an LDP Basic Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag OPTIONSer values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link OPTIONSer with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.8.1 LDP servers MUST support the HTTP OPTIONS method.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.8.2 LDP servers MUST indicate their support for HTTP Methods by responding to a HTTP OPTIONS request on the LDPR’s URL with the HTTP Method tokens in the HTTP response header Allow.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link OPTIONSer with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.3.1.1 Each LDP Basic Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCBC6-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-BC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-BC.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Basic Container at &lt;LDP-BC URI&gt;.</li>			
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCBC6-RQ1-OPTIONS-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">OPTIONS &lt;LDP-BC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCBC6-I1-LDPC-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCBC6-O1-Response-1-OPTIONS" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 OPTIONS&gt;</em>.
					<span property="dc:description">The response of	the OPTIONS request in step 1.</span>
					<span property="tn:fromStep" resource="#TCBC6-RQ1-OPTIONS-LDPC-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCBC6-A1-Response-1-OPTIONS" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC6-O1-Response-1-OPTIONS">
						Assert &lt;Response 1 OPTIONS&gt; (<span property="dc:title">OPTIONS correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
								<li>[entity-header].Allow exists</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC6-A2-Response-1-OPTIONS" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC6-O1-Response-1-OPTIONS">
						Assert &lt;Response 1 OPTIONS&gt; (<span property="dc:title">OPTIONS container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:BasicContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	</section>
	
	<section>
		<h2>
			Tests for LDP Direct Containers
		</h2>
		<p>These tests involve LDP-DCs and LDPRs.</p>
	
		
		<!-- TC-DC1: Get on an empty LDP-DC -->
		
		
		<section resource="#TCDC1" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-DC1</span>.
					<span property="dc:title">GET on an empty LDP-DC</span>
			</h3>
			<p property="dc:description">Tests making a GET request on an empty LDP Direct Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.2.1 LDP servers MUST support the HTTP GET Method for LDPRs.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.2 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, a containment triple MUST be added to the state of LDPC.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.1 Each LDP Direct Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.3 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is the ldp:membershipResource, and whose object is the LDPC's membership-constant-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, and whose predicate is either ldp:hasMemberRelation or ldp:isMemberOfRelation.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.1 LDP Direct Containers whose membership triple pattern is ( membership-constant-URI , membership-predicate , member-derived-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is ldp:hasMemberRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.2 LDP Direct Containers whose membership triple pattern is ( member-derived-URI , membership-predicate , membership-constant-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is either ldp:isMemberOfRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCDC1-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-DC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-DC.</span>
				</li>
				<li property="td:input" resource="#TCDC1-I2-R-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;R URI&gt;</em>.
					<span property="dc:description">The URI of the membership resource.</span>
				</li>
				<li property="td:input" resource="#TCDC1-I3-M-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;M URI&gt;</em>.
					<span property="dc:description">The URI of the membership property.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Direct Container at &lt;LDP-DC URI&gt;.</li>
				<li property="td:precondition">The LDP Direct Container is empty.</li>
				<li property="td:precondition">The membership triple pattern used by the container is the one whose membership-constant-URI is the subject.</li>
				<li property="td:precondition">The membership resource of the LDP-DC is at &lt;R URI&gt;.</li>
				<li property="td:precondition">The membership predicate of the LDP-DC is &lt;M URI&gt;.</li>
				<li property="td:precondition">ldp:hasMemberRelation is the predicate used in all container representations.</li>
				
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCDC1-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-DC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCDC1-I1-LDPC-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCDC1-O1-Response-1-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 1.</span>
					<span property="tn:fromStep" resource="#TCDC1-RQ1-GET-LDPC-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCDC1-A1-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC1-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC1-A2-Response-1-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC1-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET direct container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:DirectContainer;rel="type"</li>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:membershipResource &lt;R URI&gt;</li>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:hasMemberRelation &lt;M URI&gt; and does not contain &lt;LDP-DC URI&gt; ldp:isMemberOfRelation &lt;M URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC1-A3-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC1-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">container does not contain resources</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] does not contain &lt;LDP-DC URI&gt; ldp:contains &lt;?x&gt;.</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-DC2: Get on a non-empty LDP-DC -->
		
		
		<section resource="#TCDC2" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-DC2</span>.
					<span property="dc:title">GET on a non-empty LDP-DC</span>
			</h3>
			<p property="dc:description">Tests making a GET request on a non-empty LDP Direct Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.2.1 LDP servers MUST support the HTTP GET Method for LDPRs.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.2 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, a containment triple MUST be added to the state of LDPC.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.1 Each LDP Direct Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.3 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is the ldp:membershipResource, and whose object is the LDPC's membership-constant-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, and whose predicate is either ldp:hasMemberRelation or ldp:isMemberOfRelation.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.1 LDP Direct Containers whose membership triple pattern is ( membership-constant-URI , membership-predicate , member-derived-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is ldp:hasMemberRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.2 LDP Direct Containers whose membership triple pattern is ( member-derived-URI , membership-predicate , membership-constant-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is either ldp:isMemberOfRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.2.1 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, the LDPC MUST update its membership triples to reflect that addition, and the resulting membership triple MUST be consistent with any LDP-defined predicates it exposes.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCDC2-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-DC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-DC.</span>
				</li>
				<li property="td:input" resource="#TCDC2-I2-R-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;R URI&gt;</em>.
					<span property="dc:description">The URI of the membership resource.</span>
				</li>
				<li property="td:input" resource="#TCDC2-I3-M-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;M URI&gt;</em>.
					<span property="dc:description">The URI of the membership property.</span>
				</li>
				<li property="td:input" resource="#TCDC2-I4-C-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;C URI&gt;</em>.
					<span property="dc:description">The URI of a contained resource.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Direct Container at &lt;LDP-DC URI&gt;.</li>
				<li property="td:precondition">The LDP Direct Container created a resource at &lt;C URI&gt;.</li>
				<li property="td:precondition">The membership triple pattern used by the container is the one whose membership-constant-URI is the subject.</li>
				<li property="td:precondition">The membership resource of the LDP-DC is at &lt;R URI&gt;.</li>
				<li property="td:precondition">The membership predicate of the LDP-DC is &lt;M URI&gt;.</li>
				<li property="td:precondition">ldp:hasMemberRelation is the predicate used in all container representations.</li>
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCDC2-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-DC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCDC2-I1-LDPC-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCDC2-RQ2-GET-R-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;R URI&gt;</div>
					<span property="tn:usesInput" resource="#TCDC2-I2-R-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCDC2-O1-Response-1-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 1.</span>
					<span property="tn:fromStep" resource="#TCDC2-RQ1-GET-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCDC2-O2-Response-2-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 2 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 2.</span>
					<span property="tn:fromStep" resource="#TCDC2-RQ2-GET-R-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCDC2-A1-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC2-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC2-A2-Response-1-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC2-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET direct container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:DirectContainer;rel="type"</li>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:membershipResource &lt;R URI&gt;</li>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:hasMemberRelation &lt;M URI&gt; and does not contain &lt;LDP-DC URI&gt; ldp:isMemberOfRelation &lt;M URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC2-A3-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC2-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">container contains resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:contains &lt;C URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC2-A4-Response-2-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC2-O2-Response-2-GET">
						Assert &lt;Response 2 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC2-A5-Response-2-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC2-O2-Response-2-GET">
						Assert &lt;Response 2 GET&gt; (<span property="dc:title">resource contains triple</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;R URI&gt; &lt;M URI&gt; &lt;C URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-DC3: POST an LDP-NR on an LDP-DC -->
		
		
		<section resource="#TCDC3" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-DC3</span>.
					<span property="dc:title">POST an LDP-NR on an LDP-DC</span>
			</h3>
			<p property="dc:description">Tests making a POST request of an LDP-NR on an LDP Direct Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.2.1 LDP servers MUST support the HTTP GET Method for LDPRs.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.4.1.1 Each LDP Non-RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.1 If the resource was created successfully, LDP servers MUST respond with status code 201 (Created) and the Location header set to the new resource’s URL.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.2 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, a containment triple MUST be added to the state of LDPC.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.1 Each LDP Direct Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.3 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is the ldp:membershipResource, and whose object is the LDPC's membership-constant-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, and whose predicate is either ldp:hasMemberRelation or ldp:isMemberOfRelation.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.1 LDP Direct Containers whose membership triple pattern is ( membership-constant-URI , membership-predicate , member-derived-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is ldp:hasMemberRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.2 LDP Direct Containers whose membership triple pattern is ( member-derived-URI , membership-predicate , membership-constant-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is either ldp:isMemberOfRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.2.1 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, the LDPC MUST update its membership triples to reflect that addition, and the resulting membership triple MUST be consistent with any LDP-defined predicates it exposes.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCDC3-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-DC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-DC.</span>
				</li>
				<li property="td:input" resource="#TCDC3-I2-LDPNR-REP"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-NR representation&gt;</em>.
					<span property="dc:description">The representation of the LDP-NR to be created.</span>
				</li>
				<li property="td:input" resource="#TCDC3-I3-R-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;R URI&gt;</em>.
					<span property="dc:description">The URI of the membership resource.</span>
				</li>
				<li property="td:input" resource="#TCDC3-I4-M-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;M URI&gt;</em>.
					<span property="dc:description">The URI of the membership property.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Direct Container at &lt;LDP-DC URI&gt;.</li>
				<li property="td:precondition">The LDP-DC at &lt;LDP-DC URI&gt; allows POSTS of LDP-NRs.</li>
				<li property="td:precondition">The LDP server does not desire to direct the user agent to retrieve a cacheable resource.</li>
				<li property="td:precondition">The membership resource of the LDP-DC is at &lt;R URI&gt;.</li>
				<li property="td:precondition">The membership predicate of the LDP-DC is &lt;M URI&gt;.</li>
				<li property="td:precondition">The membership triple pattern used by the container is the one whose membership-constant-URI is the subject.</li>
				<li property="td:precondition">ldp:hasMemberRelation is the predicate used in all container representations.</li>
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCDC3-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-DC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCDC3-I1-LDPC-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCDC3-RQ2-POST-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">POST &lt;LDP-DC URI&gt;</div>
					<ul>
						<li>[message-body] = &lt;LDP-NR representation&gt;</li>
					</ul>
					<span property="tn:usesInput" resource="#TCDC3-I1-LDPC-URI"> </span>
					<span property="tn:usesInput" resource="#TCDC3-I2-LDPNR-REP"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCDC3-RQ3-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-DC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCDC3-I1-LDPC-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCDC3-RQ4-GET-LOC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;Response 2 POST&gt;.[response-header].Location</div>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCDC3-RQ5-GET-R-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;R URI&gt;</div>
					<span property="tn:usesInput" resource="#TCDC3-I3-R-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCDC3-O1-Response-1-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 1.</span>
					<span property="tn:fromStep" resource="#TCDC3-RQ1-GET-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCDC3-O2-Response-2-POST" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 2 POST&gt;</em>.
					<span property="dc:description">The response of	the POST request in step 2.</span>
					<span property="tn:fromStep" resource="#TCDC3-RQ2-POST-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCDC3-O3-Response-3-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 3 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 3.</span>
					<span property="tn:fromStep" resource="#TCDC3-RQ3-GET-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCDC3-O4-Response-4-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 4 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 4.</span>
					<span property="tn:fromStep" resource="#TCDC3-RQ4-GET-LOC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCDC3-O5-Response-5-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 5 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 5.</span>
					<span property="tn:fromStep" resource="#TCDC3-RQ5-GET-R-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCDC3-A1-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC3-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC3-A2-Response-1-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC3-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET direct container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:DirectContainer;rel="type"</li>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:membershipResource &lt;R URI&gt;</li>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:hasMemberRelation &lt;M URI&gt; and does not contain &lt;LDP-DC URI&gt; ldp:isMemberOfRelation &lt;M URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC3-A3-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC3-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">container does not contain resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] does not contain &lt;LDP-DC URI&gt; ldp:contains &lt;Response 2 POST&gt;.[response-header].Location</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC3-A4-Response-2-POST"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC3-O2-Response-2-POST">
						Assert &lt;Response 2 POST&gt; (<span property="dc:title">POST correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 201</li>
								<li>[response-header].Location exists</li>
								<li>[response-header].Link includes ldp:Resource, ldp:DirectContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC3-A5-Response-3-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC3-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC3-A6-Response-3-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC3-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">GET basic container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:DirectContainer;rel="type"</li>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:membershipResource &lt;R URI&gt;</li>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:hasMemberRelation &lt;M URI&gt; and does not contain &lt;LDP-DC URI&gt; ldp:isMemberOfRelation &lt;M URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC3-A7-Response-3-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC3-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">container contains new resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;LDP-DC&gt; ldp:contains &lt;Response 2 POST&gt;.[response-header].Location</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC3-A8-Response-4-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC3-O4-Response-4-GET">
						Assert &lt;Response 4 GET&gt; (<span property="dc:title">GET new resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC3-A9-Response-5-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC3-O5-Response-5-GET">
						Assert &lt;Response 5 GET&gt; (<span property="dc:title">GET membership resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC3-A10-Response-5-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC3-O5-Response-5-GET">
						Assert &lt;Response 5 GET&gt; (<span property="dc:title">resource has triple</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;R URI&gt; &lt;M URI&gt; &lt;Response 2 POST&gt;.[response-header].Location</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-DC4: POST an LDP-RS on an LDP-DC -->
		
		
		<section resource="#TCDC4" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-DC4</span>.
					<span property="dc:title">POST an LDP-RS on an LDP-DC</span>
			</h3>
			<p property="dc:description">Tests making a POST request of an LDP-RS on an LDP Direct Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.2.1 LDP servers MUST support the HTTP GET Method for LDPRs.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.1 If the resource was created successfully, LDP servers MUST respond with status code 201 (Created) and the Location header set to the new resource’s URL.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.2 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, a containment triple MUST be added to the state of LDPC.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.4 LDP servers that successfully create a resource from a RDF representation in the request entity body MUST honor the client's requested interaction model(s). [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.5 LDP servers MUST accept a request entity body with a request header of Content-Type with value of text/turtle [turtle].</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.7 In RDF representations, LDP servers MUST interpret the null relative URI for the subject of triples in the LDPR representation in the request entity body as referring to the entity in the request body.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.1 Each LDP Direct Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.3 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is the ldp:membershipResource, and whose object is the LDPC's membership-constant-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, and whose predicate is either ldp:hasMemberRelation or ldp:isMemberOfRelation.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.1 LDP Direct Containers whose membership triple pattern is ( membership-constant-URI , membership-predicate , member-derived-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is ldp:hasMemberRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.2 LDP Direct Containers whose membership triple pattern is ( member-derived-URI , membership-predicate , membership-constant-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is either ldp:isMemberOfRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.2.1 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, the LDPC MUST update its membership triples to reflect that addition, and the resulting membership triple MUST be consistent with any LDP-defined predicates it exposes.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCDC4-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-DC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-DC.</span>
				</li>
				<li property="td:input" resource="#TCDC4-I2-LDPRS-REP"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-RS representation&gt;</em>.
					<span property="dc:description">The representation of the LDP-RS to be created.</span>
				</li>
				<li property="td:input" resource="#TCDC4-I3-R-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;R URI&gt;</em>.
					<span property="dc:description">The URI of the membership resource.</span>
				</li>
				<li property="td:input" resource="#TCDC4-I4-M-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;M URI&gt;</em>.
					<span property="dc:description">The URI of the membership property.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Direct Container at &lt;LDP-DC URI&gt;.</li>
				<li property="td:precondition">The LDP-DC at &lt;LDP-DC URI&gt; allows POSTS of LDP-RSs.</li>
				<li property="td:precondition">The LDP server does not desire to direct the user agent to retrieve a cacheable resource.</li>
				<li property="td:precondition">The membership resource of the LDP-DC is at &lt;R URI&gt;.</li>
				<li property="td:precondition">The membership predicate of the LDP-DC is &lt;M URI&gt;.</li>
				<li property="td:precondition">The membership triple pattern used by the container is the one whose membership-constant-URI is the subject.</li>
				<li property="td:precondition">ldp:hasMemberRelation is the predicate used in all container representations.</li>
				<li property="td:precondition">&lt;LDP-RS representation&gt; is in text/turtle.</li>
				<li property="td:precondition">&lt;LDP-RS representation&gt; is a valid representation for a resource to be created in the LDP-DC.</li>
				<li property="td:precondition">&lt;LDP-RS representation&gt; uses null relative URI as the entity in the request body.</li>				
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCDC4-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-DC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCDC4-I1-LDPC-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCDC4-RQ2-POST-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">POST &lt;LDP-DC URI&gt;</div>
					<ul>
						<li>[entity-header].Content-type = text/turtle</li>
						<li>[message-body] = &lt;LDP-RS representation&gt;</li>
					</ul>
					<span property="tn:usesInput" resource="#TCDC4-I1-LDPC-URI"> </span>
					<span property="tn:usesInput" resource="#TCDC4-I2-LDPRS-REP"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCDC4-RQ3-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-DC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCDC4-I1-LDPC-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCDC4-RQ4-GET-LOC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;Response 2 POST&gt;.[response-header].Location</div>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCDC4-RQ5-GET-R-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;R URI&gt;</div>
					<span property="tn:usesInput" resource="#TCDC4-I3-R-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCDC4-O1-Response-1-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 1.</span>
					<span property="tn:fromStep" resource="#TCDC4-RQ1-GET-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCDC4-O2-Response-2-POST" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 2 POST&gt;</em>.
					<span property="dc:description">The response of	the POST request in step 2.</span>
					<span property="tn:fromStep" resource="#TCDC4-RQ2-POST-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCDC4-O3-Response-3-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 3 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 3.</span>
					<span property="tn:fromStep" resource="#TCDC4-RQ3-GET-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCDC4-O4-Response-4-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 4 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 4.</span>
					<span property="tn:fromStep" resource="#TCDC4-RQ4-GET-LOC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCDC4-O5-Response-5-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 5 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 5.</span>
					<span property="tn:fromStep" resource="#TCDC4-RQ5-GET-R-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCDC4-A1-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC4-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC4-A2-Response-1-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC4-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET direct container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:DirectContainer;rel="type"</li>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:membershipResource &lt;R URI&gt;</li>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:hasMemberRelation &lt;M URI&gt; and does not contain &lt;LDP-DC URI&gt; ldp:isMemberOfRelation &lt;M URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC4-A3-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC4-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">container does not contain resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] does not contain &lt;LDP-DC URI&gt; ldp:contains &lt;Response 2 POST&gt;.[response-header].Location</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC4-A4-Response-2-POST"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC4-O2-Response-2-POST">
						Assert &lt;Response 2 POST&gt; (<span property="dc:title">POST correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 201</li>
								<li>[response-header].Location exists</li>
								<li>[response-header].Link includes ldp:Resource, ldp:DirectContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC4-A5-Response-3-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC4-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC4-A6-Response-3-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC4-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">GET direct container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:DirectContainer;rel="type"</li>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:membershipResource &lt;R URI&gt;</li>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:hasMemberRelation &lt;M URI&gt; and does not contain &lt;LDP-DC URI&gt; ldp:isMemberOfRelation &lt;M URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC4-A7-Response-3-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC4-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">container contains new resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;LDP-DC&gt; ldp:contains &lt;Response 2 POST&gt;.[response-header].Location</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC4-A8-Response-4-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC4-O4-Response-4-GET">
						Assert &lt;Response 4 GET&gt; (<span property="dc:title">GET new resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC4-A9-Response-5-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC4-O5-Response-5-GET">
						Assert &lt;Response 5 GET&gt; (<span property="dc:title">GET membership resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC4-A10-Response-5-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC4-O5-Response-5-GET">
						Assert &lt;Response 5 GET&gt; (<span property="dc:title">resource has triple</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;R URI&gt; &lt;M URI&gt; &lt;Response 2 POST&gt;.[response-header].Location</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-DC5: HEAD on an LDP-DC -->
		
		
		<section resource="#TCDC5" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-DC5</span>.
					<span property="dc:title">HEAD on an LDP-DC</span>
			</h3>
			<p property="dc:description">Tests making a HEAD request on an LDP Direct Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.6.1 LDP servers MUST support the HTTP HEAD method.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.1 Each LDP Direct Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<p>
				<em><a target="_blank" href="http://tools.ietf.org/html/rfc2616"
					property="rdfs:seeAlso">Hypertext Transfer Protocol - HTTP/1.1</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">9.4 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.</span>
						<span property="rdfs:seeAlso" href="http://tools.ietf.org/html/rfc2616"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCDC5-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-DC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-DC.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Direct Container at &lt;LDP-DC URI&gt;.</li>			
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCDC5-RQ1-HEAD-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">HEAD &lt;LDP-DC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCDC5-I1-LDPC-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCDC5-O1-Response-1-HEAD" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 HEAD&gt;</em>.
					<span property="dc:description">The response of	the HEAD request in step 1.</span>
					<span property="tn:fromStep" resource="#TCDC5-RQ1-HEAD-LDPC-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCDC5-A1-Response-1-HEAD" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC5-O1-Response-1-HEAD">
						Assert &lt;Response 1 HEAD&gt; (<span property="dc:title">HEAD correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
								<li>[message-body] not exists</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC5-A2-Response-1-HEAD" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC5-O1-Response-1-HEAD">
						Assert &lt;Response 1 HEAD&gt; (<span property="dc:title">HEAD container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:DirectContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-DC6: OPTIONS on an LDP-DC -->
		
		
		<section resource="#TCDC6" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-DC6</span>.
					<span property="dc:title">OPTIONS on an LDP-DC</span>
			</h3>
			<p property="dc:description">Tests making a OPTIONS request on an LDP Direct Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag OPTIONSer values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link OPTIONSer with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.8.1 LDP servers MUST support the HTTP OPTIONS method.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.8.2 LDP servers MUST indicate their support for HTTP Methods by responding to a HTTP OPTIONS request on the LDPR’s URL with the HTTP Method tokens in the HTTP response header Allow.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link OPTIONSer with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.1 Each LDP Direct Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCDC6-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-DC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-DC.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Direct Container at &lt;LDP-DC URI&gt;.</li>			
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCDC6-RQ1-OPTIONS-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">OPTIONS &lt;LDP-DC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCDC6-I1-LDPC-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCDC6-O1-Response-1-OPTIONS" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 OPTIONS&gt;</em>.
					<span property="dc:description">The response of	the OPTIONS request in step 1.</span>
					<span property="tn:fromStep" resource="#TCDC6-RQ1-OPTIONS-LDPC-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCDC6-A1-Response-1-OPTIONS" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC6-O1-Response-1-OPTIONS">
						Assert &lt;Response 1 OPTIONS&gt; (<span property="dc:title">OPTIONS correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
								<li>[entity-header].Allow exists</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC6-A2-Response-1-OPTIONS" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC6-O1-Response-1-OPTIONS">
						Assert &lt;Response 1 OPTIONS&gt; (<span property="dc:title">OPTIONS container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:DirectContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	</section>
	
	
	</section>
	
	<section>
		<h2>
			Tests for LDP Indirect Containers
		</h2>
		<p>These tests involve LDP-ICs and LDPRs.</p>
	
		
		<!-- TC-IC1: Get on an empty LDP-IC -->
		
		
		<section resource="#TCIC1" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-IC1</span>.
					<span property="dc:title">GET on an empty LDP-IC</span>
			</h3>
			<p property="dc:description">Tests making a GET request on an empty LDP Indirect Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.2.1 LDP servers MUST support the HTTP GET Method for LDPRs.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.2 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, a containment triple MUST be added to the state of LDPC.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.1 Each LDP Direct Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.3 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is the ldp:membershipResource, and whose object is the LDPC's membership-constant-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, and whose predicate is either ldp:hasMemberRelation or ldp:isMemberOfRelation.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.1 LDP Direct Containers whose membership triple pattern is ( membership-constant-URI , membership-predicate , member-derived-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is ldp:hasMemberRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.2 LDP Direct Containers whose membership triple pattern is ( member-derived-URI , membership-predicate , membership-constant-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is either ldp:isMemberOfRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.5.1.1 Each LDP Indirect Container MUST also be a conforming LDP Direct Container [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.5.1.2 LDP Indirect Containers MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is ldp:insertedContentRelation, and whose object ICR describes how the member-derived-URI in the container's membership triples is chosen.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCIC1-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-IC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-IC.</span>
				</li>
				<li property="td:input" resource="#TCIC1-I2-R-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;R URI&gt;</em>.
					<span property="dc:description">The URI of the membership resource.</span>
				</li>
				<li property="td:input" resource="#TCIC1-I3-M-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;M URI&gt;</em>.
					<span property="dc:description">The URI of the membership property.</span>
				</li>
				<li property="td:input" resource="#TCIC1-I4-I-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;M URI&gt;</em>.
					<span property="dc:description">The URI of the membership property.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Indirect Container at &lt;LDP-IC URI&gt;.</li>
				<li property="td:precondition">The LDP Indirect Container is empty.</li>
				<li property="td:precondition">The membership triple pattern used by the container is the one whose membership-constant-URI is the subject.</li>
				<li property="td:precondition">The membership resource of the LDP-IC is at &lt;R URI&gt;.</li>
				<li property="td:precondition">The membership predicate of the LDP-IC is &lt;M URI&gt;.</li>
				<li property="td:precondition">The inserted content relation of the LDP-IC is &lt;I URI&gt;.</li>
				<li property="td:precondition">ldp:hasMemberRelation is the predicate used in all container representations.</li>
				
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCIC1-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-IC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCIC1-I1-LDPC-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCIC1-O1-Response-1-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 1.</span>
					<span property="tn:fromStep" resource="#TCIC1-RQ1-GET-LDPC-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCIC1-A1-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC1-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC1-A2-Response-1-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC1-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET indirect container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:IndirectContainer;rel="type"</li>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:membershipResource &lt;R URI&gt;</li>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:hasMemberRelation &lt;M URI&gt; and does not contain &lt;LDP-IC URI&gt; ldp:isMemberOfRelation &lt;M URI&gt;</li>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:insertedContentRelation &lt;I URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC1-A3-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC1-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">container does not contain resources</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] does not contain &lt;LDP-IC URI&gt; ldp:contains &lt;?x&gt;.</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-IC2: Get on a non-empty LDP-IC -->
		
		
		<section resource="#TCIC2" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-IC2</span>.
					<span property="dc:title">GET on a non-empty LDP-IC</span>
			</h3>
			<p property="dc:description">Tests making a GET request on a non-empty LDP Indirect Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.2.1 LDP servers MUST support the HTTP GET Method for LDPRs.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.2 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, a containment triple MUST be added to the state of LDPC.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.1 Each LDP Direct Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.3 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is the ldp:membershipResource, and whose object is the LDPC's membership-constant-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, and whose predicate is either ldp:hasMemberRelation or ldp:isMemberOfRelation.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.1 LDP Direct Containers whose membership triple pattern is ( membership-constant-URI , membership-predicate , member-derived-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is ldp:hasMemberRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.2 LDP Direct Containers whose membership triple pattern is ( member-derived-URI , membership-predicate , membership-constant-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is either ldp:isMemberOfRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.2.1 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, the LDPC MUST update its membership triples to reflect that addition, and the resulting membership triple MUST be consistent with any LDP-defined predicates it exposes.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.5.1.1 Each LDP Indirect Container MUST also be a conforming LDP Direct Container [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.5.1.2 LDP Indirect Containers MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is ldp:insertedContentRelation, and whose object ICR describes how the member-derived-URI in the container's membership triples is chosen.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.5.2.1 LDPCs whose ldp:insertedContentRelation triple has an object other than ldp:MemberSubject and that create new resources MUST add a triple to the container whose subject is the container's URI, whose predicate is ldp:contains, and whose object is the newly created resource's URI (which will be different from the member-derived URI in this case). This ldp:contains triple can be the only link from the container to the newly created resource in certain cases.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCIC2-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-IC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-IC.</span>
				</li>
				<li property="td:input" resource="#TCIC2-I2-R-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;R URI&gt;</em>.
					<span property="dc:description">The URI of the membership resource.</span>
				</li>
				<li property="td:input" resource="#TCIC2-I3-M-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;M URI&gt;</em>.
					<span property="dc:description">The URI of the membership property.</span>
				</li>
				<li property="td:input" resource="#TCIC2-I4-I-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;I URI&gt;</em>.
					<span property="dc:description">The URI of a property.</span>
				</li>
				<li property="td:input" resource="#TCIC2-I5-C-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;C URI&gt;</em>.
					<span property="dc:description">The URI of a contained RDF Source.</span>
				</li>
				<li property="td:input" resource="#TCIC2-I6-IC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;IC URI&gt;</em>.
					<span property="dc:description">The URI of a resource.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Indirect Container at &lt;LDP-IC URI&gt;.</li>
				<li property="td:precondition">The LDP Indirect Container contains an RDF Source at &lt;C URI&gt;.</li>
				<li property="td:precondition">The membership triple pattern used by the container is the one whose membership-constant-URI is the subject.</li>
				<li property="td:precondition">The membership resource of the LDP-IC is at &lt;R URI&gt;.</li>
				<li property="td:precondition">The membership predicate of the LDP-IC is &lt;M URI&gt;.</li>
				<li property="td:precondition">The inserted content relation of the LDP-IC is &lt;I URI&gt;.</li>
				<li property="td:precondition">The LDPC contains a triple whose property is ldp:insertedContentRelation and whose object is not ldp:MemberSubject.</li>
				<li property="td:precondition">ldp:hasMemberRelation is the predicate used in all container representations.</li>
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCIC2-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-IC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCIC2-I1-LDPC-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCIC2-RQ2-GET-R-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;R URI&gt;</div>
					<span property="tn:usesInput" resource="#TCIC2-I2-R-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCIC2-RQ3-GET-R-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;C URI&gt;</div>
					<span property="tn:usesInput" resource="#TCIC2-I5-C-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCIC2-O1-Response-1-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 1.</span>
					<span property="tn:fromStep" resource="#TCIC2-RQ1-GET-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCIC2-O2-Response-2-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 2 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 2.</span>
					<span property="tn:fromStep" resource="#TCIC2-RQ2-GET-R-URI"> </span>
				</li>
				<li property="td:output" resource="#TCIC2-O3-Response-2-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 3 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 3.</span>
					<span property="tn:fromStep" resource="#TCIC2-RQ3-GET-C-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCIC2-A1-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC2-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC2-A2-Response-1-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC2-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET indirect container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:IndirectContainer;rel="type"</li>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:membershipResource &lt;R URI&gt;</li>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:hasMemberRelation &lt;M URI&gt; and does not contain &lt;LDP-IC URI&gt; ldp:isMemberOfRelation &lt;M URI&gt;</li>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:insertedContentRelation &lt;I URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC2-A3-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC2-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">container contains resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:contains &lt;C URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC2-A4-Response-2-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC2-O2-Response-2-GET">
						Assert &lt;Response 2 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC2-A5-Response-2-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC2-O2-Response-2-GET">
						Assert &lt;Response 2 GET&gt; (<span property="dc:title">resource contains triple</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;R URI&gt; &lt;M URI&gt; &lt;C URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC2-A6-Response-3-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC2-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">GET contained resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC2-A7-Response-3-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC2-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">resource contains triple</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;C URI&gt; &lt;I URI&gt; &lt;IC URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-IC3: POST an LDP-RS on an LDP-IC -->
		
		
		<section resource="#TCIC3" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-IC3</span>.
					<span property="dc:title">POST an LDP-RS on an LDP-IC</span>
			</h3>
			<p property="dc:description">Tests making a POST request of an LDP-RS on an LDP Indirect Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.2.1 LDP servers MUST support the HTTP GET Method for LDPRs.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.1 If the resource was created successfully, LDP servers MUST respond with status code 201 (Created) and the Location header set to the new resource’s URL.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.2 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, a containment triple MUST be added to the state of LDPC.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.4 LDP servers that successfully create a resource from a RDF representation in the request entity body MUST honor the client's requested interaction model(s). [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.5 LDP servers MUST accept a request entity body with a request header of Content-Type with value of text/turtle [turtle].</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.7 In RDF representations, LDP servers MUST interpret the null relative URI for the subject of triples in the LDPR representation in the request entity body as referring to the entity in the request body.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.1 Each LDP Direct Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.3 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is the ldp:membershipResource, and whose object is the LDPC's membership-constant-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, and whose predicate is either ldp:hasMemberRelation or ldp:isMemberOfRelation.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.1 LDP Direct Containers whose membership triple pattern is ( membership-constant-URI , membership-predicate , member-derived-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is ldp:hasMemberRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.2 LDP Direct Containers whose membership triple pattern is ( member-derived-URI , membership-predicate , membership-constant-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is either ldp:isMemberOfRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.2.1 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, the LDPC MUST update its membership triples to reflect that addition, and the resulting membership triple MUST be consistent with any LDP-defined predicates it exposes.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.5.1.1 Each LDP Indirect Container MUST also be a conforming LDP Direct Container [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.5.1.2 LDP Indirect Containers MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is ldp:insertedContentRelation, and whose object ICR describes how the member-derived-URI in the container's membership triples is chosen.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.5.2.1 LDPCs whose ldp:insertedContentRelation triple has an object other than ldp:MemberSubject and that create new resources MUST add a triple to the container whose subject is the container's URI, whose predicate is ldp:contains, and whose object is the newly created resource's URI (which will be different from the member-derived URI in this case). This ldp:contains triple can be the only link from the container to the newly created resource in certain cases.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCIC3-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-IC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-IC.</span>
				</li>
				<li property="td:input" resource="#TCIC3-I2-LDPRS-REP"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-RS representation&gt;</em>.
					<span property="dc:description">The representation of the LDP-RS to be created.</span>
				</li>
				<li property="td:input" resource="#TCIC3-I3-R-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;R URI&gt;</em>.
					<span property="dc:description">The URI of the membership resource.</span>
				</li>
				<li property="td:input" resource="#TCIC3-I4-M-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;M URI&gt;</em>.
					<span property="dc:description">The URI of the membership property.</span>
				</li>
				<li property="td:input" resource="#TCIC2-I5-I-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;I URI&gt;</em>.
					<span property="dc:description">The URI of a property.</span>
				</li>
				<li property="td:input" resource="#TCIC2-I6-IC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;IC URI&gt;</em>.
					<span property="dc:description">The URI of a resource.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Indirect Container at &lt;LDP-IC URI&gt;.</li>
				<li property="td:precondition">The LDP-IC at &lt;LDP-IC URI&gt; allows POSTS of LDP-RSs.</li>
				<li property="td:precondition">The LDP server does not desire to direct the user agent to retrieve a cacheable resource.</li>
				<li property="td:precondition">The membership triple pattern used by the container is the one whose membership-constant-URI is the subject.</li>
				<li property="td:precondition">The membership resource of the LDP-IC is at &lt;R URI&gt;.</li>
				<li property="td:precondition">The membership predicate of the LDP-IC is &lt;M URI&gt;.</li>
				<li property="td:precondition">The inserted content relation of the LDP-IC is &lt;I URI&gt;.</li>
				<li property="td:precondition">The LDPC contains a triple whose property is ldp:insertedContentRelation and whose object is not ldp:MemberSubject.</li>
				<li property="td:precondition">ldp:hasMemberRelation is the predicate used in all container representations.</li>
				<li property="td:precondition">&lt;LDP-RS representation&gt; is in text/turtle.</li>
				<li property="td:precondition">&lt;LDP-RS representation&gt; is a valid representation for a resource to be created in the LDP-IC.</li>
				<li property="td:precondition">&lt;LDP-RS representation&gt; uses null relative URI as the entity in the request body.</li>
				<li property="td:precondition">&lt;LDP-RS representation&gt; contains a triple with property &lt;I URI&gt;.</li>
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCIC3-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-IC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCIC3-I1-LDPC-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCIC3-RQ2-POST-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">POST &lt;LDP-IC URI&gt;</div>
					<ul>
						<li>[entity-header].Content-type = text/turtle</li>
						<li>[message-body] = &lt;LDP-RS representation&gt;</li>
					</ul>
					<span property="tn:usesInput" resource="#TCIC3-I1-LDPC-URI"> </span>
					<span property="tn:usesInput" resource="#TCIC3-I2-LDPRS-REP"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCIC3-RQ3-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-IC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCIC3-I1-LDPC-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCIC3-RQ4-GET-LOC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;Response 2 POST&gt;.[response-header].Location</div>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCIC3-RQ5-GET-R-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;R URI&gt;</div>
					<span property="tn:usesInput" resource="#TCIC3-I3-R-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCIC3-O1-Response-1-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 1.</span>
					<span property="tn:fromStep" resource="#TCIC3-RQ1-GET-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCIC3-O2-Response-2-POST" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 2 POST&gt;</em>.
					<span property="dc:description">The response of	the POST request in step 2.</span>
					<span property="tn:fromStep" resource="#TCIC3-RQ2-POST-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCIC3-O3-Response-3-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 3 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 3.</span>
					<span property="tn:fromStep" resource="#TCIC3-RQ3-GET-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCIC3-O4-Response-4-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 4 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 4.</span>
					<span property="tn:fromStep" resource="#TCIC3-RQ4-GET-LOC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCIC3-O5-Response-5-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 5 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 5.</span>
					<span property="tn:fromStep" resource="#TCIC3-RQ5-GET-R-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCIC3-A1-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC3-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC3-A2-Response-1-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC3-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET indirect container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:IndirectContainer;rel="type"</li>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:membershipResource &lt;R URI&gt;</li>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:hasMemberRelation &lt;M URI&gt; and does not contain &lt;LDP-IC URI&gt; ldp:isMemberOfRelation &lt;M URI&gt;</li>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:insertedContentRelation &lt;I URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC3-A3-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC3-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">container does not contain resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] does not contain &lt;LDP-IC URI&gt; ldp:contains &lt;Response 2 POST&gt;.[response-header].Location</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC3-A4-Response-2-POST"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC3-O2-Response-2-POST">
						Assert &lt;Response 2 POST&gt; (<span property="dc:title">POST correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 201</li>
								<li>[response-header].Location exists</li>
								<li>[response-header].Link includes ldp:Resource, ldp:IndirectContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC3-A5-Response-3-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC3-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC3-A6-Response-3-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC3-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">GET indirect container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:IndirectContainer;rel="type"</li>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:membershipResource &lt;R URI&gt;</li>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:hasMemberRelation &lt;M URI&gt; and does not contain &lt;LDP-IC URI&gt; ldp:isMemberOfRelation &lt;M URI&gt;</li>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:insertedContentRelation &lt;I URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC3-A7-Response-3-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC3-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">container contains new resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;LDP-IC&gt; ldp:contains &lt;Response 2 POST&gt;.[response-header].Location</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC3-A8-Response-4-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC3-O4-Response-4-GET">
						Assert &lt;Response 4 GET&gt; (<span property="dc:title">GET new resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC3-A9-Response-5-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC3-O5-Response-5-GET">
						Assert &lt;Response 5 GET&gt; (<span property="dc:title">GET membership resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC3-A10-Response-5-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC3-O5-Response-5-GET">
						Assert &lt;Response 5 GET&gt; (<span property="dc:title">resource has triple</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;R URI&gt; &lt;M URI&gt; &lt;IC URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-IC4: HEAD on an LDP-IC -->
		
		
		<section resource="#TCIC4" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-IC4</span>.
					<span property="dc:title">HEAD on an LDP-IC</span>
			</h3>
			<p property="dc:description">Tests making a HEAD request on an LDP Indirect Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.6.1 LDP servers MUST support the HTTP HEAD method.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.1 Each LDP Direct Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.5.1.1 Each LDP Indirect Container MUST also be a conforming LDP Direct Container [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<p>
				<em><a target="_blank" href="http://tools.ietf.org/html/rfc2616"
					property="rdfs:seeAlso">Hypertext Transfer Protocol - HTTP/1.1</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">9.4 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.</span>
						<span property="rdfs:seeAlso" href="http://tools.ietf.org/html/rfc2616"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCIC4-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-IC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-IC.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Indirect Container at &lt;LDP-IC URI&gt;.</li>			
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCIC4-RQ1-HEAD-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">HEAD &lt;LDP-IC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCIC4-I1-LDPC-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCIC4-O1-Response-1-HEAD" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 HEAD&gt;</em>.
					<span property="dc:description">The response of	the HEAD request in step 1.</span>
					<span property="tn:fromStep" resource="#TCIC4-RQ1-HEAD-LDPC-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCIC4-A1-Response-1-HEAD" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC4-O1-Response-1-HEAD">
						Assert &lt;Response 1 HEAD&gt; (<span property="dc:title">HEAD correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
								<li>[message-body] not exists</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC4-A2-Response-1-HEAD" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC4-O1-Response-1-HEAD">
						Assert &lt;Response 1 HEAD&gt; (<span property="dc:title">HEAD container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:IndirectContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-IC5: OPTIONS on an LDP-IC -->
		
		
		<section resource="#TCIC5" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-IC5</span>.
					<span property="dc:title">OPTIONS on an LDP-IC</span>
			</h3>
			<p property="dc:description">Tests making a OPTIONS request on an LDP Indirect Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag OPTIONSer values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link OPTIONSer with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.8.1 LDP servers MUST support the HTTP OPTIONS method.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.8.2 LDP servers MUST indicate their support for HTTP Methods by responding to a HTTP OPTIONS request on the LDPR’s URL with the HTTP Method tokens in the HTTP response header Allow.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link OPTIONSer with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.1 Each LDP Direct Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.5.1.1 Each LDP Indirect Container MUST also be a conforming LDP Direct Container [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCIC5-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-IC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-IC.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Indirect Container at &lt;LDP-IC URI&gt;.</li>			
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCIC5-RQ1-OPTIONS-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">OPTIONS &lt;LDP-IC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCIC5-I1-LDPC-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCIC5-O1-Response-1-OPTIONS" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 OPTIONS&gt;</em>.
					<span property="dc:description">The response of	the OPTIONS request in step 1.</span>
					<span property="tn:fromStep" resource="#TCIC5-RQ1-OPTIONS-LDPC-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCIC5-A1-Response-1-OPTIONS" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC5-O1-Response-1-OPTIONS">
						Assert &lt;Response 1 OPTIONS&gt; (<span property="dc:title">OPTIONS correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
								<li>[entity-header].Allow exists</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC5-A2-Response-1-OPTIONS" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC5-O1-Response-1-OPTIONS">
						Assert &lt;Response 1 OPTIONS&gt; (<span property="dc:title">OPTIONS container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:IndirectContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	</section>
	
	
	</section>

	<section class="appendix">
	<h2>
		Change history
	</h2>
	<ul>
		<li>2014-04-09 Updated according to Last Call Working Draft from 11 March 2014 (FS and RGC)</li>
		<li>2013-08-27 Updated according to Last Call Working Draft from 30 July 2013 (RGC)</li>
		<li>2013-06-03 Updated to use ReSpec (RGC)</li>
		<li>2013-06-03 Implemented <a
			href="http://lists.w3.org/Archives/Public/public-ldp-wg/2013May/0153.html">changes
				suggested by Eric Prud'hommeaux</a> (RGC)
		</li>
	</ul>
	</section>

	<section class="appendix">
	<h2>
		Editor TODOs and notes
	</h2>
	<ul>
		<li>Define the type of document: Working Draft, Note, etc.</li>
		<li>Choose a URI for the test cases (this) document</li>
		<li>Choose a namespace for the new vocabulary terms and for the
			test cases</li>
		<li>Include the RDF description of the test suite</li>
	</ul>
	</section>
</body>
</html>
\ No newline at end of file
+<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.1//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	prefix="td: http://www.w3.org/2006/03/test-description# tn: http://ldp.example.org/NewTestDefinitions# ht: http://www.w3.org/2011/http#">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<!--    rgarcia: Had to uncomment it so it can read the local image
<base href="http://www.w3.org/TR/ldp/TestCases">-->
<title>Linked Data Platform 1.0 Test Cases</title>
<script src='https://www.w3.org/Tools/respec/respec-w3c-common'
	class='remove' async></script>
<script class='remove'>
	var respecConfig = {
		// specification status (e.g. WD, LCWD, NOTE, etc.). If in doubt use ED.
		specStatus : "NOTE",

		// the specification's short name, as in http://www.w3.org/TR/short-name/
		shortName : "ldp-test-cases",
		// TODO: Confirm short name

		// if your specification has a subtitle that goes below the main
		// formal title, define it here
		// subtitle   :  "an excellent document",

		// if you wish the publication date to be other than today, set this
		// publishDate:  "2009-08-06",

		// if the specification's copyright date is a range of years, specify
		// the start date here:
		// copyrightStart: "2005"

		// if there is a previously published draft, uncomment this and set its YYYY-MM-DD date
		// and its maturity status
		//previousPublishDate:  "2013-03-07",
		//previousMaturity:  	"FPWD",
		//previousURI: 			"http://www.w3.org/TR/2013/WD-ldp-20130307/",

		// if there a publicly available Editor's Draft, this is the link
		//edDraftURI:           "http://www.w3.org/2012/ldp/hg/ldp.html",

		// if this is a LCWD, uncomment and set the end of its review period
		// lcEnd: "2009-08-05",

		// if you want to have extra CSS, append them to this list
		// it is recommended that the respec.css stylesheet be kept
		//extraCSS:             ["https://dvcs.w3.org/hg/ldpwg/css/respec.css"],

		// editors, add as many as you like
		// only "name" is required
		editors : [
				{
					name : "Raúl García-Castro",
					url : "http://www.garcia-castro.com/",
					company : "Ontology Engineering Group, Universidad Politécnica de Madrid",
					companyURL : "http://www.oeg-upm.net/"
				},
				{
					name : "Fernando Serena",
					company : "Ontology Engineering Group, Universidad Politécnica de Madrid",
					companyURL : "http://www.oeg-upm.net/"
				}
		//{ name: "John Arwe", url: "https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/allcommunities?userid=120000CAW7",
		//  company: "IBM Corporation", companyURL: "http://ibm.com/" },
		],

		// authors, add as many as you like.
		// This is optional, uncomment if you have authors as well as editors.
		// only "name" is required. Same format as editors.

		//authors:  [
		//    { name: "Your Name", url: "http://example.org/",
		//      company: "Your Company", companyURL: "http://example.com/" },
		//],

		// name of the WG
		wg : "Linked Data Platform Working Group",

		// URI of the public WG page
		wgURI : "http://www.w3.org/2012/ldp",

		// name (without the @w3c.org) of the public mailing to which comments are due
		wgPublicList : "public-ldp-wg",

		// URI of the patent status for this WG, for Rec-track documents
		// !!!! IMPORTANT !!!!
		// This is important for Rec-track documents, do not copy a patent URI from a random
		// document unless you know what you're doing. If in doubt ask your friendly neighbourhood
		// Team Contact.
		wgPatentURI : "http://www.w3.org/2004/01/pp-impl/55082/status",
		doRDFa : "1.1",
+		localBiblio:  {
		    "LDP-PRIMER": {
			        title:    "Linked Data Platform 1.0 Primer",
			        href:     "https://dvcs.w3.org/hg/ldpwg/raw-file/tip/ldp-primer/ldp-primer.html",
			        authors:  [
			            "Nandana Mihindukulasooriya",
+			            "Roger Menday"
			        ],
			        status:   "WD",
			        deliveredBy: [
                        "http://www.w3.org/2012/ldp/"
                    ],
			        publisher:  "W3C"
		    }
    }
	};
</script>
</head>
<body>

	<section id='abstract'>
	<p>The Linked Data Platform specification, informally LDP,
		describes the use of HTTP for accessing, updating, creating and
		deleting resources from servers that expose their resources as Linked
		Data. This document describes the conditions that LDP servers must
		satisfy in order to be conformant with the specification and presents
		a common format for describing LDP test cases and server results.
		These test cases both illustrate the features of the specification and
		can be used for testing conformance.</p>
	</section>

	<section id='sotd'>
      <p>
      <!--Empty. Nothing else to add.-->
      </p>
    </section>

	<section>
	<h2>
		Introduction
	</h2>
	<p>
		This document describes a test suite that can be used to evaluate the
		conformance of LDP servers to the LDP specification
		[[LINKED-DATA-PLATFORM]]. The document also presents the design
		principles that guided the development of the test suite, a testing
		process, and a common format for describing test cases and server
		results. <br> The purpose of the test cases is to illustrate the
			specification features and to help in testing conformance. The
			provided set of test cases is "incomplete" in the sense that passing
			all the tests does not prove that a given system conforms to the LDP
			specification; failing a test does, however, prove that the system
			does not conform to the specification.
		<br> The presented format is intended to facilitate the use of
			tests by LDP server developers, e.g., in a test harness, as well as
			the extension of the test suite with new tests. Developers can check
			the LDP Primer [[LDP-PRIMER]] for concrete examples of inputs and
			expected outputs that can be used for testing.
	</p>
	</section>

	<section>
	<h2>
		Design principles
	</h2>

	<section>
	<h3>
		Generic vs domain-specific servers
	</h3>
	<p>There will be two types of systems implementing the LDP
		specification:</p>
	<ul>
		<li>Generic RDF storage systems that allow interacting with their
			resources by means of the LDP specification. These servers do not
			impose any restriction on LDPRs.</li>
		<li>Systems exposing their data using the LDP specification.
			These systems impose restrictions on LDPRs since they have an
			underlying business logic and data model.</li>
	</ul>
	<p>In order to cover both types of systems, we do not provide
		specific input data in the test suite. It is up to the evaluator to
		define specific input data for a certain system. Evaluators must
		include these input data along with the results when reporting the
		results of a certain system.</p>
	</section> <section>
	<h3>
		Protocol evaluation vs data evaluation
	</h3>
	<p>The LDP specification includes restrictions on LDP servers at
		the protocol level and at the data level. Currently, the restrictions
		at the data level are minimal and servers are not forced to have a
		certain behaviour when processing LDPR representations. Therefore, the
		test suite evaluates LDP servers at a protocol level; the only
		exception is in the case of LDPCs, since they are required to include
		an rdf.type statement in their representation.</p>
	<p>It is out of the scope of the test suite to test LDP servers in
		terms of the restrictions imposed by their underlying data models.</p>
	</section> <section>
	<h3>
		Test suite coverage
	</h3>
	<p>
		This test suite only covers those absolute requirements present in the
		LDP specification (as stated by the use of the MUST key word). This
		set of absolute requirements identifies the core subset of the LDP
		specification,
		<dfn>LDP Core</dfn>
		from now on, and any LDP server that satisfies these absolute
		requirements will be an LDP Core conformant server.
	</p>
	<p>It is out of the scope of this test suite to test other levels
		of conformance in terms of optional capabilities (e.g., paging).</p>
	<p>
		Furthermore, the LDP specification [[LINKED-DATA-PLATFORM]] contains
		the following absolute requirements for <a>LDP Core</a> that are not
		directly testable and, therefore, are not covered by the current test
		suite:
	</p>
	<ul>
		<li>4.2.1.1 LDP servers MUST at least be HTTP/1.1 conformant servers [HTTP11].</li>
		<li>4.2.1.5 LDP servers MUST assign the default base-URI for [RFC3987] relative-URI resolution to be the HTTP Request-URI when the resource already exists, and to the URI of the created resource when the request results in the creation of a new resource.</li>
		<li>4.2.1.6 LDP servers MUST publish any constraints on LDP clients’ ability to create or update LDPRs, by adding a Link header with rel='describedby' [RFC5988] to all responses to requests which fail due to violation of those constraints.</li>
		<li>4.2.2.2 LDP servers MUST support the HTTP response headers defined in section 4.2.8 HTTP OPTIONS.</li>
		<li>4.2.4.1 If a HTTP PUT is accepted on an existing resource, LDP servers MUST replace the entire persistent state of the identified resource with the entity representation in the body of the request. [...] Any LDP servers that wish to support a more sophisticated merge of data provided by the client with existing state stored on the server for a resource MUST use HTTP PATCH, not HTTP PUT.</li>
		<li>4.2.4.3 If an otherwise valid HTTP PUT request is received that attempts to change properties the server does not allow clients to modify, LDP servers MUST respond with a 4xx range status code (typically 409 Conflict).</li>
		<li>4.2.4.4 If an otherwise valid HTTP PUT request is received that contains properties the server chooses not to persist, e.g. unknown content, LDP servers MUST respond with an appropriate 4xx range status code [HTTP11].</li>
		<li>4.2.4.5 [...] LDP servers that require conditional requests MUST respond with status code 428 (Precondition Required) when the absence of a precondition is the only reason for rejecting the request [RFC6585].</li>
		<li>4.2.7.1 LDP servers that support PATCH MUST include an Accept-Patch HTTP response header [RFC5789] on HTTP OPTIONS requests, listing patch document media type(s) supported by the server.</li>
		<li>4.3.1.4 LDP servers MUST provide an RDF representation for LDP-RSs [...]</li>
		<li>4.3.1.10 LDP servers MUST NOT require LDP clients to implement inferencing in order to recognize the subset of content defined by LDP.</li>
		<li>5.2.3.12 If an LDPC server creates this associated LDP-RS it MUST indicate its location on the HTTP response using the HTTP Link response header with link relation describedby and href to be the URI of the associated LDP-RS resource [RFC5988].</li>
		<li>5.2.3.13 LDP servers that support POST MUST include an Accept-Post response header on HTTP OPTIONS responses, listing post document media type(s) supported by the server.</li>
		<li>5.2.5.1 When an LDPR identified by the object of a containment triple is deleted, the LDPC server MUST also remove the LDPR from the containing LDPC by removing the corresponding containment triple.</li>
		<li>5.2.5.2 When an LDPR identified by the object of a containment triple is deleted, and the LDPC server created an associated LDP-RS (see the LDPC POST section), the LDPC server MUST also remove the associated LDP-RS it created.</li>
		<li>5.2.8.1 When an LDPC server creates an LDP-NR (for example, one whose representation was HTTP POSTed to the LDPC) the LDP server might create an associated LDP-RS to contain data about the non-LDPR (see LDPC POST section). For LDP-NRs that have this associated LDP-RS, an LDPC server MUST provide an HTTP Link header whose target URI is the associated LDP-RS, and whose link relation type is describedby [RFC5988].</li>
		<li>5.4.1.5 LDP Direct Containers MUST behave as if they have a ( LDPC URI, ldp:insertedContentRelation , ldp:MemberSubject ) triple, but LDP imposes no requirement to materialize such a triple in the LDP-DC representation.</li>
		<li>5.4.3.1 When an LDPR identified by the object of a membership triple which was originally created by the LDP-DC is deleted, the LDPC server MUST also remove the corresponding membership triple.</li>
	</ul>
	</section> <section>
	<h3>
		Separation of results and assertions
	</h3>
	<p>Instead of defining expected results for tests, which will be
		dependent on specific implementations, we have defined the assertions
		to be made over test results. In order to successfully pass a test,
		all of the assertions must be satisfied.</p>
	<p>Separating test outputs and assertions has other benefits: it
		makes simpler to report tool results and assertions can be made by a
		third party.</p>
	</section> <section>
	<h3>
		Traceability of test cases
	</h3>
	<p>Any test case and its produced results and assertions should be
		related to those documents that are relevant for it (e.g.,
		specifications, uses cases, etc.).</p>
	</section> </section>

	<section>
	<h2>
		Testing process
	</h2>
	<p>The LDP Test Cases are defined in this same page, which is
		annotated using RDFa so that it can be consumed both by persons and
		machines. The testing process is composed of two steps, depicted in
		the figure below.</p>
	<ol>
		<li>The person or agent in charge of executing the test cases in
			a specific LDP server will take the test case definitions and run
			every test case on the LDP server. It is recommended (but not
			required) that test execution is automated. The execution of test
			cases must produce a test execution report for the LDP server, in RDF
			format, that contains for every test case: the specific inputs used
			during its execution, the produced outputs, and the assertion of
			whether the test case is passed. The test execution report must be
			available in the Web.</li>
		<li>A report generator software will take all the LDP server
			execution reports and will generate an implementation report that
			includes the results of all the LDP servers.</li>
	</ol>
	<p>
		<object data="TestingProcess.svg" type="image/svg+xml">Your
			browser does not support SVG.</object>
	</p>
	</section>

	<section>
	<h2>
		Describing testing artifacts in RDF
	</h2>

	<section>
	<h3>
		Namespaces used
	</h3>
	<p>
		The following vocabularies are reused for describing the testing
		artifacts: DOAP (
		<code>doap</code>
		), Dublin Core (
		<code>dc</code>
		) [[DC11]], FOAF (
		<code>foaf</code>
		) [[FOAF]], HTTP Vocabulary in RDF (
		<code>ht</code>
		) [[HTTP-IN-RDF]], and W3C Test Metadata (
		<code>td</code>
		) [[TEST-METADATA]].
	</p>
	<p>
		All the new required entities that are not covered by those
		vocabularies have been defined under a new namespace (
		<code>tn</code>
		). Besides, the LDP test cases have been defined under their own
		namespace (
		<code>ldptc</code>
		).
	</p>
	<p>Next we present the definition of these namespaces and of all
		the namespaces used in the examples.</p>
	<pre>cnt: &lt;http://www.w3.org/2011/content#&gt;
dc: &lt;http://purl.org/dc/terms/&gt;
doap: &lt;http://usefulinc.com/ns/doap#&gt;
earl: &lt;http://www.w3.org/ns/earl#&gt;
foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
ht: &lt;http://www.w3.org/2011/http#&gt;
httph: &lt;http://www.w3.org/2011/http-headers#&gt;
ldptc: &lt;http://www.w3.org/TR/ldp/TestCases#&gt;
td: &lt;http://www.w3.org/2006/03/test-description#&gt;
tn: &lt;http://ldp.example.org/NewTestDefinitions#&gt;</pre> </section> <!--
    <section>
    <h3><a id="TestSuiteDescription">Test suite description</a></h3>
    <p><em>To be completed</em></p>
    </section>
--> <section>
	<h3>
		Test case description
	</h3>
	<p>
		A
		<dfn id="dfn-test-case" title="test case">test case</dfn>
		is defined as an instance of the
		<code>td:TestCase</code>
		class and it can be further described using the following properties:
	</p>
	<ul>
		<li><code>rdfs:label</code>. The human-readable label of the
			test.</li>
		<li><code>dc:title</code>. The name of the test.</li>
		<li><code>dc:description</code>. The description of the test.</li>
		<li><code>dc:contributor</code>. The person (<code>foaf:Person</code>)
			contributing the test.</li>
		<li><code>td:reviewStatus</code>. The status of the test;
			possible status are: <code>td:unreviewed</code>, <code>td:approved</code>
			or <code>td:rejected</code>.</li>
		<li><code>rdfs:seeAlso</code>. A link to the specification it
			refers to.</li>
		<li><code>td:specificationReference</code>. An <a href="#dfn-excerpt">excerpt</a> (<code>tn:Excerpt</code>)
			of the specification that is relevant to the test.</li>
		<li><code>td:input</code>. An <a href="#dfn-test-input">input</a> (<code>tn:TestInput</code>)
			used in the test.</li>
		<li><code>td:precondition</code>. A precondition that must be
			satisfied before running the test.</li>
		<li><code>tn:output</code>. An <a href="#dfn-test-output">output</a>
			(<code>tn:TestOutput</code>) to be produced by the test.</li>
		<li><code>tn:testProcess</code>. The list of <a href="#dfn-step">steps</a>
			(<code>tn:Step</code>) to be performed during the test.</li>
		<li><code>tn:testAssertion</code>. An <a
			href="#dfn-test-assertion">assertion</a> (<code>tn:TestAssertion</code>)
			to be performed over the test output.</li>
	</ul>

	<p>
		An
		<dfn id="dfn-excerpt" title="excerpt">excerpt</dfn>
		is defined as an instance of the
		<code>tn:Excerpt </code>
		class and it can be further described using the following properties:
	</p>
	<ul>
		<li><code>rdfs:seeAlso</code>: The document where the excerpt is
			included.</li>
		<li><code>tn:includesText</code>. The excerpt from the document.</li>
	</ul>

	<p>
		A
		<dfn id="dfn-test-input" title="test input">test input</dfn>
		is defined as an instance of the
		<code>td:TestInput </code>
		class and it can be further described using the following properties:
	</p>
	<ul>
		<li><code>dc:title</code>: The name of the test input.</li>
		<li><code>dc:description</code>. The description of the test
			input.</li>
	</ul>

	<p>
		A
		<dfn id="dfn-test-output" title="test output">test output</dfn>
		is defined as an instance of the
		<code>td:TestOutput</code>
		class and it can be further described using the following properties:
	</p>
	<ul>
		<li><code>dc:title</code>: The name of the test output.</li>
		<li><code>dc:description</code>. The description of the test
			output.</li>
		<li><code>tn:fromStep</code>. The <a href="#dfn-step">step</a> in
			the process in which the output is produced.</li>
	</ul>
	<p>
		In the LDP test cases, test outputs are expected to be HTTP responses
		(
		<code>ht:Response</code>
		).
	</p>

	<p>
		A
		<dfn id="dfn-step" title="step">step</dfn>
		in the test process is defined as an instance of the
		<code>td:Step</code>
		class and it can be further described using the following properties:
	</p>
	<ul>
		<li><code>dc:description</code>. The description of the step.</li>
		<li><code>tn:usesInput</code>. A <a href="#dfn-test-input">test
				input</a> used in the step.</li>
	</ul>
	<p>
		In the LDP test cases, steps are expected to be HTTP requests (
		<code>ht:Request</code>
		).
	</p>

	<p>
		A
		<dfn id="dfn-test-assertion" title="test assertion">test
			assertion</dfn>
		is defined as an instance of the
		<code>td:TestAssertion</code>
		class and it can be further described using the following properties:
	</p>
	<ul>
		<li><code>dc:title</code>: The name of the test assertion.</li>
		<li><code>dc:description</code>. The description of the test
			assertion.</li>
		<li><code>tn:outputAsserted</code>. An <a href="#dfn-test-output">output</a>
			under assertion.</li>
	</ul>
	<p>The following example contains the description of one of the LDP
		test cases.</p>
	<pre class="example" id="test-case-example">:TCR1 a td:TestCase;
         rdfs:label "TC-R1";
         dc:title "GET on an LDPR";
         dc:description "Tests making a GET request on an existing LDPR";
         dc:contributor :RaulGarciaCastro;
         td:reviewStatus td:unreviewed;
         rdfs:seeAlso &lt;http://www.w3.org/TR/ldp/&gt;;
         td:specificationReference [
             a tn:Excerpt;
             rdfs:seeAlso &lt;http://www.w3.org/TR/ldp/&gt;;
             tn:includesText "4.2.8 LDPR server responses MUST use entity tags (either weak or strong ones) as response ETag header values.".
           ],
         	                       [
         	 a tn:Excerpt;
             rdfs:seeAlso &lt;http://www.w3.org/TR/ldp/&gt;;
             tn:includesText "4.2.10 LDPR servers MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp/Resource, and a link relation type of type (that is, rel=&quot;type&quot;) in all responses to requests made to the resource's HTTP Request-URI. [...]".
           ],
         	                       [
         	 a tn:Excerpt;
             rdfs:seeAlso &lt;http://www.w3.org/TR/ldp/&gt;;
             tn:includesText "4.3.1 LDPR servers MUST support the HTTP GET Method for LDPRs.".
           ];
         td:input :TCR1-I1-LDPR-URI;
         td:precondition "The LDP server contains an LDPR at &lt;LDPR URI&gt;";
         tn:output :TCR1-O1-Response-1-GET;
         tn:testProcess (:TCR1-RQ1-GET-LDPR-URI);
         tn:testAssertion :TCR1-A1-Response-1-GET.

:RaulGarciaCastro a foaf:Person;
                    rdfs:label "Raúl García-Castro";
                    owl:sameAs &lt;http://www.garcia-castro.com/#me&gt;.

:TCR1-I1-LDPR-URI a tn:TestInput;
           dc:title "&lt;LDPR URI&gt;";
           dc:description "The URI of an LDPR".

:TCR1-O1-Response-1-GET a tn:TestOutput;
            a ht:Response;
            tn:fromStep :TCR1-RQ1-GET-LDPR-URI;
            dc:title "&lt;Response 1 GET&gt;";
            dc:description "The response of the GET request in step 1".

:TCR1-RQ1-GET-LDPR-URI a tn:Step;
            a ht:Request;
            dc:description "GET &lt;LDPR URI&gt;";
            tn:usesInput :TCR1-I1-LDPR-URI.

:TCR1-A1-Response-1-GET a tn:TestAssertion;
            tn:outputAsserted :TCR1-O1-Response-1-GET;
            dc:title "GET correct";
            dc:description """[Status-Line].Status-Code = 2xx
        [response-header].ETag exists
        [response-header].Link includes ldp:Resource; rel=&quot;type&quot;""".
</pre> </section> <section>
	<h3>
		Execution report description
	</h3>
	<p>
		A
		<dfn id="dfn-test-execution" title="test execution">test
			execution</dfn>
		is defined as an instance of the
		<code>tn:TestExecution</code>
		class and it can be further described using the following properties:
	</p>
	<ul>
		<li><code>tn:testExecuted</code>. The <a href="#dfn-test-case">test
				case</a> (<code>td:TestCase</code>) used in the execution.</li>
		<li><code>tn:subjectTested</code>. The subject (<code>doap:Project</code>)
			tested.</li>
		<li><code>dc:date</code>. The date when the test was executed.</li>
		<li><code>tn:inputUsed</code>. The <a
			href="#dfn-test-input-value">input value</a> (<code>tn:TestInputValue</code>)
			used in the execution.</li>
		<li><code>tn:outputProduced</code>. The <a
			href="#dfn-test-output-value">output value</a> (<code>tn:TestOutputValue</code>)
			produced in the execution.</li>
	</ul>

	<p>
		A
		<dfn id="dfn-test-input-value" title="test input value">test
			input value</dfn>
		is defined as an instance of the
		<code>tn:TestInputValue</code>
		class and it can be further described using the following properties:
	</p>
	<ul>
		<li><code>tn:relatedInput</code>. The <a href="#dfn-test-input">input</a>
			in the test definition (<code>tn:TestInput</code>) for which the
			value is defined.</li>
		<li><code>tn:inputValue</code>. The specific input defined for
			the execution.</li>
	</ul>

	<p>
		A
		<dfn id="dfn-test-output-value" title="test output value">test
			output value</dfn>
		is defined as an instance of the
		<code>tn:TestOutputValue</code>
		class and it can be further described using the following properties:
	</p>
	<ul>
		<li><code>tn:relatedOutput</code>. The <a href="#dfn-test-output">output</a>
			in the test definition (<code>tn:TestOutput</code>) for which the
			value is defined.</li>
		<li><code>tn:outputValue</code>. The specific output defined for
			the execution.</li>
	</ul>
	<p>
		In the LDP test cases, test output values are expected to be HTTP
		responses (
		<code>ht:Response</code>
		).
	</p>
	<p>The following example contains the description of one test
		execution.</p>
	<pre class="example" id="execution-report-example">:TCR1-Execution a tn:TestExecution;
                tn:testExecuted ldptc:TCR1;
                tn:subjectTested :SomeServer;
                dc:date "2013-03-30T09:30:10";
                tn:inputUsed [
                  a tn:TestInputValue ;
                  tn:relatedInput :TCR1-I1-LDPR-URI ;
                  tn:inputValue &lt;http://www.example.org/MyResource&gt; .
                ];
                tn:outputProduced [
                  a tn:TestOutputValue ;
                  tn:relatedOutput :TCR1-O1-Response-1-GET ;
                  tn:outputValue :TCR1-Exec-Response-1-GET .
                ].

:SomeServer a doap:Project;
            doap:name "Sample server".

:TCR1-Exec-Response-1-GET a ht:Response;
    ht:httpVersion "1.1";
    dc:date "2013-03-30T09:30:10";
    ht:sc &lt;http://www.w3.org/2011/http-statusCodes#OK&gt;;
    ht:statusCodeValue "200";
    ht:reasonPhrase "OK";
    ht:headers (
      [
        a ht:ResponseHeader;
        ht:hdrName httph:etag;
        ht:fieldName "ETag";
        ht:fieldValue "hd73hck43".
      ]
      [
        a ht:EntityHeader;
        ht:hdrName httph:content-type;
        ht:fieldName "Content-Type";
        ht:fieldValue "text/turtle; charset=utf-8".
      ]
    );
    ht:body [
      a cnt:ContentAsText ;
      cnt:chars """
			@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;.
			@prefix dc: &lt;http://purl.org/dc/terms/&gt;.
			@prefix ldp: &lt;http://www.w3.org/ns/ldp#&gt;.

			&lt;http://example.org/MyResource&gt;
			   a ldp:Resource;
			   dc:title "My LDP resource".
      """;
      cnt:characterEncoding "UTF-8".
    ].
</pre> </section> <section>
	<h3>
		Test case assertion description
	</h3>
	<p>
		An
		<dfn id="dfn-assertion" title="assertion">assertion</dfn>
		is defined as an instance of the
		<code>earl:Assertion</code>
		class and it can be further described using the following properties:
	</p>
	<ul>
		<li><code>earl:subject</code>.The subject (<code>doap:Project</code>)
			asserted.</li>
		<li><code>earl:test</code>. The <a href="#dfn-test-case">test
				case</a> (<code>td:TestCase</code>) to which the assertion refers to.</li>
		<li><code>tn:fromTestExecution</code>. The <a
			href="#dfn-test-execution">test execution</a> (<code>td:TestExecution</code>)
			used in the assertion.</li>
		<li><code>dc:date</code>. The date when the assertion was
			performed.</li>
		<li><code>earl:assertedBy</code>. The validator (<code>doap:Project</code>)
			that makes the assertion.</li>
		<li><code>
				<code>earl:mode</code>
				.
			</code> The execution mode of the validator. In this case it will always be
			<code>earl:automatic</code>.</li>
		<li><code>earl:result</code>. The outcome value (<code>earl:OutcomeValue</code>)
			of the assertion.</li>
	</ul>
	<p>The following example contains the description of one test
		assertion.</p>
	<pre class="example" id="test-assertion-example">:TCR1-Assertion-SomeServer a earl:Assertion;
                earl:subject sr:SomeServer;
                earl:test ldptc:TCR1;
                tn:fromTestExecution sr:TCR1-Execution;
                dc:date "2013-03-30T09:30:10";
                earl:assertedBy :Validator;
                earl:mode:  earl:automatic;
                earl:result [
                  a earl:OutcomeValue ;
                  earl:outcome earl:passed .
                ].

:Validator a doap:Project;
            doap:name "Some validator".</pre> </section> </section>

			
			
	<section>
	<h2>
		Tests for LDPRs
	</h2>
	<p>These tests involve only LDPRs.</p>

	
		<!-- TC-R1: GET on an LDPR -->
		
		
		<section resource="#TCR1" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-R1</span>.
					<span property="dc:title">GET on an LDPR</span>
			</h3>
			<p property="dc:description">Tests making a GET request on an existing LDPR.</p>
			<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person">
				<strong>Contributor: </strong><span property="rdfs:label">Raúl García-Castro</span>
				<span property="owl:sameAs" href="http://www.garcia-castro.com/#me"></span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"	property="rdfs:seeAlso">Linked Data Platform 1.0</a>:</em>
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.2.1 LDP servers MUST support the HTTP GET Method for LDPRs.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCR1-I1-LDPR-URI" typeof="tn:TestInput">
					<em property="dc:title">&lt;LDPR URI&gt;</em>. 
					<span property="dc:description">The URI of an LDPR.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDPR at &lt;LDPR URI&gt;</li>
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess" resource="#TCR1-RQ1-GET-LDPR-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDPR URI&gt;</div> 
					<span property="tn:usesInput" resource="#TCR1-I1-LDPR-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCR1-O1-Response-1-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 GET&gt;</em>. 
					<span property="dc:description">The response of the GET request in step 1.</span> 
					<span property="tn:fromStep" resource="#TCR1-RQ1-GET-LDPR-URI"></span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCR1-A1-Response-1-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCR1-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource; rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section> 
		
		
		<!-- TC-R2: HEAD on an LDPR -->
		
		
		<section resource="#TCR2" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-R2</span>. 
					<span property="dc:title">HEAD on an LDPR</span>
			</h3>
			<p property="dc:description">Tests making a HEAD request on an LDPR.</p>
			<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Raúl García-Castro</span> 
				<span property="owl:sameAs" href="http://www.garcia-castro.com/#me"></span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.6.1 LDP servers MUST support the HTTP HEAD method.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<p>
				<em><a target="_blank" href="http://tools.ietf.org/html/rfc2616" property="rdfs:seeAlso">Hypertext Transfer Protocol - HTTP/1.1</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">9.4 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.</span>
						<span property="rdfs:seeAlso" href="http://tools.ietf.org/html/rfc2616"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCR2-I1-LDPR-URI" typeof="tn:TestInput">
					<em property="dc:title">&lt;LDPR URI&gt;</em>.
					<span property="dc:description">The URI of an LDPR.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDPR at &lt;LDPR URI&gt;</li>
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess" resource="#TCR2-RQ1-HEAD-LDPR-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">HEAD &lt;LDPR URI&gt;</div> 
					<span property="tn:usesInput" resource="#TCR2-I1-LDPR-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCR2-O1-Response-1-HEAD" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 HEAD&gt;</em>.
					<span property="dc:description">The response of the HEAD request in step 1.</span>
					<span property="tn:fromStep" resource="#TCR2-RQ1-HEAD-LDPR-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCR2-A1-Response-1-HEAD" typeof="tn:TestAssertion">
				<div property="tn:outputAsserted" resource="TCR2-O1-Response-1-HEAD">
						Assert &lt;Response 1 HEAD&gt; (<span property="dc:title">HEAD correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource; rel="type"</li>
								<li>[message-body] not exists</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
		
			
		<!-- TC-R3: OPTIONS on an LDPR -->
		
		
		<section resource="#TCR3" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-R3</span>.
					<span property="dc:title">OPTIONS on an LDPR</span>
			</h3>
			<p property="dc:description">Tests making an OPTIONS request on an LDPR.</p>
			<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person">
				<strong>Contributor: </strong>
				<span property="rdfs:label">Raúl García-Castro</span>
				<span property="owl:sameAs" href="http://www.garcia-castro.com/#me"></span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag
							header values.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.8.1 LDP servers MUST support the HTTP OPTIONS method.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.8.2 LDP servers MUST indicate their support for HTTP Methods by responding to a HTTP OPTIONS request on the LDPR’s URL with the HTTP Method tokens in the HTTP response header Allow.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCR3-I1-LDPR-URI" typeof="tn:TestInput">
					<em property="dc:title">&lt;LDPR URI&gt;</em>.
					<span property="dc:description">The URI of an LDPR.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDPR at &lt;LDPR URI&gt;</li>
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"
					resource="#TCR3-RQ1-OPTIONS-LDPR-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">OPTIONS &lt;LDPR URI&gt;</div>
					<span property="tn:usesInput" resource="#TCR3-I1-LDPR-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCR3-O1-Response-1-OPTIONS" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 OPTIONS&gt;</em>.
					<span property="dc:description">The response of the OPTIONS request in step 1.</span>
					<span property="tn:fromStep" resource="#TCR3-RQ1-OPTIONS-LDPR-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCR3-A1-Response-1-OPTIONS" typeof="tn:TestAssertion">
				<div property="tn:outputAsserted" resource="TCR3-O1-Response-1-OPTIONS">
						Assert &lt;Response 1 OPTIONS&gt; (<span property="dc:title">OPTIONS correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource; rel="type"</li>
								<li>[entity-header].Allow exists</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
	
	</section>
	

	<section>
		<h2>
			Tests for LDP Basic Containers
		</h2>
		<p>These tests involve LDP-BCs and LDPRs.</p>
		
		
		<!-- TC-BC1: Get on an empty LDP-BC -->
		
		
		<section resource="#TCBC1" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-BC1</span>.
					<span property="dc:title">GET on an empty LDP-BC</span>
			</h3>
			<p property="dc:description">Tests making a GET request on an empty LDP Basic Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.2.1 LDP servers MUST support the HTTP GET Method for LDPRs.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.2 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, a containment triple MUST be added to the state of LDPC.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.3.1.1 Each LDP Basic Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCBC1-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-BC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-BC.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Basic Container at &lt;LDP-BC URI&gt;.</li>
				<li property="td:precondition">The LDP Basic Container is empty.</li>
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCBC1-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-BC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCBC1-I1-LDPC-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCBC1-O1-Response-1-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 1.</span>
					<span property="tn:fromStep" resource="#TCBC1-RQ1-GET-LDPC-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCBC1-A1-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC1-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC1-A2-Response-1-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC1-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET basic container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:BasicContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC1-A3-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC1-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">container does not contain resources</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] does not contain &lt;LDP-BC URI&gt; ldp:contains &lt;?x&gt;.</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-BC2: Get on a non-empty LDP-BC -->
		
		
		<section resource="#TCBC2" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-BC2</span>.
					<span property="dc:title">GET on a non-empty LDP-BC</span>
			</h3>
			<p property="dc:description">Tests making a GET request on a non-empty LDP Basic Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.2.1 LDP servers MUST support the HTTP GET Method for LDPRs.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.2 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, a containment triple MUST be added to the state of LDPC.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.3.1.1 Each LDP Basic Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCBC2-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-BC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-BC.</span>
				</li>
				<li property="td:input" resource="#TCBC2-I2-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;C URI&gt;</em>.
					<span property="dc:description">The URI of a resource in the container.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Basic Container at &lt;LDP-BC URI&gt;.</li>
				<li property="td:precondition">The LDP Basic Container contains a resource at &lt;C URI&gt;.</li>
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCBC2-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-BC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCBC2-I1-LDPC-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCBC2-O1-Response-1-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 1.</span>
					<span property="tn:fromStep" resource="#TCBC2-RQ1-GET-LDPC-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCBC2-A1-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC2-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC2-A2-Response-1-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC2-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET basic container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:BasicContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC2-A3-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC2-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">container contains resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;LDP-BC URI&gt; ldp:contains &lt;C URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-BC3: POST an LDP-NR on an LDP-BC -->
		
		
		<section resource="#TCBC3" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-BC3</span>.
					<span property="dc:title">POST an LDP-NR on an LDP-BC</span>
			</h3>
			<p property="dc:description">Tests making a POST request of an LDP-NR on an LDP Basic Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.2.1 LDP servers MUST support the HTTP GET Method for LDPRs.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.4.1.1 Each LDP Non-RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.1 If the resource was created successfully, LDP servers MUST respond with status code 201 (Created) and the Location header set to the new resource’s URL.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.2 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, a containment triple MUST be added to the state of LDPC.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.3.1.1 Each LDP Basic Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCBC3-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-BC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-BC.</span>
				</li>
				<li property="td:input" resource="#TCBC3-I2-LDPNR-REP"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-NR representation&gt;</em>.
					<span property="dc:description">The representation of the LDP-NR to be created.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Basic Container at &lt;LDP-BC URI&gt;.</li>
				<li property="td:precondition">The LDP-BC at &lt;LDP-BC URI&gt; allows POSTS of LDP-NRs.</li>
				<li property="td:precondition">The LDP server does not desire to direct the user agent to retrieve a cacheable resource.</li>
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCBC3-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-BC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCBC3-I1-LDPC-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCBC3-RQ2-POST-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">POST &lt;LDP-BC URI&gt;</div>
					<ul>
						<li>[message-body] = &lt;LDP-NR representation&gt;</li>
					</ul>
					<span property="tn:usesInput" resource="#TCBC3-I1-LDPC-URI"> </span>
					<span property="tn:usesInput" resource="#TCBC3-I2-LDPNR-REP"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCBC3-RQ3-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-BC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCBC3-I1-LDPC-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCBC3-RQ4-GET-LOC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;Response 2 POST&gt;.[response-header].Location</div>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCBC3-O1-Response-1-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 1.</span>
					<span property="tn:fromStep" resource="#TCBC3-RQ1-GET-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCBC3-O2-Response-2-POST" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 2 POST&gt;</em>.
					<span property="dc:description">The response of	the POST request in step 2.</span>
					<span property="tn:fromStep" resource="#TCBC3-RQ2-POST-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCBC3-O3-Response-3-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 3 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 3.</span>
					<span property="tn:fromStep" resource="#TCBC3-RQ3-GET-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCBC3-O4-Response-4-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 4 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 4.</span>
					<span property="tn:fromStep" resource="#TCBC3-RQ4-GET-LOC-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCBC3-A1-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC3-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC3-A2-Response-1-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC3-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET basic container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:BasicContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC3-A3-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC3-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">container does not contain resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] does not contain &lt;LDP-BC URI&gt; ldp:contains &lt;Response 2 POST&gt;.[response-header].Location</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC3-A4-Response-2-POST"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC3-O2-Response-2-POST">
						Assert &lt;Response 2 POST&gt; (<span property="dc:title">POST correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 201</li>
								<li>[response-header].Location exists</li>
								<li>[response-header].Link includes ldp:Resource, ldp:BasicContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC3-A5-Response-3-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC3-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC3-A6-Response-3-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC3-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">GET basic container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:BasicContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC3-A7-Response-3-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC3-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">container contains new resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;LDP-BC&gt; ldp:contains &lt;Response 2 POST&gt;.[response-header].Location</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC3-A8-Response-4-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC3-O4-Response-4-GET">
						Assert &lt;Response 4 GET&gt; (<span property="dc:title">GET new resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-BC4: POST an LDP-RS on an LDP-BC -->
		
		
		<section resource="#TCBC4" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-BC4</span>.
					<span property="dc:title">POST an LDP-RS on an LDP-BC</span>
			</h3>
			<p property="dc:description">Tests making a POST request of an LDP-RS on an LDP Basic Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.2.1 LDP servers MUST support the HTTP GET Method for LDPRs.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.1 If the resource was created successfully, LDP servers MUST respond with status code 201 (Created) and the Location header set to the new resource’s URL.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.2 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, a containment triple MUST be added to the state of LDPC.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.4 LDP servers that successfully create a resource from a RDF representation in the request entity body MUST honor the client's requested interaction model(s). [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.5 LDP servers MUST accept a request entity body with a request header of Content-Type with value of text/turtle [turtle].</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.7 In RDF representations, LDP servers MUST interpret the null relative URI for the subject of triples in the LDPR representation in the request entity body as referring to the entity in the request body.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.3.1.1 Each LDP Basic Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCBC4-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-BC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-BC.</span>
				</li>
				<li property="td:input" resource="#TCBC4-I2-LDPRS-REP"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-RS representation&gt;</em>.
					<span property="dc:description">The representation of the LDP-RS to be created.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Basic Container at &lt;LDP-BC URI&gt;.</li>
				<li property="td:precondition">The LDP-BC at &lt;LDP-BC URI&gt; allows POSTS of LDP-RSs.</li>
				<li property="td:precondition">The LDP server does not desire to direct the user agent to retrieve a cacheable resource.</li>
				<li property="td:precondition">&lt;LDP-RS representation&gt; is in text/turtle.</li>
				<li property="td:precondition">&lt;LDP-RS representation&gt; is a valid representation for a resource to be created in the LDP-BC.</li>
				<li property="td:precondition">&lt;LDP-RS representation&gt; uses null relative URI as the entity in the request body.</li>				
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCBC4-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-BC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCBC4-I1-LDPC-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCBC4-RQ2-POST-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">POST &lt;LDP-BC URI&gt;</div>
					<ul>
						<li>[entity-header].Content-type = text/turtle</li>
						<li>[message-body] = &lt;LDP-RS representation&gt;</li>
					</ul>
					<span property="tn:usesInput" resource="#TCBC4-I1-LDPC-URI"> </span>
					<span property="tn:usesInput" resource="#TCBC4-I2-LDPRS-REP"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCBC4-RQ3-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-BC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCBC4-I1-LDPC-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCBC4-RQ4-GET-LOC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;Response 2 POST&gt;.[response-header].Location</div>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCBC4-O1-Response-1-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 1.</span>
					<span property="tn:fromStep" resource="#TCBC4-RQ1-GET-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCBC4-O2-Response-2-POST" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 2 POST&gt;</em>.
					<span property="dc:description">The response of	the POST request in step 2.</span>
					<span property="tn:fromStep" resource="#TCBC4-RQ2-POST-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCBC4-O3-Response-3-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 3 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 3.</span>
					<span property="tn:fromStep" resource="#TCBC4-RQ3-GET-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCBC4-O4-Response-4-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 4 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 4.</span>
					<span property="tn:fromStep" resource="#TCBC4-RQ4-GET-LOC-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCBC4-A1-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC4-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC4-A2-Response-1-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC4-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET basic container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:BasicContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC4-A3-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC4-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">container does not contain resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] does not contain &lt;LDP-BC URI&gt; ldp:contains &lt;Response 2 POST&gt;.[response-header].Location</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC4-A4-Response-2-POST"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC4-O2-Response-2-POST">
						Assert &lt;Response 2 POST&gt; (<span property="dc:title">POST correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 201</li>
								<li>[response-header].Location exists</li>
								<li>[response-header].Link includes ldp:Resource, ldp:BasicContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC4-A5-Response-3-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC4-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC4-A6-Response-3-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC4-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">GET basic container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:BasicContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC4-A7-Response-3-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC4-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">container contains new resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;LDP-BC&gt; ldp:contains &lt;Response 2 POST&gt;.[response-header].Location</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC4-A8-Response-4-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC4-O4-Response-4-GET">
						Assert &lt;Response 4 GET&gt; (<span property="dc:title">GET new resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-BC5: HEAD on an LDP-BC -->
		
		
		<section resource="#TCBC5" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-BC5</span>.
					<span property="dc:title">HEAD on an LDP-BC</span>
			</h3>
			<p property="dc:description">Tests making a HEAD request on an LDP Basic Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.6.1 LDP servers MUST support the HTTP HEAD method.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.3.1.1 Each LDP Basic Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<p>
				<em><a target="_blank" href="http://tools.ietf.org/html/rfc2616"
					property="rdfs:seeAlso">Hypertext Transfer Protocol - HTTP/1.1</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">9.4 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.</span>
						<span property="rdfs:seeAlso" href="http://tools.ietf.org/html/rfc2616"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCBC5-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-BC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-BC.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Basic Container at &lt;LDP-BC URI&gt;.</li>			
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCBC5-RQ1-HEAD-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">HEAD &lt;LDP-BC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCBC5-I1-LDPC-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCBC5-O1-Response-1-HEAD" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 HEAD&gt;</em>.
					<span property="dc:description">The response of	the HEAD request in step 1.</span>
					<span property="tn:fromStep" resource="#TCBC5-RQ1-HEAD-LDPC-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCBC5-A1-Response-1-HEAD" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC5-O1-Response-1-HEAD">
						Assert &lt;Response 1 HEAD&gt; (<span property="dc:title">HEAD correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
								<li>[message-body] not exists</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC5-A2-Response-1-HEAD" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC5-O1-Response-1-HEAD">
						Assert &lt;Response 1 HEAD&gt; (<span property="dc:title">HEAD container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:BasicContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-BC6: OPTIONS on an LDP-BC -->
		
		
		<section resource="#TCBC6" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-BC6</span>.
					<span property="dc:title">OPTIONS on an LDP-BC</span>
			</h3>
			<p property="dc:description">Tests making a OPTIONS request on an LDP Basic Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag OPTIONSer values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link OPTIONSer with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.8.1 LDP servers MUST support the HTTP OPTIONS method.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.8.2 LDP servers MUST indicate their support for HTTP Methods by responding to a HTTP OPTIONS request on the LDPR’s URL with the HTTP Method tokens in the HTTP response header Allow.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link OPTIONSer with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.3.1.1 Each LDP Basic Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCBC6-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-BC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-BC.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Basic Container at &lt;LDP-BC URI&gt;.</li>			
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCBC6-RQ1-OPTIONS-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">OPTIONS &lt;LDP-BC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCBC6-I1-LDPC-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCBC6-O1-Response-1-OPTIONS" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 OPTIONS&gt;</em>.
					<span property="dc:description">The response of	the OPTIONS request in step 1.</span>
					<span property="tn:fromStep" resource="#TCBC6-RQ1-OPTIONS-LDPC-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCBC6-A1-Response-1-OPTIONS" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC6-O1-Response-1-OPTIONS">
						Assert &lt;Response 1 OPTIONS&gt; (<span property="dc:title">OPTIONS correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
								<li>[entity-header].Allow exists</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCBC6-A2-Response-1-OPTIONS" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCBC6-O1-Response-1-OPTIONS">
						Assert &lt;Response 1 OPTIONS&gt; (<span property="dc:title">OPTIONS container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:BasicContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	</section>
	
	<section>
		<h2>
			Tests for LDP Direct Containers
		</h2>
		<p>These tests involve LDP-DCs and LDPRs.</p>
	
		
		<!-- TC-DC1: Get on an empty LDP-DC -->
		
		
		<section resource="#TCDC1" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-DC1</span>.
					<span property="dc:title">GET on an empty LDP-DC</span>
			</h3>
			<p property="dc:description">Tests making a GET request on an empty LDP Direct Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.2.1 LDP servers MUST support the HTTP GET Method for LDPRs.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.2 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, a containment triple MUST be added to the state of LDPC.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.1 Each LDP Direct Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.3 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is the ldp:membershipResource, and whose object is the LDPC's membership-constant-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, and whose predicate is either ldp:hasMemberRelation or ldp:isMemberOfRelation.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.1 LDP Direct Containers whose membership triple pattern is ( membership-constant-URI , membership-predicate , member-derived-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is ldp:hasMemberRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.2 LDP Direct Containers whose membership triple pattern is ( member-derived-URI , membership-predicate , membership-constant-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is either ldp:isMemberOfRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCDC1-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-DC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-DC.</span>
				</li>
				<li property="td:input" resource="#TCDC1-I2-R-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;R URI&gt;</em>.
					<span property="dc:description">The URI of the membership resource.</span>
				</li>
				<li property="td:input" resource="#TCDC1-I3-M-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;M URI&gt;</em>.
					<span property="dc:description">The URI of the membership property.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Direct Container at &lt;LDP-DC URI&gt;.</li>
				<li property="td:precondition">The LDP Direct Container is empty.</li>
				<li property="td:precondition">The membership triple pattern used by the container is the one whose membership-constant-URI is the subject.</li>
				<li property="td:precondition">The membership resource of the LDP-DC is at &lt;R URI&gt;.</li>
				<li property="td:precondition">The membership predicate of the LDP-DC is &lt;M URI&gt;.</li>
				<li property="td:precondition">ldp:hasMemberRelation is the predicate used in all container representations.</li>
				
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCDC1-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-DC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCDC1-I1-LDPC-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCDC1-O1-Response-1-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 1.</span>
					<span property="tn:fromStep" resource="#TCDC1-RQ1-GET-LDPC-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCDC1-A1-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC1-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC1-A2-Response-1-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC1-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET direct container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:DirectContainer;rel="type"</li>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:membershipResource &lt;R URI&gt;</li>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:hasMemberRelation &lt;M URI&gt; and does not contain &lt;LDP-DC URI&gt; ldp:isMemberOfRelation &lt;M URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC1-A3-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC1-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">container does not contain resources</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] does not contain &lt;LDP-DC URI&gt; ldp:contains &lt;?x&gt;.</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-DC2: Get on a non-empty LDP-DC -->
		
		
		<section resource="#TCDC2" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-DC2</span>.
					<span property="dc:title">GET on a non-empty LDP-DC</span>
			</h3>
			<p property="dc:description">Tests making a GET request on a non-empty LDP Direct Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.2.1 LDP servers MUST support the HTTP GET Method for LDPRs.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.2 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, a containment triple MUST be added to the state of LDPC.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.1 Each LDP Direct Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.3 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is the ldp:membershipResource, and whose object is the LDPC's membership-constant-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, and whose predicate is either ldp:hasMemberRelation or ldp:isMemberOfRelation.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.1 LDP Direct Containers whose membership triple pattern is ( membership-constant-URI , membership-predicate , member-derived-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is ldp:hasMemberRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.2 LDP Direct Containers whose membership triple pattern is ( member-derived-URI , membership-predicate , membership-constant-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is either ldp:isMemberOfRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.2.1 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, the LDPC MUST update its membership triples to reflect that addition, and the resulting membership triple MUST be consistent with any LDP-defined predicates it exposes.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCDC2-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-DC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-DC.</span>
				</li>
				<li property="td:input" resource="#TCDC2-I2-R-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;R URI&gt;</em>.
					<span property="dc:description">The URI of the membership resource.</span>
				</li>
				<li property="td:input" resource="#TCDC2-I3-M-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;M URI&gt;</em>.
					<span property="dc:description">The URI of the membership property.</span>
				</li>
				<li property="td:input" resource="#TCDC2-I4-C-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;C URI&gt;</em>.
					<span property="dc:description">The URI of a contained resource.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Direct Container at &lt;LDP-DC URI&gt;.</li>
				<li property="td:precondition">The LDP Direct Container created a resource at &lt;C URI&gt;.</li>
				<li property="td:precondition">The membership triple pattern used by the container is the one whose membership-constant-URI is the subject.</li>
				<li property="td:precondition">The membership resource of the LDP-DC is at &lt;R URI&gt;.</li>
				<li property="td:precondition">The membership predicate of the LDP-DC is &lt;M URI&gt;.</li>
				<li property="td:precondition">ldp:hasMemberRelation is the predicate used in all container representations.</li>
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCDC2-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-DC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCDC2-I1-LDPC-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCDC2-RQ2-GET-R-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;R URI&gt;</div>
					<span property="tn:usesInput" resource="#TCDC2-I2-R-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCDC2-O1-Response-1-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 1.</span>
					<span property="tn:fromStep" resource="#TCDC2-RQ1-GET-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCDC2-O2-Response-2-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 2 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 2.</span>
					<span property="tn:fromStep" resource="#TCDC2-RQ2-GET-R-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCDC2-A1-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC2-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC2-A2-Response-1-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC2-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET direct container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:DirectContainer;rel="type"</li>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:membershipResource &lt;R URI&gt;</li>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:hasMemberRelation &lt;M URI&gt; and does not contain &lt;LDP-DC URI&gt; ldp:isMemberOfRelation &lt;M URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC2-A3-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC2-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">container contains resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:contains &lt;C URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC2-A4-Response-2-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC2-O2-Response-2-GET">
						Assert &lt;Response 2 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC2-A5-Response-2-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC2-O2-Response-2-GET">
						Assert &lt;Response 2 GET&gt; (<span property="dc:title">resource contains triple</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;R URI&gt; &lt;M URI&gt; &lt;C URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-DC3: POST an LDP-NR on an LDP-DC -->
		
		
		<section resource="#TCDC3" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-DC3</span>.
					<span property="dc:title">POST an LDP-NR on an LDP-DC</span>
			</h3>
			<p property="dc:description">Tests making a POST request of an LDP-NR on an LDP Direct Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.2.1 LDP servers MUST support the HTTP GET Method for LDPRs.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.4.1.1 Each LDP Non-RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.1 If the resource was created successfully, LDP servers MUST respond with status code 201 (Created) and the Location header set to the new resource’s URL.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.2 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, a containment triple MUST be added to the state of LDPC.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.1 Each LDP Direct Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.3 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is the ldp:membershipResource, and whose object is the LDPC's membership-constant-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, and whose predicate is either ldp:hasMemberRelation or ldp:isMemberOfRelation.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.1 LDP Direct Containers whose membership triple pattern is ( membership-constant-URI , membership-predicate , member-derived-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is ldp:hasMemberRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.2 LDP Direct Containers whose membership triple pattern is ( member-derived-URI , membership-predicate , membership-constant-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is either ldp:isMemberOfRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.2.1 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, the LDPC MUST update its membership triples to reflect that addition, and the resulting membership triple MUST be consistent with any LDP-defined predicates it exposes.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCDC3-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-DC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-DC.</span>
				</li>
				<li property="td:input" resource="#TCDC3-I2-LDPNR-REP"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-NR representation&gt;</em>.
					<span property="dc:description">The representation of the LDP-NR to be created.</span>
				</li>
				<li property="td:input" resource="#TCDC3-I3-R-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;R URI&gt;</em>.
					<span property="dc:description">The URI of the membership resource.</span>
				</li>
				<li property="td:input" resource="#TCDC3-I4-M-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;M URI&gt;</em>.
					<span property="dc:description">The URI of the membership property.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Direct Container at &lt;LDP-DC URI&gt;.</li>
				<li property="td:precondition">The LDP-DC at &lt;LDP-DC URI&gt; allows POSTS of LDP-NRs.</li>
				<li property="td:precondition">The LDP server does not desire to direct the user agent to retrieve a cacheable resource.</li>
				<li property="td:precondition">The membership resource of the LDP-DC is at &lt;R URI&gt;.</li>
				<li property="td:precondition">The membership predicate of the LDP-DC is &lt;M URI&gt;.</li>
				<li property="td:precondition">The membership triple pattern used by the container is the one whose membership-constant-URI is the subject.</li>
				<li property="td:precondition">ldp:hasMemberRelation is the predicate used in all container representations.</li>
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCDC3-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-DC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCDC3-I1-LDPC-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCDC3-RQ2-POST-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">POST &lt;LDP-DC URI&gt;</div>
					<ul>
						<li>[message-body] = &lt;LDP-NR representation&gt;</li>
					</ul>
					<span property="tn:usesInput" resource="#TCDC3-I1-LDPC-URI"> </span>
					<span property="tn:usesInput" resource="#TCDC3-I2-LDPNR-REP"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCDC3-RQ3-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-DC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCDC3-I1-LDPC-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCDC3-RQ4-GET-LOC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;Response 2 POST&gt;.[response-header].Location</div>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCDC3-RQ5-GET-R-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;R URI&gt;</div>
					<span property="tn:usesInput" resource="#TCDC3-I3-R-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCDC3-O1-Response-1-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 1.</span>
					<span property="tn:fromStep" resource="#TCDC3-RQ1-GET-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCDC3-O2-Response-2-POST" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 2 POST&gt;</em>.
					<span property="dc:description">The response of	the POST request in step 2.</span>
					<span property="tn:fromStep" resource="#TCDC3-RQ2-POST-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCDC3-O3-Response-3-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 3 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 3.</span>
					<span property="tn:fromStep" resource="#TCDC3-RQ3-GET-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCDC3-O4-Response-4-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 4 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 4.</span>
					<span property="tn:fromStep" resource="#TCDC3-RQ4-GET-LOC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCDC3-O5-Response-5-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 5 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 5.</span>
					<span property="tn:fromStep" resource="#TCDC3-RQ5-GET-R-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCDC3-A1-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC3-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC3-A2-Response-1-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC3-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET direct container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:DirectContainer;rel="type"</li>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:membershipResource &lt;R URI&gt;</li>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:hasMemberRelation &lt;M URI&gt; and does not contain &lt;LDP-DC URI&gt; ldp:isMemberOfRelation &lt;M URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC3-A3-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC3-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">container does not contain resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] does not contain &lt;LDP-DC URI&gt; ldp:contains &lt;Response 2 POST&gt;.[response-header].Location</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC3-A4-Response-2-POST"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC3-O2-Response-2-POST">
						Assert &lt;Response 2 POST&gt; (<span property="dc:title">POST correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 201</li>
								<li>[response-header].Location exists</li>
								<li>[response-header].Link includes ldp:Resource, ldp:DirectContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC3-A5-Response-3-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC3-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC3-A6-Response-3-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC3-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">GET basic container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:DirectContainer;rel="type"</li>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:membershipResource &lt;R URI&gt;</li>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:hasMemberRelation &lt;M URI&gt; and does not contain &lt;LDP-DC URI&gt; ldp:isMemberOfRelation &lt;M URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC3-A7-Response-3-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC3-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">container contains new resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;LDP-DC&gt; ldp:contains &lt;Response 2 POST&gt;.[response-header].Location</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC3-A8-Response-4-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC3-O4-Response-4-GET">
						Assert &lt;Response 4 GET&gt; (<span property="dc:title">GET new resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC3-A9-Response-5-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC3-O5-Response-5-GET">
						Assert &lt;Response 5 GET&gt; (<span property="dc:title">GET membership resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC3-A10-Response-5-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC3-O5-Response-5-GET">
						Assert &lt;Response 5 GET&gt; (<span property="dc:title">resource has triple</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;R URI&gt; &lt;M URI&gt; &lt;Response 2 POST&gt;.[response-header].Location</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-DC4: POST an LDP-RS on an LDP-DC -->
		
		
		<section resource="#TCDC4" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-DC4</span>.
					<span property="dc:title">POST an LDP-RS on an LDP-DC</span>
			</h3>
			<p property="dc:description">Tests making a POST request of an LDP-RS on an LDP Direct Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.2.1 LDP servers MUST support the HTTP GET Method for LDPRs.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.1 If the resource was created successfully, LDP servers MUST respond with status code 201 (Created) and the Location header set to the new resource’s URL.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.2 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, a containment triple MUST be added to the state of LDPC.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.4 LDP servers that successfully create a resource from a RDF representation in the request entity body MUST honor the client's requested interaction model(s). [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.5 LDP servers MUST accept a request entity body with a request header of Content-Type with value of text/turtle [turtle].</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.7 In RDF representations, LDP servers MUST interpret the null relative URI for the subject of triples in the LDPR representation in the request entity body as referring to the entity in the request body.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.1 Each LDP Direct Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.3 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is the ldp:membershipResource, and whose object is the LDPC's membership-constant-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, and whose predicate is either ldp:hasMemberRelation or ldp:isMemberOfRelation.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.1 LDP Direct Containers whose membership triple pattern is ( membership-constant-URI , membership-predicate , member-derived-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is ldp:hasMemberRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.2 LDP Direct Containers whose membership triple pattern is ( member-derived-URI , membership-predicate , membership-constant-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is either ldp:isMemberOfRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.2.1 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, the LDPC MUST update its membership triples to reflect that addition, and the resulting membership triple MUST be consistent with any LDP-defined predicates it exposes.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCDC4-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-DC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-DC.</span>
				</li>
				<li property="td:input" resource="#TCDC4-I2-LDPRS-REP"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-RS representation&gt;</em>.
					<span property="dc:description">The representation of the LDP-RS to be created.</span>
				</li>
				<li property="td:input" resource="#TCDC4-I3-R-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;R URI&gt;</em>.
					<span property="dc:description">The URI of the membership resource.</span>
				</li>
				<li property="td:input" resource="#TCDC4-I4-M-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;M URI&gt;</em>.
					<span property="dc:description">The URI of the membership property.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Direct Container at &lt;LDP-DC URI&gt;.</li>
				<li property="td:precondition">The LDP-DC at &lt;LDP-DC URI&gt; allows POSTS of LDP-RSs.</li>
				<li property="td:precondition">The LDP server does not desire to direct the user agent to retrieve a cacheable resource.</li>
				<li property="td:precondition">The membership resource of the LDP-DC is at &lt;R URI&gt;.</li>
				<li property="td:precondition">The membership predicate of the LDP-DC is &lt;M URI&gt;.</li>
				<li property="td:precondition">The membership triple pattern used by the container is the one whose membership-constant-URI is the subject.</li>
				<li property="td:precondition">ldp:hasMemberRelation is the predicate used in all container representations.</li>
				<li property="td:precondition">&lt;LDP-RS representation&gt; is in text/turtle.</li>
				<li property="td:precondition">&lt;LDP-RS representation&gt; is a valid representation for a resource to be created in the LDP-DC.</li>
				<li property="td:precondition">&lt;LDP-RS representation&gt; uses null relative URI as the entity in the request body.</li>				
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCDC4-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-DC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCDC4-I1-LDPC-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCDC4-RQ2-POST-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">POST &lt;LDP-DC URI&gt;</div>
					<ul>
						<li>[entity-header].Content-type = text/turtle</li>
						<li>[message-body] = &lt;LDP-RS representation&gt;</li>
					</ul>
					<span property="tn:usesInput" resource="#TCDC4-I1-LDPC-URI"> </span>
					<span property="tn:usesInput" resource="#TCDC4-I2-LDPRS-REP"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCDC4-RQ3-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-DC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCDC4-I1-LDPC-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCDC4-RQ4-GET-LOC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;Response 2 POST&gt;.[response-header].Location</div>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCDC4-RQ5-GET-R-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;R URI&gt;</div>
					<span property="tn:usesInput" resource="#TCDC4-I3-R-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCDC4-O1-Response-1-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 1.</span>
					<span property="tn:fromStep" resource="#TCDC4-RQ1-GET-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCDC4-O2-Response-2-POST" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 2 POST&gt;</em>.
					<span property="dc:description">The response of	the POST request in step 2.</span>
					<span property="tn:fromStep" resource="#TCDC4-RQ2-POST-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCDC4-O3-Response-3-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 3 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 3.</span>
					<span property="tn:fromStep" resource="#TCDC4-RQ3-GET-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCDC4-O4-Response-4-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 4 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 4.</span>
					<span property="tn:fromStep" resource="#TCDC4-RQ4-GET-LOC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCDC4-O5-Response-5-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 5 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 5.</span>
					<span property="tn:fromStep" resource="#TCDC4-RQ5-GET-R-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCDC4-A1-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC4-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC4-A2-Response-1-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC4-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET direct container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:DirectContainer;rel="type"</li>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:membershipResource &lt;R URI&gt;</li>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:hasMemberRelation &lt;M URI&gt; and does not contain &lt;LDP-DC URI&gt; ldp:isMemberOfRelation &lt;M URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC4-A3-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC4-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">container does not contain resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] does not contain &lt;LDP-DC URI&gt; ldp:contains &lt;Response 2 POST&gt;.[response-header].Location</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC4-A4-Response-2-POST"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC4-O2-Response-2-POST">
						Assert &lt;Response 2 POST&gt; (<span property="dc:title">POST correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 201</li>
								<li>[response-header].Location exists</li>
								<li>[response-header].Link includes ldp:Resource, ldp:DirectContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC4-A5-Response-3-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC4-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC4-A6-Response-3-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC4-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">GET direct container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:DirectContainer;rel="type"</li>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:membershipResource &lt;R URI&gt;</li>
								<li>[message-body] contains &lt;LDP-DC URI&gt; ldp:hasMemberRelation &lt;M URI&gt; and does not contain &lt;LDP-DC URI&gt; ldp:isMemberOfRelation &lt;M URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC4-A7-Response-3-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC4-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">container contains new resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;LDP-DC&gt; ldp:contains &lt;Response 2 POST&gt;.[response-header].Location</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC4-A8-Response-4-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC4-O4-Response-4-GET">
						Assert &lt;Response 4 GET&gt; (<span property="dc:title">GET new resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC4-A9-Response-5-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC4-O5-Response-5-GET">
						Assert &lt;Response 5 GET&gt; (<span property="dc:title">GET membership resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC4-A10-Response-5-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC4-O5-Response-5-GET">
						Assert &lt;Response 5 GET&gt; (<span property="dc:title">resource has triple</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;R URI&gt; &lt;M URI&gt; &lt;Response 2 POST&gt;.[response-header].Location</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-DC5: HEAD on an LDP-DC -->
		
		
		<section resource="#TCDC5" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-DC5</span>.
					<span property="dc:title">HEAD on an LDP-DC</span>
			</h3>
			<p property="dc:description">Tests making a HEAD request on an LDP Direct Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.6.1 LDP servers MUST support the HTTP HEAD method.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.1 Each LDP Direct Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<p>
				<em><a target="_blank" href="http://tools.ietf.org/html/rfc2616"
					property="rdfs:seeAlso">Hypertext Transfer Protocol - HTTP/1.1</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">9.4 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.</span>
						<span property="rdfs:seeAlso" href="http://tools.ietf.org/html/rfc2616"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCDC5-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-DC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-DC.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Direct Container at &lt;LDP-DC URI&gt;.</li>			
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCDC5-RQ1-HEAD-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">HEAD &lt;LDP-DC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCDC5-I1-LDPC-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCDC5-O1-Response-1-HEAD" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 HEAD&gt;</em>.
					<span property="dc:description">The response of	the HEAD request in step 1.</span>
					<span property="tn:fromStep" resource="#TCDC5-RQ1-HEAD-LDPC-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCDC5-A1-Response-1-HEAD" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC5-O1-Response-1-HEAD">
						Assert &lt;Response 1 HEAD&gt; (<span property="dc:title">HEAD correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
								<li>[message-body] not exists</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC5-A2-Response-1-HEAD" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC5-O1-Response-1-HEAD">
						Assert &lt;Response 1 HEAD&gt; (<span property="dc:title">HEAD container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:DirectContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-DC6: OPTIONS on an LDP-DC -->
		
		
		<section resource="#TCDC6" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-DC6</span>.
					<span property="dc:title">OPTIONS on an LDP-DC</span>
			</h3>
			<p property="dc:description">Tests making a OPTIONS request on an LDP Direct Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag OPTIONSer values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link OPTIONSer with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.8.1 LDP servers MUST support the HTTP OPTIONS method.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.8.2 LDP servers MUST indicate their support for HTTP Methods by responding to a HTTP OPTIONS request on the LDPR’s URL with the HTTP Method tokens in the HTTP response header Allow.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link OPTIONSer with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.1 Each LDP Direct Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCDC6-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-DC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-DC.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Direct Container at &lt;LDP-DC URI&gt;.</li>			
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCDC6-RQ1-OPTIONS-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">OPTIONS &lt;LDP-DC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCDC6-I1-LDPC-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCDC6-O1-Response-1-OPTIONS" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 OPTIONS&gt;</em>.
					<span property="dc:description">The response of	the OPTIONS request in step 1.</span>
					<span property="tn:fromStep" resource="#TCDC6-RQ1-OPTIONS-LDPC-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCDC6-A1-Response-1-OPTIONS" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC6-O1-Response-1-OPTIONS">
						Assert &lt;Response 1 OPTIONS&gt; (<span property="dc:title">OPTIONS correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
								<li>[entity-header].Allow exists</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCDC6-A2-Response-1-OPTIONS" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCDC6-O1-Response-1-OPTIONS">
						Assert &lt;Response 1 OPTIONS&gt; (<span property="dc:title">OPTIONS container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:DirectContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	</section>
	
	
	</section>
	
	<section>
		<h2>
			Tests for LDP Indirect Containers
		</h2>
		<p>These tests involve LDP-ICs and LDPRs.</p>
	
		
		<!-- TC-IC1: Get on an empty LDP-IC -->
		
		
		<section resource="#TCIC1" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-IC1</span>.
					<span property="dc:title">GET on an empty LDP-IC</span>
			</h3>
			<p property="dc:description">Tests making a GET request on an empty LDP Indirect Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.2.1 LDP servers MUST support the HTTP GET Method for LDPRs.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.2 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, a containment triple MUST be added to the state of LDPC.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.1 Each LDP Direct Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.3 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is the ldp:membershipResource, and whose object is the LDPC's membership-constant-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, and whose predicate is either ldp:hasMemberRelation or ldp:isMemberOfRelation.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.1 LDP Direct Containers whose membership triple pattern is ( membership-constant-URI , membership-predicate , member-derived-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is ldp:hasMemberRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.2 LDP Direct Containers whose membership triple pattern is ( member-derived-URI , membership-predicate , membership-constant-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is either ldp:isMemberOfRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.5.1.1 Each LDP Indirect Container MUST also be a conforming LDP Direct Container [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.5.1.2 LDP Indirect Containers MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is ldp:insertedContentRelation, and whose object ICR describes how the member-derived-URI in the container's membership triples is chosen.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCIC1-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-IC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-IC.</span>
				</li>
				<li property="td:input" resource="#TCIC1-I2-R-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;R URI&gt;</em>.
					<span property="dc:description">The URI of the membership resource.</span>
				</li>
				<li property="td:input" resource="#TCIC1-I3-M-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;M URI&gt;</em>.
					<span property="dc:description">The URI of the membership property.</span>
				</li>
				<li property="td:input" resource="#TCIC1-I4-I-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;M URI&gt;</em>.
					<span property="dc:description">The URI of the membership property.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Indirect Container at &lt;LDP-IC URI&gt;.</li>
				<li property="td:precondition">The LDP Indirect Container is empty.</li>
				<li property="td:precondition">The membership triple pattern used by the container is the one whose membership-constant-URI is the subject.</li>
				<li property="td:precondition">The membership resource of the LDP-IC is at &lt;R URI&gt;.</li>
				<li property="td:precondition">The membership predicate of the LDP-IC is &lt;M URI&gt;.</li>
				<li property="td:precondition">The inserted content relation of the LDP-IC is &lt;I URI&gt;.</li>
				<li property="td:precondition">ldp:hasMemberRelation is the predicate used in all container representations.</li>
				
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCIC1-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-IC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCIC1-I1-LDPC-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCIC1-O1-Response-1-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 1.</span>
					<span property="tn:fromStep" resource="#TCIC1-RQ1-GET-LDPC-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCIC1-A1-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC1-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC1-A2-Response-1-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC1-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET indirect container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:IndirectContainer;rel="type"</li>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:membershipResource &lt;R URI&gt;</li>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:hasMemberRelation &lt;M URI&gt; and does not contain &lt;LDP-IC URI&gt; ldp:isMemberOfRelation &lt;M URI&gt;</li>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:insertedContentRelation &lt;I URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC1-A3-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC1-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">container does not contain resources</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] does not contain &lt;LDP-IC URI&gt; ldp:contains &lt;?x&gt;.</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-IC2: Get on a non-empty LDP-IC -->
		
		
		<section resource="#TCIC2" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-IC2</span>.
					<span property="dc:title">GET on a non-empty LDP-IC</span>
			</h3>
			<p property="dc:description">Tests making a GET request on a non-empty LDP Indirect Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.2.1 LDP servers MUST support the HTTP GET Method for LDPRs.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.2 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, a containment triple MUST be added to the state of LDPC.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.1 Each LDP Direct Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.3 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is the ldp:membershipResource, and whose object is the LDPC's membership-constant-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, and whose predicate is either ldp:hasMemberRelation or ldp:isMemberOfRelation.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.1 LDP Direct Containers whose membership triple pattern is ( membership-constant-URI , membership-predicate , member-derived-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is ldp:hasMemberRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.2 LDP Direct Containers whose membership triple pattern is ( member-derived-URI , membership-predicate , membership-constant-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is either ldp:isMemberOfRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.2.1 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, the LDPC MUST update its membership triples to reflect that addition, and the resulting membership triple MUST be consistent with any LDP-defined predicates it exposes.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.5.1.1 Each LDP Indirect Container MUST also be a conforming LDP Direct Container [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.5.1.2 LDP Indirect Containers MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is ldp:insertedContentRelation, and whose object ICR describes how the member-derived-URI in the container's membership triples is chosen.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.5.2.1 LDPCs whose ldp:insertedContentRelation triple has an object other than ldp:MemberSubject and that create new resources MUST add a triple to the container whose subject is the container's URI, whose predicate is ldp:contains, and whose object is the newly created resource's URI (which will be different from the member-derived URI in this case). This ldp:contains triple can be the only link from the container to the newly created resource in certain cases.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCIC2-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-IC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-IC.</span>
				</li>
				<li property="td:input" resource="#TCIC2-I2-R-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;R URI&gt;</em>.
					<span property="dc:description">The URI of the membership resource.</span>
				</li>
				<li property="td:input" resource="#TCIC2-I3-M-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;M URI&gt;</em>.
					<span property="dc:description">The URI of the membership property.</span>
				</li>
				<li property="td:input" resource="#TCIC2-I4-I-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;I URI&gt;</em>.
					<span property="dc:description">The URI of a property.</span>
				</li>
				<li property="td:input" resource="#TCIC2-I5-C-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;C URI&gt;</em>.
					<span property="dc:description">The URI of a contained RDF Source.</span>
				</li>
				<li property="td:input" resource="#TCIC2-I6-IC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;IC URI&gt;</em>.
					<span property="dc:description">The URI of a resource.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Indirect Container at &lt;LDP-IC URI&gt;.</li>
				<li property="td:precondition">The LDP Indirect Container contains an RDF Source at &lt;C URI&gt;.</li>
				<li property="td:precondition">The membership triple pattern used by the container is the one whose membership-constant-URI is the subject.</li>
				<li property="td:precondition">The membership resource of the LDP-IC is at &lt;R URI&gt;.</li>
				<li property="td:precondition">The membership predicate of the LDP-IC is &lt;M URI&gt;.</li>
				<li property="td:precondition">The inserted content relation of the LDP-IC is &lt;I URI&gt;.</li>
				<li property="td:precondition">The LDPC contains a triple whose property is ldp:insertedContentRelation and whose object is not ldp:MemberSubject.</li>
				<li property="td:precondition">ldp:hasMemberRelation is the predicate used in all container representations.</li>
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCIC2-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-IC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCIC2-I1-LDPC-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCIC2-RQ2-GET-R-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;R URI&gt;</div>
					<span property="tn:usesInput" resource="#TCIC2-I2-R-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCIC2-RQ3-GET-R-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;C URI&gt;</div>
					<span property="tn:usesInput" resource="#TCIC2-I5-C-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCIC2-O1-Response-1-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 1.</span>
					<span property="tn:fromStep" resource="#TCIC2-RQ1-GET-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCIC2-O2-Response-2-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 2 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 2.</span>
					<span property="tn:fromStep" resource="#TCIC2-RQ2-GET-R-URI"> </span>
				</li>
				<li property="td:output" resource="#TCIC2-O3-Response-2-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 3 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 3.</span>
					<span property="tn:fromStep" resource="#TCIC2-RQ3-GET-C-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCIC2-A1-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC2-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC2-A2-Response-1-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC2-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET indirect container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:IndirectContainer;rel="type"</li>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:membershipResource &lt;R URI&gt;</li>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:hasMemberRelation &lt;M URI&gt; and does not contain &lt;LDP-IC URI&gt; ldp:isMemberOfRelation &lt;M URI&gt;</li>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:insertedContentRelation &lt;I URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC2-A3-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC2-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">container contains resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:contains &lt;C URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC2-A4-Response-2-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC2-O2-Response-2-GET">
						Assert &lt;Response 2 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC2-A5-Response-2-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC2-O2-Response-2-GET">
						Assert &lt;Response 2 GET&gt; (<span property="dc:title">resource contains triple</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;R URI&gt; &lt;M URI&gt; &lt;C URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC2-A6-Response-3-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC2-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">GET contained resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC2-A7-Response-3-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC2-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">resource contains triple</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;C URI&gt; &lt;I URI&gt; &lt;IC URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-IC3: POST an LDP-RS on an LDP-IC -->
		
		
		<section resource="#TCIC3" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-IC3</span>.
					<span property="dc:title">POST an LDP-RS on an LDP-IC</span>
			</h3>
			<p property="dc:description">Tests making a POST request of an LDP-RS on an LDP Indirect Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.2.1 LDP servers MUST support the HTTP GET Method for LDPRs.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.1 If the resource was created successfully, LDP servers MUST respond with status code 201 (Created) and the Location header set to the new resource’s URL.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.2 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, a containment triple MUST be added to the state of LDPC.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.4 LDP servers that successfully create a resource from a RDF representation in the request entity body MUST honor the client's requested interaction model(s). [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.5 LDP servers MUST accept a request entity body with a request header of Content-Type with value of text/turtle [turtle].</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.3.7 In RDF representations, LDP servers MUST interpret the null relative URI for the subject of triples in the LDPR representation in the request entity body as referring to the entity in the request body.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.1 Each LDP Direct Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.3 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is the ldp:membershipResource, and whose object is the LDPC's membership-constant-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4 Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, and whose predicate is either ldp:hasMemberRelation or ldp:isMemberOfRelation.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.1 LDP Direct Containers whose membership triple pattern is ( membership-constant-URI , membership-predicate , member-derived-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is ldp:hasMemberRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.4.2 LDP Direct Containers whose membership triple pattern is ( member-derived-URI , membership-predicate , membership-constant-URI ) MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is either ldp:isMemberOfRelation, and whose object is the URI of membership-predicate.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.2.1 When a successful HTTP POST request to an LDPC results in the creation of an LDPR, the LDPC MUST update its membership triples to reflect that addition, and the resulting membership triple MUST be consistent with any LDP-defined predicates it exposes.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.5.1.1 Each LDP Indirect Container MUST also be a conforming LDP Direct Container [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.5.1.2 LDP Indirect Containers MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is ldp:insertedContentRelation, and whose object ICR describes how the member-derived-URI in the container's membership triples is chosen.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.5.2.1 LDPCs whose ldp:insertedContentRelation triple has an object other than ldp:MemberSubject and that create new resources MUST add a triple to the container whose subject is the container's URI, whose predicate is ldp:contains, and whose object is the newly created resource's URI (which will be different from the member-derived URI in this case). This ldp:contains triple can be the only link from the container to the newly created resource in certain cases.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCIC3-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-IC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-IC.</span>
				</li>
				<li property="td:input" resource="#TCIC3-I2-LDPRS-REP"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-RS representation&gt;</em>.
					<span property="dc:description">The representation of the LDP-RS to be created.</span>
				</li>
				<li property="td:input" resource="#TCIC3-I3-R-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;R URI&gt;</em>.
					<span property="dc:description">The URI of the membership resource.</span>
				</li>
				<li property="td:input" resource="#TCIC3-I4-M-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;M URI&gt;</em>.
					<span property="dc:description">The URI of the membership property.</span>
				</li>
				<li property="td:input" resource="#TCIC2-I5-I-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;I URI&gt;</em>.
					<span property="dc:description">The URI of a property.</span>
				</li>
				<li property="td:input" resource="#TCIC2-I6-IC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;IC URI&gt;</em>.
					<span property="dc:description">The URI of a resource.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Indirect Container at &lt;LDP-IC URI&gt;.</li>
				<li property="td:precondition">The LDP-IC at &lt;LDP-IC URI&gt; allows POSTS of LDP-RSs.</li>
				<li property="td:precondition">The LDP server does not desire to direct the user agent to retrieve a cacheable resource.</li>
				<li property="td:precondition">The membership triple pattern used by the container is the one whose membership-constant-URI is the subject.</li>
				<li property="td:precondition">The membership resource of the LDP-IC is at &lt;R URI&gt;.</li>
				<li property="td:precondition">The membership predicate of the LDP-IC is &lt;M URI&gt;.</li>
				<li property="td:precondition">The inserted content relation of the LDP-IC is &lt;I URI&gt;.</li>
				<li property="td:precondition">The LDPC contains a triple whose property is ldp:insertedContentRelation and whose object is not ldp:MemberSubject.</li>
				<li property="td:precondition">ldp:hasMemberRelation is the predicate used in all container representations.</li>
				<li property="td:precondition">&lt;LDP-RS representation&gt; is in text/turtle.</li>
				<li property="td:precondition">&lt;LDP-RS representation&gt; is a valid representation for a resource to be created in the LDP-IC.</li>
				<li property="td:precondition">&lt;LDP-RS representation&gt; uses null relative URI as the entity in the request body.</li>
				<li property="td:precondition">&lt;LDP-RS representation&gt; contains a triple with property &lt;I URI&gt;.</li>
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCIC3-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-IC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCIC3-I1-LDPC-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCIC3-RQ2-POST-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">POST &lt;LDP-IC URI&gt;</div>
					<ul>
						<li>[entity-header].Content-type = text/turtle</li>
						<li>[message-body] = &lt;LDP-RS representation&gt;</li>
					</ul>
					<span property="tn:usesInput" resource="#TCIC3-I1-LDPC-URI"> </span>
					<span property="tn:usesInput" resource="#TCIC3-I2-LDPRS-REP"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCIC3-RQ3-GET-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;LDP-IC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCIC3-I1-LDPC-URI"> </span>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCIC3-RQ4-GET-LOC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;Response 2 POST&gt;.[response-header].Location</div>
				</li>
				<li inlist="" property="tn:testProcess"	resource="#TCIC3-RQ5-GET-R-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">GET &lt;R URI&gt;</div>
					<span property="tn:usesInput" resource="#TCIC3-I3-R-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCIC3-O1-Response-1-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 1.</span>
					<span property="tn:fromStep" resource="#TCIC3-RQ1-GET-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCIC3-O2-Response-2-POST" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 2 POST&gt;</em>.
					<span property="dc:description">The response of	the POST request in step 2.</span>
					<span property="tn:fromStep" resource="#TCIC3-RQ2-POST-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCIC3-O3-Response-3-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 3 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 3.</span>
					<span property="tn:fromStep" resource="#TCIC3-RQ3-GET-LDPC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCIC3-O4-Response-4-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 4 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 4.</span>
					<span property="tn:fromStep" resource="#TCIC3-RQ4-GET-LOC-URI"> </span>
				</li>
				<li property="td:output" resource="#TCIC3-O5-Response-5-GET" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 5 GET&gt;</em>.
					<span property="dc:description">The response of	the GET request in step 5.</span>
					<span property="tn:fromStep" resource="#TCIC3-RQ5-GET-R-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCIC3-A1-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC3-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC3-A2-Response-1-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC3-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">GET indirect container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:IndirectContainer;rel="type"</li>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:membershipResource &lt;R URI&gt;</li>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:hasMemberRelation &lt;M URI&gt; and does not contain &lt;LDP-IC URI&gt; ldp:isMemberOfRelation &lt;M URI&gt;</li>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:insertedContentRelation &lt;I URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC3-A3-Response-1-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC3-O1-Response-1-GET">
						Assert &lt;Response 1 GET&gt; (<span property="dc:title">container does not contain resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] does not contain &lt;LDP-IC URI&gt; ldp:contains &lt;Response 2 POST&gt;.[response-header].Location</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC3-A4-Response-2-POST"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC3-O2-Response-2-POST">
						Assert &lt;Response 2 POST&gt; (<span property="dc:title">POST correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 201</li>
								<li>[response-header].Location exists</li>
								<li>[response-header].Link includes ldp:Resource, ldp:IndirectContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC3-A5-Response-3-GET"	typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC3-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">GET resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC3-A6-Response-3-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC3-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">GET indirect container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:IndirectContainer;rel="type"</li>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:membershipResource &lt;R URI&gt;</li>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:hasMemberRelation &lt;M URI&gt; and does not contain &lt;LDP-IC URI&gt; ldp:isMemberOfRelation &lt;M URI&gt;</li>
								<li>[message-body] contains &lt;LDP-IC URI&gt; ldp:insertedContentRelation &lt;I URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC3-A7-Response-3-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC3-O3-Response-3-GET">
						Assert &lt;Response 3 GET&gt; (<span property="dc:title">container contains new resource</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;LDP-IC&gt; ldp:contains &lt;Response 2 POST&gt;.[response-header].Location</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC3-A8-Response-4-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC3-O4-Response-4-GET">
						Assert &lt;Response 4 GET&gt; (<span property="dc:title">GET new resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC3-A9-Response-5-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC3-O5-Response-5-GET">
						Assert &lt;Response 5 GET&gt; (<span property="dc:title">GET membership resource correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC3-A10-Response-5-GET" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC3-O5-Response-5-GET">
						Assert &lt;Response 5 GET&gt; (<span property="dc:title">resource has triple</span>):
						<div property="dc:description">
							<ul>
								<li>[message-body] contains &lt;R URI&gt; &lt;M URI&gt; &lt;IC URI&gt;</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-IC4: HEAD on an LDP-IC -->
		
		
		<section resource="#TCIC4" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-IC4</span>.
					<span property="dc:title">HEAD on an LDP-IC</span>
			</h3>
			<p property="dc:description">Tests making a HEAD request on an LDP Indirect Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.6.1 LDP servers MUST support the HTTP HEAD method.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.1 Each LDP Direct Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.5.1.1 Each LDP Indirect Container MUST also be a conforming LDP Direct Container [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<p>
				<em><a target="_blank" href="http://tools.ietf.org/html/rfc2616"
					property="rdfs:seeAlso">Hypertext Transfer Protocol - HTTP/1.1</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">9.4 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.</span>
						<span property="rdfs:seeAlso" href="http://tools.ietf.org/html/rfc2616"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCIC4-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-IC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-IC.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Indirect Container at &lt;LDP-IC URI&gt;.</li>			
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCIC4-RQ1-HEAD-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">HEAD &lt;LDP-IC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCIC4-I1-LDPC-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCIC4-O1-Response-1-HEAD" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 HEAD&gt;</em>.
					<span property="dc:description">The response of	the HEAD request in step 1.</span>
					<span property="tn:fromStep" resource="#TCIC4-RQ1-HEAD-LDPC-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCIC4-A1-Response-1-HEAD" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC4-O1-Response-1-HEAD">
						Assert &lt;Response 1 HEAD&gt; (<span property="dc:title">HEAD correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
								<li>[message-body] not exists</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC4-A2-Response-1-HEAD" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC4-O1-Response-1-HEAD">
						Assert &lt;Response 1 HEAD&gt; (<span property="dc:title">HEAD container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:IndirectContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	
		
		<!-- TC-IC5: OPTIONS on an LDP-IC -->
		
		
		<section resource="#TCIC5" typeof="td:TestCase">
			<h3>
					<span property="rdfs:label">TC-IC5</span>.
					<span property="dc:title">OPTIONS on an LDP-IC</span>
			</h3>
			<p property="dc:description">Tests making a OPTIONS request on an LDP Indirect Container.</p>
			<p property="dc:contributor" resource="#FernandoSerena"	typeof="foaf:Person">
				<strong>Contributor: </strong> 
				<span property="rdfs:label">Fernando Serena</span>
			</p>
			<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus">
				<strong>Status: </strong>Unreviewed
			</p>
			<h4>Related specification</h4>
			<p>
				<em><a target="_blank" href="http://www.w3.org/TR/ldp/"
					property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:
			</p>
			<ul>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.3 LDP server responses MUST use entity tags (either weak or strong ones) as response ETag OPTIONSer values.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.1.4 LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link OPTIONSer with a target URI of http://www.w3.org/ns/ldp#Resource, and	a link relation type of type(that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.8.1 LDP servers MUST support the HTTP OPTIONS method.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.2.8.2 LDP servers MUST indicate their support for HTTP Methods by responding to a HTTP OPTIONS request on the LDPR’s URL with the HTTP Method tokens in the HTTP response header Allow.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">4.3.1.1 Each LDP RDF Source MUST also be a conforming LDP Resource in section 4.2 Resource	along the following restrictions in this section.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.1 Each Linked Data Platform Container MUST also be a conforming Linked Data Platform	RDF Source.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.2.1.4 LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link OPTIONSer with a target URI matching the type of container [...] the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP	Request-URI [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.4.1.1 Each LDP Direct Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions.</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
				<li property="td:specificationReference" typeof="tn:Excerpt">
					<div>
						<span property="tn:includesText">5.5.1.1 Each LDP Indirect Container MUST also be a conforming LDP Direct Container [...]</span>
						<span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span>
					</div>
				</li>
			</ul>
			<h4>Input</h4>
			<ul>
				<li property="td:input" resource="#TCIC5-I1-LDPC-URI"
					typeof="tn:TestInput"><em property="dc:title">&lt;LDP-IC URI&gt;</em>.
					<span property="dc:description">The URI of an LDP-IC.</span>
				</li>
			</ul>
			<h4>Preconditions</h4>
			<ul>
				<li property="td:precondition">The LDP server contains an LDP Indirect Container at &lt;LDP-IC URI&gt;.</li>			
			</ul>
			<h4>Process</h4>
			<ol>
				<li inlist="" property="tn:testProcess"	resource="#TCIC5-RQ1-OPTIONS-LDPC-URI" typeof="tn:Step ht:Request">
					<div property="dc:description">OPTIONS &lt;LDP-IC URI&gt;</div>
					<span property="tn:usesInput" resource="#TCIC5-I1-LDPC-URI"> </span>
				</li>
			</ol>
			<h4>Output</h4>
			<ul>
				<li property="td:output" resource="#TCIC5-O1-Response-1-OPTIONS" typeof="tn:TestOutput ht:Response">
					<em property="dc:title">&lt;Response 1 OPTIONS&gt;</em>.
					<span property="dc:description">The response of	the OPTIONS request in step 1.</span>
					<span property="tn:fromStep" resource="#TCIC5-RQ1-OPTIONS-LDPC-URI"> </span>
				</li>
			</ul>
			<h4>Assertions</h4>
			<ul>
				<li property="tn:testAssertion" resource="#TCIC5-A1-Response-1-OPTIONS" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC5-O1-Response-1-OPTIONS">
						Assert &lt;Response 1 OPTIONS&gt; (<span property="dc:title">OPTIONS correct</span>):
						<div property="dc:description">
							<ul>
								<li>[Status-Line].Status-Code = 2xx</li>
								<li>[response-header].ETag exists</li>
								<li>[response-header].Link includes ldp:Resource;rel="type"</li>
								<li>[entity-header].Allow exists</li>
							</ul>
						</div>
					</div>
				</li>
				<li property="tn:testAssertion" resource="#TCIC5-A2-Response-1-OPTIONS" typeof="tn:TestAssertion">
					<div property="tn:outputAsserted" resource="TCIC5-O1-Response-1-OPTIONS">
						Assert &lt;Response 1 OPTIONS&gt; (<span property="dc:title">OPTIONS container correct</span>):
						<div property="dc:description">
							<ul>
								<li>[response-header].Link includes ldp:IndirectContainer;rel="type"</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>
		</section>
	</section>
	
	
	</section>

	<section class="appendix">
	<h2>
		Change history
	</h2>
	<ul>
		<li>2014-04-09 Updated according to Last Call Working Draft from 11 March 2014 (FS and RGC)</li>
		<li>2013-08-27 Updated according to Last Call Working Draft from 30 July 2013 (RGC)</li>
		<li>2013-06-03 Updated to use ReSpec (RGC)</li>
		<li>2013-06-03 Implemented <a
			href="http://lists.w3.org/Archives/Public/public-ldp-wg/2013May/0153.html">changes
				suggested by Eric Prud'hommeaux</a> (RGC)
		</li>
	</ul>
	</section>

	<section class="appendix">
	<h2>
		Editor TODOs and notes
	</h2>
	<ul>
		<li>Define the type of document: Working Draft, Note, etc.</li>
		<li>Choose a URI for the test cases (this) document</li>
		<li>Choose a namespace for the new vocabulary terms and for the
			test cases</li>
		<li>Include the RDF description of the test suite</li>
	</ul>
	</section>
</body>
</html>
\ No newline at end of file
--- a/ldp-primer/ldp-primer.html	Wed Apr 16 09:47:23 2014 -0400
+++ b/ldp-primer/ldp-primer.html	Wed Apr 16 09:48:18 2014 -0400
@@ -1,11 +1,130 @@
-<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.1//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd">
<html 
  xmlns="http://www.w3.org/1999/xhtml"
prefix="td: http://www.w3.org/2006/03/test-description# tn: http://ldp.example.org/NewTestDefinitions# ht: http://www.w3.org/2011/http#">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Linked Data Platform 1.0 Primer</title>
    <style type="text/css">
      div.syntaxmenu {
        border: 1px dotted black;
        padding:0 0 0 0.5em;
        margin: 0em; 
      }
      div.code { 
        font-family: monospace;
        font-size: 110%;
      }
      th { 
        text-align: left;
      }
      td { 
        vertical-align: top;
        padding-right: 2em;
      }
      td.col1 { 
        width: 300px;
      }
    </style> 
	<script type="text/javascript">
	    var displayed = [];
		displayed["turtle"] = 1;
		displayed["jsonld"] = 0;
		function primerOnLoad() {
          setTimeout(function(){
  		    display('turtle', ''); set_display_by_id('hide-ts', ''); set_display_by_id('show-ts', 'none');
 		    display('jsonld', 'none'); set_display_by_id('hide-js', 'none'); set_display_by_id('show-js', '');
          },500)
		}
		function display(syntax,status) {
		  var howmany = 0;
		  if (status=='none') {
		    displayed[syntax] = 0; 
		  } else { 
		    displayed[syntax] = 1;
		  }
		  for ( i in displayed ) {
		       howmany = howmany + displayed[i];
		  }
		  set_display_by_class('div',syntax,status);
		  if ( howmany == 1 ) {
		      set_display_by_class('b','syntax-head','none');
		  } else {
		      set_display_by_class('b','syntax-head','');
		  }
		}
		function getElementsByClassName(oElm, strTagName, oClassNames){
			var arrElements = (! (! (strTagName == "*") || ! (oElm.all)))? oElm.all : oElm.getElementsByTagName(strTagName);
			var arrReturnElements = new Array();
			var arrRegExpClassNames = new Array();
			if(typeof oClassNames == "object"){
				for(var i=0; !(i>=oClassNames.length); i++){ /*>*/
					arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
				}
			}
			else{
				arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
			}
			var oElement;
			var bMatchesAll;
			for(var j=0; !(j>=arrElements.length); j++){ /*>*/
				oElement = arrElements[j];
				bMatchesAll = true;
				for(var k=0; !(k>=arrRegExpClassNames.length); k++){ /*>*/
					if(!arrRegExpClassNames[k].test(oElement.className)){
						bMatchesAll = false;
						break;
					}
				}
				if(bMatchesAll){
					arrReturnElements.push(oElement);
				}
			}
			return (arrReturnElements)
		}
		function set_display_by_class(el, cls, newValue) {
		   var e = getElementsByClassName(document, el, cls);
		   if (e != null) {
		      for (var i=0; !(i>=e.length); i++) {
		        e[i].style.display = newValue;
		      }
		   }
		}
		function set_display_by_id(id, newValue) {
		   var e = document.getElementById(id);
		   if (e != null) {
		     e.style.display = newValue;
		   }
		}
	</script>
    <script src='https://www.w3.org/Tools/respec/respec-w3c-common' class='remove' async></script>
    <script class='remove'>
      var respecConfig = {
          // specification status (e.g. WD, LCWD, NOTE, etc.). If in doubt use ED.
          specStatus:           "ED",
          
          // the specification's short name, as in http://www.w3.org/TR/short-name/
          shortName:            "ldp-primer",
          // TODO: Confirm short name

          // if your specification has a subtitle that goes below the main
          // formal title, define it here
          // subtitle   :  "an excellent document",

          // if you wish the publication date to be other than today, set this
          // publishDate:  "2009-08-06",

          // if the specification's copyright date is a range of years, specify
          // the start date here:
          // copyrightStart: "2005"

          // if there is a previously published draft, uncomment this and set its YYYY-MM-DD date
          // and its maturity status
          //previousPublishDate:  "2013-03-07",
          //previousMaturity:  	"FPWD",
          //previousURI: 			"http://www.w3.org/TR/2013/WD-ldp-20130307/",

          // if there a publicly available Editor's Draft, this is the link
          edDraftURI:           "http://www.w3.org/2012/ldp/hg/ldp-primer/ldp-primer.html",

          // if this is a LCWD, uncomment and set the end of its review period
          // lcEnd: "2009-08-05",

          // if you want to have extra CSS, append them to this list
          // it is recommended that the respec.css stylesheet be kept
          //extraCSS:             ["https://dvcs.w3.org/hg/ldpwg/css/respec.css"],

          // editors, add as many as you like
          // only "name" is required
          editors:  [
              { name: "Nandana Mihindukulasooriya", 
              	url: "http://mayor2.dia.fi.upm.es/oeg-upm/index.php/en/universitystaff/290-nandana",
                company: "Ontology Engineering Group, Universidad Politécnica de Madrid", 
                companyURL: "http://www.oeg-upm.net/"},
              { name: "Roger Menday", 
              	url: "#",
                company: "Fujitsu Laboratories of Europe Limited, London", 
                companyURL: "#" },
          ],

          // authors, add as many as you like. 
          // This is optional, uncomment if you have authors as well as editors.
          // only "name" is required. Same format as editors.

          //authors:  [
          //    { name: "Your Name", url: "http://example.org/",
          //      company: "Your Company", companyURL: "http://example.com/" },
          //],
          
          // name of the WG
          wg:           "Linked Data Platform Working Group",
          
          // URI of the public WG page
          wgURI:        "http://www.w3.org/2012/ldp",
          
          // name (without the @w3c.org) of the public mailing to which comments are due
          wgPublicList: "public-ldp-wg",
          
          // URI of the patent status for this WG, for Rec-track documents
          // !!!! IMPORTANT !!!!
          // This is important for Rec-track documents, do not copy a patent URI from a random
          // document unless you know what you're doing. If in doubt ask your friendly neighbourhood
          // Team Contact.
          wgPatentURI:  "http://www.w3.org/2004/01/pp-impl/55082/status",
          doRDFa: "1.1",
          localBiblio:  {
		    "LDP-BP": {
			        title:    "LDP Best Practices and Guidelines",
			        href:     "https://dvcs.w3.org/hg/ldpwg/raw-file/tip/ldp-bp/ldp-bp.html",
			        authors:  [
			            "Cody Burleson",
			            "Nandana Mihindukulasooriya"
			        ],
			        status:   "WD",
			        deliveredBy: [
                        "http://www.w3.org/2012/ldp/"
                    ],
			        publisher:  "W3C"
		    },
		    "LDP-TESTS": {
			        title:    "Linked Data Platform 1.0 Test Cases",
			        href:     "https://dvcs.w3.org/hg/ldpwg/raw-file/tip/Test%20Cases/LDP%20Test%20Cases.html",
			        authors:  [
                         "Raúl García-Castro"
			        ],
			        status:   "WD",
			        deliveredBy: [
                        "http://www.w3.org/2012/ldp/"
                    ],
			        publisher:  "W3C"
		    }
          }
      };
	// Replaces HTML characters (brackets and quotes) with legal HTML representations
	// The following example would include a code example from another file and then 
	// call this function to make the included code renderable in a browser.
	//
	// <pre class='example' data-include='include-rdf-type.ttl' data-oninclude='fixCode'></pre>

	function fixCode(r, content) {
		var result = content;
		result = result.replace(/</g, "&lt;").replace(/>/g, "&gt;");
		result = result.replace(/'/g, "&apos;").replace(/"/g, "&quot;");
		var ss = result.split('---')
		var s1 = "<div class='turtle' style='font-family: sans-serif;'>Turtle:</div><div class='turtle'><pre>"+ss[0]+"</pre></div>";
		var s2 = "<div class='jsonld' style='font-family: sans-serif;'>JSON-LD:</div><div class='jsonld'><pre>"+ss[1]+"</pre></div>";
		return s1+s2;
	}

	function highlight(r, content) {
		return '<span style="background-color:#ccffcc">' + content + '</span>';
	}
    </script>
  </head>
  <body onLoad="primerOnLoad()">
    
    <section id='abstract'>
      This primer provides an introduction to Linked Data Platform (LDP), including the basic concepts 
      of LDP including Linked Data Platform Resource (LDPR) and Linked Data Platform Container (LDPC) 
      and their affordances, and a running example showing how an LDP client can interact with a LDP server 
      in the context of read-write Linked Data application i.e. how to HTTP for accessing, updating, 
      creating and deleting resources from servers that expose their resources as Linked Data.
    </section>
    
    <section id='sotd'>
    <p>
        This is the first draft of LDP Primer Note of W3C LDP WG.
    </p>
    </section>

    <section id="intro-section">
	<h1 id="intro">Introduction</h1>

	 <p>Linked Data is a universal approach for handling data which fundamentally includes the notion linking between data items. 
    	Much like the Web is giant network of interlinked documents for a human reader, the graph of Linked Data in the Web is a 
    	data layer on top of which applications are delivered, information is modified, processed, visualized and shared.
    </p>
    <p> Linked Data Platform specification discusses standard HTTP and RDF techniques and best practices that you should use, and 
    	anti-patterns you should avoid, when constructing clients and servers that read and write Linked Data resources. 
    </p>

	<p>The Primer aims to provide introductory examples and guidance in the use of the LDP protocol. For a systematic account the 
	reader should consult the normative LDP reference [[LDP]]. For an overview of the use cases for LDP and the elicited requirements 
	that guided its design, the reader should consult the LDP Use Cases and Requirements [[LDP-UCR]] and for best practises and guidelines, 
	the reader should consult the LDP LDP Best Practices and Guidelines document [[LDP-BP]]. </p>
    	
    <b id="conventions">Conventions Used in This Document</b>

    <p>The examples in this guide are given as a serialization of RDF graphs using the Turtle [[TURTLE]] and JSON-LD [[JSON-LD]] syntaxes of RDF.</p>

	<div class="syntaxmenu">
	<p>The buttons below can be used to show or hide the available syntaxes.</p>
	<form><p>
      <input id="hide-ts" onclick="display('turtle', 'none'); set_display_by_id('hide-ts', 'none'); set_display_by_id('show-ts', ''); return false;" type="button" value="Hide Turtle Syntax" />
      <input id="show-ts" onclick="display('turtle', ''); set_display_by_id('hide-ts', ''); set_display_by_id('show-ts', 'none'); return false;" style="display:none" type="button" value="Show Turtle Syntax" />
      <input id="hide-js" onclick="display('jsonld','none'); set_display_by_id('hide-js', 'none'); set_display_by_id('show-js', ''); return false;" type="button" value="Hide JSON-LD Syntax" />
      <input id="show-js" onclick="display('jsonld',''); set_display_by_id('hide-js', ''); set_display_by_id('show-js', 'none'); return false;" style="display:none" type="button" value="Show JSON-lD Syntax" />
	</p>
    </form>
	</div>

	<p>Commonly used namespace prefixes omitted from the Turtle serialisations:</p>
	<pre style="word-wrap: break-word; white-space: pre-wrap;">	
	@prefix rdf:     &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt; .
	@prefix rdfs:    &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
	@prefix owl:     &lt;http://www.w3.org/2002/07/owl#&gt; .
	@prefix ldp:     &lt;http://www.w3.org/ns/ldp#&gt; .
	@prefix xsd:     &lt;http://www.w3.org/2001/XMLSchema#&gt; .
	@prefix dcterms: &lt;http://purl.org/dc/terms/&gt; .
	@prefix foaf: 	 &lt;http://xmlns.com/foaf/0.1/&gt; .
	@prefix wdrs:    &lt;http://www.w3.org/2007/05/powder-s#&gt; . 
	@prefix bt:      &lt;http://example.org/vocab/bugtracker#&gt; . </pre>

	<p>The JSON-LD examples refer to the following (external) context document:</p>
	<pre style="word-wrap: break-word; white-space: pre-wrap;">	
      { 
       "@context":
       {
         "rdf":     "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
         "rdfs":    "http://www.w3.org/2000/01/rdf-schema#",
         "owl":     "http://www.w3.org/2002/07/owl#",
         "ldp":     "http://www.w3.org/ns/ldp#",
         "xsd":     "http://www.w3.org/2001/XMLSchema#",
         "dcterms": "http://purl.org/dc/terms/",
         "foaf":    "http://xmlns.com/foaf/0.1/",
         "wdrs":    "http://www.w3.org/2007/05/powder-s#",
         "bt":      "http://example.org/vocab/bugtracker#"
       }	
      }
	</pre>
    <p>
    
    </p>

    <h2>LDP concepts in a glance</h2>

    <p> The LDP consists of two main building blocks: Linked Data Platform Resource (LDPR) and 
        Linked Data Platform Container (LDPC).
    </p>
    
    <ul>
        <li>A Linked Data Platform Resource (LDPR) is any HTTP resource whose state is represented 
        in any way that conforms to the simple lifecycle patterns and conventions in defined in LDP Specification.</li>
        <li>A Linked Data Platform Container (LDPC) is a specialization of a LDPR representing a collection of links to LDPRs
        or information resources [[WEBARCH]] that responds to client requests for creation, modification, and/or enumeration of 
        its linked members and documents.</li>
    </ul>    
    
   <p> A server hosting LDPRs may manage two kinds of LDPRs, those resources who whose state is represented using RDF which are called LDP-RDF Sources (LDP-RS) and 
   those using other formats which are called LDP-NonRDF Sources (LDP-NR) such as html files, images, other binary files,  etc. </p>
   
   <p> A FOAF document file of a person that could be a good example of an LDP-RDF Source. When creating LDP-RSs, it is recommended that they reuse 
   existing vocabularies instead of inventing their own duplicate vocabulary terms. It is also recommended that LDP-RSs have at least one rdf:type set explicitly to 
   make the representations more useful to client applications that don’t support inferencing. For example, a FOAF file of a person as shown in Example 1 can be a LDP-RSs
   if it conforms to lifecycle patterns and conventions in defined in LDP Specification. Following the LDP Best Practices and Guidelines [[LDP-BP]], it uses terms from Dublin Core 
   [[DC-TERMS]], Friend of a Friend [[FOAF]] vocabularies.
    </p>

    <table>
		<tr>
			<td class="col1"><img src="nandana_foaf.png" /></td>
			<td>
		<pre title="An example LDPR" class='example' data-include='ldpr_ex.txt' data-oninclude='fixCode'></pre>
			</td>
		</tr>
	</table>

    <p> An avatar image of a person hosted in the same LDP server could be an example of an LDP-NR.  These non-RDF resources also conform to the lifecycle patterns and 
    conventions defined in the LDP specification that are applicable to all LDPRs including non-RDF LDPRs such as  they must have an Etags, and must support HEAD, OPTIONS 
    operations.
    
 
	<p> Linked Data Platform Container (LDPC) is a specialization of an LDPR. An LDPC is a collection of same-subject, same-predicate triples which is uniquely identified by 
-	a URI that responds to client requests for creation, modification, and enumeration of its members. For example, may be a person wants to keep information about her friends 
-	organized as a collection of documents about those friends. This collection acts as an enumeration of links to existing documents that contain information about her friends 
-	and also can be used to create documents about new friends when necessary. Example 2 shows an example of an LDP Container.
	</p>

	<table>
		<tr>
			<td class="col1"><img src="nandana_friends.png" /></td>
			<td>
<pre title="An example LDPC" class='example' data-include='ldpc_ex.txt'	data-oninclude='fixCode'></pre>
			</td>
		</tr>
		<tr>
			<td class="col1"><img src="roger.png" /></td>
			<td>
<pre title="A member resource of LDPC in Example 2"	class='example' data-include='ldpc_ex_m.txt' data-oninclude='fixCode'></pre>				
			</td>
		</tr>
	</table>
+<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.1//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd">
<html 
  xmlns="http://www.w3.org/1999/xhtml"
prefix="td: http://www.w3.org/2006/03/test-description# tn: http://ldp.example.org/NewTestDefinitions# ht: http://www.w3.org/2011/http#">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Linked Data Platform 1.0 Primer</title>
    <style type="text/css">
      div.syntaxmenu {
        border: 1px dotted black;
        padding:0 0 0 0.5em;
        margin: 0em; 
      }
      div.code { 
        font-family: monospace;
        font-size: 110%;
      }
      th { 
        text-align: left;
      }
      td { 
        vertical-align: top;
        padding-right: 2em;
      }
      td.col1 { 
        width: 300px;
      }
    </style> 
	<script type="text/javascript">
	    var displayed = [];
		displayed["turtle"] = 1;
		displayed["jsonld"] = 0;
		function primerOnLoad() {
          setTimeout(function(){
  		    display('turtle', ''); set_display_by_id('hide-ts', ''); set_display_by_id('show-ts', 'none');
 		    display('jsonld', 'none'); set_display_by_id('hide-js', 'none'); set_display_by_id('show-js', '');
          },500)
		}
		function display(syntax,status) {
		  var howmany = 0;
		  if (status=='none') {
		    displayed[syntax] = 0; 
		  } else { 
		    displayed[syntax] = 1;
		  }
		  for ( i in displayed ) {
		       howmany = howmany + displayed[i];
		  }
		  set_display_by_class('div',syntax,status);
		  if ( howmany == 1 ) {
		      set_display_by_class('b','syntax-head','none');
		  } else {
		      set_display_by_class('b','syntax-head','');
		  }
		}
		function getElementsByClassName(oElm, strTagName, oClassNames){
			var arrElements = (! (! (strTagName == "*") || ! (oElm.all)))? oElm.all : oElm.getElementsByTagName(strTagName);
			var arrReturnElements = new Array();
			var arrRegExpClassNames = new Array();
			if(typeof oClassNames == "object"){
				for(var i=0; !(i>=oClassNames.length); i++){ /*>*/
					arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
				}
			}
			else{
				arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
			}
			var oElement;
			var bMatchesAll;
			for(var j=0; !(j>=arrElements.length); j++){ /*>*/
				oElement = arrElements[j];
				bMatchesAll = true;
				for(var k=0; !(k>=arrRegExpClassNames.length); k++){ /*>*/
					if(!arrRegExpClassNames[k].test(oElement.className)){
						bMatchesAll = false;
						break;
					}
				}
				if(bMatchesAll){
					arrReturnElements.push(oElement);
				}
			}
			return (arrReturnElements)
		}
		function set_display_by_class(el, cls, newValue) {
		   var e = getElementsByClassName(document, el, cls);
		   if (e != null) {
		      for (var i=0; !(i>=e.length); i++) {
		        e[i].style.display = newValue;
		      }
		   }
		}
		function set_display_by_id(id, newValue) {
		   var e = document.getElementById(id);
		   if (e != null) {
		     e.style.display = newValue;
		   }
		}
	</script>
    <script src='https://www.w3.org/Tools/respec/respec-w3c-common' class='remove' async></script>
    <script class='remove'>
      var respecConfig = {
          // specification status (e.g. WD, LCWD, NOTE, etc.). If in doubt use ED.
          specStatus:           "ED",
          
          // the specification's short name, as in http://www.w3.org/TR/short-name/
          shortName:            "ldp-primer",
          // TODO: Confirm short name

          // if your specification has a subtitle that goes below the main
          // formal title, define it here
          // subtitle   :  "an excellent document",

          // if you wish the publication date to be other than today, set this
          // publishDate:  "2009-08-06",

          // if the specification's copyright date is a range of years, specify
          // the start date here:
          // copyrightStart: "2005"

          // if there is a previously published draft, uncomment this and set its YYYY-MM-DD date
          // and its maturity status
          //previousPublishDate:  "2013-03-07",
          //previousMaturity:  	"FPWD",
          //previousURI: 			"http://www.w3.org/TR/2013/WD-ldp-20130307/",

          // if there a publicly available Editor's Draft, this is the link
          edDraftURI:           "http://www.w3.org/2012/ldp/hg/ldp-primer/ldp-primer.html",

          // if this is a LCWD, uncomment and set the end of its review period
          // lcEnd: "2009-08-05",

          // if you want to have extra CSS, append them to this list
          // it is recommended that the respec.css stylesheet be kept
          //extraCSS:             ["https://dvcs.w3.org/hg/ldpwg/css/respec.css"],

          // editors, add as many as you like
          // only "name" is required
          editors:  [
              { name: "Nandana Mihindukulasooriya", 
              	url: "http://mayor2.dia.fi.upm.es/oeg-upm/index.php/en/universitystaff/290-nandana",
                company: "Ontology Engineering Group, Universidad Politécnica de Madrid", 
                companyURL: "http://www.oeg-upm.net/"},
              { name: "Roger Menday", 
              	url: "#",
                company: "Fujitsu Laboratories of Europe Limited, London", 
                companyURL: "#" },
          ],

          // authors, add as many as you like. 
          // This is optional, uncomment if you have authors as well as editors.
          // only "name" is required. Same format as editors.

          //authors:  [
          //    { name: "Your Name", url: "http://example.org/",
          //      company: "Your Company", companyURL: "http://example.com/" },
          //],
          
          // name of the WG
          wg:           "Linked Data Platform Working Group",
          
          // URI of the public WG page
          wgURI:        "http://www.w3.org/2012/ldp",
          
          // name (without the @w3c.org) of the public mailing to which comments are due
          wgPublicList: "public-ldp-wg",
          
          // URI of the patent status for this WG, for Rec-track documents
          // !!!! IMPORTANT !!!!
          // This is important for Rec-track documents, do not copy a patent URI from a random
          // document unless you know what you're doing. If in doubt ask your friendly neighbourhood
          // Team Contact.
          wgPatentURI:  "http://www.w3.org/2004/01/pp-impl/55082/status",
          doRDFa: "1.1",
          localBiblio:  {
		    "LDP-BP": {
			        title:    "LDP Best Practices and Guidelines",
			        href:     "https://dvcs.w3.org/hg/ldpwg/raw-file/tip/ldp-bp/ldp-bp.html",
			        authors:  [
			            "Cody Burleson",
			            "Nandana Mihindukulasooriya"
			        ],
			        status:   "WD",
			        deliveredBy: [
                        "http://www.w3.org/2012/ldp/"
                    ],
			        publisher:  "W3C"
		    },
		    "LDP-TESTS": {
			        title:    "Linked Data Platform 1.0 Test Cases",
			        href:     "https://dvcs.w3.org/hg/ldpwg/raw-file/tip/Test%20Cases/LDP%20Test%20Cases.html",
			        authors:  [
                         "Raúl García-Castro"
			        ],
			        status:   "WD",
			        deliveredBy: [
                        "http://www.w3.org/2012/ldp/"
                    ],
			        publisher:  "W3C"
		    }
          }
      };
	// Replaces HTML characters (brackets and quotes) with legal HTML representations
	// The following example would include a code example from another file and then 
	// call this function to make the included code renderable in a browser.
	//
	// <pre class='example' data-include='include-rdf-type.ttl' data-oninclude='fixCode'></pre>

	function fixCode(r, content) {
		var result = content;
		result = result.replace(/</g, "&lt;").replace(/>/g, "&gt;");
		result = result.replace(/'/g, "&apos;").replace(/"/g, "&quot;");
		var ss = result.split('---')
		var s1 = "<div class='turtle' style='font-family: sans-serif;'>Turtle:</div><div class='turtle'><pre>"+ss[0]+"</pre></div>";
		var s2 = "<div class='jsonld' style='font-family: sans-serif;'>JSON-LD:</div><div class='jsonld'><pre>"+ss[1]+"</pre></div>";
		return s1+s2;
	}

	function highlight(r, content) {
		return '<span style="background-color:#ccffcc">' + content + '</span>';
	}
    </script>
  </head>
  <body onLoad="primerOnLoad()">
    
    <section id='abstract'>
      This primer provides an introduction to Linked Data Platform (LDP), including the basic concepts 
      of LDP including Linked Data Platform Resource (LDPR) and Linked Data Platform Container (LDPC) 
      and their affordances, and a running example showing how an LDP client can interact with a LDP server 
      in the context of read-write Linked Data application i.e. how to HTTP for accessing, updating, 
      creating and deleting resources from servers that expose their resources as Linked Data.
    </section>
    
    <section id='sotd'>
    <p>
        This is the first draft of LDP Primer Note of W3C LDP WG.
    </p>
    </section>

    <section id="intro-section">
	<h1 id="intro">Introduction</h1>

	 <p>Linked Data is a universal approach for handling data which fundamentally includes the notion linking between data items. 
    	Much like the Web is giant network of interlinked documents for a human reader, the graph of Linked Data in the Web is a 
    	data layer on top of which applications are delivered, information is modified, processed, visualized and shared.
    </p>
    <p> Linked Data Platform specification discusses standard HTTP and RDF techniques and best practices that you should use, and 
    	anti-patterns you should avoid, when constructing clients and servers that read and write Linked Data resources. 
    </p>

	<p>The Primer aims to provide introductory examples and guidance in the use of the LDP protocol. For a systematic account the 
	reader should consult the normative LDP reference [[LDP]]. For an overview of the use cases for LDP and the elicited requirements 
	that guided its design, the reader should consult the LDP Use Cases and Requirements [[LDP-UCR]] and for best practises and guidelines, 
	the reader should consult the LDP LDP Best Practices and Guidelines document [[LDP-BP]]. </p>
    	
    <b id="conventions">Conventions Used in This Document</b>

    <p>The examples in this guide are given as a serialization of RDF graphs using the Turtle [[TURTLE]] and JSON-LD [[JSON-LD]] syntaxes of RDF.</p>

	<div class="syntaxmenu">
	<p>The buttons below can be used to show or hide the available syntaxes.</p>
	<form><p>
      <input id="hide-ts" onclick="display('turtle', 'none'); set_display_by_id('hide-ts', 'none'); set_display_by_id('show-ts', ''); return false;" type="button" value="Hide Turtle Syntax" />
      <input id="show-ts" onclick="display('turtle', ''); set_display_by_id('hide-ts', ''); set_display_by_id('show-ts', 'none'); return false;" style="display:none" type="button" value="Show Turtle Syntax" />
      <input id="hide-js" onclick="display('jsonld','none'); set_display_by_id('hide-js', 'none'); set_display_by_id('show-js', ''); return false;" type="button" value="Hide JSON-LD Syntax" />
      <input id="show-js" onclick="display('jsonld',''); set_display_by_id('hide-js', ''); set_display_by_id('show-js', 'none'); return false;" style="display:none" type="button" value="Show JSON-lD Syntax" />
	</p>
    </form>
	</div>

	<p>Commonly used namespace prefixes omitted from the Turtle serialisations:</p>
	<pre style="word-wrap: break-word; white-space: pre-wrap;">	
	@prefix rdf:     &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt; .
	@prefix rdfs:    &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
	@prefix owl:     &lt;http://www.w3.org/2002/07/owl#&gt; .
	@prefix ldp:     &lt;http://www.w3.org/ns/ldp#&gt; .
	@prefix xsd:     &lt;http://www.w3.org/2001/XMLSchema#&gt; .
	@prefix dcterms: &lt;http://purl.org/dc/terms/&gt; .
	@prefix foaf: 	 &lt;http://xmlns.com/foaf/0.1/&gt; .
	@prefix wdrs:    &lt;http://www.w3.org/2007/05/powder-s#&gt; . 
	@prefix bt:      &lt;http://example.org/vocab/bugtracker#&gt; . </pre>

	<p>The JSON-LD examples refer to the following (external) context document:</p>
	<pre style="word-wrap: break-word; white-space: pre-wrap;">	
      { 
       "@context":
       {
         "rdf":     "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
         "rdfs":    "http://www.w3.org/2000/01/rdf-schema#",
         "owl":     "http://www.w3.org/2002/07/owl#",
         "ldp":     "http://www.w3.org/ns/ldp#",
         "xsd":     "http://www.w3.org/2001/XMLSchema#",
         "dcterms": "http://purl.org/dc/terms/",
         "foaf":    "http://xmlns.com/foaf/0.1/",
         "wdrs":    "http://www.w3.org/2007/05/powder-s#",
         "bt":      "http://example.org/vocab/bugtracker#"
       }	
      }
	</pre>
    <p>
    
    </p>

    <h2>LDP concepts in a glance</h2>

    <p> The LDP consists of two main building blocks: Linked Data Platform Resource (LDPR) and 
        Linked Data Platform Container (LDPC).
    </p>
    
    <ul>
        <li>A Linked Data Platform Resource (LDPR) is any HTTP resource whose state is represented 
        in any way that conforms to the simple lifecycle patterns and conventions in defined in LDP Specification.</li>
        <li>A Linked Data Platform Container (LDPC) is a specialization of a LDPR representing a collection of links to LDPRs
        or information resources [[WEBARCH]] that responds to client requests for creation, modification, and/or enumeration of 
        its linked members and documents.</li>
    </ul>    
+    
+   <p class="note"> Formal definitions of two terms LDPR and LDPC and other concepts introduced by LDP can be found in the 'Terminology' section of the 
+   Linked Data Platform 1.0 specification [[LDP]] </p>
    
   <p> A server hosting LDPRs may manage two kinds of LDPRs, those resources who whose state is represented using RDF which are called LDP-RDF Sources (LDP-RS) and 
   those using other formats which are called LDP-NonRDF Sources (LDP-NR) such as html files, images, other binary files,  etc. </p>
   
   <p> A FOAF document file of a person that could be a good example of an LDP-RDF Source. When creating LDP-RSs, it is recommended that they reuse 
   existing vocabularies instead of inventing their own duplicate vocabulary terms. It is also recommended that LDP-RSs have at least one rdf:type set explicitly to 
   make the representations more useful to client applications that don’t support inferencing. For example, a FOAF file of a person as shown in Example 1 can be a LDP-RSs
   if it conforms to lifecycle patterns and conventions in defined in LDP Specification. Following the LDP Best Practices and Guidelines [[LDP-BP]], it uses terms from Dublin Core 
   [[DC-TERMS]], Friend of a Friend [[FOAF]] vocabularies.
    </p>

    <table>
		<tr>
			<td class="col1"><img src="nandana_foaf.png" /></td>
			<td>
		<pre title="An example LDPR" class='example' data-include='ldpr_ex.txt' data-oninclude='fixCode'></pre>
			</td>
		</tr>
	</table>

    <p> An avatar image of a person hosted in the same LDP server could be an example of an LDP-NR.  These non-RDF resources also conform to the lifecycle patterns and 
    conventions defined in the LDP specification that are applicable to all LDPRs including non-RDF LDPRs such as  they must have an Etags, and must support HEAD, OPTIONS 
    operations.
    
 
	<p> Linked Data Platform Container (LDPC) is a specialization of an LDPR. An LDPC is a collection of same-subject, same-predicate triples which is uniquely identified by 
+   a URI that responds to client requests for creation, modification, and enumeration of its members. For example, may be a person wants to keep information about her friends 
+   organized as a collection of documents about those friends. This collection acts as an enumeration of links to existing documents that contain information about her friends 
+   and also can be used to create documents about new friends when necessary. Example 2 shows an example of an LDP Container.
	</p>

	<table>
		<tr>
			<td class="col1"><img src="nandana_friends.png" /></td>
			<td>
<pre title="An example LDPC" class='example' data-include='ldpc_ex.txt'	data-oninclude='fixCode'></pre>
			</td>
		</tr>
		<tr>
			<td class="col1"><img src="roger.png" /></td>
			<td>
<pre title="A member resource of LDPC in Example 2"	class='example' data-include='ldpc_ex_m.txt' data-oninclude='fixCode'></pre>				
			</td>
		</tr>
	</table>
 
    <p>
    There are three different types of LDP Containers defined in the LDP specification: Basic Containers, Direct Containers, and Indirect Containers. Example 2 shows the 
    most simplest type that is LDP Basic Container. The other types of containers will be explained later in the primer.
    </p>	
-	
	<p>	
		Elements of the collection of which are denoted by ldp:contains predicate shows the information documents contained by the LDP Container. These elements does not have to 
-		be LDPRs. Any HTTP resource can be contained in an LDPC. For example,
	</p>
    

	<table>
		<tr>
			<td class="col1"><img src="photos.png" /></td>
			<td>
    <pre title="An example LDPC with non-LDPRs" class='example' data-include='ldpc_ex_non_ldpr.txt' data-oninclude='fixCode'></pre>	
			</td>
		</tr>
	</table>
 	
	<p>
		Use cases that motivated LDP specification varies from just publishing a dataset as Linked Data with advanced features as pagination, 
		providing read/write access to using Linked Data for application integration. The Linked Data Platform Use Cases and Requirements document provides 
		a more detailed information on the use cases that motivated the LDP specification. 
	</p>									
    <p>There will be several categories of systems implementing the LDP specification. Two main categories of the LDP servers include:</p>
    <dl class="glossary">
	<dt>Generic / vanilla LDP servers</dt>
	<dd>RDF storage systems that allow interacting with their resources by means of the LDP specification. These servers do not impose any restriction on LDPRs.</dd>
    <dt>Application specific LDP severs </dt>
    <dd>Systems exposing their data using the LDP specification. These systems impose restrictions on LDPRs since they have an underlying business logic and data model.</dd>
    </dl>

    </section>

	<section id="bugtracker">
    <h1>Bug Tracker Example</h1>
    
	<p>
    This section provides a set of examples to show the Linked Data Platform interactions. Note, this is a primer and should 
    not be considered as a canonical example of ideal LDP modeling.
    The examples in this section will revolve around a very simple Bug Tracker application. Bug Tracker application records 
    the bugs of several products allowing reporting, updating and deleting bugs and products. We can re-use simple domain vocabulary, 
    e.g. has_bug or related, to express our data. LDP provides the additional interaction capability in the protocol to perform dynamic 
    evolution of knowledge representation.
	</p>
	
	<p>RESTful APIs are often documented by through listing valid operations operating on URLs described as templates. A RESTful API for a simple Bug Tracker system might be described as follows:</p>
	
	<table class="simple">
		<thead>
			<th>Path</th>
			<th>Method</th>
			<th>Description</th>
		</thead>
		<tbody>
			<!--tr>
				<td rowspan="5">/app/</td>
				<td>GET</td>
				<td>Lists all the product descriptions.</td>		
			</tr>
			<tr>
				<td>POST</td>
				<td>Create a new product description.</td>		
			</tr>
			<tr>
				<td>PUT</td>
				<td>Update the app description and/or list of product descriptions</td>		
			</tr>
			<tr>
				<td>PATCH</td>
				<td>Update the app description and/or list of product descriptions</td>		
			</tr>
			<tr>
				<td>DELETE</td>
				<td>Not allowed.</td>		
			</tr-->
			<tr>
				<td  class="col1" rowspan="5"><div class='code'>/app/{product-id}/</div></td>
				<td>GET</td>
				<td>Lists the bug reports associated with a product.</td>		
			</tr>
			<tr>
				<td>POST</td>
				<td>Create a new bug report associated with a product.</td>		
			</tr>
			<tr>
				<td>PUT</td>
				<td>Update the project description.</td>		
			</tr>
			<tr>
				<td>PATCH</td>
				<td>Not supported.</td>		
			</tr>
			<tr>
				<td>DELETE</td>
				<td>Delete the project description and associated bug reports.</td>		
			</tr>
			<tr>
				<td rowspan="5"><div class='code'>/app/{product-id}/{bug-id}</div></td>
				<td>GET</td>
				<td>Gets the bug report.</td>		
			</tr>
			<tr>
				<td>POST</td>
				<td>Not supported.</td>		
			</tr>
			<tr>
				<td>PUT</td>
				<td>Update the bug report.</td>		
			</tr>
			<tr>
				<td>PATCH</td>
				<td>Not supported.</td>		
			</tr>
			<tr>
				<td>DELETE</td>
				<td>Delete the bug report.</td>		
			</tr>
			<tr>
				<td rowspan="2"><div class='code'>/*/*</div></td>
				<td>OPTIONS</td>
				<td>Discover the allowed operations over a resource</td>		
			</tr>
			<tr>
				<td>HEAD</td>
				<td>Only retrieve metainformation about a resource</td>		
			</tr>
		</tbody>
	</table>
	
    <p class="note">Do we want to say something about suggested, user-friendly URIs ? </p>

	<section id="navandret">
	<h2>Navigation and Retreival</h2>
	
	<b>Lookup a Product (LDPC?)</b>
	<p> One of the main use cases of the example bug tracker is to list of the bugs of a given product. Assuming 
		that a user got a URL of a product by out of band means, one can look it up to get more information including 
		the bugs associated with it.</p>
	
	<table>
		<tr>
			<td class="col1"><img src="product_lookup.png" /></td>
			<td>
				<p>To get the description of the product, a client can do a GET request on the URI of the known product resource. LDPR 
					servers should provide text/turtle representations of the requested LDPRs and may provide RDF format representations
					using standard HTTP content negotiation.   </p>
				<pre class="example" title="Product lookup request"
				data-include='product_lookup_req.txt' data-oninclude='fixCode'></pre>
				<p>If the product resource is available, the server responds with the representation of the resource using the requested media type,
					<code>text/turtle</code> in this case.</p>
                    <pre title="HTTP response for product lookup" class='example' data-include='product_lookup_resp.txt' data-oninclude='fixCode'></pre>				
			</td>
		</tr>
	</table>
	<p>
	The project description resource contains both information about the project such as the title and the information about members of the product LDPC
	i.e. the bugs associated with the product.		
		
	</p>
	
	<p>Looking up a bug is similar to looking up a product. </p>
	
	<table>
		<tr>
			<td class="col1"><img src="bug_lookup.png" /></td>
			<td>
				<p>Based on links in the representation of the Product, the client uses GET to navigate to a known Bug resource.</p>
				<pre class="example" title="Bug lookup request" 
					data-include='bug_look_up_req.txt' data-oninclude='fixCode'></pre>
				<p>The server responds with the representation of the bug.</p>
                                <pre title="Bug lookup response"
					class='example' data-include='bug_look_up_resp.txt'
					data-oninclude='fixCode'></pre>			
			</td>
		</tr>
	</table>
	</section>
		
	<section>
	<h3 id="BugCreate">Creation</h3>
	<p>Continuing from the previous example, we can report a Bug against 'product1' by creating a Bug LDPR under the 'Product' LDPC.
The client POSTs a representation of a Bug to the Bug Tracker LDPC. </p>
	
	<table>
		<tr>
			<td class="col1"><img src="bug_create.png" /></td>
			<td>
				<p>The client POSTs a representation of a Bug to the Bug Tracker LDPC.</p>
                <pre title="A request for creating a bug"
					class='example' data-include='bug_create_req.txt'
					data-oninclude='fixCode'></pre>	
				<p>If the create is successful, the server responds with location of the newly created resource.</p>
                <pre title="A response of creating new a bug"
					class='example' data-oninclude='fixCode'>
HTTP/1.1 201 Created
Location: /app/product1/67
Content-Length: 0 					
					</pre>				
			</td>
		</tr>
		<tr>
			<td class="col1"><img src="product_postcreate.png" /></td>
			<td>
				<p>If the creation fails, the server will respond with an appropriate status code depending on the error. 
					After the resource is creation, the Product A LDPC will have the following representation.</p>
				<pre title="The state of the product LDPC after the bug creation"
					class='example' data-include='bug_create_s1.txt'
					data-oninclude='fixCode'></pre>
			</td>
		</tr>
		<tr>
			<td class="col1"><img src="bug67.png" /></td>
			<td>
				<p>And the created Bug resource will have the following representation. Note that server has added a 
					server managed property, creation date (dcterms:created), and a default value for the state (bt:isInState) 
					to the Bug in addition to what was being POSTed.</p>
				<pre title="The state of the bug LDPR"
					class='example' data-include='bug_create_s2.txt'
					data-oninclude='fixCode'></pre>						
			</td>
		</tr>
	</table>
	</section>
	
	<section>
	<h3 id="BugUpdate">Update</h3>
	<p> TODO - Description </p>
	
	<table>
		<tr>
			<td class="col1"><img src="bug_update.png" /></td>
			<td>
				<p>TODO - Description</p>
                                <pre title="A request for updating a bug"
					class='example' data-include='bug_update_req.txt'
					data-oninclude='fixCode'></pre>	
				<p>If the update is successful, the server will respond with a success status and a new etag.</p>
<pre class="example">
HTTP/1.1 204 No Content 
ETag: W/"123456790"  
</pre>				
			</td>
		</tr>
	</table>
	</section>
	
	<section>
	<h3 id="BugDelete">Deletion</h3>
	<p> TODO - Description </p>
	
	<table>
		<tr>
			<td class="col1"><img src="bug_delete.png" /></td>
			<td>
				<p>TODO - Description</p>
				<pre class="example">
 DELETE /app/product1/bug3 HTTP/1.1 
 Host: example.org
				</pre>
				<p>If the update is successful, the server will respond with a success status and a new etag.</p>
				<pre class="example">
 HTTP/1.1 204 No Content
 ETag: W/"123456790"  
				</pre>				
			</td>
		</tr>
	</table>
	</section>
	
	<section>
	<h3 id="meta-structure">Structural Manipulation</h3>
	<p>If the bug tracker allows creating new Products in the tracker, that can done by posting a representation of a new Product to the Bug Tracker container. In this example the client includes the necessary ldp membership properties making the new Product a container for Bug resources.</p>
	<table>
		<tr>
			<td class='col1'><img src="app.png" /></td> 
			<td>
				<p>The status of the bug tracker before creating the new product.</p>
				<pre title="The state of the Bug Tracker LDPC"
					class='example' data-include='product_create_s1.txt'
					data-oninclude='fixCode'></pre>	
			</td>
		</tr>
		<tr>
			<td class="col1"><img src="app_post.png" /></td>
			<td>
				<p>The client POSTs a representation of a Product to the Bug Tracker LDPC.</p>
                <pre title="A request for creating a product"
					class='example' data-include='product_create_req.txt'
					data-oninclude='fixCode'></pre>	
				<p>If the create is successful, the server responds with location of the newly created resource.</p>
 				<pre title="The response after creating new product"   class="example">
HTTP/1.1 201 Created
Location: /app/product2
Content-Length: 0  
				</pre>	               		
			</td>	
		</tr>
        <tr>
        	<td></td><td>
        		<p>After creation of this new container, 'product2', the representation of the 'Tracker' container will be</p>
        		<pre title="The state of the Bug Tracker after the product creation"
					class='example' data-include='product_create_s2.txt'
					data-oninclude='fixCode'></pre>	
				<p>and the 'product2' will have the following representation.</p>
				<pre title="The state of the new Product"
					class='example' data-include='product_create_s3.txt'
					data-oninclude='fixCode'></pre>		
        	</td>	
        </tr>
	</table>
	</section>



	<section>
	<h3 id="ProductLookup">Operation Discovery</h3>
	<p>
		Assuming that a user got the URL of the product by out of band means, a starting point would be to discover
		which operations can be performed on the product resource.
	</p>
	
	<table>
		<tr>
			<td class="col1"><img src="replace.png" /></td>
			<td>
				<p>The client does an OPTIONS with the URI of a known product description resource.</p>
<pre class="example">OPTIONS /app/product1/ HTTP/1.1
Host: example.org 
</pre>
				<p>If the product description resource is available, the server responds with the allowed HTTP operations on the product
					resource along with some other metadata.</p>
					<div class="turtle">
<pre title="HTTP response for OPTIONS on a product" class='example'>
HTTP/1.1 200 OK
Allow: OPTIONS,HEAD,GET,POST,PUT,PATCH
Accept-Post: text/turtle, application/ld+json 
Accept-Patch: example/patch
Link: &lt;http://www.w3.org/ns/ldp/Resource&gt;; rel="type"
Link: &lt;?nonMemberProperties&gt;;rel="http://www.w3.org/ns/ldp#nonMemberResource"
Content-Length: 0
</pre>				
                    </div>
			</td>
		</tr>
	</table>
	
	<p> According to the response, HTTP operations {OPTIONS,GET,POST,PUT,PATCH} are allowed on the product description resource.
		In addition to the allowed operations, Accept-Post and Accept-Patch provides which media types are supported by respective operations. 
		The rel="type" Link header advertises that this is resource supports LDP protocol and the the rel="ldp:nonMemberResource" provides a link 
		to the non-member resource of this product description.
	</p>
	</section>
		
		<section id="paging">	
		<h3>Pagination</h3>
		
		<p>It sometimes happens that a resource is too large to reasonably transmit its representation in a single HTTP response.  For example, if the
		   bug resource in our example includes comments, It might happen that it may be become too large. To address this problem, LDPRs should support 
		   a technique called Paging.</p>
		
		<table>
			<tr>
				<td class="col1"><img src="replace.png" /></td>
				<td>
					<p>If a client does a get on an LDPR that supports paging, it will be redirected to the first page of the resource.</p>
					<pre class="example">
	GET /app/product1/bug3 HTTP/1.1
	Host: example.org 
					</pre>
					<pre class="example">
	HTTP/1.1 303 See Other
	Location: /app/product1/bug3?firstpage
					</pre>				
				</td>
			</tr>
			<tr>
				<td class="col1"><img src="replace.png" /></td>
				<td>
					<p>Alternatively if the client wants to know in advance whether the resource is paged or not, it can do an OPTIONS request on the LDPR URI</p>
					<pre class="example">
	OPTIONS /app/product1/bug3 HTTP/1.1
	Host: example.org 
					</pre>
					<p>If the resource is paged, the response contains a HTTP Link header with rel="first"; and the target URI of that header would be  the URL of 
						the first page resource.  </p>
					<pre class="example">
	HTTP/1.1 200 OK
	Allow: OPTIONS,HEAD,GET,PUT,PATCH
	Accept-Patch: example/patch
	Link: &lt;http://www.w3.org/ns/ldp/Resource&gt;; rel="type"
	Link: &lt;/app/product1/bug3?firstpage&gt;; rel="first"
	Content-Length: 0
					</pre>				
				</td>
			</tr>
			<tr>
				<td class="col1"><img src="replace.png" /></td>
				<td>
					<p>After knowing the URL of the first page resource, the client can retrieve it using a HTTP GET</p>
					<pre class="example">
	GET /app/product1/bug3?firstpage HTTP/1.1
	Host: example.org 
	Accept: text/turtle; charset=UTF-8
					</pre>
		             <pre title="HTTP response for getting the first page resource"
							class='example' data-include='paging_page1_res.txt'
							data-oninclude='fixCode'></pre>	
					<p>The first page contains a link to the second page with LDPR as the subject, 
						ldp:nextPage as the predicate and the subsequent page as the object.</p>					
				</td>
			</tr>
			<tr>
				<td class="col1"><img src="replace.png" /></td>
				<td>
					<p>The second page can be retrieved the same way as the first page was retrieved.</p>
					<pre class="example">
	GET /app/product1/bug3?secondPage HTTP/1.1
	Host: example.org 
	Accept: text/turtle; charset=UTF-8
					</pre>
		             <pre title="HTTP response for getting the second page resource"
							class='example' data-include='paging_page2_res.txt'
							data-oninclude='fixCode'></pre>	
					<p>The last page of resource contains with LDPR as the subject, 
						ldp:nextPage as the predicate and the rdf:nil as the object.</p>					
				</td>
			</tr>
		</table>
		
		</section>
		<section id="odering">	
		<h3>Ordering</h3>
		
		<table>
			<tr>
				<td class="col1"><img src="replace.png" /></td>
				<td>
					<p>There are many cases where an ordering of the members of the container is important. </p>
					<pre class="example">
	GET /app/product1?firstPage HTTP/1.1
	Host: example.org 
	Accept: text/turtle; charset=UTF-8
					</pre>
				    <pre title="The representation of an ordered LDPC"
					class='example' data-include='ordered_ldpc_resp.txt'
					data-oninclude='fixCode'></pre>			
				</td>
			</tr>
		</table>	
		</section>
			
		<section id="binary-res">	
		<h3>Binary resources</h3>
		
		<b>Creating a binary resource</b>
		<table>
		<tr>
			<td class="col1"><img src="replace.png" /></td>
			<td>
				<p>We have an LDPC which we can use to create binary resources</p>
				<pre title="The state of the attachments LDPC"
					class='example' data-include='attachments_s1.txt'
					data-oninclude='fixCode'></pre>	
			</td>
		</tr>
		<tr>
			<td><img src="replace.png" /></td>
			<td>
				<p>The client POSTs a binary resource to the LDPC</p>
                <pre title="A request for creating a product"
					class='example'>POST /app/product1/bug3/attachments/ HTTP/1.1
Host: example.org
Content-Type: image/png
Slug: login-page.png
Content-Length: 1254

#### binary data #####		
					</pre>	
				<p>If the create is successful, the server it responds with a Location header and a Link header to
					the automatically created metadata LDPR.</p>
                <pre title="A response after creating new a binary resource" class='example'>HTTP/1.1 201 Created
Location: /app/product1/bug3/attachments/login-page.png
Link: &lt;/app/product1/bug3/attachments/1&gt;; rel="meta"
Content-Length: 0
			</pre>				
			</td>
		</tr>
		<tr>
			<td></td>
			<td>
				<p>After the creation, LDPC representation looks like</p>
				<pre title="The state of the attachments LDPC after creation"
					class='example' data-include='attachments_s2.txt'
					data-oninclude='fixCode'></pre>	
			</td>
		</tr>
		</table>
		</section>
		
		<b>Accessing the binary resource</b>
		
		<table>
			<tr>
				<td class="col1"><img src="replace.png" /></td>
				<td>
					<p>The client can retrieve the binary resource by doing a GET on the binary resource URI.</p>
	<pre class="example">GET /app/product1/bug3/attachments/login-page.png  HTTP/1.1
Host: example.org
Accept: image/png
	</pre>
					<p>LDPR server responds with</p>
	                <pre title="HTTP response for getting the binary resource"
						class='example'>HTTP/1.1 200 OK 
Content-Type: image/png
Link: &lt;/app/product1/bug3/attachments/1&gt;; rel="meta"
ETag: W/"123456789"

#### binary data ##### 
						
						</pre>				
				</td>
			</tr>
		</table>
		</section>
		
		<b>Accessing the metadata about the binary resource</b>
		
		<table>
			<tr>
				<td class="col1"><img src="replace.png" /></td>
				<td>
					<p>The client can retrieve the metadata of the binary resource by doing a GET on the metadata-LDPR URI.</p>
	<pre class="example">GET /app/product1/bug3/attachments/1
Host: example.org
Accept: text/turtle 
	</pre>
					<p>LDPR server responds with</p>
	                <pre title="HTTP response for getting the binary resource"
						class='example' data-include='attachments_m_get_res.txt'
						data-oninclude='fixCode'></pre>				
				</td>
			</tr>
		</table>
		</section>
		
		<b>Updating the metadata about the binary resource</b>
		
		<table>
			<tr>
				<td class="col1"><img src="replace.png" /></td>
				<td>
					<p>TODO</p>
					<pre title="Updating the metadata of the binary resource"
						class='example' data-include='attachments_m_update_req.txt'
						data-oninclude='fixCode'></pre>	
				   <p>LDPR server responds with</p>		
					<pre class="example">HTTP/1.1 204 No Content 
ETag: W/"123456790"
	</pre>					
				</td>
			</tr>
		</table>
		</section>
		
		<b>Deleting the binary resource</b>
		
		<table>
			<tr>
				<td class="col1"><img src="replace.png" /></td>
				<td>
					<p>TODO</p>
					<pre class="example"> DELETE /app/product1/bug3/attachments/login-page.png HTTP/1.1
 Host: example.org 
	</pre>			
					<pre class="example">HTTP/1.1 204 No Content
 ETag: W/"123456790" 
	</pre>			
						<pre class="example">GET /app/product1/bug3/attachments/login-page.png HTTP/1.1
 Host: example.org 
	</pre>			
						<pre class="example">HTTP/1.1 410 Gone 
	</pre>		
						<pre class="example"> GET /app/product1/bug3/attachments/1
 Host: example.org 
	</pre>			
						<pre class="example">HTTP/1.1 410 Gone 
	</pre>						
				</td>
			</tr>
		</table>
		</section>
		
		</section>
	
	</section>
	
	<section>
	<h1 id="advexamples">Advanced Examples</h1>
		<section>
		<h3 id="ldpmemx">Uses of membership{Subject,Predicate,Object} predicates </h3>
		<p>In most of the previous examples we kept the ldp:membershipSubject as the LDPC itself and ldp:membershipObject as the ldp:MemberSubject. However, these 
			predicates can be used to change the semantics of the membership relationship in LDPCs. </p>
	    
	    <p class="note">TO DO: A small note on document vs Thing separation linking to <a href="http://www.w3.org/TR/webarch/#id-resources">Web Arch</a>, 
	    	, <a href="http://www.w3.org/TR/cooluris/#semweb">Cool URIs</a>, <a href="http://www.w3.org/TR/urls-in-data/#landing-pages">URLs in Data</a>.</p>
	    	
	   	<table>
			<tr>
				<td class="col1"><img src="replace.png" /></td>
				<td>
					<p>If the separation between real world resource and information is important, the product description of the previous Bug Tracker example can 
						be alternatively designed as following.</p>
					<pre title="Representation of the product description"
						class='example' data-include='product_alt_s1.txt'
						data-oninclude='fixCode'></pre>	
					<p>In the above example, the product description information resource is explicitly seperated from the real world product resource. Now the RDF representation
						contains information about both the information resource that is identified by the URI &lt;/app/product1/&gt; and the real world resource identified by the 
						URI &lt;/app/product1/#it&gt;. </p>
					<p>With this seperation, now the ldp:membershipSubject of the container is not the container URI itself but &lt;/app/product1/#it&gt;. The effect of these is that
						membership relation triples added when new resources are POSTed to this container will now have the subject &lt;/app/product1/#it&gt; not the container URI. Further,
						ldp:membershipObject of this container is foaf:primaryTopic. Thus, the object of the membership triple will not be the newly created resource but the foaf:primaryTopic
						defined inside that newly created resource as shown in the following example. </p>	 
					<pre title="HTTP request for creating a new bug report"
						class='example' data-include='bug_alt_create_req.txt'
						data-oninclude='fixCode'></pre>	
					<p>And the server will respond with the URI of the newly created information resource in the Location header.</p>
					<pre title="Representation of the newly created bug"
					class='example' data-oninclude='fixCode'>
HTTP/1.1 201 Created
Location: /app/product1/67
Content-Length: 0 					
					</pre>
					<p>After the resource creation, the representations of the LDPC and newly created LDPR would be </p>
					<pre title="Representation of the LDPC"
					class='example' data-oninclude='fixCode' data-include='product_alt_s2.txt'></pre>
					<pre title="Representation of the newly created bug"
					class='example' data-oninclude='fixCode' data-include='bug_alt_s1.txt'></pre>
							
				</td>
			</tr>
		</table> 			
	   </section>
	   
	   <section>
	    <h3 id="mempredinv">ldp:membershipPredicateInverse predicate</h3>	
	    <p>In sometimes the membership relationship can defined in a way such that the container is becomes the object of the membership triple. For example, 
	    	in our example, if the membership triple was like &lt; bug, bt:relatedProduct, product &gt; the product container would look like</p>
	    <pre title="Representation of an LDPC with ldp:membershipPredicateInverse predicate"
					class='example' data-oninclude='fixCode' data-include='product_inv_s1.txt'></pre>	
	    <p>TODO - Find a better example</p>	
	   </section>
	   
	    <section id="res-inlining">	
		<h3>Resource Inlining</h3>
			<p> TODO - Description </p>
	
	  <table>
		<tr>
			<td class="col1"><img src="replace.png" /></td>
			<td>
				<p>TODO - Description</p>
	            <pre title="A HTTP request to a LDPR with inlined resources"
					class='example' data-oninclude='fixCode' data-include='res_inline_req.txt'></pre>
				<p> </p>
	            <pre title="A HTTP response from a LDPR with inlined resources"
					class='example' data-oninclude='fixCode' data-include='res_inline_res.txt'></pre>				
			</td>
		</tr>
	</table>
		
		
		</section>
		
	    <section id="mem-inlining">	
		<h3>Member Inlining</h3>
		</section>
	
	</section>
	
	<section>
		<h1>Security</h1>
		<p class="note">Mention a little bit about security</p>
    </section>
	
	<section>
	<h1 id="ldpc">LDP Implementations</h1>
	A list of implementations that plan to be LDP compliant is available in the LDP Implementations wiki page.
LDP Implementation report provides the coverage of the specification by each LDP implementation.
	</section>
	
    <section>
	<h1 id="next">What To Read Next</h1>
		The primer only provide an overview of the Linked Data Platform specifications. LDP WG has produced following documents that contribute to the Linked Data Platform specification.
		
		<ul>
			<li><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/TR/ldp-ucr.html">Linked Data Platform Use Cases and Requirements</a> [[LDP-UCR]]</li>
			<li><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html">Linked Data Platform 1.0 specifcation</a> [[LDP]]</li>
			<li>Linked Data Platform 1.0 Primer (This document)</li>
			<li><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp-bp/ldp-bp.html">LDP Best Practices and Guidelines</a> [[LDP-BP]]</li>
			<li><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/Test%20Cases/LDP%20Test%20Cases.html">Linked Data Platform 1.0 Test Cases</a>[[LDP-TESTS]]</li>
		</ul>
		
		
	</section>
	

	<section class='appendix informative' id="history">
	<h1>Change History</h1>
	<p>The change history is up to the editors to insert a brief summary of
	changes, ordered by most recent changes first and with heading from which
	public draft it has been changed from.
	</p>
	<ul>
		<li>2013-08-05 - Providing JSON-LD representations of the examples.</li>	
		<li>2013-07-03 - Moving the content from the wiki to the note.</li>	
	</ul>
    </section>
  
  </body>
</html>
\ No newline at end of file
+   
	<p>	
		Elements of the collection of which are denoted by ldp:contains predicate shows the information documents contained by the LDP Container. These elements does not have to 
+      be LDPRs. Any HTTP resource can be contained in an LDPC. For example,
	</p>
    

	<table>
		<tr>
			<td class="col1"><img src="photos.png" /></td>
			<td>
    <pre title="An example LDPC with non-LDPRs" class='example' data-include='ldpc_ex_non_ldpr.txt' data-oninclude='fixCode'></pre>	
			</td>
		</tr>
	</table>
 	
	<p>
		Use cases that motivated LDP specification varies from just publishing a dataset as Linked Data with advanced features as pagination, 
		providing read/write access to using Linked Data for application integration. The Linked Data Platform Use Cases and Requirements document provides 
		a more detailed information on the use cases that motivated the LDP specification. 
	</p>									
    <p>There will be several categories of systems implementing the LDP specification. Two main categories of the LDP servers include:</p>
    <dl class="glossary">
	<dt>Generic / vanilla LDP servers</dt>
	<dd>RDF storage systems that allow interacting with their resources by means of the LDP specification. These servers do not impose any restriction on LDPRs.</dd>
    <dt>Application specific LDP severs </dt>
    <dd>Systems exposing their data using the LDP specification. These systems impose restrictions on LDPRs since they have an underlying business logic and data model.</dd>
    </dl>

    </section>
+    
+    <section id="filesystem">
    	<h1>File System Example (LDP-RS / LDP-NR / LDP-BasicContainer)</h1>
+    
+    <p>
+   This section provides a set of examples of examples using a file system like read / write data storage on the Web that uses a Linked Data Platform protocol. These examples will
+   demonstrate the behaviour of LDPRs including both LDR-RSs (which have RDF representations) and LDP-NRs (which do not have RDF representations such as binary resources) and LDP Basic 
+   Containers.	    
+	
+   When you register in example data storage system, you will get your data storage space (a root Basic Container) where you can store all sort of web resources that are supported by 
+   Linked Data Platform such as RDF resources (LDP-RS) and binary resources (LDP-NR). Using this root Basic Container you can create new files (documents) and also child containers to 
+   organize the documents. 
+   </p>
+    
+   <table class="simple">
		<thead>
			<th>Path</th>
			<th>Method</th>
			<th>Description</th>
		</thead>
		<tbody>
			<tr>
				<td rowspan="5">/{username}/</td>
				<td>GET</td>
				<td>Lists all the documents in the root container. </td>		
			</tr>
			<tr>
				<td>POST</td>
				<td>Create a new document under the root container.</td>		
			</tr>
			<tr>
				<td>PUT</td>
				<td>Update the description and/or list of files of the root container.</td>		
			</tr>
			<tr>
				<td>PATCH</td>
				<td>Update the description and/or list of files of the root container.</td>		
			</tr>
			<tr>
				<td>DELETE</td>
				<td>Not allowed.</td>		
			</tr>
			<tr>
				<td  class="col1" rowspan="5"><div class='code'>/{username}/{document*}/</div></td>
				<td>GET</td>
				<td>Retrive the document.</td>		
			</tr>
			<tr>
				<td>POST</td>
				<td>Not allowed</td>		
			</tr>
			<tr>
				<td>PUT</td>
				<td>Update the document.</td>		
			</tr>
			<tr>
				<td>PATCH</td>
				<td>Partial update to the document if PATCH is supported.</td>		
			</tr>
			<tr>
				<td>DELETE</td>
				<td>Delete the project description and associated bug reports.</td>		
			</tr>
			<tr>
				<td rowspan="2"><div class='code'>/*/*</div></td>
				<td>OPTIONS</td>
				<td>Discover the allowed operations over a resource</td>		
			</tr>
			<tr>
				<td>HEAD</td>
				<td>Only retrieve metainformation about a resource</td>		
			</tr>
		</tbody>
	</table>
+   
+   <p class="note"> In the above API description, {document*} is considered a non-Container. The child containers such as /{username}/{ldp-bc}/ or /{username}/**/{ldp-bc}/ behave similar to the root container
+   /{username}/ except for that fact, deleting those child containers are allowed. </p>
+   
+   In this example, we will see how Alice, a user of this system, manages the read / write document storage using the LDP protocl.
+   	
+   <p>First, Alice registers in the system and she is given a space that she can store her documents (She could use LDP protocol to register herself by POSTing to a container of users 
+   but that is out of scope of this example). When she registers she is informed that her document space is http://data.example.org/alice/. </p>
+	
+   <section id="filelookup">
	<h2>Looking up a basic container (GET on an LDP-BC) </h2>
+	   
+	   <p> First Alice looks up her storage by retrieving the LDP Basic Container assigned to her. As it was just created, it is an empty container.</p>
+	   
+	   <pre  title="A request for retrieving a basic container" class="example">
    GET /alice/ HTTP/1.1
    Host: example.org
+    Accept: text/turtle
		</pre>
+	   
+	  <pre title="The response of retrieving a basic container" class='example'>
    HTTP/1.1 200 OK 
+    Content-Type: text/turtle; charset=UTF-8
+    Link: &lt;http://www.w3.org/ns/ldp/Resource&gt;; rel=&quot;type&quot;
+    Link: &lt;http://www.w3.org/ns/ldp/BasicContainer&gt;; rel=&quot;type&quot;
+    ETag: W/&quot;123456789&quot;
+	
+    @prefix dcterms: &lt;http://purl.org/dc/terms/&gt;.
+    @prefix ldp: &lt;http://www.w3.org/ns/ldp#&gt;.
+	
+    &lt;http://data.example.org/alice/&gt; a ldp:Container, ldp:BasicContainer;
+       dcterms:title &quot;Alice’s data storage on the Web&quot; .		
	</pre>
+			
+   </section>
+	
+	
+	<section> 
+   <h2> Discovering the affordances (OPTIONS on an LDP-BC) </h2>
+
+   <p>
+   Now, Alice wants to know what she can do with her document space. She can use the OPTIONS operation to find out what are the operations she can do with her LDP-BC.
+   </p>
+
+   <pre  title="A request for retrieving the OPTIONS of a basic container" class="example">
 		OPTIONS /alice/ HTTP/1.1
 		Host: example.org
	</pre>
+
+   <pre  title="The response for retrieving the OPTIONS of a basic container" class="example">
HTTP/1.1 200 OK
+Allow: OPTIONS,HEAD,GET,POST,PUT,PATCH
+Accept-Post: text/turtle, application/ld+json, image/bmp, image/jpeg
+Accept-Patch: example/patch
+Link: &lt;http://www.w3.org/ns/ldp/Resource&gt;; rel=&quot;type&quot;
+Link: &lt;http://www.w3.org/ns/ldp/BasicContainer&gt;; rel=&quot;type&quot;
+Content-Length: 0 
	</pre>   
+   
+   <p> Looking at the response, Alice (Alice's LDP client) can discover that this is an LDP-Basic Container and the container allows her to POST things of both RDF types (text/turtle, application/ld+json) 
+   and images (image/bmp and image/jpeg).</p>
+  
+   </section> 
+   
+   <section> 
+   <h2> Creating a RDF resource (POST an RDF resource to an LDP-BC) </h2>  
+   
+   <p>Alice decides to create a FOAF profile for her using the LDP-BC by POSTing her FOAF personal profile document. </p>
+   
+   <pre  title="A request for creating a RDF resource" class="example"> 
+POST /alice/ HTTP/1.1
+Host: data.example.org
+Slug: foaf
+Content-Type: text/turtle
+
+@prefix dc: &lt;http://purl.org/dc/terms/&gt; .
+@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt; .
+
+&lt;&gt; a foaf:PersonalProfileDocument;
+    foaf:primaryTopic &lt;#me&gt; ;
+    dc:title &quot;Alice’s FOAF file&quot; .
+
+&lt;#me&gt; a foaf:Person;
+    foaf:name &quot;Alice Smith&quot;  .    
+   </pre>  
+   
+   <pre  title="The response for creating a RDF resource" class="example"> 
+HTTP/1.1 201 Created
+Location: /alice/foaf
+Link: &lt;http://www.w3.org/ns/ldp/Resource&gt;; rel=&quot;type&quot;
+Content-Length: 0   
+   </pre>
+   
+   
+   </section>
+   
+   
+   <section> 
+   <h2> Creating a binary resource (POST an image to an LDP-BC) </h2>  
+   
+   </section>
+   
+   <section> 
+   <h2> Update a RDF LDP resource (PUT on an LDP-RS) </h2>  
+   
+   </section>
+   
+   <section> 
+   <h2> Deleting a resource (DELETE on an LDPR) </h2>  
+   
+   </section>
+   
+   </section> 

	<section id="bugtracker">
    <h1>Bug Tracker Example (LDP-DirectContainer)</h1>
    
	<p>
    This section provides a set of examples to show the Linked Data Platform interactions. Note, this is a primer and should 
    not be considered as a canonical example of ideal LDP modeling.
    The examples in this section will revolve around a very simple Bug Tracker application. Bug Tracker application records 
    the bugs of several products allowing reporting, updating and deleting bugs and products. We can re-use simple domain vocabulary, 
    e.g. has_bug or related, to express our data. LDP provides the additional interaction capability in the protocol to perform dynamic 
    evolution of knowledge representation.
	</p>
	
	<p>RESTful APIs are often documented by through listing valid operations operating on URLs described as templates. A RESTful API for a simple Bug Tracker system might be described as follows:</p>
	
	<table class="simple">
		<thead>
			<th>Path</th>
			<th>Method</th>
			<th>Description</th>
		</thead>
		<tbody>
			<!--tr>
				<td rowspan="5">/app/</td>
				<td>GET</td>
				<td>Lists all the product descriptions.</td>		
			</tr>
			<tr>
				<td>POST</td>
				<td>Create a new product description.</td>		
			</tr>
			<tr>
				<td>PUT</td>
				<td>Update the app description and/or list of product descriptions</td>		
			</tr>
			<tr>
				<td>PATCH</td>
				<td>Update the app description and/or list of product descriptions</td>		
			</tr>
			<tr>
				<td>DELETE</td>
				<td>Not allowed.</td>		
			</tr-->
			<tr>
				<td  class="col1" rowspan="5"><div class='code'>/app/{product-id}/</div></td>
				<td>GET</td>
				<td>Lists the bug reports associated with a product.</td>		
			</tr>
			<tr>
				<td>POST</td>
				<td>Create a new bug report associated with a product.</td>		
			</tr>
			<tr>
				<td>PUT</td>
				<td>Update the project description.</td>		
			</tr>
			<tr>
				<td>PATCH</td>
				<td>Not supported.</td>		
			</tr>
			<tr>
				<td>DELETE</td>
				<td>Delete the project description and associated bug reports.</td>		
			</tr>
			<tr>
				<td rowspan="5"><div class='code'>/app/{product-id}/{bug-id}</div></td>
				<td>GET</td>
				<td>Gets the bug report.</td>		
			</tr>
			<tr>
				<td>POST</td>
				<td>Not supported.</td>		
			</tr>
			<tr>
				<td>PUT</td>
				<td>Update the bug report.</td>		
			</tr>
			<tr>
				<td>PATCH</td>
				<td>Not supported.</td>		
			</tr>
			<tr>
				<td>DELETE</td>
				<td>Delete the bug report.</td>		
			</tr>
			<tr>
				<td rowspan="2"><div class='code'>/*/*</div></td>
				<td>OPTIONS</td>
				<td>Discover the allowed operations over a resource</td>		
			</tr>
			<tr>
				<td>HEAD</td>
				<td>Only retrieve metainformation about a resource</td>		
			</tr>
		</tbody>
	</table>
	
    <p class="note">Do we want to say something about suggested, user-friendly URIs ? </p>

	<section id="navandret">
	<h2>Navigation and Retreival</h2>
	
	<b>Lookup a Product (LDPC?)</b>
	<p> One of the main use cases of the example bug tracker is to list of the bugs of a given product. Assuming 
		that a user got a URL of a product by out of band means, one can look it up to get more information including 
		the bugs associated with it.</p>
	
	<table>
		<tr>
			<td class="col1"><img src="product_lookup.png" /></td>
			<td>
				<p>To get the description of the product, a client can do a GET request on the URI of the known product resource. LDPR 
					servers should provide text/turtle representations of the requested LDPRs and may provide RDF format representations
					using standard HTTP content negotiation.   </p>
				<pre class="example" title="Product lookup request"
				data-include='product_lookup_req.txt' data-oninclude='fixCode'></pre>
				<p>If the product resource is available, the server responds with the representation of the resource using the requested media type,
					<code>text/turtle</code> in this case.</p>
                    <pre title="HTTP response for product lookup" class='example' data-include='product_lookup_resp.txt' data-oninclude='fixCode'></pre>				
			</td>
		</tr>
	</table>
	<p>
	The project description resource contains both information about the project such as the title and the information about members of the product LDPC
	i.e. the bugs associated with the product.		
		
	</p>
	
	<p>Looking up a bug is similar to looking up a product. </p>
	
	<table>
		<tr>
			<td class="col1"><img src="bug_lookup.png" /></td>
			<td>
				<p>Based on links in the representation of the Product, the client uses GET to navigate to a known Bug resource.</p>
				<pre class="example" title="Bug lookup request" 
					data-include='bug_look_up_req.txt' data-oninclude='fixCode'></pre>
				<p>The server responds with the representation of the bug.</p>
                                <pre title="Bug lookup response"
					class='example' data-include='bug_look_up_resp.txt'
					data-oninclude='fixCode'></pre>			
			</td>
		</tr>
	</table>
	</section>
		
	<section>
	<h3 id="BugCreate">Creation</h3>
	<p>Continuing from the previous example, we can report a Bug against 'product1' by creating a Bug LDPR under the 'Product' LDPC.
The client POSTs a representation of a Bug to the Bug Tracker LDPC. </p>
	
	<table>
		<tr>
			<td class="col1"><img src="bug_create.png" /></td>
			<td>
				<p>The client POSTs a representation of a Bug to the Bug Tracker LDPC.</p>
                <pre title="A request for creating a bug"
					class='example' data-include='bug_create_req.txt'
					data-oninclude='fixCode'></pre>	
				<p>If the create is successful, the server responds with location of the newly created resource.</p>
                <pre title="A response of creating new a bug"
					class='example' data-oninclude='fixCode'>
HTTP/1.1 201 Created
Location: /app/product1/67
Content-Length: 0 					
					</pre>				
			</td>
		</tr>
		<tr>
			<td class="col1"><img src="product_postcreate.png" /></td>
			<td>
				<p>If the creation fails, the server will respond with an appropriate status code depending on the error. 
					After the resource is creation, the Product A LDPC will have the following representation.</p>
				<pre title="The state of the product LDPC after the bug creation"
					class='example' data-include='bug_create_s1.txt'
					data-oninclude='fixCode'></pre>
			</td>
		</tr>
		<tr>
			<td class="col1"><img src="bug67.png" /></td>
			<td>
				<p>And the created Bug resource will have the following representation. Note that server has added a 
					server managed property, creation date (dcterms:created), and a default value for the state (bt:isInState) 
					to the Bug in addition to what was being POSTed.</p>
				<pre title="The state of the bug LDPR"
					class='example' data-include='bug_create_s2.txt'
					data-oninclude='fixCode'></pre>						
			</td>
		</tr>
	</table>
	</section>
	
	<section>
	<h3 id="BugUpdate">Update</h3>
	<p> TODO - Description </p>
	
	<table>
		<tr>
			<td class="col1"><img src="bug_update.png" /></td>
			<td>
				<p>TODO - Description</p>
                                <pre title="A request for updating a bug"
					class='example' data-include='bug_update_req.txt'
					data-oninclude='fixCode'></pre>	
				<p>If the update is successful, the server will respond with a success status and a new etag.</p>
<pre class="example">
HTTP/1.1 204 No Content 
ETag: W/"123456790"  
</pre>				
			</td>
		</tr>
	</table>
	</section>
	
	<section>
	<h3 id="BugDelete">Deletion</h3>
	<p> TODO - Description </p>
	
	<table>
		<tr>
			<td class="col1"><img src="bug_delete.png" /></td>
			<td>
				<p>TODO - Description</p>
				<pre class="example">
 DELETE /app/product1/bug3 HTTP/1.1 
 Host: example.org
				</pre>
				<p>If the update is successful, the server will respond with a success status and a new etag.</p>
				<pre class="example">
 HTTP/1.1 204 No Content
 ETag: W/"123456790"  
				</pre>				
			</td>
		</tr>
	</table>
	</section>
	
	<section>
	<h3 id="meta-structure">Structural Manipulation</h3>
	<p>If the bug tracker allows creating new Products in the tracker, that can done by posting a representation of a new Product to the Bug Tracker container. In this example the client includes the necessary ldp membership properties making the new Product a container for Bug resources.</p>
	<table>
		<tr>
			<td class='col1'><img src="app.png" /></td> 
			<td>
				<p>The status of the bug tracker before creating the new product.</p>
				<pre title="The state of the Bug Tracker LDPC"
					class='example' data-include='product_create_s1.txt'
					data-oninclude='fixCode'></pre>	
			</td>
		</tr>
		<tr>
			<td class="col1"><img src="app_post.png" /></td>
			<td>
				<p>The client POSTs a representation of a Product to the Bug Tracker LDPC.</p>
                <pre title="A request for creating a product"
					class='example' data-include='product_create_req.txt'
					data-oninclude='fixCode'></pre>	
				<p>If the create is successful, the server responds with location of the newly created resource.</p>
 				<pre title="The response after creating new product"   class="example">
HTTP/1.1 201 Created
Location: /app/product2
Content-Length: 0  
				</pre>	               		
			</td>	
		</tr>
        <tr>
        	<td></td><td>
        		<p>After creation of this new container, 'product2', the representation of the 'Tracker' container will be</p>
        		<pre title="The state of the Bug Tracker after the product creation"
					class='example' data-include='product_create_s2.txt'
					data-oninclude='fixCode'></pre>	
				<p>and the 'product2' will have the following representation.</p>
				<pre title="The state of the new Product"
					class='example' data-include='product_create_s3.txt'
					data-oninclude='fixCode'></pre>		
        	</td>	
        </tr>
	</table>
	</section>



	<section>
	<h3 id="ProductLookup">Operation Discovery</h3>
	<p>
		Assuming that a user got the URL of the product by out of band means, a starting point would be to discover
		which operations can be performed on the product resource.
	</p>
	
	<table>
		<tr>
			<td class="col1"><img src="replace.png" /></td>
			<td>
				<p>The client does an OPTIONS with the URI of a known product description resource.</p>
<pre class="example">OPTIONS /app/product1/ HTTP/1.1
Host: example.org 
</pre>
				<p>If the product description resource is available, the server responds with the allowed HTTP operations on the product
					resource along with some other metadata.</p>
					<div class="turtle">
<pre title="HTTP response for OPTIONS on a product" class='example'>
HTTP/1.1 200 OK
Allow: OPTIONS,HEAD,GET,POST,PUT,PATCH
Accept-Post: text/turtle, application/ld+json 
Accept-Patch: example/patch
Link: &lt;http://www.w3.org/ns/ldp/Resource&gt;; rel="type"
Link: &lt;?nonMemberProperties&gt;;rel="http://www.w3.org/ns/ldp#nonMemberResource"
Content-Length: 0
</pre>				
                    </div>
			</td>
		</tr>
	</table>
	
	<p> According to the response, HTTP operations {OPTIONS,GET,POST,PUT,PATCH} are allowed on the product description resource.
		In addition to the allowed operations, Accept-Post and Accept-Patch provides which media types are supported by respective operations. 
		The rel="type" Link header advertises that this is resource supports LDP protocol and the the rel="ldp:nonMemberResource" provides a link 
		to the non-member resource of this product description.
	</p>
	</section>
		
		<section id="paging">	
		<h3>Pagination</h3>
		
		<p>It sometimes happens that a resource is too large to reasonably transmit its representation in a single HTTP response.  For example, if the
		   bug resource in our example includes comments, It might happen that it may be become too large. To address this problem, LDPRs should support 
		   a technique called Paging.</p>
		
		<table>
			<tr>
				<td class="col1"><img src="replace.png" /></td>
				<td>
					<p>If a client does a get on an LDPR that supports paging, it will be redirected to the first page of the resource.</p>
					<pre class="example">
	GET /app/product1/bug3 HTTP/1.1
	Host: example.org 
					</pre>
					<pre class="example">
	HTTP/1.1 303 See Other
	Location: /app/product1/bug3?firstpage
					</pre>				
				</td>
			</tr>
			<tr>
				<td class="col1"><img src="replace.png" /></td>
				<td>
					<p>Alternatively if the client wants to know in advance whether the resource is paged or not, it can do an OPTIONS request on the LDPR URI</p>
					<pre class="example">
	OPTIONS /app/product1/bug3 HTTP/1.1
	Host: example.org 
					</pre>
					<p>If the resource is paged, the response contains a HTTP Link header with rel="first"; and the target URI of that header would be  the URL of 
						the first page resource.  </p>
					<pre class="example">
	HTTP/1.1 200 OK
	Allow: OPTIONS,HEAD,GET,PUT,PATCH
	Accept-Patch: example/patch
	Link: &lt;http://www.w3.org/ns/ldp/Resource&gt;; rel="type"
	Link: &lt;/app/product1/bug3?firstpage&gt;; rel="first"
	Content-Length: 0
					</pre>				
				</td>
			</tr>
			<tr>
				<td class="col1"><img src="replace.png" /></td>
				<td>
					<p>After knowing the URL of the first page resource, the client can retrieve it using a HTTP GET</p>
					<pre class="example">
	GET /app/product1/bug3?firstpage HTTP/1.1
	Host: example.org 
	Accept: text/turtle; charset=UTF-8
					</pre>
		             <pre title="HTTP response for getting the first page resource"
							class='example' data-include='paging_page1_res.txt'
							data-oninclude='fixCode'></pre>	
					<p>The first page contains a link to the second page with LDPR as the subject, 
						ldp:nextPage as the predicate and the subsequent page as the object.</p>					
				</td>
			</tr>
			<tr>
				<td class="col1"><img src="replace.png" /></td>
				<td>
					<p>The second page can be retrieved the same way as the first page was retrieved.</p>
					<pre class="example">
	GET /app/product1/bug3?secondPage HTTP/1.1
	Host: example.org 
	Accept: text/turtle; charset=UTF-8
					</pre>
		             <pre title="HTTP response for getting the second page resource"
							class='example' data-include='paging_page2_res.txt'
							data-oninclude='fixCode'></pre>	
					<p>The last page of resource contains with LDPR as the subject, 
						ldp:nextPage as the predicate and the rdf:nil as the object.</p>					
				</td>
			</tr>
		</table>
		
		</section>
		<section id="odering">	
		<h3>Ordering</h3>
		
		<table>
			<tr>
				<td class="col1"><img src="replace.png" /></td>
				<td>
					<p>There are many cases where an ordering of the members of the container is important. </p>
					<pre class="example">
	GET /app/product1?firstPage HTTP/1.1
	Host: example.org 
	Accept: text/turtle; charset=UTF-8
					</pre>
				    <pre title="The representation of an ordered LDPC"
					class='example' data-include='ordered_ldpc_resp.txt'
					data-oninclude='fixCode'></pre>			
				</td>
			</tr>
		</table>	
		</section>
			
		<section id="binary-res">	
		<h3>Binary resources</h3>
		
		<b>Creating a binary resource</b>
		<table>
		<tr>
			<td class="col1"><img src="replace.png" /></td>
			<td>
				<p>We have an LDPC which we can use to create binary resources</p>
				<pre title="The state of the attachments LDPC"
					class='example' data-include='attachments_s1.txt'
					data-oninclude='fixCode'></pre>	
			</td>
		</tr>
		<tr>
			<td><img src="replace.png" /></td>
			<td>
				<p>The client POSTs a binary resource to the LDPC</p>
                <pre title="A request for creating a product"
					class='example'>POST /app/product1/bug3/attachments/ HTTP/1.1
Host: example.org
Content-Type: image/png
Slug: login-page.png
Content-Length: 1254

#### binary data #####		
					</pre>	
				<p>If the create is successful, the server it responds with a Location header and a Link header to
					the automatically created metadata LDPR.</p>
                <pre title="A response after creating new a binary resource" class='example'>HTTP/1.1 201 Created
Location: /app/product1/bug3/attachments/login-page.png
Link: &lt;/app/product1/bug3/attachments/1&gt;; rel="meta"
Content-Length: 0
			</pre>				
			</td>
		</tr>
		<tr>
			<td></td>
			<td>
				<p>After the creation, LDPC representation looks like</p>
				<pre title="The state of the attachments LDPC after creation"
					class='example' data-include='attachments_s2.txt'
					data-oninclude='fixCode'></pre>	
			</td>
		</tr>
		</table>
		</section>
		
		<b>Accessing the binary resource</b>
		
		<table>
			<tr>
				<td class="col1"><img src="replace.png" /></td>
				<td>
					<p>The client can retrieve the binary resource by doing a GET on the binary resource URI.</p>
	<pre class="example">GET /app/product1/bug3/attachments/login-page.png  HTTP/1.1
Host: example.org
Accept: image/png
	</pre>
					<p>LDPR server responds with</p>
	                <pre title="HTTP response for getting the binary resource"
						class='example'>HTTP/1.1 200 OK 
Content-Type: image/png
Link: &lt;/app/product1/bug3/attachments/1&gt;; rel="meta"
ETag: W/"123456789"

#### binary data ##### 
						
						</pre>				
				</td>
			</tr>
		</table>
		</section>
		
		<b>Accessing the metadata about the binary resource</b>
		
		<table>
			<tr>
				<td class="col1"><img src="replace.png" /></td>
				<td>
					<p>The client can retrieve the metadata of the binary resource by doing a GET on the metadata-LDPR URI.</p>
	<pre class="example">GET /app/product1/bug3/attachments/1
Host: example.org
Accept: text/turtle 
	</pre>
					<p>LDPR server responds with</p>
	                <pre title="HTTP response for getting the binary resource"
						class='example' data-include='attachments_m_get_res.txt'
						data-oninclude='fixCode'></pre>				
				</td>
			</tr>
		</table>
		</section>
		
		<b>Updating the metadata about the binary resource</b>
		
		<table>
			<tr>
				<td class="col1"><img src="replace.png" /></td>
				<td>
					<p>TODO</p>
					<pre title="Updating the metadata of the binary resource"
						class='example' data-include='attachments_m_update_req.txt'
						data-oninclude='fixCode'></pre>	
				   <p>LDPR server responds with</p>		
					<pre class="example">HTTP/1.1 204 No Content 
ETag: W/"123456790"
	</pre>					
				</td>
			</tr>
		</table>
		</section>
		
		<b>Deleting the binary resource</b>
		
		<table>
			<tr>
				<td class="col1"><img src="replace.png" /></td>
				<td>
					<p>TODO</p>
					<pre class="example"> DELETE /app/product1/bug3/attachments/login-page.png HTTP/1.1
 Host: example.org 
	</pre>			
					<pre class="example">HTTP/1.1 204 No Content
 ETag: W/"123456790" 
	</pre>			
						<pre class="example">GET /app/product1/bug3/attachments/login-page.png HTTP/1.1
 Host: example.org 
	</pre>			
						<pre class="example">HTTP/1.1 410 Gone 
	</pre>		
						<pre class="example"> GET /app/product1/bug3/attachments/1
 Host: example.org 
	</pre>			
						<pre class="example">HTTP/1.1 410 Gone 
	</pre>						
				</td>
			</tr>
		</table>
		</section>
		
		</section>
	
	</section>
	
	<section>
	<h1 id="advexamples">Advanced Examples</h1>
		<section>
		<h3 id="ldpmemx">Uses of membership{Subject,Predicate,Object} predicates </h3>
		<p>In most of the previous examples we kept the ldp:membershipSubject as the LDPC itself and ldp:membershipObject as the ldp:MemberSubject. However, these 
			predicates can be used to change the semantics of the membership relationship in LDPCs. </p>
	    
	    <p class="note">TO DO: A small note on document vs Thing separation linking to <a href="http://www.w3.org/TR/webarch/#id-resources">Web Arch</a>, 
	    	, <a href="http://www.w3.org/TR/cooluris/#semweb">Cool URIs</a>, <a href="http://www.w3.org/TR/urls-in-data/#landing-pages">URLs in Data</a>.</p>
	    	
	   	<table>
			<tr>
				<td class="col1"><img src="replace.png" /></td>
				<td>
					<p>If the separation between real world resource and information is important, the product description of the previous Bug Tracker example can 
						be alternatively designed as following.</p>
					<pre title="Representation of the product description"
						class='example' data-include='product_alt_s1.txt'
						data-oninclude='fixCode'></pre>	
					<p>In the above example, the product description information resource is explicitly seperated from the real world product resource. Now the RDF representation
						contains information about both the information resource that is identified by the URI &lt;/app/product1/&gt; and the real world resource identified by the 
						URI &lt;/app/product1/#it&gt;. </p>
					<p>With this seperation, now the ldp:membershipSubject of the container is not the container URI itself but &lt;/app/product1/#it&gt;. The effect of these is that
						membership relation triples added when new resources are POSTed to this container will now have the subject &lt;/app/product1/#it&gt; not the container URI. Further,
						ldp:membershipObject of this container is foaf:primaryTopic. Thus, the object of the membership triple will not be the newly created resource but the foaf:primaryTopic
						defined inside that newly created resource as shown in the following example. </p>	 
					<pre title="HTTP request for creating a new bug report"
						class='example' data-include='bug_alt_create_req.txt'
						data-oninclude='fixCode'></pre>	
					<p>And the server will respond with the URI of the newly created information resource in the Location header.</p>
					<pre title="Representation of the newly created bug"
					class='example' data-oninclude='fixCode'>
HTTP/1.1 201 Created
Location: /app/product1/67
Content-Length: 0 					
					</pre>
					<p>After the resource creation, the representations of the LDPC and newly created LDPR would be </p>
					<pre title="Representation of the LDPC"
					class='example' data-oninclude='fixCode' data-include='product_alt_s2.txt'></pre>
					<pre title="Representation of the newly created bug"
					class='example' data-oninclude='fixCode' data-include='bug_alt_s1.txt'></pre>
							
				</td>
			</tr>
		</table> 			
	   </section>
	   
	   <section>
	    <h3 id="mempredinv">ldp:membershipPredicateInverse predicate</h3>	
	    <p>In sometimes the membership relationship can defined in a way such that the container is becomes the object of the membership triple. For example, 
	    	in our example, if the membership triple was like &lt; bug, bt:relatedProduct, product &gt; the product container would look like</p>
	    <pre title="Representation of an LDPC with ldp:membershipPredicateInverse predicate"
					class='example' data-oninclude='fixCode' data-include='product_inv_s1.txt'></pre>	
	    <p>TODO - Find a better example</p>	
	   </section>
	   
	    <section id="res-inlining">	
		<h3>Resource Inlining</h3>
			<p> TODO - Description </p>
	
	  <table>
		<tr>
			<td class="col1"><img src="replace.png" /></td>
			<td>
				<p>TODO - Description</p>
	            <pre title="A HTTP request to a LDPR with inlined resources"
					class='example' data-oninclude='fixCode' data-include='res_inline_req.txt'></pre>
				<p> </p>
	            <pre title="A HTTP response from a LDPR with inlined resources"
					class='example' data-oninclude='fixCode' data-include='res_inline_res.txt'></pre>				
			</td>
		</tr>
	</table>
		
		
		</section>
		
	    <section id="mem-inlining">	
		<h3>Member Inlining</h3>
		</section>
	
	</section>
	
	<section>
		<h1>Security</h1>
		<p class="note">Mention a little bit about security</p>
    </section>
	
	<section>
	<h1 id="ldpc">LDP Implementations</h1>
	A list of implementations that plan to be LDP compliant is available in the LDP Implementations wiki page.
LDP Implementation report provides the coverage of the specification by each LDP implementation.
	</section>
	
    <section>
	<h1 id="next">What To Read Next</h1>
		The primer only provide an overview of the Linked Data Platform specifications. LDP WG has produced following documents that contribute to the Linked Data Platform specification.
		
		<ul>
			<li><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/TR/ldp-ucr.html">Linked Data Platform Use Cases and Requirements</a> [[LDP-UCR]]</li>
			<li><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html">Linked Data Platform 1.0 specifcation</a> [[LDP]]</li>
			<li>Linked Data Platform 1.0 Primer (This document)</li>
			<li><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp-bp/ldp-bp.html">LDP Best Practices and Guidelines</a> [[LDP-BP]]</li>
			<li><a href="https://dvcs.w3.org/hg/ldpwg/raw-file/default/Test%20Cases/LDP%20Test%20Cases.html">Linked Data Platform 1.0 Test Cases</a>[[LDP-TESTS]]</li>
		</ul>
		
		
	</section>
	

	<section class='appendix informative' id="history">
	<h1>Change History</h1>
	<p>The change history is up to the editors to insert a brief summary of
	changes, ordered by most recent changes first and with heading from which
	public draft it has been changed from.
	</p>
	<ul>
		<li>2013-08-05 - Providing JSON-LD representations of the examples.</li>	
		<li>2013-07-03 - Moving the content from the wiki to the note.</li>	
	</ul>
    </section>
  
  </body>
</html>
\ No newline at end of file