2012-02-14 92 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功能都支持(或者我正在使用舊版本)。我會研究它。 – 2012-02-15 01:25:59

+0

爲我工作。我不需要IRI,所以這已經足夠了: BIND(CONCAT(STR(?var1),STR(?var2))AS $連接) – Justas 2015-02-02 03:39:34