Skip to main content
Graph Modeling Language (GML) is a widely used format for describing graphs. TuringDB supports importing GML files natively via the LOAD GML command.

Expected file format

graph [
  node [ id 0  label "Alice"  type "Person"  age 30 ]
  node [ id 1  label "Bob"    type "Person"  age 25 ]
  node [ id 2  label "Acme"   type "Company"        ]
  edge [ source 0  target 1  weight 1.0 ]
  edge [ source 0  target 2  weight 0.8 ]
]
Nodes:
FieldRequirement
idRequired. Unique non-negative integer.
other fieldsOptional. Stored as node properties.
Edges:
FieldRequirement
source / targetRequired. Must reference the id of a node defined in the same file.
other fieldsOptional. Stored as edge properties.
Supported property value types: String, Integer, Double, Boolean. All property values are stored as strings in the TuringDB graph regardless of their original type in the GML file.
All imported nodes are assigned the label GMLNode and all edges the type GMLEdge, regardless of any fields present in the file. Any field other than id, source, and target is treated as a plain property. To query your data after import, use MATCH (n:GMLNode) and MATCH ()-[e:GMLEdge]->().

Import steps

1

Place the GML file in the TuringDB data directory

TuringDB only reads external files from the data subdirectory of its working directory (set by --turing-dir, default $HOME/.turing).
cp mygraph.gml ~/.turing/data/
2

Load the file into a new graph

LOAD GML 'mygraph.gml' AS mygraph
TuringDB creates a new graph named mygraph and populates it with all nodes and relationships from the file.
3

Set the graph as active and query it

cd mygraph

MATCH (n) RETURN n
Your GML graph is now imported and ready to query.

Verify the import

Use meta-queries to inspect what was imported:
CALL db.labels()
CALL db.edgeTypes()
CALL db.propertyTypes()