3
我試圖用找到與一個RDF自我指涉的循環:如何使用SPARQL查找閉環?
SELECT ?sbj
# query pattern
WHERE {
?sbj skos:broader+ ?sbj .
}
,當我在這些RDF運行這個三元組:
http://www.example.com/Concept/0001 http://www.w3.org/2004/02/skos/core#broader http://www.example.com/Concept/0002
http://www.example.com/Concept/0002 http://www.w3.org/2004/02/skos/core#broader http://www.example.com/Concept/0003
http://www.example.com/Concept/0003 http://www.w3.org/2004/02/skos/core#broader http://www.example.com/Concept/0001
我得到:
http://www.example.com/Concept/0003
http://www.example.com/Concept/0001
http://www.example.com/Concept/0002
http://www.example.com/Concept/0002
http://www.example.com/Concept/0003
http://www.example.com/Concept/0001
http://www.example.com/Concept/0001
http://www.example.com/Concept/0002
http://www.example.com/Concept/0003
和如果我在這些RDF三元組上運行相同的查詢:
http://www.example.com/Concept/0001 http://www.w3.org/2004/02/skos/core#broader http://www.example.com/Concept/0002
http://www.example.com/Concept/0002 http://www.w3.org/2004/02/skos/core#broader http://www.example.com/Concept/0003
http://www.example.com/Concept/0003 http://www.w3.org/2004/02/skos/core#narrower http://www.example.com/Concept/0001
我得到:
http://www.example.com/Concept/0003
http://www.example.com/Concept/0002
http://www.example.com/Concept/0003
在那裏,因爲我希望它返回空。
它看起來像skos:更寬+似乎允許skos以外的屬性:更廣泛,更像ANY *,skos:更寬,ANY *或其他....是正確的行爲嗎?
好,我用:
Jena: VERSION: 2.6.4
Jena: BUILD_DATE: 2010-12-12T16:56:15+0000
ARQ: VERSION: 2.8.7
ARQ: BUILD_DATE: 2010-12-12T14:07:48+0000
這是一箇舊版本的耶拿。 +的實現和語義已經發生了很大的變化,但是當前版本的答案看起來並不正確。您可以通過https://issues.apache.org/jira/browse/JENA – AndyS
提供一個有效工作示例(法律數據,完整查詢)的錯誤報告。謝謝!我在最新版本的Jena(2.10.0快照)上運行它,並且它工作正常,所以可能不需要提交錯誤...但是它會導致進一步的問題:Jena是否意識到OWL?我做了skos:更廣泛和skos:更窄,並將它們定義爲owl#TransitiveProperty和owl:inverseOf等,並創建了一個類似的閉環,Jena沒有發現它! – Sukii