我有这个查询来返回有效哲学家的时代:
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX dbpprop: <http://dbpedia.org/property/>
SELECT ?philosopher ?era
WHERE {
?philosopher a dbpedia-owl:Philosopher ;
dbpprop:era ?era .
}
返回的
?era
示例值为:我只想返回作为资源的时代。我试过了:
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX dbpprop: <http://dbpedia.org/property/>
SELECT ?philosopher ?era
WHERE {
?philosopher a dbpedia-owl:Philosopher ;
dbpprop:era ?era .
?era a <http://dbpedia.org/resource>
}
但这没有任何返回。如何过滤掉非资源时代?
最佳答案
而不是添加额外的三重模式,你实际上想要使用 FILTER
和 ISURI
函数,例如,
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX dbpprop: <http://dbpedia.org/property/>
SELECT ?philosopher ?era
WHERE {
?philosopher a dbpedia-owl:Philosopher ;
dbpprop:era ?era .
FILTER(ISURI(?era))
}
关于rdf - 如何过滤掉 DBpedia SPARQL 查询中的非资源值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17381341/