2017-10-24 2 views
0

私はScalaのJenaを試してみるためにそれを試してきましたが、私は簡単な問題に遭遇しました。 var myProperty = model.createProperty("myProperty")のようなコードを持つプロパティを作成し、モデルにmodel.createLiteralStatement(model.createResource(), myProperty, "test")のようなコードを追加し、このステートメントをSPARQLクエリで取得したいとしたら、どうすればよいでしょうか?私は次のことを試してみましたJenaがSPARQLで作成したRDFのプロパティを照会

var sparqlQuery = "SELECT ?value " + 
    "WHERE " + 
    "{?subject " + "<myProperty>" + " ?value." + 
    "}" 
val query = QueryFactory.create(sparqlQuery) 
var queryExec: QueryExecution = QueryExecutionFactory.create(query, model) 
val results = queryExec.execSelect 

しかし悲しいことに、結果は空です。私はここで間違って何をしていますか?

+0

対象?あなたは後にスペースが不足していると思われるかということは、タイプミスです? – durschtnase

+1

プロパティには完全なURIを使用していますか?これは必要です – AKSW

+0

'store'とは何ですか?完全で、最小限で、実用的な例を表示してください – AKSW

答えて

3

クエリでは、<myProperty>は相対URIです。パーサーはこれを完全な(絶対)URIに展開し、現在のディレクトリをおそらく解決の基盤として追加します。

createProperty("myProperty")と一致しません。

データが絶対URI(例えばcreateProperty("http://example/myProperty")を有するべきであり、クエリが<http://example/myProperty>に同意する必要があります。

クエリに接頭辞を使用することができます。

関連する問題