簡體   English   中英

在 Protege 中使用 SPARQL 推斷數據

[英]Infer data with SPARQL in Protege

我正在嘗試推斷 RDF 數據。 假設我有使用 Protege 創建的這些三元組 (RDF Turtle):

@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

:hasSpouse rdf:type owl:ObjectProperty ,
                    owl:SymmetricProperty ;
           rdfs:domain :People ;
           rdfs:range :People .

:People rdf:type owl:Class .

:Jane_Doe rdf:type owl:NamedIndividual ,
                   :People .

:John_Doe rdf:type owl:NamedIndividual ,
                   :People ;
          :hasSpouse :Jane_Doe .

Protege 中的推理器會很好地突出預期的推理,即:Jane_Doe :hasSpouse :John_Doe

門生截圖

我怎樣才能看到 SPARQL 的推斷? 如果我在 Protege(SPARQL 選項卡)中運行此查詢:

SELECT ?subject
    WHERE {?subject hasSpouse ?object .}

它顯示了斷言的三元組,而不是推斷的三元組。 我了解如何手動執行此操作,例如:

CONSTRUCT {?object ?prop ?subject }
    WHERE { ?prop rdf:type owl:SymmetricProperty .
            ?subject ?prop ?object .}

我現在會看到我期待的推斷數據,但是 1) 恕我直言,這將失去意義(即重新發明輪子)2)我不能在此選項卡中進行 2 個查詢(構建,然后選擇)。 必須有一種方法可以自動執行此操作,就像推理器一樣。

我在 Stack Overflow 上讀到一篇文章,說要在 Protege 中使用“Snap SPARQL”插件。 我試過了,但簡單的查詢不起作用(如上面的第一個)。 就像是一種不同的語言。 它是如何工作的?

那么,我怎樣才能通過 SPARQL 獲得這些 owl 屬性的好處呢? 如何在 Protege 中擁有支持 OWL 的 SPARQL? 我是否以錯誤的方式看待這個問題? 什么是正確的方法?

謝謝你的幫助。 尼古拉斯

你需要讓你的推論成為你知識的一部分。

為此,請轉到SWRL 選項卡並連續單擊按鈕

在此處輸入圖片說明

在該選項卡的底部,從左到右開始。

暫無
暫無

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

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