Вы можете запросить граф знаний, чтобы найти поднабор элементов и отношений, которые он содержит, и определить, как различные элементы связаны друг с другом. См. примеры ниже:
- На основе графа знаний, представляющего распространение инфекционного заболевания, можно работать с людьми и животными, связанными любыми отношениями с данным помещением.
- На основе графа знаний, представляющего производственную цепочку поставок, можно работать с любыми ресурсами, связанными с определенной ее частью, включая поставщиков, средства доставки, склады и так далее.
- На основе графа знаний, представляющего организацию, можно работать с устройствами заданного типа и получать список их свойств, включая имя ответственного сотрудника.
Вы можете определить поднабор элементов и отношений или их свойства, запросив граф знаний. Используйте язык запросов openCypher, чтобы писать запросы openCypher для обнаружения связанных элементов и их свойств, и для работы с этим ограниченным набором информации на графе знаний, карте или диаграмме связей.
Написание запроса openCypher
Запросы openCypher относятся к базам данных графов так же, как запросы SQL относятся к реляционным базам данных. В качестве базового примера рассмотрим граф, описывающий продукты компании и материально-технические средства, на которых они создаются. У автомобильной компании есть материально-технические средства, которые являются элементами, идентифицируемыми переменной f; модели транспортных средств, которые она производит, являются элементами, m; и между материально-техническим средством и моделями, в производстве которых оно используется, существует связь HasModel, hm.
- Чтобы найти первые десять элементов типа Model, можно использовать запрос вида MATCH (m:Model) RETURN m LIMIT 10.
- Чтобы узнать, какие модели связаны с какими материально-техническими средствами, можно сопоставить элементы посредством отношения HasModel с помощью запроса вида MATCH (f:Facility)-[ :HasModel]->(m) RETURN f,m.
- Ваш запрос может возвращать определенные свойства элемента или отношения в дополнение или вместо его отображаемого имени. Например, чтобы вернуть модель автомобиля, а также свойство категории модели, можyj использовать запрос вида MATCH (f:Facility)-[ :HasModel]->(m) RETURN f,m,m.category.
Вы можете узнать больше о языке запросов openCypher из документа, предоставленного Amazon. ArcGIS Knowledge не поддерживает все аспекты языка запросов openCypher. Например, запросы нельзя использовать для обновления графа знаний, только для возврата значений.
Запросите содержимое исследования
Вы можете изучить меньший набор элементов и отношений в исследовании, запросив его содержимое в представлении исследования.
- Откройте исследование и просмотрите его содержание.
- В верхней части представления исследования щелкните в текстовом поле поиска или нажмите Ctrl+F.
Появится элемент управления поиском.
- Щелкните Режим запроса в нижней части элемента управления поиском.
Подсказка в текстовом поле поиска изменяется на Запустить запрос к графу знаний, появляется кнопка Развернуть окно запроса , а в нижней части элемента управления поиском отображается Режим поиска .
- Введите запрос openCypher в окно поиска.
Например, запрос вида MATCH (p:Person)-->(v:Vehicle) RETURN p, v возвращает все элементы Person, которые имеют какое-либо отношение к элементу Vehicle, и возвращает элемент Person и элемент Vehicle в результатах.
- Нажмите Enter.
Результаты запроса отображаются в представлении исследования.
- Щелкните в текстовом поле запроса, чтобы изменить запрос, и введите свои изменения.
Например, измените запрос на MATCH (p:Person)-[hv:HasVehicle]->(v:Vehicle) RETURN p, hv, v, чтобы вернуть все элементы Person, у которых есть отношение HasVehicle к элементу Vehicle, и вернуть элемент Person, отношение HasVehicle и элемент Vehicle в результатах.
- Нажмите Enter, чтобы запустить измененный запрос.
Результаты обновленного запроса отображаются в представлении исследования. Элементы и отношения, которые возвращает запрос, обозначаются соответствующими значками.
- Если вам нужно больше места для написания более длинного запроса openCypher, нажмите кнопку Развернуть окно запроса .
Текущий запрос открjется в увеличенном многострочном текстовом поле запроса, а не будет находиться непосредственно в однострочном текстовом поле в верхней части элемента управления.
- Введите свои изменения в запрос, используя столько строк, сколько необходимо для ясности.
Например, измените запрос на MATCH (p:Person)-[hv:HasVehicle]->(v:Vehicle) WHERE hv.acquisitionDate = NULL RETURN p, hv, v, v.make, v.model, v.year, чтобы вернуть все элементы Person, которые имеют отношение HasVehicle к элементу Vehicle, где свойство acquisitionDate отношения HasVehicle relationship имеет значение NULL. Возвращает те же элементы и отношения, что и ранее, но также включает в результаты значения свойств марки, модели и года выпуска элемента Vehicle.
Результаты обновленного запроса отображаются в представлении исследования. Элементы и отношения, которые возвращает запрос, обозначаются соответствующими значками.
- Нажмите кнопку Запустить запрос .
При использовании развернутого окна запроса нажатие клавиши Ввод переместит указатель на новую строку в многострочном текстовом поле вместо выполнения запроса.
Результаты запроса отображаются в представлении исследования.
- Нажмите кнопку Сбросить поиск в текстовом поле запроса, чтобы очистить запрос и удалить результаты запроса.
Элементы графа, которые ранее были перечислены в представлении исследования, появятся снова.
- Когда текстовое поле запроса не заполнено, щелкните в текстовом поле запроса, чтобы открыть элемент управления запросом и вывести список из трех последних запросов. Щелкните запрос в списке, чтобы запустить его снова.
Выбранный запрос выполняется, а результаты запроса отображаются в исследовании.
- Нажмите кнопку Сбросить поиск в текстовом поле запроса, чтобы очистить текстовое поле запроса и удалить результаты запроса из исследования. Щелкните в пустом текстовом поле запроса, чтобы открыть элемент управления запросом, и нажмите кнопку Удалить из истории для определенного запроса в списке, чтобы удалить его из журнала.
Указанный запрос удален из списка. История ваших запросов обновляется, отображая три самых последних запроса.
- Если вам больше не нужно многострочное текстовое поле запроса, нажмите кнопку Свернуть окно запроса справа от текстового поля запроса.
При изменении запроса он будет обновлен непосредственно в текстовом поле запроса в одной строке. Нажмите Enter, чтобы запустить обновленный запрос.
Запросите граф знаний на панели Поиск и фильтрация
Панель Поиск и фильтрация можно использовать с представлением исследования для запроса его содержимого, с картой для запроса содержимого слоя графа знаний или с диаграммой связей для запроса элементов и отношений, которые он описывает.
- Открытие исследования
- Откройте панель Поиск и фильтрация одним из следующих способов:
- На вкладке ленты Исследование в группе Поиск щелкните Поиск и фильтрация .
- Щелкните слой графа знаний на панели Содержание карты. Зайдите на вкладку Данные из вкладки Слой графа знаний на ленте. В группе Поиск щелкните кнопку Поииск и фильтрация .
- На вкладке ленты Диаграмма связей в группе Поиск щелкните Поиск и фильтрация .
Откроется панель Поиск и фильтрация.
- Щелкните ниспадающее меню Набор данных и выберите название исследования, карты или диаграммы связей, которые вы хотите запросить.
- Щелкните название исследования в своем проекте, чтобы просмотреть часть графа знаний, которая в настоящее время отображается в списке содержимого исследования. Например, если в настоящее время на панели исследования Содержания выбран элемент Person и перечислены первые 1000 элементов, гистограмма будет отображать содержимое, связанное только с 1000 элементами Person. Если исследование называется Исследование, запись в ниспадающем меню Набор данных будет называться Исследование.
- Щелкните имя слоя графа знаний на карте, чтобы изучить часть графа знаний, которая в данный момент отображается на карте. Например, если карта включает только элементы Person, Pet и Veterinarian, а также отношения HasPet и HasPatient, только эти типы элементов и типы отношений на карте представлены на гистограммах. Если карта называется Карта, а слой графа знаний на карте называется MyKnowledgeGraph, запись в ниспадающем меню Набора данных будет Карта - MyKnowledgeGraph.
- Щелкните имя диаграммы связей, чтобы просмотреть часть графа знаний, которая в настоящее время отображается на диаграмме связей. Например, если диаграмма связей включает только запрошенный набор элементов Person и Vehicle, и связь HasVehicle, на гистограммах будут представлены только конкретные элементы и отношения на диаграмме связей. Если диаграмма связей называется Диаграмма связей, запись в ниспадающем меню Набор данных будет Диаграмма связей.
- Если вы хотите изучить весь граф знаний, на который ссылается исследование, слой графа знаний на карте или диаграмму связей, щелкните запись, соответствующую представлению или слою карты, за которой следует Граф знаний. Например, если карта называется Карта, а слой графа знаний на карте называется MyKnowledgeGraph, запись в ниспадающем меню Набора данных, соответствущая полному графу знаний, будет Карта - MyKnowledgeGraph.- Knowledge Graph.
- Щелкните вкладку Запрос .
- Введите запрос openCypher в текстовое окно Запрос.
- Щелкните Применить.
Результаты запроса появятся в списке Результаты.
Подсказка:
Графы знаний могут представлять множество элементов и отношений. Если возврат результатов вашего запроса занимает слишком много времени, вы можете прекратить создание списка результатов, щелкнув индикатор занятости в нижней части панели Поиск и фильтрация. Когда ArcGIS Pro завершает создание списка результатов, индикатор занятости остановится, и вы увидите кнопку Обновить результаты .
По умолчанию панель Поиск и фильтрация может быть слишком узкой для просмотра результатов запроса. Вы можете открепить панель, чтобы расширить ее, не влияя на расположение других представлений и панелей в главном окне приложения ArcGIS Pro.
Изучение результатов запроса
Запрос 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 и элемент Vehicle, где лицо участвует в отношениях HasVehicle с транспортным средством. Запрос также возвращает свойство acquisitionDate отношения HasVehicle, а также свойства марки, модели и года объекта Vehicle. Если свойство не имеет значения, в столбце отображается текстовое значение null.
Столбцы, содержащие элемент или отношение , будут показывать отображаемое имя элемента графа вместе с его значком. На скриншоте выше возвращенные свойства Person и Vehicle отображаются в столбцах p и v, соответственно. Свойство acquisitionDate отношения HasVehicle отображается в столбце hv.acquisitionDate. Значения свойств марка, модель и год элементов Vehicle отображаются в столбцах v.make, v.model и v.year, соответственно.
Вы можете добавить элементы или отношения, возвращаемые запросом, на карту или диаграмму связей для дальнейшего анализа.