Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Link Value" term is "wooly" #10

Closed
erincandescent opened this issue Aug 26, 2014 · 7 comments
Closed

"Link Value" term is "wooly" #10

erincandescent opened this issue Aug 26, 2014 · 7 comments

Comments

@erincandescent
Copy link

The "Link Value" type as defined in the present AS2 draft suffers some issues:

  1. The term "Link Value" is overly generic
  2. It permits multiple objects in contexts where only one should be provided (e.g. the object property of an activity)

My suggestion is:

  1. We define the concept of "Abbreviation", in which it is permitted for certain types to be substituted for an abbreviated form.
  2. For Objects, we define that a string which contains an IRI as the permitted abbreviation, in which case the string contains the ID of an object, and which corresponds to the unnabbreviated object { "id": /that-string/}
  3. For Lists of Objects, we define the abbreviated form to be an Object (which may itself be abbreviated), which corresponds to an array in which a single entry is that object
  4. We then replace references to Link Values with Object/List of Objects as appropriate

While I feel that this stands on its' own, it also ties in with the Media Source concept, which I will submit shortly.

@jasnell
Copy link
Collaborator

jasnell commented Aug 26, 2014

If I understand this suggestion correctly, there's no functional difference between the way Link Values currently work. You're mostly suggesting a change in how it is described in text. Is that correct?

@erincandescent
Copy link
Author

Yes, other than this would permit tightening up the definition of e.g. the "object" property such that lists would be prohibited

@jasnell
Copy link
Collaborator

jasnell commented Aug 26, 2014

There's no reason why the "object" property cannot be a list... there can be more than one direct object for an activity, e.g. "James read two books, 'Green Eggs and Ham' and 'The Cat in the Hat'".

{
  "actor": "acct:james@example.org",
  "verb": "read",
  "object": [
    {
      "objectType": "book",
      "displayName": "Green Eggs and Ham"
    },
    {
      "objectType": "book",
      "displayName": "The Cat in the Hat"
    }
  ]
}

@jasnell
Copy link
Collaborator

jasnell commented Aug 26, 2014

I do agree, however, that there are at least some properties (e.g. "generator", "provider") that could be limited to single objects rather than permitting lists. But I'd wager that there are few such properties.

@erincandescent
Copy link
Author

I would argue there that what you have done is read two books, which is two separate activities. While in theory the ability to associate two objects with an activity sounds nice, I just think it complicates implementations unnecessarily.

@jasnell
Copy link
Collaborator

jasnell commented Aug 27, 2014

That depends entirely on the needs of the application ;-) ... I'm working with "rollup" use cases in which the ability to specify multiple actors and multiple objects is seen as a significant advantage. The ability to capture statements like "James read two books" or "James and 3 other people followed Arnaud and Tantek" using a single Activity statement can be quite powerful.

@jasnell
Copy link
Collaborator

jasnell commented Sep 30, 2014

I believe this is addressed in the current vocab proposal.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants