Minutes from 2 May 2024 WG Meeting

Please see below for minutes from today's Forum and Threaded Discussions Task Force monthly meeting.

Apologies in advance if I misrepresented anybody or missed any crucial bits of information


in order of appearance

  • Dmitri invited participants to the regular SWICG call tomorrow; best place to be informed of upcoming events: SocialCG calendar"please come by, it is free for everyone to join or listen in"
  • Angus provided an update to the working group's inclusion under the banner of the Social Web Incubator Community Group (SWICG), revised name would be the Forums and Threaded Discussions Task Force, or "ForumWG" for short.
  • Julian provided an update on this past month's usage of the fediverse to hold asynchronous discussion, a number of threads have been started on the respective forum categories (both of which federate out) for the working group pertaining to discussions re: agenda items, and have been fairly well received.
  • Angus and Julian will update the respective handles of their categories to reflect the new working group name

"Lay of the Land" survey reports

  • Angus: The general spirit of these surveys is 'these are the existing X approaches, the plurality may indicate the need to converge'
  • Nomenclature
    • Rimu: Document continues to be expanded upon
    • Evan re-iterates that it is unlikely any implementors will change their nomenclature to match
    • Angus asks whether participants find utility in the list
    • Evan indicates that whatever is decided upon is best used "on-the-wire", Julian agrees and notes that the agreed-upon terminology would be used in the "Definitions" portion of any report written by ForumWG; suggests the list may be best kept as a living reference
    • Rimu indicates that as the list grows, alternative ways to represent the data may be required
    • Round of applause for Rimu for taking the initiative to start (and now maintain) the list
  • Object Type (Article vs. Note vs. Page)
    • Impetus for topic: WordPress sending out as:Note when as:Article would be more suitable
      • @jupiter_rowland@hub.netzgemeinde.eu (in topic, paraphrased): Mastodon values microblogging UX and locked down their allowed html to satisfy this constraint, despite Hubzilla's pleas
      • @mikedev@fediversity.site (in topic, paraphrased): Raised issue in 2017 to address issues with inline images being removed. Suggested a compromise: treat Article and Note differently (Note, text only with attachments; Article, full HTML) — Eugen 7 months later closed issue with change to further hamper treatment of Article, by showing only title and link back to source.
      • @pfefferle@mastodon.social (in topic): "You can choose 'Note' if you want to have the best compatibility"
    • Evan: Whether a note or article is federated, it shouldn't hamper implementation; but as:Page should not be used
    • Mattias: Choice is given to user as to how WP maps the native Post object to ActivityPub. Historically sent out Article but received a lot of pushback from early adopters. Difficult to reconcile UX with technical limitations
    • Evan: "An as:Note is a Tweet (we just couldn't call it that), an as:Article is a blog post"
    • Emelia: "Should software publish different objects based on content length, even if using the same mechanism?"
    • a: Big picture view — it doesn't seem complicated, but it is, because the line between them is completely arbitrary.
    • Mattias: We try to autodetect (no headers, content length, etc.), would prefer different content types based on what users write, but the advantage is being able to read content natively on the user's platform of choice
    • Dmitri: "I think we've got several questions in parallel:
      1. What SHOULD these things (Note & Article) be used for.
      2. What to do about Mastodon who only seems to consume Notes."
    • Emelia: Don't Articles usually have titles?
      • Everyone else: crickets (made us think!)
    • a: https://wiki.trwnh.com/tech/spec/activitypub/confusion/note-vs-article/ (also indicates using title to discriminate Article vs. Post isn't 100%)
    • a: The reason we're talking about this is because of various differring implementations - for example, in one implementor's mental model, you have a thread with a title and that is separate from the posts contained within; posts that may also have titles of their own. How do we reconcile this?
    • Julian and Rimu note that @renchap@oisaur.com replied in-topic: "... we would like to improve how non-Note objects are processed/displayed in Mastodon."
    • Julian mentions a compromise put forth by @mikedev@fediversity.site where Notes are smaller pieces of content with limited markup and attachments, and Articles are (sometimes) larger pieces with formatting, inline images. Additional survey/spreadsheet to be created, but we could as a group (Mastodon included) converge on a path forward and a report to the SocialCG could be authored. To be continued next month.
  • Group Actor characteristics
    • 1b12 - announcing the activities of their actors, this is what Discourse and NodeBB do, other implementations have taken this approach
    • @nutomic@lemmy.ml (paraphrased): "intent of 1b12 is to describe the existing status quo"
    • 400e - Pubicly appendable collections; Picked up by a few other folks, also potentially Mastodon (with their new groups implementation)
    • How do we treat group actors in forum/threaded implementations?
      • a: 400e - Groups send Add activities, 1b12 - Groups send Announce activities, otherwise, a Group could even send regular Creates (editor's note: this is a dramatic simplication of the actual post here)
      • Evan: announce style makes the most sense, understanding that folks use both - suggestion: document both but let consumers know they'll see one or both
      • Rimu: Implementors can make opinionated decisions on how it should work, and adjust based on the reality of how the major players adopt
      • Angus will continue collating responses into a spreadsheet re: group implementations
  • Open item: feedback on desired UX (@trwnh@mastodon.social)
    • Can a group be multiple different things? e.g. a context/thread has some recipients, a context could be an actor. How forums choose to (or could) represent these relationships via ActivityPub is what is currently being solicited
    • a: Boils down to "Collections, please use them", but best to start foundationally: Notes in Collections, first.
    • Due to lack of time discussion of this will take place asynchronously on the fediverse: https://community.nodebb.org/post/99491 (if this does not open in your client, paste it into the search box)
    • Julian provided one user story: "If you want to share a context to others, one should share the higher-ordered collection, and not what we do today, which is to share the url/object uri for OP."
      • A suitable implementation could see that and backfill the entire context locally, and redirect the user to the first object.
    • Angus noted that Discourse already has some support for Collections, will provide details async on forum topic (linked above)

Action Items


@julian Great work, thank you!

@julian @dmitri @angus @rimu @evan @pfefferle @thisismissem @trwnh @jupiter_rowland @mikedev @renchap @nutomic I keep missing these! The first one I had something come up that conflicted with it, but this one I must have just forgotten to put on my calendar. Maybe I'll catch the next one.

@arnelson@fosstodon.org Let me add you to the list-of-people-to-mention whenever something is scheduled 🙂

@julian @arnelson We should also probably put it on the SocialCG calendar. @dmitri ?

@evan@cosocial.ca slightly ahead of you there 😁 https://community.nodebb.org/topic/18010/adding-forum-task-force-calls-to-the-calendar


@grishka What are your thoughts on FEP-400e vs FEP-1b12 question? Is there a good reason to pick one over another?

@mikedev @silverpill how do you feel about the use of `context` in the exact same way that `target` is used (invalidly according to as2-vocab, i might add)?

my understanding is that conversation containers use the same id for `context` and `target`. this is redundant imo, but i suppose that's where we are currently...

@trwnh@mastodon.social @mikedev@fediversity.site as an aside, I am led to believe that 1b12 and 400e are incompatible with each other, which would preclude any implementor from simply implementing both?

Could a potential avenue be making changes to 400e so it can coexist with 1b12 — or vice versa — or is that not an option?

@julian @mikedev As you probably already know, I think the better path forward is to use the actual intended property for this, which is context, and to send out Add to Collection instead of sending Announce. The "incompatibility" is simply in payload, but the consequence is significant if you want to support private forums.

@mikedev Hmm. I think that the "correct" way is to add new vocabulary terms and multitype the collections, so for example [OrderedCollection, Conversation]. But point taken, there is definitely a lack of signaling what exactly a collection is, what does it include, etc.

At least for the forum use-case I was thinking of two new types, a Topic (Collection of post objects), and a Forum (Collection of Topic). names subject to change of course. the pattern is broadly generic but the terminology isnt

@silverpill @julian obviously my FEP is superior :)

The problem with FEP-1b12 is that it just formalizes the fundamentally flawed Announce flow. It's flawed because you have to post to what's essentially *your own personal timeline* to later have the post boosted by the group actor. Because of that, your followers can see the group post, as it technically exists outside of the group.

FEP-400e does not have this shortcoming because you create your posts "into" the group to begin with.

@mikedev @silverpill actually, Smithereen has private (invite-only) and closed (manual approval + invites) groups, and I do have an authentication/permission mechanism to go on top of FEP-400e, what I called "actor tokens". I have it documented here: https://github.com/grishka/Smithereen/blob/master/FEDERATION.md#access-control-in-non-public-groups

Never made it a FEP because I thought that the whole FEP process was dead. Should I make one?

It sounds the whole discussion about Note vs Page is really asking how to get Mastodon to display your content better. But I think thats entirely the wrong question to ask. When someone complains to me that Lemmy posts look wrong in Mastodon, I simply point him to the Mastodon issue tracker. Its absolutely none of my concern how other projects render our content. There are dozens of Fediverse projects and I dont have time to go around and change things to satisfy every single one. If Mastodon developers dont want to improve things its their loss.

Its important not to get blinded by Mastodons large user numbers. It really is by far the largest Fediverse platform so far, but does that really matter? If you look at centralized social media, there are actually billions of users. So a few years of growth and migration waves could catapult any well-designed project ahead of Mastodon in terms of user numbers. Its much more important to optimize for all these potential future users, rather than appease a minority on Mastodon who sticks to such a badly behaved platform.

Also what does Evan mean by saying that Page shouldnt be used? Lemmy uses it since day one without any problems, its a perfectly fine type.

1 Like

@grishka Looks interesting, I think writing a FEP is a good idea. The process is not dead yet

I want to implement private groups too but it is not clear which approach is better. We discussed private groups with @nutomic and he said that FEP-1b12 can also support private groups. There is an RFC, but AFAIK it has not been implemented yet.

And here's the documentation for @mikedev 's Conversation Containers: https://fediversity.site/help/develop/en/Containers


@silverpill @nutomic @mikedev @julian

well, the benefit of my implementation of private groups is that it already exists :)

I'll write a FEP about my actor tokens.

@nutomic@socialhub.activitypub.rocks said in Minutes from 2 May 2024 WG Meeting:

Also what does Evan mean by saying that Page shouldnt be used? Lemmy uses it since day one without any problems, its a perfectly fine type.

That might've been a simplification on my part. The distinction was between Article, Note, and Page and being displayed in-app with rich HTML support.

Page, as per spec, is better handled how Mastodon already handles it: a short summary with a link to the original page.

Correct me if I'm wrong @evan@cosocial.ca ?

@julian @nutomic Page is not for objects with `content`. It's for links to Web pages and applications, with metadata. It shouldn't have been used for Lemmy posts.

@mikedev Ah, I should clarify: Create with target is valid, but not immediately meaningful. Object with target is invalid because target is only defined for Activity types.

7888 uses the same Create/Add workflow as 400e but uses the “correct” property for this.

The use of multiple contexts is… possible, but it’s like using multiple inReplyTo. The main issue is where to send your activity for approval.

@mikedev I meant non-Activity types can’t have “target” property. Nothing to do with “object” property.

You can Add a Like (etc.) just fine.