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>