Cross-posting opensocial.group spec thoughts / questions I added to a Tangled issue:
Unfortunately Tangled doesn’t let me subscribe to the repo and get email notifications so it seems worth posting over here too.
Me @lou.gg and @erlend.sh were discussing interoperability between different apps around the idea of “threads” in the context of things like forum threads and chat threads. The thought right now is that forum threads and chat threads are clearly different modalities that might want different handling, so they should have their own lexicons. Still, I do think there’s value in having all of these threads be able to describe themselves in a somewhat universal way. Almost like OG metadata for permissioned spaces.
There are a few different sides of this that I think might be useful to have standardized in opensocial.group and wanted to get feedback.
Standardized Metadata Records for Spaces
My thought is that we can create something like a group.opensocial.space.meta/self record in every space that has some minimal metadata that can be used to inform other apps what the space is about even if it can’t directly interact with the modality because it isn’t supported. For example some basics like title, description, image / avatar, or feature image would allow us to make something like a link preview for a space in any app regardless of modality.
The current proposal already has records in the members/self space that has a title and description for a space, but I think that it’d probably be best if there was metadata in the space, so that any space that you get an at:// URI and a credential to can also be described just by looking at its meta record.
Announcing a Space Publicly
Another use-case that we had was the ability to index threads across the atmosphere. We already have a declaration record in this spec for announcing the existence of a group on the firehose, and I think it could be useful to have a standard for doing the same thing for spaces.
This would make it possible, for example, to have an AppView that indexes all of the public forum topics created across any group, possibly filtering based on the space’s modality.
I’m imagining that a space declaration record would contain simply the space’s at:// URI, and AppViews could ignore that contain URIs with space types that they are not interested in.
Providing a Default App for Space Links?
This is a little more uncertain, but it occurs to me that it would be useful to be able to, for example, post something that resolves to an at:// link to an AtmoBB forum topic in a Roomy chat message, and have Roomy be able to display an inline link to the forum topic with the title automatically fetched from the metadata record.
I’m imagining, at the underlying data level, when that chat message gets stored on protocol, it would be best if that link could come with an at:// URI to the space that is being linked to. That would allow, for example, certain apps that support the AtmoBB lexicon to open the forum topic without leaving the app, instead of it being just a link to the AtmoBB app.
But if the app doesn’t support AtmoBB’s lexicon, then it would like to link to some app that can display the forum topic properly. Maybe it would make sense for the space metadata record to also contain a link that can be used to view the thread in the app that created it? That way, given just an at:// URI to a space, any app can display the basic information for the space, and know which link to send the user to if they would like to view it in its native app.
Note: how to get the at:// URI when a user pastes in a link to a specific app is a separate, but related concern which looks like it has been discussed here on the forum.