We suggest a way of thinking about federated wiki software that will be useful even if it departs from the fine details of running code.
Click blocks for descriptions.
digraph { node [shape=box style=filled] // persistence node [fillcolor=lightblue] page -> {read local} update -> {write local} read plugin // organization node [fillcolor=palegreen] lineup -> panel -> {page item} find -> read link -> {find item} item -> plugin edit -> {update plugin} // interface node [fillcolor=gold] operate -> {move change} {open url history} -> lineup {browse move} -> panel browse -> link change -> edit }
The Blue layer is the "persistence" that makes what we write stay around.
Green is the "organization" that we superimpose on the layer below that makes it a wiki even as it is distributed across services.
The Gold layer describes "interface" responsibilities that could be realized in different ways on different devices using different technologies.
.
The top layer is the most easily replaced. For example from "browse" down we have reimplemented this in Java which wasn't too much trouble except for the plugins of which we only did a few. github
See also Resources