【问题标题】:Java rule engine for Android [closed]适用于 Android 的 Java 规则引擎 [关闭]
【发布时间】:2017-01-18 01:51:47
【问题描述】:

我正在尝试开发一个可以诊断狗疾病的 Android 应用。我已经有了由60条规则组成的知识库,可以诊断15种疾病,最小的规则大约有10种情况。

我搜索了如何解决这个问题,我认为使用与反向链接一起工作的规则引擎是要走的路。问题是每个规则引擎,似乎只有在我在触发规则之前提供所有输入时才有效。

既然是诊断疾病,我认为方法是向用户提问等待答案然后验证规则,排除与给定条件不匹配的规则。然后根据剩余规则请求下一个条件。

示例:规则 1

if puppy & male & scratching himself... then disease1

问题是这样的

1:The dog is a puppy?
2:The dog is male?
3:The dog is scratching himself?

使用哪个规则引擎,我可以有这种行为吗?

【问题讨论】:

  • 我认为这是一个有效的问题。如果你用谷歌搜索 Java 的规则引擎,你会得到大量的点击,但大多数工具已经不存在或者已经很老了。我可以想象您希望从具有 Java 中基于规则的系统经验的人那里开始。

标签: java android rule-engine expert-system


【解决方案1】:

您需要一个调查框架或组件作为您的主要基础,而不是规则引擎。或者,您可能需要使用规则引擎评估一个或多个规则,以确定接下来要加载哪个问题或一组问题。

【讨论】:

  • “诊断狗疾病”听起来像是基于规则的系统的经典案例。
  • 自从我进入现在的工作以来,我已经研究了很多这个主题,并且还尝试使用和测试了一些规则引擎,例如移动环境中的 Drools。由于内存、APK 大小和电池限制,加上我遇到的关于 NoClassDefError 的 JVM Harmony 性质的问题,我结束了自己构建一个粗糙而原始的正向引擎,只有 20k 和开源它在android-arsenal.com/details/1/1785 欢迎贡献!跨度>
【解决方案2】:

Drool 在 Android 上运行良好,但仅限于 Android KitKat 4.4 版本。社区尚未支持 ART 之后的后续 Android 版本。

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
  • 问题是“哪个基于规则的工具”。答案是“流口水”。如果你愿意,我可以删除链接。问题中没有任何部分要求“如何”或示例,否则我会给出它。
  • @Christine 您有任何示例或教程吗?我阅读了文档,并尝试编译示例,但无法使其工作。
  • 我已经有一段时间没有使用 Drools 了,但我确实让它在 Android 上运行。我目前不在可以访问旧代码的地方。如果我找到了,我会告诉你的。 Drools 有许多组件:它有一个推理引擎,它有创建规则的工具。这是您需要的推理引擎。
  • 谢谢,我尝试了一个使用 Drools 5.1 的 CDSS 示例并且可以正常工作,但我仍在尝试找出如何使推理要求用户成为评估规则的事实。例如,要评估规则 1,我需要知道这只狗是否是小狗,但我还没有该信息,因此请向用户询问该信息。然后要评估规则 1 的第二个条件,必须知道它是男性还是女性,但也没有此信息,因此请询问用户。以此类推。
猜你喜欢
  • 2019-04-24
  • 2011-01-11
  • 1970-01-01
  • 2016-03-04
  • 1970-01-01
  • 2011-12-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-06
相关资源
最近更新 更多