The Social Web Incubator Community Group (also known as SocialCG, or SWICG) incubates protocols and other technology for on open social web in which everybody can participate. We work closely with the Social Web Working Group, which uses the W3C process to formally standardize these technologies.
For current work, consult the links and posts on this page. Please join the Community Group if you wish to participate actively in the group or contribute substantively to the group’s deliverables. We also invite you to ask questions on the group’s public mailing list, or to contact the Chairs if you wish to join a specific meeting.
swicgGroup's public email, repo and wiki activity over time
Note: Community Groups are proposed and run by the community. Although W3C hosts these
conversations, the groups do not necessarily represent the views of the W3C Membership or staff.
In today’s website task force meeting we decided to post ActivityPub-related updates on this WordPress blog, and use activitypub.rocks as a collection of links and other information. Instead of having some updates here and some other updates there, which confuses everybody. So I am currently moving some posts from there to here, in case you are wondering why there are suddenly more old posts on this site.
For more information about LOLA and why it matters, consider this post but Aaron Ayerdis Espinoza at the Data Transfer Initiative, who is one of the implementors of the specification.
An introduction to what a “group” is, and how it might be distinguished from other usages of the term “group” across various specs and prior art, with relations to other work and other task forces
Some preliminary terms regarding membership and being a Member
Some initial user stories, with more to come — our GitHub issue tracker contains issues that need to be reviewed for user stories, and any user stories missing from the report will be eventually added. (If you have user stories to contribute that don’t currently have their own issue, please file issues for those!)
Potential approaches on how to become a member. Discussion in today’s meeting revolved around questions such as whether followers and members are or should be distinct, and what the properties of a membership are vs properties of an actor. Information from this discussion will hopefully be incorporated into the draft by next month, as well as expanded rationale for the distinction and the properties.
This post is soliciting feedback and participation from anyone interested in the work being done on Groups. Please provide any feedback in GitHub issues and/or on the mailing list.
ActivityPub defines a “ActivityPub API” that lets applications act on behalf of a user with a social networking platform. The ActivityPub API provides an extremely flexible interface for building social applications. Because unlimited kinds of activities can be created by clients, novel applications can be built on top of the ActivityPub network.
Unfortunately, the ActivityPub API has not been widely implemented in its read-write form, even by social platforms that implement the ActivityPub federation protocol. Those servers that have implemented it have taken opinionated steps in implementation, making it hard for client developers to achieve interoperability.
This profile is a step in the direction to improve the interoperability issue. It covers three important aspects of the API:
ActivityPub. It makes some concerted points about how the ids of ActivityPub objects are defined, and what behaviour a ActivityPub API server should implement.
OAuth 2.0. OAuth is the default API authorization framework, used by commercial APIs worldwide. However, it’s extremely flexible, which means that a client that implements OAuth will not necessarily implement the same profile as the server it’s trying to connect to. The Basic Profile selects some common options to make it easier to interoperate.
HTTP. There are a lot of options with RESTful APIs, like rate limits, CORS, and caching. The basic profile gives some suggestions on how to apply these tools correctly.
There’s a lot that’s not in the basic profile: push notifications, search, other endpoints. That’s the basic part — these extensions can be covered in other documents, and negotiated between client and server on a case by case basis. The basic profile is for the parts that are needed to get to that point!
There are a few open questions with this profile. The OAuth scopes are a first draft and don’t represent consensus; some task force participants suggest using Rich Authorization Requests also or instead. There are also very few MUST requirements; even supporting client-to-server interactions is a SHOULD.
Regardless, if you are interested, please consider reporting issues, and if you are a server operator, please consider implementing!
(Evan P) Discuss the upcoming work I’ll be doing for Summer of Protocols on implementing E2EE direct messages in AP.
(Evan P) Collect feedback on the Miscellaneous Terms document, solicit implementations, and consider moving it forward as a CG draft: https://swicg.github.io/miscellany/
(Evan P) I’d like to continue the conversation about adding publicKey, publicKeyPem, owner and Key to the Activity Streams 2.0 context document.
(Lisa D, if time, otherwise on the next Portability TF call) Kick off a conversation about tradeoffs between different approaches in copying content in a data transfer
The call will be held at 1pm ET / 10am PT / 7pm CET, at:
Please join us in conversation with the W3C Credentials Community Group, as we discuss the SocialWeb CG, decentralized identity, digital signatures, and give updates about what we’ve been working on, in swicg.