Wiki

Clone wiki

stable_chorgram / ui

Using ChorGram

ChorGram provides a command line interface and a (less flexibly) graphical user interface.

CLI of ChorGram

The operations of ChorGram can be invoked from the command line by using the command chorgram followed by the operation and its options and parameters (if any):

   chorgram <operation> <options> <parameters>

The current list of operations is as follows (alphabetic order):

  • gc2dot: transforms in dot format the description of a g-choreography (either in gc format or as a graphml format of a pomset, or a graphml file obtained by "diffing" g-choreographies with diff.py)
  • gc2fsa: returns the fsa format of the minimised CFSMs of a g-choreography (option -v also generates an hs file that is the haskell representation of the system)
  • gc2gml: transforms a description of a g-choreography (with an extended syntax) to the graphml format
  • gc2pom: returns the pomset semantics (in graphml format) of a g-choreography (in gc format) (cf. (R. Guanciale and E. Tuosto, ICE 2016) and its journal version (E. Tuosto and R. Guanciale, 2018)
  • gmc: takes in input a CFSM system, checks it for generalised multiparty compatibility, and builds the corresponding g-choreography
  • pom2gc: takes in input a description of pomsets (in graphml format) and tries to compute a g-choreography for which the pomset in input is the semantics
  • project: projects g-choreographies on CFSMs or restrict the g-choreography to a participant; it can also avoid minimisation (or determinimisation, producing intermediate CFSMs)
  • ptps: returns the list of participants in a g-choreographies
  • tsof: generates the transition system (in dot format) of a communicating system (in fsa format)
  • viewsystem: converts fsa or cms format to other formats (e.g., dot)
  • wb: checks for (the simple version of) well-branchedness
  • wf: checks for well-forkedness
  • ws: checks for well-sequencedness

To get help on the operation just type chorgram followed by the name of the operation; for instance,

   > chorgram gmc

prints on the screen the help message of the operation gmc while executing while

   > chorgram
returns the help message of chorgram.

If the file example.gc} contains a g-choreography with a participant A then

   > chorgram project -D no -fmt fsa example.gc -p A > /tmp/d.fsa
stores in '/tmp/a.fsa' the projection of the g-choreography in 'example.gc' on the participant 'A' while
   > chorgram project /tmp/example.gc -p A

prints on the standard output the minised projection of the g-choreography on A.

ChorGram's GUI

The preliminary GUI described in PomCho has been extended with some features of ChorGram. More precisely, besides the operations of PomCho, it is now possible to generate the projections from the g-choreography and check for well-formedness. Modulo a slighlty changed structure of the menus, the GUI works as described in PomCho.

We are currently working on extending the GUI with the other features of Chorgram.

Updated