将SPARQL查询图合并为一个

时间:2014-01-28 17:29:14

标签: rdf sparql jena semantic-web

想象一下,您有多个查询图表可能会或可能不会共享某些节点(即有一些共同的子图),我们如何将它们组合到单个查询图中。请注意,我不是要在这里聚合这些查询图的结果,我只是想采取一些查询,并尽可能将它们合并到一个查询图中。

编辑:我实际上想到了这一点,我正在讨论具有常见三重模式的多个查询。我想将它们组合到一个查询中。

编辑:正如所指出的,使用示例查询来说明这一点会更容易,所以让我们考虑以下查询:

查询1:

SELECT ?X   
WHERE
{
    ?X rdf:type ub:GraduateStudent .
    ?X ub:takesCourse http://www.Department0.University0.edu/GraduateCourse0
}

查询2:

SELECT ?X, ?Y, ?Z
WHERE
{
    ?X rdf:type ub:GraduateStudent .
    ?Y rdf:type ub:University .
    ?Z rdf:type ub:Department .
    ?X ub:memberOf ?Z .
    ?Z ub:subOrganizationOf ?Y .
    ?X ub:undergraduateDegreeFrom ?Y
}

合并的查询将写成:

SELECT ?X, ?Y, ?Z
WHERE
{
    ?X rdf:type ub:GraduateStudent .
    optional {?Y rdf:type ub:University .}
    optional {?Z rdf:type ub:Department .}
    optional {?X ub:memberOf ?Z .}
    optional {?Z ub:subOrganizationOf ?Y .}
    optional {?X ub:undergraduateDegreeFrom ?Y} 
    optional { ?X ub:takesCourse http://www.Department0.University0.edu/GraduateCourse0}

}

或者可能重写为联合查询?可以使用某种API吗?

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找的是能够specify the active graph评估查询的能力。基本上,您使用FROM和/或FROM NAMED告诉查询引擎您在评估查询时要考虑的图表。