Получение краевых атрибутов из пути в «compute path» - PullRequest
4 голосов
/ 27 апреля 2020

Я рассмотрел пример «пути вычисления» в вашей Документации.

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

Я хотел получить доступ к ребрам, которые соединяют эти узлы, и получить от них атрибуты.

Возможно ли это сделать?

Как бы вы порекомендовали мне это сделать?

1 Ответ

4 голосов
/ 28 апреля 2020

Гракн - это гиперграф - у него гипергрань, а не ребра. Hyperredge Гракна называется relation. Когда вы используете compute count, вы получаете ConceptList . relation - это тип Concept, поэтому в этом списке вы найдете идентификаторы отношений по кратчайшему пути.

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

match $c id V12345; get;

заменив, конечно, найденный вами идентификатор V12345.

У вас есть все варианты здесь. После того, как вы извлекли объект Concept для c, вы можете проверить, является ли это отношение, используя concept.isRelation() ( здесь ), а затем concept.attributes() ( здесь ), чтобы получить атрибуты , Сделайте это для каждого из идентификаторов в ConceptList.

В качестве альтернативы, вы можете сделать все это с помощью одного запроса:

match $c id V12345; $c isa relation; $c has attribute $a; get;

Это не вернет результатов, если V12345 не отношение, или если оно не имеет атрибутов. Если это отношение и атрибуты, вы получите один ответ на каждый атрибут.

...