Difference between revisions of "SimpleGraph"
| 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 16: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

The graph below shows the source code structure for the SimpleGraph project.
The file "mwstore://local-backend/local-public/diagrams/archive/20251124004900!Diagrams_e41f63e992350a6812c4f7cd745f9deb.png" already exists.
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.