<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Document xmlns="http://www.w3.org/2007/rif#">
  <Group>
    <meta>
      <Frame>
        <object>
          <Const type="rif:iri">RIF UCR Use Case 1</Const>
        </object>
      </Frame>
    </meta>
    <sentence>
      <Group>
        <meta>
          <Frame>
            <object>
              <Const type="rif:iri">Before Agreement</Const>
            </object>
          </Frame>
        </meta>
        <sentence>
          <Forall>
            <declare>
              <Var>Delivery.to</Var>
            </declare>
            <declare>
              <Var>Scheduled Delivery.item</Var>
            </declare>
            <declare>
              <Var>Delivery.item</Var>
            </declare>
            <declare>
              <Var>Delivery.date</Var>
            </declare>
            <declare>
              <Var>Scheduled Delivery.date</Var>
            </declare>
            <declare>
              <Var>Item.status</Var>
            </declare>
            <declare>
              <Var>Item</Var>
            </declare>
            <declare>
              <Var>Delivery</Var>
            </declare>
            <declare>
              <Var>Scheduled Delivery</Var>
            </declare>
            <formula>
              <Implies>
                <if>
                  <And>
                    <formula>
                      <And>
                        <formula>
                          <Member>
                            <lower>
                              <Var>Item</Var>
                            </lower>
                            <upper>
                              <Const type="rif:iri">Item</Const>
                            </upper>
                          </Member>
                        </formula>
                        <formula>
                          <Frame>
                            <object>
                              <Var>Item</Var>
                            </object>
                            <slot>
                              <Prop>
                                <key>
                                  <Const type="rif:iri">status</Const>
                                </key>
                                <val>
                                  <Var>Item.status</Var>
                                </val>
                              </Prop>
                            </slot>
                          </Frame>
                        </formula>
                      </And>
                    </formula>
                    <formula>
                      <And>
                        <formula>
                          <Member>
                            <lower>
                              <Var>Delivery</Var>
                            </lower>
                            <upper>
                              <Const type="rif:iri">Delivery</Const>
                            </upper>
                          </Member>
                        </formula>
                        <formula>
                          <Frame>
                            <object>
                              <Var>Delivery</Var>
                            </object>
                            <slot>
                              <Prop>
                                <key>
                                  <Const type="rif:iri">to</Const>
                                </key>
                                <val>
                                  <Var>Delivery.to</Var>
                                </val>
                              </Prop>
                            </slot>
                            <slot>
                              <Prop>
                                <key>
                                  <Const type="rif:iri">item</Const>
                                </key>
                                <val>
                                  <Var>Delivery.item</Var>
                                </val>
                              </Prop>
                            </slot>
                            <slot>
                              <Prop>
                                <key>
                                  <Const type="rif:iri">date</Const>
                                </key>
                                <val>
                                  <Var>Delivery.date</Var>
                                </val>
                              </Prop>
                            </slot>
                          </Frame>
                        </formula>
                      </And>
                    </formula>
                    <formula>
                      <And>
                        <formula>
                          <Member>
                            <lower>
                              <Var>Scheduled Delivery</Var>
                            </lower>
                            <upper>
                              <Const type="rif:iri">Scheduled Delivery</Const>
                            </upper>
                          </Member>
                        </formula>
                        <formula>
                          <Frame>
                            <object>
                              <Var>Scheduled Delivery</Var>
                            </object>
                            <slot>
                              <Prop>
                                <key>
                                  <Const type="rif:iri">item</Const>
                                </key>
                                <val>
                                  <Var>Scheduled Delivery.item</Var>
                                </val>
                              </Prop>
                            </slot>
                            <slot>
                              <Prop>
                                <key>
                                  <Const type="rif:iri">date</Const>
                                </key>
                                <val>
                                  <Var>Scheduled Delivery.date</Var>
                                </val>
                              </Prop>
                            </slot>
                          </Frame>
                        </formula>
                        <formula>
                          <Equal>
                            <side>
                              <Var>Item.status</Var>
                            </side>
                            <side>
                              <Const type="xsd:string">perishable</Const>
                            </side>
                          </Equal>
                        </formula>
                        <formula>
                          <Equal>
                            <side>
                              <Var>Delivery.to</Var>
                            </side>
                            <side>
                              <Const type="xsd:string">John Doe</Const>
                            </side>
                          </Equal>
                        </formula>
                        <formula>
                          <Equal>
                            <side>
                              <Var>Delivery.item</Var>
                            </side>
                            <side>
                              <Var>Item</Var>
                            </side>
                          </Equal>
                        </formula>
                        <formula>
                          <Equal>
                            <side>
                              <Var>Scheduled Delivery.item</Var>
                            </side>
                            <side>
                              <Var>Item</Var>
                            </side>
                          </Equal>
                        </formula>
                        <formula>
                          <External>
                            <content>
                              <Atom>
                                <op>
                                  <Const type="rif:iri">op:numeric-greater-than</Const>
                                </op>
                                <arg>
                                  <External>
                                    <content>
                                      <Expr>
                                        <op>
                                          <Const type="rif:iri">fn:get-days-from-dayTimeDuration</Const>
                                        </op>
                                        <arg>
                                          <Expr>
                                            <op>
                                              <Const type="rif:iri">fn:subtract-dateTimes-yielding-dayTimeDuration</Const>
                                            </op>
                                            <arg>
                                              <Var>Delivery.date</Var>
                                            </arg>
                                            <arg>
                                              <Var>Scheduled Delivery.date</Var>
                                            </arg>
                                          </Expr>
                                        </arg>
                                      </Expr>
                                    </content>
                                  </External>
                                </arg>
                                <arg>
                                  <Const type="xsd:int">10</Const>
                                </arg>
                              </Atom>
                            </content>
                          </External>
                        </formula>
                      </And>
                    </formula>
                  </And>
                </if>
                <then>
                  <Frame>
                    <object>
                      <Expr>
                        <op>
                          <Const type="rif:iri">rif:new</Const>
                        </op>
                        <arg>
                          <Const type="rif:iri">Reject</Const>
                        </arg>
                        <arg>
                          <Const type="xsd:string">John Doe</Const>
                        </arg>
                        <arg>
                          <Var>Item</Var>
                        </arg>
                      </Expr>
                    </object>
                    <slot>
                      <Prop>
                        <key>
                          <Const type="rif:iri">who</Const>
                        </key>
                        <val>
                          <Const type="xsd:string">John Doe</Const>
                        </val>
                      </Prop>
                    </slot>
                    <slot>
                      <Prop>
                        <key>
                          <Const type="rif:iri">item</Const>
                        </key>
                        <val>
                          <Var>Item</Var>
                        </val>
                      </Prop>
                    </slot>
                  </Frame>
                </then>
              </Implies>
            </formula>
          </Forall>
        </sentence>
        <sentence>
          <Forall>
            <declare>
              <Var>Delivery.to</Var>
            </declare>
            <declare>
              <Var>Scheduled Delivery.item</Var>
            </declare>
            <declare>
              <Var>Delivery.item</Var>
            </declare>
            <declare>
              <Var>Delivery.date</Var>
            </declare>
            <declare>
              <Var>Scheduled Delivery.date</Var>
            </declare>
            <declare>
              <Var>Item.status</Var>
            </declare>
            <declare>
              <Var>Item</Var>
            </declare>
            <declare>
              <Var>Delivery</Var>
            </declare>
            <declare>
              <Var>Scheduled Delivery</Var>
            </declare>
            <formula>
              <Implies>
                <if>
                  <And>
                    <formula>
                      <And>
                        <formula>
                          <Member>
                            <lower>
                              <Var>Item</Var>
                            </lower>
                            <upper>
                              <Const type="rif:iri">Item</Const>
                            </upper>
                          </Member>
                        </formula>
                        <formula>
                          <Frame>
                            <object>
                              <Var>Item</Var>
                            </object>
                            <slot>
                              <Prop>
                                <key>
                                  <Const type="rif:iri">status</Const>
                                </key>
                                <val>
                                  <Var>Item.status</Var>
                                </val>
                              </Prop>
                            </slot>
                          </Frame>
                        </formula>
                      </And>
                    </formula>
                    <formula>
                      <And>
                        <formula>
                          <Member>
                            <lower>
                              <Var>Delivery</Var>
                            </lower>
                            <upper>
                              <Const type="rif:iri">Delivery</Const>
                            </upper>
                          </Member>
                        </formula>
                        <formula>
                          <Frame>
                            <object>
                              <Var>Delivery</Var>
                            </object>
                            <slot>
                              <Prop>
                                <key>
                                  <Const type="rif:iri">to</Const>
                                </key>
                                <val>
                                  <Var>Delivery.to</Var>
                                </val>
                              </Prop>
                            </slot>
                            <slot>
                              <Prop>
                                <key>
                                  <Const type="rif:iri">item</Const>
                                </key>
                                <val>
                                  <Var>Delivery.item</Var>
                                </val>
                              </Prop>
                            </slot>
                            <slot>
                              <Prop>
                                <key>
                                  <Const type="rif:iri">date</Const>
                                </key>
                                <val>
                                  <Var>Delivery.date</Var>
                                </val>
                              </Prop>
                            </slot>
                          </Frame>
                        </formula>
                      </And>
                    </formula>
                    <formula>
                      <And>
                        <formula>
                          <Member>
                            <lower>
                              <Var>Scheduled Delivery</Var>
                            </lower>
                            <upper>
                              <Const type="rif:iri">Scheduled Delivery</Const>
                            </upper>
                          </Member>
                        </formula>
                        <formula>
                          <Frame>
                            <object>
                              <Var>Scheduled Delivery</Var>
                            </object>
                            <slot>
                              <Prop>
                                <key>
                                  <Const type="rif:iri">item</Const>
                                </key>
                                <val>
                                  <Var>Scheduled Delivery.item</Var>
                                </val>
                              </Prop>
                            </slot>
                            <slot>
                              <Prop>
                                <key>
                                  <Const type="rif:iri">date</Const>
                                </key>
                                <val>
                                  <Var>Scheduled Delivery.date</Var>
                                </val>
                              </Prop>
                            </slot>
                          </Frame>
                        </formula>
                        <formula>
                          <Equal>
                            <side>
                              <Var>Item.status</Var>
                            </side>
                            <side>
                              <Const type="xsd:string">perishable</Const>
                            </side>
                          </Equal>
                        </formula>
                        <formula>
                          <Equal>
                            <side>
                              <Var>Delivery.to</Var>
                            </side>
                            <side>
                              <Const type="xsd:string">John Doe</Const>
                            </side>
                          </Equal>
                        </formula>
                        <formula>
                          <Equal>
                            <side>
                              <Var>Delivery.item</Var>
                            </side>
                            <side>
                              <Var>Item</Var>
                            </side>
                          </Equal>
                        </formula>
                        <formula>
                          <Equal>
                            <side>
                              <Var>Scheduled Delivery.item</Var>
                            </side>
                            <side>
                              <Var>Item</Var>
                            </side>
                          </Equal>
                        </formula>
                        <formula>
                          <External>
                            <content>
                              <Atom>
                                <op>
                                  <Const type="rif:iri">op:numeric-greater-than</Const>
                                </op>
                                <arg>
                                  <External>
                                    <content>
                                      <Expr>
                                        <op>
                                          <Const type="rif:iri">fn:get-days-from-dayTimeDuration</Const>
                                        </op>
                                        <arg>
                                          <Expr>
                                            <op>
                                              <Const type="rif:iri">fn:subtract-dateTimes-yielding-dayTimeDuration</Const>
                                            </op>
                                            <arg>
                                              <Var>Delivery.date</Var>
                                            </arg>
                                            <arg>
                                              <Var>Scheduled Delivery.date</Var>
                                            </arg>
                                          </Expr>
                                        </arg>
                                      </Expr>
                                    </content>
                                  </External>
                                </arg>
                                <arg>
                                  <Const type="xsd:int">10</Const>
                                </arg>
                              </Atom>
                            </content>
                          </External>
                        </formula>
                      </And>
                    </formula>
                  </And>
                </if>
                <then>
                  <Member>
                    <lower>
                      <Expr>
                        <op>
                          <Const type="rif:iri">rif:new</Const>
                        </op>
                        <arg>
                          <Const type="rif:iri">Reject</Const>
                        </arg>
                        <arg>
                          <Const type="xsd:string">John Doe</Const>
                        </arg>
                        <arg>
                          <Var>Item</Var>
                        </arg>
                      </Expr>
                    </lower>
                    <upper>
                      <Const type="rif:iri">Reject</Const>
                    </upper>
                  </Member>
                </then>
              </Implies>
            </formula>
          </Forall>
        </sentence>
      </Group>
    </sentence>
    <sentence>
      <Group>
        <meta>
          <Frame>
            <object>
              <Const type="rif:iri">After Agreement</Const>
            </object>
          </Frame>
        </meta>
        <sentence>
          <Forall>
            <declare>
              <Var>Scheduled Delivery.item</Var>
            </declare>
            <declare>
              <Var>Delivery.to</Var>
            </declare>
            <declare>
              <Var>Delivery.date</Var>
            </declare>
            <declare>
              <Var>Scheduled Delivery.date</Var>
            </declare>
            <declare>
              <Var>Item.status</Var>
            </declare>
            <declare>
              <Var>Delivery.date</Var>
            </declare>
            <declare>
              <Var>Scheduled Delivery.date</Var>
            </declare>
            <declare>
              <Var>Delivery.item</Var>
            </declare>
            <declare>
              <Var>Scheduled Delivery</Var>
            </declare>
            <declare>
              <Var>Delivery</Var>
            </declare>
            <declare>
              <Var>Item</Var>
            </declare>
            <formula>
              <Implies>
                <if>
                  <And>
                    <formula>
                      <And>
                        <formula>
                          <Member>
                            <lower>
                              <Var>Item</Var>
                            </lower>
                            <upper>
                              <Const type="rif:iri">Item</Const>
                            </upper>
                          </Member>
                        </formula>
                        <formula>
                          <Frame>
                            <object>
                              <Var>Item</Var>
                            </object>
                            <slot>
                              <Prop>
                                <key>
                                  <Const type="rif:iri">status</Const>
                                </key>
                                <val>
                                  <Var>Item.status</Var>
                                </val>
                              </Prop>
                            </slot>
                          </Frame>
                        </formula>
                      </And>
                    </formula>
                    <formula>
                      <And>
                        <formula>
                          <Member>
                            <lower>
                              <Var>Delivery</Var>
                            </lower>
                            <upper>
                              <Const type="rif:iri">Delivery</Const>
                            </upper>
                          </Member>
                        </formula>
                        <formula>
                          <Frame>
                            <object>
                              <Var>Delivery</Var>
                            </object>
                            <slot>
                              <Prop>
                                <key>
                                  <Const type="rif:iri">to</Const>
                                </key>
                                <val>
                                  <Var>Delivery.to</Var>
                                </val>
                              </Prop>
                            </slot>
                            <slot>
                              <Prop>
                                <key>
                                  <Const type="rif:iri">date</Const>
                                </key>
                                <val>
                                  <Var>Delivery.date</Var>
                                </val>
                              </Prop>
                            </slot>
                            <slot>
                              <Prop>
                                <key>
                                  <Const type="rif:iri">date</Const>
                                </key>
                                <val>
                                  <Var>Delivery.date</Var>
                                </val>
                              </Prop>
                            </slot>
                            <slot>
                              <Prop>
                                <key>
                                  <Const type="rif:iri">item</Const>
                                </key>
                                <val>
                                  <Var>Delivery.item</Var>
                                </val>
                              </Prop>
                            </slot>
                          </Frame>
                        </formula>
                      </And>
                    </formula>
                    <formula>
                      <And>
                        <formula>
                          <Member>
                            <lower>
                              <Var>Scheduled Delivery</Var>
                            </lower>
                            <upper>
                              <Const type="rif:iri">Scheduled Delivery</Const>
                            </upper>
                          </Member>
                        </formula>
                        <formula>
                          <Frame>
                            <object>
                              <Var>Scheduled Delivery</Var>
                            </object>
                            <slot>
                              <Prop>
                                <key>
                                  <Const type="rif:iri">item</Const>
                                </key>
                                <val>
                                  <Var>Scheduled Delivery.item</Var>
                                </val>
                              </Prop>
                            </slot>
                            <slot>
                              <Prop>
                                <key>
                                  <Const type="rif:iri">date</Const>
                                </key>
                                <val>
                                  <Var>Scheduled Delivery.date</Var>
                                </val>
                              </Prop>
                            </slot>
                            <slot>
                              <Prop>
                                <key>
                                  <Const type="rif:iri">date</Const>
                                </key>
                                <val>
                                  <Var>Scheduled Delivery.date</Var>
                                </val>
                              </Prop>
                            </slot>
                          </Frame>
                        </formula>
                        <formula>
                          <Equal>
                            <side>
                              <Var>Item.status</Var>
                            </side>
                            <side>
                              <Const type="xsd:string">perishable</Const>
                            </side>
                          </Equal>
                        </formula>
                        <formula>
                          <Equal>
                            <side>
                              <Var>Delivery.to</Var>
                            </side>
                            <side>
                              <Const type="xsd:string">John Doe</Const>
                            </side>
                          </Equal>
                        </formula>
                        <formula>
                          <Equal>
                            <side>
                              <Var>Delivery.item</Var>
                            </side>
                            <side>
                              <Var>Item</Var>
                            </side>
                          </Equal>
                        </formula>
                        <formula>
                          <Equal>
                            <side>
                              <Var>Scheduled Delivery.item</Var>
                            </side>
                            <side>
                              <Var>Item</Var>
                            </side>
                          </Equal>
                        </formula>
                        <formula>
                          <External>
                            <content>
                              <Atom>
                                <op>
                                  <Const type="rif:iri">op:numeric-greater-than</Const>
                                </op>
                                <arg>
                                  <External>
                                    <content>
                                      <Expr>
                                        <op>
                                          <Const type="rif:iri">fn:get-days-from-dayTimeDuration</Const>
                                        </op>
                                        <arg>
                                          <Expr>
                                            <op>
                                              <Const type="rif:iri">fn:subtract-dateTimes-yielding-dayTimeDuration</Const>
                                            </op>
                                            <arg>
                                              <Var>Delivery.date</Var>
                                            </arg>
                                            <arg>
                                              <Var>Scheduled Delivery.date</Var>
                                            </arg>
                                          </Expr>
                                        </arg>
                                      </Expr>
                                    </content>
                                  </External>
                                </arg>
                                <arg>
                                  <Const type="xsd:int">7</Const>
                                </arg>
                              </Atom>
                            </content>
                          </External>
                        </formula>
                        <formula>
                          <External>
                            <content>
                              <Atom>
                                <op>
                                  <Const type="rif:iri">op:numeric-less-than</Const>
                                </op>
                                <arg>
                                  <External>
                                    <content>
                                      <Expr>
                                        <op>
                                          <Const type="rif:iri">fn:get-days-from-dayTimeDuration</Const>
                                        </op>
                                        <arg>
                                          <Expr>
                                            <op>
                                              <Const type="rif:iri">fn:subtract-dateTimes-yielding-dayTimeDuration</Const>
                                            </op>
                                            <arg>
                                              <Var>Delivery.date</Var>
                                            </arg>
                                            <arg>
                                              <Var>Scheduled Delivery.date</Var>
                                            </arg>
                                          </Expr>
                                        </arg>
                                      </Expr>
                                    </content>
                                  </External>
                                </arg>
                                <arg>
                                  <Const type="xsd:int">14</Const>
                                </arg>
                              </Atom>
                            </content>
                          </External>
                        </formula>
                      </And>
                    </formula>
                  </And>
                </if>
                <then>
                  <Frame>
                    <object>
                      <Var>Delivery</Var>
                    </object>
                    <slot>
                      <Prop>
                        <key>
                          <Const type="rif:iri">discount</Const>
                        </key>
                        <val>
                          <Const type="xsd:decimal">.187</Const>
                        </val>
                      </Prop>
                    </slot>
                  </Frame>
                </then>
              </Implies>
            </formula>
          </Forall>
        </sentence>
      </Group>
    </sentence>
  </Group>
</Document>
