4

我有这个查询来返回有效的哲学家的时代:

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>
}

但这什么也没返回。如何过滤掉非资源时代?

4

1 回答 1

4

而不是添加一个额外的三元组模式,你实际上想使用 aFILTER函数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))
}
于 2013-06-29T16:03:28.303 回答