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