Язык графовых запросов

Из Википедии, бесплатной энциклопедии

GQL ( язык запросов к графам ) — это стандартный язык запросов к графам , опубликованный ISO в апреле 2024 года.

История [ править ]

Проект GQL является кульминацией объединенных инициатив, начатых в 2016 году, в частности частного предложения Neo4j другим поставщикам баз данных в июле 2016 года. [1] и предложение технического персонала Oracle в рамках процесса разработки стандартов ISO/IEC JTC 1 позднее в том же году. [2]

Предложение проекта GQL 2019 [ править ]

В сентябре 2019 года поступило предложение по проекту по созданию нового стандартного языка графовых запросов (ISO/IEC 39075 «Информационные технологии — Языки баз данных — GQL»). [3] был одобрен голосованием национальных органов по стандартизации, которые являются членами Объединенного технического комитета ISO/IEC 1 ( ISO/IEC JTC 1 ). JTC 1 отвечает за международные стандарты информационных технологий. GQL задуман как декларативный язык запросов к базе данных, такой как SQL .

В предложении проекта GQL 2019 года говорится:

«Использование графа в качестве фундаментального представления для моделирования данных — это новый подход к управлению данными. В этом подходе набор данных моделируется как граф, представляющий каждый объект данных как вершину (также называемую узлом) графа и каждое отношение между двумя объектами как ребро между соответствующими вершинами. Модель данных графа привлекает внимание своими уникальными преимуществами.

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

Во-вторых, графовая модель обеспечивает эффективное выполнение дорогостоящих запросов или функций анализа данных, которым необходимо наблюдать многопереходные отношения между объектами данных, таких как запросы достижимости, запросы кратчайшего или самого дешевого пути или анализ центральности. В настоящее время используются две графовые модели: модель Resource Description Framework (RDF) и модель Property Graph. Модель RDF стандартизирована W3C в ряде спецификаций. С другой стороны, модель Property Graph имеет множество реализаций в графовых базах данных, графовых алгоритмах и средствах обработки графов. Однако общий стандартизированный язык запросов для графов свойств (например, SQL для систем реляционных баз данных) отсутствует. GQL предлагается заполнить эту пустоту». [4]

Официальный стандарт ISO [ править ]

Стандарт GQL ISO/IEC 39075:2024 Информационные технологии – Языки баз данных – GQL был официально опубликован ISO 12 апреля 2024 г. [5]

Организация проекта GQL [ править ]

Проект GQL возглавляют Стефан Плантиков (который был первым ведущим инженером Neo4j Cypher проекта для Apache Spark ) и Стивен Кэннан (редактор технических исправлений SQL). Они также являются редакторами первоначальных рабочих проектов. [6] спецификации GQL.

Согласно первоначальной мотивации, [2] Целью проекта GQL является дополнение работы по созданию реализуемой нормативной спецификации естественного языка поддерживающими усилиями сообщества, которые позволяют внести свой вклад тем, кто не может или не заинтересован в принятии участия в формальном процессе определения международного стандарта JTC 1. [7] [8] В июле 2019 года Совет по тестированию связанных данных (LDBC) согласился стать головной организацией для усилий технических рабочих групп сообщества. Рабочие группы «Существующие языки» и «Схема графа свойств» сформировались в конце 2018 и начале 2019 года соответственно. Рабочая группа для определения формальной денотационной семантики для GQL была предложена на третьем обновлении сообщества GQL в октябре 2019 года. [9]

ISO/IEC JTC 1/SC 32 WG3 [ править ]

Семь национальных органов по стандартизации (в США, Китае, Корее, Нидерландах, Великобритании, Дании и Швеции) назначили национальных экспертов в данной области для работы над проектом, который проводится Рабочей группой 3 (Языки баз данных). Подкомитета 32 ISO/IEC JTC 1 (Управление данными и обмен), обычно сокращенно ISO/IEC JTC 1/SC 32 WG3 или просто WG3 для краткости. WG3 (и ее прямые предшественники в составе JTC 1) отвечают за стандарт SQL с 1987 года. [10] [11]

Этапы ISO [ править ]

Этапы ISO по дате [12]

  1. 2019-09-10 : 10.99 Утвержден новый проект
  2. 2019-09-10 : 20.00 Новый проект зарегистрирован в рабочей программе ТК/ПК
  3. 2021-11-22: 30.00 Зарегистрирован проект комитета (CD).
  4. 2021-11-23: 30.20 начато исследование CD
  5. 2022-02-25: 30.60 Завершение периода комментариев
  6. 29.08.2022: 30.92 компакт-диск возвращен в рабочую группу.
  7. 2022-08-29: 30.00 Зарегистрирован проект комитета (CD).
  8. 2022-08-30: 30.20 начато исследование CD
  9. 2022-10-26: 30.60 Завершение периода комментариев
  10. 22 марта 2023 г.: 30,99 компакт-диска одобрено для регистрации в качестве DIS.
  11. 24.03.2023: 40.00 зарегистрировано в DIS
  12. 24 мая 2023 г.: 40.20 Начало голосования DIS: 12 недель.
  13. 2023-08-17: 40.60 Закрытие голосования
  14. 28.11.2023: 40.99 Распространен полный отчет: DIS одобрен для регистрации в качестве FDIS.
  15. 11 декабря 2023 г.: 50.00 Окончательный текст получен или FDIS зарегистрирован для официального утверждения.
  16. 26.01.2024: 50.20 Подтверждение отправлено в секретариат или начато голосование FDIS: 8 недель
  17. 23.03.2024: 50.60 Завершение голосования. Доказательства, возвращенные секретариатом
  18. 2024-03-23: 60.00 Международный стандарт в стадии публикации.
  19. 12 апреля 2024 г.: опубликован международный стандарт 60.60.

Модель данных графа свойств GQL [ править ]

GQL — это язык запросов, специально предназначенный для графов свойств. Граф свойств очень похож на концептуальную модель данных, выраженную в модели сущность-связь или в диаграмме классов UML (хотя он не включает n-арные отношения, связывающие более двух сущностей). Сущности моделируются как узлы, а отношения как ребра в графе. Графы свойств являются мультиграфами : между одной и той же парой узлов может быть много ребер. Графы GQL могут быть смешанными : они могут содержать направленные ребра, где один из конечных узлов ребра является хвостом (или источником), а другой узел — головой (или целью, или пунктом назначения), но они также могут содержать ненаправленные (двунаправленные графы). или рефлексивные) края.

Узлы и ребра, называемые элементами, имеют атрибуты. Эти атрибуты могут быть значениями данных или метками (тегами). Значения свойств не могут быть элементами графов или целыми графами: эти ограничения намеренно приводят к четкому разделению топологии графа и атрибутов, несущих значения данных в контексте топологии графа. Таким образом, модель данных графа свойств намеренно предотвращает вложение графов или обработку узлов одного графа как ребер в другом. Каждый граф свойств может иметь набор меток и набор свойств, связанных с графом в целом.

Текущие продукты и проекты графовых баз данных часто поддерживают ограниченную версию описанной здесь модели. Например, Apache Tinkerpop [13] заставляет каждый узел и каждое ребро иметь одну метку; Cypher позволяет узлам иметь от нуля до нескольких меток, но отношения имеют только одну метку (называемую типом отношения). База данных Neo4j поддерживает недокументированные свойства на уровне графа, Tinkerpop имеет значения графа, которые играют ту же роль, а также поддерживает «метасвойства» или свойства свойств. PGQL Oracle поддерживает от нуля до многих меток на узлах и на ребрах, тогда как SQL/PGQ поддерживает от одной до многих меток для каждого типа элементов. Информационная модель NGSI-LD , определенная ETSI, представляет собой попытку формального определения графов свойств с типами узлов и связей (границ), которые могут играть роль меток в ранее упомянутых моделях и поддерживать семантические ссылки путем наследования классов, определенных в общих онтологиях .

Проект GQL определит стандартную модель данных, которая, вероятно, будет расширенным набором этих вариантов, и, по крайней мере, первая версия GQL, вероятно, позволит поставщикам принимать решения о мощности меток в каждой реализации, как это делает SQL/PGQ. и выбрать, поддерживать ли ненаправленные связи.

Дополнительные аспекты моделей ERM или UML (например, обобщение или подтипирование, мощности сущностей или отношений) могут быть отражены в схемах или типах GQL, описывающих возможные экземпляры общей модели данных.

Реализации [ править ]

Хотя стандарт GQL еще не доступен публично, уже доступна первая графовая база данных в памяти, которая может интерпретировать GQL. [14] [15] Помимо реализации, можно также найти формализацию и прочитать синтаксис конкретного подмножества GQL. [16]

языков запросов к графам Расширение существующих

Проект GQL опирается на множество источников или входных данных, в частности, на существующие промышленные языки и новый раздел стандарта SQL. В ходе подготовительных дискуссий в рамках обзоров истории WG3 [17] и сравнительное содержание некоторых из этих материалов [18] были представлены. GQL будет декларативным языком со своим собственным синтаксисом, играющим аналогичную роль SQL при создании приложений баз данных. Были определены и другие языки запросов к графам, которые предлагают прямые процедурные функции, такие как ветвление и циклирование (Gremlin от Apache Tinkerpop, [19] ) и GSQL, [20] позволяя итеративно перемещаться по графу для выполнения класса графовых алгоритмов, но GQL не будет напрямую включать такие функции. [21] [22] Однако GQL рассматривается как частный случай более общего класса графовых языков, который будет использовать общую систему типов графов и интерфейс вызова для процедур, обрабатывающих графы.

Запрос графа свойств SQL/PGQ [ править ]

Предыдущая работа зеркальных органов WG3 и SC32, особенно в области управления данными INCITS (ранее INCITS DM32), помогла определить новую запланированную часть 16 стандарта SQL, которая позволяет вызывать графический запрос только для чтения внутри оператора SQL SELECT. , сопоставляя шаблон графика с использованием синтаксиса, который очень близок к Cypher, PGQL и G-CORE, и возвращая в результате таблицу значений данных. SQL/PGQ также содержит DDL, позволяющий сопоставлять таблицы SQL с объектом схемы представления графа с узлами и ребрами, связанными с наборами меток и набором свойств данных. [23] [24] [25] Проект GQL тесно координируется с «разделением проекта» SQL/PGQ (расширения) ISO 9075 SQL, а в технических рабочих группах в США (INCITS DM32) и на международном уровне (SC32/WG3) есть несколько экспертов, которые работаю над обоими проектами. [24] Предложение проекта GQL требует тесного согласования SQL/PGQ и GQL, указывая, что GQL в целом будет расширенным набором SQL/PGQ.

Более подробную информацию о языке сопоставления с образцом можно найти в статье «Сопоставление графов с образцом в GQL и SQL/PGQ». [26] [27]

Сайфер [ править ]

Сайфер [28] — это язык, первоначально разработанный Андресом Тейлором и его коллегами из Neo4j Inc. и впервые реализованный этой компанией в 2011 году. С 2015 года он доступен как описание языка с открытым исходным кодом. [29] с инструментами грамматики, интерфейсом JVM , который анализирует запросы Cypher, и набором совместимости технологий (TCK), содержащим более 2000 тестовых сценариев, с использованием Cucumber для переносимости языка реализации. [30] TCK отражает описание языка и улучшения временных типов данных и функций, задокументированные в предложении по улучшению шифрования. [31]

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

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

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

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

Переменные привязки p и cзатем может быть разыменован для получения доступа к значениям свойств, связанных с элементами, на которые ссылается переменная. Пример запроса может быть завершен с помощью RETURN, в результате чего получается такой полный запрос:

ПОИСКПОЗ   (  p  :  Человек  )  -[  :  LIVES_IN  ]->  (  c  :  Город  ) 
 RETURN   p  .   первое_имя  ,   стр  .   фамилия  ,   c  .   имя  ,   в  .   состояние 

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

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

ПОИСКПОЗ   (  p  :  Человек  )  -[  :  LIVES_IN  ]->  (  c  :  Город  ),   (  p  :  Человек  )  -[  :  NATIONAL_OF  ]->  (  EUCountry  ) 
 RETURN   p  .   первое_имя  ,   стр  .   фамилия  ,   c  .   имя  ,   в  .   состояние 

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

Внешнее соединение может быть выражено как MATCH ... OPTIONAL MATCH :

ПОИСКПОЗ   (  p  :  Человек  )  -[  :  LIVES_IN  ]->  (  c  :  Город  )   НЕОБЯЗАТЕЛЬНОЕ   ПОИСКПОЗ   (  p  :  Человек  )  -[  :  NATIONAL_OF  ]->  (  ec  :  EUCountry  ) 
 RETURN   p  .   первое_имя  ,   стр  .   фамилия  ,   c  .   имя  ,   в  .   состояние  ,   в  т.ч.   имя 

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

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

Шаблоны такого типа стали широко распространены в языках запросов графов свойств и являются основой для расширенного подязыка шаблонов, определенного в SQL/PGQ, который, вероятно, станет подмножеством языка GQL. Cypher также использует шаблоны для предложений вставки и изменения ( CREATE и MERGE ), а в проекте GQL были сделаны предложения по сбору шаблонов узлов и ребер для описания типов графов.

Сайфер 9 и Сайфер 10 [ править ]

Текущая версия Cypher (включая временное расширение) называется Cypher 9. До проекта GQL планировалось создать новую версию Cypher 10 [ ССЫЛКА ЗАГОЛОВОК НИЖЕ ], которая будет включать в себя такие функции, как запросы к схемам и составным графам. и просмотры. Первые разработки для Cypher 10, включая построение и проецирование графов, были реализованы в проекте Cypher для Apache Spark, начиная с 2016 года. [32]

PGQL [ править ]

ПГКЛ [33] — это язык, разработанный и реализованный Oracle Inc., но доступный в виде спецификации с открытым исходным кодом. [34] вместе с программным обеспечением для анализа JVM. [35] PGQL сочетает в себе знакомый синтаксис SQL SELECT, включая выражения SQL, упорядочивание и агрегацию результатов, с языком сопоставления шаблонов, очень похожим на язык Cypher. Он позволяет запрашивать спецификацию графа и включает в себя возможность для макросов захватывать «представления шаблонов» или именованные подшаблоны. Он не поддерживает операции вставки или обновления, поскольку был разработан в первую очередь для аналитической среды, такой как продукт Oracle PGX. PGQL также был реализован в Oracle Big Data Spatial and Graph и в исследовательском проекте PGX.D/Async. [36]

G-CORE [ править ]

G-CORE — это исследовательский язык, разработанный группой академических и промышленных исследователей и разработчиков языков и основанный на функциях Cypher, PGQL и SPARQL . [37] [38] Проект проводился под эгидой Совета по тестированию связанных данных (LDBC), начиная с формирования целевой группы по языку запросов к графам в конце 2015 года, при этом основная часть работы по написанию статей пришлась на 2017 год. G-CORE — это составной язык, замкнутый на графах: входные данные графа обрабатываются для создания выходного графа с использованием проекций графа и операций над набором графов для построения нового графа. Запросы G-CORE — это чистые функции над графами, не имеющие побочных эффектов. Это означает, что язык не определяет операции, которые изменяют (обновляют или удаляют) хранимые данные. G-CORE представляет представления (именованные запросы). Он также включает пути в качестве элементов графа («пути как граждан первого сорта»), которые можно запрашивать независимо от проецируемых путей (которые вычисляются во время запроса по элементам узлов и ребер). G-CORE был частично реализован в исследовательских проектах с открытым исходным кодом в организации LDBC GitHub. [39] [40] [41]

GSQL [ править ]

GSQL [20] — это язык, разработанный для собственной графовой базы данных TigerGraph Inc. С октября 2018 года дизайнеры языка TigerGraph продвигают и работают над проектом GQL. GSQL — это полный по Тьюрингу язык, который включает в себя процедурное управление потоком данных и итерацию, а также средство для сбора и изменения вычисленных значений, связанных с выполнением программы, для всего графа или для элементов графа, называемых аккумуляторами. Эти функции предназначены для объединения итеративных вычислений на графах с исследованием и поиском данных. Графы GSQL должны описываться схемой вершин и ребер, которая ограничивает все вставки и обновления. Таким образом, эта схема обладает свойством закрытого мира схемы SQL, и этот аспект GSQL (также отраженный в проектных предложениях, вытекающих из проекта Morpheus) [42] ) предлагается в качестве важной дополнительной функции GQL.

Вершины и ребра — это именованные объекты схемы, которые содержат данные, но также определяют вмененный тип, подобно тому, как таблицы SQL являются контейнерами данных со связанным неявным типом строки. Затем из этих наборов вершин и ребер составляются графы GSQL, и несколько именованных графов могут включать один и тот же набор вершин или ребер. GSQL разработала новые функции с момента своего выпуска в сентябре 2017 года. [43] в первую очередь введение сопоставления ребер переменной длины [44] используя синтаксис, похожий на синтаксис Cypher, PGQL и SQL/PGQ, но также близкий по стилю к шаблонам фиксированной длины, предлагаемым Microsoft SQL/Server Graph [45]

GSQL также поддерживает концепцию мультиграфов. [46] которые позволяют подмножествам графа иметь управление доступом на основе ролей. Мультиграфы важны для графов корпоративного масштаба, которым требуется детальный контроль доступа для разных пользователей.

запросы составных графов в Spark Apache Morpheus: множественные графы и

Проект OpenCypher Morpheus [32] реализует Cypher для пользователей Apache Spark. Начиная с 2016 года, этот проект изначально осуществлялся параллельно с тремя связанными проектами, в которых также принимали участие дизайнеры Morpheus: SQL/PGQ, G-CORE и разработка расширений Cypher для запроса и построения нескольких графов. [47] Проект Morpheus служил испытательным стендом для расширений Cypher (известных как «Cypher 10») в двух областях: графового DDL и расширений языка запросов.

Функции Graph DDL включают в себя [48]

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

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

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

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

См. также [ править ]

Ссылки [ править ]

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

Внешние ссылки [ править ]