Как запросить Grakn с помощью Java?

Я просмотрел документацию по Java API для запроса базы данных Grakn.

Grakn.Transaction readTransaction = session.transaction(GraknTxType.READ);
GetQuery query = Graql.match(var("p").isa("person")).limit(10).get();
Stream<ConceptMap> answers = query.withTx(readTransaction).stream();
answers.forEach(answer -> System.out.println(answer.get("p").id()));

Это печать идентификатора, но я хочу увидеть данные, имя, связанное с человеком. Я хочу видеть содержимое в результате. Это просто показывает идентификатор.

1 ответ

Решение

Ответы, предоставленные в результате запроса Graql, представляют собой набор переменных (и их значений), которые вы указали в самом запросе.

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

GetQuery query = Graql.match(var("p").isa("person").has("name", var("n"))).limit(10).get();

Graql эквивалентное существо match $p isa person, has name $n; get;,

Теперь вы можете использовать методы, доступные в Concept API, для извлечения информации, доступной по каждой переменной.

В этом случае переменная n держит attribute и вы хотите получить его value(), вот так:

answers.forEach(answer -> System.out.println(answer.get("n").asAttribute().value()))

Другие вопросы по тегам