Re: [Specifications] Separating GET and PUT requests (a'la CQRS) (#234)

I don't find this too practical. Yes, I actually plan on using SHACL but for any existing resource the client would have received, say,

```turtle
# foaf:Agent inferred as superclass of foaf:Person
<John> a foaf:Person, foaf:Agent .
```

I would like the client to only send the explicit `foaf:Person` in a request to update `<John>`.

SHACL would be possible but that would require overly exact shapes, which would have to very precisely the allowed values of `rdf:type` to reject a request with `foaf:Agent`. 

This will not work as a generalised solution. First, it prevents flexible schema evolution, which can add or remove inferred triples at any point in time. Second, each individual resource could potentially be different. `<John>` may only be explicit `foaf:Person` but another resource could in fact be stored as having both types (or additional types). Would I have a SHACL shape dedicated to specific resources rather than classes?

Finally, I would rather not require the clients to slice and dic the representations. What the `GET`, they should ideally `PUT` back without requiring them to work with hierarchies of shapes in order to `mint and instance` in order to update what the retrieved from the API

-- 
GitHub Notification of comment by tpluscode
Please view or discuss this issue at https://github.com/HydraCG/Specifications/issues/234#issuecomment-821873715 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Saturday, 17 April 2021 19:17:50 UTC