index.html
55.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>SPARQL 1.1 Graph Store HTTP Protocol</title>
<style type="text/css">
/*<![CDATA[*/
pre.data { border: thin solid #88AA88;
background-color: #E8F0E8;
margin: 1em 4em 1em 0em ; }
.wgNote { border: 0.2em solid red;
padding: 0.5em ;
margin: 1em 4em 1em 2em ; }
/*]]>*/
</style>
<link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/base" />
<link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-WD" />
</head>
<body>
<div class="head">
<p><a href="http://www.w3.org/">
<img src="http://www.w3.org/Icons/w3c_home" alt="W3C" height="48" width="72" /></a></p>
<h1 id="main">SPARQL 1.1 Graph Store HTTP Protocol</h1>
<h2>W3C Working Draft 12 May 2011</h2>
<!--h2>Editor's Draft</h2-->
<dl>
<dt>This version:</dt>
<dd><a href="http://www.w3.org/TR/2011/WD-sparql11-http-rdf-update-20110512/">http://www.w3.org/TR/2011/WD-sparql11-http-rdf-update-20110512/</a></dd>
<dt>Latest version:</dt>
<dd><a href="http://www.w3.org/TR/sparql11-http-rdf-update/">http://www.w3.org/TR/sparql11-http-rdf-update/</a></dd>
<dt>Previous version:</dt>
<dd><a href="http://www.w3.org/TR/2010/WD-sparql11-http-rdf-update-20101014/">http://www.w3.org/TR/2010/WD-sparql11-http-rdf-update-20101014/</a></dd>
<dt>Editor:</dt>
<dd>Chimezie Ogbuji, <a href="mailto:chimezie@gmail.com">chimezie@gmail.com</a>, Invited Expert<br /></dd>
</dl>
<p class="copyright">
<a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2009 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p>
</div>
<hr title="Separator for header" />
<div>
<h2 class="notoc"><a id="abstract" name="abstract">Abstract</a></h2>
<p>This document describes the use of HTTP operations for the purpose of managing a collection of graphs in the REST architectural style.</p>
</div>
<div>
<h2 id="status">Status of This Document</h2>
<p><em>This section describes the status of this document at the time of its publication. Other documents may supersede this document.
A list of current W3C publications and the latest revision of this technical report can be found in the <a href="http://www.w3.org/TR/">W3C technical reports index</a> at http://www.w3.org/TR/.</em></p>
<p>This is a <a href="http://www.w3.org/2005/10/Process-20051014/tr.html#RecsWD">Last Call Working Draft</a>.</p>
<p>The end date of the Last Call review period is 29 July 2011.</p>
<p>Comments on this document should be sent to <a href="mailto:public-rdf-dawg-comments@w3.org">public-rdf-dawg-comments@w3.org</a>, a mailing list with a <a href="http://lists.w3.org/Archives/Public/public-rdf-dawg-comments">public archive</a>. Questions and comments about SPARQL that are not related to this specification, including extensions and features, can be discussed on the mailing list <a href="mailto:public-sparql-dev@w3.org">public-sparql-dev@w3.org</a>, (<a href="http://lists.w3.org/Archives/Public/public-sparql-dev">public archive</a>).</p>
<p>
This document was produced by the <a href="http://www.w3.org/2001/sw/DataAccess/">SPARQL Working Group</a>, which is part
of the <a href="http://www.w3.org/2001/sw/Activity">W3C Semantic Web Activity</a>.
</p>
<h4 class="no-toc no-num" id="change-summary">Change Summary</h4>
<p>The following is a summary of the major changes made from the last publication. The term Network-manipulable Graph Store was replaced with Graph Store.
Support for indirect identification of the default graph was added. The behavior of HTTP PATCH was clarified. The retrieval of service descriptions has also
been clarified. The status codes expected in response to specific behavior has been expanded. The general behavior of PUT and POST has been clarified.
The term 'RDF knowledge' has been replaced with 'RDF graph content.' Graph IRIs specified via query components must be absolute (support for base
resolution has been removed). The specification title has been changed to 'SPARQL 1.1 Graph Store HTTP Protocol.' Examples have been made more
consistent across the document and more details regarding the actual HTTP messages and responses have been added to them.</p>
<h4 class="no-toc no-num" id="no-endorsement">No Endorsement</h4>
<p><em>Publication as a Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.</em></p>
<h4 class="no-toc no-num" id="patents">Patents</h4>
<p><em>This document was produced by a group operating under the <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 W3C Patent Policy</a>. W3C maintains a <a rel="disclosure" href="http://www.w3.org/2004/01/pp-impl/35463/status">public list of any patent disclosures</a> made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential Claim(s)</a> must disclose the information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure"> section 6 of the W3C Patent Policy</a>.</em></p>
</div>
<hr />
<div class="toc">
<h2><a id="contents" name="contents">Table of Contents</a></h2>
<ol>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#terminology">Terminology</a></li>
<li><a href="#protocol-model">Protocol Model</a></li>
<li><a href="#graph-identification">Graph Identification</a>
<ul style="list-style-type: none">
<li>4.1<a href="#direct-graph-identification">Direct Graph Identification</a></li>
<li>4.2 <a href="#indirect-graph-identification">Indirect Graph Identification</a></li>
<!--li>4.3 <a href="#base-resolution">Resolving Relative References</a></li-->
</ul>
</li>
<li><a href="#graph-management">Graph Management Operations</a>
<ul style="list-style-type: none">
<li>5.1 <a href="#status-codes">Status Codes</a></li>
<li>5.2 <a href="#http-put">HTTP PUT</a></li>
<li>5.3 <a href="#http-delete">HTTP DELETE</a></li>
<li>5.4 <a href="#http-post">HTTP POST</a></li>
<li>5.5 <a href="#http-get">HTTP GET</a>
<ul style="list-style-type: none">
<li>5.5.1<a href="#httpRange-14">Ambiguity Regarding the Range of HTTP GET (Informative)</a></li>
</ul>
</li>
<li>5.6 <a href="#http-head">HTTP HEAD</a></li>
<li>5.7 <a href="#http-patch">HTTP PATCH (Informative)</a></li>
<li>5.8 <a href="#http-option">Graph Store Service Discovery (Informative)</a></li>
</ul>
</li>
<li><a href="#security">Security Considerations</a></li>
<!--li>8 <a href="#conformance">Conformance</a></li-->
<li><a href="#sec-bibliography">References</a></li>
</ol>
</div>
<hr />
<h2>1 <a id="introduction" name="introduction">Introduction</a></h2>
<p>This document describes updating and fetching RDF graph content from a Graph Store over HTTP in the REST style <a href="#REST">[REST]</a>. In doing so, it appeals to the
following interface constraints that comprise the REST architectural style:</p>
<ol>
<li>identification of resources</li>
<li>manipulation of resources through representations</li>
<li>self-descriptive messages</li>
</ol>
<p>It emphasises the following distinct concepts: RDF graph management action, the RDF graph content <em>identified</em> as the target of the action,
the lexical form of a Request URI, the URI of a graph in an Graph Store, and the (optional) RDF delivered with the message. The first REST constraint is met
by clarifying what is being identified in the HTTP requests that are supported by this protocol and providing an alternative mechanism for identifying RDF
graph content where the URI of the graph cannot be directly used. The second constraint is met by specifying how representations of RDF graphs used as
the message body of HTTP requests supported by this protocol manipulate the corresponding RDF graph content. The third constraint is an inherent
characteristic of RDF as the framework for a <a href="http://www.w3.org/2001/tag/doc/selfDescribingDocuments.html">Self-Describing Semantic Web</a></p>
<p>This specification relies on an intuitive interpretation of the underlying HTTP protocol semantics to determine how the
RDF graphs are modified. Where the meaning of the operations are described, an SPARQL Update equivalent syntax is shown for clarity.</p>
<p>When this document uses the words <em>MUST</em>, <em>MUST NOT</em>, <em>SHOULD</em>, <em>SHOULD NOT</em>,
<em>MAY</em> and <em>RECOMMENDED</em>, and the words appear as emphasized text, they must be interpreted as described in
<a href="http://www.faqs.org/rfcs/rfc2119.html">RFC 2119</a> <a href="#rfc2119">[RFC2119]</a>.</p>
<p>This document is closely related to the following specifications:</p>
<ul>
<li>The <a href="http://www.w3.org/TR/sparql11-query/">SPARQL 1.1 Query</a> specification, which extends the
<a href="http://www.w3.org/TR/rdf-sparql-query/">first SPARQL query language specification</a>.</li>
<li>The <a href="http://www.w3.org/TR/sparql11-update/">SPARQL 1.1 Update</a> specification, which describes an update language for RDF graphs.</li>
<li>The <a href="http://www.w3.org/TR/sparql11-protocol/">SPARQL 1.1 Protocol</a> specification, which extends the SPARQL Protocol specification.</li>
<li>The <a href="http://www.w3.org/TR/rdf-sparql-XMLres/"> SPARQL Query Results XML Format</a> specification defines an XML document format for
representing the results of SPARQL SELECT and ASK queries.</li>
<li>The <a href="http://www.w3.org/TR/sparql11-service-description/">SPARQL 1.1 Service Descriptions, </a> a method for discovering and vocabulary for
describing SPARQL services made available via the SPARQL Protocol.</li>
</ul>
<h2>2 <a id="terminology" name="introduction">Terminology</a></h2>
<p>
The following terminology is used in this document:
</p>
<ul>
<!--li><em>Architectural style</em> - An architectural design perspective that limits a system in order to induce harmonous behavior</li-->
<li><em>Representation State Transfer architectural style (REST) <a href="#REST">[REST]</a></em> - An architectural style for distributed hypermedia systems.</li>
<li><em>URI</em> - A Uniform Resource Identifier as defined in <a href="#rfc3986">[RFC3986]</a>. </li>
<li><em>IRI</em> - An Internationalized Resource Identifier as defined in <a href="#rfc3987">[RFC3987]</a>. Before an IRI found in a document is used by HTTP, the IRI is first converted to a URI. </li>
<li><em>Resource</em> - A network-accessible data object or service identified by an IRI, as defined in <a href="#rfc2616">[RFC2616]</a>. See <a href="#WEBARCH">[WEBARCH]</a> for further discussion on Resources.</li>
<li><em>Resolvable URI</em> - A URI whose resource potentially has one or more representations available via invoking HTTP <strong>GET</strong> on the URI as defined in <a href="#WEBARCH">[WEBARCH]</a>. </li>
<!--li><em>Serialize (verb.)</em> - When used in a sentence where the subject is an RDF document and the object is an RDF graph, this is understood to mean that the result of parsing the document is the graph.</li-->
<li><em>RDF document</em> - A serialization of an RDF Graph into a concrete syntax.</li>
<li><em>Graph Store</em> - A mutable repository of RDF graphs managed by one or more services <a href="#SPARQL-UPDATE">[SPARQL-UPDATE]</a>.</li>
<li><em>Graph IRI</em> - An IRI involved in this protocol, specified as a request URI or embedded as the query component of a request URI, and corresponds to the IRI of a graph in the underlying Graph Store. </li>
<li><em>RDF graph content</em> - An information resource identified by the graph IRI of a named graph and managed by a server that implements this protocol or
identified by an indirect operation on the default graph. See <a href="#WEBARCH">[WEBARCH]</a> for further discussion on Resources.</li>
<!--li><em>Semantic</em> (adj.) , semantics (n.). Concerned with the specification of meanings. Often contrasted with syntactic to emphasize the distinction between expressions and what they denote <a href="#RDF-MT">[RDF-MT]</a>.</li-->
<li><em>RDF payload</em> - The representation <a href="#rfc2616">[RFC2616]</a> comprised of an RDF document that is sometimes included with the body of invokations of the operations defined here.</li>
</ul>
<p>Implementations of this protocol are HTTP/1.1 servers <a href="#rfc2616">[RFC2616]</a> MUST interpet request messages as graph management operations on an underlying Graph Store
where the subject of the operation is indicated through the use of a Graph IRI.</p>
<h2>3 <a id="protocol-model" name="prot-model">Protocol Model</a></h2>
<p>This protocol specifies the semantics of HTTP operations for managing a Graph Store. In particular, it provides operations
for removing, creating, and replacing RDF graph content as well as for adding RDF statements to existing RDF graph content
. The interface defined here uses URIs to direct native HTTP operations to an implementation of this protocol which responds by making appropriate
modifications to the underlying Graph Store. A compliant implementation of this specification SHOULD accept HTTP
requests directed at its Graph Store and handle them as specified by this protocol with the exception of security considerations such as those discussed in section 7 and others (DOS attacks, etc.)</p>
<h2>4 <a id="graph-identification" name="graph-identification">Graph Identification</a></h2>
<h3>4.1 <a id="direct-graph-identification" name="direct-graph-identification">Direct Graph Identification</a></h3>
<p>We recall from <a href="#SPARQL">[SPARQL]</a> that IRIs for RDF graphs in SPARQL queries identify a resource, and the resource has a
representation that serializes that graph (or, more precisely: by an RDF document of the graph)</p>
<p>Consider the following HTTP request to a server that implements this protocol:</p>
<pre class="defn">
GET /rdf-graphs/employees HTTP/1.1
Host: example.com
Accept: application/rdf+xml
</pre>
<p>Per <a href="#rfc2616">[RFC2616]</a>, the most common usage of a Request-URI is to identify a resource on an origin server or gateway. In our example,
the corresponding request URI (<strong>http://example.com/rdf-graphs/employees</strong>) is meant to identify RDF triples on the example.com server that describe
employees. In addition, the
request specifies the <strong>GET</strong> method, which means that a representation of these triples should be returned. In this case,
the preferred representation format is <em>application/rdf+xml</em></p>
<p>In this way, the server would route operations on a named graph in an Graph Store via its Graph IRI. However, in using a URI in this way,
we are not <em>directly</em> identifying an RDF graph but rather the RDF graph content that is represented by an RDF document, which is a serialization of that graph.
Intuitively, the set of interpetations that satisfy <a href="#RDF-MT">[RDF-MT]</a> the RDF graph that the RDF document is a serialization of can be thought of as this RDF graph content.</p>
<p>The diagram illustrates this distinction. This diagram illustrates the basic kind of operation where the request URI
identifies the RDF graph content being manipulated over the protocol.</p>
<p><img src="ProtocolModel.jpg" alt="Protocol model diagram" /><br />
<b>Figure 1</b>: A diagram of the protocol model for direct graph references.</p>
<h3>4.2 <a id="indirect-graph-identification" name="indirect-graph-identification">Indirect Graph Identification</a></h3>
<p>Despite the convenience of using the request URI to identify RDF graph content for manipulation, it is often the case that:</p>
<ul>
<li>the naming authority associated with the URI of an RDF graph in a Graph Store is not the same as the server managing the identified RDF content</li>
<li>the naming authority is not available</li>
<li>the URI is not <a href="http://www.w3.org/TR/webarch/#uri-dereference">dereferencable</a> (i.e., when dereferenced, it does not produce a RDF graph representation)</li>
</ul>
<p>As discussed in <a href="#rfc3986">[RFC3986]</a>, query components are often used to carry identifying information in the form of key / value pairs where the value is another URI. This protocol leverages this convention and
provides a specific interface whereby a graph IRI can be embedded within the query component of the request URI:</p>
<pre class="defn">
GET /rdf-graphs/service?<strong>graph</strong>=<em>http%3A//www.example.com/other/graph</em> HTTP/1.1
Host: example.com
Accept: application/rdf+xml
</pre>
<p>In the example above, the embedded graph IRI (<code>http://www.example.com/other/graph</code>) is percent-encoded <a href="#rfc3986">[RFC3986]</a> and <em>indirectly</em>
identifies RDF triples to manipulate. Any server that implements this protocol and receives a request URI
in this form SHOULD invoke the indicated operation on the RDF graph content identified by the IRI embedded in the query component where the IRI is the
result of percent-decoding the value associated with the <em>graph</em> key. The embedded URI MUST be an absolute URI and the server MUST
respond with a <code>400 Bad Request</code> if it is not. The diagram below illustrates this.</p>
<p><img src="ProtocolModelIndirect.jpg" alt="Protocol model diagram for indirect manipulation" /><br />
<b>Figure 2</b>: A diagram of the protocol model for indirect graph references.</p>
<p>In a similar manner, a query component comprised of the string <em>default</em> can be used to indicate that the operation indirectly identifies
the default graph in the Graph Store. So, the example above can be modified to a request for an RDF/XML document that serializes
the default graph in the Graph Store:</p>
<pre class="defn">
GET /rdf-graphs/service?<strong>default</strong> HTTP/1.1
Host: example.com
Accept: application/rdf+xml
</pre>
<p>In a request such as:</p>
<pre class="defn">
GET /rdf-graphs/service?<strong>graph</strong>=<em>http%3A//www.example.com/other/graph</em> HTTP/1.1
Host: example.com
Accept: application/rdf+xml
</pre>
<p><code>http://www.example.com/rdf-graphs/service</code> identifies the HTTP service that implements this protocol. In order to dispatch requests
to manage named or default graphs by embedding them in the query component of the service URL, the service URL will need to be known a priori.
As will be discussed later in this document, both HTTP <strong>OPTIONS</strong> and <strong>GET</strong> requests can be sent to the service and the response
to such a request is a service description document</p>
<p> As indicated in <a href="http://www.apps.ietf.org/rfc/rfc3986.html#sec-3.3">section 3.3</a> of <a href="#rfc3986">[RFC3986]</a>, the path component (of a URI) contains data, usually organized in hierarchical form, that, along with data in the
non-hierarchical query component, serves to identify a resource within the scope of the URI's scheme and naming authority. So, the full request
URI identifies the same RDF graph content as does the URI embedded in the query component that is managed by the authority.</p>
<h2>5 <a id="graph-management" name="graph-management">Graph Management Operations</a></h2>
<p>This section describes the use of the HTTP verbs to determine the operations performed on RDF graph content. In places where an equivalent SPARQL Update operation is given,
<graph_uri> is understood to be either the request URI or the URI indirectly specified via the query component as described above. Similarly, in the case of
an operation that manages the default graph, the SPARQL Update operation will not include any mention of a graph.</p>
<p>For operations involving an RDF payload (PUT and POST), the server MUST parse the RDF payload according to media type specified in the <em>Content-Type</em> header
(if provided in the request). If this header is not provided, the server SHOULD attempt to parse the RDF payload as RDF/XML. Similarly, if the
<em>Accept</em> header is not provided, the server SHOULD return an RDF XML document.</p>
<p>Developers of implementations of this protocol should refer to <a href="#rfc2616">[RFC2616]</a> for additional details of appropriate behavior beyond those specified here. Section
5 only serves to define the behavior specific to the manipulation af RDF graph content. For example, conditional requests that make use of headers such as
If-Modified-Since that are intended to reduce unnecessary network usage should be handled appropriately by implementations of this protocol per <a href="#rfc2616">[RFC2616]</a>.</p>
<h3>5.1 <a id="status-codes" name="http-put">Status Codes</a></h3>
<p>In response to requests to the graph management operations specified in this protocol, implementations MUST include a status code <a href="#rfc2616">[RFC2616]</a> appropriate
for the operation indicated and the result from invoking the operation. For example, in response to operations involving a RDF payload, if
the attempt to parse the RDF payload according to the provided <em>Content-Type</em> fails then the server should respond with a <code>400 Bad Request</code>.</p>
<p>A request using an unsupported HTTP verb in
conjunction with a malformed or unsupported request syntax should recieve a response with a <code>405 Method Not Allowed</code>. If the RDF graph content identified in the request does not exist in the server,
and the operation requires that it does, a <code>404 Not Found</code> response code SHOULD be provided in the response.</p>
<h3>5.2 <a id="http-put" name="http-put">HTTP PUT</a></h3>
<p>A request that uses the HTTP <strong>PUT</strong> method SHOULD store the enclosed RDF payload as RDF graph content. In the examples below, the initial HTTP
request SHOULD be understood to have the same effect as the sequence of SPARQL Update operations that follow</p>
<pre class="defn">
PUT /rdf-graphs/service?graph=..graph_uri.. HTTP/1.1
Host: example.com
Content-Type: application/rdf+xml
... RDF payload ...
</pre>
<pre class="defn">
DROP SILENT GRAPH <graph_uri>;
INSERT DATA { GRAPH <graph_uri> { .. RDF payload .. } }
</pre>
<p>In the case where the default graph is targeted (via <em>default</em> query component) for management, the following operations are equivalent</p>
<pre class="defn">
PUT /rdf-graphs/service?default HTTP/1.1
Host: example.com
Content-Type: application/rdf+xml
... RDF payload ...
</pre>
<pre class="defn">
DROP SILENT DEFAULT;
INSERT DATA { .. RDF payload .. }
</pre>
<p>Either the request or the encoded URI (embedded in the query component) identifies the RDF payload enclosed with the request as RDF graph content.
The server MUST NOT attempt to apply the request to some other resource. If the identified RDF graph content already exists, the enclosed entity SHOULD be considered
as a modified version of the one residing on the origin server. If the identified RDF graph content does not exist and that URI is capable of being defined as new RDF graph content by the requesting user
agent, the origin server SHOULD create the RDF graph content with that URI in the underlying Graph Store. <strong>DROP</strong> is needed to remove any previous
RDF graph content. Developers should refer to <a href="#SPARQL-UPDATE">[SPARQL-UPDATE]</a> for the specifics of how to handle empty graphs. In particular,
if the request body is empty and there is sufficient authorization to create a new named graph with an IRI of that indicated by the request URI, then an empty
graph would need to be created.</p>
<p>If new RDF graph content is created, the origin server MUST inform the user agent via the <code>201 Created</code> response. If existing RDF graph content
is modified, either the <code>200 OK</code> or <code>204 No Content</code> response codes SHOULD be sent to indicate successful completion of the request.
If the resource could not be created or modified with the Request-URI (perhaps due to security considerations), an appropriate error response SHOULD be given that reflects
the nature of the problem.</p>
<h3>5.3 <a id="http-delete" name="http-delete">HTTP DELETE</a></h3>
<p>A request that uses the HTTP <strong>DELETE</strong> method SHOULD delete the RDF graph content identified by either the request or encoded URI. This method MAY be overridden
by human intervention (or other means) on the origin server. If there is no such RDF graph content in the Graph Store, the server MUST respond with a
<code>404 Not Found</code> response code.</p>
<pre class="defn">
DELETE /rdf-graphs/service?graph=..graph_uri.. HTTP/1.1
Host: example.com
</pre>
<p>Is equivalent to:</p>
<pre class="defn">
DROP GRAPH <graph_uri>
</pre>
<p>in the case where a named graph is targeted for management. Otherwise, the following</p>
<pre class="defn">
DELETE /rdf-graphs/service?default HTTP/1.1
Host: example.com
</pre>
<p>is equivalent to</p>
<pre class="defn">
DROP DEFAULT
</pre>
<p> A response code of <code>200 OK</code> or <code>204 No Content</code> SHOULD be given in the response if the operation succeeded or 202 (Accepted) if the action has not
yet been enacted. However, the server SHOULD NOT indicate success unless, at the time the response is given, it intends to delete
the RDF graph content or move it to an inaccessible location. In the event the operation is overridden, a response code of <code>403 Forbidden</code>
should be returned.</p>
<h3>5.4 <a id="http-post" name="http-post">HTTP POST</a></h3>
<p>A request that uses the HTTP <strong>POST</strong> method SHOULD be understood as a request that the origin server perform an RDF merge of the enclosed
RDF payload enclosed into the RDF graph content identified by the request or encoded URI. The following two operations are considered to have the same effect</p>
<pre class="defn">
POST /rdf-graphs/service?graph=..graph_uri.. HTTP/1.1
Host: example.com
Content-Type: application/rdf+xml
... RDF payload ...
</pre>
<pre class="defn">
INSERT DATA { GRAPH <graph_uri> { .. RDF payload .. } }
</pre>
<p>In the case where a default graph is targeted for management, the following are equivalent</p>
<pre class="defn">
POST /rdf-graphs/service?default HTTP/1.1
Host: example.com
Content-Type: application/rdf+xml
... RDF payload ...
</pre>
<pre class="defn">
INSERT DATA { .. RDF payload .. }
</pre>
<p>If the request URI identifies the underlying Graph Store,
the origin server SHOULD create a new RDF graph comprised of the statements in the RDF payload and return a designated graph IRI associated with the new graph.
The new graph IRI should be specified in the Location HTTP header along with a <code>201 Created</code> code and be different from the request URI. Within a
service description document for an implementation of this protocol, the URI of an instance of the sd:Dataset class is understood to be the identifier of the Graph Store</p>
<p>So, given the following request and response:</p>
<pre class="defn">
GET /rdf-graphs/service HTTP/1.1
Host: example.com
Accept: application/rdf+xml
</pre>
<pre class="defn">
<a id="graph-store-description-example"/>
HTTP/1.1 200 OK
Date: .. some date ..
Server: ... etc ...
Last-Modified: .. some date ..
Etag: ".. etc .."
Content-Length: .. length of service description document ..
Connection: close
Content-Type: text/turtle; charset=UTF-8
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix sd: <http://www.w3.org/ns/sparql-service-description#> .
<> a sd:Service;
sd:defaultDatasetDescription <http://www.example.com/rdf-graphs> .
<http://www.example.com/rdf-graphs> a sd:Dataset
..snip..
</pre>
<p>Then the following are equivalent:</p>
<pre class="defn">
POST /rdf-graphs HTTP/1.1
Host: example.com
Content-Type: application/rdf+xml
... RDF payload ...
</pre>
<pre class="defn">
HTTP/1.1 201 Created
Date: .. some date ..
Server: ... etc ...
Last-Modified: .. some date ..
Location: http://example.com/rdf-graphs/newGraph1
</pre>
<pre class="defn">
CREATE GRAPH <new_uri>
INSERT DATA { GRAPH <new_uri> {.. RDF payload .. } }
</pre>
<p>Where <new_uri> is a new URI that is designated by the service, is different from <em>http://www.example.com/rdf-graphs</em>, does not correspond to
an existing graph IRI in the store, and is returned as the value of the Location HTTP header along with a <code>201 Created</code> code.</p>
<p>This scenario is useful for situations where the requesting agent either does not want to specify the graph IRI of a new graph to create
(via the PUT method) or does not have the appropriate authorization to do so. If the graph IRI does not identify either a
Networked-manipulable Graph Store or RDF graph content, the origin server should respond with a <code>404 Not Found</code>.</p>
<p>In either case, if the request body is empty, the implementation SHOULD respond with <code>204 No Content</code>.</p>
<p>This protocol is a companion to the use of
SPARQL Update over the SPARQL protocol which uses HTTP POST to transmit a SPARQL Update request. Both protocols specify
<em>different</em> operations performed via the HTTP POST method.</p>
<h3>5.5 <a id="http-get" name="http-get">HTTP GET</a></h3>
<p>A request that uses the HTTP <strong>GET</strong> method SHOULD retrieve an RDF payload that is a serialization of the named graph paired with the graph IRI in the Graph Store.</p>
<p>The following two operations are considered to be equivalent</p>
<pre class="defn">
GET /rdf-graphs/service?graph=..graph_uri.. HTTP/1.1
Host: example.com
Accept: application/rdf+xml
</pre>
<pre class="defn">
CONSTRUCT { ?s ?p ?o } WHERE { GRAPH <graph_uri> { ?s ?p ?o } }
</pre>
<p>Where the request involves the <em>default</em> query component, the following two operations are equivalent</p>
<pre class="defn">
GET /rdf-graphs/service?default HTTP/1.1
Host: example.com
Accept: application/rdf+xml
</pre>
<pre class="defn">
CONSTRUCT { ?s ?p ?o } WHERE { ?s ?p ?o }
</pre>
<p>The response to such a SHOULD be made cacheable wherever possible and in any of the preferred representation formats specified in the Accept request-header field. In the event that the specified representation format is not supported,
a <code>406 Not Acceptable</code> response code should be returned.</p>
<h4>5.5.1 <a id="httpRange-14">Ambiguity Regarding the Range of HTTP GET (Informative)</a></h4>
<p>Historically, there has been some <a href="http://www.w3.org/2001/tag/issues.html#httpRange-14">ambiguity</a> regarding the nature of what
is returned from dereferencing a URI. When an HTTP <strong>GET</strong> is invoked with a request URI, what is returned and what is its relation to the resource
identified by the request URI? In resolving this ambiguity, the W3C Technical Architecture Group specified a <a href="http://lists.w3.org/Archives/Public/www-tag/2005Jun/0039">simple rule</a>
that determines the nature of the resource based on the response code returned. In this protocol, HTTP <strong>GET</strong> requests
are used to retrieve a representation of the RDF graph content identified (directly or indirectly) by the Request-URI. Graph IRIs identify
RDF graph content (an information resource) and so such a request should recieve a response with a <code>200 (Ok)</code> which is consistent
with these rules, the first of which states:
<span>If an "http" resource responds to a <strong>GET</strong> request with a <code>2xx</code> response, then the resource identified by that URI is an information resource;</span>
</p>
<p>Information resources are resources with essential characteristics that can all be conveyed in a message <a href="#WEBARCH">[WEBARCH]</a>. In this case,
the characteristics of RDF graph content can be conveyed as RDF payload which serializes the named graph paired with the
graph IRI in the underlying Graph Store. This protocol provides a means
for requesting the representation without the need for indirection at the protocol level even if
the naming authority associated with the URI of the named RDF graph in the Graph Store is not the same as the
server managing the identified RDF graph content.</p>
<h3>5.6 <a id="http-head" name="http-get">HTTP HEAD</a></h3>
<p>When used in this protocol, the HTTP <strong>HEAD</strong> method is identical to <strong>GET</strong> except that the server MUST NOT return a message-body in the response. It is meant to be used for
testing dereferencable URIs for validity, accessibility, and recent modification. The response to such a request from a server that manages a Graph Store
MAY be cacheable. If the new field values indicate that the cached RDF graph content differs from the current entity (as would be indicated by a change in
Content-Length, Content-MD5, ETag or Last-Modified), then the cache MUST treat the cache entry as stale.</p>
<h3>5.7 <a id="http-patch">HTTP PATCH</a> (Informative)</h3>
<p>
The IETF specified <a href="http://tools.ietf.org/html/rfc5789">Patch Method for HTTP</a> can be used to request that a set of changes described in the request entity
be applied to the named graph associated
with the graph IRI of the RDF graph content resource identified by the Request-URI. </p>
<p>SPARQL 1.1 Update is RECOMMENDED for use as a patch document. In particular, SPARQL 1.1 Update requests that manage
the graph associated with the RDF graph content identified (directly or indirectly) in the request can be used
as the RDF payload of a HTTP PATCH request to modify it. If a SPARQL 1.1 Update request is used as the RDF payload for a PATCH request that
makes changes to more than one graph or the graph it modifies is not the one indicated, it is RECOMMENDED that the server
respond with a <code>422 Unprocessable Entity</code> status. Such a request would be counter to the intuition that "REST uses a
resource identifier to identify the particular resource involved in an interaction between components." <a href="#REST">[REST]</a></p>
<p>Intuitively, the difference between the PUT and PATCH requests is reflected in the
way the server processes the enclosed entity to modify the RDF graph content
given by the Request-URI. In a PUT request, the enclosed entity
is considered to be a modified version of the RDF graph content stored on the
origin server, and the client is requesting that the stored version
be replaced. With PATCH, however, the enclosed entity contains a set
of instructions describing how the RDF graph content residing on the
origin server should be modified to produce a new version.
</p>
<!--h2>6 <a id="conditions" name="conditions">Conditional Requests</a></h2>
<p>The semantics of an invocation of any of the operations in this protocol is conditioned on an additional set of criteria if the request message includes an
If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field that indicate this criteria. Such an invocation SHOULD be used to
request that the operation be performed only under the circumstances described by the conditional header field(s). For example, a conditional <strong>GET</strong> requests
that the graph representation be transferred only under the circumstances described by the conditional header field(s) (see <a href="#rfc2616">[RFC2616]</a> for more information on this)
and is intended to reduce unnecessary network usage by allowing cached entities to be refreshed without requiring multiple requests or transferring data already
held by the client.</p-->
<h3>5.8 <a id="http-option">Graph Store Service Discovery (Informative)</a></h3>
<p>It is RECOMMENDED that the <strong>OPTIONS</strong> and <strong>GET</strong> methods be used in a request
whose URI identifies the service that implements this protocol in order to retrieve information about the features of the service.
Per section 2 of <a href="http://www.w3.org/TR/sparql11-service-description/">SPARQL 1.1 Service Descriptions</a>, it is RECOMMENDED
that a service description document be returned from such a request, especially if the implementation also supports the SPARQL Protocol for RDF.</p>
<p>This can aid a web agent in the client-side creation, and use of request URIs for the discovery and augmentation of an underlying Graph store by
dispatching RDF documents to its content via HTTP operations.</p>
<!--p>Service description RDF statements can be made about the <a id="dataset-protocol-descriptions">Graph Store</a> being managed by an implementation of this
protocol (as in the example <a href="#graph-store-description-example">above</a>). These statements can aid a web agent in discovering and augmenting the
underlying Graph store (<code>http://www.example.com/rdf-graphs</code>) by dispatching RDF documents to its content via HTTP POST operations. They also aid in the client-side creation
and use of request URIs for subsequent HTTP operations on RDF graph content that must be indirectly identified in the request (for e.g: <code>http://www.example.com/rdf-graphs/service?graph=..</code>)
as well as the default graph.</p>
<p>In such a use of Service Description RDF graphs to
describe the components of this protocol, the protocol listener itself (<code>http://www.example.com/rdf-graphs/service</code>) can be stated as being an instance of the <code>sd:Service</code> class
wherein the graph store being managed is the corresponding default dataset. Note, the graph store could more appropriately be stated as an instance of a <code>sd:RESTDataset</code> class
, which is disjoint from <code>sd:Dataset</code> @@ Inconsistency @@.
As required by the SPARQL 1.1 Service Description document, the protocol listener would also need to implement the SPARQL Protocol for RDF.</p-->
<h2>6 <a id="security" name="security">Security Considerations</a></h2>
<p>As with any protocol that is implemented as a layer above HTTP, implementations SHOULD take advantage of the many security-related facilities associated with it and are not required to carry out requested graph management operations that may be in contradistinction to a particular security policy in place. For example, when faced with an unauthenticated request to replace system critical RDF statements in a graph through the PUT method, applications may consider responding with the
<code>401 status code (Unauthorized)</code>, indicating that the appropriate authorization is required. In cases where authentication is provided fails to meet the requirements of a particular access control policy, the
<code>403 status code (Forbidden)</code> can be sent back to the client to indicate this failure to meet the access control policy.</p>
<!--h2>8 <a id="conformance" name="conformance">Conformance</a></h2>
<p>@@Additional input is needed regarding whether specific language (beyond describing the expected behavior) is needed
to determine levels of conformance</p-->
<h2>7 <a id="sec-bibliography">References</a></h2>
<h3>7.1
<a id="section-Normative-References" name="section-Normative-References"></a>Normative References
</h3>
<dl class="bib">
<dt id="rfc2119">RFC2119</dt>
<dd>
<cite><a href="http://www.ietf.org/rfc/rfc2119.txt">RFC 2119: Key words for use in RFCs to Indicate Requirement Levels</a>,
Scott Bradner, 1997. (See http://www.ietf.org/rfc/rfc2119.txt) </cite>
</dd>
<dt id="rfc3986">RFC3986</dt>
<dd><cite><a href="http://www.apps.ietf.org/rfc/rfc3986.html">Uniform Resource Identifier (URI): Generic Syntax</a></cite>, Berners-Lee, Fielding, Masinter, January 2005.
</dd>
<dt id="rfc2616">RFC2616</dt>
<dd><cite><a href="http://www.ietf.org/rfc/rfc2616.txt">Hypertext Transfer Protocol - HTTP/1.1</a></cite>. J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee,
June 1999. Available at http://www.ietf.org/rfc/rfc2616.txt.
</dd>
<dt>
<a name="WEBARCH" id="WEBARCH">WEBARCH</a>
</dt>
<dd>
<cite>
<a href="http://www.w3.org/TR/2004/REC-webarch-20041215/">Architecture of the World Wide Web, Volume One</a>
</cite>, N. Walsh, I. Jacobs, Editors, W3C Recommendation, 15 December 2004, http://www.w3.org/TR/2004/REC-webarch-20041215/ . <a href="http://www.w3.org/TR/webarch/">Latest version</a> available at http://www.w3.org/TR/webarch/ .</dd>
<dt id="rfc3987">RFC3987</dt>
<dd><cite><a href="http://www.ietf.org/rfc/rfc3987.txt">Internationalized Resource Identifiers (IRIs)</a></cite>, Duerst, Suignard, January 2005.</dd>
<dt>
<a name="SPARQL-UPDATE" id="SPARQL-UPDATE">SPARQL-UPDATE</a>
</dt>
<dd>
<cite>
<a href="http://www.w3.org/TR/2010/WD-sparql11-update-20100126/">SPARQL 1.1 Update</a>
</cite>, S. Schenk, P. Gearon, Editor, W3C Working Draft, 26 January 2010, http://www.w3.org/TR/2010/WD-sparql11-update-20100126/ . <a href="http://www.w3.org/TR/sparql11-update/" title="Latest version of SPARQL 1.1 Update">Latest version</a> available at http://www.w3.org/TR/sparql11-update/ .</dd>
</dl>
<h3>7.2
<a id="section-Infomrative-References" name="section-informative-references"></a>Informative References
</h3>
<dl>
<dt>
<a name="RDF-MT" id="RDF-MT">RDF-MT</a>
</dt>
<dd>
<cite>
<a href="http://www.w3.org/TR/2004/REC-rdf-mt-20040210/">RDF Semantics</a>
</cite>, P. Hayes, Editor, W3C Recommendation, 10 February 2004, http://www.w3.org/TR/2004/REC-rdf-mt-20040210/ . <a href="http://www.w3.org/TR/rdf-mt/" title="Latest version of RDF Semantics">Latest version</a> available at http://www.w3.org/TR/rdf-mt/ .</dd>
<dt>
<a name="REST" id="REST">REST</a>
</dt>
<dd>
<cite>
<a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm">Representational State Transfer (REST)</a>
</cite>, R. Fielding, Ph.D. dissertation, 2000, <a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm" title="Latest version of RDF Semantics">Latest version</a> available at http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm .</dd>
<dt>
<a name="SPARQL" id="SPARQL">SPARQL</a>
</dt>
<dd>
<cite>
<a href="http://www.w3.org/TR/2008/REC-rdf-sparql-query-20080115/">SPARQL Query Language for RDF</a>
</cite>, E. Prud'hommeaux, A. Seaborne, Editor, W3C Recommendation, 15 January 2008, http://www.w3.org/TR/2008/REC-rdf-sparql-query-20080115/ . <a href="http://www.w3.org/TR/rdf-sparql-query/" title="Latest version of Query Language for RDF">Latest version</a> available at http://www.w3.org/TR/rdf-sparql-query/ .</dd>
</dl>
<h3 id="cvs-history">CVS History</h3>
<pre>
<!-- log starts on next line, not this one -->
$Log: Overview.html,v $
Revision 1.1 2011/05/09 18:47:23 sandro
copied from 2009/sparql/docs/pub/20110512, and altered ../shared/local.css to shared.css
Revision 1.2 2011/05/06 08:48:02 apollere2
Fixed final TR location s/2010/2011/
Revision 1.1 2011/05/05 22:18:27 apollere2
Moved gen.html to Overview.html
Revision 1.4 2011/05/05 21:41:05 cogbuji
more of the same
Revision 1.3 2011/05/05 21:40:16 cogbuji
more XHTML WF checking
Revision 1.2 2011/05/05 21:29:43 cogbuji
XML wf commit
Revision 1.1 2011/05/05 21:26:46 cogbuji
initial commit for LC publication
Revision 1.76 2011/03/28 15:05:47 cogbuji
- Changed title to SPARQL 1.1 Graph Store HTTP Protocol
- Changed title of 5.8 to 'Service Description Requests (Informative)'
- Clarified behavior of empty PUTs with redirect to Update language specification
- Clarified behavior of empty POST
- Clarified that SD vocabulary should only be used if implementation is also a SPARQL protocol
for RDF implementation
- Removed use of 'extension' vocabulary to describe components of Graph Store protocol model.
Revision 1.75 2011/03/08 12:10:07 cogbuji
added description of SD RDF statements regarding dataset protocol and graph store
Revision 1.74 2011/02/19 22:43:24 cogbuji
IRI -> URI (per Jeremy's suggestion)
Revision 1.73 2011/02/18 04:43:01 cogbuji
addressed various comments in http://lists.w3.org/Archives/Public/public-rdf-dawg/2011JanMar/0274.html
Revision 1.72 2011/02/08 21:36:16 cogbuji
fixed HTTP headers in example
Revision 1.71 2011/02/08 21:32:02 cogbuji
minor rewording. addressed inconsistencies in examples and their references to services v.s. graph stores. added an example for the POST to graph store scenario. Updated the diagrams to reflect updated terminology
Revision 1.70 2011/02/05 04:43:27 cogbuji
various changes to address Andy S. review of prior to LC. See: http://lists.w3.org/Archives/Public/public-rdf-dawg/2011JanMar/0182.html
Revision 1.69 2011/01/25 16:32:59 cogbuji
updated title to 'SPARQL 1.1 RDF Dataset HTTP Protocol' per 1/25/2011 WG resolution
Revision 1.68 2011/01/25 14:45:25 cogbuji
Changed 'RDF knowledge' to 'RDF graph content'. Removed section on relative Base URI resolution (for relative values in the graph query component). Added language requiring that query component values are absolute URIs. Added language clarifying the role of the REST architectural style and the intention behind the specification
Revision 1.67 2010/12/21 03:04:22 cogbuji
removed working draft header
Revision 1.66 2010/12/20 22:09:24 cogbuji
removed reference to Network-manipulable Graph Store and changed SPARQL Update examples to account for default graph management semantics.
Revision 1.65 2010/12/20 19:06:47 cogbuji
- Added text clarifying what to do if the content-type header is not provided
- Added text clarifying the use of 204 and 404 in response to HTTP DELETE requests
Revision 1.64 2010/12/20 18:59:26 cogbuji
The following changes were committed to the editor's draft of the SPARQL 1.1 HTTP Protocol:
- Per Ian D.s comment, Serialize (verb.) was added to the terminology section to clarify the use of the word between RDF graphs and documents
- All references to Network-manipulable Graph Store were removed (the use of ?default removes the last vestige of a distinction from a Graph Store)
- Other minor typos
- Added description of ?default mechanism to 4.2
- Added text describing that (for indirect requests via embedded graph URIs), the part minus the query identifies the service which can be targetted
- Added text tying in RFC-3986's statements regarding the scope of what the path + query component identify to conclude that indirect, embedded
requests identify the same RDF knowledge as does the embedded URI itself (this is new and figure 2 has been updated to reflect this)
- The behavior of the use of HTTP PATCH with SPARQL Update documents is clarified along with appropriate status codes to respond with
- The non-normative language at the end of section 8 has been modified such that the response to OPTION/GET requests to the service directly
return service description documents
Revision 1.63 2010/10/08 02:57:11 cogbuji
minor touch up
Revision 1.62 2010/10/08 02:55:22 cogbuji
updated change summary
Revision 1.61 2010/10/08 02:46:11 cogbuji
updates for pubrules
Revision 1.60 2010/10/08 02:11:02 cogbuji
addressing well formedness issues for pubrules
Revision 1.59 2010/10/08 02:08:11 cogbuji
fixes for XML wfness
Revision 1.58 2010/10/08 02:06:16 cogbuji
updates to fix pubrules
Revision 1.57 2010/10/08 01:31:17 cogbuji
updates for publication
Revision 1.56 2010/09/15 00:27:11 cogbuji
changes to language regarding HTTP Patch to remove use of RFC 2119 language
Revision 1.55 2010/08/03 12:34:27 cogbuji
added HEAD, informative PATCH, and update to httpRange section regarding OPTION, and laxing language regarding 303
Revision 1.54 2010/08/02 20:42:10 cogbuji
fix to abstract
Revision 1.53 2010/08/02 20:36:02 cogbuji
last small fix
Revision 1.52 2010/08/02 20:34:08 cogbuji
grammar fix
Revision 1.51 2010/08/02 20:33:09 cogbuji
small fixes
Revision 1.50 2010/08/02 20:27:35 cogbuji
removed 'previous version' link
Revision 1.49 2010/08/02 20:26:40 cogbuji
Replaced the term Networked RDF knowledge with RDF knowledge, replaced the term Network-manipulable RDF dataset with Network-manipulable Graph Store, and reconcied definitions from the SPARQL Update document. Added response code descriptions, added section describing relationship to httpRange-14 and various other changes
Revision 1.48 2010/05/25 18:17:51 lfeigenb
small pub fixes, added pub date
Revision 1.47 2010/05/20 20:44:51 cogbuji
yet another validation fix
Revision 1.46 2010/05/20 20:43:50 cogbuji
another XHTML validation fix
Revision 1.44 2010/05/20 20:40:04 cogbuji
various pubrules related fixes
Revision 1.43 2010/05/20 19:46:38 cogbuji
switch to WD template and added change summary in SOTD section in prep for publication
Revision 1.42 2010/05/18 13:26:48 cogbuji
Cleaned up language regarding alternative container POST behavior, broken SPARQL Update Language syntax, and added an editorial note about discovering the Network-manipulable Graph Store URI. Updated diagram
Revision 1.41 2010/05/17 23:30:00 cogbuji
fixed double numbering of outline
Revision 1.40 2010/05/17 23:22:09 cogbuji
Updates in response to Greg's review:
http://lists.w3.org/Archives/Public/public-rdf-dawg/2010AprJun/0164.html
Revision 1.39 2010/03/08 19:44:36 cogbuji
Removed two editorial notes, added (to section 5) a sentence addressing handling of Content-Type headers (so there should not be anymore ambiguity about handling different kinds of payloads)
Revision 1.38 2010/01/25 17:26:47 apollere2
changed status linki for IPP.
Revision 1.37 2010/01/25 16:55:45 apollere2
changed pointer to WG.
Revision 1.36 2010/01/25 16:48:19 apollere2
Changed URI to example.org.
Revision 1.35 2010/01/25 16:46:28 apollere2
changed link to WG.
Revision 1.34 2010/01/25 16:35:14 apollere2
fixed small validation error.
Revision 1.33 2010/01/25 16:34:25 apollere2
Added mentions of the group, requests for feedback, etc.
Revision 1.32 2010/01/25 15:31:14 bertails
~ fix based on Ian's suggestion (re: pubrules checker)
Revision 1.31 2010/01/24 15:16:23 apollere2
fixed broken anchor.
Revision 1.30 2010/01/24 15:12:39 apollere2
Fixed last validation error.
Revision 1.29 2010/01/23 03:17:20 cogbuji
- Final updates in preparation for publication (summary of updates, toc, etc..)
Revision 1.28 2010/01/22 02:17:46 apollere2
Added no-endorsement and patents boilerplate.
Revision 1.27 2010/01/22 02:12:04 apollere2
Made the date concrete.
Revision 1.26 2010/01/19 15:08:26 cogbuji
XHTML validation fixes
Revision 1.25 2010/01/19 15:00:57 cogbuji
Fix to make consistent use of language regarding URIs resolvable and otherwise that are request uris or embedded. Updated diagrams, added a diagram for indirect reference via embedded URI
Revision 1.24 2010/01/12 15:10:11 cogbuji
references to percent-encoding and percent-decoding for new query component interface
Revision 1.23 2010/01/12 13:37:34 cogbuji
Added clause to also describe non-dereferencable URIs as motivation for the ?graph=.. interface
Revision 1.22 2010/01/12 07:04:08 cogbuji
From Lee's review
- editorial clarifications
- fixes to samples
Revision 1.21 2010/01/12 06:26:15 cogbuji
Incorporated changes suggested in review (http://lists.w3.org/Archives/Public/public-rdf-dawg/2009OctDec/0660.html) - mostly related to use of ?graph=uri, and fixes to SPARQL Update language snippets.
Revision 1.20 2009/12/14 20:16:51 cogbuji
updates to address comments from Leigh Dodds
Revision 1.19 2009/10/21 01:52:56 lfeigenb
fixed link
Revision 1.18 2009/10/21 01:37:45 lfeigenb
more pubrules prep
Revision 1.17 2009/10/21 01:34:53 lfeigenb
pubrules prep
Revision 1.16 2009/10/16 20:58:07 cogbuji
css validation icon
Revision 1.15 2009/10/16 20:56:48 cogbuji
more pubrules fixes
Revision 1.14 2009/10/16 20:51:32 cogbuji
validation icon added to bottom
Revision 1.13 2009/10/16 20:49:53 cogbuji
move pub-rules fixes (XHTML WFormedness)
Revision 1.12 2009/10/16 20:48:44 cogbuji
XHTML strict profile fixes
Revision 1.11 2009/10/16 20:40:32 cogbuji
various pub-rules related fixes
Revision 1.10 2009/10/16 20:25:10 cogbuji
well-formedness issueas
Revision 1.9 2009/10/16 19:54:46 cogbuji
added references, fixed a few things
Revision 1.8 2009/10/12 16:50:11 cogbuji
incorporated comments from DAWG members regarding proxies, and POST semantics
Revision 1.7 2009/10/06 16:09:51 cogbuji
Updates per feedback from AndyS: http://lists.w3.org/Archives/Public/public-rdf-dawg/2009OctDec/0004.html
Revision 1.6 2009/09/29 01:50:43 cogbuji
updated model diagram and updated use of terminology
Revision 1.5 2009/09/28 22:27:04 cogbuji
updated language regarding granularity
Revision 1.4 2009/09/28 22:25:29 cogbuji
no-op to test log directive
</pre>
<p>
<a href="http://validator.w3.org/check?uri=referer"><img
src="http://www.w3.org/Icons/valid-xhtml10-blue"
alt="Valid XHTML 1.0 Strict" height="31" width="88" /></a>
</p>
<p>
<a href="http://jigsaw.w3.org/css-validator/check/referer">
<img style="border:0;width:88px;height:31px"
src="http://jigsaw.w3.org/css-validator/images/vcss-blue"
alt="Valid CSS!" />
</a>
</p>
</body>
</html>