2017-02-10 1 views
0

У меня есть база данных Apache Jena с некоторыми данными VCARD. Я хочу сформулировать запрос, который будет возвращатьКак получить псевдонимы и электронные письма всех людей в базе данных с помощью SPARQL?

  1. адрес электронной почты и
  2. ник

для каждого пользователя в базе данных.

Я попытался это:

SELECT ?nick ?email 
WHERE { 
    ?x <http://www.w3.org/2001/vcard-rdf/3.0#EMAIL> ?email, 
    ?x <http://www.w3.org/2001/vcard-rdf/3.0#N> ?n { 
     ?n <http://www.w3.org/2001/vcard-rdf/3.0#NICKNAME> ?nick 
    } 
} 

Когда я пытаюсь запустить этот запрос, я получаю следующее сообщение об ошибке:

org.apache.jena.query.QueryParseException: Encountered " <IRIref> "<http://www.w3.org/2001/vcard-rdf/3.0#N> "" at line 4, column 32. Was expecting one of: "values" ... "graph" ... "optional" ... "minus" ... "bind" ... "service" ... "filter" ... "{" ... "}" ... ";" ... "," ... "." ...

Что правильная версия запроса?

ответ

2

Запятые не разрешены в конце тройки в том виде, в котором вы ее использовали, и внутренний групповой шаблон выглядит ненужным.

попробовать что-то вроде этого -

SELECT ?nick ?email 
WHERE { 
    ?x <http://www.w3.org/2001/vcard-rdf/3.0#EMAIL> ?email . 
    ?x <http://www.w3.org/2001/vcard-rdf/3.0#N> ?n . 
    ?n <http://www.w3.org/2001/vcard-rdf/3.0#NICKNAME> ?nick . 
} 
Смежные вопросы