Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SPARQL query language tag weirdness

This works:

SELECT * WHERE{
?x rdfs:label "Chalti Ka Naam Gaadi"@en .
?x foaf:name ?z .    
}

(Results on DBpedia SPARQL Explorer)

This doesn't:

SELECT * WHERE{
?x foaf:name "Chalti Ka Naam Gaadi" .
?x rdfs:label ?z .    
}

(Results on DBpedia SPARQL Explorer)

Why?

like image 241
Sharun Avatar asked Jan 06 '10 11:01

Sharun


1 Answers

Your issue is that plain literals with language tags: "Chalti Ka Naam Gaadi"@en

are not the same as plain literals without language tags: "Chalti Ka Naam Gaadi"

Literals are structured things made of a lexical part, language (maybe), or datatype (maybe).

You could filter: FILTER ( str( ?name ) = "Chalti Ka Naam Gaadi")

(str() returns the lexical part of the literal)

but, depending on the query engine, that will be much slower.

like image 173
user205512 Avatar answered Nov 16 '22 23:11

user205512