2017-02-10 11 views
0

일부 VCARD 데이터가있는 Apache Jena 데이터베이스가 있습니다. 나는 데이터베이스의 모든 사용자에 대해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 . 
}