- From: Steve Speicher <sspeiche@gmail.com>
- Date: Thu, 20 Feb 2014 13:03:34 -0500
- To: Sandro Hawke <sandro@w3.org>
- Cc: Linked Data Platform WG <public-ldp-wg@w3.org>
- Message-ID: <CAOUJ7Jr2QcaonAPyRuE40WPcUA5Gx0-1e1uf2fBt0jUUeERM0g@mail.gmail.com>
On Wed, Feb 19, 2014 at 6:58 PM, Sandro Hawke <sandro@w3.org> wrote: > On 02/19/2014 04:50 PM, Steve Speicher wrote: > > On Wed, Feb 19, 2014 at 4:16 PM, Sandro Hawke <sandro@w3.org> wrote: > >> On 02/19/2014 02:09 PM, Steve Speicher wrote: >> >> >> On Wed, Feb 19, 2014 at 12:34 PM, Sandro Hawke <sandro@w3.org> wrote: >> >>> On 02/19/2014 12:18 PM, Sandro Hawke wrote: >>> >>> As I read the spec, it seems to me that normally a container contains >>> exactly the same resources it has as members. >>> >>> The one circumstance I can see where this would not be true is when >>> ldp:insertedContentRelation is used. >>> >>> I think this is reasonable, but I'm not at all sure I'm reading things >>> right. >>> >>> >>> To be clear, some people think I'm not. The spec says, very >>> cryptically: >>> >>> A LDP Direct Container or LDP Container's membership triples MAY also be >>> modified via through other means. >>> >>> Like what? It also says, "LDP servers SHOULD NOT allow HTTP PUT to >>> update a LDPC's membership triples", so... what are those other means. Is >>> it the cases of the server violating the "SHOULD NOT"? >>> >> >> PATCH or application specific behavior (like membership triples may >> just appear, such as events in a log on the server). I wonder if SHOULD >> NOT is right after the containment resolution. Personally I'd like to just >> generalize it to say "LDP servers SHOULD NOT allow HTTP PUT to update a >> LDPC but instead use PATCH." and we'd avoid other problems. >> >> >> >> Ah. What's wrong with PUT, then? PUT is semantically the same as >> PATCH, just slower. I took the prohibition on PUT to be a prohibition >> on changing the membership triples. >> >> That is because you are a quad-store thinking kind of guy. I have a > product built on various storage technologies (including quad-stores) that > exposes its resources as LDP resources. There is a hefty amount of > application code (access control, pulling from multiple data sources, > inter-resource dependencies, ...) that goes it in front of what an exposed > LDP R or C are. So in order to properly (and efficiently) handing PUT, we > need to run it through the modify action of each requested change. We > could diff the PUT request with current state of the resource and make up > our on PATCH, but as you can see there is inefficiencies in having to get > the resource and then diff it with the incoming entity body content. > > > > Yeah, that seems like a case where your server should say "sorry I don't > do PUT on containers" rather than as now, where the spec says ALL servers > SHOULD NOT allow it. > > I think we are in agreement. I was answering your question on what's wrong with PUT, not building a case for the SHOULD NOT. In another thread I said that after last resolutions, I wonder if this was too strong. I will flag it as something for next meeting to discuss. - Steve (trimmed rest of thread)
Received on Thursday, 20 February 2014 18:04:01 UTC