簡體   English   中英

“為所有人”使用 Apache Jenas 規則引擎

[英]"For all" using Apache Jenas rule engine

我目前正在研究一些關於 Apache Jena 的小例子。 我想展示的是通用量化。

假設我有一個球,每個球都有不同的顏色。 這些球存放在盒子里。 我現在想確定這些盒子是否只包含與混合時顏色相同的球。

所以基本上是這樣的:SAME_COLOR = ∃x∀y:{y in Box a → color of y = x}

我知道這對於 Jena 來說可能是不可能的,並且可以轉換為以下內容:SAME_COLOR = ∃x¬∃y:{y in Box a → color of y != x}

可以使用“不存在”Jena 的“NoValue”,但是,這(至少對我而言)不起作用,我不知道如何在 Jena 中翻譯上述邏輯表示。 對此有何想法?

請參閱下面的代碼,這是我能想到的唯一方法:

(?box, ex:isA, ex:Box)
(?ball, ex:isIn, ?box)
(?ball, ex:hasColor, ?color)
(?ball2, ex:isIn, ?box)
(?ball2, ex:hasColor, ?color2)
NotEqual(?color, ?color2)
->
(?box, ex:hasSomeColors, "No").


(?box, ex:isA, ex:Box)
NoValue(?box, ex:hasSomeColors)
->
(?box, ex:hasSomeColors, "Yes").

具有混合內容的框現在具有值“是”和“否”。

我遇到了同樣的問題,它更簡單。 問題是如何獲取對象集合或計數。 規則引擎中的對象。 鑒於res:subj ont:has res:obj_xxx (幾個對象),如何在規則引擎中獲取此值?

但是我剛剛找到了一個名為 Remove() 的 Primitive,這可能會對我有所啟發。

暫無
暫無

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

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