Вам на самом деле не нужен подзапрос для этого.Все, что вам нужно, это ДОПОЛНИТЕЛЬНЫЙ шаблон в сочетании с выражением BIND.
Дополнительный шаблон должен специально искать внутреннюю ссылку, например:
OPTIONAL {
?vcard vcard:hasURL ?internal .
?internal vcard:url ?internalLink .
FILTER(CONTAINS(STR(?internalLlink), "internal.url")
}
или более кратко:
OPTIONAL {
?vcard vcard:hasURL/vcard:url ?internalLink .
FILTER(CONTAINS(STR(?internalLlink), "internal.url")
}
Этот пункт будет связывать значение с ?internalLink
, если такая ссылка существует, и в противном случае оставит его свободным.Чтобы затем преобразовать это в выходную форму, которую вы хотите, вы можете добавить следующее условное BIND
-класс:
BIND (IF(BOUND(?internalLink), "Yes", "No") as ?internalLinkExists)
И, наконец, наконец, добавить следующее в ваш CONSTRUCT
-класс:
?publication fb:linkInternalExists ?internalLinkExists .