For a number of scenarios I've come across, there's been a need for an
Activity statement to include an explanation about *why* the activity
occurred. For instance, when an actor flags a particular piece of
content as being inappropriate, or when an actor rejects an expense
report, or when an actor awards a badge to another user.
In the original Activity Streams 1.0 Core Schema document, I had
introduced the "context" property has a rather loosely defined
mechanism for expressing why an activity occurred by describing the
context within which it occurred, but that existing definitely is
rather loose and poorly defined.
So the question is: do we need a more well defined "reason" property.
For instance,
{
"actor": "
acct:j...@example.org",
"verb": "flag-as-inappropriate",
"object": "
http://example.org/posts/1",
"reason": "urn:example:codes:tos-violation"
}
Or,
{
"actor": "
acct:j...@example.org",
"verb": "give",
"object": {
"objectType": "badge",
"displayName": "World Champions"
},
"target": "
acct:red...@example.org",
"reason": {
"actor": "
acct:red...@example.org",
"verb": "win",
"object": "
http://example.org/world-series"
}
}
Or,
{
"actor": "
acct:bo...@example.org",
"verb": "reject",
"object": "
http://example.org/expenses/1",
"reason": "urn:example:codes:unapproved-expenses"
}
Because we already have the context property defined in the schema
draft, introducing the "reason" property is not strictly necessary but
I believe it would still be beneficial... at least as a standardized
extension to the core vocabulary.
Thoughts?