首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Drools4:对Golfer示范的分析

2012-10-26 
Drools4:对Golfer示例的分析rule?find?solution??????when ??????????#?规则:高尔夫球员Fred,目前不知道

Drools4:对Golfer示例的分析

        1. rule?"find?solution"??
        2. ????when ??
        3. ????????#?规则:高尔夫球员Fred,目前不知道他的位置和衣服颜色 ??
        4. ????????Golfer(?$fredsName?:?name?==?"Fred",? ??
        5. ????????????????$fredsPosition?:?position,? ??
        6. ????????????????$fredsColor?:?color??) ??
        7. ??
        8. ????????#?规则:Fred的右边球员穿蓝色的衣服 ??
        9. ????????#?潜在规则:该球员的衣服颜色和Fred不一样,名字不是Fred ??
        10. ????????Golfer(?$unknownsName?:?name?!=?"Fred",? ??
        11. ????????????????$unknownsPosition?:??position?==?(?$fredsPosition?+?1?), ??
        12. ????????????????$unknownsColor?:?color?==?"blue", ??
        13. ????????????????color?!=?$fredsColor?) ??
        14. ??
        15. ????????#?Joe排在第2个位置 ??
        16. ????????#?潜在规则:Joe的位置不是Fred的位置,Joe的衣服颜色不是Fred的颜色?????????????????? ??
        17. ????????Golfer(?$joesName?:?name?==?"Joe",? ??
        18. ????????????????$joesPosition??:?position?==?2,? ??
        19. ????????????????position?!=?$fredsPosition, ??
        20. ????????????????$joesColor?:?color?!=?$fredsColor?) ??
        21. ??
        22. ????????#?Bob穿着格子短裤 ??
        23. ????????#?潜在规则:Bob的名字与穿蓝衣服的球员名字不同,Bob的位置和Fred,Joe,以及蓝衣球员的位置都不同 ??
        24. ????????#?????????Bob的颜色也于之前三个球员不同???????? ??
        25. ????????Golfer(?$bobsName?:?name?==?"Bob",? ??
        26. ????????????????name?!=?$unknownsName, ??
        27. ????????????????$bobsPosition?:?position?!=?$fredsPosition, ??
        28. ????????????????position?!=?$unknownsPosition,?????????????? ??
        29. ????????????????position?!=?$joesPosition,?????????????????????????????????????????????????? ??
        30. ????????????????$bobsColor?:?color?==?"plaid", ??
        31. ????????????????color?!=?$fredsColor, ??
        32. ????????????????color?!=?$joesColor, ??
        33. ????????????????color?!=?$unknownsColor?) ??
        34. ???????????????? ??
        35. ????????#?Tom没有排在第1位或第4位,也没有穿橙色衣服 ??
        36. ????????#?潜在规则:Tom的位置与Fred,Joe,Bob的位置不同;Tom的衣服颜色不是橙色和蓝色,并于另外三人不同 ??
        37. ????????Golfer(?$tomsName?:?name?==?"Tom",? ??
        38. ????????????????$tomsPosition?:?position?!=?1, ??
        39. ????????????????position?!=?4, ??
        40. ????????????????position?!=?$fredsPosition, ??
        41. ????????????????position?!=?$joesPosition,? ??
        42. ????????????????position?!=?$bobsPosition,???????????????????????????????? ??
        43. ????????????????$tomsColor?:?color?!=?"orange", ??
        44. ????????????????color?!=?"blue", ??
        45. ????????????????color?!=?$fredsColor, ??
        46. ????????????????color?!=?$joesColor, ??
        47. ????????????????color?!=?$bobsColor?)???????????????? ??
        48. ????then ??
        49. ????????System.out.println(?"Fred?"?+?$fredsPosition?+?"?"?+?$fredsColor?); ??
        50. ????????System.out.println(?"Joe?"?+?$joesPosition?+?"?"?+?$joesColor?); ??
        51. ????????System.out.println(?"Bob?"?+?$bobsPosition?+?"?"?+?$bobsColor?); ??
        52. ????????System.out.println(?"Tom?"?+?$tomsPosition?+?"?"?+?$tomsColor?);??? ??
        53. end???? ??

        注:按照上面的方法会得到两个相同的结果,也就是规则被成功匹配两次,但结果相同。为何产生这个问题我暂时还没有想清楚,如果有谁了解问题的原因,请留言指点,谢谢!

        ?

        1 楼 dong_ta 2008-06-23   对,确实是这样

热点排行