RuleML 例子 - studycourse.ruleml.xml

https://files.cnblogs.com/elvisqi/studycourse.ruleml.xml

<RuleML>
  <Assert mapClosure="universal">
    <Rulebase>
      <!-- 
      这例子中,规则库里有四项。
      第一、第二项是推论;第三、第四项是事实;

      第一个规则是一个推论:“学生 进修 课程”:
      满足:1. 学生选择课程的教授
并且
2. 学生喜欢这门课程
--> <Implies> <then> <Atom> <Rel>进修</Rel> <Var>学生</Var> <Var>课程</Var> </Atom> </then> <if> <!-- explicit 'And' --> <And> <Atom> <Rel>选择</Rel> <Var>学生</Var> <Var>教授</Var> <Var>课程</Var> </Atom> <Atom> <Rel>喜欢</Rel> <Var>学生</Var> <Var>课程</Var> </Atom> </And> </if> </Implies> <!-- 第二个规则是一个推论:“学生选择课程的教授”
满足:教授给这个学生一个课程
--> <Implies> <then> <Atom> <Rel>选择</Rel> <Var>学生</Var> <Var>教授</Var> <Var>课程</Var> </Atom> </then> <if> <Atom> <Rel></Rel> <Var>教授</Var> <Var>学生</Var> <Var>课程</Var> </Atom> </if> </Implies> <!-- 第三个规则是一个事实:
Fred把课程CS6795给John Doe
--> <Atom> <Rel></Rel> <Ind>Fred</Ind> <Ind>John Doe</Ind> <Ind>CS6795</Ind> </Atom> <!-- 第四个规则是一个事实:
John Doe喜欢课程CS6795
--> <Atom> <Rel>喜欢</Rel> <Ind>John Doe</Ind> <Ind>CS6795</Ind> </Atom> </Rulebase> </Assert> <Query> <!-- POSL like(?Name, ?Course) --> <Atom> <op> <Rel>喜欢</Rel> </op> <Var>姓名</Var> <Var>课程</Var> </Atom> </Query> <!-- 变量 <Var>姓名</Var> <Var>课程</Var> 值 姓名 = John 课程 = CS6795 实际结果:成功 --> </RuleML>

 

posted @ 2014-02-09 18:04  完美主义  阅读(406)  评论(0编辑  收藏  举报