- From: James M Snell <jasnell@gmail.com>
- Date: Tue, 24 Mar 2015 11:37:23 -0700
- To: "public-socialweb@w3.org" <public-socialweb@w3.org>
Right now, the Vocabulary models "Connect" and "FriendRequest" as
Activity types. E.g.
to say "John requested a connection with Sally" or "John sent Sally a
friend request", we'd use something like:
{
"@type": "Connect",
"actor": "http//john.example.org",
"object": "http://sally.example.org"
}
However, in many systems, Connections between people are modeled as
distinct artifacts and organized into collections... that is, the
relationships themselves are modeled as Objects with a distinct
lifecycle.
So... rather than modeling "Connect" and "FriendRequest" as
Activities, do we model "Connection" or "Relationship" as an object.
For instance:
{
"@type": "Create",
"actor": "http://john.example.org",
"object": {
"@type": "Connection",
"subject": [
"http://john.example.org",
"http://sally@example.org"
]
}
}
{
"@type": "Request",
"actor": "http://john.example.org",
"object": {
"@type": "Connection",
"subject": [
"http://john.example.org",
"http://sally@example.org"
]
}
}
etc
The difference in the modeling is subtle but important. By modeling
the Connection/Relationship as a noun, we essentially change how we
reason about it. The Activities become "Request", "Create", "Update",
"Delete", etc. This seems to be a much more natural approach given the
various example existing social platforms out there.
The specific changes to our Vocabulary would be:
Remove: "Connect" and "FriendRequest" as Activities
Add: "Connection" and "Friendship" as Object Types, with "Friendship"
modeled as a subclass of Connection. Implementations would be free to
define their own additional types of Connections if they so desire.
Received on Tuesday, 24 March 2015 18:38:13 UTC