2012-02-14 3 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> $ 식별자는 다음과 같습니다 <info:fedora/abc:123/MODS>

내가 <info:fedora/$identifier/MODS>을 사용할 수 없습니다 abc:123이와 내가 필요한 것은 이것이다 변수와 리터럴을 함께 '붙이기'위한 또 다른 방법이 있습니까?

답변

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

고마워요! 그것은 아마도 해결책 일 것입니다. 나는 SPARQL을 Mulgara와 함께 사용하고 있으며, CONCAT과 같은 SPARQL의 모든 기능이 아직 지원되지는 않는다 (또는 이전 버전을 사용하고있는 것 같음). 나는 그것을 들여다 볼 것이다. –

+0

나를 위해 일했습니다. IRI가 필요하지 않으므로 충분했습니다. BIND (CONCAT (STR (? var1), STR (? var2)) AS $ concatenated) – Justas