2010-09-02 56 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)。它適用於複雜的檢查例程,但不會產生使用第三方引擎或甚至另一種實現語言的額外成本。