Federated/Distributed @mentions

One of the most common aspects of many social systems that we have not
yet really discussed is the humble @mention. Currently, most of the
popular social platforms support some form of @mention that is
specific to their own platform. We can't, for instance, @mention a
facebook account on twitter, etc.

IBM's Connections product takes a step in the right direction using a
specialized form of structured @mention and I know there have been
some other informal attempts at getting something going on this. Given
how fundamental @mentions are to most social platforms it would likely
be worth the effort for the socialwg to look at this.

The way IBM Connections does it is:

"hey @{{urn:lsid:lconn.ibm.com:profiles.person:510b99c0-0101-102e-893f-f78755f7e0ed|@Amy
Jones102}}"

The "urn:lsid:..." part is the users unique identifier within
Connections. This could easily be replaced by an open identifier
(http, email, acct, etc). The part after the | is what is actually
rendered to the user. Connections renders this as a link and popup
"business card" when the user hovers over the name.

While this works for Connections, the use of {{ }} is a bit
problematic in general because those are also used for things like
handlebar templates. Perhaps [ and ] would work better... e.g.

@[http://twitter.com/jasnell|jasnell] to @mention my twitter id
@[http://facebook.com/jasnell|jasnell] to @mention my facebook id
@[http://github.com/jasnell|jasnell] to @mention my github id, etc

We could allow the use of openid connect identifiers as well, although
doing so would end up requiring the implementation to support
discovery.

@[acct:jasnell@us.ibm.com|jasnell]

A similar mechanism can be used for distributed hash tagging.

#[https://twitter.com/hashtag/socialwg|socialwg]

These would obviously be intended for use within free-text type
properties... for instance:

{
  "@context": "http://www.w3.org/ns/activitystreams",
  "@type": "Note",
  "content": "This note mentions @[http://twitter.com/jasnell|jasnell]
on twitter #[http://twitter.com/hashtag/socialwg|socialwg]"
}

I note that the Twitter API takes the additional step of extracting
these kinds of structured entities out of the text and including them
in the JSON. We can do something similar using the AS2 "tag"
property... e.g.

{
  "@context": "http://www.w3.org/ns/activitystreams",
  "@type": "Note",
  "content": "This note mentions @[http://twitter.com/jasnell|jasnell]
on twitter #[http://twitter.com/hashtag/socialwg|socialwg]",
  "tag": [
    {
      "@type": "Mention",
      "href": "http://twitter.com/jasnell",
      "displayName": "jasnell"
    },
    {
      "@type": "Tag",
      "href": "http://twitter.com/hashtag/socialwg",
      "displayName": "socialwg"
    }
  ]
}

Thoughts?

- James

Received on Wednesday, 3 December 2014 16:36:44 UTC