SPARQL: объединение переменных с литералами - PullRequest
6 голосов
/ 14 февраля 2012

Можно ли создать тему в тройке 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>, но есть ли другой способ «склеить» переменные и литералы вместе?

1 Ответ

8 голосов
/ 15 февраля 2012

С 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 .
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...