如何创建一个查询,该查询仅返回断言的个体,而不返回空白节点(匿名个体)(如果存在)?
这是我的SPARQL查询:
PREFIX ont: <http://ontologies/aa-CurrentOntology#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?ind
WHERE {
?ind rdf:type ont:Size .
}
ORDER by ?ind
以下是一些结果(解决方案):
sol: ( ?ind = <http://ontologies/aa-CurrentOntology#Big> )
sol: ( ?ind = <http://ontologies/aa-CurrentOntology#Small> )
sol: ( ?ind = _:b0 )
sol: ( ?ind = _:b1 )
sol: ( ?ind = _:b2 )
sol: ( ?ind = _:b3 )… thousands more after this
我希望查询仅返回前两个结果,而不返回后四个(_:b0,_:b1等)。这些在我的输入OWL文件中不存在。我意识到空白节点可能是因为定义了本体的方式,但是有没有办法从查询结果集中消除它们?
我尝试添加:
FILTER isURI (?ind)
...但是这仍然需要在过滤掉所有空白节点之前进行计算。不幸的是,似乎有成千上万个空白节点,查询从未完成。
有没有一种说明方式
不必费心计算空白节点
?