2012-02-14 7 views
6

変数とリテラルを組み合わせて作成されたSPARQLトリプルでサブジェクトを作成できますか?SPARQL:変数とリテラルの結合

私の場合はこれです:

OPTIONAL 
{ 
    $object dc:identifier $identifier . 
    <info:fedora/abc:123/MODS> fedora-view:disseminationType $mods . 
    <info:fedora/abc:123/TN> fedora-view:disseminationType $tn 
} 

$オブジェクトは、次のようになります。<info:fedora/abc:123> $識別子は、次のようになります。abc:123 と私は必要なのはこれです:<info:fedora/abc:123/MODS>

私は<info:fedora/$identifier/MODS>を使用することはできません変数とリテラルを一緒に「接着」する別の方法がありますか?

答えて

6

SPARQL 1.1を使用すると、BIND()、STR()、IRI()、およびCONCAT()を組み合わせて使用​​できます。次のようなもの:

SELECT * WHERE { 
    $object dc:identifier $identifier . 
    BIND(IRI(CONCAT(STR($object), "/MODS")) AS $new) 
    $new fedora-view:disseminationType $mods . 
    $new fedora-view:disseminationType $tn . 
} 
+0

ありがとうございます!それはおそらく解決策です。私はMulgaraでSPARQLを使用していますが、CONCATのようなSPARQLのすべての機能がまだサポートされていないようです(または私は古いバージョンを使用しています)。私はそれを調べます。 –

+0

私のために働いた。 BIND(CONCAT(STR(?var1)、STR(?var2))AS $連結されているので、IRIは必要ありませんでした。 – Justas

関連する問題