- From: ☮ elf Pavlik ☮ <perpetual-tripper@wwelves.org>
- Date: Wed, 25 Mar 2015 11:38:48 +0100
- To: James M Snell <jasnell@gmail.com>, "public-socialweb@w3.org" <public-socialweb@w3.org>
- Message-ID: <55129038.6000609@wwelves.org>
Hi James,
On 03/24/2015 07:37 PM, James M Snell wrote:
> 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.
I would also see it modeled not as an artifact (Thing/Object) but as
Statement (triple) entity + attribute + value (or subject predicate
object). I see Entity Attribute Value ~= Subject Predicate Object.
{
"@type": "Person",
"@id": "https://wwelves.org/perpetual-tripper",
"name": "elf Pavlik",
"friend": [
{
"@type": "Person",
"@id": "http://www.chmod777self.com/",
"name": "James M Snell",
}, {
"@type": "Person",
"@id": "http://rhiaro.co.uk/",
"name": "Amy Guy",
}
]
}
How to group your friendships, followings in collections + 'follow your
nose'?
* https://www.w3.org/community/hydra/wiki/Collection_Design
* https://lists.w3.org/Archives/Public/public-socialweb/2015Mar/0130.html
If you really want artifact, we could also start with evaluating
applicability of *Reification*
http://www.w3.org/TR/rdf-schema/#ch_reificationvocab
>
> 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.
What about *as:result*?
http://www.w3.org/TR/activitystreams-vocabulary/#dfn-result
>
> 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.
I would prefer that we take a closer look at this issue before trying to
draw conclusions. I have impression that you may use rdfs:Class and
rdf:Property in unusual way. And I don't mean to say wrong but we may
just need more time to understand it better...
Cheers!
Received on Wednesday, 25 March 2015 10:39:08 UTC