GQL ( Graph Query Language ) es un lenguaje de consulta de gráficos estándar propuesto . En septiembre de 2019, una propuesta para un proyecto para crear un nuevo lenguaje de consulta de gráficos estándar (ISO / IEC 39075 Tecnología de la información - Lenguajes de bases de datos - GQL) [1] fue aprobada por una votación de los organismos nacionales de normalización que son miembros de ISO / IEC Joint Technical Comité 1 ( ISO / IEC JTC 1 ). JTC 1 es responsable de los estándares internacionales de tecnología de la información. GQL está destinado a ser un lenguaje de consulta de base de datos declarativo, como SQL .
Proyecto para un nuevo lenguaje de consulta de gráficos estándar internacional
La propuesta del proyecto GQL establece:
"El uso de gráficos como representación fundamental para el modelado de datos es un enfoque emergente en la gestión de datos. En este enfoque, el conjunto de datos se modela como un gráfico, que representa cada entidad de datos como un vértice (también llamado nodo) del gráfico y cada relación entre dos entidades como un borde entre vértices correspondientes. El modelo de datos de gráficos ha llamado la atención por sus ventajas únicas. En primer lugar, el modelo de gráficos puede ser un ajuste natural para conjuntos de datos que tienen estructuras jerárquicas, complejas o incluso arbitrarias. Tales estructuras pueden pueden codificarse fácilmente en el modelo gráfico como bordes. Esto puede ser más conveniente que el modelo relacional, que requiere la normalización del conjunto de datos en un conjunto de tablas con tipos de filas fijas. En segundo lugar, el modelo gráfico permite la ejecución eficiente de consultas costosas o funciones analíticas de datos que necesitan observar relaciones de varios saltos entre entidades de datos, como consultas de accesibilidad, consultas de ruta más corta o más barata o análisis de centralidad. Hay dos modelos de gráficos en uso actual: el modelo de marco de descripción de recursos (RDF) y el modelo de gráfico de propiedades. El modelo RDF ha sido estandarizado por W3C en una serie de especificaciones. El modelo Property Graph, por otro lado, tiene una multitud de implementaciones en bases de datos de gráficos, algoritmos de gráficos e instalaciones de procesamiento de gráficos. Sin embargo, falta un lenguaje de consulta común y estandarizado para gráficos de propiedades (como SQL para sistemas de bases de datos relacionales). Se propone GQL para llenar este vacío ". [2]
El proyecto GQL es la culminación de iniciativas convergentes que se remontan a 2016, en particular una propuesta privada de Neo4j a otros proveedores de bases de datos en julio de 2016, [3] y una propuesta del personal técnico de Oracle dentro del proceso de estándares ISO / IEC JTC 1 más tarde ese año. . [4]
El proyecto GQL está dirigida por Stefan Plantikow (que fue el primer ingeniero jefe de Neo4j 's Cypher para Apache chispa del proyecto) y Stephen Cannan (editor de correcciones técnicas de SQL). También son los editores de los primeros borradores de trabajo [5] de la especificación GQL.
Como se motivó originalmente, [4] el proyecto GQL tiene como objetivo complementar el trabajo de creación de una especificación normativa de lenguaje natural implementable con esfuerzos comunitarios de apoyo que permitan contribuciones de aquellos que no pueden o no están interesados en participar en el proceso formal de definición de un JTC 1 Estándar internacional. [6] [7] En julio de 2019, el Linked Data Benchmark Council (LDBC) acordó convertirse en la organización coordinadora de los esfuerzos de los grupos de trabajo técnicos comunitarios. Los grupos de trabajo Idiomas existentes y Esquema gráfico de propiedades se formaron a fines de 2018 y principios de 2019, respectivamente. Se propuso un grupo de trabajo para definir la semántica denotacional formal para GQL en la tercera actualización de la comunidad GQL en octubre de 2019. [8]
El modelo de datos del gráfico de propiedades de GQL
GQL es un lenguaje de consulta específico para gráficos de propiedades. Un gráfico de propiedad se parece mucho a un modelo de datos conceptual, tal como se expresa en un modelo entidad-relación o en un diagrama de clases UML (aunque no incluye relaciones n-arias que vinculan más de dos entidades). Las entidades o conceptos se modelan como nodos y las relaciones como aristas en un gráfico. Los gráficos de propiedades son multigrafos : puede haber muchos bordes entre el mismo par de nodos. Los gráficos GQL se pueden mezclar : pueden contener bordes dirigidos, donde uno de los nodos de punto final de un borde es la cola (o fuente) y el otro nodo es la cabeza (o destino o destino), pero también pueden contener nodos no dirigidos (bidireccionales o reflexivo) bordes.
Los nodos y los bordes, conocidos colectivamente como elementos, tienen atributos. Esos atributos pueden ser valores de datos o etiquetas (etiquetas). Los valores de las propiedades no pueden ser elementos de gráficos, ni pueden ser gráficos completos: estas restricciones fuerzan intencionalmente una separación limpia entre la topología de un gráfico y los atributos que llevan valores de datos en el contexto de una topología de gráfico. Por lo tanto, el modelo de datos de gráficos de propiedades evita deliberadamente el anidamiento de gráficos o el tratamiento de los nodos en un gráfico como bordes en otro. Cada gráfico de propiedad puede tener un conjunto de etiquetas y un conjunto de propiedades asociadas con el gráfico en su conjunto.
Los productos y proyectos de bases de datos de gráficos actuales a menudo admiten una versión limitada del modelo descrito aquí. Por ejemplo, Apache Tinkerpop [9] obliga a cada nodo y cada borde a tener una sola etiqueta; Cypher permite que los nodos tengan de cero a muchas etiquetas, pero las relaciones solo tienen una etiqueta única (llamada reltype). La base de datos de Neo4j admite propiedades de todo el gráfico no documentadas, Tinkerpop tiene valores de gráfico que desempeñan el mismo papel y también admite "metapropiedades" o propiedades en las propiedades. El PGQL de Oracle admite de cero a muchas etiquetas en los nodos y en los bordes, mientras que SQL / PGQ admite de una a muchas etiquetas para cada tipo de elemento. El modelo de información NGSI-LD especificado por ETSI es un intento de especificar formalmente gráficos de propiedades, con tipos de nodos y relaciones (borde) que pueden desempeñar el papel de etiquetas en los modelos mencionados anteriormente y admitir referencias semánticas heredando clases definidas en ontologías compartidas .
El proyecto GQL definirá un modelo de datos estándar, que probablemente sea el superconjunto de estas variantes, y es probable que al menos la primera versión de GQL permita a los proveedores decidir sobre las cardinalidades de las etiquetas en cada implementación, al igual que SQL / PGQ. y para elegir si apoyar las relaciones no dirigidas.
Los esquemas o tipos de GQL pueden capturar aspectos adicionales de los modelos ERM o UML (como generalización o subtipificación, o cardinalidades de entidad o relación) que describen posibles instancias del modelo de datos general.
WG3: Ampliación de SQL y creación de GQL
El proyecto GQL tiene una duración de cuatro años. Siete organismos nacionales de normalización (los de Estados Unidos, China, Corea, los Países Bajos, el Reino Unido, Dinamarca y Suecia) han designado a expertos nacionales en la materia para trabajar en el proyecto, que está a cargo del Grupo de trabajo 3 (Idiomas de la base de datos). del Subcomité 32 de ISO / IEC JTC 1 (Gestión e intercambio de datos), generalmente abreviado como ISO / IEC JTC 1 / SC 32 WG3 , o simplemente WG3 para abreviar. WG3 (y sus comités directos predecesores dentro del JTC 1) ha sido responsable del estándar SQL desde 1987. [10] [11]
Ampliación de los lenguajes de consulta de gráficos existentes
El proyecto GQL se basa en múltiples fuentes o entradas, en particular lenguajes industriales existentes y una nueva sección del estándar SQL. En las discusiones preparatorias dentro del WG3 se presentaron estudios de la historia [12] y el contenido comparativo de algunos de estos insumos [13] . GQL será un lenguaje declarativo con su propia sintaxis distinta, desempeñando un papel similar al SQL en la construcción de una aplicación de base de datos. Se han definido otros lenguajes de consulta de gráficos que ofrecen características de procedimiento directo como ramificación y bucle (Apache Tinkerpop's Gremlin, [14] ) y GSQL, [15] lo que hace posible atravesar un gráfico de forma iterativa para realizar una clase de algoritmos de gráficos, pero GQL no incorporará directamente tales características. [16] [17] Sin embargo, GQL se concibe como un caso específico de una clase más general de lenguajes de gráficos, que compartirán un sistema de tipos de gráficos y una interfaz de llamada para procedimientos que procesan gráficos.
Consulta de gráfico de propiedades SQL / PGQ
El trabajo anterior de los cuerpos espejo WG3 y SC32, particularmente en INCITS DM32, ha ayudado a definir una nueva Parte 16 planificada del Estándar SQL, que permite llamar a una consulta de gráfico de solo lectura dentro de una declaración SQL SELECT, haciendo coincidir un patrón de gráfico utilizando sintaxis que está muy cerca de Cypher, PGQL y G-CORE, y devuelve una tabla de valores de datos como resultado. SQL / PGQ también contiene DDL para permitir que las tablas SQL se mapeen a un objeto de esquema de vista de gráfico con nodos y bordes asociados a conjuntos de etiquetas y conjunto de propiedades de datos. [18] [19] [20] El proyecto GQL se coordina estrechamente con la "división del proyecto" SQL / PGQ de (extensión a) ISO 9075 SQL, y los grupos de trabajo técnicos en los EE. UU. (INCITS DM32) y a nivel internacional ( SC32 / WG3) cuentan con varios colaboradores expertos que trabajan en ambos proyectos. [19] La propuesta del proyecto GQL exige una estrecha alineación de SQL / PGQ y GQL, lo que indica que GQL será en general un superconjunto de SQL / PGQ.
Cifrar
Cypher [21] es un lenguaje diseñado originalmente por Andrés Taylor y sus colegas de Neo4j Inc., e implementado por primera vez por esa empresa en 2011. Desde 2015 está disponible como descripción de lenguaje de código abierto [22] con herramientas gramaticales, una JVM front-end que analiza consultas Cypher y un kit de compatibilidad tecnológica (TCK) de más de 2000 escenarios de prueba, utilizando Cucumber para la portabilidad del lenguaje de implementación. [23] El TCK refleja la descripción del lenguaje y una mejora para los tipos de datos y funciones temporales documentados en una propuesta de mejora de cifrado. [24]
Cypher permite la creación, lectura, actualización y eliminación de elementos gráficos, y es un lenguaje que, por tanto, puede utilizarse para motores de análisis y bases de datos transaccionales.
Consulta con patrones de ruta visual
Cypher utiliza patrones compactos de longitud fija y variable que combinan representaciones visuales de topologías de nodos y relaciones (borde), con predicados de existencia de etiquetas y valores de propiedad. (Estos patrones generalmente se conocen como patrones de " arte ASCII " y surgieron originalmente como una forma de comentar programas que usaban una API de gráficos de nivel inferior. [12] ) Al hacer coincidir dicho patrón con elementos de datos de gráficos, una consulta puede extraer referencias a nodos, relaciones y caminos de interés. Esas referencias se emiten como una "tabla vinculante" donde los nombres de las columnas están vinculados a un conjunto múltiple de elementos gráficos. El nombre de una columna se convierte en el nombre de una "variable de vinculación", cuyo valor es una referencia de elemento gráfico específico para cada fila de la tabla.
Por ejemplo, un patrón MATCH (p:Person)-[:LIVES_IN]->(c:City)
generará una tabla de salida de dos columnas. La primera columna nombrada p
contendrá referencias a nodos con una etiqueta Person
. La segunda columna nombrada c
contendrá referencias a nodos con una etiqueta City
, que denota la ciudad donde vive la persona.
Las variables vinculantes p
y c
luego se pueden desreferenciar para obtener acceso a los valores de propiedad asociados con los elementos a los que hace referencia una variable. La consulta de ejemplo puede terminar con un RETURN
, lo que da como resultado una consulta completa como esta:
PARTIDO ( p : Persona ) - [ : LIVES_IN ] -> ( c : Ciudad ) VOLVER p . primer nombre , pág . apellido , c . nombre , c . Expresar
Esto daría como resultado una tabla final de cuatro columnas que enumera los nombres de los residentes de las ciudades almacenadas en el gráfico.
Las consultas basadas en patrones pueden expresar combinaciones mediante la combinación de varios patrones que utilizan la misma variable de enlace para expresar una combinación natural mediante la MATCH
cláusula:
COINCIDIR ( p : Persona ) - [ : VIDA_IN ] -> ( c : Ciudad ), ( p : Persona ) - [ : NATIONAL_OF ] -> ( EUCpaís ) VOLVER p . primer nombre , pág . apellido , c . nombre , c . Expresar
Esta consulta devolvería la ubicación residencial solo de ciudadanos de la UE.
Una combinación externa se puede expresar mediante MATCH ... OPTIONAL MATCH
:
PARTIDO ( p : Persona ) - [ : LIVES_IN ] -> ( c : Ciudad ) PARTIDO OPCIONAL ( p : Persona ) - [ : NATIONAL_OF ] -> ( ec : EUCountry ) VOLVER p . primer nombre , pág . apellido , c . nombre , c . estado , ec . nombre
Esta consulta devolvería la ciudad de residencia de cada persona en el gráfico con información residencial y, si es un ciudadano de la UE, de qué país proviene.
Por lo tanto, las consultas pueden proyectar primero un subgráfico de la entrada del gráfico en la consulta y luego extraer los valores de datos asociados con ese subgráfico. Los valores de los datos también pueden ser procesados por funciones, incluidas las funciones de agregación, lo que lleva a la proyección de valores calculados que representan la información contenida en el gráfico proyectado de varias formas. Siguiendo el ejemplo de G-CORE y Morpheus, GQL tiene como objetivo proyectar los sub-gráficos definidos por patrones coincidentes (y los gráficos luego calculados sobre esos sub-gráficos) como nuevos gráficos para ser devueltos por una consulta.
Los patrones de este tipo se han vuelto omnipresentes en los lenguajes de consulta de gráficos de propiedades y son la base del sub-lenguaje de patrones avanzados que se define en SQL / PGQ, que probablemente se convierta en un subconjunto del lenguaje GQL. Cypher también usa patrones para las cláusulas de inserción y modificación ( CREATE
y MERGE
), y se han hecho propuestas en el proyecto GQL para recopilar patrones de nodos y bordes para describir tipos de gráficos.
Implementaciones de cifrado
Cypher se implementa en la base de datos de Neo4j, en SAP's HANA Graph, por Redis Graph., [25] por Cambridge Semantics 'Anzograph, [26] por Bitnine's AgensGraph, por Memgraph, y en proyectos de código abierto Cypher for Gremlin [27] mantenido por Neueda Labs en Riga y Cypher para Apache Spark (ahora llamado Morpheus), [28] [29] [30] así como en proyectos de investigación como Cypher.PL e Ingraph. [31] Cypher como lenguaje se rige como el proyecto openCypher [32] por una comunidad informal que ha celebrado cinco reuniones presenciales de ejecutores de openCypher desde febrero de 2017. [33]
Cypher 9 y Cypher 10
La versión actual de Cypher (incluida la extensión temporal) se conoce como Cypher 9. Antes del proyecto GQL, se planeó crear una nueva versión, Cypher 10 [ REF HEADING BELOW ], que incorporaría características como consultas de esquemas y gráficos componibles y vistas. Los primeros diseños de Cypher 10, incluida la construcción y proyección de gráficos, se implementaron en el proyecto Cypher para Apache Spark a partir de 2016. [28]
PGQL
PGQL [34] es un lenguaje diseñado e implementado por Oracle Inc., pero disponible como una especificación de código abierto, [35] junto con el software de análisis JVM. [36] PGQL combina la sintaxis SQL SELECT familiar que incluye expresiones SQL y ordenación y agregación de resultados con un lenguaje de coincidencia de patrones muy similar al de Cypher. Permite consultar la especificación del gráfico e incluye una función para que las macros capturen "vistas de patrones" o subpatrones con nombre. No admite operaciones de inserción o actualización, ya que se diseñó principalmente para un entorno de análisis, como el producto PGX de Oracle. PGQL también se ha implementado en Oracle Big Data Spatial and Graph, y en un proyecto de investigación, PGX.D / Async. [37]
G-CORE
G-CORE es un lenguaje de investigación diseñado por un grupo de investigadores académicos e industriales y diseñadores de lenguajes que se basa en características de Cypher, PGQL y SPARQL . [38] [39] El proyecto se llevó a cabo bajo los auspicios del Linked Data Benchmark Council (LDBC), comenzando con la formación de un grupo de trabajo Graph Query Language a finales de 2015, y la mayor parte del trabajo de redacción en papel se realizó en 2017. G-CORE es un lenguaje componible que está cerrado sobre gráficos: las entradas de gráficos se procesan para crear una salida de gráfico, utilizando proyecciones de gráficos y operaciones de conjuntos de gráficos para construir el nuevo gráfico. Las consultas G-CORE son funciones puras sobre gráficos, sin efectos secundarios, lo que significa que el lenguaje no define operaciones que mutan (actualizan o eliminan) los datos almacenados. G-CORE presenta vistas (consultas con nombre). También incorpora rutas como elementos en un gráfico ("rutas como ciudadanos de primera clase"), que se pueden consultar independientemente de las rutas proyectadas (que se calculan en el momento de la consulta sobre elementos de nodo y borde). G-CORE se ha implementado parcialmente en proyectos de investigación de código abierto en la organización LDBC GitHub. [40] [41] [42]
GSQL
GSQL [15] es un lenguaje diseñado para la base de datos de gráficos de propiedades de TigerGraph Inc. Desde octubre de 2018, los diseñadores de lenguajes de TigerGraph han estado promoviendo y trabajando en el proyecto GQL. GSQL es un lenguaje completo de Turing que incorpora iteración y control de flujo procedimental, y una función para recopilar y modificar valores calculados asociados con la ejecución de un programa para todo el gráfico o para elementos de un gráfico llamados acumuladores. Estas características están diseñadas para permitir que los cálculos de gráficos iterativos se combinen con la exploración y recuperación de datos. Los gráficos GSQL deben describirse mediante un esquema de vértices y aristas, que restringe todas las inserciones y actualizaciones. Por tanto, este esquema tiene la propiedad de mundo cerrado de un esquema SQL, y este aspecto de GSQL (también reflejado en las propuestas de diseño derivadas del proyecto Morpheus [43] ) se propone como una característica opcional importante de GQL.
Los vértices y los bordes se denominan objetos de esquema que contienen datos pero también definen un tipo imputado, al igual que las tablas SQL son contenedores de datos, con un tipo de fila implícito asociado. Luego, los gráficos GSQL se componen a partir de estos conjuntos de vértices y aristas, y varios gráficos con nombre pueden incluir el mismo conjunto de vértices o aristas. GSQL ha desarrollado nuevas funciones desde su lanzamiento en septiembre de 2017, [44] sobre todo introduciendo la coincidencia de patrones de borde de longitud variable [45] utilizando una sintaxis relacionada con la que se ve en Cypher, PGQL y SQL / PGQ, pero también con un estilo similar al patrones de longitud fija ofrecidos por Microsoft SQL / Server Graph [46]
GSQL también soporta el concepto de Multigraphs [47] que permiten que subconjuntos de un gráfico tengan control de acceso basado en roles. Los gráficos múltiples son importantes para gráficos a escala empresarial que necesitan un control de acceso detallado para diferentes usuarios.
Morpheus: múltiples gráficos y consultas de gráficos componibles en Apache Spark
El proyecto opencypher Morpheus [28] implementa Cypher para los usuarios de Apache Spark. A partir de 2016, este proyecto se ejecutó originalmente junto con tres esfuerzos relacionados, en los que también participaron los diseñadores de Morpheus: SQL / PGQ, G-CORE y diseño de extensiones Cypher para consultar y construir múltiples gráficos. [48] El proyecto Morpheus actuó como banco de pruebas para extensiones de Cypher (conocido como "Cypher 10") en las dos áreas de DDL de gráficos y extensiones de lenguaje de consulta.
Las funciones de Graph DDL incluyen [49]
- definición de vistas de gráficos de propiedades sobre tablas SQL conectadas a JDBC y Spark DataFrames [50]
- definición de esquemas o tipos de gráficos definidos mediante el ensamblaje de patrones de tipo de nodo y tipo de borde, con subtipificación [50]
- Restringir el contenido de un gráfico mediante un esquema fijo o cerrado.
- crear entradas de catálogo para varios gráficos con nombre en un catálogo organizado jerárquicamente
- Graficar fuentes de datos para formar un catálogo heterogéneo y federado.
- crear entradas de catálogo para consultas con nombre (vistas)
Las extensiones de lenguaje de consulta de gráficos incluyen [49]
- unión gráfica
- proyección de gráficos calculados a partir de los resultados de coincidencias de patrones en varios gráficos de entrada
- soporte para tablas (Spark DataFrames) como entradas para consultas ("tablas de manejo")
- vistas que aceptan gráficos con nombre o proyectados como parámetros.
Estas características se han propuesto como entradas para la estandarización de los lenguajes de consulta de gráficos de propiedades en el proyecto GQL.
Ver también
- Lenguaje de modelado de gráficos (GML)
- GraphQL
- Cypher (lenguaje de consulta)
Referencias
- ^ "Tecnología de la información ISO / IEC WD 39075 - lenguajes de base de datos - GQL" . ISO . Consultado el 29 de septiembre de 2019 .
- ^ "SC32 WG3 N282" SC32 N3002 Draft NWIP Form4 Tecnología de la información - Lenguajes de bases de datos - GQL " " . ISO . Consultado el 9 de diciembre de 2019 .
- ^ Green, Alastair (julio de 2016). " Creación de un estándar industrial abierto para un lenguaje de consulta de gráfico de propiedad declarativa " (PDF) . opencypher.org . Consultado el 12 de noviembre de 2019 .
- ^ a b Green, Alastair (julio de 2018). " Trabajando hacia un nuevo elemento de trabajo para GQL, para complementar SQL PGQ , ANSI INCITS DM32.2 presentación DM32.2-2018-00128r1 " (PDF) . opencypher.org . Consultado el 12 de noviembre de 2019 .
- ^ Eds. Plantikow, Stefan; Cannan, Stephen (octubre de 2019). " Borrador de trabajo inicial de GQL v2.2 " . ISO . Consultado el 9 de noviembre de 2019 .
- ^ " Estándar GQL " . Consultado el 12 de noviembre de 2019 .
- ^ " Actualizaciones de la comunidad GQL " . Consultado el 12 de noviembre de 2019 .
- ^ Libkin, Leonid. " Grupo de Trabajo de Semántica Formal " . Consultado el 12 de noviembre de 2019 .
- ^ "Apache Tinkerpop" . Fundación de software Apache . Consultado el 11 de noviembre de 2019 .
- ^ "Gestión e intercambio de datos JTC 1 / SC 32" . ISO / IEC JTC1 . Consultado el 6 de octubre de 2019 .
- ^ " Alcance de la norma original, ISO 9075-1987, Lenguaje de base de datos SQL " . ISO / IEC JTC1 . Consultado el 9 de noviembre de 2019 .
- ^ a b Lindaaker, Tobias (mayo de 2018). " Una descripción general de la historia reciente de los lenguajes de consulta de gráficos " (PDF) . opencypher.org . Consultado el 6 de octubre de 2019 .
- ^ Plantikow, Stefan (mayo de 2018). " Cuadro resumen de Cypher, PGQL y G-Core " (PDF) . opencypher.org . Consultado el 3 de noviembre de 2019 .
- ^ Rodríguez, Marko A. (2015). La máquina y el lenguaje transversal del grafo Gremlin (charla invitada). En Actas del XV Simposio sobre lenguajes de programación de bases de datos (DBPL 2015). ACM, Nueva York, NY, EE. UU., 1-10. DOI: 10.1145 / 2815072.2815073. ACM. doi : 10.1145 / 2815072 . ISBN 9781450339025. Consultado el 10 de noviembre de 2019 .
- ^ a b Wu, Mingxi; Deutsch, Alin. " GSQL: un lenguaje de consulta de gráficos inspirado en SQL " . Consultado el 9 de noviembre de 2019 .
- ^ Wood, Peter T. " Lenguajes de consulta para bases de datos de gráficos. , SIGMOD Rec. 41, 1 (abril de 2012), 50-60. DOI: 10.1145 / 2206869.2206879" . ACM. doi : 10.1145 / 2206869.2206879 . S2CID 13537601 . Consultado el 25 de octubre de 2019 . Cite journal requiere
|journal=
( ayuda ) - ^ Angles, Renzo; et al. (Septiembre de 2017). " Fundamentos de los lenguajes de consulta modernos para bases de datos de gráficos , ACM Comput. Surv. 50, 5, DOI: 10.1145 / 3104031" . ACM. arXiv : 1610.06264 . doi : 10.1145 / 3104031 . S2CID 13526884 . Consultado el 12 de noviembre de 2019 . Cite journal requiere
|journal=
( ayuda ) - ^ "ISO / IEC WD 9075-16 Tecnología de la información - Lenguajes de base de datos SQL - Parte 16: Consultas de gráficos de propiedades SQL (SQL / PGQ)" . ISO . Consultado el 6 de octubre de 2019 .
- ^ a b Liebre, Keith; et al. (Marzo de 2019). " SQL y GQL , W3C Workshop sobre Estandarización Web para Datos Gráficos. Creación de Puentes: RDF, Property Graph y SQL" (PDF) . W3C . Consultado el 6 de octubre de 2019 .
- ^ Trigonakis, Vasileios (julio de 2019). " Extensiones de gráficos de propiedades para el estándar SQL . LDBC 12th TUC" (PDF) . LBDC . Consultado el 6 de octubre de 2019 .
- ^ Francis, Nadime; et al. " 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" . ACM. doi : 10.1145 / 3183713.3190657 . S2CID 13919896 . Consultado el 25 de octubre de 2019 . Cite journal requiere
|journal=
( ayuda ) - ^ " Cypher Query Language Reference (Versión 9) " (PDF) . opencypher.org . Consultado el 10 de noviembre de 2019 .
- ^ " Recursos de openCypher " . ACM . Consultado el 10 de noviembre de 2019 .
- ^ " CIP2015-08-06 - Fecha y hora " . opencypher.org . Consultado el 25 de octubre de 2019 .
- ^ " RedisGraph - un módulo de base de datos de gráficos para Redis " . Redis Labs . Consultado el 9 de noviembre de 2019 .
- ^ " Cambridge Semantics agrega OpenCypher a AnzoGraph " . Marzo de 2019 . Consultado el 9 de noviembre de 2019 .
- ^ Novikov, Dmitry; et al. (Enero de 2018). " Cypher para Gremlin agrega compatibilidad con Cypher a cualquier base de datos de gráficos Gremlin " . openCypher . Consultado el 3 de noviembre de 2019 .
- ^ a b c Rydberg, Mats; et al. (Julio de 2016). " Morpheus lleva el lenguaje de consulta de gráficos líder, Cypher, a la plataforma líder de procesamiento distribuido, Spark " . openCypher . Consultado el 3 de noviembre de 2019 .
- ^ Green, Alastair; Junghanns, Martin (abril de 2019). " Neo4j Morpheus: entrelazar datos de tabla y gráfico con SQL y Cypher en Apache Spark " . Databricks Inc . Consultado el 3 de noviembre de 2019 .
- ^ " Neo4j Morpheus: entrelazando datos de tablas y gráficos con SQL y Cypher en Apache Spark (continúa) " .
- ^ " Uso de Cypher " . openCypher.org . Consultado el 10 de noviembre de 2019 .
- ^ " Especificación del lenguaje de consulta del gráfico de propiedades Cypher " . openCypher.org . Consultado el 10 de noviembre de 2019 .
- ^ " Eventos " . openCypher.org . Consultado el 10 de noviembre de 2019 .
- ^ van Rest, Oskar; et al. (Junio de 2016). " PGQL: un lenguaje de consulta de gráficos de propiedades . En Actas del Cuarto Taller Internacional sobre Experiencias y Sistemas de Gestión de Datos de Gráficos (GRADES '16). ACM, Nueva York, NY, EE. UU. DOI: 10.1145 / 2960414.2960421" . ACM. doi : 10.1145 / 2960414.2960421 . S2CID 6806901 . Consultado el 25 de octubre de 2019 . Cite journal requiere
|journal=
( ayuda ) - ^ "PGQL" . pgql.org . Consultado el 6 de octubre de 2019 .
- ^ van Rest, Oskar; et al. (Septiembre de 2015). " PGQL es un lenguaje de consulta basado en SQL para el modelo de datos Property Graph " . pgql.org . Consultado el 3 de noviembre de 2019 .
- ^ Roth, Nicholas P .; et al. (2017). " PGX.D / Async: Un motor de comparación de patrones de gráficos distribuidos escalable . En las actas del Quinto Taller internacional sobre experiencias y sistemas de gestión de datos gráficos (GRADES'17). ACM, Nueva York, NY, EE. UU., Artículo 7, 6 páginas . DOI: 10.1145 / 3078447.3078454 " . ACM. doi : 10.1145 / 3078447.3078454 . S2CID 26283328 . Consultado el 29 de octubre de 2019 . Cite journal requiere
|journal=
( ayuda ) - ^ Angles, Renzo; et al. (2018). " 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" . ACM. doi : 10.1145 / 3183713.3190654 . S2CID 4623760 . Consultado el 9 de noviembre de 2019 . Cite journal requiere
|journal=
( ayuda ) - ^ Voigt, Hannes (febrero de 2018). " G-CORE: La propuesta de lenguaje LDBC Graph Query . En archivos de FOSDEM 2018" . Consultado el 12 de noviembre de 2019 .
- ^ van Rest, Oskar (2017). " Gramática y analizador de G-CORE " . LDBC . Consultado el 12 de noviembre de 2019 .
- ^ Ciocîrdel, Georgiana Diana (2018). " Intérprete de G-CORE (Graph Query Language) , tesis de maestría en sistemas informáticos distribuidos y paralelos, CWI y Vrije Universiteit Amsterdam" (PDF) . CWI . Consultado el 12 de noviembre de 2019 .
- ^ Ciocîrdel, Georgiana Diana; Boncz, Peter (2017). " Intérprete de G-CORE en Spark " . LDBC . Consultado el 12 de noviembre de 2019 .
- ^ Voigt, Hannes; Selmer, Petra; Lindaaker, Tobias; Plantikow, Stefan; Green, Alastair; Furniss, Peter (diciembre de 2018). " Esquema de gráfico de propiedad , ANSI INCITS DM32.2 Extensiones de gráfico de propiedad SQL Presentación ad hoc sql-pg-2018-0056r1 , Equipo de investigación y estándares de lenguajes de consulta Neo4j" (PDF) . openCypher.org . Consultado el 12 de noviembre de 2019 .
- ^ " Documentación GSQL Tigergraph 1.0 " . 2017 . Consultado el 9 de noviembre de 2019 .
- ^ " Coincidencia de patrones , notas de la versión de TigerGraph 2.4" . Junio de 2019 . Consultado el 9 de noviembre de 2019 .
- ^ " Extensiones de lenguaje de consulta , procesamiento de gráficos con SQL Server y Azure SQL Database" . Microsoft Inc. 2017 . Consultado el 10 de noviembre de 2019 .
- ^ " Multigraphs , TigerGraph Online Documentation" . Junio de 2019 . Consultado el 6 de marzo de 2020 .
- ^ Taylor, Andrés; Plantikow, Stefan; Selmer, Petra (2017-2018). " CIP2017-06-18 Consultando y construyendo múltiples gráficos " . opencypher.org . Consultado el 12 de noviembre de 2019 .
- ^ a b Kiessling, Max (2019). " Múltiples gráficos y consultas componibles en Cypher para Apache Spark . Reunión V de Implementadores de openCypher, Berlín" (PDF) . opencypher.org . Consultado el 9 de noviembre de 2019 .
- ^ a b Johanssen, Tobias; et al. (2019). " graphddl-example-ldbc: Un ejemplo de cypher-for-apache-spark que muestra el uso de SqlPropertyGraphSource y GraphDDL para proporcionar una vista de gráfico de propiedades de un conjunto de datos SQL " . Consultado el 9 de noviembre de 2019 .