Projekt jest finansowany z funduszy Narodowego Centrum Nauki w ramach 3. konkursu PRELUDUIM nr UMO-2011/03/N/ST6/00886.
Głównym celem badań jest opracowanie nowej metody wymiany wiedzy regułowej. Obecnie istniejące narzędzia do modelowania systemów regułowych (takie jak CLIPS, Jess, Drools, OpenRules) dostarczają różnych języków przy pomocy których reguły mogą zostać zdefiniowane. Stanowią one jednak głównie specjalizowane języki programowania. Faktem jest, że posiadają one dobrze określoną składnię, jednak semantyka zakodowanej wiedzy rzadko kiedy posiada interpretację logiczną. Proponowane badania mają na celu opracowanie formalizmu dla wspomnianych języków regułowych, oraz dostarczenie formalnej metody wymiany wiedzy pomiędzy tymi językami.
Rezultatem projektu będzie formalna metoda pozwalająca na semantycznie spójną wymianę wiedzy regułowej. Zaletami proponowanej metody będą:
Poniższa lista przedstawia najważniejsze osiągnięcia wypracowane w ramach Projektu. Wszystkie z nich stanowią oryginalny wkład w dziedzinę i rozwiązanie postawionego we wniosku problemu semantycznej wymiany wiedzy regułowej:
Oprócz powyższych osiągnięć, prace zrealizowane dzięki Projektowi zaowocowały złożeniem i obroną z wyróżnieniem pracy doktorskiej Kierownika Projektu Krzysztofa Kaczora pt. Knowledge Formalization Methods for Semantic Interoperability in Rule Bases kierowanej i promowanej przez opiekuna Naukowego Projektu dr. hab. inż. Grzegorza J. Nalepę. W rozprawie można znaleźć wszystkie szczegóły na temat powyższych osiągnięć wraz opisem zidentyfikowanych ograniczeń zaproponowanego podejścia i planowanymi tematami przyszłych prac.
Ostatecznym wynikiem prac wykonanych w Projekcie jest sformalizowana metoda pozwalająca na semantycznie spójną wymianę wiedzy regułowej pomiędzy reprezentacjami wspieranymi przez narzędzia CLIPS, Jess, Drools czy też OpenRules. Opracowana metoda umożliwia efektywną wymianę wiedzy regułowej poprzez translację która działa zarówno na poziomie syntaktycznym jak i semantycznym. Oznacza to, że podczas tłumaczenia wykonywana jest translacja nie tylko składni języka regułowego ale brane są także pod uwagę kwestie związane z semantyką zgromadzonej wiedzy. O ile zadanie tłumaczenia składni jest relatywnie łatwe do wykonania o tyle tłumaczenie semantyki nie jest problemem trywialnym. W celu lepszego usystematyzowania kwestii związanych z tym problemem, w Projekcie wprowadzono rozróżnienie semantyki bazy wiedzy na dwa odrębne poziomy abstrakcji. Pierwszy poziom jest związany z interpretacją reguł oraz ich poszczególnych elementów składowych i stanowi semantykę statyczną bazy wiedzy. Natomiast drugi poziom jest związany z interpretacją struktury bazy wiedzy i określa semantykę operacyjną (dynamiczną). Uwzględnienie wszystkich trzech poziomów abstrakcji (składni, semantyki statycznej i semantyki operacyjnej) bazy wiedzy pozwala na efektywne tłumaczenie wiedzy przez które, w Projekcie, rozumie się takie tłumaczenie w którym zarówno oryginalna jak i przetłumaczona baza wiedzy pozwalają na generowanie analogicznych wniosków dla analogicznych stanów początkowych. W celu wykazania poprawności proponowanego działania metody, w końcowej fazie Projektu przeprowadzona została teoretyczna i praktyczna ewaluacja zdefiniowanej metody.
Ewaluacja teoretyczna polegała na porównaniu semantyki operacyjnej reguł znajdujących się w bazach wiedzy, które zostały otrzymane jako rezultat translacji wykonanej z wykorzystaniem opracowanej metody. Analiza ta miała na celu wykazanie, że zaproponowana translacja struktury bazy wiedzy zachowuje jej semantykę i prowadzi do tego samego stanu końcowego systemu co struktura w bazie oryginalnej. W celu przeprowadzenia tej analizy wprowadzono odpowiednią notację przy pomocy której opisano semantykę operacyjną wszystkich zidentyfikowanych elementów determinujących strukturę bazy wiedzy. Przeprowadzone na jej podstawie rozważania pokazują, że zaproponowana translacja zachowuje semantykę, a co za tym idzie, stan końcowy osiągany przed i po translacji jest taki sam.
Druga część ewaluacji miała wymiar praktyczny. W ramach tej ewaluacji wykonano tłumaczenie bazy wiedzy przykładowych systemów regułowych, wyrażonych za pomocą sformalizowanego modelu, do wybranych języków i porównano rezultaty otrzymane po ich uruchomieniu. Poniżej przedstawiono przykładowe rezultaty dla modelu PLI – jednego z rozważanych systemów decyzyjnych, którego model wymaga zdefiniowania nietrywialnej struktury bazy wiedzy. System ten definiuje sposób obliczania wartości ubezpieczenia samochodowego OC w zależności od takich czynników jak: okres bezwypadkowej jazdy, kategoria kierowcy, pojemność samochodu, liczba poduszek powietrznych zamontowanych w samochodzie, itp. Jako rezultat uruchomienia wnioskowania w bazach wiedzy, otrzymanych na drodze translacji wykonanej zgodnie z opracowaną metodą, w każdym przypadku otrzymano taką samą wartość ubezpieczenia OC. Poniższe przykłady pokazują rezultaty produkowane w trakcie wnioskowania w bazach wiedzy zapisanych językach CLIPS oraz Drools:
-------------------------------------------------------- SUBITO: Execution of ploc-clips.clp using CLIPS... -------------------------------------------------------- 1 The base charge is set to 753 2 Driver class has been increased from 1 to 2 3 90% of base charge because of the driver class (2) 4 +30% because of the small driver experience (2) that is less than 3 years 5 -10% because of the single payment 6 -10% because driver continues the previous agreement 7 +15% because of the car age (12) that is older than 10 years 8 Modifying insurance value 753 by 15% of basecharge 753 9 Modifying insurance value 865.95 by -10% of basecharge 753 10 Modifying insurance value 790.65 by 30% of basecharge 753 11 Modifying insurance value 1016.55 by -10% of basecharge 753 12 Modifying insurance value 941.25 by -10% of basecharge 753 13 The final amount to pay is equal to 865.95 real 0m0.026s user 0m0.024s sys 0m0.000s -------------------------------------------------------- SUBITO: Execution of ploc-clips.clp using CLIPS...done --------------------------------------------------------
-------------------------------------------------------- SUBITO: Execution of ploc-drools.drl using Drools... -------------------------------------------------------- 1 Driver class has been increased from 1 to 2 2 The base charge is set to 753 3 -10% because of the single payment 4 -10% because driver continues the previous agreement 5 +15% because of the car age (12) that is older than 10 years 6 +30% because of the small driver experience (2) that is less than 3 years 7 90% of base charge because of the driver class (2) 8 Modifying insurance value 753.0 by -10.0% of basecharge 753.0 9 Modifying insurance value 677.7 by 30.0% of basecharge 753.0 10 Modifying insurance value 903.6 by 15.0% of basecharge 753.0 11 Modifying insurance value 1016.5500000000001 by -10.0% of basecharge 753.0 12 Modifying insurance value 941.2500000000001 by -10.0% of basecharge 753.0 13 The final amount to pay is equal to 865.9500000000002 real 0m2.792s user 0m4.596s sys 0m0.160s -------------------------------------------------------- SUBITO: Execution of ploc-drools.drl using Drools...done --------------------------------------------------------
W przypadku tych dwóch modeli mamy doczynienia z inną sekwencją uruchamianych reguł powstałą w skutek innej kolejności dopasowywania faktów do reguł i tworzenia ich aktywacji (instancji) przez silnik wnioskujący. Z tego powodu można zaobserwować różną kolejność komunikatów pojawiających się w liniach 3 - 7. Niemniej jednak w tym przypadku zmieniona kolejność nie jest wynikiem błędu translacji i jest dozwolona ponieważ nie występują zależności pomiędzy tymi regułami. Dlatego też nie wpływa ona na finalną wartość ceny ubezpieczenia.
Dodatkowo w ramach praktycznej ewaluacji, przeprowadzono także translację oryginalnej bazy wiedzy bez uwzględniania jej struktury, czyli w taki sposób jak mogłaby zostać dokonana przez aktualnie istniejące metody takie jak KIF, RIF, RuleML czy też R2ML.
Wnioskowanie uruchomione w otrzymanej w ten sposób bazie produkuje konkluzje niezgodne z konkluzjami otrzymanymi w oryginalnej bazie wiedzy co świadczy o tym, że struktura nie może być pomijana w trakcie translacji i wskazuje na słuszność założeń przyjętych w pracy.
W poniższym przykładnie łatwo zauważyć, że atrybut class
jest wielokrotnie zwiększany i finalnie otrzymuje wartość 9 (zamiast prawidłowej 2).
Niepoprawna wartość tego atrybutu propaguje się przez cały proces wnioskowania i sprawia, że wyliczona wartość ubezpieczenia jest również niepoprawna (489.45 zamiast 865.95).
1 Driver class has been increased from 1 to 2 2 Driver class has been increased from 2 to 3 3 Driver class has been increased from 3 to 4 4 Driver class has been increased from 4 to 5 5 Driver class has been increased from 5 to 6 6 Driver class has been increased from 6 to 7 7 Driver class has been increased from 7 to 8 8 Driver class has been increased from 8 to 9 9 The base charge is set to 753 10 -10% because of the single payment 11 -10% because driver continues the previous agreement 12 +15% because of the car age (12) that is older than 10 years 13 +30% because of the small driver experience (2) that is less than 3 years 14 40% of base charge because of the driver class (9) 15 Modifying insurance value 753.0 by -60.0% of basecharge 753.0 16 Modifying insurance value 301.2 by 30.0% of basecharge 753.0 17 Modifying insurance value 527.1 by 15.0% of basecharge 753.0 18 Modifying insurance value 640.0500000000001 by -10.0% of basecharge 753.0 19 Modifying insurance value 564.7500000000001 by -10.0% of basecharge 753.0 20 The final amount to pay is equal to 489.4500000000001
Ewaluacja praktyczna została przeprowadzona przy pomocy narzędzia SUBITO (Samurai Batch Integration Tool), które powstało w celu praktycznego wsparcia zaproponowanej metody i jest jednym z rezultatów Projektu. Głównym zadaniem tego narzędzia jest wykonanie translacji bazy wiedzy wyrażonej przy pomocy modelu formalnego do rozważanych języków regułowych a następnie ich uruchomienie w środowisku dedykowanym dla danej reprezentacji. Narzędzie wykorzystuje XML-owy format MCS (Model Concrete Syntax ) zawierający odpowiedniki wszystkich elementów modelu formalnego, którego składnia została zdefiniowana przy pomocy XSD (XML Schema Definition). Kompletną definicję tego języka można znaleźć poniżej.