【发布时间】:2023-04-03 21:35:01
【问题描述】:
这可能与以下问题几乎相同: Filter by language only if the object is a literal
问题是那里的答案在我的情况下不起作用。
我有这个问题:
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"))}
在那里你会看到一个属性列表,包括多种语言的“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"))}
现在您会看到只有英文版的“abstract”,但“alexa rating 2”和许多其他非字符串值都不见了。
任何人都知道如何在第一个查询中获取所有属性,然后对于文字只过滤掉英语语言?
【问题讨论】: