- From: Steve Speicher <sspeiche@gmail.com>
- Date: Tue, 25 Feb 2014 13:22:58 -0500
- To: Sandro Hawke <sandro@w3.org>
- Cc: Linked Data Platform WG <public-ldp-wg@w3.org>
- Message-ID: <CAOUJ7JqoBJmrh93Vt9RyUXfA_1U8jye7hF8gM0uf65sYbNmj9Q@mail.gmail.com>
On Tue, Feb 25, 2014 at 12:34 PM, Sandro Hawke <sandro@w3.org> wrote: > > [This is not Last-Call critical. Just flagging an item for future work, when I'm thinking about it.] > > We closed ISSUE-15 (sharing binary resources and metadata) by saying that the server MAY provide metadata via rel=describeby. (Typo -- the spec says describedBy.) > > In the spec, and in my memory of the discussions, we never provided a way for the client to provide metadata. This leaves the problem mostly unsolved. This was never a use case people asked for other than using Slug to name the thing, so there was no problem to solve. We did talk about it and said that clients would need to updated separately the associated LDP-RS. Work I have done in OSLC [1] in using this approach highlighted there were few cases where we needed it. How much meta stuff do you need to send? So this definitely sounds like LDP++ stuff from what I recall of this discussion and resolution. > > What follows is some brainstorming about how to solve this. My best solution is at the end. > > My first thought was to mandate the server MUST create and link to an empty metadata resource. Then the client can PUT/PATCH there. But I think there's a problem with that timing window. I expect there will be other clients and processes waiting for NRs to appear, and which will begin to do things with them immediately. If the metadata doesn't appear for one or two RTTs, that could be problematic. > > Probably the clean solution, though it's a little more complex, is to use multipart/related (RFC-2387). I don't know all the details of how that's supposed to work, or works in practice, though. > > I guess we can just leave this to some future guidance on multipart/related. And I guess if one were going to use multipart/related, one could also allow multiple new Contained resources to be created at once, which could be useful. > > Or maybe use multipart/form-data (RFC-2388), so that users COULD just use an uploading from a client to post to a server. That would require a bit of a hack in pre-determining how ldp:Container resources handle field names. > > Oh, this gets really messy, since the metadata wont know the URL for itself OR the thing it's describing. It can use the empty URL for one of those, but not both. I guess it uses the empty URL for the thing it's describing and can't refer to itself, ... but that could be bad, too. > > Okay, okay, best solution: > 1. POST an empty text/plain resource. > 2. Pray the server creates a companion metadata resource > - you could strongly hint that it should by doing a GET Prefer: follow-link rel=describedby > 3. Fill in the metadata > 4. PUT to replace the text/plain thing with the real thing. > So you are saying this doesn't work for you as you might expect to not get the rel=describedBy (meta) resource soon? 1. POST LDP-NR, no meta resource LDP-RS is created and therefore no rel=describedBy Link header Are you worried about not server not providing you this link header? 2. POST LDP-SR, with { <ldp-nr>, wdrs:describedBy, <> } triple [1] - http://open-services.net/wiki/change-management/Attachments-for-Change-Requests/ - Steve > -- Sandro > > [1] http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1 >
Received on Tuesday, 25 February 2014 18:23:26 UTC