5

これは機能します:

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 での結果)

なんで?

4

1 に答える 1

11

あなたの問題は、言語タグ付きのプレーンリテラルです。"Chalti Ka Naam Gaadi"@en

言語タグのないプレーンリテラルと同じではありません。"Chalti Ka Naam Gaadi"

リテラルは、字句部分、言語(多分)、またはデータ型(多分)で構成されたものです。

フィルタリングできます:FILTER ( str( ?name ) = "Chalti Ka Naam Gaadi")

str()リテラルの字句部分を返します)

ただし、クエリエンジンによっては、処理速度が大幅に低下します。

于 2010-01-06T18:52:04.420 に答える