ActivityPub Experimentation: Towards AP v2

New Description:

Thanks, the list of topics that I’ve tracked that the moderator can discuss are:

  • Expanding beyond HTTP protocol
  • Structured documents for server behavior
  • Uploading Media

And this topic can be moved to Scaling Up Cooperation:

  • How to build a community process for adoption & encourage executing those adoptions

The live session will happen in Room A: https://bbb.fosshost.org/b/mor-fee-7b4-2nh

Old Description:

ActivityPub has helped spawn a diverse set of software, while also leaving fertile ground for further improvements in the protocol. It seems like the grassroots community has done an excellent job of identifying problems. A great deal of energy by end-users and developers alike has been spent pointing out problematic patterns of software-enabled harassment, the lack of privacy and security protections, the lack of software tooling for community-building, identifying the line where software doesn’t solve people-problems, and many many others.

Why in 2 years has there been no major momentum towards an ActivityPub evolution? This has already been identified by the community: inherent with the grassroots nature of the community is the simple fact that any Fediverse software’s high user count grants that software’s developer/organization high influence in enacting, or avoiding, change on behalf of the Fediverse community.

There are two concrete problems that the BoF could address. There is the “meta” problem of how to get the community organized just enough to identify a path towards consensus, yet doing so without developing institutions since they stifle voices. Then, there is the “execution” problem where, once the community has a procedure to build consensus on a “yes, let’s adopt this” change, how do they entice software developers to build this out in new or existing applications.

5 Likes

+1

I believe documenting behavior is key, whether current best practices (use of WebFinger, NodeInfo, Federation.md, …) or more experimental stuff towards v2. I think a light-weight community-driven editorial process for such documents could be a way. Maybe this is something we could discuss here? (Moving some ideas from Scaling Up Cooperation to this BoF).

1 Like

@rhiaro mentioned Uploading Media which I guess should be part of APv2 as well:

Thanks, the list of topics that I’ve tracked that the moderator can discuss are:

  • How to build a community process for adoption & encourage executing those adoptions
  • Expanding beyond HTTP protocol
  • Structured documents for server behavior
  • Uploading Media

Which can be merged/broken apart.

We said earlier we’d merge Getting extensions into the AS2 namespace into this session. This is perhaps a shorter term means toward iterating on / evolving the AP spec, and possibly a way to practice getting the community organised around consensus type decisions.

Some notes, specially in case I can’t attend the live session (should be fine but who knows).

Pleroma was thinking on getting WebSocket-based Federation (still HTTP in a way but still) and we’re doing the stabilization part of it currently. I haven’t worked on it.

This reminds me of https://socialhub.activitypub.rocks/t/documenting-federation-behavior-in-a-semi-standard-way/453/6 aka federation.md, I don’t know if it went further, we have yet to use it ourselves.

I’m going to extract the documentation into a proper document (it’s currently in https://git.pleroma.social/pleroma/pleroma/-/blob/241f7cb1ed91a8d6855dbd03517e85c98c08edb7/lib/pleroma/web/activity_pub/activity_pub_controller.ex#L526-538) but we got it to work between Pleroma and AndStatus.
(if you wonder why we don’t have the object parameter: https://git.pleroma.social/pleroma/pleroma/-/merge_requests/1810, could be re-evaluated for standardization)

1 Like

Quoting from the merged https://socialhub.activitypub.rocks/t/getting-extensions-into-the-activitystreams-2-0-namespace/1001:

@aschrijver keeps updating this part of the Guide for new ActivityPub implementers :

2 Likes

Shared Notes from the session

  • Current Vocabulary Process /
    • VCWG/DIDWG Extension Process
  • Vocabulary extensions / content-addressed-vocab*
  • Decentralized Identifiers WG needs for alsoKnownAs
  • “Hostile take overs” of ActivityPub vocab? What happens if people name squat?
  • Discoverability of Actor understanding (method to come to consensus on that)
  • ActivityPub acknowledge protocols beyond HTTP
    • eg: DID Comm :frowning:
  • Uploading media
  • How do we all work together
  • Paths to ocappy-stuff

Manu Sporny on processes in other groups:

It takes a lot more care than anyone understands. This has happend successfully in: JSON-LD WG, maintained by W3C staff. Everyone was already on the same page on how to do it, least contentious way of doing extensions.

Next was the Verifiable Credentials WG who had no process when the group finished, and kicked it over to the Credentials CG to figure it out. Almost didn’t happen becaus eit was plumbing nobody wants to do. A chair and an editor got together, defined a process that took 3-4 months.

The Decentralized Identifier WG is the one that cared the most about having an extensions registry, great debate, but more and more stuff has been pushed into the registry in that group.

These groups aren’t necessariy all friendly and everybody gets along… Many of the discussions in VCs and DIDs was pretty… great debate around many things.

These are examples of it being possible. The biggeset thing that could limit it working are the social dynamics of the group. Very heavily driven by social dynamics, many people dont’ want to be stepped on and that’s what makes them back into their corner and do their own thing.

One of the things pushing me to this meeting … we need alsoKnownAs in the DID WG. The first proposal was let’s just define it and put it out there. AP communities got it but we can’t wait for them, let’s define our own. Which means the exact same thing as what’s used in mastodon. We’re trying to convince the group to do the right thing and work with other communities and all of us come to an agreement on what alsoKnownAs is. My concern is that if we can’t find a way to do this in AP the WG is going to go and redefine the term. A failure to standardise.

My hope is we are able to reuse the AP vocab instead of redefining core parts of it in the DID group.

Could just namesquat in the AS vocabulary but would rather not

In the bioinformatics databases, people are already using hashes, so the content addressed vocabulary stuff is already relevant… they’re describing the identifier and hashing it

Lain: I don’t care as an implementor so much whether or not it’s standardized, I just want a way to see where it is and implement it, not wait on a standards body

Chris: endorses alsoKnownAs as already in-use and it should be simple enough to get it officially recognised. We should set up a socialCG meeting and put it to a vote. This one can be an indicator of where things might go, or could not be. But could help a group that needs it now.

Lain: right now when we come up with our own vocabulary we put things in our own namespace… something I think would be nice is if we had something like a template, right now if we had something like a federation.md file, if we had templates to make it look like it does on activitypub.rocks or whatever to fill in our info, it doesn’t have to be in the AS2 namespace it could be helpful. If we could do a PR with a repository with all the stuff and what they support

ACTION ITEM: Explore a community group report where we collect “known” activitypub-related vocab extensions and how used, and hand commit rights to well acting implementors to allow them to actually get terms in it. Lain is interested in being a committer to help curate that document

Manu: converstation reminds me of w3cid service;
we put it up for people to have URLs for linked data vocabs, and it was a simple process…
if you want something in there, create a directory, put your PRs in there, and when merged it’s just automatically pushed to the servers.
We were not expecting as many people to contribute as they have.
There are over 4k contributons and we have no idea who is behind ~4k of them.
We mostly just make sure the url redirection works. So 2 people have been able to process 4k+ extensions to this namespace.
If the fediverse wants an area where everyone can go and look and see what’s available, that’s a super powerful thing.
w3cid is a good example of that working. The downside is that everyone plays in their own sandbox and we don’t get everyone to play in their own namespace.
That’s better than where you are now though. +1 to a lightweight process, +1 to it being as simple as a PR, +1 to not allow things to be held back.
Allow people to manage their own subpages, and only when you talk about elevating to the toplevel namespace. That’s also what talked about alsoKnownAs…
anyway these things can absolutely work at scale and I believe it’s absolutely a cultural thing.
As you all know changing culture is the hardest thing

Manu: I don’t think that it’s an either/or for CAS URLs or human-readable URLs

Actor discoverability

CJ: what’s the proper way to standardize on “what abilities / interfaces does this actor understand”?

CJ: Pleroma has a prototypical solution for their chat use case, I’d imagine as a community we’d like to make this more usable… is it “post it on socialhub”, or is it “make a vocabulary change with the CG” or what?

CJ: it’s a conversation of where do we discuss

Chris: What do people want in terms of reaching out?

CJ: I think litepub resulted in people droping out from frustration of not being recognized and that’s something I don’t want to see

Lain: I think the one on one system can work, and we won’t get rid of it, so we will always have that… the bigger problem is that when that’s all we have. So I think that something like we talked about earlier where we have the community actually do this… that would already help a lot. So it’s not in the head of two people and two codebases

Michael: I’m a bit complicated in that I’m not in the official stuff… I’m not as much into the SHOULD MUST stuff, etc… I’m just an implementor who says “hm ah, ok, looks fine”… so the formalistic stuff can be a problem for me

Chris: what about more of a show-and-tell type structure of the CG?

Manu: the proposal sounds like show-and-tell followed by a handful of meetings to get things done and then you fall into that pattern in the interim with the current communication patterns

Lain: It sounds like a good idea, the way we do these conferences always feels super productive, so we can have meetings in this kind of format with show and tell, I show off how chat works and etc I think that’s a good idea