The state of conversational contexts (February 2025)
-
schrieb am 21. Feb. 2025, 17:42 zuletzt editiert von julian@community.nodebb.org
A conversational context is what the ForumWG uses to describe what you might see as a reply tree or comment thread. One of the short-to-medium term goals of the ForumWG is to get conversational backfill working reliably.
What this means — conversational backfill means that when you encounter a post/status/note/etc. (e.g. you're mentioned or boosted/shared something), there is a reliable and comprehensive way to retrieve the entire conversation around it, so you are not interacting with the object on its own, but in its proper context with all its sibling replies.
We plan to achieve this with a combination of a top-down (FEP-driven) and bottom-up (implementor-first) approach. While this sounds incongruent, top-down approaches tend to overcomplicate and bottom-up approaches tend to violate the protocol (unintentionally of course
.)
There are a number of independent top-down efforts to achieve this:
- FEP-7888: Demystifying the context property
- FEP-171b: Conversation Containers
- FEP-76ea: Conversation Threads
These FEPs are in the R&D phase.
State of the Top-Down approach
At this time, the ForumWG is only recommending the following:
- Publishers SHOULD use
context
for grouping related objects in a thread (but this is not the only way to use context).
There is general agreement over:
- A
context
SHOULD resolve to a resource.
There are concerns over:
- What that resource is (
as:OrderedCollection
, a new type, something else?) - What is included in that
context
(plain objects or activities)
State of the Bottom-Up approach
The bottom-up approach is results-oriented, and while certain implementors may follow certain FEPs, the overarching goal is "cross-compatible conversational backfill".
Separately, these implementors are (or have signalled interest in) implementing conversational backfill:
- NodeBB and Discourse (@angusmcleod@mastodon.social)
- Following FEP 7888
- Attaches
context
to objects context
resolves to anOrderedCollection
- Two-way conversation backfill is tested and working.
- WordPress (@pfefferle@mastodon.social) and Frequency (@jesseplusplus@mastodon.social)
- Following FEP 7888
- Attaches
context
to objects context
resolves to anOrderedCollection
- One-way conversational backfill is tested and working — others can backfill an entire conversation from these implementors.
- Lemmy (@nutomic@lemmy.ml) and PieFed (@rimu@mastodon.nzoss.nz)
- Have signalled interest (neither positive nor negative) in conversational backfill and are waiting and watching at this time.
Of note:
- Mitra (@silverpill@mitra.social)
- Following FEP 171b
- One-way conversational backfill is tested and working — Mitra can backfill an entire conversation from FEP 7888 implementors
What's Next
This thread will likely contain updates and discussion from related parties about their implementations and what they wish to do next. In the cruelest irony of ironies, because conversational backfill is not ubiquitous yet, you will need to "View Original URL" in order to see all of the replies.
The ForumWG will meet again on 6 March 13h00 EST where all of this will be discussed, as well as planning out the future focus items for the ForumWG.
If you are an implementor, there is no reason you cannot join the fray. Boost this post, reply to it, join the conversation(al context)!!
If you're not an implementor, boost me anyway
-
schrieb am 21. Feb. 2025, 18:27 zuletzt editiert von
Streams and Hubzilla also implement
context
collection. They attachcontext
to activities, it is anOrderedCollection
, and its items are activities. -
Streams and Hubzilla also implement
context
collection. They attachcontext
to activities, it is anOrderedCollection
, and its items are activities.schrieb am 21. Feb. 2025, 19:02 zuletzt editiert von@silverpill@mitra.social can Mitra, Streams, and Hubzilla backfill from each other (full two-way backfill) or one-way at this time?
-
schrieb am 21. Feb. 2025, 19:40 zuletzt editiert von
@julian Mitra can backfill from Streams and Hubzilla, but it doesn't publish any collections yet.
Streams and Hubzilla have interoperable FEP-171b implementations, but I don't know about pulling the collection. They are more focused on private conversations where backfilling is not needed.
-
@julian Mitra can backfill from Streams and Hubzilla, but it doesn't publish any collections yet.
Streams and Hubzilla have interoperable FEP-171b implementations, but I don't know about pulling the collection. They are more focused on private conversations where backfilling is not needed.
schrieb am 21. Feb. 2025, 21:16 zuletzt editiert von@silverpill@mitra.social thank you! I've updated the original post to reflect that now.
-
@julian Mitra can backfill from Streams and Hubzilla, but it doesn't publish any collections yet.
Streams and Hubzilla have interoperable FEP-171b implementations, but I don't know about pulling the collection. They are more focused on private conversations where backfilling is not needed.
schrieb am 21. Feb. 2025, 22:36 zuletzt editiert von@silverpill I've yet to see Hubzilla backfill an entire existing thread at once. It does backfill posts from new connections on certain server apps, though. And it sometimes appears to backfill threads bit by bit over prolonged periods.
As for (streams), I can't see inhowfar it backfills because I barely actually follow anyone from there. -
@silverpill I've yet to see Hubzilla backfill an entire existing thread at once. It does backfill posts from new connections on certain server apps, though. And it sometimes appears to backfill threads bit by bit over prolonged periods.
As for (streams), I can't see inhowfar it backfills because I barely actually follow anyone from there.schrieb am 21. Feb. 2025, 22:54 zuletzt editiert von@jupiter_rowland@hub.netzgemeinde.eu if you're seeing Hubzilla backfill "bit by bit" it is likely doing
inReplyTo
traversal, which is what NodeBB does if it cannot find a resolvable context. -
schrieb am 22. Feb. 2025, 07:10 zuletzt editiert von@julian Hubzilla internally backfills via context. Has done so all along. Activitypub content is so far backfilled via
inReplyTo
traversal and thereplies
collection. -
schrieb am 24. Feb. 2025, 11:09 zuletzt editiert von
Thanks for putting this together @julian. I'll be coming to the next Forum WG meeting on March 6 to discuss next steps
-
schrieb am 25. Feb. 2025, 21:34 zuletzt editiert von
IIRC @kopper@brain.d.on-t.work implemented backfill on Iceshrimp.net, maybe they wanna share their approach.
-
IIRC @kopper@brain.d.on-t.work implemented backfill on Iceshrimp.net, maybe they wanna share their approach.
schrieb am 26. Feb. 2025, 04:23 zuletzt editiert von@panos there's nothing i could really add that's anything novel.
we simply recurse through replies collections with plans to load context collections whenever they get more adoption (and whenever i get the motivation to write the code). we already expose context collections of our own -
@panos there's nothing i could really add that's anything novel.
we simply recurse through replies collections with plans to load context collections whenever they get more adoption (and whenever i get the motivation to write the code). we already expose context collections of our ownschrieb am 26. Feb. 2025, 04:28 zuletzt editiert von> we already expose context collections of our own
@kopper@brain.d.on-t.work you do? Kick ass. Let me run some tests and see how it performs!
> with plans to load context collections whenever they get more adoption
️
Can I put you down under the "wait and see" category?
-
schrieb am 26. Feb. 2025, 04:49 zuletzt editiert von
-
schrieb am 26. Feb. 2025, 19:45 zuletzt editiert von
@julian I implemented collection of posts in mitra. For now it is only attached to top-level posts (via
context
).Here, for example: https://mitra.social/objects/019529ff-7a45-9752-16f2-a3e780746c1c
-
schrieb vor 30 Tagen zuletzt editiert von
Very complicated all this Fediverse stuff! Far from the dream of having one account for everything, I seemed to need an account on every service to get the whole picture. I have now Nodebb, Mastodon, Lemmy, PixelFed and Peertube!
I dont know if Im just not using it properly, or if seeing everything from any one of these site is even possible?
@julian how far off is the prospect of using my nodebb account for all Federated chat, is that even achievable in long term? -
Very complicated all this Fediverse stuff! Far from the dream of having one account for everything, I seemed to need an account on every service to get the whole picture. I have now Nodebb, Mastodon, Lemmy, PixelFed and Peertube!
I dont know if Im just not using it properly, or if seeing everything from any one of these site is even possible?
@julian how far off is the prospect of using my nodebb account for all Federated chat, is that even achievable in long term?schrieb vor 30 Tagen zuletzt editiert von@eeeee
From this website, you can follow almost any user account you want on almost any Mastodon-, Lemmy-, mbin-, PixelFed-, Misskey- (and its forks), Hometown-, Friendica-, Hubzilla-, or Mitra-based website, barring a few minor obstacles (neither side needs to have blocked the other, neither side needs to have disabled federation, and the user you're following needs to have not blocked you). You can also follow groups like Lemmy communities, or Guppe groups.There's really no need to have accounts on all platforms. Not unless you want to have separation between what you post, or want the variation in UX that comes with all of these different pieces of software focusing on different core experiences.
What's important to know is that they work via syndication -- content is mirrored across the network, not viewed insitu -- and that syndication doesn't occur without prompting. So, you need to go through the steps of entering a remote user or group's url or full account address (username@host.tld) in order to fetch content, and that content, by and large, is not backfilled.
If you can accept these limitations, then a single Mastodon, mbin, nodeBB, etc. account is all you need.
-
@eeeee
From this website, you can follow almost any user account you want on almost any Mastodon-, Lemmy-, mbin-, PixelFed-, Misskey- (and its forks), Hometown-, Friendica-, Hubzilla-, or Mitra-based website, barring a few minor obstacles (neither side needs to have blocked the other, neither side needs to have disabled federation, and the user you're following needs to have not blocked you). You can also follow groups like Lemmy communities, or Guppe groups.There's really no need to have accounts on all platforms. Not unless you want to have separation between what you post, or want the variation in UX that comes with all of these different pieces of software focusing on different core experiences.
What's important to know is that they work via syndication -- content is mirrored across the network, not viewed insitu -- and that syndication doesn't occur without prompting. So, you need to go through the steps of entering a remote user or group's url or full account address (username@host.tld) in order to fetch content, and that content, by and large, is not backfilled.
If you can accept these limitations, then a single Mastodon, mbin, nodeBB, etc. account is all you need.
schrieb vor 30 Tagen zuletzt editiert von -
schrieb vor 29 Tagen zuletzt editiert von
@julian "We're making a super cool product that's adopting this space" tends to go over well in the Fediverse, yeah. We love being catered to with cool toys and tools!
And good God do I miss real forums, after a decade on Reddit.
-
schrieb vor 29 Tagen zuletzt editiert von
Ok, if I can give specific example. I found a community via lemmy which is interesting.
@medicine@mander.xyz
If I want to post a topic in it, can I make a nodebb post and send it there? -
Ok, if I can give specific example. I found a community via lemmy which is interesting.
@medicine@mander.xyz
If I want to post a topic in it, can I make a nodebb post and send it there?schrieb vor 29 Tagen zuletzt editiert von@eeeee I'm not actually sure about it, but I think all you have to do is mention the community.
In fact, you did in your reply, and I don't actually know what would happen normally. Perhaps it has to be a root post.