From W3C Wiki

Social Web Working Group Teleconference

09 Dec 2014


See also: IRC log


evanpro, aaronpk, Arnaud, Lloyd_Fassett_, elf-pavlik, tantek, mattl, cwebber2, jessica_lily, bret, AdamB, Doug_Schepers, rhiaro, oshepherd
evanpro, aaronpk

Summary of Action Items

[NEW] ACTION-20: Set up hosting for f2f 17 & 18 march 2015 [1]

[NEW] ACTION-21 contact sandro to enforce action-20 [2]

[NEW] ACTION-22 Create wiki page for mentions and proposal [3]


Approve minutes of 02 December 2014


<aaronpk> Zakim: who is on the call?

<trackbot> Date: 09 December 2014

<tantek> eprodrom: yes and we decided I don't do email

<tantek> and that's ok

<eprodrom> tantek: oh, that was right

<eprodrom> I was going to post the agenda on your weeks

<tantek> right

<tantek> so I am supposed to chair today

<eprodrom> Good with me

<eprodrom> if it's good with Arnaud

<tantek> and any further email discussion are not relevant

<mattl> how do i associate nickname?

<cwebber2> I'm probably one

<cwebber2> I'm just listening in for this one though

<tantek> mattl like that ^^^

<cwebber2> I think jessica_lily can handle the mediagoblin and pump api stuff if it comes up :)

<mattl> tantek: aha. i am also just listening in really.

<cwebber2> 21# or

<eprodrom> Yes it's be great to have her speak up

<tantek> 41#

<cwebber2> 41 ok

<cwebber2> that's me

<cwebber2> thx

<eprodrom> yikes that is loud

<eprodrom> Arnaud: per our discussion last time

<eprodrom> I'm going to post the agenda for the weeks that Tantek is chairing

<eprodrom> It was my mistake Arnaud

<elf-pavlik> scribe?

<cwebber2> I can't do this week

<cwebber2> I'm helping a client whose server just went down

<cwebber2> and I scribed recently

<cwebber2> sorry, I'm normally happy to

<eprodrom> scribenick eprodrom

<eprodrom> Good here

<tantek> propose evanpro scribe til discussion then aaronpk

<aaronpk> should I do the "scribenick" thing when I switch?

<elf-pavlik> scribenick: evanpro

<bret> hey all

scribenick evanpro

Approval of minutes from last week

<tantek> yes


tantek: any objections?

RESOLUTION: Minutes from 2014-12-02 approved

Next week's teleconference is the 16th

Arnaud LeHors to chair

Discussion of F2F

tantek: mid-march is best time on Doodle

Arnaud: Two sets of dates were acceptable by majority

elf-pavlik: thanks

F2F meetings

Arnaud: schedule meeting on 17th and 18th and hacktime on 19th

tantek: also hacking session beforehand

Arnaud: I have a slight preference for Tuesday

<tantek> sandro: any hosting prefs between 17&18 vs. 18&19?

tantek: do we still have these hours available in Cambridge?

PROPOSED: 17th and 18th March in Cambridge for F2F


<cwebber2> +1

<jessica_lily> +1

<mattl> +1

elf-pavlik: I'm muted

ACTION sandro set up hosting for F2F 17 & 18 March 2015

<trackbot> Created ACTION-20 - Set up hosting for f2f 17 & 18 march 2015 [on Sandro Hawke - due 2014-12-16].

ACTION tantek contact Sandro to enforce ACTION-20

<trackbot> Created ACTION-21 - Contact sandro to enforce action-20 [on Tantek Çelik - due 2014-12-16].

<elf-pavlik> on not assigning others, seeAlso:

tantek: Any other questions for F2F?
... perhaps someone can suggest good places for St. Patrick's day that night

<tantek> AGENDA: open actions

Open actions and issues

<elf-pavlik> james not here, he sent regrets

<elf-pavlik> i added them to wiki

<tantek> elf-pavlik:

<tantek> go ahead elf-pavlik

<cwebber2> did the line go quiet?

<elf-pavlik> yes

<elf-pavlik> i didn't have time to tidy up my facebook review, by next week will do that!

<tantek> ok thank you elf-pavlik

<aaronpk> scribenick: aaronpk

<tantek> evanpro:

evanpro: these are wiki editing actions i've been putting off, so will take care of these after the call
... mostly getting links onto pages on the wiki

Activity Streams 2.0

<tantek> elf-pavlik: agenda

<mattl> elf-pavlik: if you're speaking, i can't hear you.

<elf-pavlik> i think sound doesn't work for me, just participated in Credentials CG call and it worked just fine

<evanpro> elf-pavlik: can you try reconnecting?

<elf-pavlik> i'll try to reconnect

evanpro: question on the email list about "mentions"
... when you mention another person in text
... kind of related to tagging someone in a photo, but is embedding someone's name or nickname into a photo or text
... was a proposal specifying microsyntax or html for text for some relations
... elf brought up a proposal to depend on strucured data in the activity streams, instead of embedding data in the plain text of the content
... the proposal right now is essentially to not do anything extra for AS2.0 right now

<elf-pavlik> ok for ACTION

tantek: propose elf write up his proposal ont he wiki for how a mention should be handled

<elf-pavlik> i ask over list to help me with reworkding it

<elf-pavlik> i ask over list to help me with rewording it

<elf-pavlik> tantek, i'll take that action!

<evanpro> ACTION elf-pavlik create wiki page for mentions and proposal

<trackbot> Created ACTION-22 - Create wiki page for mentions and proposal [on Pavlik elf - due 2014-12-16].

<elf-pavlik> sorry everyone, i just participated 2h ago in Credentials CG and my voice worked just fine, but they use independent VoIP setup...

Social API

<tantek> scribenick: evanpro

tantek: any other issues on Activity Streams 2.0?


aaronpk to discussion Micropub


aaronpk: just a quick summary of micropub

used to create publications on your own domain name using any number of clients

authentication using indieauth

Generates an OAuth 2.0 token

On own web site, link-rel to endpoint for micropub

RPC-style, not REST-style

All requests made to single endpoint

requests are form-encoded, POST requests

micropub requests are mirrors of microformats requests

basic one is h-entry

for example a comment

h=entry (type of post)


Other information generated automatically by the web site

If there are other fields to specify, include them as post parameters and send them as part of the request as well

e.g. specifying tags

reposts and likes

As well as reposts

There are examples of using this for all these types

Requests are extremely small, just enough info to get the service to create the data

8 different client implementations

At least 6 different server implementations

People are using own and others' clients

Several programming languages

Next step is figuring out full CRUD flow

There are some first steps for this

<shepazu> (what do you mean by "client" here? website scripts, or browsers?)

Some discussion happening on indiewebcamp wiki

a client means anything that can make a post request

example, think of an OAuth 2.0 client

<tantek> client can be a browser or a website serverside script

Can be a browser or a native app

aaronpk: has a micropub pebble app

shepazu: do you mean that people have implemented this on their website? is a client app

Also iPhone apps

There are also libraries to create clients

<cwebber2> sorry

<tantek> who just joined?

evanpro: is this a write-only API?

<elf-pavlik> sounds like crawl to query

aaronpk: This is the write portion of the API. The discovery is via domain name, and the read part is via the HTML on the page + microformats.

<Zakim> elf-pavlik, you wanted to discuss how to add entry to target collection? eg. friend to friendslist or wish to wishlist

<elf-pavlik> ^

<tantek> or photos to a photo collection

aaronpk: we don't have documented examples of doing that - adding to a collection
... currently about publishing content to a single stream
... assumed to be a single collection
... if people start publishing to collections, we would need to figure that out

<elf-pavlik> thanks aaronpk

<bret> here is an example of a friend list would be a matter of accepting an h-card

tantek: follow up question to evanpro's

<Zakim> tantek, you wanted to ask about how do you read someone's activities that have access restrictions?

tantek: micropub assumes that 0auth 2.0 is taken care of
... does that have impact on how private or privileged data is read?
... or can you read private or limited data?

aaronpk: that would require authenticated requests to retrieve the HTML
... I can post content only readable by e.g.
... micropub might be used to let other people edit my posts
... but no examples of this yet

tantek: sounds like limited-access read is out of scope for micropub
... if you were writing a client, how would you read a stream with a mix of private and public posts

aaronpk: so far micropub clients don't read or display streams

<elf-pavlik> aaronpk++

<Loqi> aaronpk has 619 karma

<aaronpk> scribenick: aaronpk API

evanpro: now covering API


<tantek> I'll take care of pushing forward jasnell's agenda item

implmeneted by and gnu media goblin

a number of clients for web, desktop, android and ios

talking specifically about client-server aspects of the API

federation protocol is built into the API, so won't cover that here API uses Activity Streams 1.0 the JSON version on-the-wire

no support for atom or xml

internally models one-directional follow network (groups, contact lists, etc)

all come from the AS base schema

uses OAuth 1.0 for authentication

all clients need to use OAuth 1.0, even the web interface for

API has around 42 endpoints, so one of the bigger ones we've looked at

main part of the API are "feeds" for the user

<tantek> (smaller than any of the proprietary ones though right?)

each user has an "outbox" feed which is activities theyv'e created

as well as an "inbox" feed which is things addressed to that person

things from groups they're members of, or based on people they follow

or posts directed to them by the author

<oshepherd> Theres some redundancy there also - e.g. 9 "filtered" inbox variants

there's a mechanism in AS 1.0 to specify the audience (to, cc, etc)

input/output feeds have sub-feeds divided by the major and minor activities

does not treat all activities equally

"like" or "follow" is a minor activity, appear off to the right in the UI

whereas major feed items are posting new content, like photos or text

users create new activities by posting to their own feed

<bret> example profile ;)

inbox also has a sub-feed for direct activities, things specifically to them (like direct messaging)

there is CRUD access to the user profile

as well as feed of all users on the site

which is used to creating new users (post to that feed)

ther's social graph endpoints for getting a list of who you follow, who follow you, etc

the main feeds (inbox/output) are the main place API clients use

but it is possible to generate activities using the other endpoints

for example you can get the list of users you're following, you can also post to that list

similarly you can post to the favorites list

users can also create lists of people, which become your contact list

can create photo albnums or other collections of objects

media upload endpoint you can use for uploading files

it is also a stream, so you can get the media objects back

posting uploads is kind of complicated, a few ways to do it, easiest way is browser-style multipart file upload

every activity has CRUD endpoints

collections all have feeds for members

you'd typically use an "add/remove" verb but can also post directly to i

for groups there are a few extra feeds, for members, documents, photos

all objects taht are created have CRUD via HTTP verbs (GET PUT DELETE)

in the implementation these actions (PUT) will create an edit activity for that object

objects also have feeds relating to the object, feed of people who have liked the object, feed of content posted in reply to the object, and who has reposted

spec for AS1.0 that has defined an umber of feeds that relate to an object

things like shares, for person may have following,followers,groups, etc API uses those extensively

looking at the endpoints, reaosonable to think it's a pretty big API, but it's actually pretty small with a lot of API sugar thrown in

the core is really around the user feed and inbox feed

other things are there to make it easier for clients

<oshepherd> For reference Impeller re-implements all that filtering stuff in the client (so it could be trimmed from the API)

similar in some way to opensocial except that a lot of the extra information around following/followers is handled through other aspects


<Zakim> elf-pavlik, you wanted to discuss can one use collections to create wishlists, skillslists, eventslists etc. ?

evanpro: you can. you can create lists of different kinds of objects named in a specific way

talking about a wishlist for a user, would have some way to relate that list tothe user

<elf-pavlik> schema:seeks

you could create these lists they would just be tougher to discover than other kinds of lists

<elf-pavlik> thanks evanpro

did a poll last week about using "harder" verbs like put and delete

<tantek> HTTP verbs

very few of the clients on IRC last week said they use PUT/DELETE

<oshepherd> Impeller doesn't use PUT because of an accident of history (tried PUT, didn't work, tried activity, didn't work, fixed bug, it worked, never changed it back)

instead they use activities with related types. so an activity with a "delete" type rather than the HTTP DELETE verb

tantek: do you have any percentages?

evanpro: no statistics on that, but have an open action for looking at access logs for that.

guess is it will be very small

<elf-pavlik> evanpro, do you know how does it?

<tantek> is there any difference between a list and a collection?

evanpro: no, doesn't know how sockethub does it. never heard of it.

<elf-pavlik> it uses AS1.0

does this need to go onto our list of apis to review?

<oshepherd> Impeller will be definitively doing everything via activities because that unifies all things through a common outbox (which can be synced as and when network access is available)

<elf-pavlik> and connects to fb, twitter, irc, smtp etc

difference between list and collection? no, lists are implemented as a collection

<elf-pavlik> it has js library to connect to sockethub server

<elf-pavlik> i'll post on maling list

<elf-pavlik> we can decide then

<AdamB> sockethub -> Sockethub is a polyglot (speaking many different protocols and APIs) messaging service for social and other interactive messaging applications. It assists web app developers by providing server-independent, server-side functionality - which gives the application greater autonomy. It can be used as a tool for many different types of applications, large and small.

<elf-pavlik> nope

tantek: is anyone here actually using sockethub for their own site?

last week we discussed only reviewing APIs and implementations someone here is using in the real world, or if someone thinks it has specific relevance to this group

<elf-pavlik> fair point!

<evanpro> Let's wrap it up!

tantek: thanks for the overview evan

<elf-pavlik> evanpro++

<Loqi> evanpro has 3 karma

<shepazu> elf-pavlik, maybe ask if the sockethub folks want to participate in the WG or mailing list

if there's no more questions, move to close the call

<evanpro> +1

<jessica_lily> evanpro++

<Loqi> evanpro has 4 karma

<jessica_lily> +1 closing call

<elf-pavlik> shepazu, i did and Nick just needs to weigh this time capacity

<evanpro> Thanks tantek

hearing no objects, call is finished

thanks everyone

<elf-pavlik> thanks tantek , evanpro, aaronpk !!!

<bret> see ya, very informative

<cwebber2> thx every1

<tantek> trackbot, end meeting

trackbot, end meeting