Developers Meeting 2 : Groups

The next meeting will be in 1 week:

2022-02-15T16:00:00Z

  • 4pm UTC
  • 11am EST
  • 8am PST

with an open end.

As decided at the last meeting, the main topic is Groups.

Agenda:

  • 5min : 40s-introductions/reintroductions
  • 10min : @Sebastian Summary of 4 long threads about “Groups” since the Prague Conf
  • Discussion: Groups - How to

Call For Proposals

Please reply below to propose an agenda item. Please consider doing some ahead-of-time work to articulate the item, and linking it in your proposal so others can come prepared to build consensus or raise objections that we can discuss in our limited time together.

Example Agenda Proposal

PROPOSAL:
Actor (@userOrFediHandle)durationcontent

Read this for more on agendas.


Tuesday Meeting URL / Join here

Thanks everybody for attending!

for now, this is the summary used for the meeting, a log will follow.

APgroupsLow.pdf (595.1 KB)

Next meeting is March 8 same time.
Subscribe to the calendar via https://cloud.w3c.social/remote.php/dav/public-calendars/GzxsDfE6CKtp9MHX/?export


before I will forget it, for the log also the text by Chris Moser about implementation and to mastodon federation workaround:


yuforium federation: Federating Communities

The ActivityPub specification provides a context field, and Yuforium adds a /topic endpoint to provide a shared context for federated communities.

Before we begin, let’s clarify that:

Yuforium is code and standards, Yuforia.com is a service

@context is not the same as context

Post to a forum from your Activity Stream by addressing the forum

{
   "@context":"https://www.w3.org/ns/activitystreams",
   "id":"https://mastodon.social/cpmoser/note/some-id",
   "type":"Note",
   "name":"First Post by Chris",
   "content":"Hi world!",
   "to":[
      "https://www.w3.org/ns/activitystreams#Public",
      "https://yuforia.com/forum/anything"
   ]
}

A new Note is created in the forum, referencing the original via “delegatedFor” and adding the default context of the forum

{
   "@context":[
      "https://www.w3.org/ns/activitystreams",
      "https://yuforium.com/community/v1"
   ],
   "id":"https://yuforia.com/forum/anything/note/another-id",
   "type":"Note",
   "delegatedFor":"https://mastodon.social/cpmoser/note/some-id",
   "context":"https://yuforium.com/topic/anything"
}

It’s not necessary to pass through the delegatedFor property through the community at large but it should remain with the forum’s Note.

You can also POST directly to the forum outbox like your own and it will be excluded from your Activity Stream (should require authentication)

{
   "type":"Note",
   "name":"A note",
   "to":[
      "https://www.w3.org/ns/activitystreams#Public"
   ]
}

Forums encapsulate the context

{
   "type":"Service",
   "name":"The anything community",
   "summary":"Representation of /topic/anything on a specific site",
   "context":[
      "https://yuforium.com/topic/anything",
      "https://yuforium.com/topic/general"
   ]
}

Resource Types TL;DR

A topic is a focal point (purpose) for information exchange

A forum is a public endpoint on a server and distributes content with other forums and the larger community

A community is an ephemeral representation of all forums that are joined together by a topic

Topics

Topics are the glue that forums use to share information. They can be considered loosely authoritative entities for the context that they represent:

{
  "id": "https://yuforia.com/topic/anything",
  "summary": "Only ANYTHING can be discussed here"
}

The concept of authoritative entities may go against the idea of federation, therefore:

Forums can have multiple contexts

Forums aren’t required to follow the rules of their respective contexts - the caveat is that other forums (or the authoritative topic) may see them as “unofficial” or unvetted participants.

A topic can be completely unauthoritative, for example:

{
  "id": "https://yuforia.com/topic/anything",
  "context": {
    "name": "anything"
  }
}

Without an authoritative context, however, a forum will need to manually follow another forum to distribute content.

Forums

Forums are conduits to the larger, distributed community. They are endpoints that can be a source

Private Communities

We could use public key encryption to pass content around.

Are you trying to reinvent my collections FEP again? :thinking:

No, see the summary. We talked about it.

This meeting was just the initial meeting about groups.
It was about the history and use in different implementations.
We would have been even more happy if you could talk about it in the next meeting!
All meetings are announced here or in the calendar …

Meeting 3 is March 8 https://cloud.w3c.social/remote.php/dav/public-calendars/GzxsDfE6CKtp9MHX/?export @thebaer

cc other people involved in the Group debates yet:
FYI @dansup @ngerakines @cjs @yvolk @koehn @aveltens @dessalines @aschrijver @weex @heluecht @nightpool @lanodan @lain @Gargron @macgirvin @yala @vpzom

Thanks for the ping. I always seem to miss these.

The PDF lacks any dates, does that reflect the attendance and topics of discussion of the most recent (Feb 15, 2022) meeting?

With respect, I wish to share my position against formal meetings, preferring instead to discuss things in a decentralized way through public topics, issues, specs and code than in live meetings. It’s pretty vital that newcomers can review how things came to be so they have more equal footing to help improve things for the future.

No, the PDF was the presentation to summarize the discussion for the second meeting.
BBB does not allow any other format.

For me it is pretty vital that my federated CMS where I have spent 6.200 working hours works together with other software. The meeting is for anyone and the feedback was yet always positive.
In moderation I had always tried to equal voices and newcomers do attend.

We now have 4 different implementations of groups. So maybe “concensus” is rather needed.
The attendance of the last meetings was 16 people, 8 people, 11 people, 5 people.
Before the last meeting the w3c.social calendar was down and guppe crashed and lost the people.

For the future, people will be notified via the calendar again.
Also I would be pretty lost in the EU DSA debate without the meetings inbetween.

Please also note that the meetings were decided in the group at the Conf 2019 -
so I can’t really respond to this alone.
They are rather informal but you could ask at the next meeting to stop it and we vote.

[edit] about the logs, I do agree and as always said:
I would be happy if we could do audio recordings !
And if it is only to write later. I am not capable of writing fast !!! I am sorry.
@thebaer Do you want to prepare a summary ?

1 Like

Great initiatives on the Groups front, Sebastian!

I am very interested not just on the technical level, but also on the process side of reaching agreement and subsequently standardizing stuff. So I created a HedgeDoc pad with some notes on the history that Group-related discussion has had thus far on SocialHub. Here it is:

1 Like

Continuing this OT meetings topic: I don’t mean to say that people shouldn’t meet and largely operate by a whatever works principle. I’m explaining in part why I don’t make much effort to attend such things because I can see some downsides. I think meetings greatest benefit is for getting to know people. I wouldn’t ask anyone to stop, but highly appreciate @aschrijver’s effort just above to document what’s happened so I and others like me can come up to speed.

2 Likes

Was the collections FEP an attempt to address Groups? I didn’t look closely enough but if so, that would be very helpful to flesh out somewhere.

Well, don’t understand.
My pdf just summarises the thread so that the people who attended get a compact overview.

It began with the session at ActivityPub Conf 2019 and the history of endless not matching threads on socialhub are documented in Arnolds doc (very nicely).
Arnolds findings in the end are

Generalizing some of my impressions:

  • Most likely the perception will be that SocialHub “can get nothing done” and that mingling in the discussions is not worth the time.
  • Most likely practical app developers would rather skip SocialHub discussion and “just-do-it”, if they want to make progress.
  • Most likely popular, fast-moving apps (many contributors) will be early adopters, and likely lead via post-facto interoperability.
  • All the different requirements that federated apps have will likely result in a patchwork of interop variations, incompatibilities, and different flavours of similar concepts.

Exactly these findings are the reason to sit around a table and reaching concensus.
This is what we do.


About “ To date there’s no still conclusion on Webfinger for Groups now, and there are incompatible implementations.” :

Webfinger is not part of ActivityPub (as Christine said endless times), it is counter-productive because I am not on twitter and not interested in making an URL look like a twitter handle.
My actor is sebastianlasse.de and nothing else and in ActivityPub there is an Actor type group.


About the collections FEP, they are basically one type of groups used in the fediverse, public relays.
Unfortunately mastodon does not deliver Notifications anymore for Actor type Group … … …

I think both can be true and might support each other. Going into a meeting with the agenda point of “Groups” means that the discussion might go anywhere, and the most vocal people will steer the direction, but not necessarily reflecting all the prior discussion on this forum.

It might be handy to divide the agenda in much more smaller bullet lists, touching upon specific group capabilities, features, and open issues with them that need to be tackled. Having such list might also allow the items to be prioritized starting with the ‘core’ of what it means to have Groups support and what are nice-to-haves with lower priority. Also there may be a division in more complex mechanics and easier stuff and dividing those in the meeting. E.g. having easier, introductory sub-topics first, allowing less experienced developers to come along before delving deeply.

That may well be, but given this is both brought up in this forum by members, as well as implemented across the Fediverse, it is an issue that is not tackled well enough. I suggest - if we want to come to a better situation here - that a FEP is written (if there’s a need to describe the mechanism more clearly… I cannot gauge that) and agreement sought with as many federated project as possible that use Webfinger at the moment, to ensure their buy-in to use your suggested approach.

1 Like