Opis

Grzegorz Stopa, gregor@student.agh.edu.pl
Opis projektu Drools_X ze strony miw2009_tematy:

:!: How we can use Drools to model rules for the SemWeb in RIF, SWRL (import/export).

How we can use Drools to import/export/model rules for/from CLIPS and Jess.

Pokrewne projekty

XTT_Drools - Szymon Frenkel
Drools_Tools - niestety nikt się nim nie zajmuje

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

pl/miw/2009/miw09_drools_x.txt · ostatnio zmienione: 2017/07/17 08:08 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0