Code name micropump.
Disclaimer: Just kidding about 'micropump', not really trying for a frankenspec with a new name. This is a strawman skeleton document for what the Social (and Federation) API could look like, taking bits from ActivityPump and the Indieweb ecosystem (including Micropub) and SoLiD as they currently stand; all are subject to ongoing development. PRs and issues welcome encouraged necessary.
Very early beginnings of a spec outline.
People and the content they create are the core componants of the social web; they make up the social graph. This document describes (eventually) a standard way in which people can:
- create, update and delete social content;
- connect with other people and subscribe to their content;
- interact with other people's content;
- be notified when other people interact with their content;
regardless of what that content is or where it is stored.
This should provide the building blocks for new, interoperable social systems that allow people to express themselves, ideas to be shared, organisations to collaborate, and.. all manner of other exciting things.
ActivityPump | Micropub | SoLiD |
---|---|---|
ActivityStreams 2.0 | Microformats2 | Any suitable RDF ontology (eg. FOAF, SIOC) |
ActivityPump | Micropub | SoLiD |
---|---|---|
JSON-LD | form-encoded or JSON | RDF (Turtle or JSON-LD) |
- Bearer tokens for authentication
- Leave obtaining the bearer token out of the spec, since there are already several RFCs for ways to obtain bearer tokens.
- ...access control...
Not to be over-thought. Terminology:
ActivityPump | Micropub | SoLiD |
---|---|---|
Actor from ActivityStreams2.0 |
author from microformats2 |
Any suitable ontology term, eg. foaf:Agent |
Engage debate: relationship between people (personas, no IRL requirement; or orgs or groups or whatever), profiles (documents about people) and accounts.
We are not trying to standardize identity on the web, but we need to be clear about our core assumptions.
Publish a feed/stream that others can read (subject to permissions).
ActivityPump | Indieweb |
---|---|
JSON at discoverable outbox |
HTML page marked up with microformats2 (ie. h-entry s inside a h-feed ) |
POST
to an endpoint that can suitably handle the data.
ActivityPump | Micropub | |
---|---|---|
Endpoint | discoverable outbox | rel="micropub" |
Create | { |
Form-encoding: |
"@type": "Create", |
h=entry& |
|
"published": "2015-05-15T13:06:00+02:00", |
content=hello+moon& |
|
"actor": "http://rhiaro.co.uk/about#me", |
category[]=indieweb& |
|
"object": { |
category[]=micropub& |
|
"content": "hello world", |
author=http://rhiaro.co.uk/about#me& |
|
"category": ["indieweb","micropub"] |
published=2015-05-15T13:06:00+02:00 |
|
} |
JSON: | |
} |
{ |
|
"type": [h-entry], |
||
"properties": { |
||
"content": ["hello world"], |
||
"category": ["indieweb","micropub"] |
||
} |
||
} |
||
Update | ||
Delete |
- follow activity
- PuSH
- AP section 8, posting to inbox
- webmentions
side effects, adding to collections etc