Я хочу использовать поиск по свободному тексту в dbpedia и пытаюсь найти запрос, найденный на веб-сайте W3C: https://www.w3.org/2009/Talks/0615-qbe/
Если я попытаюсь выполнить запрос БЕЗ префикса bif:, закомментировав его, я получу сообщение об ошибке, показанное под запросом:
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX type: <http://dbpedia.org/class/yago/>
PREFIX prop: <http://dbpedia.org/property/>
# PREFIX bif: <http://www.openlinksw.com/schemas/bif#>
SELECT ?lbl ?est
WHERE {
?country rdfs:label ?lbl .
FILTER(bif:contains(?lbl, "Republic")) .
?country a type:Country108544813 ;
prop:establishedDate ?est .
FILTER(?est < "1920-01-01"^^xsd:date) .
}
Ошибка: строка 9, ошибка разбора: сопоставление пространства имен для "bif" не определено
при расширении QName "BIF: содержит".
[тип условия: sparql-lexer-error-namespace-mapping-not -fined]
хорошо: это имеет смысл, вам нужно определить свое пространство имен. Итак, позвольте мне повторить тот же запрос, используя префикс bif:, который я нашел на веб-сайте Virtuoso (и в других местах)
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX type: <http://dbpedia.org/class/yago/>
PREFIX prop: <http://dbpedia.org/property/>
PREFIX bif: <http://www.openlinksw.com/schemas/bif#>
SELECT ?lbl ?est
WHERE {
?country rdfs:label ?lbl .
FILTER(bif:contains(?lbl, "Republic")) .
?country a type:Country108544813 ;
prop:establishedDate ?est .
FILTER(?est < "1920-01-01"^^xsd:date) .
}
Теперь я получаю другую ошибку: кажется, что пространство имен bif: является защищенным именем Virtuoso
Так что, похоже, я не могу жить с bif: или без: bif. Кто-нибудь видел эту ошибку раньше? Спасибо.
Кстати: меня действительно не волнует bif: что я действительно хочу, так это делать запросы в свободном тексте к dbpedia. Так что любая альтернатива приветствуется. ДА: на SO есть более ранние вопросы по этому поводу, но обратите внимание, что каждый из этих ответов также содержит bif :.
Добавлено позже: просто чтобы быть уверенным, что я изменил bif: на bof: и теперь я получаю новую ошибку, которая показывает, что больше не является допустимым оператором. Увидеть ниже. Так или иначе: я думаю, что единственное, что меня волнует, это то, как: как вы делаете запросы в свободном тексте к dbpedia: -)