簡體   English   中英

測量RDF / OWL圖中類之間的距離

[英]Measuring distances among classes in RDF/OWL graphs

也許有人可以給我一個暗示。 是否有可能測量屬於​​同一本體的2個概念/類之間的距離?

例如,假設我有天文學課程和望遠鏡課程的本體論。 兩者之間存在聯系,但它不是直接鏈接。 天文學有一個名為Science的父類,而Telescope有一個名為Optical Instrument的父類,它屬於名為Instrumentation的父類,它與一個名為Empirical Science的類有關,該類最終屬於一個名為Science的類。

所以Telescope和Astronomy之間存在間接聯系,我想找出從另一個類開始到達一個類所需的步驟數。

是否有一個簡單的SPARQL查詢可以解決這個問題? 或者有更好的方法來完成這項工作? 或者不可能使用語義Web范例找到它?

任何提示都將非常感激。

SPARQL提供了在圖中搜索任意長度路徑的功能,但沒有機制告訴您該路徑的長度。

所以你可以這樣做:

SELECT * WHERE { ?s ex:property+ ?o }

語法非常像正則表達式,所以你可以做替代,限制基數等

在我的理解中,SPARQL不包含任何遞歸構造,以便能夠測量任意長度的間接鏈接。 您可以做的最好的事情是准備一組查詢distance_1(a, b)distance_2(a, b) ...以檢查兩個概念之間的特定距離。

另一種方法是使用非SPARQL技術發現此信息,例如使用RDFlib在Python中編寫圖遍歷算法。

既然你明確提到你正在討論類並且它們將在同一個本體中,那么可以安全地假設它們將始終是連接的(因為最終它們都將是“Thing”的子類,對吧?)。 另一方面,我在括號中提到的路徑(Class1 - > ... - > Thing < - ... < - Class2)是一個微不足道的路徑,所以我假設你想找到...所有現有的兩個類之間的路徑,換句話說,兩個頂點之間的所有現有路徑。 真的嗎? 或者你在尋找最短的路徑? 你的問題在這方面不是很清楚,你能澄清一下嗎?

據我所知,沒有簡單的SPARQL構造可以列出類之間的所有路徑或最短路徑。 然而,一些語義網三重存儲帶有圖形遍歷算法,如廣度優先搜索或深度優先搜索,請參考:

您還可以找到以下項目的源代碼非常有用:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM