Difference between revisions of "SimpleGraph"
Jump to navigation
Jump to search
Line 2: | Line 2: | ||
is an open source project that allows to wrap Systems APIs in a way that graph algorithms and storage can be applied. As an implementation Apache Gremlin/Tinkerpop is used. | is an open source project that allows to wrap Systems APIs in a way that graph algorithms and storage can be applied. As an implementation Apache Gremlin/Tinkerpop is used. | ||
= FileSystem example = | = FileSystem example = | ||
+ | A Filesystem is a graph. It consists of File and Directory nodes | ||
+ | <graphviz> | ||
+ | digraph FileSystemGraph { | ||
+ | Directory -> File [ label="files" ] | ||
+ | Directory -> Directory [ label="files" ] | ||
+ | File -> Directory [ label="parent" ] | ||
+ | Directory -> Directory [ label="parent" ] | ||
+ | } | ||
+ | </graphviz> | ||
+ | |||
+ | |||
The graph below shows the source code structure for the SimpleGraph project. | The graph below shows the source code structure for the SimpleGraph project. | ||
<graphviz> | <graphviz> |
Revision as of 17:14, 13 January 2018
SimpleGraph
SimpleGraph is an open source project that allows to wrap Systems APIs in a way that graph algorithms and storage can be applied. As an implementation Apache Gremlin/Tinkerpop is used.
FileSystem example
A Filesystem is a graph. It consists of File and Directory nodes
![](/images/wiki/diagrams/Diagrams_b019947dcd9f0b37b67cedcee7564173.png)
The graph below shows the source code structure for the SimpleGraph project.
![](/images/wiki/diagrams/Diagrams_e41f63e992350a6812c4f7cd745f9deb.png)
explanation
creating the graph
This graph visualization has been produced with the following Java lines which make sure that the "src" Directory can be handled as a gremlin graph:
// create a new FileSystem acces supplying the result as a SimpleSystem API
SimpleSystem fs=new FileSystem();
// connect to this system with no extra information (e.g. no credentials) and move to the "src" node
SimpleNode start = fs.connect("").moveTo("src");
// do gremlin style out traversals recusively to any depth
start.recursiveOut("files",Integer.MAX_VALUE);
converting the graph to graphviz
The graph is now available and can be traversed to create a graphviz version of it. We use the Template:Rythm template engine to do so. Within Rythm you can use Java code.