Как запросить 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()))