To jest stara wersja strony!
SWRL_XML Intro
SWRL_XML jest częścią projektu heart. Dlatego też przed uruchomieniem SWRL_XML należy ściągnąć i zainstalować program heart.
Pobierz
Wiadomości
Uruchomienie
Plik swrl_xml.pl należy rozpakować do folderu, w którym jest zainstalowany heart (czyli tam gdzie m.in. plik heart.pl).
Należy załadować plik swrl_xml.pl. Spowoduje to automatyczne dołączenie plików heart.pl:
?- [swrl_xml].
Należy załadować plik z regułami, np. therm-rt.pl wpisująć:
?- [therm-rt].
Generowanie XML uzyskuje się przez:
?- swrl_xml_gen('output.txt'). % generowanie do pliku output.txt
?- swrl_xml_gen. % generowanie w konsoli.
Przykłady translacji
therm-rt.pl
examples-rt.pl
Propozycje rozszerzeń
Wprowadzenie predykatów obliczeń matematycznych binarnych: sin, cos, divide, pow, …
Obsługa nielicznych predykatów n-arnych: add, multiply, …
Utworzenie sztucznych dla SWRL tabel regułowych np.:
<owlx:Individual owlx:name="ms">
<owlx:ObjectPropertyValue owlx:property="rules">
<owlx:Individual>
<owlx:ObjectPropertyValue owlx:property="1">
<owlx:Individual owlx:name="#ms/1/1" />
</owlx:ObjectPropertyValue>
<owlx:ObjectPropertyValue owlx:property="2">
<owlx:Individual owlx:name="#ms/2/1" />
</owlx:ObjectPropertyValue>
(... reszta reguł ms/_/_ ...)
</owlx:Individual>
</owlx:ObjectPropertyValue>
<owlx:ObjectPropertyValue owlx:property="link_from">
<owlx:Individual>
<owlx:ObjectPropertyValue owlx:property="1">
<owlx:Individual owlx:name="#month" />
</owlx:ObjectPropertyValue>
</owlx:Individual>
</owlx:ObjectPropertyValue>
<owlx:ObjectPropertyValue owlx:property="link_to">
<owlx:Individual>
<owlx:ObjectPropertyValue owlx:property="1">
<owlx:Individual owlx:name="#season" />
</owlx:ObjectPropertyValue>
</owlx:Individual>
</owlx:ObjectPropertyValue>
</owlx:Individual>
co odpowiadałoby zapisowi:
xschm ms: [month] ==> [season].
Błędy
Zaimportowane predykaty z Vardy z pliku varda_xtt.pl do generowanie XML posiadają buga.
Predykat xml_tag_open/3 w niektórych przypadkach zwraca więcej niż 1 rezultat.
Aktualna wersja obchodzi w pewien sposób ten błąd jednocześnie generując inny, mniej poważny (wybrałem „mniejsze zło” ).
W generowanym SWRL XML zamiast wszystkich zmiennych <ruleml:var> pojawia się tylko pierwsza z nich.
W podanych przykładach zamiast:
<ruleml:var>day</ruleml:var>
powinno być:
<ruleml:var>day</ruleml:var>
<ruleml:var>hour</ruleml:var>
<ruleml:var>today</ruleml:var>
<ruleml:var>operation</ruleml:var>
<ruleml:var>month</ruleml:var>
<ruleml:var>season</ruleml:var>
<ruleml:var>therm_set</ruleml:var>