2017-02-10 2 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 . 
} 
関連する問題