Propozycje tematów magisterskich na rok akademicki 2020/21

  1. Embeddingi dla wyrażeń klasowych (ang. class expressions) z języka OWL w zadaniu przybliżonego wnioskowania. Chciałbym mieć sieć neuronową, która na wejściu otrzymuje dwa embeddingi, a na wyjściu udziela odpowiedzi czy wyrażenie klasowe odpowiadające lewemu embeddingowi jest podklasą wyrażenia klasowego odpowiadającego prawemu embeddingowi. Ta sieć ma być niezależna od ontologii i wykorzystywanego przez nią słownictwa, tj., zmieniamy ontologię i wyrażenia klasowe, generujemy dla tych wyrażeń w kontekście tej ontologii embeddinigi i wrzucamy do sieci neuronowej, która daje nam odpowiedź.

    Ontologii jest dużo (np. [1]), wyrażenia klasowe można brać z nich i/lub generować losowo [2], poporawność odpowiedzi pozwoli zweryfikować reasoner (np. Protege [3] albo HermiT [4]).

    Wydaje mi się, że główna trudność będzie polegała na konstrukcji embeddingów, które poradzą sobie z wyrażeniami klasowymi różnej długości, z ontologiami o różnym stopniu skomplikowania, a jednocześnie zachowają jak najwięcej z oryginalnej semantyki.

    [1] https://bioportal.bioontology.org/ a to nie jedyne repozytorium
    [2] https://link.springer.com/chapter/10.1007%2F978-3-319-98192-5_4
    [3] http://protegeproject.github.io/protege/getting-started/
    [4] http://www.hermit-reasoner.com/
  2. Wariant tematu 1, w którym zamiast patrzeć na dwa wyrażenia klasowe patrzymy czy dany obiekt (indywiduum, ang. individual) należy do zadanego wyrażenia klasowego. Wydaje mi się, że to jest trudniejsze zadanie, bo łączy dwa światy: wyrażenia klasowe i obiekty do nich należące, ale za to jest czytelniejsze zadanie: automatyczna typizacja obiektów nowododawanych do ontologii i wykrywanie błędów w istniejącej typizacji.
  3. Ekstrakcja wiedzy z (abstraktów?) artykułów dotyczących żywienia. Budujemy graf wiedzy, w którym pokarmy łączą się (być może niebezpośrednio) z wpływem na zdrowie. Trzeba zacząć od zebrania korpusu takich streszczeń/artykułów, a potem wykryć encje które nas interesują (pokarmy, składniki pokarmowe, efekty zdrowotne) i relacje (np. poprawia, pogarsza, nie wpływa). Pomogą w tym istniejące ontologie dotyczące żywności i żywienia, np. FoodOn [5] Pewnie trochę trzeba będzie poetykietować danych, można to robić samemu, można pomyśleć o jakimś crowdsourcingu (np. Amazon Mechanical Turk). Potem na tak zaetykietowanych danych trzebaby dotrenować jakieś klasyfikatory. Oceniać rozwiązanie trzebaby przez porównanie wyników automatycznej ekstrakcji ze złotym standardem, czyli wynikami ekstrakcji ręcznej, zrobionej przez człowieka. Nie ukrywam, że ten temat jest bardziej rozmyty, ale jednocześnie dużo bliższy namacalnym zastosowaniom. [5] https://foodon.org/