Versioning the structure of a graph.

Ray Scott <raya...@...>

I've seen examples of designing a graph separating structure from state so that its easy to version the state of an entity (vertex) as it's modified through the months and years. However, I've been trying to find a solution to versioning the structure (the edges between the vertices). 

Tinkerpop doesn't support edges linked to edges and you can't add properties on edges with set or list cardinality, so even a basic approach of tagging the edges with a version string is not possible.  

I did think of creating a new edge between the vertices with a different version property on it, but I'd possibly end up with hundreds of edges between two vertices all in the name of versioning the structure. Plus you'd have to bulk update the entire subgraph, so that's not going to happen.

Anyone ever look into this or have any hard-earned wisdom they'd like to depart with?