PORGY aims at designing relevant graphical representations and adequate interactions on dynamic graphs emerging from graph rewriting systems. Graph rewriting systems appear as a powerful formalism to capture and study phenomena occurring in complex systems, such as the evolution of bio-molecular networks, adhoc communication networks or interaction nets.
The ability to act on the simulation of the rewriting calculus will offer the expert a unique mean of interacting with the systems they design and study, turning interactive visualisation of graph rewriting systems into a high-level visual programming environment.
This is a joint work with Maribel Fernandez from King's College London and Hélène Kirchner from Inria. The first version of Porgy was developed thanks to the Inria associate team program (2009-2011) and the ANR grant EVIDEN (ANR 2010-JCJC-0201-01).
Using as a starting point the Tulip system, we aim to develop an environment that will allow us to:
create a graph using a visual editor;
trigger a series of transformations on the graph using graph rewriting rules to describe transformations;
display a sequence of graphs obtained by application of transformation steps, as well as the sequence of rules underlying these transformations;
design analysis and verification tools to check static and dynamic properties of graphs.
The desired tool will ultimately be used to model, visualise and simulate biological systems as well as to program with graphical languages such as interaction nets.
Screenshots and videos
Example of Porgy in action. This video, commented in French, was presented at EGC 2017 as supplementary material accompagnying a demonstration of Porgy
Overview of Porgy. 1) The graph under rewriting, 2) editing a rule, 3) rule catalog, 4) derivation tree, a complete history of the rewriting operations, 5) the strategy expression editor.
Small Multiples view of the evolution of a graph under rewriting. LHS/RHS show where the rule will make/made modifications in the graph.
Small Multiples view of the evolution of a graph under rewriting with a selected node. A node is selected in blue. The selection is reporter on each thumbnail.
Hovering the mouse on an edge of the derivation tree shows where the modifications made by a rule are.
A scatterplot build on a branch of the derivation tree to follow the evolution of a system parameter. All views are synchronised: the selection of some point on the scatterplot triggers the selection of the equivalent node of the derivation tree.
Porgy (along with Tulip) is released under the LGPL licence. Porgy is built on top of Tulip as a perspective and a set of plugins. Versions 1.X of Porgy are based on Tulip 3.X. Porgy versions from 2.0 to 3.1 are based on Tulip 4.X. Nightly Builds (may work or not...) of Porgy and Tulip 5.X (with all officially available plugins) based on the latest git sources tree are available below. We also give access to sample tulip files to be used inside Porgy.
Finding the Transitive Closure of Functional Dependencies using Strategic Port Graph Rewriting
Proceedings Tenth International Workshop on Computing with Terms and Graphs, TERMGRAPH@FSCD, 2018
Porgy Strategy Language: User Manual
Maribel Fernández, Hélène Kirchner, Bruno Pinaud, Jason Vallet
Research report, 2017. Université de Bordeaux, LaBRI; Inria Bordeaux Sud-Ouest; King's College London.
PORGY: Strategy-Driven Interactive Transformation of Graphs
Andrei Oana; Fernandez Maribel; Kirchner Hélène; Melançon Guy ; Namet Olivier; Pinaud Bruno 6th International Workshop on Computing with Terms and Graphs (TERMGRAPH 2011), Apr 2011, Saarbrücken, Germany.
Peer-reviewed conference/proceedings: Rachid Echahed. Electronic Proceedings in Theoretical Computer Science (EPTCS), 48, pp. 54-68
Graph creation, visualisation and transformation
M. Fernandez and O. Namet.
Proc. of the 10th Int. Workshop on Rule Based Programming, RULE 2009, Federated Conference on Rewriting, Deduction, Programming.
Elec. Proc. in Theoretical Computer Science.
For any inquiries regarding PORGY, please take contact with one of the project administrators: