Re: [Specifications] CreateAction with HTTP PUT

@asbjornu:

> Is there any particular reason why `"hydra:addMember"` has an `@id`

Indeed there is. This is not an operation. It's a link. In triples it would be represented as `</api/events> hydra:addMember </api/events/new>`. I realise that the I chose the predicate poorly. The intention was for a link between the collection and the resource used to created new members. The `target` in the terminology you use.

So again, the target of the operation is always the parent in JSON-LD. The subject in the `?subject hydra:operation ?operation` triple. Hence, no need for an explicit `target` property.

> If `@type` states `schema:CreateAction` and expects is set to `schema:Event`, isn't it obvious that the operation creates events (within the current scope, being the `hydra:Collection`)? Do we need to complicate this further?

Maybe we don't but I do see the value in letting the client know that the created event will become a member of a given collection. This way you can, **optionally**, describe side effects on other resources shall you need to.

> Sorry, but I don't fancy the hydra:BreakLinkEffect proposal, as it sounds way too finegrained to belong in the core vocabulary

I agree. You're right that the core should only include an *abstract* term. An extension point for implementation by specialised vocabularies. I just wanted this as an illustration of how the idea can be executed.

This is also something not crucial for a generic client. It could safely ignore this description and still be able to successfully perform the operation. 

*So maybe this should probably be the deciding factor in any argument whether something belongs to the core vocabulary - is it necessary for a generic client. Anything else should be an extension.*

> Lastly, what's the difference between the properties prefixed with `hydra:` and those who doesn't?

No difference I think. However we're accustomed that we don't prefix the common terms. I prefer to add prefix to something that isn't officially in the vocabulary.

> With this uniformity, it's pretty easy to write a client

We already have this uniformity. The target is always the parent. `@id` or `hydra:templated` to be filled in. 

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

Received on Friday, 20 October 2017 19:38:54 UTC