Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Nowa wersja
Poprzednia wersja
pl:miw:miw08_hml_rules:rif [2008/04/21 21:19]
miw utworzono
pl:miw:miw08_hml_rules:rif [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
-michal rogula+ 
 +**RIF(Rule Interchange Format)** jest stworzonym przez W3C [[http://​www.w3.org/​|(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. [[http://​www.w3.org/​2005/​rules/​wg/​draft/​rif-fld/​|RIF Framework for Logic Dialects ]] oraz [[http://​www.w3.org/​2005/​rules/​wg/​draft/​rif-bld/​|RIF Basic Logic Dialect]] 
 + 
 +[[https://​ai.ia.agh.edu.pl/​wiki/​pl:​miw:​miw08_hml_rules:​rif:​rifattribute|Atrybuty w RIF + RDF oraz OWL Kompatybilność]] 
 + 
 +Dokładny opis specyfikacji RIF można znaleźć w projekcie [[https://​ai.ia.agh.edu.pl/​wiki/​pl:​miw:​miw08_xtt_rif|XTT_RIF]]. Dla mnie natomiast istotna, z punktu widzenia projektu, jest wiedza jak zapisywać typowe dla reguł elementy tj: 
 + 
 +  * wartosc logiczna: np: B 
 + 
 +<code xml> 
 +<Var> B </​Var>​ 
 +</​code>​ 
 + 
 +  * stałe argumenty: np: 300 
 + 
 +<code xml> 
 +<​arg><​Const type="​rds:​long">​ 300 </​Const></​arg>​ 
 +</​code>​ 
 + 
 +  * suma: n+1 
 + 
 +<code xml> 
 +<​Uniterm>​ 
 +<​op><​Const type="​rif:​iri">​ op:​numeric-add </​Const></​op>​ 
 +<​arg><​Const type="">​ 1 </​Const></​arg>​ 
 +<​arg><​Var>​ n </​Var></​arg>​ 
 +</​Uniterm>​ 
 +</​code>​ 
 + 
 +  * różnica: n-1 
 + 
 +<code xml> 
 +<​Uniterm>​ 
 +<​op><​Const type="​rif:​iri">​ op:​numeric-subtract </​Const></​op>​ 
 +<​arg><​Const type="">​ 1 </​Const></​arg>​ 
 +<​arg><​Var>​ n </​Var></​arg>​ 
 +</​Uniterm>​ 
 +</​code>​ 
 + 
 +  * równość: (wyr_1) = (wartosc) 
 + 
 +<code xml> 
 +<​Equal>​ 
 +<arg> wyr_1 </​arg>​ 
 +<arg> wartosc </​arg>​ 
 +</​Equal>​ 
 +</​code>​ 
 + 
 +  * nierówność: ​ n > 0 
 + 
 +<code xml> 
 +<​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>​ 
 +</​code>​ 
 + 
 +  * nierówność: ​ n <= 1 
 + 
 +<code xml> 
 +<​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>​ 
 +</​code>​ 
 + 
 +  * suma logiczna : (wyr_1) and (wyr_2) 
 + 
 +<code xml> 
 +<​And>​ 
 +<​formula>​ 
 +(wyr_1) 
 +</​formula>​  
 +<​formula>​ 
 +(wyr_2) 
 +</​formula>​ 
 +</​And>​ 
 +</​code>​ 
 + 
 +  * warunek if : (conclusion) if (conditions) 
 + 
 +<code xml> 
 +<​Implies>​ 
 +<​if>​ 
 +(conditions) 
 +</​if>​ 
 +<​then>​ 
 +(conclusion) 
 +</​then>​ 
 +</​Implies>​ 
 +</​code>​ 
 + 
 +Teraz, na podstawie powyższej wiedzy, możemy spróbować zapisać nasz przykład (//​**Jeżeli dzień=poniedziałek wtedy temp=20st**//​) za pomocą RIF: 
 + 
 +<code xml> 
 +<?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>​ 
 +</​code>​ 
 + 
 +W analogiczny sposób możemy zapisać większość reguł. Przykładem może być tu całość [[https://​ai.ia.agh.edu.pl/​wiki/​hekate:​hekate_case_thermostat|HeKatE Case Thermostat]] którego reguły przedstawione w RIF wyglądają nastepująco:​ [[https://​ai.ia.agh.edu.pl/​wiki/​pl:​miw:​miw08_xtt_rif:​thermostat|therm in RIF]]. 
 + 
 +[[https://​ai.ia.agh.edu.pl/​wiki/​pl:​miw:​miw08_hml_rules|Powrót]] 
 + 
 + 
 +====== Materiały ====== 
 + 
 + 
 +** Strona domowa RIF** http://​www.w3.org/​2005/​rules/​wiki/​RIF_Working_Group 
 + 
 +** Więcej przykładów** http://​www.w3.org/​2005/​rules/​wg/​wiki/​UC3_Worked_Example 
 + 
 +** Szczególnie przydatne** http://​www.w3.org/​TR/​2007/​WD-rif-bld-20071030/​ 
 + 
 +** Cały thermostat w RIF** https://​ai.ia.agh.edu.pl/​wiki/​pl:​miw:​miw08_xtt_rif:​thermostat 
 + 
 +** RIF Core Design** http://​www.w3.org/​TR/​2007/​WD-rif-core-20070330/​ 
pl/miw/miw08_hml_rules/rif.1208805541.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