Description
Appending to a resource is a central tenet of Solid, and I'm not sure we have issues open already to address it sufficiently, thus this issue. This is of relevance in discussing #108 . LDP doesn't discuss append, AFAICS, so we have to.
It is founded in the acl:Append
access mode in the current WAC document, which states:
acl:Append gives a more limited ability to write to a resource -- Append-Only. This generally includes the HTTP verb POST, although some implementations may also extend this mode to cover non-overwriting PUTs, as well as the INSERT-only portion of SPARQL-based PATCHes. A typical example of Append mode usage would be a user's Inbox -- other agents can write (append) notifications to the inbox, but cannot alter or read existing ones.
For LDP-RS, it seems straightforward, as it eventually boils down to an RDF Merge, either through POST
, non-overwriting PUT
(seems awkward to define to me), or an SPARQL INSERT
through PATCH
.
For LDP-C, there are two interpretations, AFAICS: it could be argued that creating a resource in a container is an append operation on the container. So, we need to figure out whether acl:Append
on a container is sufficient to create a new resource in a container, or if you need acl:Write
to do it. There is a slight difference in wording in the definition of POST
between RFC2616 and RFC7231 on this, the former says:
Extending a database through an append operation.
which could support the notion that creating a resource in a container is extending a database and so an append operation, but the latest RFC does not support that (at least to the same extent).
For LDP-NR, it seems quite a lot harder, since it depends on the media type whether it is possible to append to it. We could define some general rules around what you'd do if your media type does not support appending, or we could just be strict for now and say that LDP-NR cannot be appended to.
Metadata
Metadata
Assignees
Type
Projects
Status