Вопрос

Это работает:

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() возвращает лексическую часть литерала)

но, в зависимости от механизма запросов, это будет намного медленнее.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top