我有一個關於它的幾個關係的RDF文件。一些關係傳遞性關閉。我之前發佈了一個關於如何在這個link中在Sparql中構建屬性傳遞閉包的問題。現在我可以用屬性的傳遞閉包來構造新的三元組,這意味着在整個路徑上都被提取出來。 例如,有一個part_of
關係,如果?a
是part_of
?b
,並且?b
是part_of
?c
,所以我們可以推斷,a
是part_of
?c
。然後我這樣做了我的查詢:如何在SPARQL中構造結合兩個TRANSITIVE CLOSURE的新三元組?
construct {?a :part_of ?b} where {?a :part_of+ ?b . filter(?a != ?b) }
然後我有另一個傳遞閉包。例如,有一個is_a
關係,如果?a
is_a
?b
,並且?b
is_a
?c
,所以我們可以推斷,?a
is_a
?c
。然後,我做出這樣的查詢:
construct {?a :is_a ?b} where {?a :is_a+ ?b . filter(?a != ?b)}
後來才知道有另一個條件是包括這兩個傳遞閉包: 例如,如果?a
part_of
?b
,並且?b
is_a
?c
,所以我們可以推斷,?a
part_of
?c
。那我可以這樣做我的查詢嗎?
construct {?a :part_of ?c}
where {
?a :part_of+ ?b .
?b :is_a+ ?c .
filter(?a != ?c)
}
這更清楚在一個新的問題比在評論解釋。謝謝!這非常明確和具體! – 2014-12-02 19:28:28