hashable
hashable

Reputation: 3851

Graph diffing and versioning tool

I am working with a team that edits large DAGs represented as single files. Currently we are unable to work with multiple users concurrently modifying the DAG.

Is there a tool (somewhat like the Eclipse SVN plugin) that can do do revision control on the file (manage timestamps/revision stamps) to identify incoming/outgoing/conflicting changes (Node/Link insertion/deletion/modification) and merge changes just like programmers do with source code files?

The system should be able to do dependency management also. E.g. an incoming Link must not be accepted when one of the two Nodes is absent. That is, it should not "break" the existing DAG by allowing partial updates.

If there is a framework to do this using generic "Node" and "Link" interfaces?

Note: I am aware of Protege and its plugins. They currently do not satisfy my requirements.

Upvotes: 2

Views: 572

Answers (4)

pablo
pablo

Reputation: 6402

Wouldn't just a simple version tree help you with the visualization part? Dependencies are a different story.

Upvotes: 0

user287792
user287792

Reputation: 1591

If you can't find such a tool, a conventional VCS seems to hit everything except dependency management. Dependency management is something that programmers deal with too (oops I deleted that function that your new code depended on). It might be helpful to think of your dependency checks as a "build" and look for VCSes that enforce code that builds before accepting a checkin.

Upvotes: 0

Roberto Aloi
Roberto Aloi

Reputation: 30995

You could use Graphviz.

You could simply put under version control just the source files and then use a Makefile to build and update your graphs. In this way, you could use SVN, Mercurial, Git or anything else you prefer for version control.

The source files have a .gv extension and they look like this.

Check the Graphviz complements to see if something might fit to your needs. They have a lot of graphical interfaces that might do exactly what you want.

Upvotes: 1

Boolean
Boolean

Reputation: 14654

I am not aware of any plugins. If I have to write custom code, I will store the DAG in a adjacency matrix. All the other operations now become simple.

Upvotes: 0

Related Questions