想象一下,您有多个查询图表可能会或可能不会共享某些节点(即有一些共同的子图),我们如何将它们组合到单个查询图中。请注意,我不是要在这里聚合这些查询图的结果,我只是想采取一些查询,并尽可能将它们合并到一个查询图中。
编辑:我实际上想到了这一点,我正在讨论具有常见三重模式的多个查询。我想将它们组合到一个查询中。
编辑:正如所指出的,使用示例查询来说明这一点会更容易,所以让我们考虑以下查询:
查询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吗?
答案 0 :(得分:0)
我认为您正在寻找的是能够specify the active graph评估查询的能力。基本上,您使用FROM
和/或FROM NAMED
告诉查询引擎您在评估查询时要考虑的图表。