GQL ( Graph Query Language ) - это предлагаемый стандартный язык запросов к графам . В сентябре 2019 года предложение по проекту создания нового стандартного языка запросов к графам (ISO / IEC 39075 Информационные технологии - Языки баз данных - GQL) [1] было одобрено голосованием национальных органов по стандартизации, которые являются членами ISO / IEC Joint Technical Комитет 1 ( ISO / IEC JTC 1 ). JTC 1 отвечает за международные стандарты информационных технологий. GQL задуман как декларативный язык запросов к базе данных, как и SQL .
Проект нового международного стандартного языка запросов для графиков
В предложении проекта GQL говорится:
«Использование графа в качестве фундаментального представления для моделирования данных является новым подходом к управлению данными. В этом подходе набор данных моделируется как граф, представляющий каждый объект данных как вершину (также называемую узлом) графа и каждое отношение. между двумя объектами в качестве ребра между соответствующими вершинами. Модель данных графа привлекает внимание своими уникальными преимуществами. Во-первых, модель графа может быть естественным подходом для наборов данных, которые имеют иерархическую, сложную или даже произвольную структуру. Такие структуры могут легко закодировать в модель графа в виде ребер. Это может быть удобнее, чем реляционная модель, которая требует нормализации набора данных в набор таблиц с фиксированными типами строк. Во-вторых, модель графа позволяет эффективно выполнять дорогостоящие запросы или функции аналитики данных, которые должны отслеживать многоэлементные отношения между объектами данных, такие как запросы достижимости, запросы кратчайшего или самого дешевого пути или анализ централизации. в настоящее время используются две модели графа: модель Resource Description Framework (RDF) и модель графа свойств. Модель RDF стандартизирована W3C в ряде спецификаций. Модель Property Graph, с другой стороны, имеет множество реализаций в графовых базах данных, алгоритмах графов и средствах обработки графов. Однако общий стандартизированный язык запросов для графов свойств (например, SQL для систем реляционных баз данных) отсутствует. GQL предлагается заполнить этот пробел ». [2]
Проект GQL является кульминацией объединяющихся инициатив, начатых еще в 2016 году, в частности, частного предложения Neo4j другим поставщикам баз данных в июле 2016 года [3] и предложения технического персонала Oracle в рамках процесса стандартизации ISO / IEC JTC 1 позднее в том же году. . [4]
Проект GQL возглавляет Стефан Plantikow (который был первым ведущим инженером Neo4j «s Cypher для Apache Спарк проекта) и Стивен Cannan (технический исправлениями редактор SQL). Они также являются редакторами первых рабочих проектов [5] спецификации GQL.
В соответствии с первоначальной мотивацией [4] проект GQL стремится дополнить работу по созданию реализуемой нормативной спецификации естественного языка поддерживающими усилиями сообщества, которые позволяют вносить вклад от тех, кто не может или не заинтересован в участии в формальном процессе определения JTC 1. Международный стандарт. [6] [7] В июле 2019 года Совет по сравнительному анализу связанных данных (LDBC) согласился стать головной организацией для усилий технических рабочих групп сообщества. Рабочие группы Existing Languages и Property Graph Schema сформированы в конце 2018 и начале 2019 года соответственно. Рабочая группа по определению формальной денотационной семантики для GQL была предложена на третьем обновлении сообщества GQL в октябре 2019 г. [8]
Модель данных графа свойств GQL
GQL - это язык запросов, специально предназначенный для графов свойств. Граф свойств очень похож на концептуальную модель данных, выраженную в модели сущность-связь или в диаграмме классов UML (хотя она не включает n-арные отношения, связывающие более двух сущностей). Сущности или концепции моделируются как узлы, а отношения как ребра в графе. Графы свойств - это мультиграфы : между одной парой узлов может быть много ребер. Графы GQL могут быть смешанными : они могут содержать направленные ребра, где один из узлов конечных точек ребра является хвостом (или источником), а другой узел является головным (или целевым, или конечным), но они также могут содержать неориентированные (двунаправленные или возвратные) ребра.
Узлы и ребра, вместе называемые элементами, имеют атрибуты. Эти атрибуты могут быть значениями данных или метками (тегами). Значения свойств не могут быть ни элементами графов, ни целыми графами: эти ограничения намеренно вызывают четкое разделение между топологией графа и атрибутами, несущими значения данных в контексте топологии графа. Таким образом, модель данных графа свойств намеренно предотвращает вложение графов или обработку узлов одного графа как ребер другого. Каждый граф свойств может иметь набор меток и набор свойств, связанных с графом в целом.
Текущие продукты и проекты графовых баз данных часто поддерживают ограниченную версию модели, описанной здесь. Например, Apache Tinkerpop [9] заставляет каждый узел и каждое ребро иметь одну метку; Cypher позволяет узлам иметь от нуля до многих меток, но отношения имеют только одну метку (называемую reltype). База данных Neo4j поддерживает недокументированные свойства на уровне графа, Tinkerpop имеет значения графа, которые играют ту же роль, а также поддерживает «метасвойства» или свойства свойств. Oracle PGQL поддерживает от нуля до многих меток на узлах и на ребрах, тогда как SQL / PGQ поддерживает от одной до многих меток для каждого типа элементов. NGSI-LD информационная модель определяется ETSI является попыткой формально задающих графы собственности, с узлом и отношений (краями) типами , которые могут играть роль этикеток в ранее упомянутых моделях и поддерживают смысловую привязку наследуя классы , определенные в общих онтологиях .
Проект GQL будет определять стандартную модель данных, которая, вероятно, будет расширением этих вариантов, и, по крайней мере, первая версия GQL, вероятно, позволит поставщикам определять количество меток в каждой реализации, как это делает SQL / PGQ. , и выбрать, поддерживать ли ненаправленные отношения.
Дополнительные аспекты моделей ERM или UML (например, обобщение или подтипы, мощности сущностей или отношений) могут быть захвачены схемами или типами GQL, которые описывают возможные экземпляры общей модели данных.
WG3: Расширение SQL и создание GQL
Проект GQL рассчитан на четыре года. Семь национальных органов по стандартизации (из США, Китая, Кореи, Нидерландов, Великобритании, Дании и Швеции) назначили национальных профильных экспертов для работы над проектом, который проводится Рабочей группой 3 (языки баз данных). подкомитета 32 ISO / IEC JTC 1 (Управление данными и обмен), обычно сокращенно ISO / IEC JTC 1 / SC 32 WG3 , или просто WG3 для краткости. WG3 (и ее прямые предшественники в рамках JTC 1) отвечает за стандарт SQL с 1987 года. [10] [11]
Расширение существующих языков запросов графов
Проект GQL использует несколько источников или входных данных, в частности, существующие промышленные языки и новый раздел стандарта SQL. В ходе подготовительных дискуссий в рамках WG3 были представлены обзоры истории [12] и сравнительное содержание некоторых из этих материалов [13] . GQL будет декларативным языком с собственным отличным синтаксисом, играющим аналогичную роль SQL при создании приложения базы данных. Были определены другие языки запросов к графам, которые предлагают прямые процедурные функции, такие как ветвление и циклы (Gremlin от Apache Tinkerpop, [14] ) и GSQL, [15], позволяющие итеративно обходить граф для выполнения класса алгоритмов графа, но GQL не будет напрямую включать такие функции. [16] [17] Однако GQL рассматривается как частный случай более общего класса языков графов, которые будут совместно использовать систему типов графов и вызывающий интерфейс для процедур, обрабатывающих графы.
Запрос графа свойств SQL / PGQ
Предыдущая работа зеркальных тел WG3 и SC32, особенно в INCITS DM32, помогла определить новую запланированную Часть 16 стандарта SQL, которая позволяет вызывать запрос графа только для чтения внутри оператора SQL SELECT, сопоставляя шаблон графа с использованием синтаксис, который очень близок к Cypher, PGQL и G-CORE, и в результате возвращает таблицу значений данных. SQL / PGQ также содержит DDL, позволяющий отображать таблицы SQL в объект схемы графического представления с узлами и ребрами, связанными с наборами меток и набором свойств данных. [18] [19] [20] Проект GQL тесно координируется с «разделением проекта» SQL / PGQ (расширением) ISO 9075 SQL, а также с техническими рабочими группами в США (INCITS DM32) и на международном уровне ( SC32 / WG3) над обоими проектами работают несколько экспертов. [19] Предложение по проекту GQL требует тесного согласования SQL / PGQ и GQL, указывая на то, что GQL в целом будет надмножеством SQL / PGQ.
Сайфер
Cypher [21] - это язык, первоначально разработанный Андресом Тейлором и его коллегами из Neo4j Inc. и впервые реализованный этой компанией в 2011 году. С 2015 года он стал доступным в виде описания языка с открытым исходным кодом [22] с инструментами грамматики, JVM интерфейс, который анализирует запросы Cypher, и набор для обеспечения совместимости технологий (TCK) из более чем 2000 тестовых сценариев, использующий Cucumber для переносимости языка реализации. [23] TCK отражает описание языка и улучшения для временных типов данных и функций, задокументированные в предложении по улучшению шифра. [24]
Cypher позволяет создавать, читать, обновлять и удалять элементы графа, и поэтому это язык, который может использоваться для механизмов аналитики и транзакционных баз данных.
Запросы с использованием шаблонов визуальных путей
Cypher использует компактные шаблоны фиксированной и переменной длины, которые сочетают в себе визуальные представления топологий узлов и отношений (ребер) с предикатами существования меток и значений свойств. (Эти шаблоны обычно называются шаблонами « искусства ASCII » и первоначально возникли как способ комментирования программ, которые использовали API графа нижнего уровня. [12] ) Сопоставляя такой шаблон с элементами данных графа, запрос может извлекать ссылки на интересующие узлы, отношения и пути. Эти ссылки выдаются в виде «таблицы привязки», где имена столбцов привязаны к мультимножеству элементов графа. Имя столбца становится именем «связывающей переменной», значение которой является ссылкой на конкретный элемент графа для каждой строки таблицы.
Например, шаблон MATCH (p:Person)-[:LIVES_IN]->(c:City)
сгенерирует выходную таблицу с двумя столбцами. Первый столбец с именем p
будет содержать ссылки на узлы с меткой Person
. Второй столбец с именем c
будет содержать ссылки на узлы с меткой City
, обозначающей город, в котором живет человек.
Переменные привязки p
и c
затем могут быть разыменованы для получения доступа к значениям свойств, связанным с элементами, на которые указывает переменная. Пример запроса может быть завершен с помощью RETURN
, что приведет к полному запросу, подобному этому:
МАТЧ ( p : Человек ) - [ : LIVES_IN ] -> ( c : Город ) ВОЗВРАТ стр . first_name , стр . last_name , c . имя , c . государственный
В результате получится итоговая таблица с четырьмя столбцами, в которой перечислены имена жителей городов, хранящиеся на графике.
Запросы на основе шаблонов могут выражать соединения, комбинируя несколько шаблонов, которые используют одну и ту же переменную привязки для выражения естественного соединения с помощью MATCH
предложения:
МАТЧ ( p : человек ) - [ : LIVES_IN ] -> ( c : город ), ( p : человек ) - [ : NATIONAL_OF ] -> ( EUCountry ) ВОЗВРАТ стр . first_name , стр . last_name , c . имя , c . государственный
Этот запрос вернет местонахождение только граждан ЕС.
Внешнее соединение может быть выражено следующим образом MATCH ... OPTIONAL MATCH
:
МАТЧ ( p : человек ) - [ : LIVES_IN ] -> ( c : город ) ДОПОЛНИТЕЛЬНЫЙ МАТЧ ( p : человек ) - [ : NATIONAL_OF ] -> ( ec : EUCountry ) ВОЗВРАТ стр . first_name , стр . last_name , c . имя , c . состояние , эк . название
Этот запрос вернет город проживания каждого человека на графике с информацией о проживании, а если гражданин ЕС, то из какой страны он.
Таким образом, запросы могут сначала проецировать подграф входного графа в запрос, а затем извлекать значения данных, связанные с этим подграфом. Значения данных также могут обрабатываться функциями, включая функции агрегирования, что приводит к проецированию вычисленных значений, которые различными способами отображают информацию, содержащуюся в прогнозируемом графике. Следуя примеру G-CORE и Morpheus, GQL стремится спроецировать подграфы, определенные сопоставлением шаблонов (и графы, затем вычисленные по этим подграфам), как новые графы, которые будут возвращены запросом.
Шаблоны такого типа широко используются в языках запросов графов свойств и являются основой для расширенного подъязыка шаблонов, определяемого в SQL / PGQ, который, вероятно, станет подмножеством языка GQL. Cypher также использует шаблоны для вставки и модификации предложений ( CREATE
и MERGE
), а в проекте GQL были сделаны предложения по сбору шаблонов узлов и ребер для описания типов графов.
Реализации Cypher
Cypher реализован в базе данных Neo4j, в SAP HANA Graph, в Redis Graph., [25] в Cambridge Semantics 'Anzograph [26] в Bitnine's AgensGraph, в Memgraph и в проектах с открытым исходным кодом Cypher for Gremlin [27], поддерживаемых Neueda. Labs в Риге и Cypher для Apache Spark (теперь переименованного в Morpheus), [28] [29] [30], а также в исследовательских проектах, таких как Cypher.PL и Ingraph. [31] Cypher как язык регулируется как проект openCypher [32] неформальным сообществом, которое с февраля 2017 г. провело пять личных встреч разработчиков openCypher. [33]
Сайфер 9 и Сайфер 10
Текущая версия Cypher (включая временное расширение) называется Cypher 9. До проекта GQL планировалось создать новую версию Cypher 10 [ REF HEADING BELOW ], которая будет включать такие функции, как схема и запросы составного графа. и просмотров. Первые разработки для Cypher 10, включая построение и проекцию графов, были реализованы в проекте Cypher для Apache Spark, начиная с 2016 года. [28]
PGQL
PGQL [34] - это язык, разработанный и реализованный Oracle Inc., но доступный в виде спецификации с открытым исходным кодом [35] вместе с программным обеспечением синтаксического анализа JVM. [36] PGQL сочетает знакомый синтаксис SQL SELECT, включая выражения SQL, порядок результатов и агрегирование, с языком сопоставления с образцом, очень похожим на язык Cypher. Он позволяет запрашивать спецификацию графа и включает в себя макрос для захвата «представлений шаблонов» или именованных подшаблонов. Он не поддерживает операции вставки или обновления, поскольку был разработан в первую очередь для аналитической среды, такой как продукт Oracle PGX. PGQL также был реализован в Oracle Big Data Spatial и Graph, а также в исследовательском проекте PGX.D / Async. [37]
G-CORE
G-CORE - это исследовательский язык, разработанный группой академических и промышленных исследователей и разработчиков языков, использующий функции Cypher, PGQL и SPARQL . [38] [39] Проект проводился под эгидой Совета по сравнительному анализу связанных данных (LDBC), начиная с формирования целевой группы по языку запросов графиков в конце 2015 года, при этом основная часть работы по написанию статей была выполнена в 2017 году. G-CORE - это составной язык, закрытый над графами: входные данные графа обрабатываются для создания вывода графа с использованием проекций графов и операций над наборами графов для построения нового графа. Запросы G-CORE - это чистые функции над графами, не имеющие побочных эффектов, что означает, что язык не определяет операции, которые изменяют (обновляют или удаляют) сохраненные данные. G-CORE вводит представления (именованные запросы). Он также включает в себя пути как элементы в графе («пути как граждане первого класса»), которые можно запрашивать независимо от проецируемых путей (которые вычисляются во время запроса по узловым и граничным элементам). G-CORE был частично реализован в исследовательских проектах с открытым исходным кодом в организации LDBC GitHub. [40] [41] [42]
GSQL
GSQL [15] - это язык, разработанный для базы данных графов свойств TigerGraph Inc. С октября 2018 года дизайнеры языка TigerGraph продвигают и работают над проектом GQL. GSQL - это полный по Тьюрингу язык, который включает в себя процедурное управление потоком и итерацию, а также средство для сбора и изменения вычисленных значений, связанных с выполнением программы для всего графа или для элементов графа, называемых аккумуляторами. Эти функции предназначены для объединения итеративных вычислений графов с исследованием и извлечением данных. Графы GSQL должны описываться схемой вершин и ребер, которая ограничивает все вставки и обновления. Таким образом, эта схема имеет свойство закрытого мира схемы SQL, и этот аспект GSQL (также отраженный в предложениях по дизайну, вытекающих из проекта Morpheus [43] ) предлагается как важная дополнительная функция GQL.
Вершины и ребра - это именованные объекты схемы, которые содержат данные, но также определяют вмененный тип, подобно тому как таблицы SQL являются контейнерами данных, со связанным неявным типом строки. Затем из этих наборов вершин и ребер составляются графы GSQL, и несколько именованных графов могут включать в себя один и тот же набор вершин или ребер. GSQL разработал новые функции с момента своего выпуска в сентябре 2017 года [44], в первую очередь вводя сопоставление с образцом ребер переменной длины [45] с использованием синтаксиса, связанного с синтаксисом Cypher, PGQL и SQL / PGQ, но также близкого по стилю к шаблоны фиксированной длины, предлагаемые Microsoft SQL / Server Graph [46]
GSQL также поддерживает концепцию Multigraphs [47], которая позволяет подмножествам графа иметь ролевой контроль доступа. Мультиграфы важны для графов корпоративного масштаба, которым требуется детальный контроль доступа для разных пользователей.
Морфеус: несколько графиков и запросы составных графов в Apache Spark
Проект opencypher Morpheus [28] реализует Cypher для пользователей Apache Spark. Начавшись в 2016 году, этот проект первоначально выполнялся вместе с тремя связанными усилиями, в которых также принимали участие дизайнеры Morpheus: SQL / PGQ, G-CORE и разработка расширений Cypher для запросов и построения нескольких графов. [48] Проект Morpheus выступал в качестве испытательного стенда для расширений Cypher (известного как «Cypher 10») в двух областях: DDL графа и расширений языка запросов.
Функции Graph DDL включают [49]
- определение представлений графов свойств над таблицами SQL, связанными с JDBC, и фреймами данных Spark [50]
- определение схем или типов графов, определенных путем объединения шаблонов типов узлов и ребер с подтипами [50]
- ограничение содержимого графа закрытой или фиксированной схемой
- создание записей каталога для нескольких именованных графов в иерархически организованном каталоге
- источники данных графа для формирования объединенного гетерогенного каталога
- создание записей каталога для именованных запросов (представлений)
Расширения языка запросов графиков включают [49]
- объединение графов
- проекция графиков, вычисленных по результатам совпадений с образцом, на множественные входные графы
- поддержка таблиц (Spark DataFrames) в качестве входных данных для запросов ("управляющих таблиц")
- представления, которые принимают именованные или спроецированные графики в качестве параметров.
Эти функции были предложены в качестве исходных данных для стандартизации языков запросов графов свойств в проекте GQL.
Смотрите также
- Язык моделирования графов (GML)
- GraphQL
- Cypher (язык запросов)
Рекомендации
- ^ "ISO / IEC WD 39075 Информационные технологии - Языки баз данных - GQL" . ISO . Проверено 29 сентября 2019 года .
- ^ "SC32 WG3 N282" SC32 N3002 Проект NWIP Form4 Информационные технологии - Языки баз данных - GQL " " . ISO . Проверено 9 декабря 2019 года .
- ^ Грин, Аластер (июль 2016 г.). « Создание открытого отраслевого стандарта для языка запросов с диаграммами декларативных свойств » (PDF) . opencypher.org . Проверено 12 ноября 2019 года .
- ^ а б Грин, Аластер (июль 2018 г.). « Работа над новым рабочим элементом для GQL, дополняющим SQL PGQ , ANSI INCITS DM32.2, представление DM32.2-2018-00128r1 » (PDF) . opencypher.org . Проверено 12 ноября 2019 года .
- ^ Ред. Plantikow, Стефан; Каннан, Стивен (октябрь 2019 г.). « Ранний рабочий проект GQL v2.2 » . ISO . Проверено 9 ноября 2019 года .
- ^ « Стандарт GQL » . Проверено 12 ноября 2019 года .
- ^ « Обновления сообщества GQL » . Проверено 12 ноября 2019 года .
- ^ Либкин, Леонид. « Рабочая группа по формальной семантике » . Проверено 12 ноября 2019 года .
- ^ "Apache Tinkerpop" . Фонд программного обеспечения Apache . Проверено 11 ноября 2019 года .
- ^ "JTC 1 / SC 32 Управление данными и обмен" . ISO / IEC JTC1 . Проверено 6 октября 2019 года .
- ^ « Область применения исходного стандарта ISO 9075-1987, язык баз данных SQL » . ISO / IEC JTC1 . Проверено 9 ноября 2019 года .
- ^ а б Линдаакер, Тобиас (май 2018 г.). « Обзор новейшей истории языков запросов Graph » (PDF) . opencypher.org . Проверено 6 октября 2019 года .
- ^ Plantikow, Стефан (май 2018 г.). « Сводная таблица Cypher, PGQL и G-Core » (PDF) . opencypher.org . Проверено 3 ноября 2019 года .
- ^ Родригес, Марко А. (2015). Машина и язык обхода графа Гремлина (приглашенный доклад). В материалах 15-го симпозиума по языкам программирования баз данных (DBPL 2015). ACM, Нью-Йорк, Нью-Йорк, США, 1-10. DOI: 10.1145 / 2815072.2815073. ACM. DOI : 10.1145 / 2815072 . ISBN 9781450339025. Проверено 10 ноября 2019 года .
- ^ а б У, Минси; Дойч, Алин. " GSQL: язык запросов графиков, основанный на SQL " . Проверено 9 ноября 2019 года .
- ^ Вуд, Питер Т. " Языки запросов для графовых баз данных. , SIGMOD Rec. 41, 1 (апрель 2012 г.), 50-60. DOI: 10.1145 / 2206869.2206879" . ACM. DOI : 10.1145 / 2206869.2206879 . S2CID 13537601 . Проверено 25 октября 2019 года . Цитировать журнал требует
|journal=
( помощь ) - ^ Углы, Ренцо; и другие. (Сентябрь 2017 г.). " Основы современных языков запросов для графических баз данных , ACM Comput. Surv. 50, 5, DOI: 10.1145 / 3104031" . ACM. arXiv : 1610.06264 . DOI : 10.1145 / 3104031 . S2CID 13526884 . Проверено 12 ноября 2019 года . Цитировать журнал требует
|journal=
( помощь ) - ^ "ISO / IEC WD 9075-16 Информационные технологии - Языки баз данных SQL - Часть 16: Запросы графа свойств SQL (SQL / PGQ)" . ISO . Проверено 6 октября 2019 года .
- ^ а б Заяц, Кит; и другие. (Март 2019 г.). « SQL и GQL , семинар W3C по веб-стандартизации данных графиков. Создание мостов: RDF, граф свойств и SQL» (PDF) . W3C . Проверено 6 октября 2019 года .
- ^ Тригонакис, Василиос (июль 2019 г.). " Расширения графа свойств для стандарта SQL . LDBC 12-й TUC" (PDF) . LBDC . Проверено 6 октября 2019 года .
- ^ Фрэнсис, Надиме; и другие. " Cypher: развивающийся язык запросов для графов свойств. В материалах Международной конференции по управлению данными 2018 г. (SIGMOD '18). ACM, Нью-Йорк, штат Нью-Йорк, США, 1433-1445. DOI: 10.1145 / 3183713.3190657" . ACM. DOI : 10.1145 / 3183713.3190657 . S2CID 13919896 . Проверено 25 октября 2019 года . Цитировать журнал требует
|journal=
( помощь ) - ^ « Справочник по языку Cypher Query (версия 9) » (PDF) . opencypher.org . Проверено 10 ноября 2019 года .
- ^ « Ресурсы openCypher » . ACM . Проверено 10 ноября 2019 года .
- ^ « CIP2015-08-06 - Дата и время » . opencypher.org . Проверено 25 октября 2019 года .
- ^ « RedisGraph - модуль графической базы данных для Redis » . Redis Labs . Проверено 9 ноября 2019 года .
- ^ « Cambridge Semantics добавляет OpenCypher в AnzoGraph » . Март 2019 . Проверено 9 ноября 2019 года .
- ^ Новиков, Дмитрий; и другие. (Январь 2018). « Cypher for Gremlin добавляет поддержку Cypher в любую базу данных графов Gremlin. » . openCypher . Проверено 3 ноября 2019 года .
- ^ а б в Ридберг, Матс; и другие. (Июль 2016 г.). « Morpheus переносит ведущий язык запросов графов, Cypher, на ведущую платформу распределенной обработки, Spark. » . openCypher . Проверено 3 ноября 2019 года .
- ^ Грин, Аластер; Юнгханс, Мартин (апрель 2019 г.). « Neo4j Morpheus: переплетение данных таблиц и графиков с SQL и Cypher в Apache Spark » . Databricks Inc . Проверено 3 ноября 2019 года .
- ^ « Neo4j Morpheus: переплетение данных таблиц и графиков с SQL и Cypher в Apache Spark (продолжение) » .
- ^ « Использование Сайфера » . openCypher.org . Проверено 10 ноября 2019 года .
- ^ « Спецификация языка запросов графа свойств Cypher » . openCypher.org . Проверено 10 ноября 2019 года .
- ^ « События » . openCypher.org . Проверено 10 ноября 2019 года .
- ^ ван Рест, Оскар; и другие. (Июнь 2016 г.). « PGQL: язык запросов графа свойств . В материалах четвертого международного семинара по опыту и системам управления графическими данными (GRADES '16). ACM, Нью-Йорк, Нью-Йорк, США. DOI: 10.1145 / 2960414.2960421» . ACM. DOI : 10.1145 / 2960414.2960421 . S2CID 6806901 . Проверено 25 октября 2019 года . Цитировать журнал требует
|journal=
( помощь ) - ^ «PGQL» . pgql.org . Проверено 6 октября 2019 года .
- ^ ван Рест, Оскар; и другие. (Сентябрь 2015 г.). « PGQL - это язык запросов на основе SQL для модели данных Property Graph » . pgql.org . Проверено 3 ноября 2019 года .
- ^ Рот, Николас П .; и другие. (2017). " PGX.D / Async: масштабируемый механизм сопоставления с образцом распределенного графа . В материалах пятого международного семинара по опыту и системам управления графическими данными (GRADES'17). ACM, Нью-Йорк, Нью-Йорк, США, статья 7, 6 страниц" . DOI: 10.1145 / 3078447.3078454 " . ACM. DOI : 10.1145 / 3078447.3078454 . S2CID 26283328 . Проверено 29 октября 2019 года . Цитировать журнал требует
|journal=
( помощь ) - ^ Углы, Ренцо; и другие. (2018). " G-CORE: ядро для будущих языков запросов графов. В материалах Международной конференции по управлению данными 2018 г. (SIGMOD '18). ACM, Нью-Йорк, штат Нью-Йорк, США, 1421-1432. DOI: 10.1145 / 3183713.3190654" . ACM. DOI : 10.1145 / 3183713.3190654 . S2CID 4623760 . Проверено 9 ноября 2019 года . Цитировать журнал требует
|journal=
( помощь ) - ^ Войт, Ханнес (февраль 2018 г.). « G-CORE: Предложение языка запросов для графов LDBC . В архивах FOSDEM 2018» . Проверено 12 ноября 2019 года .
- ^ ван Рест, Оскар (2017). " Грамматика и парсер G-CORE " . LDBC . Проверено 12 ноября 2019 года .
- ^ Ciocîrdel, Джорджиана Диана (2018). « Интерпретатор G-CORE (язык графических запросов) , магистерская работа по параллельным и распределенным компьютерным системам, CWI и Vrije Universiteit Amsterdam» (PDF) . CWI . Проверено 12 ноября 2019 года .
- ^ Чочирдел, Джорджиана Диана; Бонц, Питер (2017). « Интерпретатор G-CORE на Spark » . LDBC . Проверено 12 ноября 2019 года .
- ^ Фойгт, Ханнес; Сельмер, Петра; Линдаакер, Тобиас; Plantikow, Стефан; Грин, Аластер; Фернисс, Питер (декабрь 2018 г.). « Схема графа свойств , ANSI INCITS DM32.2 SQL Property Graph Extensions Ad Hoc submission sql-pg-2018-0056r1 , Neo4j Query Languages Standards and Research Team» (PDF) . openCypher.org . Проверено 12 ноября 2019 года .
- ^ « Документация GSQL Tigergraph 1.0 » . 2017 . Проверено 9 ноября 2019 года .
- ^ « Сопоставление с образцом, примечания к выпуску TigerGraph 2.4» . Июнь 2019 . Проверено 9 ноября 2019 года .
- ^ « Расширения языка запросов , обработка графиков с помощью SQL Server и базы данных SQL Azure» . Microsoft Inc. 2017 . Проверено 10 ноября 2019 года .
- ^ « Мультиграфы , TigerGraph Интернет Документация» . Июнь 2019 . Проверено 6 марта 2020 года .
- ^ Тейлор, Андрес; Plantikow, Стефан; Сельмер, Петра (2017–2018 гг.). « CIP2017-06-18 Запросы и построение нескольких графиков » . opencypher.org . Проверено 12 ноября 2019 года .
- ^ а б Кисслинг, Макс (2019). « Множественные графы и составные запросы в Cypher для Apache Spark . Встреча разработчиков openCypher V, Берлин» (PDF) . opencypher.org . Проверено 9 ноября 2019 года .
- ^ а б Йоханссен, Тобиас; и другие. (2019). « graphddl-example-ldbc: пример cypher-for-apache-spark, демонстрирующий использование SqlPropertyGraphSource и GraphDDL для предоставления представления графа свойств набора данных SQL » . Проверено 9 ноября 2019 года .