2010-09-02 146 views
1

对不起,英文不好。什么样的引擎用于配置规则检查?

我有一个配置应用程序,用户可以“手动”选择或消除系统的某些功能,其他功能必须由应用程序使用规则自动选择或消除。

的规则的形式为:
一个IMPLIESb(如果特征一个被选择,则特征b必须选择)。
bCONFLICTSÇ(如果特征b被选择,则特征Ç必须消除)。
dANDËIMPLIES˚F(如果特征d,并设有Ë被选择,则特征˚F必须选择)。
等...

一些规则可能会导致冲突,例如:
1)一个IMPLIESb
2)一个IMPLIESÇ
3)b冲突c
如果功能选择了,则无法确定功能c的状态(选定/删除),并且我必须能够向用户显示涉及的规则。

我正在寻找关于使用什么样的引擎(求解器,检查器等)的建议。最好是我可以使用.NET语言的开放源代码软件。

感谢

今夜

+0

这个问题可能会帮助你http://bit.ly/aaEDeI – TheVillageIdiot 2010-09-02 07:54:28

回答

0

听起来像是你正在寻找一些logic programming solution。也许F#是你的选择,但如果你只是需要它来检查配置规则,这是矫枉过正。

如果你想自己实现它:对于简单的规则if-Statements也可以完成这项工作(不,用简单的方法解决简单问题并不是一件耻辱)。如果检查规则复杂,易变或甚至动态,请参阅Specification Pattern(有关更多深入信息,请参阅Evans & Fowler's article in PDF)。它适用于复杂的检查例程,但不会产生使用第三方引擎或甚至另一种实现语言的额外成本。