Ontologia SemWeb2014-SMEOntology-Padykula 2.1.1

Transkrypt

Ontologia SemWeb2014-SMEOntology-Padykula 2.1.1
Ontologia SemWeb2014-SMEOntology-Padykula
2.1.1. Zakres ontologii
Struktura organizacyjna i hierarchiczna firmy
2.1.2. Pytania
Jakie osoby mają bezpośrednią kontrolę nad osobą X?
Jakie osoby mają okazję współpracować z osobą X?
Do jakiego działu należy osoba X?
Pod jaki dział podpada dział Y?
Jakie działy zawiera dział Y?
2.2.2. Ponowne użycie
Upper-Level Process Ontology
http://www.ip-super.org/ontologies/process/upo/v2.0.1
Person, OrganisationUnit
W praktyce niestety okazało się, że chyba nie ma sposobu na 'podkradanie'
fragmentów ontologii.
2.3.1. Ważne terminy
Person (w zamierzeniu 'podkradana' z UPO), OrganisationUnit (w zamierzeniu
'podkradana' z UPO; to, co wstępnie nazywałem 'działem'), Senior, Regular,
Junior, Intern, Creation, Support&Maintenance, Operations
Autonomy/responsibility, can be described as
cooperates with, reports to, leads, works in, supervises
2.5.2. Problemy z cechami
Cokolwiek z Domain może być w relacji z czymkolwiek z Range – nie da się na
przykład stwierdzić, że Klasa1 może być w relacji R z Klasą2 i Klasą3, a Klasa2
tylko z Klasą3.
Według tutoriala w Protege powinien być jakiś typ wyliczeniowy o nazwie
Symbol, ale WebProtege powiedział jedynie 'Symbol does not exist', a
podpowiedzi nie sugerują niczego sensownego ani dla symbol, ani enumeration
(ani fragmentów tych fraz).
Stworzyłem nowy typ danych dla range, ale nigdzie nie widzę możliwości
doprecyzowania go w jakikolwiek sposób. Można używać na przykład typów z
xsd, ale to nijak nie wyczerpuje nawet przeciętnej fantazji.
2.6. Tworzenie instancji
Niestety podczas tworzenia instancji WebProtege uparcie glitchowało się i w
oknie z instancjami usiłowało listować instancje dla jednej i tej samej instancji,
na której się zawieszało, zamiast dla klas. Dlatego ostatecznie dodałem ich
[instancji] względnie mało oraz mało zależności pomiędzy nimi, bo praktycznie
co druga-trzecia operacja z nimi wymagała zamknięcia i ponownego otwarcia
projektu. WebProtege szczególnie upodobał sobie jedną instancję Creation,
Graphics team i uparcie próbował wyświetlać instancje tejże instancji.
2.7.1. Refactoring ontologii
Tutorial sugeruje spięcie ze sobą relacji lustrzanych, ale w narzędziu nie widzę
nigdzie takiej opcji, dlatego na przykład reportsTo i supervises są dwiema
zupełnie różnymi i niezależnymi relacjami. Najbardziej sensownym miejscem
na oznaczenie relacji jako zwrotnej w parze z inną byłoby Annotations, ale
podpowiedź edytora nie reaguje ani na inverse, ani na mirror, ani na reflexive
(ani na ich fragmenty).
3.4. Krótka refleksja o życiu, wszechświecie i całej reszcie procesie rozwijania
ontologii
Responsywność interfejsu WebProtege jest porównywalna z responsywnością
systemów operacyjnych na komputerach w niektórych legendarnych
laboratoriach (a.k.a. trupiarniach) na AGH, niezależnie od sprzętu
(prawdopodobnie ktoś napisał go [interfejs] tak, że każda akcja musi
komunikować się z serwerem). Przy uczeniu się czegoś zupełnie od nowa
dobrze jest mieć możliwość jak najwięcej klikać, pisać i eksperymentować,
WebProtege zdecydowanie nie ułatwia takiego empirycznego podejścia.
Poszczególne zakładki zarówno zakładki jak i elementy w zakładkach łatwo
rozsynchronizowują się między sobą i co gorsza nie ma jakiegoś sposobu na
proste zsynchronizowanie ich z powrotem. Kiedy na przykład próbuję zmienić
nazwę klasy, to nie zmienia się ona w drzewie klas, a w końcu synchronizuje
się tak, że to do pola edycji klasy (gdzie była nowa nazwa klasy) trafia nazwa z
drzewa (która była starsza).
Praca z instancjami jest praktycznie niemożliwa, edytor nonstop blokuje się na
próbie wyświetlenia instancji dla instancji i jedynym sposobem na edycję
czegoś związanego z instancjami (dopóki edytor znów się nie zablokuje, co
zazwyczaj następuje szybciej niż najszybszy nokaut Gołoty) to załadowanie
projektu od nowa.
Opcje udzielania dostępu przy wykluczeniu ogólego dostępu nie chcą się
zapisać (tj. mogę dodawać sobie kogo chcę do upoważnionych do oglądania
ontologii, ale później to i tak się resetuje, niezależnie od tego, ile bym czekał).
Podsumowując: gdybym był zmuszony do budowania kolejnej ontologii,
usprawniłbym ten proces przede wszystkim przez znalezienie choć trochę mniej
zawodnego narzędzia.
Explicit feedback:
Zbierając wszystkie aluzje z całego tekstu w jednym miejscu – nie, WebProtege
zdecydowanie nie podoba mi się jako narzędzie do czegokolwiek (chyba że do
badania ludzkiej cierpliwości). Działa tak, jakby był pisany 'na odwal' przez
studenta czwartego-piątego roku (pierwszakowi jeszcze by przynajmniej
chociaż trochę zależało). Jest beznadziejny zarówno na poziomie
wykonawczym (tych bugów nikt chyba nawet nie próbował zamieść pod
dywan), jak i koncepcyjnym (nie wierzę, że dobry pomysł na implementację da
się tak równomiernie i systematycznie źle wprowadzić w życie) implementacji.