2014-01-28 63 views
-2

想象一下,您有多個查詢圖可能共享或不共享某些節點(即有一些共同的子圖),我們如何將它們組合到一個查詢圖中。請注意,我並不試圖在這裏彙總這些查詢圖的結果,我只想簡單地查詢一些查詢,並在可能的情況下將它們合併到一個查詢圖中。將SPARQL查詢圖合併爲一個

編輯:我實際上想到了更進一步的問題,我正在談論多種具有常見三重模式的查詢。我想將它們合併爲一個查詢。

編輯:正如指出的那樣,這將是與樣本查詢更容易地說明這一點,讓我們考慮以下查詢:

查詢1:

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

QUERY2:

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

什麼是「查詢圖」?你在談論命名圖嗎?你在問SPARQL查詢中的多個圖模式嗎? –

+1

根據你對邁克爾答案的評論,這聽起來像後者,但這只是將它們連接起來的問題。如果你有一個模式:':喜歡'人'和模式二:':吃食物',你可以將它們合併爲:':喜歡?人。 :吃?食物.'。你能舉一個你想要做什麼的例子嗎? –

+0

我認爲我最初解釋它的方式令人困惑,我正在談論多種具有常見三重模式的查詢和一些可能不常見的三重模式。我想創建一個代表它們的查詢。 –

回答

0

我認爲你要找的是specify the active graph對查詢進行評估的能力。基本上,您使用FROM和/或FROM NAMED來告訴查詢引擎您想要在評估查詢時考慮的圖表。

+0

我知道你在說什麼,但這不是我正在尋找的!從理論角度來看,SPARQL查詢是一個與RDF圖匹配的小圖模式。我有幾個這些查詢圖如何將它們合併到一個查詢圖中。我沒有嘗試指定從哪個圖表查詢。 –