SPARQL странный тэг языка запросов - PullRequest
3 голосов
/ 06 января 2010

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

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 )

Почему?

1 Ответ

10 голосов
/ 06 января 2010

Ваша проблема в том, что простые литералы с языковыми тегами: "Chalti Ka Naam Gaadi"@en

- это не то же самое, что обычные литералы без языковых тегов: "Chalti Ka Naam Gaadi"

Литералы - это структурированные вещи, состоящие из лексической части, языка (возможно) или типа данных (возможно).

Вы можете фильтровать: FILTER ( str( ?name ) = "Chalti Ka Naam Gaadi")

(str() возвращает лексическую часть литерала)

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

...