[[
✎ pl:miw:miw08_hml_rules:rif
]]
aiWiki
Pokaż stronę
Ostatnie zmiany
Indeks
Zaloguj
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
**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.txt
· ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
Pokaż stronę
Poprzednie wersje
Menadżer multimediów
Do góry