1

相対的な単純な正規表現クエリを実行しようとしていますが、正規表現内の変数を使用しています。sparql はこの種の連結を使用できないのでしょうか、それとも間違った方法を使用しているのでしょうか? 私がクエリしようとしているのは次のとおりです。

SELECT *
 WHERE {
    ?part local:part_start ?start .
    ?chunk local:long_region ?long_region   
    BIND(REPLACE(?long_region, ".{"+?start+"}(.{10}).*", "$1") AS ?regionX)
}

開始位置とさらに 10 文字に従って、文字の長い領域から小さな部分になります。

4

1 に答える 1

2

No+は、ほとんどの SPARQL 実装で文字列連結に使用できません。原則として、実装はこれを拡張演算子マッピングとしてサポートできますが、そうするものは知りません。

代わりに、 SPARQL 1.1準拠のエンジンを使用している場合は、標準CONCAT()関数を使用して目的を達成できます。

SELECT *
 WHERE {
    ?part local:part_start ?start .
    ?chunk local:long_region ?long_region   
    BIND(REPLACE(?long_region, CONCAT(".{", ?start, "}(.{10}).*"), "$1") AS ?regionX)
}
于 2013-11-08T10:12:53.147 に答える