专家系统是人工智能的一个分支。这些系统试图通过一组规则来获取专家的知识。大多数规则都是用自然语言表述的。但它们需要由规则引擎解释,因此它们是经典 if-then-else 形式的语句。
IF
THEN
ELSE
这个特定的专家系统将保存物质和患者。每个规则根据患者的属性给出建议,存储在数据库中。
例如:
IF (PatientWeight < 50 AND PatientSex = Male AND DaysInTreatment = 0)
THEN SUBSTANCE_X = 10
IF (PatientWeight < 50 AND PatientSex = Male AND DaysInTreatment > 0)
THEN SUBSTANCE_X = 20 + DaysInTreatment *5
我从来没有设计过这样的系统。你能给我一些阅读的起点吗?或者有什么建议吗?
在大学里,我参加了我们一起工作的课程,然后在Prolog中构建了我们自己的(非常简单的)专家系统。我想不出一个简单或优雅的 RDBMS 实现。它们中的大多数可能最终会成为 EAV 模式(这会起作用 - 我见过并使用过这样的系统,但它们并不漂亮)。谷歌上“prolog 专家系统”的第一个点击是:http ://www.amzi.com/ExpertSystemsInProlog/它看起来很长,但可能是一个很好的资源。
在阅读了 FrustratedWithFormsDesigner 的答案后,我决定采用可执行脚本方法。
专家系统由以下部分组成:
我决定使用 powershell 引擎作为推理引擎。因此知识库中的所有规则都是 powershell 脚本。推理引擎将患者的详细信息提供给脚本并输出。
我的 GUI 显示脚本。允许用户测试、更新脚本。
在我看来,对于基于任意规则的方法来说,这是唯一合理的方法。我之所以选择这个,是因为用户更有可能想要更改规则。
以下部分与数据库设计问题无关,因此与此问题不完全相关。
由于以下原因,我决定使用 powershell:
如果项目的编程语言是java,我会选择groovy。