簡體   English   中英

從生產者-消費者 OWL model 實現和檢索信息

[英]Realizing and Retrieving information from a producer-consumer OWL model

我在 OWL 中建模了以下場景:

Producer ----producesResource---> Resource <------consumesResource ---- Consumer

ProducerResourceConsumer是 OWL 類, producesResourceconsumesResource是 object 屬性。 該場景非常直觀,因為每個生產者生產一個或多個資源,由一個或多個消費者消耗。 相反,每個消費者可以消耗一個或多個資源。 本體相應地填充有實例/個體。

我想檢查是否存在不是由生產者生產的消費者消費的資源。 什么是通過以下方式獲取此信息的優雅方式:

  1. 在 SPARQL 中查詢
  2. SHACL 形狀圖(如果可能)。

在 SPARQL 中可以使用 NOT BOUND 過濾器進行否定,或者在 SPARQL 1.1 中使用 MINUS 更容易:

SELECT ?resource WHERE
{
  ?resource a :Resource.

  ?consumer a :Consumer;
    ?consumer :consumesResource ?resource.

 MINUS {?producer a :Producer; :producesResource ?resource.}
}

您還可以使用ASK獲得 boolean 結果,但SELECT允許更輕松地調試以驗證您的查詢是否正常工作。

由於 SHACL 允許集成 SPARQL 查詢,這也回答了您的第二個問題,但在這種情況下,單獨使用 SPARQL 查詢會更容易。

暫無
暫無

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

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