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, A join operator for property graphs. GraphQ 2017

Evaluate Graph Join
A comma-separated conjunctive query
No download