Content deleted Content added
mNo edit summary |
Added CAPS/Morpheus description; link GQL EWD from SC32 public repository |
||
Line 6:
The GQL project proposal states{{quote|left=3|right=7|text="Using graph as a fundamental representation for data modeling is an emerging approach in data management. In this approach, the data set is modeled as a graph, representing each data entity as a vertex (also called a node) of the graph and each relationship between two entities as an edge between corresponding vertices. The graph data model has been drawing attention for its unique advantages. Firstly, the graph model can be a natural fit for data sets that have hierarchical, complex, or even arbitrary structures. Such structures can be easily encoded into the graph model as edges. This can be more convenient than the relational model, which requires the normalization of the data set into a set of tables with fixed row types. Secondly, the graph model enables efficient execution of expensive queries or data analytic functions that need to observe multi-hop relationships among data entities, such as reachability queries, shortest or cheapest path queries, or centrality analysis. There are two graph models in current use: the Resource Description Framework (RDF) model and the Property Graph model. The RDF model has been standardized by W3C in a number of specifications. The Property Graph model, on the other hand, has a multitude of implementations in graph databases, graph algorithms, and graph processing facilities. However, a common, standardized query language for property graphs (like SQL for relational database systems) is missing. GQL is proposed to fill this void."<ref name="BSI 39075 GQL">{{cite web|url=https://standardsdevelopment.bsigroup.com/projects/9019-02970|title=ISO/IEC JTC 1/SC 32 N 3007 - ISO/IEC NP 39075 Information Technology -- Database Languages -- GQL|last=|first=|date=|website=|publisher=British Standards Institute|accessdate=September 29, 2019}}</ref>.}}
The GQL project is led by Stefan Plantikow (who was the first lead engineer of Neo4j's Cypher for Apache Spark project) and Stephen Cannan (Technical Corrigenda editor of SQL). They are also the editors of the initial early working
==Managed alongside SQL by JTC 1/SC32 Working Group 3 (WG3) ==
Line 32:
=== G-CORE===
G-CORE is a research language designed by a group of academic and industrial researchers and language designers which draws on features of Cypher, PGQL and SPARQL<ref name="G-CORE">{{cite web|url=https://dl.acm.org/citation.cfm?id=3190654/|title=''G-CORE: A Core for Future Graph Query Languages. In Proceedings of the 2018 International Conference on Management of Data (SIGMOD '18). ACM, New York, NY, USA, 1421-1432. DOI: 10.1145/3183713.3190654|last=Angles|first=Renzo|display-authors=etal|date=2018|website=|publisher=ACM|accessdate=November 9, 2019}}</ref>. The project was conducted under the auspices of the Linked Data Benchmark Council, 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 is a composable language which is closed over graphs: graph inputs are processed to create a graph output, using graph projections and graph set operations to construct the new graph. 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. G-CORE introduces views (named queries). It also incorporates paths as elements in a graph ("paths as first class citizens"), which can be queried independently of projected paths which are computed over node and edge elements. G-CORE has been partially implemented in an open-source research project.
=== GSQL ===
GSQL ['''REF TG 2.5 DOCS''']
=== Cypher 10 extensions in Cypher for Apache Spark ===
The opencypher Morpheus project<ref name="CAPS Morpheus"/> implements Cypher for Apache Spark users.
Graph DDL features include
#definition of property graph views over JDBC-connected SQL tables and Spark DataFrames<ref name="CAPS oCIM V">{{cite web|url=https://s3.amazonaws.com/artifacts.opencypher.org/website/ocim5/slides/ocim5+-+CAPS+%2B+GraphDDL.pdf|title=''Multiple graphs and composable queries in Cypher for Apache Spark''. openCypher Implementers Meeting V, Berlin.|last=Kiessling|first=Max|date=2019|website=|publisher=opencypher.org|accessdate=November 9, 2019}}</ref><ref name="EXTENDS element type">{{cite web|url=https://github.com/tobias-johansson/graphddl-example-ldbc/|title=''graphddl-example-ldbc: A cypher-for-apache-spark example showing the use of SqlPropertyGraphSource and GraphDDL to provide a property graph view of a SQL dataset''.|last=Johanssen|first=Tobias|display-authors=etal|date=2019|website=|publisher=|accessdate=November 9, 2019}}</ref>
#definition of graph schemas or types defined by assembling node type and edge type patterns, with subtyping<ref name="EXTENDS element type"/>
#constraining the content of a graph by a closed or fixed schema
#creating catalog entries for multiple named graphs in a hierarchically-organized catalog<ref name="CAPS oCIM V"/>
#creating catalog entries for named queries (views)
Graph query language extensions include.
#graph union
#projection of graphs computed from the results of pattern matches on multiple input graphs
#support for tables (Spark DataFrames) as inputs to queries ("driving tables")
#views which accept named or projected graphs as parameters.
Most of these features have been proposed as inputs to the standardization of property graph query languages in the GQL project.
== References ==
|