There have been a few conversations ongoing around how we manage linking data structures in Holochain apps. @lucksus has some interesting ideas on the benefits afforded by a public link broadcasting network, which I have tried to expand upon here. IIRC @artbrock, @zippy, @lucksus and myself are all fans of XDI Link Contracts for link definitions; and much of the metadata needed to create these records is provided natively by Holochain.
It occurs to me that this is a larger conversation than simply âletâs create a DNA for storing linksâ. If we do this right, it becomes a large-scale project to build a search engine for the commons and an active act of resistance against surveillance capitalism. Think about it- what is the value-add that a search engine service creates? Surely the index of links and associations between content that their crawlers provide are a core part of that service. What happens if we co-create that data in a shared DHT and provide further tools to extend and analyse it, rather than defaulting to private ownership?
Having iterated from an âaddress onlyâ pattern for linking to external content (see holo-threaded-comments and a previous iteration of HoloREA), we have now moved to an âaddress + metadataâ approach. What this means for HoloREA is that we create Satisfaction
s in one DNA, then trigger creation of a mirroring Satisfaction
record in the paired DNA. This ensures the metadata defining the relationship is available to participants of both networks.
I imagine there is an equivalent pattern here for more abstractly recording links between data in different DNAs. It would probably look much the same, except that instead of replicating Satisfaction
entries we can replicate LinkMetadata
entries. At some point I would like to revisit the way we have implemented links between records in HoloREA and look at making it more generic, so that more abstract metadata can be provided to lower-level tooling (and basically, Holoverse link browser UIs would be able to follow REA data more sensibly).
I think there might be a need for several related standards here- not just for zome API traits but for inter-DNA signalling as wellâ see How to bidirectionally replicate data between DNAs? and holo-rea#57 but consider in the more abstract context of link broadcasting rather than replicating Satisfaction
records.