如何创建只返回断言的个人的查询,而不是空白节点(匿名个人)(如果它们存在)?
这是我的 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)
...但这仍然需要在过滤掉之前计算所有空白节点。不幸的是,似乎有数千个空白节点并且查询永远不会完成。
有没有办法说明
不要费心计算空白节点
?