显然是不必要的 SPARQL 过滤器

apparently unnecessary SPARQL filter

给定图表 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")
    }
}

而这个没有(好吧,从技术上讲它有效,但 returns 0 个匹配)

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

如果名称有任何其他附件而不仅仅是字符串,您可能会遇到问题。例如,foaf:name 通常附有语言。尝试:

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