On 2014-11 -24, at 22:50, Tim Berners-Lee <timbl@w3.org> wrote:
On 2014-11 -24, at 16:07, Alexandre Bertails <alexandre@bertails.org> wrote:
> On Mon, Nov 24, 2014 at 4:00 PM, Steve Speicher <sspeiche@gmail.com> wrote:
>> On Mon, Nov 24, 2014 at 3:52 PM, Alexandre Bertails
>> <alexandre@bertails.org> wrote:
>>> On Mon, Nov 24, 2014 at 3:42 PM, Steve Speicher <sspeiche@gmail.com> wrote:
>>>> On Mon, Nov 24, 2014 at 2:30 PM, Alexandre Bertails
>>>> <alexandre@bertails.org> wrote:
>>>>> On Mon, Nov 24, 2014 at 2:10 PM, Steve Speicher <sspeiche@gmail.com> wrote:
>>>> ...snip...
>>>>>>
>>>>>> <#delete-statement> I wonder about this requirement:
>>>>>> "It fails if one of those triples does not exist in the target graph." and later
>>>>>> "If a Delete attempts to remove a non-existing triple, then a HTTP 422
>>>>>> (Unprocessable Entity) error status code must be returned."
>>>>>> I wonder why this requirement exists?
For example,
1) if two users are updating the same application data,
if they make conflicting changes you may want one of them to fail with a beep and the other to succeed.
2) As another example, if you want to give out a series of identifiers one way is to increment
a triple
:foo :nextSequence 9.
to say
:foo :nextSequence 10.
so that you have uniquely claimed sequence number 9.
If someones else tries first, you get a failure.
My current software returns 409 Conflict
This also suggested in the 2009 note
http://www.w3.org/DesignIssues/ReadWriteLinkedData.html
Not sure why the spec suggests 422 instead.
Maybe a good reason.
I can see others having a different requirement for a "delete if it exists" which does fail silently if it doesn't.
timbl
(not sent to WG list - not authorized)