Запрос содержания графа знаний
Вы можете выполнить запрос к графу знаний, чтобы найти поднабор элементов и отношений, которые он содержит, и определить, как различные элементы связаны. При этом могут использоваться записи о происхождении, и записи о происхождении могут при необходимости включаться в результаты запроса. См. примеры ниже:
На основе графа знаний, представляющего распространение инфекционного заболевания, можно работать с людьми и животными, связанными любыми отношениями с данным помещением.
На основе графа знаний, представляющего производственную цепочку поставок, можно работать с любыми ресурсами, связанными с определенной ее частью, включая поставщиков, средства доставки, склады и так далее.
На основе графа знаний, представляющего организацию, можно работать с устройствами заданного типа и получать список их свойств, включая имя ответственного сотрудника.
На основе графа знаний, представляющего черепах и места их обитания, можно определить места обитания, где уровень риска был установлен на основе информации, содержащейся в специальной оценке воздействия на окружающую среду.
Вы можете определить поднабор элементов и отношений или их свойства, запросив граф знаний. Используйте язык запросов openCypher, чтобы писать запросы openCypher для обнаружения связанных элементов и их свойств, и для работы с этим ограниченным набором информации в графе знаний, карте или диаграмме связей.
Вид Запроса
– это вид по умолчанию в каждом проекте Knowledge Studio, который позволяет запрашивать содержание графа знаний проекта. В виде запроса есть шесть ключевых областей, которые показаны на следующем изображении и описаны в таблице ниже. Цифры на картинке соответствуют описаниям.

| Элемент | Описание |
|---|---|
| Раздел Содержание запроса содержит редактор Запросов |
|
| Окно запроса представляет собой многострочное текстовое поле, позволяющее форматировать и выполнять запрос OpenCypher. | |
| Результаты запроса по умолчанию отображаются в таблице. | |
| Выбор записи в Результатах запроса позволяет изучить свойства возвращённых записей графа. | |
| Вы можете предварительно просмотреть результаты и выбранные элементы в диаграмме связей, карте или предварительном просмотре диаграммы, а также добавить или удалить все результаты из выборки с помощью панели инструментов результатов. | |
| Контекстная панель инструментов предоставляет инструменты, специфичные для запроса, такие как определение параметров запроса и сохранение вашего запроса в проекте для последующего использования. |
Запрос к графу знаний
Можно запрашивать элементы и отношения графа знаний, используя вид запроса
. При желании, можно включить записи о происхождении в результаты запроса
Щелкните Запрос
на панели Содержание проекта, чтобы открыть вид запроса.Вид запроса открывается с полем запроса, а результаты не отображаются. Окно запроса представляет собой многострочное текстовое поле, позволяющее форматировать запрос OpenCypher.
Введите запрос в окно запроса. Нажмите Enter, чтобы переместить указатель на новую строку и продолжите ввод.
Например, такой запрос, как MATCH (e) RETURN e, вернет все элементы в графе знаний. Этот запрос работает с любым графом знаний.
Подсказка:
Если вы не знаете, сколько результатов будет возвращено из запроса, добавьте LIMIT 1000 в конец запроса, чтобы избежать неожиданного возврата десятков тысяч записей, что может привести к затруднению в работе вашего браузера.
Можно также отметить опцию Включить происхождение, чтобы разрешить использование или возврат записей о происхождении в запросе.
Щелкните Запустить.
Результаты запроса появятся в области Результаты. Элементы, отношение и записи о происхождении, которые возвращает запрос, обозначаются соответствующими значками.
Написание запроса openCypher
Запросы openCypher относятся к базам данных графов так же, как запросы SQL относятся к реляционным базам данных. Базовая структура запроса заключается в поиске или сопоставлении элементов и возвращении этих элементов, где элементы, которые вы хотите найти, указаны в круглых скобках. Например, запрос MATCH (e) RETURN e возвращает элементы любого типа. Количество возвращаемых элементов ограничено только конфигурацией графа знаний. Чтобы ограничить количество возвращаемых элементов графа, используйте выражение LIMIT. Например, запрос MATCH (e) RETURN e LIMIT 5 вернет пять элементов любого типа.

Запрос может идентифицировать элементы, связанные с помощью символов, образующих стрелку. Например, запрос MATCH (e1)-->(e2) RETURN e1,e2 вернет пары элементов 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 (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 и т.д.

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

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

Изменить и обновить результаты запроса
Вы можете получить сфокусированный набор элементов и отношений в графе знаний, оценив определенные типы элементов графа и определенные значения свойств.
Щелкните в окне запроса.
Обновите текст существующего запроса 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, чтобы переместить указатель или часть текста запроса на новую строку в многострочном текстовом поле. Используйте столько строк, сколько необходимо для ясности.

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

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

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

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