1

如何创建只返回断言的个人的查询,而不是空白节点(匿名个人)(如果它们存在)?

这是我的 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)

...但这仍然需要在过滤掉之前计算所有空白节点。不幸的是,似乎有数千个空白节点并且查询永远不会完成。

有没有办法说明

不要费心计算空白节点

?

4

0 回答 0