Il Graph Modelling Language (GML) è un linguaggio adoperato per descrivere grafi in modo semplice mediante file di "testo semplice" (ASCII). È noto anche come Graph Meta Language.
Caratteristiche
GML ha l'obiettivo di fornire un formato comune di scambio tra vari programmi, in alternativa (o in abbinamento) ai molteplici formati nativi che sono utilizzabili solo da uno o pochi programmi.
Il linguaggio descrive ogni elemento del grafo come lista di proprietà e di altri elementi. Utilizza quindi una struttura gerarchica, un albero. Per esempio, l'elemento grafo (graph) contiene la descrizione di tutti i vertici (node) e archi (edge).
GML è progettato per essere flessibile, consentendo di omettere tutti gli elementi non necessari. È anche generico, nel senso che può essere utilizzato per descrivere una molteplicità di strutture dati.
Esempio
Un esempio di semplice grafo descritto in GML:
graph [
comment "This is a sample graph"
directed 1
id n42
label "Hello, I am a graph"
node [
id 1
label "node 1"
thisIsASampleAttribute 42
]
node [
id 2
label "node 2"
thisIsASampleAttribute 43
]
node [
id 3
label "node 3"
thisIsASampleAttribute 44
]
edge [
source 1
target 2
label "Edge from node 1 to node 2"
]
edge [
source 2
target 3
label "Edge from node 2 to node 3"
]
edge [
source 3
target 1
label "Edge from node 3 to node 1"
]
]