Opis
Pokrewne projekty
Prezentacja
Sprawozdanie
Celem projektu było przeszukanie siecii za istniejącymi aplikacjami lub sposobami konwersji pomiędzy: Drools, CLIPS i RIF.
Drools to silnik reguł JBoss'a, stworzony przedewszystkim do modelowania systemów biznesowych, lecz również może być wykorzystywany w innych celach.
CLIPS to narzędzie do modelowania systemów eksperckich.
RIF to specyfikacja zapisu reguł z użyciem XML'a.
Import/eksport, konwersja
Tutaj będę opisywał znalezione możliwości konwersji z jednej reprezentacji na inną.
CLIPS --> Drools
Znalazłem na blogu Drools'a wpis sprzed roku o prowadzonych pracach nad Drools'ową powłoką interpretującą reguły zapisane w Clips'ie. Można znaleźć wpis tutaj. Odnalazłem nowsze repozytorium źródeł dotyczących tego projektu praktycznie w tym samym katalogu, który jest podany we wpisie. Oto odnalezione przeze mnie źródło. Tutaj natomiast można znaleźć dokumentację do CLIPS'owej powłoki Drools'a.
Nie jest to konwerter lecz tylko Drools'owe środowisko do korzystania z CLIPS'a. Niestety nie posiada pełni możliwości CLIPS'a.
Drools --> CLIPS
Znalezienie jakiejkolwiek wzmianki o konwersji Drools'owych reguł do CLIPS'a zakończyło się niepowodzeniem. Nigdzie temat konwersji z Drools'a do CLIPS'a nie został poruszony.
Drools --> RIF, RIF --> Drools
Prace nad specyfikacją World Wide Web Consortium do zapisu reguł: RIF - Rule Interchange Format rozpoczęły się pod koniec 2005 roku. W dalszym ciągu jest to nie zamknięty projekt, a kolejne wydania specyfikacji wprowadzają wiele zmian do wcześniejszych i dlatego na razie jest małopopularny. Brak na siecii jakichkolwiek wzmianek dotyczących możliwej konwersji pomiędzy Drools'em i RIF'em.
XML Schema --> Drools, Drools --> XML Schema
Po za programem projektu jednak natrafiłem na możliwość zapisu reguł Drools'owych za pomocą XML Schema.
W dokumentacji w rozdziale '6.9. XML Rule Language' została opisana możliwość reprezentacji reguł w formacie XML z użyciem standardu XML Schema. Drools sam posiada 2 klasy do obsługi swojego formatu DRL oraz 2 klasy do obsługi formatu XML:
XmlDumper - tworzy pliki XML reguł
XmlPackageReader - czyta pliki XML reguł
DrlDumper - tworzy pliki DRL reguł
DrlParser - czyta pliki DRL reguł
Przykład użycia (konwersja z DRL na XMLSchema):
Reader aDrlSource = new InputStreamReader( DroolsTest.class.getResourceAsStream( "/Sample.drl" ) );
DrlParser aDrlParser = new DrlParser();
PackageDescr aXmlDescr = aDrlParser.parse(aDrlSource);
XmlDumper aXmlDumper = new XmlDumper();
String aXmlString = aXmlDumper.dump(aXmlDescr);
Writer aXmlOutput = new BufferedWriter(new FileWriter("Sample.xml"));
try {
aXmlOutput.write(aXmlString);
}
finally
{
aXmlOutput.close();
}
aDrlSource.close();
Przykład użycia (konwersja z XMLSchema na DRL):
Reader aXmlSource = new InputStreamReader( DroolsTest.class.getResourceAsStream( "/Sample.xml" ) );
XmlPackageReader aXmlParser = new XmlPackageReader();
PackageDescr aDrlDescr = aXmlParser.read(aXmlSource);
DrlDumper aDrlDumper = new DrlDumper();
String aDrlString = aDrlDumper.dump(aDrlDescr);
Writer aDrlOutput = new BufferedWriter(new FileWriter("Sample.drl"));
try {
aDrlOutput.write(aDrlString);
}
finally
{
aDrlOutput.close();
}
aXmlSource.close();
Spotkania
Projekt
Materiały