To jest stara wersja strony!


Zapisanie reguł thermostatu za pomocą formatu RIF

<?xml version="1.0" encoding="UTF-8"?>
 
<Ruleset>
 <rule>
  <declare><Var>dayofweek</Var></declare>
  <formula>
   <Implies>
    <if>
      <Or>
       <formula>
        <Equal>
         <arg><Var>dayofweek</Var></arg>
         <arg><Const type="xsd:string">Monday</Const></arg>
        </Equal>
       </formula>
       <formula>
        <Equal>
         <arg><Var>dayofweek</Var></arg>
         <arg><Const type="xsd:string">Tuesday</Const></arg>
        </Equal>
       </formula>
       <formula>
        <Equal>
         <arg><Var>dayofweek</Var></arg>
         <arg><Const type="xsd:string">Wednesday</Const></arg>
        </Equal>
       </formula>
       <formula>
        <Equal>
         <arg><Var>dayofweek</Var></arg>
         <arg><Const type="xsd:string">Thursday</Const></arg>
        </Equal>
       </formula>
       <formula>
        <Equal>
         <arg><Var>dayofweek</Var></arg>
         <arg><Const type="xsd:string">Friday</Const></arg>
        </Equal>
       </formula>
      </Or>
    </if>
    <then>
      <Uniterm>
       <op><Const type="rif:local">is-workday</Const></op>
       <arg><Var>dayofweek</Var></arg>
      </Uniterm>
    </then>
   </Implies>
  </formula>
 </rule>
 
 
 <rule>
  <declare><Var>dayofweek</Var></declare>
  <formula>
   <Implies>
    <if>
      <Or>
       <formula>
        <Equal>
         <arg><Var>dayofweek</Var></arg>
         <arg><Const type="xsd:string">Saturday</Const></arg>
        </Equal>
       </formula> 
       <formula>
        <Equal>
         <arg><Var>dayofweek</Var></arg>
         <arg><Const type="xsd:string">Sunday</Const></arg>
        </Equal>
       </formula>
      </Or>
    </if>
    <then>
      <Uniterm>
       <op><Const type="rif:local">is-weekend</Const></op>
       <arg><Var>dayofweek</Var></arg>
      </Uniterm>
    </then>
   </Implies>
  </formula>
 </rule>  
 
 
 <rule>
  <declare><Var>today</Var></declare>
  <declare><Var>hour</Var></declare>
  <formula>
   <Implies>
    <if>
     <And>
      <formula>
       <Uniterm>
        <op><Const type="rif:local">is-weekend</Const></op>
        <arg><Var>today</Var></arg>
       </Uniterm>
      </formula>
      <formula>
       <Uniterm>
        <op><Const type="rif:local">fn:get-hour-from-Date</Const></op>
        <arg><Var>today</Var></arg>
        <arg><Var>hour</Var></arg>
       </Uniterm>
      </formula>
      <formula>
       <Uniterm>
        <op><Const type="rif:iri">op:numeric-between</Const></op>
        <arg><Var>hour</Var></arg>
        <arg><Const type="xsd:dateTime">9am</Const></arg>
        <arg><Const type="xsd:dateTime">5pm</Const></arg>
       </Uniterm>
      </formula>
     </And>
    </if>
    <then>
      <Uniterm>
       <op><Const type="rif:local">is-during-business-hours</Const></op>
       <arg><Var>today</Var></arg>
      </Uniterm>
    </then>
   </Implies>
  </formula>
 </rule>
 
 
 <rule>
  <declare><Var>today</Var></declare>
  <declare><Var>hour</Var></declare>
  <formula>
   <Implies>
    <if>
     <And>
      <formula>
       <Uniterm>
        <op><Const type="rif:local">is-workday</Const></op>
        <arg><Var>today</Var></arg>
       </Uniterm>
      </formula>
      <formula>
       <Uniterm>
        <op><Const type="rif:local">fn:get-hour-from-Date</Const></op>
        <arg><Var>today</Var></arg>
        <arg><Var>hour</Var></arg>
       </Uniterm>
      </formula>
      <formula>
       <Uniterm>
        <op><Const type="rif:iri">op:numeric-lesser-than</Const></op>
        <arg><Var>A</Var></arg>
        <arg></arg>
       </Uniterm>
      </formula>
     </And>
    </if>
    <then>
      <Uniterm>
       <op><Const type="rif:local">is-not-during-business-hours</Const></op>
       <arg><Var>today</Var></arg>
      </Uniterm>
    </then>
   </Implies>
  </formula>
 </rule>
 
 
 <rule>
  <declare><Var>today</Var></declare>
  <declare><Var>hour</Var></declare>
  <formula>
   <Implies>
    <if>
     <And>
      <formula>
       <Uniterm>
        <op><Const type="rif:local">is-workday</Const></op>
        <arg><Var>today</Var></arg>
       </Uniterm>
      </formula>
      <formula>
       <Uniterm>
        <op><Const type="rif:local">fn:get-hour-from-Date</Const></op>
        <arg><Var>today</Var></arg>
        <arg><Var>hour</Var></arg>
       </Uniterm>
      </formula>
      <formula>
       <Uniterm>
        <op><Const type="rif:iri">op:numeric-greater-than</Const></op>
        <arg><Var>hour</Var></arg>
        <arg><Const type="xsd:dateTime">5pm</Const></arg>
       </Uniterm>
      </formula>
     </And>
    </if>
    <then>
      <Uniterm>
       <op><Const type="rif:local">is-not-during-business-hours</Const></op>
       <arg><Var>today</Var></arg>
      </Uniterm>
    </then>
   </Implies>
  </formula>
 </rule>   
 
 
 <rule>
  <declare><Var>today</Var></declare>
  <formula>
   <Implies>
    <if>
      <formula>
       <Uniterm>
        <op><Const type="rif:local">is-weekend</Const></op>
        <arg><Var>today</Var></arg>
       </Uniterm>
      </formula>
    </if>
    <then>
      <Uniterm>
       <op><Const type="rif:local">is-not-during-business-hours</Const></op>
       <arg><Var>today</Var></arg>
      </Uniterm>
    </then>
   </Implies>
  </formula>
 </rule> 
 
 
 <rule>
  <declare><Var>month</Var></declare>
  <formula>
   <Implies>
    <if>
     <Or>
      <formula>
       <Equal>
        <arg><Var>month</Var></arg>
        <arg><Const type="rds:string">January</Const></arg>
       </Equal>
      </formula>
      <formula>
       <Equal>
        <arg><Var>month</Var></arg>
        <arg><Const type="rds:string">February</Const></arg>
       </Equal>
      </formula>
      <formula>
       <Equal>
        <arg><Var>month</Var></arg>
        <arg><Const type="rds:string">December</Const></arg>
       </Equal>
      </formula>
     </Or>
    </if>
    <then>
      <Uniterm>
       <op><Const type="rif:local">is-summer</Const></op>
       <arg><Var>month</Var></arg>
      </Uniterm>
    </then> 
   </Implies>
  </formula>
 </rule> 
 
 
 <rule>
  <declare><Var>month</Var></declare>
  <formula>
   <Implies>
    <if>
     <Or>
      <formula>
       <Equal>
        <arg><Var>month</Var></arg>
        <arg><Const type="rds:string">March</Const></arg>
       </Equal>
      </formula>
      <formula>
       <Equal>
        <arg><Var>month</Var></arg>
        <arg><Const type="rds:string">April</Const></arg>
       </Equal>
      </formula>
      <formula>
       <Equal>
        <arg><Var>month</Var></arg>
        <arg><Const type="rds:string">May</Const></arg>
       </Equal>
      </formula>
     </Or>
    </if>
    <then>
      <Uniterm>
       <op><Const type="rif:local">is-atumn</Const></op>
       <arg><Var>month</Var></arg>
      </Uniterm>
    </then> 
   </Implies>
  </formula>
 </rule> 
 
 
 <rule>
  <declare><Var>month</Var></declare>
  <formula>
   <Implies>
    <if>
     <Or>
      <formula>
       <Equal>
        <arg><Var>month</Var></arg>
        <arg><Const type="rds:string">June</Const></arg>
       </Equal>
      </formula>
      <formula>
       <Equal>
        <arg><Var>month</Var></arg>
        <arg><Const type="rds:string">July</Const></arg>
       </Equal>
      </formula>
      <formula>
       <Equal>
        <arg><Var>month</Var></arg>
        <arg><Const type="rds:string">August</Const></arg>
       </Equal>
      </formula>
     </Or>
    </if>
    <then>
      <Uniterm>
       <op><Const type="rif:local">is-winter</Const></op>
       <arg><Var>month</Var></arg>
      </Uniterm>
    </then> 
   </Implies>
  </formula>
 </rule> 
 
 
 <rule>
  <declare><Var>month</Var></declare>
  <formula>
   <Implies>
    <if>
     <Or>
      <formula>
       <Equal>
        <arg><Var>month</Var></arg>
        <arg><Const type="rds:string">September</Const></arg>
       </Equal>
      </formula>
      <formula>
       <Equal>
        <arg><Var>month</Var></arg>
        <arg><Const type="rds:string">October</Const></arg>
       </Equal>
      </formula>
      <formula>
       <Equal>
        <arg><Var>month</Var></arg>
        <arg><Const type="rds:string">November</Const></arg>
       </Equal>
      </formula>
     </Or>
    </if>
    <then>
      <Uniterm>
       <op><Const type="rif:local">is-spring</Const></op>
       <arg><Var>month</Var></arg>
      </Uniterm>
    </then> 
   </Implies>
  </formula>
 </rule>    
 
 
 <rule>
  <declare><Var>date</Var></declare>
  <declare><Var>month</Var></declare>
  <formula>
   <Implies>
    <if>
     <And>
      <formula>
       <Uniterm>
        <op><Const type="rif:iri">op:get-month-from-date</Const></op>
        <arg><Var>date</Var></arg>
        <arg><Var>month</Var></arg>
       </Uniterm>
      </formula>
      <formula>
       <Uniterm>
        <op><Const type="rif:local">is-spring</Const></op>
        <arg><Var>month</Var></arg>
       </Uniterm>
      </formula>
      <formula>
       <Uniterm>
        <op><Const type="rif:local">is-during-buisness-hours</Const></op>
        <arg><Var>date</Var></arg>
       </Uniterm>
      </formula> 
     </And>
    </if>
    <then>
      <Uniterm>
       <op><Const type="rif:local">thermostat-setting</Const></op>
       <arg><Const type="rds:long">20</Const></arg>
      </Uniterm>
    </then>
   </Implies>
  </formula>
 </rule>   
 
 
 <rule>
  <declare><Var>date</Var></declare>
  <declare><Var>month</Var></declare>
  <formula>
   <Implies>
    <if>
     <And>
      <formula>
       <Uniterm>
        <op><Const type="rif:iri">op:get-month-from-date</Const></op>
        <arg><Var>date</Var></arg>
        <arg><Var>month</Var></arg>
       </Uniterm>
      </formula>
      <formula>
       <Uniterm>
        <op><Const type="rif:local">is-spring</Const></op>
        <arg><Var>month</Var></arg>
       </Uniterm>
      </formula>
      <formula>
       <Uniterm>
        <op><Const type="rif:local">is-not-during-buisness-hours</Const></op>
        <arg><Var>date</Var></arg>
       </Uniterm>
      </formula> 
     </And>
    </if>
    <then>
      <Uniterm>
       <op><Const type="rif:local">thermostat-setting</Const></op>
       <arg><Const type="rds:long">15</Const></arg>
      </Uniterm>
    </then>
   </Implies>
  </formula>
 </rule>
 
 
 <rule>
  <declare><Var>date</Var></declare>
  <declare><Var>month</Var></declare>
  <formula>
   <Implies>
    <if>
     <And>
      <formula>
       <Uniterm>
        <op><Const type="rif:iri">op:get-month-from-date</Const></op>
        <arg><Var>date</Var></arg>
        <arg><Var>month</Var></arg>
       </Uniterm>
      </formula>
      <formula>
       <Uniterm>
        <op><Const type="rif:local">is-summer</Const></op>
        <arg><Var>month</Var></arg>
       </Uniterm>
      </formula>
      <formula>
       <Uniterm>
        <op><Const type="rif:local">is-during-buisness-hours</Const></op>
        <arg><Var>date</Var></arg>
       </Uniterm>
      </formula> 
     </And>
    </if>
    <then>
      <Uniterm>
       <op><Const type="rif:local">thermostat-setting</Const></op>
       <arg><Const type="rds:long">24</Const></arg>
      </Uniterm>
    </then>
   </Implies>
  </formula>
 </rule>  
 
 
 <rule>
  <declare><Var>date</Var></declare>
  <declare><Var>month</Var></declare>
  <formula>
   <Implies>
    <if>
     <And>
      <formula>
       <Uniterm>
        <op><Const type="rif:iri">op:get-month-from-date</Const></op>
        <arg><Var>date</Var></arg>
        <arg><Var>month</Var></arg>
       </Uniterm>
      </formula>
      <formula>
       <Uniterm>
        <op><Const type="rif:local">is-summer</Const></op>
        <arg><Var>month</Var></arg>
       </Uniterm>
      </formula>
      <formula>
       <Uniterm>
        <op><Const type="rif:local">is-not-during-buisness-hours</Const></op>
        <arg><Var>date</Var></arg>
       </Uniterm>
      </formula> 
     </And>
    </if>
    <then>
      <Uniterm>
       <op><Const type="rif:local">thermostat-setting</Const></op>
       <arg><Const type="rds:long">27</Const></arg>
      </Uniterm>
    </then>
   </Implies>
  </formula>
 </rule>  
 
 
 <rule>
  <declare><Var>date</Var></declare>
  <declare><Var>month</Var></declare>
  <formula>
   <Implies>
    <if>
     <And>
      <formula>
       <Uniterm>
        <op><Const type="rif:iri">op:get-month-from-date</Const></op>
        <arg><Var>date</Var></arg>
        <arg><Var>month</Var></arg>
       </Uniterm>
      </formula>
      <formula>
       <Uniterm>
        <op><Const type="rif:local">is-atumn</Const></op>
        <arg><Var>month</Var></arg>
       </Uniterm>
      </formula>
      <formula>
       <Uniterm>
        <op><Const type="rif:local">is-during-buisness-hours</Const></op>
        <arg><Var>date</Var></arg>
       </Uniterm>
      </formula> 
     </And>
    </if>
    <then>
      <Uniterm>
       <op><Const type="rif:local">thermostat-setting</Const></op>
       <arg><Const type="rds:long">20</Const></arg>
      </Uniterm>
    </then>
   </Implies>
  </formula>
 </rule>    
 
 
 <rule>
  <declare><Var>date</Var></declare>
  <declare><Var>month</Var></declare>
  <formula>
   <Implies>
    <if>
     <And>
      <formula>
       <Uniterm>
        <op><Const type="rif:iri">op:get-month-from-date</Const></op>
        <arg><Var>date</Var></arg>
        <arg><Var>month</Var></arg>
       </Uniterm>
      </formula>
      <formula>
       <Uniterm>
        <op><Const type="rif:local">is-atumn</Const></op>
        <arg><Var>month</Var></arg>
       </Uniterm>
      </formula>
      <formula>
       <Uniterm>
        <op><Const type="rif:local">is-not-during-buisness-hours</Const></op>
        <arg><Var>date</Var></arg>
       </Uniterm>
      </formula> 
     </And>
    </if>
    <then>
      <Uniterm>
       <op><Const type="rif:local">thermostat-setting</Const></op>
       <arg><Const type="rds:long">16</Const></arg>
      </Uniterm>
    </then>
   </Implies>
  </formula>
 </rule>  
 <rule>
  <declare><Var>date</Var></declare>
  <declare><Var>month</Var></declare>
  <formula>
   <Implies>
    <if>
     <And>
      <formula>
       <Uniterm>
        <op><Const type="rif:iri">op:get-month-from-date</Const></op>
        <arg><Var>date</Var></arg>
        <arg><Var>month</Var></arg>
       </Uniterm>
      </formula>
      <formula>
       <Uniterm>
        <op><Const type="rif:local">is-winter</Const></op>
        <arg><Var>month</Var></arg>
       </Uniterm>
      </formula>
      <formula>
       <Uniterm>
        <op><Const type="rif:local">is-during-buisness-hours</Const></op>
        <arg><Var>date</Var></arg>
       </Uniterm>
      </formula> 
     </And>
    </if>
    <then>
      <Uniterm>
       <op><Const type="rif:local">thermostat-setting</Const></op>
       <arg><Const type="rds:long">18</Const></arg>
      </Uniterm>
    </then>
   </Implies>
  </formula>
 </rule> 
 
 
 <rule>
  <declare><Var>date</Var></declare>
  <declare><Var>month</Var></declare>
  <formula>
   <Implies>
    <if>
     <And>
      <formula>
       <Uniterm>
        <op><Const type="rif:iri">op:get-month-from-date</Const></op>
        <arg><Var>date</Var></arg>
        <arg><Var>month</Var></arg>
       </Uniterm>
      </formula>
      <formula>
       <Uniterm>
        <op><Const type="rif:local">is-winter</Const></op>
        <arg><Var>month</Var></arg>
       </Uniterm>
      </formula>
      <formula>
       <Uniterm>
        <op><Const type="rif:local">is-not-during-buisness-hours</Const></op>
        <arg><Var>date</Var></arg>
       </Uniterm>
      </formula> 
     </And>
    </if>
    <then>
      <Uniterm>
       <op><Const type="rif:local">thermostat-setting</Const></op>
       <arg><Const type="rds:long">14</Const></arg>
      </Uniterm>
    </then>
   </Implies>
  </formula>
 </rule>  
</Ruleset>

Powrót do dokumentu

pl/miw/miw08_xtt_rif/thermostat.1206971863.txt.gz · ostatnio zmienione: 2019/06/27 15:59 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0