Re: [Specifications] Use the term Action instead of Operation

Short note on Operations (on web resources) and Actions (on abstract 
things). I've mostly seen instances of `hydra:Operation` represented 
with blank nodes but they could as well have `@id`. Action on abstract
 thing could possibly reference particular Operation (since each 
operation could have an `@id`) and web resource on which to perform it
 - (maybe with https://schema.org/target )

Taking example of Alice and list of her 'followers', represented by 
https://www.w3.org/community/hydra/wiki/Collection_Design and used 
like [ldp:IndirectContainer](https://www.w3.org/TR/ldp/#ldpic)

```json
{
  "@context": { ... },
  "@graph": [
    {
      "@id": "https://dataset.example/api#operation-123",
      "@type": "hydra:CreateResourceOperation",
      "hydra:method": "POST",
      "hydra:expects": "foaf:PersonalProfileDocument"
    },
    {
      "@id": "https://dataset.example/alice",
      "@type": [ "hydra:Resource", "foaf:PersonalProfileDocument" ],
      "foaf:primaryTopic": {
        "@id": "https://idp.example/alice",
        "foaf:name": "Alice",
        "schema:potentialAction": [
          {
            "@type": "schema:FollowAction",
            "schema:target": 
"https://dataset.example/alice/followers/",
            "???:operation": 
"https://dataset.example/api#operation-123"
          }
        ]
      }
    },
    {
      "@id": "https://dataset.example/alice/followers/",
      "@type": "hydra:Collection",
      "hydra:manages": {
        "hydra:property": "schema:follows",
        "hydra:object": "https://idp.example/alice"
      },
      "hydra:member": [
        "https://dataset.example/alice/followers/1"
      ]
    },
    {
      "@id": "https://dataset.example/alice/followers/1",
      "@type": [ "hydra:Resource", "foaf:PersonalProfileDocument" ],
      "foaf:primaryTopic": {
        "@id": "https://idp.example/bob",
        "foaf:name": "Bob"
      }
    }
  ]
}
```

So to add oneself to list of someone's followers, one would HTTP POST 
to `https://dataset.example/alice/followers/` a copy of profile 
document:

```json
{
  "@context": { ... },
  "@type": [ "hydra:Resource", "foaf:PersonalProfileDocument" ],
  "foaf:primaryTopic": {
    "@id": "https://idp.example/cecilia",
    "foaf:name": "Cecilia"
}
```

Which server could after validations store as 
`https://dataset.example/alice/followers/2`



-- 
GitHub Notification of comment by elf-pavlik
Please view or discuss this issue at 
https://github.com/HydraCG/Specifications/issues/2#issuecomment-269825428
 using your GitHub account

Received on Friday, 30 December 2016 21:42:32 UTC