显然是不必要的SPARQL过滤器

时间:2015-05-06 08:26:11

标签: sparql linked-data

将图http://example.org/视为:

@prefix foaf:<http://xmlns.com/foaf/0.1/purl>.
<uri:alice> foaf:name "Alice".
<uri:bob> foaf:name "Bob".
<uri:carl> foaf:name "Carl".

为什么这个SPARQL查询有效:

PREFIX foaf:<http://xmlns.com/foaf/0.1/purl>
SELECT *
WHERE { 
    GRAPH <http://example.org/> {
        ?model_ic foaf:name ?name.
        FILTER (?name = "Bob")
    }
}

虽然这个不是(好吧,从技术上来说它有效,但会返回0场比赛)

PREFIX foaf:<http://xmlns.com/foaf/0.1/purl>
SELECT *
WHERE { 
    GRAPH <http://example.org/> {
        ?model_ic foaf:name "Bob".
    }
}

1 个答案:

答案 0 :(得分:1)

如果对名称有任何其他附件而不是字符串,则可能会出现问题。例如,foaf:name通常附加一种语言。尝试:

PREFIX foaf:<http://xmlns.com/foaf/0.1/purl>
SELECT *
WHERE { 
GRAPH <http://example.org/> {
    ?model_ic foaf:name "Bob"@en.
}
}