这可能与以下几乎相同: 仅当对象是文字时才按语言过滤
问题是那里的答案在我的案例中不起作用.
我有这个问题:
SELECT ?property ?value
WHERE { <http://dbpedia.org/resource/Facebook> ?property ?value
FILTER(STRSTARTS(STR(?property), "http://dbpedia.org/property") || STRSTARTS(STR(?property), "http://dbpedia.org/ontology"))}
Run Code Online (Sandbox Code Playgroud)
在那里你会看到许多语言的属性列表,包括"alexa rating 2"和"abstract".
如果我在上面提到的问题中尝试建议的解决方案:
SELECT ?property ?value
WHERE { <http://dbpedia.org/resource/Facebook> ?property ?value
FILTER(STRSTARTS(STR(?property), "http://dbpedia.org/property") || STRSTARTS(STR(?property), "http://dbpedia.org/ontology"))
FILTER(!isLiteral(?value) || langMatches(lang(?value), "EN"))}
Run Code Online (Sandbox Code Playgroud)
现在你会看到只有"抽象"的英文版本,但"alexa rating 2"和许多其他非字符串值都消失了.
任何知道如何获得所有属性的人如第一个查询,然后文字只过滤掉英语语言?
此查询有效:
select ?value {
<http://dbpedia.org/resource/Henrik_Ibsen> dbpedia-owl:abstract ?value
filter langMatches(lang(?value),"en")
}
Run Code Online (Sandbox Code Playgroud)
为了获得缩略图,我假设我可以简单地更改为dbpedia-own:thumbnail,如下所示:
select ?value {
<http://dbpedia.org/resource/Henrik_Ibsen> dbpedia-owl:thumbnail ?value
filter langMatches(lang(?value),"en")
}
Run Code Online (Sandbox Code Playgroud)
但它返回空值.这些dbpedia-owl:abstract
和dbpedia-owl:thumbnail
属性都存在:http:
//dbpedia.org/page/Henrik_Ibsen
有人看到查询有什么问题吗?