Firstly, the graph model can be a natural fit for data sets that have hierarchical, complex, or even arbitrary structures.
However, a common, standardized query language for property graphs (like SQL for relational database systems) is missing.
[6] As originally motivated,[2] the GQL project aims to complement the work of creating an implementable normative natural-language specification with supportive community efforts that enable contributions from those who are unable or uninterested in taking part in the formal process of defining a JTC 1 International Standard.
[7][8] In July 2019 the Linked Data Benchmark Council (LDBC) agreed to become the umbrella organization for the efforts of community technical working groups.
[9] Seven national standards bodies (those of the United States, China, Korea, the Netherlands, the United Kingdom, Denmark and Sweden) have nominated national subject-matter experts to work on the project, which is conducted by Working Group 3 (Database Languages) of ISO/IEC JTC 1's Subcommittee 32 (Data Management and Interchange), usually abbreviated as ISO/IEC JTC 1/SC 32 WG3, or just WG3 for short.
The NGSI-LD information model specified by ETSI is an attempt at formally specifying property graphs, with node and relationship (edge) types that may play the role of labels in previously mentioned models and support semantic referencing by inheriting classes defined in shared ontologies.
[16] The GQL project draws on multiple sources or inputs, notably existing industrial languages and a new section of the SQL standard.
GQL is a declarative language with its own distinct syntax, playing a similar role to SQL in the building of a database application.
Prior work by WG3 and SC32 mirror bodies, particularly in INCITS Data Management (formerly INCITS DM32), has helped to define a new planned Part 16 of the SQL Standard, which allows a read-only graph query to be called inside a SQL SELECT statement, matching a graph pattern using syntax which is very close to Cypher, PGQL and G-CORE, and returning a table of data values as the result.
[30] The TCK reflects the language description and an enhancement for temporal datatypes and functions documented in a Cypher Improvement Proposal.
[31] Cypher allows creation, reading, updating and deleting of graph elements, and is a language that can therefore be used for analytics engines and transactional databases.
Cypher uses compact fixed- and variable-length patterns which combine visual representations of node and relationship (edge) topologies, with label existence and property value predicates.
[17]) By matching such a pattern against graph data elements, a query can extract references to nodes, relationships and paths of interest.
OPTIONAL MATCH : This query would return the city of residence of each person in the graph with residential information, and, if an EU national, which country they come from.
Prior to the GQL project it was planned to create a new version, Cypher 10 [REF HEADING BELOW], that would incorporate features like schema and composable graph queries and views.
is a language designed and implemented by Oracle Inc., but made available as an open source specification,[34] along with JVM parsing software.
It allows the specification of the graph to be queried, and includes a facility for macros to capture "pattern views", or named sub-patterns.
It does not support insertion or updating operations, having been designed primarily for an analytics environment, such as Oracle's PGX product.
[37][38] The project was conducted under the auspices of the Linked Data Benchmark Council (LDBC), starting with the formation of a Graph Query Language task force in late 2015, with the bulk of the work of paper writing occurring in 2017.
G-CORE queries are pure functions over graphs, having no side effects, which mean that the language does not define operations which mutate (update or delete) stored data.
GSQL has developed new features since its release in September 2017,[43] most notably introducing variable-length edge pattern matching[44] using a syntax related to that seen in Cypher, PGQL and SQL/PGQ, but also close in style to the fixed-length patterns offered by Microsoft SQL/Server Graph[45] GSQL also supports the concept of Multigraphs [46] which allow subsets of a graph to have role-based access control.