PGX adopts the property graph model. In this model vertices and edges can be associated with a set of values, often called properties, where each one is identified with a unique name. For example, the small sample graph below has two properties for vertices ('name' and 'age') and one for edges ('relationship').
The PGX property graph model has the following characteristics:
Originally, PGX only supported non-partitioned property graphs, where properties are regular, i.e., the same set of properties is associated with all the vertices/edges of the graph. Since version 19.1.0, PGX also supports loading partitioned graphs, where different types of vertices / edges can have a different set of properties. See here for more information on partitioned graphs.
PGX assumes graphs are directed; that is an edge from vertex A to B is different from an edge from vertex B to A. Still, PGX can process undirected graphs by (implicitly) duplicating edges — i.e., by having one edge for each direction between two vertices. Additionally, PGQL allows ignoring edge direction in graph patterns even when querying directed graphs.
In addition, PGX allows graphs to have self-edges (i.e., an edge whose source and destination vertex are the same) as well as multi-edges (i.e., multiple edges between the same source and destination vertex).