У меня есть некоторые графические имена, хранящиеся в Virtuoso, и я хочу найти тот, который соответствует наибольшему числу терминов из предоставленного списка.Альтернативы запросу SPARQL с большим количеством UNION
Мой запрос строится программно и выглядит следующим образом:
SELECT DISTINCT ?graph (count(DISTINCT ?match) as ?matches)
WHERE {
GRAPH ?graph {
{?match rdf:label "term 1"}
UNION {?match rdf:label "term 2"}
UNION {?match rdf:label "term 3"}
...
}
}
ORDER BY DESC(?matches)
Каждый член становится другое предложение UNION.
Есть ли лучший способ сделать это? Запрос становится длинным и уродливым, и Virtuoso жалуется, когда слишком много терминов.
Это выглядит намного лучше, спасибо. –
Альтернативой является использование новых значений VARUE SPARQL 1.1. Не уверен, что это было доступно при ответе, но может стоить обновление ответа. –