Skip to content

research:PG Schemas

Johannes Lötzsch edited this page Jan 2, 2023 · 1 revision

Data Validation and Schema languages

Survey papers

primitive data types ** union or intersection types for nodes,edges, and properties** type hierarchies abstract types (interfaces) opened/closed shapes edge properties mandadory/optional declaration collection and tuple types range constraint key constraints mandadory participation upper/lower bounds binary constraints tracabbly validation partial conformance ammandable to introspection SFPX
PDT UIT TH AT OCT EP MOP CPT RC KC MP CC BC TV PC IS SFPX
PG-Schema [GQL] n/e n/e/[-] n/e/[-] o/c n/e m/o [-] [-] X X [-] - X X - f/p/x
Chen ER [17] [-] - - - c n/e m - [-] [X] X - - [-] - - f
Extended ER [54] [-] n/e n/e/p n/e c n/e m/o X [-] X X X - [-] - - f
Enhanced ER [22] [-] n/e n/e n c n/e m/o X [-] [X] X X - [-] - - f
ORM2 [30] [-] n/e/p n/e/p n/e c n/e m/o [-] X X X X X [-] - - f
UML Class Diagrams [24] [5] n n n c n/e m/o [-] X X X X X [-] - - f
RDFS [14] 34 - n/e/p - o [-] [o] - - - - - - X X X f/x
OWL [33] [33] n/e/p n/e/p - o n [m]/[o] - X X [-] X X [X] X X f/x
SHACL [36] 34 n/e/p n/e/p - o/c n m/o - X [X] X X - [X] X X f/p/[x]
"ShEx [6, 51]" 34 n/e/p n/e/p - o/c n m/o - X [X] X X - [X] X X f/p/[x]
DTD [62] 6 [n] - - o/c n m/o [-] - [-] X - - X - [X] f/x
JSON Schema [60] 6 n/e n/e/p n o/c n m/o X X [X] X X - X - X f/x
RELAX NG [34] [2] n n/e/p n o/c n m/o X X [-] X - - X - X f/x
XML Schema [50] [47] n n/e/p n o/c n m/o X X X X X - X - X f/x
"GraphQL SDL [23, 32]" 5 n/[e] n/e n/e c n/e m/o X [X] X X - - [-] X X f
openCypher Schema [12] [openCypher] [n] n/e n/e c n/e m X - X X - - X X X p/x
"SQL/PGQ [1, 20]" [SQL] n/e [n]/[e] n/e c n/e m/o X [X] X X [-] - X - X f
AgensGraph [2] [-] - n/e/p - o [n]/[e] m/o [X] [X] [X] X - - [X] X [X] f/x
ArangoDB [5] 6 [n]/[e] n/e/p n o/c n/e m/o X [X] [X] X [X] - [X] - X f/x
DataStax [19] [25] - - - [o] n/e m/o X [X] X X - - ? X X f/x
JanusGraph [35] 12 - - - [o] n/e m/o X - X X X - X X [X] f/x
Nebula Graph/nGQL [61] 5 - - - c n/e m/o - - - - - - [-] - X f
Neo4j [53] 11 [n] [-] [-] o n/e m/o [X] - X - [-] - - X X p/x
Oracle/PGQL [41] 11 [n]/[e] - - c n/e [m]/[o] - [X] [X] [X] [-] - [X] X X f/x
OrientDB/SQL [42] 23 [n]/[e] [n]/[e] [n]/[e] o/c n/e [m]/[o] X [X] [X] [X] [-] - [X] X [X] f/[p]
Sparksee [52] 8 - - - c n/e m/o [X] - X X - - [-] - [X] f
TigerGraph/GSQL [55] 8 [n]/[e] - [-] c n/e [m]/[o] X [X] X - [-] [X] [X] - X f
TypeDB/TypeQL [58] 5 - n/e/p n/e/p c n/e m X [X] X X [-] X [-] - X f

Legend:

  • ‘X’ = supported
  • ‘-’ = not supported
  • ‘?’ = unknown
  • ['x'] = qualified x,
  • n/e/p = supported for (n)odes, (e)dges, and (p)roperties
  • o/c = (o)pen and (c)losed
  • m/o = (m)andatory and (o)ptional
  • f/p/x = schema (f)irst, (p)artial, and fle(x)ible

This information has been extracted from the following research paper: Angles et al., “PG-Schema.”[^pgschema]

[^pgschema]: Angles, Renzo, Angela Bonifati, Stefania Dumbrava, George Fletcher, Alastair Green, Jan Hidders, Bei Li, et al. “PG-Schema: Schemas for Property Graphs.” arXiv, December 1, 2022. http://arxiv.org/abs/2211.10962.