5

https://jena.apache.org/documentation/query/manipulating_sparql_using_arq.htmlに基づいて、構文または代数でゼロからクエリを作成する際に問題があり ます

たとえば、私は以下のクエリを持っています

 SELECT  (count(?instance) AS ?count)
 WHERE
 { ?instance <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
  <http://data.linkedmdb.org/resource/movie/film> }


(project (?count)
  (extend ((?count ?.0))
    (group () ((?.0 (count ?instance)))
      (bgp (triple ?instance <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://data.linkedmdb.org/resource/movie/film>))))) 

上記のクエリを最初から作成する方法のサンプルコードを教えてもらえますか? 構文的に構築しようとしましたが、上記の集約をエイリアスする方法を知りませんでした。

投影にエイリアス名を含む集約を含めるように誰かが少なくとも私を導くことができれば、それは非常に素晴らしいことです.

4

2 に答える 2

0

Joshua によって提案された解決策は私にとって非常に役に立ち、正しい String 出力を生成しますが、問題が含まれていることがわかりました。この線 :

query.getProject().add( Var.alloc( "count" ), new ExprAggregator( instance.asVar(), new AggCountVar( instance )));

に置き換える必要があります:

query.getProject().add( Var.alloc( "count" ), query.allocAggregate( new AggCountVar( instance ) ));

それ以外の場合、モデルに対してクエリを実行すると、「NotAVariableException: Node_variable (not a Var) found」という例外が発生します。

于 2013-11-28T15:06:37.420 に答える