I find the regular musings of @hrefna while she is deep-diving the harder implications of ActivityPub-Done-Well™ to be greatly inspiring. The last couple of months there have been plenty discussions in the community on the merits and complexities of Linked Data. The same subject that keeps us busy for years (search the SocialHub archive).
I’d like to cross-reference 2 discussions I participated in, inspired by @hrefna …
What I’ve mentioned many times and keep circling back to, is that when it comes to modeling AP extensions we need explicit message formats that we can validate against, we need documented msg exchange patterns and behavior that is triggered, and we need to standardize on those in order to gain meaningful interop that is more than WDD (whack-a-mole driven development, i.e. going app-by-app against moving targets).
The design methodology of DDD Strategic design corresponds to an approach that is applicable for that, not as an exact match, but as a starter for this integration guide. A heterogeneous Fediverse with many different components, services and app types that interoperate would see each of them have “closed world” models akin to DDD Bounded contexts be defined and documented, standardized for others. All within an Open ecosystem with decentralized devhubs, communities, projects and a well-defined bottom-up Standards Process.
I see no merit in ActivityPub being a Linked Data-first spec, that is also usable by JSON-only folks. Instead I prefer we start treating the specs as JSON-first with opportunity to go the extra mile for your Linked Data use cases. We can model closed world bounded contexts, and - with guidance - still have them exchange valid JSON-LD msgs. Update: Also cross-referencing @jenniferplusplus on this same notion.