Странность тега языка запросов SPARQL
-
19-09-2019 - |
Вопрос
Это работает:
SELECT * WHERE{
?x rdfs:label "Chalti Ka Naam Gaadi"@en .
?x foaf:name ?z .
}
(Результаты в DBpedia SPARQL Explorer)
Это не:
SELECT * WHERE{
?x foaf:name "Chalti Ka Naam Gaadi" .
?x rdfs:label ?z .
}
(Результаты в DBpedia SPARQL Explorer)
Почему?
Решение
Ваша проблема в том, что простые литералы с языковыми тегами: "Chalti Ka Naam Gaadi"@en
не то же самое, что простые литералы без языковых тегов: "Chalti Ka Naam Gaadi"
Литералы — это структурированные вещи, состоящие из лексической части, языка (возможно) или типа данных (возможно).
Вы можете фильтровать: FILTER ( str( ?name ) = "Chalti Ka Naam Gaadi")
(str()
возвращает лексическую часть литерала)
но, в зависимости от механизма запросов, это будет намного медленнее.
Не связан с StackOverflow