To jest stara wersja strony!


RIF(Rule Interchange Format) jest stworzonym przez W3C (Word Wide Web Consorcium) formatem reguł pozwalających na ich wymianę dla różnych języków reguł w sieciach semantycznych (RDF, OWL). Format RIF jest ciągle w fazie rozwoju, jedyne dostępne dokumenty są to szkice specyfikacji poszczególnych modułów (Working Draft). Do rozwijanych dokumentów należą m.in. RIF Framework for Logic Dialects oraz RIF Basic Logic Dialect

Dokładny opis specyfikacji RIF można znaleźć w projekcie XTT_RIF. Dla mnie natomiast istotna dla projektu jest wiedza jak zapisywać typowe dla reguł elementy tj:

  • wartosc logiczna: np: B
<Var> B </Var>
  • stałe argumenty: np: 300
<arg><Const type="rds:long"> 300 </Const></arg>
  • suma: n+1
<Uniterm>
<op><Const type="rif:iri"> op:numeric-add </Const></op>
<arg><Const type=""> 1 </Const></arg>
<arg><Var> n </Var></arg>
</Uniterm>
  • różnica: n-1
<Uniterm>
<op><Const type="rif:iri"> op:numeric-subtract </Const></op>
<arg><Const type=""> 1 </Const></arg>
<arg><Var> n </Var></arg>
</Uniterm>
  • równość: (wyr_1) = (wartosc)
<Equal>
<arg> wyr_1 </arg>
<arg> wartosc </arg>
</Equal>
  • nierówność: n > 0
<Uniterm>
<op><Const type="rif:iri"> op:numeric-greater-than </Const></op>
<arg><Var> n </Var></arg>
<arg><Const type="xsd:decimal"> 0 </Const></arg>
</Uniterm>
  • nierówność: n ⇐ 1
<Uniterm>
<op><Const type="rif:iri"> op:numeric-less-or-equal-than </Const></op>
<arg><Var> n </Var></arg>
<arg><Const type="xsd:decimal"> 0 </Const></arg>
</Uniterm>
  • suma logiczna : (wyr_1) and (wyr_2)
<And>
<formula>
(wyr_1)
</formula> 
<formula>
(wyr_2)
</formula>
</And>
  • warunek if : (conclusion) if (conditions)
<Implies>
<if>
(conditions)
</if>
<then>
(conclusion)
</then>
</Implies>

Teraz możemy spróbować zapisać nasz przykład (Jeżeli dzień=poniedziałek wtedy temp=20st) za pomocą RIF:

<?xml version="1.0" encoding="UTF-8"?>
 
<Ruleset>
<rule>
  <declare><Var> day </Var></declare> 
  <formula>
   <Implies>
    <if>
      <formula>
        <Equal>
         <arg><Var> day </Var></arg>
         <arg><Const type="xsd:string">Monday</Const></arg>
        </Equal>
      </formula> 
    </if>
    <then>
      <Uniterm>
       <op><Const type="rif:local">temp</Const></op>
       <arg><Const type="rds:positiveInteger">20</Const></arg>
      </Uniterm>
    </then>
   </Implies>
  </formula>
 </rule>
</Ruleset>

Powrót

pl/miw/miw08_hml_rules/rif.1211188062.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