CLIPS LHS 匹配多槽

标签 clips expert-system inference-engine

我为专家系统编写了这条规则:

    (defrule wild chicory
      (attribute (name habitat) (value sea montain grassland unknown))   
=>
      (assert (plant "Cichorium_Intybus"))
    )

但是,我不希望栖息地的值与我给出的所有值相匹配,而是仅与至少一个值相匹配。 我想知道我应该怎么做。我可以这样做:

(defrule wild chicory
          (or (attribute (name habitat) (value sea)) 
              (attribute (name habitat) (value mountain))
              (attribute (name habitat) (value grassland))
              (attribute (name habitat) (value unknow))
          )
          =>
          (assert (plant "Cichorium_Intybus"))
)

但是我想知道是否有更好的解决方案。谢谢

最佳答案

如果 value 是单个字段槽,请这样做:

(defrule wild chicory
  (attribute (name habitat) (value sea | mountain | grassland | unknown)) 
  =>
  (assert (plant "Cichorium_Intybus")))

如果 value 是多字段槽,请这样做:

(defrule wild chicory
  (attribute (name habitat) (value $? sea | mountain | grassland | unknown $?)) 
  =>
  (assert (plant "Cichorium_Intybus")))

关于CLIPS LHS 匹配多槽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39237501/

相关文章:

jboss - 如何将 JBoss/DROOLS 规则转换为 CLIPS clp

tensorflow - openVINO模型优化器可以用来转换tensorflow和nn模型吗?

android - 如何在 Android Studio 中使用 Drools 或 CLIPS 或其他工具构建一个简单的独立专家系统?

python-3.x - CLIPS Python3 CLIPSError

CLIPS 规则以降序打印消息

drools - 关于规则引擎的神话是什么?

clips - Rete网络没有beta网络?

java - 在 Drools 中为组执行单个规则

sparql - 使用 SPIN 规则推断匿名父类(super class)

python - OpenVino 导入错误 : undefined symbol: _ZTVN15InferenceEngine5TBlobIhSt9enable_ifILb1EvEEE