Interoperable Serendipity

Very interesting article. A very hard problem to get true widespread interoperability on both data formats and protocols become a reality.

You mentioned “working in the open” which is very important, as it allows one’s work to be discovered and more broadly shared. In that regard there’s much to be improved on the social aspects: the communities that are working on interoperability of all kinds. I notice there’s the tendency to stick within one’s own community, working on own specs, solutions and techstacks and very little time or even willingness to look beyond that see what others are doing and align efforts. There’s very little cross-community interaction. To an extent maybe there’s even ‘adversarial myopia’ with “our solution is best” or “our way or the highway” kind of thinking (maybe unwittingly coming from a passion for the own project).

In protocol land it is often others that write protocol bridges after standards have been established. But even within a certain protocol there’s no agreement on semantics and data formats as you mention. On the Fediverse for instance - while ActivityStreams / ActivityPub have a JSON-LD vocabulary extension mechanism - there’s something like Ad-Hoc Interoperability going on: Look into the codebases of similar apps you like to integrate with and discover data formats that are used. This is probably how e.g. PeerTube and Owncast will someday interoperate.

Though it is a win-win for every FOSS developer involved they still don’t spend the time doing community work to standardize and document proper extension vocabularies. While schema.org is nice, the other big ontology library is not very useful in many cases. I feel like for Fediverse we should define Pattern Libraries of ‘micro ontologies’ + additional documentation that each introduce a single concept that can be incorporated in an app as a building block. For instance I want to define a robust concept of “Community” that is very minimal. Another concept may be “Policy” and by combining the two I might have community policies in my app.

I find those Lenses to be very interesting as well, and they could become part of the Pattern Libraries along with business logic / rules and other stuff needed to guarantee a level of interoperability.

Note that these concepts, such as Community, have broader applicability than just for Fediverse. Solid apps may be compatible, and also e.g. Valueflows (who have shown an interest to align).

For Fediverse I started a draft website in hopes to get an initiative started to give direction to all this. Problem, as always, is finding people willing to do community work, and look beyond their own project (a problem I also notice for the Solid community at large).

1 Like