Как запросить Grakn с помощью Java? - PullRequest
0 голосов
/ 12 февраля 2019

Я просмотрел документацию по 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 Ответ

0 голосов
/ 12 февраля 2019

Ответы, предоставленные в результате запроса 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;.

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

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

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

...