The ActivityPub Network

Social, on the Web

Etherpad

Hashtag

#mozfest17apub

What?
Why?
How?

...are social networks?

...are they broken?

...do we fix them?

What are social networks?

(Waves hands around)

Ugh. Really? You know, social networks. Why do I have to explain this?

 

Twitter and Facebook and so on. Google+, I guess.

 

Instagram? Yeah, Instagram too.

 

Snapchat? ...Maaaaaaaaybe. I dunno. Wait! I think, yes.

 

WhatsApp? No, that's different. That's a... messaging platform. It works differently.

Ugh. I have to say why it's different? Fine.

Defining a social network

1. You can create a profile that describes you. Your name or pseudonym, age, gender, your interests, your avatar photo and other photos.

Evan Prodromou

Montreal QC

49

Male

@evanp

Defining a social network

2. You can connect with other people or groups or organizations to form a social graph.
 

Each node in the graph is a person (or group or organization). Each edge in the graph defines their relationship.

 

Edges can be unidirectional (follow) or bidirectional (friend).

@evanp

@maj

@stavy

@aj

Defining a social network

3. Users can create content, like text, images, video, or audio.

@evanp

A_dumb_bee_11897.jpg

Check out this dumb bee.

Defining a social network

3. Other users can react or reply to posted content.

@evanp

A_dumb_bee_11897.jpg

Check out this dumb bee.

@stavy: It looks OK.

@maj: Nothing wrong with it.

@aj liked this.

Defining a social network

4. Each user has an activity stream. It is a record of everything they've done with the software.

 

It is usually sorted in reverse chronological order; the newest activities are shown at first.

 

It includes content they've created, reactions and replies to other people's content, game or app events, changes to the social graph, and other activities.

  • @evanp followed @maj.
  • @evanp posted "What's with bees?"
  • @evanp became friends with @stavy.
  • @evanp became friends with @aj.
  • @evanp posted a photo.
  • @evanp commented on @maj's photo.

Defining a social network

4. Each user has an incoming stream. It includes the activities of the people they follow or are friends with in the social graph.

I am going to camp today.

@aj

@maj

I just saw this.

@stavy built a Nether portal.

@stavy

Defining a social network

  1. Profiles
  2. Social graph
  3. Content
  4. Reactions and replies
  5. Activity streams
  6. Incoming streams

What's wrong with social networks?

Five pillars of Internet Health

  • Open Innovation
  • Digital Inclusion
  • Decentralization
  • Privacy and security
  • Web literacy

Open Innovation

OK!

Pros

  • Anyone can start a social network
  • Many social networks have APIs

Cons

  • Rigid terms of service (TOS) on APIs
  • TOS changes for business needs of the social network

Digital Inclusion

OK.

Pros

  • Anyone, usually, can sign up for a social network
  • Platform for self-expression
  • Usually good language support

Cons

  • Real name policies are bad for trans people, others
  • Abuse filters don't deal with bad actors well, and end users can't implement their own

Decentralization

Bad.

Pros

  • Anyone can start a new social network.

Cons

  • Network effect makes winners grow quickly and losers disappear rapidly.
  • Networks rarely allow following or friending a profile on another network.

The network effect

@evanp

@maj

@stavy

@aj

N nodes

N - 1 potential edges per node

N x (N - 1) potential edges in the graph

 

Edges ∝ N²

 

100 members = 9,900 edges

1000 members = 999,000 edges

 

Edges = potential engagement

Privacy and Security

Bad.

Pros

  • Social networks have some privacy and security features.

Cons

  • Projects like PRISM share social network data with NSA and other snoops.
  • Advertising model shares social data with marketers.
  • Large number of users make social network software an attractive target for hackers.
  • Business model encourages breaking down privacy.

Web literacy

OK.

Pros

  • Users can create content.
  • Users can read content.

Cons

  • Fake news
  • Silos discourage leaving the social network to go elsewhere on the Web

How can we fix them?

Social network

@evanp

@maj

@stavy

@aj

  • One service
  • One software base
  • Connected internally

Social web

@evanp

@maj

@stavy

@aj

  • Different services
  • Different software
  • Connected by open protocols

W3C Social Web Working Group

Activity Streams 2.0

A format for the social web

A modern format

  • JSON-LD
  • Many types
  • Extensible

Subject Verb Object

"@evanp posted a photo."

"@evanp replied to @stavy's note."

"@evanp reached level 7 of Zangband."
"@evanp liked @aj's video."
"@evanp followed @maj."

Types of things

  • Person
  • Place
  • Note
  • Group
  • Organization
  • Service
  • Article
  • Video
  • Document
  • Event
  • Image
  • Page
  • Relationship
  • Audio

Types of activities

  • Accept
  • Add
  • Announce
  • Arrive
  • Block
  • Create
  • Delete
  • Dislike
  • Join
  • Leave
  • Like
  • Listen
  • Move
  • Offer
  • Question
  • Flag
  • Reject
  • Read
  • Remove
  • TentativeReject
  • TentativeAccept
  • Follow
  • Ignore
  • Invite
  • Travel

ActivityPub

A protocol for the social web

Profiles

Using Activity Streams, a profile is just a Person or Organization object, available at an URL.

 

The URL of the object is the profile's ID.

Social Graph

Every profile in the network has a property that lists all their social connections, which are also Person or Organization objects.

 

The social graph is distributed.

Content

Using Activity Streams, to create Note, Image, Audio or Video objects.

Reactions

Every object and activity has a property that lists its reactions and replies.

 

Every action has a property that says what it is a reply to.

Activity Stream

Every profile has a stream of activities that the person or organization has done.

Incoming Stream

Every profile has a stream of activities by people that they follow or are friends with.

Implemented by...

  • Mastodon

  • GNU Social

  • GNU MediaGoblin

  • Pump.io

  • You...?

How you can help