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



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!