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

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

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

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

Запрос содержания исследования

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

  1. Откройте исследование и просмотрите его содержание.
  2. В верхней части вида исследования щелкните текстовое поле поиска или нажмите Ctrl+F и при необходимости щелкните Запрос.

    Появится расширенное окно запроса. Это многострочное текстовое поле запроса, которое позволяет форматировать запрос openCypher.

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

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

    Переключайтесь между режимом поиска и запроса с помощью кнопок рядом с элементом управления поиском.

  4. При необходимости отметьте Включить происхождение, чтобы включить в результаты записи о происхождении, удовлетворяющие запросу.
  5. Щелкните Применить.

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

  6. Измените размер окна запроса, перетащив разделитель между окном и списком содержания.

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

    Измените размер развернутого окна запроса, перетащив разделитель или используя доступные кнопки.

Написание запроса 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.

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

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

Адаптируйте запрос к определенному графу знаний, ссылаясь на типы элементов, типы отношений и свойства, определенные в его модели данных. Включите в запрос имя определенного типа элемента, чтобы ограничить рассматриваемые элементы графа. Например, запрос MATCH (e1:Person)-[r]->(e2) RETURN e1,r,e2 вернет все элементы Person e1, в которых любое отношение r соединяет Person с другим элементом e2, который может быть элементом любого типа. По сравнению с предыдущим примером отношения, в которых элемент Pet, Vehicle или Document является источником отношения, не включаются в результаты.

Отношения, в которых элемент 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.

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

Вы можете узнать больше о языке запросов openCypher из документа, предоставленного openCypher Implementers Group. ArcGIS Knowledge не поддерживает все аспекты языка запросов openCypher. Например, запросы нельзя использовать для обновления графа знаний, только для возврата значений.

В ArcGIS AllSource вы можете изучить openCypher, просмотрев запросы, получающие данные графов знаний для построения гистограмм. На панели Поиск и фильтр, на вкладке Гистограмма Гистограмма, щелкните кнопку Настройки Настройки и нажмите Отправить запрос на вкладку Запрос. Запрос, используемый для получения данных для текущего набора гистограмм, отображается в текстовом поле Запрос.

Более подробно о запросах openCypher

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

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

  1. Щелкните в расширенном окне запроса или нажмите Ctrl+F.
  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. Щелкните Очистить, чтобы удалить текст текущего запроса из расширенного окна запроса.

    Три последних выполненных запроса перечислены в нижней части расширенного окна запроса. Результаты самого последнего запроса не удаляются.

  5. Повторно запускайте или удаляйте запросы из истории запросов.
    1. Щелкните запрос в списке, чтобы запустить его снова.

      Наведите курсор на недавний запрос в своей истории.

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

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

      Наведите курсор на кнопку Удалить из истории.

      Указанный запрос удален из списка. История ваших запросов обновляется, отображая три самых последних запроса.

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

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

  1. Щелкните стрелку раскрывающегося списка Запрос и выберите <Новый запрос>.
  2. Щелкните текстовое поле запроса и введите новый запрос или измените существующий запрос.
  3. Щелкните Применить.

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

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

  4. Щелкните Сохранить Сохранить в верхней части расширенного окна запроса.

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

  5. Перейдите к контейнеру проекта Исследования, далее к своему исследованию, к папке Коллекции и к папке Запросы. Введите имя запроса в текстовом поле Имя и нажмите Сохранить.

    Введите имя для запроса, который будет сохранен.

    Запрос сохраняется в папке Запросы в вашем исследовании. Ваш сохраненный запрос автоматически выбирается в раскрывающемся списке Запрос.

    Сохраненный запрос автоматически выбирается в раскрывающемся списке Запрос.

  6. Щелкните текстовое поле запроса и измените существующий запрос.
  7. Щелкните Сохранить Сохранить в верхней части расширенного окна запроса, чтобы обновить сохраненный запрос и отразить ваши изменения.
  8. Щелкните текстовое поле запроса и измените существующий запрос.
  9. Щелкните Сохранить как Сохранить в верхней части расширенного окна запроса, чтобы сохранить изменения как новый запрос.
  10. Перейдите к контейнеру проекта Исследования, далее к своему исследованию, к папке Коллекции и к папке Запросы. Введите имя запроса в текстовом поле Имя и нажмите Сохранить.
  11. Щелкните вкладку Проект на ленте и щелкните Сохранить Сохранить, чтобы сохранить исследование и запросы в проекте.
  12. Запустите сохраненный запрос.
    • Щелкните сохраненный запрос на панели исследования Содержание.
    • Щелкните раскрывающийся список Запрос и выберите сохраненный запрос.

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

    Выбранный запрос появится в текстовом поле запроса.

Запрос графа знаний на панели Поиск и фильтрация

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

  1. Откройте панель Поиск и фильтрация одним из следующих способов:

    Из исследования

    На вкладке ленты Исследование в группе Поиск щелкните Поиск и фильтрация Поиск и фильтр.

    Из карты

    Щелкните слой графа знаний на панели Содержание карты. Щелкните контекстную вкладку Слой графа знаний. В группе Поиск щелкните кнопку Поиск и фильтрация Поиск и фильтр.

    Из диаграммы связей

    На вкладке ленты Диаграмма связей в группе Поиск щелкните Поиск и фильтрация Поиск и фильтр.

    Откроется панель Поиск и фильтрация.

  2. Щелкните ниспадающий список Источник и нажмите исследование, слой карты или диаграмму связей, для которых вы хотите запросить граф знаний.
  3. Щелкните вкладку Запрос Запрос.

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

    Панель

  4. Задайте новый запрос в текстовом поле Запрос.
    • Введите запрос openCypher.

      Введите новый запрос.

    • Щелкните раскрывающийся список Запрос и щелкните сохраненный запрос.

      Выберите сохраненный запрос в раскрывающемся списке Запрос.

  5. При необходимости отметьте Включить происхождение, чтобы включить в результаты записи о происхождении, удовлетворяющие запросу.
  6. Щелкните Применить.

    Результаты запроса появятся в списке Результаты.

Подсказка:

Графы знаний могут представлять множество элементов и отношений. Индикатор занятости в нижней части панели Поиск и фильтрация показывает, что создается список результатов. Когда ArcGIS AllSource завершает создание списка результатов, индикатор занятости остановится, и вы увидите кнопку Обновить результаты Обновить результаты. Если возврат результатов вашего запроса занимает слишком много времени, вы можете прекратить создание списка результатов, щелкнув индикатор занятости.

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

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

Запрос 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 отображается в столбце p. Свойство acquisitionDate отношения HasVehicle отображается в столбце hv.acquisitionDate. Значение свойства make элемента Vehicle отображается в столбце v.make.

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

Изучите свойства элементов и отношений в виде исследования.

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

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

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

Добавьте выбранные элементы графа к новой или существующей карте или диаграмме связей.