Skip To Content

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

ArcGIS 11.4  | |  Архив справки

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

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

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

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

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

Запрос к графу знаний

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

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

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

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

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

    Подсказка:

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

  3. Можно также отметить опцию Включить происхождение, чтобы разрешить использование или возврат записей о происхождении в запросе.
  4. Щелкните Запустить.

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

Написание запроса 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, возвращает список результатов, где каждая строка в таблице результатов представляет человека, отношение между этим человеком и другим человеком и целевой элемент отношения. В этом случае в таблице результатов будет столбец для лица под названием p, столбец для отношения под названием r и заголовок для целевого элемента под названием e.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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