Graph Modeling Language

Program-Transformation.Org: The Program Transformation Wiki
The Graph Modeling Language (GML) (which is used by Graphlet) has a simple and orthogonal syntax. A GML file consists of key-value pairs. Values can be integers, floats, strings, and lists. Integers are restricted to 32 bit and floats are double precision. A list consists of key-value pairs. Duplicate keys within the same list are legal and it is guaranteed that the order of these duplicates is preserved during reading and writing. This makes it possible to represent array and list data structures. GML has predefined keys like 'graph', 'node', and 'edge'. A graph is represented with the top-level key 'graph', whose value is a list that contains 'node' and 'edge' keys. Every node must be given a unique integer id. The id is then used to represent edges between two nodes. GML defines default values for every data type. These defaults are then used for missing key-value pairs. Keys unknown to GML are handled differently, depending if the key is considered safe or unsafe. Unknown keys that are safe are considered invariant to graph modification and hence are ignored (i.e., written back unmodified). In contrast, unsafe keys are deleted (i.e., not written back) if the tools cannot update them properly. Safe and unsafe attributes are distinguished with the following convention: Safe (unsafe) attributes start with a lower (an upper) case letter.

The following gives a code example that contains two nodes (called 'one' and 'two') that are connected with an edge. The edge is colored red.

  graph [
   node [ id 1
      label "one" ]
   node [ id 2
      label "two" ]
   edge [ source 1
      target 2
      graphics [ fill "red" ]

(Quoted from ExchangeFormatBibliography)

The Graphlet home page is located at:

The following page describes the GML format:

-- HolgerKienle