Negotiating eBusiness Contracts Across Rule Platforms
From Wiki
| Rule: If an item is perishable and it is delivered more than 10 days after the scheduled delivery date then the item will be rejected |
| Presentation Syntax |
?i#<j:Item>[(<j:isRejected>->"true"^^xs:boolean) :-
And(
?i#<j:Item>[(<j:isPerishable>->"true"^^xs:boolean)
(<j:actualDeliveryDate>->?actualDeliveryDate )
(<j:scheduledDeliveryDate> ->?scheduledDeliveryDate)
]
External(<fn:subtract-dateTimes-yielding-dayTimeDuration>(?actualDeliveryDate ?scheduledDeliveryDate ?diffduration))
External(<fn:get-days-from-dayTimeDuration>(?diffduration ?diffdays))
External(<op:numeric-greater-than>(?diffdays "10"^^xs:int))
)
|
| XML Syntax |
<Implies>
<if>
<And>
<formula>
<Member>
<lower>
<Var>i</Var>
</lower>
<upper>
<Const type="rif:iri">j:Item</Const>
</upper>
</Member>
</formula>
<formula>
<Frame>
<object>
<Var>i</Var>
</object>
<slot>
<Prop>
<key><Const type="">j:isPerishable</Const></key>
<val><Const type="xs:boolean">true</Const></val>
</Prop>
</slot>
<slot>
<Prop>
<key><Const type="j:actualDeliveryDate"></Const></key>
<val><Var>actualDeliveryDate</Var></val>
</Prop>
</slot>
<slot>
<Prop>
<key><Const type="rif:iri">j:scheduledDeliveryDate</Const></key>
<val><Var>scheduledDeliveryDate</Var></val>
</Prop>
</slot>
</Frame>
</formula>
<formula>
<External>
<content>
<Atom>
<op><Const type="rif:iri">fn:subtract-dateTimes-yielding-dayTimeDuration</Const></op>
<arg><Var>actualDeliveryDate</Var></arg>
<arg><Var>scheduledDeliveryDate</Var></arg>
<arg><Var>diffduration</Var></arg>
</Atom>
</content>
</External>
</formula>
<formula>
<External>
<content>
<Atom>
<op><Const type="rif:iri">fn:get-days-from-dayTimeDuration</Const></op>
<arg><Var>diffduration</Var></arg>
<arg><Var>diffdays</Var></arg>
</Atom>
</content>
</External>
</formula>
<formula>
<External>
<content>
<Atom>
<op><Const type="rif:iri">op:numeric-greater-than</Const></op>
<arg><Var>diffdays</Var></arg>
<arg><Const type="xs:integer">10</Const></arg>
</Atom>
</content>
</External>
</formula>
</And>
</if>
<then>
<Frame>
<object><Var>i</Var></object>
<slot>
<Prop>
<key><Const type="rif:iri">j:isRejected</Const></key>
<val><Const type="xs:boolean">true</Const></val>
</Prop>
</slot>
</Frame>
</then>
</Implies>
|
See also: rif:UCR#Negotiating_eBusiness_Contracts_Across_Rule_Platforms

