- From: elf Pavlik via GitHub <sysbot+gh@w3.org>
- Date: Sat, 21 Oct 2017 00:22:28 +0000
- To: public-hydra-logs@w3.org
> again, more complicated than "the target is the parent. period"
> [...]
> ditto, if the parent is a template use that. and no need for additional core term
I would prefer that we don't discuss it in terms of some specific framing of JSON-LD and keep in mind that people may prefer to use Turtle or any other serialization. I'll try to stick to Statement (Triple or Quad) and `s, p, o` in all further comments!
>> instances of hydra:Operation which resource references via hydra:action
> no idea what that means
all the operations matching
```ttl
</some-resource> hydra:action ?operation
```
> I still don't understand the distinction between `operation` and `action`. This is pure confusion.
As discussed in #3 currently `hydra:operation` implies that `target` of an `Operation` (`"target"" { "@reverse": "operation" }`) while [`schema:potentialAction`](https://schema.org/potentialAction) does not act as reverse of [`schema:target](http://schema.org/target). This allows resources in schema.org to reference instances of `schema:Action` which have `schema:target` other than the resource itself. I would like us to consider also providing such option in Hydra.
>> 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.
Does it mean that in [UC#1 Entry point](https://github.com/HydraCG/Specifications/blob/master/drafts/use-cases/1.entry-point.md#details) we would have to add statement `</api/events> hydra:addMember </api/events>` ?
``` diff
{
"@id": "/api/events",
"title": "List of events",
"@type": "hydra:Collection",
"manages": {
"property": "rdf:type",
"object": "schema:Event"
},
+ "hydra:addMember": "/api/events",
"operation": {
"@type": ["hydra:Operation", "schema:CreateAction"],
"title": "Create new event",
"method": "POST",
"expects": "schema:Event"
}
}
```
In approach I propose we could simply reuse `schema:AddAction` instead having to define `hydra:addMember`. But now I notice that if we would have
```ttl
</api/events> schema:potentialAction [
a hydra:Operation, schema:AddAction, schema:CreateAction ;
schema:target </api/events/new>
] .
```
`schema:AddAction` should apply to </api/events> but `schema:CreateAction should apply to </api/events/new>` so we get ugly ambiguity here. We could still have
```ttl
</api/events> schema:potentialAction [
a hydra:Operation, schema:AddAction ;
schema:target </api/events/new>
] .
</api/events/new> hydra:operation [
a hydra:Operation, schema:CreateAction
] .
```
--
GitHub Notification of comment by elf-pavlik
Please view or discuss this issue at https://github.com/HydraCG/Specifications/issues/141#issuecomment-338350127 using your GitHub account
Received on Saturday, 21 October 2017 00:22:30 UTC