Как показано в этом вопросе с аналогичным названием, я хотел бы получить ресурс dbpedia с помощью зная часть своего имени. Я новичок, когда дело доходит до SPARQL и тому подобного, но пример в вопросе мне очень помог, так как автор искал «Румыния», и человек, отвечавший на него, подключил его с запросом Sparql для выполнения работы. Это хорошо, но вот в чем дело.
В этом примере они уже «знали», что Румыния является страной, отсюда
?c a dbpedia-owl:Country ;
в предложении WHERE. Полный запрос sparql равен
SELECT ?c
WHERE {
?c a dbpedia-owl:Country ;
foaf:name "Romania"@en .
FILTER NOT EXISTS {?c dbpedia-owl:dissolutionYear ?y}
}
. Но этот вопрос не совсем полностью отвечает нашим требованиям, поэтому поиск ЛЮБОГО ресурса по его имени, «имя» - это фактическое имя ресурса или его часть, независимо от его типа (rdf:) . Целью будет поиск «чего угодно», просто зная имя или его часть.
Я провел небольшое исследование, прежде чем задать вам этот вопрос, и я уже знаю, что проблема "части имени" может быть решена с помощью функции bif (плохой способ, поскольку она не совместима со sparql) или CONTAINS, но я не нашел ни одного примера, показывающего, как его использовать.
Давайте теперь предположим, что среди ресурсов dbpedia есть «слово», которое нужно искать, это слово было бы введенным пользователем. И назовем его «ВХОД».
Я могу представить, что запрос будет выглядеть так:
SELECT ?something WHERE
{
?something a (dbpedia Resource).
CONTAINS(?something,"INPUT")
}
Мой главный вопрос касается двух основных аспектов:
Итак, знает ли кто-нибудь этот «главный запрос», чтобы получить ресурс, указав его имя или его часть? (Пример - предоставление «Обамы» и получение результатов не только для Барака, но и для Мишель).
Заранее благодарю.