Przykład 4
<Ruleset>
<rule>
<Forall>
<declare><Var>item</Var></declare>
<declare><Var>deliverydate</Var></declare>
<declare><Var>scheduledate</Var></declare>
<declare><Var>diffduration</Var></declare>
<declare><Var>diffdays</Var></declare>
<formula>
<Implies>
<if>
<And>
<formula>
<Uniterm>
<op><Const type="rif:local">perishable</Const></op>
<arg><Var>item</Var></arg>
</Uniterm>
</formula>
<formula>
<Uniterm>
<op><Const type="rif:local">delivered</Const></op>
<arg><Var>item</Var></arg>
<arg><Var>deliverydate</Var></arg>
<arg><Const type="rif:iri">ppl:John</Const></arg>
</Uniterm>
</formula>
<formula>
<Uniterm>
<op><Const type="rif:local">scheduled</Const></op>
<arg><Var>item</Var></arg>
<arg><Var>scheduledate</Var></arg>
</Uniterm>
</formula>
<formula>
<Uniterm>
<op><Const type="rif:local">fn:subtract-dateTimes-yielding-dayTimeDuration</Const></op>
<arg><Var>deliverydate</Var></arg>
<arg><Var>scheduledate</Var></arg>
<arg><Var>diffduration</Var></arg>
</Uniterm>
</formula>
<formula>
<Uniterm>
<op><Const type="rif:local">fn:get-days-from-dayTimeDuration</Const></op>
<arg><Var>diffduration</Var></arg>
<arg><Var>diffdays</Var></arg>
</Uniterm>
</formula>
<formula>
<Uniterm>
<op><Const type="rif:iri">op:numeric-greater-than</Const></op>
<arg><Var>diffdays</Var></arg>
<arg><Const type="xsd:long">10</Const></arg>
</Uniterm>
</formula>
</And>
</if>
<then>
<Uniterm>
<op><Const type="xsd:long">reject</Const></op>
<arg><Const type="rif:iri">ppl:John</Const></arg>
<arg><Var>item</Var></arg>
</Uniterm>
</then>
</Implies>
</formula>
</Forall>
</rule>
<rule>
<Forall>
<declare><Var>item</Var></declare>
<formula>
<Implies>
<if>
<Uniterm>
<op><Const type="rif:local">unsolicited</Const></op>
<arg><Var>item</Var></arg>
</Uniterm>
</if>
<then>
<Uniterm>
<op><Const type="rif:local">reject</Const></op>
<arg><Const type="rif:iri">ppl:Fred</Const></arg>
<arg><Var>item</Var></arg>
</Uniterm>
</then>
</Implies>
</formula>
</Forall>
</rule>
</Ruleset>
Powrót do dokumentu