Slovenský názov: Integrácia DL abdukčného API do abdukčného solvera
Vedúci: Mgr. Júlia Pukancová, PhD.
Konzultant: doc. RNDr. Martin Homola, PhD.
Rýchly prehľad pojmov
Anotácia
DL abdukčné API slúži na zjednotenie DL abdukčných solverov, ktoré
disponujú mnohými spoločnými vlastnosťami. Jeho cieľom je sprostredkovať
rozhranie na prácu s týmito solvermi. Existujúca prvotná implementácia
si vyžaduje kritické zhodnotenie, navrhnutie a zapracovanie prípadných
zmien, ako aj implementáciu do funkčného solvera, čím sa následné overí
jej použiteľnosť. Aby bolo použitie jednotlivých solverov prísupnejšie aj
pre študentov, príp. priateľskejšie demonštrovateľné na konferenciách, je
potrebné navrhnúť a implementovať grafické používateľské rozhranie (GUI),
cez ktoré bude možné vďaka API používať ľubovoľné solvery implementujúce
API.
Ciele
- Kriticky vyhodnotiť existujúcu implementáciu DL abdukčného API, navrhnúť a zapracovať možné vylepšenia.
- Integrovať API do existujúceho DL abdukčného solvera.
- Navrhnúť a implementovať GUI pre abdukčné solvery využívajúce API.
Text východiskovej časti
Kompletný text
Týždenný postup
9.2. - 16.2.
Text
Iné
- vytvorenie formálneho dokumentu popisujúceho zmeny prevedené v API, pre účely prezentácie nášho postupu externému konzultantovi Dr.Patrickovi Koopmannovi z TU Drážďany
17.2. - 23.2.
Kód
- začiatok implementácie API do MHS-MXP solvera
- základné triedy na konfiguráciu abdukcie a abducibles
- testovanie pôvodnej implementácie API - pravdepodobne nefunguje správne
Text
- sémantika a báza znalostí DL
Iné
- vytvorenie gitHub organizácie a repozitárov pre všetky súvisiace projekty
- vytvorenie stránky bakalárskej práce
24.2. - 2.3.
Kód
- hľadanie riešenia problému - MHS-MXP nevracia vysvetlenia, iba sa priamo zapisujú do logov - treba zmeniť solver samotný, aby mohol vysvetlenia vraciať cez API
- problém do budúcna - chceme implementovať vracanie nových vysvetlení hneď ako sa nájdu ("za behu"), ale merge explain režim MHS-MXP solvera nájde aj nekorektné riešenia a filtruje ich až na konci
Text
- úpravy textu z predchádzajúceho týždňa
3.3. - 9.3.
Kód
- zmeny v solveri aby mohol posielať vysvetlenia do API; preklad medzi reprezentáciou vysvetlení v solveri a tou v API
- transformácia triedy solvera ExplanationFilter, ktorá reálne robila viac než len filtrovala, na ExplanationManager, ktorý po novom slúži aj na ukladanie nájdených vyvsetlení a na operácie nad nimi
- triedy na meranie progressu
Text
- pridanie príkladov k sémantike DL
Iné
- prvá verzia prezentácie o práci na predmet Bakalársky seminár
10.3. - 16.3.
Kód
- viac druhov progress barov pre MHS-MXP, podľa situácie (3 prípady - je nastavený limit hĺbky stromu abdukčného algoritmu, je nastavený časový limit, nie je žiaden limit)
- oprava progress baru, aby vždy zobrazil 0% na začiatku abdukcie a 100% na konci
- implementácia posielania stringových argumentov MHS-MXP cez API
- zmena niektorých tried v implementácii API z interfejsov na abstraktné triedy, aby kód dával väčší zmysel
- testovanie, či MHS-MXP správne funguje aj po všetkých zmenách - úspech!
- testovanie, či MHS-MXP správne funguje cez API - problémy s logovacím nástrojom solvera a implicitnými nastaveniami abdukcie
- úspešné vyriešenie problémov s MHS-MXP implementáciou API
- dodatočné úpravy v API - asynchrónny režim bol oddelený do samostatného interfejsu, keďže ho nemusí podporovať každý solver
Text
17.3. - 23.3.
Kód
- odstránenie daľsích generických typov z API, aby bola umožňená čo najviac abstraktná práca z jednotlivými solvermi
- interfejsy AbductionManagerFactory a AbducibleContainerFactory boli spojené do jedného AbductionFactory, do ktorého pribudlo viacero metód na praktickú a abstraktnú prácu s triedami solverov
- manuálne mergovanie MHS-MXP implementujúceho API s najnovšou verziou MHS-MXP, ktorá bola vyvíjaná v rámci inej práce nezávisle od našej verzie
- objavenie a oprava bugov s axiom-based abducibles v MHS-MXP implementácii
- testovanie solvera LETHE-Abduction, objavenie bugu
Text
- hrubá verzia rozhodovacích problémov v DL
24.3. - 30.3.
Kód
- upozornenie autora LETHE-Abduction na nájdený bug
- riešenie problémov s nekompatibilnými verziami Javy a OWL API medzi LETHE-Abduction a našimi projektmi
- testovanie opraveného LETHE-Abduction, problém - nájdené vysvetlenie je v solveri reprezentované len ako String, vnútorne solver nenarába s OWL API a nemáme možnosť upravovať zdrojový kód
Text
- študovanie materiálov o abdukcii
24.3. - 30.3.
Kód
- úprava triedy ExplanationWrapper v API, ktorá zaobaľuje vysvetlenia, aby obsahovala aj prípadnú stringovú reprezentáciu vyvsetlenia
- vďaka tomu môže LETHE implementácia API vracať vysvetlenia ako String bez OWL API axiómov
- plán do budúcna - ak zvýši čas, parsovať vysvetlenia z LETHE a vracať ich aj ako OWL API axiómy
- úspešné dokončenie implementácie API v LETHE-Abduction
- úpravy MHS-MXP podľa najnovších zmien v API
Text
- študovanie materiálov o ontológiách
- hrubá verzia textov o abdukcii a MHS-MXP solveri
31.3. - 6.4.
Iné
- študovanie materiálov o algoritmoch MHS a MXP
- návrh používateľského prostredia pre grafickú aplikáciu využívajúcu API
7.4. - 13.4.
Text
Iné
- výroba prototypu (iba dizajn) grafickej aplikácie pomocou nástroja Figma
- Veľká noc ;)
14.4. - 20.4.
Kód
- základna kostra grafickej aplikácie v JavaFX
Text
- dokončenie rozhodovacích problémov v DL
- abducibles, dokončenie abdukcie
- jazyk OWL, OWL API
Iné
- prieskum knižníc rozširujúcich možnosti JavaFX
- osvojenie práce s JavaFX FXML
21.4. - 27.4.
Kód
- riešenie problémov s kompatibilitou medzi JavaFX aplikáciou a ostatnými projektami (nesúlad medzi žiadanými verziami Javy)
- integrácia MHS-MXP solvera do grafickej aplikácie - zatiaľ iba samotné spúšťanie abdukcie, input bol zadaný ručne v kóde, nie cez GUI
- objavenie a oprava bugu spôsobeného nesprávnou synchronizáciou threadov (v jednom threade beží abdukcia, v druhom sa vypisujú nájdené vysvetlenia a updatuje GUI progress bar)
- oprava triedy AbductionMonitor z Abduction API, vďaka ktorej funfuje multi-threadový režim - aj pri správnej synchronizácii sa strácali niektoré nájdené vysvetlenia
- náhodné objavenie bugu MHS-MXP implementácie, ktorý spôsobuje, že zavolanie abdkcie viackrát s tou istou ontológiou nevracia správne výsledky - problém je spôsobený OWL API a reasonerom, ktorý sa interne používa v MHS-MXP, takže ho pravdepodobne nedokážeme napraviť
Text
- dotiahnutie časti o predchádzajúcej verzii API
28.4. - 4.5.
Kód
- funkcie na parsovanie textových vstupov v grafickej aplikácii
- zadávanie časového limitu a solver-specific parametrov cez GUI
- zmeny GUI podľa toho, ktorý solver je zvolený - systém automatický zistí, ktoré funkcionality Abduction API má solver implementované, a skryje grafické prvky pre neimplementovanú funkcionalitu
- testovanie grafickej aplikácie viedlo k objaveniu rôznych maličkých nedostatkov v predchádzajúcich projektoch
- objavenie bugu v MHS režime MHS-MXP solvera, výpomoc s hľadaním chyby v kóde (síce sa to nedotýka mojej práce, ale tak čo, treba pomôcť)
Text
- dokončenie sekcie o MHS-MXP solveri a predchádzajúcej implementácii
- sekcia o solveri LETHE-Abduction
- zredukovanie kapitolky o ontológiách na pár viet v úvode deskripčných logík - strán máme aj tak viac než dosť
- základ kapitol o zmenách v návrhu API a o grafickej aplikácii - sekcie relevantné pre kód, s ktorým tento týždeň robím
Iné
- zverejnenie východiskovej časti a aktualizácia bibliografie na stránke
5.5. - 11.5.
Kód
- zmeny v implementáciách API pre MHS-MXP aj LETHE, aby sa odchytávanie výnimiek a výpisov do konzoly vykonávalo v API a nie až v GUI aplikácii/u end usera
- prerobenie logovacieho systému v MHS-MXP - vytvorenie samostatnej triedy Printer
- napojenie LETHE do GUI aplikácie
- výber solvera v aplikácii
- vypisovanie logov a výnimiek v aplikácii
Zdroje
- Owl 2 Web Ontology Language Document Overview (second edition).
https://www.w3.org/TR/owl2-overview/, Dec 2012. Accessed: 2023-
04-21.
- F. Baader, D. Calvanese, D. L. McGuinness, D. Nardi, and P. F. Patel-Schneider, editors. The Description Logic Handbook: Theory, Implementation, and Applications. Cambridge University Press, 2003.
- F. Baader, I. Horrocks, and U. Sattler. Description logics. In F. van
Harmelen, V. Lifschitz, and B. W. Porter, editors, Handbook of Knowledge Representation, pges 135–179. Elsevier, 2008.
- J. Boborová. MHS-MXP: Abox abduction solver. https://github.com/boborova3/MHS-MXP-algorithm#readme. Accessed: 2023-04-28
- C. Elsenbroich, O. Kutz, and U. Sattler. A case for abductive reasoning
over ontologies. In B. C. Grau, P. Hitzler, C. Shankey, and E. Wallace,
editors, Proceedings of the OWLED*06 Workshop on OWL: Experiences
and Directions, 2006
- N. Guarino, D. Oberle, and S. Staab. What is an ontology? In S. Staab and R. Studer, editors, Handbook on Ontologies, 2009.
- Z. Hlávková, M. Homola, P. Koopmann, and J. Pukancová. An API
for DL abduction solvers. In O. Arieli, M. Homola, J. C. Jung, and
M. Mugnier, editors, Proceedings of the 35th International Workshop of Description Logics, 2022
- Z. Hlávková. DL Abduction API. Master’s thesis, 2022.
- M. Homola, J. Pukancová, I. Balintová, and J. Boborová. Hybrid MHS-MXP Abox abduction solver: First empirical results. In O. Arieli,
M. Homola, J. C. Jung, and M. Mugnier, editors, Proceedings of the
35th International Workshop on Description Logics, 2022.
- M. Horridge and S. Bechhofer. The OWL API: A java API for OWL
ontologies.
- M. Horridge, N. Drummond, J. Goodwin, A. L. Rector, R. Stevens, and
H. Wang. The manchester OWL syntax. In B. C. Grau, P. Hitzler,
C. Shankey, and E. Wallace, editors, Proceedings of the OWLED*06
Workshop on OWL: Experiences and Directions, 2006
- A. C. KAKAS, R. A. KOWALSKI, and F. TONI. Abductive Logic Programming.
- S. Klarman, U. Endriss, and S. Schlobach. Abox abduction in the description logic ALC.
- P. Koopmann. LETHE-Abduction: A tool for signature-based abduction for ALC knowledge bases. https://lat.inf.tu-dresden.de/~koopmann/LETHE-Abduction/index.html. Accessed: 2023-03-15.
- P. Koopmann, W. Del-Pinto, S. Tourret, and R. A. Schmidt. Signature-based abduction for expressive description logics. In D. Calvanese, E. Erdem, and M. Thielscher, editors, Proceedings of the 17th International
Conference on Principles of Knowledge Representation and Reasoning, 2020.
- S. Rudolph. Foundations of description logics. In A. Polleres,
C. d’Amato, M. Arenas, S. Handschuh, P. Kroner, S. Ossowski, and
P. F. Patel-Schneider, editors, Reasoning Web.