Skip To Content

Запрос содержания графа знаний

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

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

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

Вид Запроса Вид Запроса - это вид по умолчанию в каждом проекте Knowledge Studio, который позволяет запрашивать содержание графа знаний проекта. В разделе Содержание запроса (номер 1 на изображении ниже) перечислены редактор Запросов Вид Запроса, в котором вы пишете новые запросы, и коллекция Сохраненные запросы Коллекция сохраненных запросов, которые остаются в проекте при его сохранении. Окно запроса (номер 2 на изображении ниже) - это многострочное текстовое поле, которое позволяет форматировать и запускать запрос openCypher. Результаты запроса (номер 3 на изображении ниже) по умолчанию отображаются в виде таблицы, что позволяет изучать свойства возвращаемых записей графа (номер 4 на изображении ниже) и выбирать записи из результатов. Вы можете просмотреть результаты и свои выборки в предварительном просмотре карты или диаграммы связей, а также добавить или удалить все результаты из вашей подборки с помощью панели инструментов результатов (номер 5 на изображении ниже). Контекстная панель инструментов (номер 6 на изображении ниже) предоставляет инструменты, специфичные для каждого запроса, например, сохранение запроса в проекте для последующего использования.

Диаграмма основных областей вида запроса.

Запрос графа знаний исследования

Вы можете запрашивать элементы и отношения графа знаний в исследовании, с помощью Вида запроса Вид запроса.

  1. Щелкните Запрос Вид запроса на панели Ресурсы исследования, чтобы открыть вид запроса.

    Вид запроса открывается с полем запроса, а результаты не отображаются. Окно запроса - это многострочное текстовое поле, которое позволяет форматировать запрос openCypher.

  2. Введите запрос в окно запроса. Нажмите Enter, чтобы переместить указатель на новую строку и продолжите ввод.

    Например, такой запрос, как MATCH (e) RETURN e, вернет все элементы в графе знаний. Этот запрос работает с любым графом знаний.

    Подсказка:

    Если вы не знаете, сколько результатов будет возвращено из запроса, добавьте LIMIT 1000 в конец запроса, чтобы избежать неожиданного возврата десятков тысяч записей, что может привести к затруднению в работе вашего браузера.

  3. Щелкните Запустить.

    Результаты запроса появятся в области Результаты. Записи элементов и отношений, которые возвращает запрос, обозначаются соответствующими значками.

Написание запроса openCypher

Запросы openCypher относятся к базам данных графов так же, как запросы SQL относятся к реляционным базам данных. Базовая структура запроса заключается в поиске или сопоставлении элементов и возвращении этих элементов, где элементы, которые вы хотите найти, указаны в круглых скобках. Например, запрос MATCH (e) RETURN e возвращает элементы любого типа. Количество возвращаемых элементов ограничено только конфигурацией графа знаний. Чтобы ограничить количество возвращаемых элементов графа, используйте выражение LIMIT. Например, запрос MATCH (e) RETURN e LIMIT 5 вернет пять элементов любого типа.

Результаты запросов по умолчанию выводятся в виде таблицы

Запрос может идентифицировать элементы, связанные с помощью символов, образующих стрелку. Например, запрос MATCH (e1)-->(e2) RETURN e1,e2 вернет пары элементов e1 и e2, между которыми любой тип отношений и которые соединяет любой путь. Если бы запрос был написан со стрелкой, указывающей другое направление, пути считались бы начинающимися от элемента-источника e2 до элемента-назначения e1: MATCH (e1)<--(e2) RETURN e1,e2. Способ, которым элементы связаны друг с другом, называется шаблоном.

Связанные элементы, возвращаемые запросом, отображаются в таблице результатов.

Запрос может идентифицировать определенные отношения, которые следует заключать в квадратные скобки. Например, запрос MATCH (e1)-[]->(e2) RETURN e1,e2 вернет пары элементов e1 и e2, где два элемента соединяет одно отношение любого типа. Этот запрос показывает другой способ представления тех же запросов, что и показанные выше, и иллюстрирует предпочтительный синтаксис запроса. Запрос можно изменить так, чтобы он возвращал полную группу элементов, описывающих отношения, путем возврата элемента-источника e1, отношения r и элемента-назначения e2: MATCH (e1)-[r]->(e2) RETURN e1,r,e2. Аналогичные запросы MATCH (e1)-[ ]->( )-[ ]->(e2) RETURN e1,e2 или MATCH (e1)-[*2]->(e2) RETURN e1,e2 будут возвращать пары элементов, связанных двумя отношениями в одном направлении. Запросы также могут идентифицировать шаблоны, в которых отношения имеют разные направления, например, MATCH (e1)-[ ]->(e2)<-[ ]-(e3) RETURN e1,e2,e3.

Возвращаются связанные элементы и элементы, которые их соединяют.

Приведенные выше примеры запросов можно использовать с любым графом знаний.

Отношения, в которых элемент Person является источником отношения, возвращаются.

Вы можете ограничить запрос рассмотрением определенных типов отношений и конкретных связанных элементов, добавив типы отношений и типы элементов к другим аспектам запроса. Например, MATCH (p:Person)-[v:HasVehicle]->(e) RETURN p,v,e будет возвращать все элементы Person - p, в которых отношение HasVehicle - v, соединяет Person с другим элементом любого типа - e. Переменные p и v назначаются элементам Person и отношениям HasVehicle соответственно, поэтому информация о них может быть возвращена запросом. По сравнению с предыдущим примером отношения, в которых элемент Pet или Document является назначением отношения, не включаются в результаты. В зависимости от модели данных графа знаний элемент назначения - e, может быть общим элементом Vehicle или одним из серии определенных типов элементов, таких как Automobile, Motorcycle, Boat, Airplane, Commercial Vehicle и т.д.

Отношения, в которых элемент Vehicle является назначением отношения, возвращаются.

В результаты запроса могут быть включены определенные свойства элементов и отношений. Например, MATCH (p:Person)-[:HasVehicle]->(e) RETURN p,e.make,e.model,e.year будет выполнять тот же запрос, что был определен ранее. Однако вместо отображения самого элемента-назначения в результатах будут показаны значения, хранящиеся в нескольких его свойствах: марка, модель и год выпуска автомобиля соответственно. В этом примере для определенного отношения, рассматриваемого запросом, не присвоена переменная, поскольку данные отношения не включаются в результаты запроса и не оцениваются где-либо еще в запросе.

Свойства элемента назначения Vehicle включаются в результаты.

Точно так же вы можете ограничить оцениваемые элементы и отношения, указав свойства, которые определяют интересующие элементы и отношения. Свойства, которые следует учитывать, определяются путем добавления в запрос условия WHERE. Как и в приведенных выше примерах, переменные должны быть назначены для ссылки на конкретную информацию об элементах и отношениях в условии WHERE. Например, в следующем запросе оцениваются только элементы Person с определенным значением свойства lastName; Отношения HasVehicle учитываются, только если они имеют значение NULL в свойстве endDate; и связанные элементы Vehicle учитываются только в том случае, если свойство year имеет значение, предшествующее 1980: MATCH (p:Person)-[hv:HasVehicle]->(v:Vehicle) WHERE p.lastName = 'Doe' and hv.endDate IS NULL and v.year < 1980 RETURN p,p.firstName,v,v.make,v.year.

Считается, что свойства элемента-источника, отношения и элемента-назначения позволяют получить определенный набор результатов.

Вместо того, чтобы возвращать ряд отдельных элементов и отношений, ваш запрос может возвращать полный путь, представленный шаблоном. Для этого назначьте шаблон, определенный в выражении MATCH, переменной и верните эту переменную. Например, запрос MATCH path = (:Person)-[:HasVehicle]->(:Vehicle) RETURN path вернет список путей для всех комбинаций элементов и отношений, соответствующих указанному шаблону. Каждый путь будет содержать все части сопоставленного шаблона: Person, отношение HasVehicle и Vehicle. Вам не нужно назначать переменные отдельным частям этого шаблона, поскольку они не возвращаются запросом.

Пути содержат все части соответствия шаблону.

Изменить и обновить результаты запроса

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

  1. Щелкните в окне запроса.
  2. Обновите текст существующего запроса openCypher.

    Например, измените запрос на MATCH (p:Person)-[hv:HasVehicle]->(v:Vehicle) WHERE v.year < 2005 RETURN p, p.firstName, p.phoneNumber, hv, v, v.make, v.model, v.year для возврата всех элементов Person, имеющих отношение HasVehicle к элементам Vehicle, в котором свойство Vehicle year раньше 2005 года. Результаты будут включать значения из свойств firstName и phoneNumber элемента Person, отношения HasVehicle и свойств марки, модели и года элемента Vehicle.

    Нажмите Enter, чтобы переместить указатель или часть текста запроса на новую строку в многострочном текстовом поле. Используйте столько строк, сколько необходимо для ясности.

    Запрос может занимать несколько строк при использовании многострочного текстового поля запроса.
  3. Щелкните Запустить, чтобы получить новые результаты.

    Результаты запроса появятся в разделе Результаты. Элементы и отношения, которые возвращает запрос, обозначаются соответствующими значками.

    Результаты запроса
  4. Вы также можете щелкнуть Очистить, чтобы удалить текст текущего запроса окна запроса.

Сохранить запрос

Вы можете сохранить отдельные запросы, которые хотите оставить для вашего исследования. При сохранении проекта сохраненные запросы сохраняются в проекте и перечислены в разделе Сохраненные запросы Коллекция сохраненных запросов панели Содержание запроса.

  1. Щелкните Сохранить как новый запрос Сохранить как новый запрос на контекстной панели инструментов запроса.

    Появится модальное окно нового сохраненного запроса.

    Модальное окно Сохранить как новый запрос
  2. Дополнительно:
    • Введите название запроса в области ввода Заголовок.
    • Введите описание запроса в текстовое поле Описание. Описание обеспечивает контекст для результатов запроса без необходимости читать запрос openCypher.
  3. Щелкните Хранилище.

    Запрос хранится в разделе Сохраненные запросы Коллекция сохраненных запросов панели Содержание запроса.

  4. Щелкните сохраненный запрос Сохраненный запрос, чтобы запустить запрос и просмотреть результаты.

    Сохраненный запрос будет запущен, как только он будет выбран. Заголовок и описание запроса отображаются над результатами. Окно запроса скрыто.

    Таблица результатов для сохраненного запроса
  5. Щелкните Показать окно запроса, чтобы отобразить текст запроса openCypher в окне запроса.
  6. Щелкните текстовое поле запроса и измените существующий запрос.
  7. Щелкните Обновить сохраненный запрос Обновить сохраненный запрос на контекстной панели инструментов запроса, чтобы обновить сохраненный запрос с учетом внесенных изменений.
  8. Щелкните меню Опции Опции для этого сохраненного запроса в Содержании запроса.
  9. Щелкните Переименовать элемент и описание Переименовать, чтобы обновить текстовые поля Заголовок и Описание запроса с учетом внесенных изменений.
  10. Щелкните Применить.
  11. Вы также можете щелкнуть Удалить Удалить в меню Опции Опции для этого сохраненного запроса, чтобы удалить сохраненный запрос из проекта.

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

Запрос openCypher может вернуть различные результаты. Когда запрос возвращает список элементов или отношений, они отображаются в списке результатов по одному элементу или отношению в строке. Значения, возвращаемые запросом, отображаются в столбцах в том порядке, в котором они перечислены в выражении возврата запроса.

Запрос openCypher может возвращать результаты, которые показывают, какие элементы имеют определенное отношение к другому элементу. В этом случае в таблице результатов будет отображаться по одному столбцу для каждой тройки, где тройка состоит из исходного элемента, отношения и целевого элемента. Например, такой запрос, как MATCH (p:Person)-[r]->(e) RETURN p,r,e, возвращает список результатов, где каждая строка в таблице результатов представляет человека, отношение между этим человеком и другим человеком и целевой элемент отношения. В этом случае в таблице результатов будет столбец для лица под названием Значение 0, столбец для отношения под названием Значение 1 и заголовок для целевого элемента под названием Значение 2.

Результаты запроса, который возвращает элементы-источники и элементы-адресаты, а также отношения, которые их связывают

Если вместо этого запрос возвращает определенные свойства элементов или отношений, в списке результатов отобразятся эти значения в каждом столбце. Например, запрос вида MATCH (p:Person)-[:HasVehicle]->(v) RETURN p,v,v.year возвращает отображаемое имя для элемента Person в столбце Значение 0, отображаемое имя для элемента Vehicle в столбце Значение 1 и значение свойства года элемента Vehicle в столбце Значение 2. Если элемент не имеет значения для определенного свойства, возвращаемого запросом, вы увидите значение (NULL) как представление того факта, что значение для отображения отсутствует.

Приведенный ниже пример иллюстрирует запрос, который возвращает элемент Person, где человек участвует в отношении HasVehicle с транспортным средством. Запрос также возвращает свойство AcquisitionDate отношения HasVehicle и свойство make элемента Vehicle.

Результаты запроса, который возвращает элемент Person, где человек участвует в отношении HasVehicle с транспортным средством, и свойство элемента Vehicle.

Столбцы, содержащие элемент Элемент или отношение Отношение, будут показывать отображаемое имя элемента графа вместе с его значком. На приведенном выше снимке экрана возвращенный элемент Person отображается в столбце Значение 0. Свойство acquisitionDate отношения HasVehicle отображается в столбце Значение 1. Значение свойства make элемента Vehicle отображается в столбце Значение 2.

Третий распространенный тип запросов возвращает путь между одним элементом и другим. Путь содержит все элементы и отношения между указанными элементами-источниками и элементами-адресатами. Например, запрос вида MATCH path=(p:Person)-[r]->(e) RETURN path вернет все пути к любым элементам, связанным с элементом Person одним отношением. В таблице результатов запроса путь будет отображен в столбце Значение 0.

Результат запроса пути отображает все записи в пути в одном столбце таблицы результатов.

Пути могут включать любое количество элементов и отношений. Например, запрос вида MATCH path=(c:Company)-[r*2]-(v:Vehicle) RETURN path вернет все пути между элементами Company и Vehicle, которые находятся ровно в двух отношениях друг от друга. Каждый путь будет содержать элемент-источник Comapny, все промежуточные элементы и отношения, а также элемент-адресат Vehicle. В таблице результатов запроса путь будет отображен в столбце Значение 0. По умолчанию он просто отображает элемент-источник и элемент-адресат в пути, а также общее количество записей в пути. Щелкните Развернуть развернуть строки запроса, чтобы просмотреть полный результат пути.

Результаты пути с несколькими отношениями между элементом-источником и элементом-адресатом.

Пути могут быть возвращены как один из элементов результата запроса. Например, один и тот же запрос может вернуть путь и название компании-источника и год выпуска транспортного средства-адресата. MATCH path=(c:Company)-[r*2]-(v:Vehicle) RETURN path, c.name, v.year. В таблице результатов запроса в столбце Значение 0 будет отображен свернутый путь, в столбце Значение 1 - свойство имени элемента Company, а в столбце Значение 2 - свойство года элемента Vehicle.

Результат запроса, который возвращает путь, а также свойства определенных элементов в пределах этого пути.

По умолчанию все результаты запросов отображаются в виде таблицы. В этом виде вы можете выбрать результаты запроса и просмотреть свойства любого элемента или отношения, полученного в результате запроса.

  1. Щелкните элемент Элемент или отношение Отношение в таблице результатов, чтобы просмотреть их свойства.
  2. Также можно использовать Добавить выборку в Добавить в, чтобы добавить эту запись в другой элемент содержимого.
  3. Используйте кнопку Добавить записи в выборку Добавить записи в выборку в столбце Выборка, чтобы добавить в выборку все элементы и отношения в этой строке.

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

    Записи, выбранные в таблице, подсвечиваются в каждом появляющемся результате.
  4. Дополнительно:
    • Нажмите Ctrl при щелчке по элементу Элемент или отношению Отношение, чтобы добавить только эту запись из вашей выборки.
    • Щелкните Выбрать все Выбрать все в меню результатов, чтобы выбрать все записи, полученные в результате запроса.
  5. Используйте кнопку Удалить записи из выборки удалить записи из выборки в столбце Выборка, чтобы удалить из выборки все элементы и отношения в этой строке.
  6. Дополнительно:
    • Нажмите Ctrl при щелчке по элементу Элемент или отношению Отношение, чтобы удалить только эту запись из вашей выборки.
    • Щелкните Очистить выборку Очистить выборку в меню результатов, чтобы выбрать все записи, полученные в результате запроса.
  7. Используйте Добавить выборку в Добавить в в контекстной панели инструментов запроса, чтобы добавить выбранные записи в диаграмму связей, карту или карточку данных.

Предварительный просмотр результатов в виде карты или диаграммы связей

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

  1. Щелкните Вид карты Карта в меню результатов, чтобы увидеть предварительный просмотр пространственных объектов, полученных в результате запроса.
    Предварительный просмотр результатов запроса на карте отображает все выборки, сделанные в виде таблицы.
  2. Щелкните Вид диаграммы связей Диаграмма связей в меню результатов, чтобы увидеть предварительный просмотр результатов запроса, визуализированных в виде диаграммы связей.
    Предварительный просмотр диаграммы связей результатов запроса отображает все выборки, сделанные в виде таблицы.
  3. Щелкните Вид таблицы Таблица в меню результатов, чтобы вернуться к таблице результатов по умолчанию.