2016-07-15 3 views
0

CSPARQLでストリーム処理を実行しようとしています。私はround()関数を使いたい。クエリはSPARQLで正常に実行されますが、CSPARQLでクエリを実行すると、round()関数が機能しませんでした。CSPARQLでround()関数が機能しない

SPARQLコード:

SELECT ?roundlat (COUNT(?x) AS ?counter) 
WHERE { 
    ?x pos:location ?point. 
    ?point pos:lat ?lat; 
     pos:long ?long. 
    BIND (fn:round(?lat * 1000) AS ?roundlat) 
    BIND (fn:round(?long * 1000) AS ?roundlong) 
    } 
GROUP BY ?roundlat ?roundlong 
HAVING (?counter > 10) 

CSPARQLコードとして、

SELECT ?roundlat (COUNT(?x) AS ?counter) 
FROM <MY STREAM> 
WHERE ... 

FROM CSPARQLの実行結果は、xの合計カウント結果を示す以外は、ほぼ上記と同じですそれがまったくグループ化されていない場合、?roundlatの値は空白です。 SPARQLのようにfn:round()を実行できませんでした。 CSPARQLでround()関数を使用するにはどうすればいいですか?どうもありがとうございました。

+1

SPARQL 1.1キーワードを使用してみてください:ROUND(...) – AndyS

+0

ありがとうございました。 ROUND()はSPARQLでうまく動作しますが、SPARQLの高度なバージョンであるContinuous SPARQLであるC-SPARQLでストリーム処理の機能を使用したいと考えています。しかし、C-SPARQLでは動作しませんでした。 –

答えて

0

C-SPARQLは、SPARQLと比較して非常に限定された機能をサポートすることが分かっています。 ROUND()などの数学関数はサポートされていません。

関連する問題