Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:miw08_xtt_rif:rif_minicases [2008/04/06 20:16] miw |
pl:miw:miw08_xtt_rif:rif_minicases [2019/06/27 15:50] (aktualna) |
====== RIF i Minicases ====== | ====== RIF i Minicases ====== |
| |
===== restrictive behavior ===== | ===== restrictive behavior ===== |
Reguła: ''if X > 2 then Y = X'' | [[hekatedev:xtt_minicases#restrictive_behavior|Opis]] |
| |
| [[pl:miw:miw08_xtt_rif:rif_minicases:rb|Proponowany zapis w RIFie]]. |
| |
Podobną strukturę przedstawiłem [[pl:miw:miw08_xtt_rif#przemyslenia_dotyczace_regul_zawierajacych_przypisanie|ostatnio]]. | |
| |
| |
[[hekatedev:xtt_minicases#restrictive_behavior_and_multiple_values|Opis]] | [[hekatedev:xtt_minicases#restrictive_behavior_and_multiple_values|Opis]] |
| |
Póki co nie udało mi się zapisać kompletnej reguły. Część pierwsza, czyli wyliczenie ilości ocen 2 jest proste w realizaji, w regule używam predykatu ''count'' dla wyliczenia. Potem pogę dla wszystkich zmiennych wykonać jakąś operację używając ''Exists''. Zastanawia mnie natomiast możliwość wywołania dwóch operacji na raz i póki co nie widze takiej możliwości. | Część pierwsza, czyli wyliczenie ilości ocen 2 jest proste w realizaji, w regule używam predykatu ''count'' dla wyliczenia. Potem mogę dla wszystkich zmiennych wykonać jakąś operację używając ''Exists'' (w ''Implies'' używam pustego ''And'', który zwraca zawszę prawdę). Aby wywołać we wniosku dwie operacje, założyłem istnienie predykatu ''run-two'', który jest w stanie wywołać dwie reguły. |
| |
[[pl:miw:miw08_xtt_rif:rif_minicases:rbmv|Zapis za pomocą RIF]] | [[pl:miw:miw08_xtt_rif:rif_minicases:rbmv|Zapis za pomocą RIF]] |
| |
[[pl:miw:miw08_xtt_rif:rif_minicases:rbmvc|Zapis za pomocą RIF]]. | [[pl:miw:miw08_xtt_rif:rif_minicases:rbmvc|Zapis za pomocą RIF]]. |
| |
| |
| |
===== grouped attributes and multiple value operations ===== | ===== grouped attributes and multiple value operations ===== |
[[hekatedev:xtt_minicases#grouped_attributes_and_multiple_value_operations|Opis]] | [[hekatedev:xtt_minicases#grouped_attributes_and_multiple_value_operations|Opis]] |
| |
| Proponowany zapis został stworzony w oparciu o [[pl:miw:miw08_xtt_rif:przyklad3b|przykład]]. Wykorzystałem tutaj termy z nazwanymi argumentami. Ciekawe jest to, że pomimo praktycznie takiej samej struktury jak w przykładzie, reguła nie przechodzi walidacji. |
| |
[[pl:miw:miw08_xtt_rif:rif_minicases:gamvo|Proponowany zapis w RIF]]. | [[pl:miw:miw08_xtt_rif:rif_minicases:gamvo|Proponowany zapis w RIF]]. |
| |
[[pl:miw:miw08_xtt_rif:rif_minicases:gaa|Realizacja za pomocą RIFa.]] | [[pl:miw:miw08_xtt_rif:rif_minicases:gaa|Realizacja za pomocą RIFa.]] |
| |
| |
| |
| |
| |
===== calculations (factorial) ===== | ===== calculations (factorial) ===== |
| :!::!::!:\\ |
[[hekatedev:xtt_minicases#calculations_factorial|Opis]] | [[hekatedev:xtt_minicases#calculations_factorial|Opis]] |
| |
Według mnie tej reguły nie da się zapisać za pomocą RIF. Problemem jest zapętlenie. W definicji RIF BLD nie ma możliwości zapętlania reguł i nie widzę możliwości zapisu powyższej reguły. | Według mnie tej reguły nie da się zapisać za pomocą RIF. Problem tkwi w sterowaniu wnioskowaniem. Format RIF nie przewiduje nazywania poszczególnych reguł (tag ''sentence'' nie posiada zadnych artybutów). Jest to powód nie możliwości zapisania reguły. Rozwiązaniem tego problemu byłoby zaproponowanie własnego dialektu, który posiadałby stosowne modyfikacje. |
| |
| ===== finding successors in a tree ===== |
| [[hekatedev:xtt_minicases#finding_successors_in_a_tree|Opis]] |
| |
| Zakładam tutaj, że uzywając kwantyfikatora ''Forall'', będzie on uwzględniał również wartości dodawane do zbioru podczas wykonywania reguł. |
| |
| [[pl:miw:miw08_xtt_rif:rif_minicases:fst|Proponowany zapis]]. |
| |
| |
| ===== finding successors in a tree with a hop ===== |
| [[hekatedev:xtt_minicases#finding_successors_in_a_tree_with_a_hop|Opis]] |
| |
| [[pl:miw:miw08_xtt_rif:rif_minicases:fsitwh|Proponowany zapis w RIF]]. |
| |
| ===== A2A ===== |
| FIXME |