Consider a directed acyclic graph (DAG) of topics and links. Apart from the root topic, topics are situated under one or more parent topics, and links, as well, are situated under one or more parent topics. Now imagine that the DAG changes over time as users add, remove and update link and topic relationships and metadata (name, title, etc.).
Is there a data structure that can capture this dimension of changes to the DAG over time, readily reproducing a version of the DAG at a specific point in time? This would be analogous to resetting Git to a previous HEAD. Unlike Git, however, in which mutations are made to the file system in order to get to another point in time, ideally a single copy of our data structure could allow multiple viewers to access it, without one viewer affecting others' views of it (they could each have different pointers into it, though). Also unlike Git, we can make do with a linear sequence of versions instead of needing a tree of versions. Also unlike Git, we are recovering a DAG rather than a tree (i.e., the file system without hard links).
Perhaps, but not necessarily, the data structure would be a graph of some kind that incorporates the DAG at each point in time in a complex way, which in a sense would make it a super-DAG. Do people know of anything along these lines?