0

假设我想找到通过属性路径与对象连接的所有主题。连接可以表示为:

Subject - prop 1 -> A - prop 2 -> B - prop 3 -> Object

这可以通过非常简单的 SPARQL 查询来实现:

SELECT ?s WHERE {
    ?s prop1/prop2/prop3 ?o .
    VALUES ?o { <uri1> ... <urin> }
}

但我也想包括使用 A 和/或 B 的子类的路径:

Subject - prop 1 -> subclassOfA - prop 2 -> subclassOfB - prop 3 -> Object

为了实现这一点,我在路径中添加了中间“sublassOf”属性:

SELECT ?s WHERE {
    ?s prop1/<subclassOf>*/prop2/<subclassOf>*/prop3 ?o .
    VALUES ?o { <uri1> ... <urin> }
}

这在我在 Sesame 2.7.2 中的数据集上运行得非常快,但是在迁移到 rdf4j 2.5.2 之后,这个查询就挂了。问题是这是否是以这种方式查询的正确方法,还是有更有效的方法?什么会导致新版本出现如此显着的性能下降?

4

0 回答 0