Re: Distributing the user interface for social networks

On 09/07/12 10:59 AM, Melvin Carvalho wrote:
>
> What you need is essentially a dictionary (data store) perhaps with 
> autocomplete that can match the literal string to a more meaningful 
> set of data (name, avatar, profile etc.).
I was using Webfinger as the identifier, with associated lookup. Just 
describing a pattern, so I didn't get into the discovery particulars.
>
>      1. example.net <http://example.net> server requests an identity
>         from the user.
>
>
> You'll need to identify & perhaps authenticate here.
This is what the OAuth step is for.

I think there are much better UI approaches than entering text by hand, 
but for the sake of exercise here, we'll ask the user to type it in.
>
>     After the first request, the user should stay "logged in" to
>     example.net <http://example.net> and may continue interacting with
>     content there:
>
>      1. User evan@example.com <mailto:evan@example.com> navigates to
>         photo page http://example.net/joe/photo/2
>      2. User enters a comment in the comment box and clicks send.
>      3. example.net <http://example.net> publishes a "post" activity
>         with a "comment" object with inReplyTo =
>         http://example.net/joe/photo/2 to evan@example.com
>         <mailto:evan@example.com>'s activity stream.
>
> Some kind of HTTP POST would work here
http://www.w3.org/community/activitypub/

AtomPub meets ActivityStreams.

> You need a set structure for a comment saying what the text is, who 
> the user is and what the comment is in relation to.
>
> post :hasComment
>   { user : user, type : comment, comment : blah }

In ActivityStreams JSON format (http://activitystrea.ms/), it would look 
something like this:

{
     "actor": {
         "id": "http://example.com/evan"
     },
     "verb": "post",
     "object": {
         "objectType": "comment",
         "inReplyTo": {
                 "objectType": "photo",
                 "url": "http://example.net/joe/photo/2"
         }
         "content": "Nice photo!"
     }
}

For ActivityPub, you can leave off the "actor" since it's implied.
>
> Pattern is pretty great, but understand that if you're going to do a 
> lookup on strings, make it a reverse lookup on a (hopefully cached) 
> data store.  Try to give everything you care about a URI and ulimately 
> link that from your profile page.
>
> A lot more needs to be done on access control, but we're working on 
> it! :)
Thanks for the feedback!

-Evan

-- 
Evan Prodromou, CEO and Founder, StatusNet Inc.
1124 rue Marie-Anne Est #32, Montreal, Quebec, Canada H2J 2B7
E: evan@status.net P: +1-514-554-3826

Received on Monday, 9 July 2012 15:35:32 UTC