Distributed Discovery 2023-12-23

Filling my head with a muddle of examples looking for patterns and looking for decisions others have made that I'd rather avoid. Having collected this reflection of a few hours of wandering and thinking, I feel some attraction to ideas in JSON-LD and also in the overview of the AT Protocol. There is some alignment with a tangled knot of ideas for federated wiki I have been mentally rearranging. This page may only make sense to me. There's some code and site structure I've been tinkering with that are not out in public yet.

I like the syntax JSON-LD offers for specifying a context for interpreting a blob of JSON. I appreciate and admire the ambition of global sharing of patterns and schemas. Playing well with what other smart people are doing has some appeal.

However, the wisdom of wiki's foundation in Folk Memory is compelling. I reject the premise of a specific urls to an external authority for the definition of the schema. Our experience in fedwiki with trusting anything global has been painful.

The Overview of the AT Protocol suggests architectural choices that closely resemble ideas kicking around my head. I presume the similarity grows from common interest in DAT and federation. However, Bluesky grows from experience at Twitter which drives a particular worldview about global scale and the need for centralization to drive performance. Federated wiki aims for a different idea of scale. Exploring further in AT Protocol Notes.

.

Paul Frazee defending AT Protocol from a hater. Some useful context and motivation, and also a nice example of politely responding to vitriol. hackernews

An informed comparison of AT Protocol with Matrix Protocol from the Matrix Project Lead. hackernews

.

3 to 6 month context. I've been feeling stuck in a tangle. A local-first personal wiki with a minimal publishing sensibility. Not sure I've described that well yet.

How much can be done with a simple static collection of wiki pages and client-side code?

What if downloading and uploading was the only way to write data?

What is the best way to enable other languages in federated wiki? Especially those that do not use a latin alphabet.

What if the only server is a simple file server to minimize the administrative skill required for hosting?

Can I move all the server-side behavior into things that happen inside frames.

.

Today's context. re-discover the vocabulary: Directory Service wikipedia

I remember in the early 2000s trying to understand Java Naming and Directory Interface (JNDI) along with a variety of other libraries in my early experience with distributed computing. As I came to understand the abstraction being offered under that acronym, I suddenly understood similarities in purpose for DNS, LDAP, ActiveDirectory, and maybe even posix dot files and the Windows Registry. Related confusions in the java ecosystem: JNDI, JINI, JMX, SLP.

Reinventing CORBA. I avoided some of this technology in my career, but overheard others arguing about it. SOAP. WSDL. EJBs. wikipedia

.

Today's context. Other muddled ideas that are kinda like discovery. Hypermedia linking, REST, HATEOAS, HAL, JSON-LD, RDF, RDFa, microformats. wikipedia

Looking at Spring in the java ecosystem is one way I look for where all that tech I learned at the turn of the century has evolved. Building a Hypermedia-Driven RESTful Web Service site

RDFa. Thinking there may be utility in knowing how to represent a wiki page to the rest of the Internet using digital pheromones that might suggest to Google and Facebook crawlers that the wiki pages are interested in wider attention from the commercial web. site

What is JSON-LD? youtube

While I was hunting around for this stuff, I stumbled upon Paul [Frazee]’s notes on how JSON-LD works medium

.

Last year's context. Maybe a few years. Beaker Browser and the DAT Wiki.

Frazee's name gets my attention from Paul Rodwell's inspiring work getting Federated Wiki running in Beaker Browser. github

So I kept clicking around. This time last year, Frazee archived Beaker Browser source code with a reflection on the experience. github

When I looked at that last year, I somehow didn't notice that Paul was excited to be joining Bluesky and saw it as a way to carry on with at least some of the ambitions for Beaker Browser. With that I found myself exploring Bluesky's AT Protocol overview. site

.

JSON-LD for Software Discovery page .

It can be pretty hard to find software unless there’s a standard place to share tools in that language and the author of the code has chosen to publish there. Ruby has RubyGems.org, Python has PyPI, Perl has CPAN but where do I go if I’m looking to find an obscure library written in C++? ... Discovering domain, language and function specific software is an even harder problem to crack.

One way to address this discoverability problem is to find a standard way of describing software with context for the terms used. A design goal here should be that these files can be almost entirely automatically generated.

JSON-LD is a way of describing data with additional context (or semantics if you like) so that for a JSON record like this:

{ "name" : "Arfon" }

when there’s an entity called name you know that it means the name of a person and not a place.

Author goes on to explore use of http://schema.org/ Code type to describe the software in JSON-LD.