GQL Graph Query Language - Википедия - GQL Graph Query Language

GQL (Язык запросов графиков) - предлагаемый стандартный граф язык запросов. В сентябре 2019 года появилось предложение по проекту по созданию нового стандартного языка запросов графов (ISO / IEC 39075 Информационные технологии - Языки баз данных - GQL).[1] был одобрен голосованием национальных органов по стандартизации, которые являются членами Объединенного технического комитета 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 возглавляет Стефан Плантиков (который был первым ведущим инженером Neo4j с Сайфер для Apache Spark проект) и Стивен Кэннан (редактор технических исправлений 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 поддерживает от одной до многих меток для каждого типа элементов.

Проект 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, особенно в ИНЦИТЫ 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.

Сайфер

Сайфер[21] - это язык, изначально разработанный Андресом Тейлором и его коллегами из Neo4j Inc. и впервые реализованный этой компанией в 2011 году. С 2015 года он стал доступным в виде описания языка с открытым исходным кодом.[22] с инструментами грамматики, a JVM интерфейс, который анализирует запросы Cypher, и набор для обеспечения совместимости технологий (TCK) из более чем 2000 тестовых сценариев, используя Огурец для переносимости языка реализации.[23] TCK отражает описание языка и улучшения для временных типов данных и функций, задокументированные в предложении по улучшению шифра.[24]

Cypher позволяет создавать, читать, обновлять и удалять элементы графа и, следовательно, является языком, который может использоваться для механизмов аналитики и транзакционных баз данных.

Запросы с использованием шаблонов визуальных путей

Cypher использует компактные шаблоны фиксированной и переменной длины, которые сочетают в себе визуальные представления топологий узлов и отношений (ребер) с предикатами существования меток и значений свойств. (Эти шаблоны обычно называют "ASCII искусство "паттерны, и возникли первоначально как способ комментирования программ, которые использовали API графа нижнего уровня.[12]Сопоставляя такой шаблон с элементами данных графа, запрос может извлекать ссылки на интересующие узлы, отношения и пути. Эти ссылки выдаются в виде «таблицы привязки», где имена столбцов привязаны к мультимножеству элементов графа. Имя столбца становится именем «переменной привязки», значение которой является ссылкой на конкретный элемент графа для каждой строки таблицы.

Например, узорМАТЧ (p: Человек) - [: LIVES_IN] -> (c: Город) сгенерирует выходную таблицу с двумя столбцами. Первый столбец с именемп будет содержать ссылки на узлы с меткойЧеловек . Второй столбец с именемc будет содержать ссылки на узлы с меткойгород , обозначающий город, в котором проживает человек.

Переменные привязкип иc затем можно разыменовать, чтобы получить доступ к значениям свойств, связанных с элементами, на которые указывает переменная. Пример запроса может быть завершенВЕРНУТЬ, в результате получится такой полный запрос:

МАТЧ(п:Человек)-[:ЖИВЕТ В]->(c:город)ВЕРНУТЬп.имя,п.фамилия,c.имя,c.штат

Это приведет к окончательной таблице с четырьмя столбцами, в которой перечислены имена жителей городов, хранящиеся на графике.

Запросы на основе шаблонов могут выражать соединения, комбинируя несколько шаблонов, которые используют одну и ту же переменную привязки для выражения естественного соединения с помощьюМАТЧ пункт:

МАТЧ(п:Человек)-[:ЖИВЕТ В]->(c:город),(п:Человек)-[:NATIONAL_OF]->(ЕССтрана)ВЕРНУТЬп.имя,п.фамилия,c.имя,c.штат

Этот запрос вернет местонахождение только граждан ЕС.

Внешнее соединение может быть выражено какМАТЧ ... ДОПОЛНИТЕЛЬНЫЙ МАТЧ :

МАТЧ(п:Человек)-[:ЖИВЕТ В]->(c:город)ДОПОЛНИТЕЛЬНЫЙ МАТЧ(п:Человек)-[:NATIONAL_OF]->(ec:ЕССтрана)ВЕРНУТЬп.имя,п.фамилия,c.имя,c.штат,ec.имя

Этот запрос вернет город проживания каждого человека на графике с информацией о проживании, а если он гражданин ЕС, то из какой страны он.

Таким образом, запросы могут сначала проецировать подграф входного графа в запрос, а затем извлекать значения данных, связанные с этим подграфом. Значения данных также могут обрабатываться функциями, в том числе функциями агрегирования, что приводит к проецированию вычисленных значений, которые различными способами отображают информацию, содержащуюся в проецируемом графике. Следуя примеру G-CORE и Morpheus, GQL стремится проецировать подграфы, определенные сопоставлением шаблонов (и графы, затем вычисленные по этим подграфам), как новые графы, которые будут возвращены запросом.

Шаблоны такого типа широко используются в языках запросов графов свойств и являются основой для расширенного подъязыка шаблонов, определяемого в SQL / PGQ, который, вероятно, станет подмножеством языка GQL. Cypher также использует шаблоны для предложений вставки и модификации (СОЗДАЙТЕ иОБЪЕДИНЕНИЕ ), а в проекте GQL были внесены предложения по сбору шаблонов узлов и ребер для описания типов графов.

Реализации Cypher

Cypher реализован в базе данных Neo4j, в SAP HANA График, автор Redis График.,[25] от компании Cambridge Semantics 'Anzograph,[26] от Bitnine's Agens Graph, от Memgraph и в проектах с открытым исходным кодом Cypher для Гремлин[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 ЗАГОЛОВОК НИЖЕ], который будет включать такие функции, как схема и запросы и представления составного графа. Первые проекты для 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 также поддерживает концепцию мультиграфов. [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]

  1. определение просмотров графа свойств JDBC -связанные таблицы SQL и Spark DataFrames[50]
  2. определение схем или типов графов, определенных путем сборки шаблонов типов узлов и ребер с подтипами[50]
  3. ограничение содержимого графа закрытой или фиксированной схемой
  4. создание записей каталога для нескольких именованных графов в иерархически организованном каталоге
  5. источники данных графа для формирования объединенного гетерогенного каталога
  6. создание записей каталога для именованных запросов (представлений)

Расширения языка запросов графиков включают[49]

  1. объединение графов
  2. проекция графиков, вычисленных по результатам сопоставления шаблонов на множественных входных графах
  3. поддержка таблиц (Spark DataFrames) в качестве входных данных для запросов ("управляющих таблиц")
  4. представления, которые принимают именованные или спроецированные графики в качестве параметров.

Эти функции были предложены в качестве исходных данных для стандартизации языков запросов графов свойств в проекте GQL.

использованная литература

  1. ^ "ISO / IEC WD 39075 Информационные технологии - Языки баз данных - GQL". ISO. Получено 29 сентября, 2019.
  2. ^ "SC32 WG3 N282" SC32 N3002 Проект NWIP Form4 Информационные технологии - Языки баз данных - GQL"". ISO. Получено 9 декабря, 2019.
  3. ^ Грин, Аластер (июль 2016 г.). "Создание открытого отраслевого стандарта для языка запросов с диаграммами декларативных свойств" (PDF). opencypher.org. Получено 12 ноября, 2019.
  4. ^ а б Грин, Алистер (июль 2018 г.). "Работа над новым рабочим элементом для GQL, дополняющим SQL PGQ, Подача ANSI INCITS DM32.2 DM32.2-2018-00128r1" (PDF). opencypher.org. Получено 12 ноября, 2019.
  5. ^ Ред. Плантиков, Стефан; Каннан, Стивен (октябрь 2019 г.). "Ранняя рабочая версия GQL v2.2". ISO. Получено 9 ноября, 2019.
  6. ^ "Стандарт GQL". Получено 12 ноября, 2019.
  7. ^ "Обновления сообщества GQL". Получено 12 ноября, 2019.
  8. ^ Либкин, Леонид. "Рабочая группа по формальной семантике". Получено 12 ноября, 2019.
  9. ^ "Apache Tinkerpop". Фонд программного обеспечения Apache. Получено 11 ноября, 2019.
  10. ^ "JTC 1 / SC 32 Управление данными и обмен". ISO / IEC JTC1. Получено 6 октября, 2019.
  11. ^ "Область применения исходного стандарта ISO 9075-1987, язык баз данных SQL". ISO / IEC JTC1. Получено 9 ноября, 2019.
  12. ^ а б Линдаакер, Тобиас (май 2018 г.). "Обзор новейшей истории языков запросов Graph" (PDF). opencypher.org. Получено 6 октября, 2019.
  13. ^ Plantikow, Стефан (май 2018 г.). "Сводная диаграмма Cypher, PGQL и G-Core" (PDF). opencypher.org. Получено 3 ноября, 2019.
  14. ^ Родригес, Марко А. (2015). Машина и язык обхода графа Гремлина (приглашенная беседа). В материалах 15-го симпозиума по языкам программирования баз данных (DBPL 2015). ACM, Нью-Йорк, Нью-Йорк, США, 1-10. DOI: 10.1145 / 2815072.2815073. ACM. Дои:10.1145/2815072. ISBN  9781450339025. Получено 10 ноября, 2019.
  15. ^ а б У, Минси; Дойч, Алин. "GSQL: язык запросов для графиков, основанный на SQL". Получено 9 ноября, 2019.
  16. ^ Вуд, Питер Т. "Языки запросов для графовых баз данных. , SIGMOD Рек. 41, 1 (апрель 2012 г.), 50-60. DOI: 10.1145 / 2206869.2206879 ". ACM. Дои:10.1145/2206869.2206879. S2CID  13537601. Получено 25 октября, 2019. Цитировать журнал требует | журнал = (Помогите)
  17. ^ Углы, Ренцо; и другие. (Сентябрь 2017 г.). "Основы современных языков запросов для графических баз данных, ACM Comput. Surv. 50, 5, DOI: 10.1145 / 3104031 ". ACM. arXiv:1610.06264. Дои:10.1145/3104031. S2CID  13526884. Получено 12 ноября, 2019. Цитировать журнал требует | журнал = (Помогите)
  18. ^ "ISO / IEC WD 9075-16 Информационные технологии. Языки баз данных SQL. Часть 16: Запросы графа свойств SQL (SQL / PGQ)". ISO. Получено 6 октября, 2019.
  19. ^ а б Заяц, Кейт; и другие. (Март 2019 г.). "SQL и GQL, W3C Workshop по веб-стандартизации графических данных. Создание мостов: RDF, Property Graph и SQL » (PDF). W3C. Получено 6 октября, 2019.
  20. ^ Тригонакис, Василиос (июль 2019 г.). "Расширения графа свойств для стандарта SQL. LDBC 12-й TUC " (PDF). LBDC. Получено 6 октября, 2019.
  21. ^ Фрэнсис, Надиме; и другие. "Cypher: развивающийся язык запросов для графов свойств. В материалах Международной конференции по управлению данными 2018 г. (SIGMOD '18). ACM, Нью-Йорк, Нью-Йорк, США, 1433-1445. DOI: 10.1145 / 3183713.3190657 ". ACM. Дои:10.1145/3183713.3190657. S2CID  13919896. Получено 25 октября, 2019. Цитировать журнал требует | журнал = (Помогите)
  22. ^ "Справочник по языку Cypher Query (версия 9)" (PDF). opencypher.org. Получено 10 ноября, 2019.
  23. ^ "Ресурсы openCypher". ACM. Получено 10 ноября, 2019.
  24. ^ "CIP2015-08-06 - Дата и время". opencypher.org. Получено 25 октября, 2019.
  25. ^ "RedisGraph - модуль графической базы данных для Redis". Redis Labs. Получено 9 ноября, 2019.
  26. ^ "Cambridge Semantics добавляет OpenCypher в AnzoGraph". Март 2019 г.. Получено 9 ноября, 2019.
  27. ^ Новиков, Дмитрий; и другие. (Январь 2018). "Cypher for Gremlin добавляет поддержку Cypher в любую базу данных графов Gremlin.". openCypher. Получено 3 ноября, 2019.
  28. ^ а б c Ридберг, Матс; и другие. (Июль 2016 г.). "Morpheus переносит ведущий язык запросов графов, Cypher, на ведущую платформу распределенной обработки Spark.". openCypher. Получено 3 ноября, 2019.
  29. ^ Грин, Аластер; Юнгханс, Мартин (апрель 2019 г.). "Neo4j Morpheus: переплетение данных таблиц и графиков с помощью SQL и Cypher в Apache Spark". Databricks Inc. Получено 3 ноября, 2019.
  30. ^ "Neo4j Morpheus: переплетение данных таблиц и графиков с помощью SQL и Cypher в Apache Spark (продолжение)".
  31. ^ "Использование Cypher". openCypher.org. Получено 10 ноября, 2019.
  32. ^ "Спецификация языка запросов графа свойств Cypher". openCypher.org. Получено 10 ноября, 2019.
  33. ^ "События". openCypher.org. Получено 10 ноября, 2019.
  34. ^ ван Рест, Оскар; и другие. (Июнь 2016). "PGQL: язык запросов графа свойств. В материалах четвертого международного семинара по опыту и системам управления графическими данными (GRADES '16). ACM, Нью-Йорк, Нью-Йорк, США. DOI: 10.1145 / 2960414.2960421 ". ACM. Дои:10.1145/2960414.2960421. S2CID  6806901. Получено 25 октября, 2019. Цитировать журнал требует | журнал = (Помогите)
  35. ^ "PGQL". pgql.org. Получено 6 октября, 2019.
  36. ^ ван Рест, Оскар; и другие. (Сентябрь 2015 г.). "PGQL - это язык запросов на основе SQL для модели данных Property Graph.". pgql.org. Получено 3 ноября, 2019.
  37. ^ Рот, Николас П .; и другие. (2017). "PGX.D / Async: масштабируемый механизм сопоставления с образцом распределенного графа. В материалах пятого международного семинара по опыту и системам управления графическими данными (GRADES'17). ACM, Нью-Йорк, Нью-Йорк, США, статья 7, 6 страниц. DOI: 10.1145 / 3078447.3078454 ". ACM. Дои:10.1145/3078447.3078454. S2CID  26283328. Получено 29 октября, 2019. Цитировать журнал требует | журнал = (Помогите)
  38. ^ Углы, Ренцо; и другие. (2018). "G-CORE: ядро ​​для будущих языков запросов для графов. В материалах Международной конференции по управлению данными 2018 г. (SIGMOD '18). ACM, Нью-Йорк, Нью-Йорк, США, 1421-1432. DOI: 10.1145 / 3183713.3190654 ". ACM. Дои:10.1145/3183713.3190654. S2CID  4623760. Получено 9 ноября, 2019. Цитировать журнал требует | журнал = (Помогите)
  39. ^ Войт, Ханнес (февраль 2018 г.). "G-CORE: предложение языка запросов для графов LDBC. В архиве FOSDEM 2018 ». Получено 12 ноября, 2019.
  40. ^ ван Рест, Оскар (2017). "Грамматика и парсер G-CORE". LDBC. Получено 12 ноября, 2019.
  41. ^ Чоцирдель, Джорджиана Диана (2018). "Интерпретатор G-CORE (язык запросов графиков), Кандидатская диссертация по параллельным и распределенным компьютерным системам, CWI и Vrije Universiteit Amsterdam » (PDF). CWI. Получено 12 ноября, 2019.
  42. ^ Чочирдел, Джорджиана Диана; Бонц, Питер (2017). "Интерпретатор G-CORE на Spark". LDBC. Получено 12 ноября, 2019.
  43. ^ Войт, Ханнес; Селмер, Петра; Линдаакер, Тобиас; Плантиков, Стефан; Грин, Аластер; Фернисс, Питер (декабрь 2018 г.). "Схема графа свойств, ANSI INCITS DM32.2 SQL Property Graph Extensions Специальная отправка sql-pg-2018-0056r1, Исследовательская группа и стандарты языков запросов Neo4j " (PDF). openCypher.org. Получено 12 ноября, 2019.
  44. ^ "Документация GSQL Tigergraph 1.0". 2017. Получено 9 ноября, 2019.
  45. ^ "Соответствие шаблону, Примечания к выпуску TigerGraph 2.4 ". Июнь 2019. Получено 9 ноября, 2019.
  46. ^ "Расширения языка запросов, Обработка графиков с помощью SQL Server и базы данных SQL Azure ». Microsoft Inc., 2017 г.. Получено 10 ноября, 2019.
  47. ^ "Мультиграфы, Электронная документация TigerGraph ". Июнь 2019. Получено 6 марта, 2020.
  48. ^ Тейлор, Андрес; Plantikow, Стефан; Сельмер, Петра (2017–2018 гг.). "CIP2017-06-18 Запросы и построение нескольких графиков". opencypher.org. Получено 12 ноября, 2019.
  49. ^ а б Кисслинг, Макс (2019). "Несколько графиков и составных запросов в Cypher для Apache Spark. Встреча разработчиков openCypher V, Берлин " (PDF). opencypher.org. Получено 9 ноября, 2019.
  50. ^ а б Йоханссен, Тобиас; и другие. (2019). "graphddl-example-ldbc: пример cypher-for-apache-spark, демонстрирующий использование SqlPropertyGraphSource и GraphDDL для предоставления представления графа свойств набора данных SQL". Получено 9 ноября, 2019.