Continuing the discussion from Basic Metadata for Modality Spaces and..
Following from this, it sounds like the best way to sketch out a common Threads lexicon is to essentially fork standard.site as a wholly separate but baseline-compatible lexicon, e.g. community.lexicon.thread
I firmly believe a unified threads-lexicon core can adequately cover both the group chat and internet forum cases interchangeably.
Each modality (synchronous vs async, fast vs slow) can still extend that core with its specialties, but the semantics and affordances of a thread in two distinct apps like Discord or Discourse are fundamentally the same:
- there’s a thread title, i.e. the label of the posts-container
- thread contains one or more posts
- posts are ordered linearly (this doesn’t exclude nesting, but that’s non-default and more specific to the forum modality)
- posts can reply to other posts
- posts can have reactions
- thread can be subscribed to
- thread was created by someone, at a specific time
- thread has a permanent URL/URI
- private/public thread access is determined by its channel/category container (space).
Prior art
Approximations of this kind of lexicon have already been drafted in
- Colibri by @lou.gg
- atmoBB by @keithkurson
- Barazo by @gui.do
- UserInput by @brookie.blog
- and in-progress for Roomy by @meri.garden @zicklag.dev @erlend.sh
Colibri
atmoBB
- https://github.com/keithk/atmoBB/blob/main/docs/lexicons.md
- https://github.com/keithk/atmoBB/tree/main/lexicons/app/atmobb/discussion
Barazo
- Barazo - forum AppView lexicons for topics, replies, and reactions
- https://github.com/singi-labs/barazo-lexicons
- https://github.com/singi-labs/barazo-lexicons/tree/main/lexicons/forum/barazo/topic
UserInput
Bit of a special case since it doesn’t intend for threads to be very discursive, but it still follows the same general discussion-container format, and there’s prior art in Discourse which we extended with a voting feature to do exactly what UserInput does.
Roomy
Roomy is/was planning to adopt lexicons as part of our pending migration to atproto spaces. Our team’s capacity is much more limited nowadays though, so the timeline for this change is uncertain.
Same thread at different speeds
The only big difference between the chat-modality of colibri/roomy and the forum modality of atmobb/barazo is the speed of conversation, which also affects the conversational style. The originating app context of a given thread would determine its default pacing, but a chat-first thread can still work in a forum context.
An atmobb thread could be interacted with just fine via colibri, it’d just be like a thread in slow-mode (minimum one reply per minute) .
A colibri thread could be interacted with just fine via atmobb, it would just update every few seconds instead of in real-time.
It’s also possible to combine both speeds by separating out chatty digressions in the UI like so:
Motivation
I want a community space like the hypothetical forum.atmosphere.community (running on a natively atmospheric comms app, not Discourse) to be equally accessible as an atmospheric group space in other interfaces, like Bluesky’s social-app and its derivatives.
Here’s a mockup:
So all of these interfaces would be windows into the same group-space of threads:
forum.atmosphere.communitymu.social/groupspace/atmosphere.communityroomy.space/atmosphere.community
What’s next
I’m not lexicon-fluent enough to take the lead on the lexicon specifications required, and no one I’ve talked to yet in the “threadisphere” has the bandwidth to own this, which is fine.
I expect the individual projects mentioned herein to continue with their own respective lexicons for the time being, but I’m hoping other lexicon experts around here can help move these sketches towards a concrete specification.



