Content deleted Content added
No edit summary |
No edit summary |
||
Line 14:
==Extending existing graph query languages==
The GQL project draws on multiple sources or inputs, notably existing industrial languages and a new section of the SQL standard. In preparatory discussions within WG3 surveys of the history and comparative content of some of these inputs were presented.<ref name="GQLs history">{{cite web|url=https://s3.amazonaws.com/artifacts.opencypher.org/website/materials/DM32.2/DM32.2-2018-00085R1-recent_history_of_property_graph_query_languages.pdf|title=
=== SQL/PGQ Property Graph Queries ===
Prior work by WG3 and SC32 mirror bodies, particularly INCITS DM32, has helped to define a new planned part to 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. SQL/PGQ also contains DDL to allow SQL tables to be mapped to a graph view schema object with nodes and edges associated to sets of labels and set of data properties.<ref name="SQL Part 16 PGQ">{{cite web|url=https://www.iso.org/standard/79473.html?browse=tc|title=ISO/IEC WD 9075-16 Information technology — Database languages SQL — Part 16: SQL Property Graph Queries (SQL/PGQ)|last=|first=|date=|website=|publisher=ISO|accessdate=October 6, 2019}}</ref><ref name="W3C Berlin SQL and GQL">{{cite web|url=https://www.w3.org/Data/events/data-ws-2019/assets/slides/KeithWHare-2.pdf||title=''SQL and GQL''
=== Cypher 9 ===
Cypher<ref name="Cypher">{{cite web|url=https://dl.acm.org/citation.cfm?id=3190657|title=''Cypher: An Evolving Query Language for Property Graphs.'' In Proceedings of the 2018 International Conference on Management of Data (SIGMOD '18). ACM, New York, NY, USA, 1433-1445. DOI: 10.1145/3183713.3190657|last=Francis|first=Nadime|display-authors=etal|date=|website=|publisher=ACM|accessdate=October 25, 2019}}</ref> is a language originally designed and implemented by Neo4j Inc., but since 2015 made available as an open source language description['''REF CYPHER 9'''], with grammar tooling, a JVM front-end that parses Cypher queries, and a Technology Compatibility Kit (TCK) of over 2000 test scenarios, using Cucumber for implementation language portability. The TCK reflects the language description and an enhancement for temporal datatypes and functions documented in a Cypher Improvement Proposal<ref
Cypher allows reading, creation and updating of graph elements. The current version plus the temporal extension is referred to as Cypher 9. 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. These features are part of the proposed scope of GQL ['''REF TIGERGRAPH/NEO4j DOCUMENT'''].
Line 27:
=== PGQL ===
PGQL <ref name="PGQL">{{cite web|url=http://pgql-lang.org/|title=PGQL|last=|first=|date=|website=|publisher=pgql.org|accessdate=October 6, 2019}}</ref><ref name="PGQL Grades">{{cite web|url=https://dl.acm.org/citation.cfm?id=2960421/|title="2016. ''PGQL: a property graph query language'''. In Proceedings of the Fourth International Workshop on Graph Data Management Experiences and Systems (GRADES '16). ACM, New York, NY, USA, Article 7, 6 pages. DOI: https://doi.org/10.1145/2960414.2960421|last=van Rest|first=Oskar|display-authors=etal|date=|website=|publisher=pgql.org|accessdate=October 6, 2019}}</ref>
is a language designed and implemented by Oracle Inc., but made available as an open source specification, along with JVM parsing software. PGQL combines familiar SQL SELECT syntax including SQL expressions and result ordering and aggregation with a pattern matching language very similar to that of Cypher. It allows the specification of the graph to be queried, and includes a facility for macros to capture "pattern views". It does not support insertion or updating operations, having been designed primarily for an analytics environment, such as Oracle's PGX product. PGQL has been implemented in a research project ['''get the name, REF "the name"'''].
=== G-CORE===
|