c# - Java 和 C# 环境中基于规则的系统

标签 c# java rules

我需要构建一个“基于规则”的系统,可以在 C# 和 Java 中运行和开发(对于化学应用程序)。系统需要能够(通过现有库)获取对象的计算属性并根据这些值做出决策。我不确定系统会是什么样子,但规则不需要在形式上保持一致(我们使用了很多启发式方法)。规则应尽可能外部化,以便用户和开发人员可以修改它们,而无需了解引擎(引擎应该是开源的并在两个平台上运行)。该系统可能会通过一组有限的类似自然语言的命令来运行。将会有一个适应的元素 - 可以添加新的对象(或至少词汇)。

这并不像听起来那么棘手 - 30 多年前使用 FORTRAN 取得了很大进展,但该领域已经处于休耕状态。我将不胜感激地指出我们可以在入口开销适中的情况下进行实验的方法。可能有效的方法包括:

  1. 序言
  2. OWL 本体
  3. 决策树
  4. 规则ML
  5. 基于文本的游戏

编辑 问题的主要方面是找到一个基于规则的系统(Java C# 的提及是次要的,只是为了防止答案可能会说“Windows有一个内置系统”。)请不要回答将 Java 转换为 C# 的方法;我想要一种基于规则的方法,原则上可以在任何一个上实现。到目前为止,只有一个(或两个)答案真正解决了规则方面的问题。

最佳答案

您可以查看 Drools(现在也称为 JBoss Rules)。这是一个已经存在很长时间的 Rete 引擎实现,现在也已移植到 .NET,因此它应该满足您能够在 Java 和 C# 中使用的要求。我不知道实现有多接近 - 您可能会发现自己仅限于功能的一个子集。

JBoss 规则:http://jboss.org/drools/

Drools.NET:http://droolsdotnet.codehaus.org/

不用担心 JBoss 站点上的业务重点,Drools 是一个通用的规则引擎实现。

关于c# - Java 和 C# 环境中基于规则的系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1558586/

相关文章:

c# - 使用联锁用法

c# - Entity Framework 中 IMigrationMetadata 接口(interface)的用途和语义

java - JHipster - 隐藏@Autowired/@Inject

java - 使用Intellij生成JAR文件失败

java - 无法使用具有代理支持的 httpclient 上传文件

先决条件更改后 Cmake 不重建依赖项

c++ - 如何将文件写入当前目录而不是 bazel-out

c#悖论: Converting List to Array is Iterating more efficient?

arrays - 验证数组中的 Laravel 嵌套规则

c# - 无法获取 xml 文件中根元素的子元素