The Graph Join App performs both the conjunctive and
disjunctive edge semantics for two property graphs with multi-edges.
This App supports the json-graph-specification format,
where the left join operand is the first graph, and the right join operand is the second graph.
Please note that the type field is used to store either the vertices' or the edges' color: such
color is used to graphicaly render the resulting graph. We provide an example of the graph input format
through this json file, representing the input graphs
at page 2 of our paper.
These graphs are also the default operands loaded in this App. The evaluation of the join query could be
downloaded by clicking on the Download JSON link after selecting one of the Run actions.
This App uses JSNetworkX jointly with D3.js to show
the Graph Join result. Given that
the choosen libraries have some issues in displaying multiple edges between the same two vertices, the
graph join result is provided as
both a graphical representation (Resulting Graph), and a relational representation
(Two tables named Vertices and Edges will appear for non-empty results).
The property graph could be either zoomed-in or zoomed-out by using the mouse, and the
vertices' disposition could be changed by dragging the vertices.
Please note that this implementation could be quite slow on big input: the present App is completely
writtein in JavaScript for both portability and maintainability issues. Moreover, this implementation does
not slavishly follow the proposed join algorithm. For a better performance, please use
our BitBucket repository, providing the source code
actually used for our benchmarks. The enriched graph used for our evaluations is available at this link.
G. Bergami, M. Magnani and D. Montesi,