Wiele problemów w projektach informatycznych, to skutki źle zbudowanej ontologii lub jej braku w projekcie. Niemal co druga firma (46 proc. badanych przez AIIM, 2022) ocenia, że przeciwdziałanie chaosowi informacyjnemu wewnątrz ich organizacji ?wypada słabo? lub ?wymaga poprawy?. Obecnie większość przetwarzanych w firmach treści to treści częściowo lub nawet całkowicie nieustrukturyzowane. Zarzadzanie nimi wymaga nowych metod .
[toc]
Czym jest ontologia
Ontologia jest często nazywana reprezentacją wiedzy. Pozostaje pytanie co jest tu tą wiedzą? Czy wiedzą jest to co oznacza w określonym języki (tu polskim) słowo “samochód”, czy wiedzą jest to, kto wczoraj jechał, gdzie, kiedy i jakim samochodem? Nie jest ontologią sprawozdanie, więc jest nią słownictwo użyte do stworzenia tego sprawozdania. Dlatego często ontologię nazywa się także modelem pojęciowym ale nie jest to “domain model” bo model dziedziny to nie model pojęciowy!
An object model of the domain that incorporates both behavior and data [Obiektowy model dziedziny, który zawiera zarówno opis zachowania systemu, jak i dane w nim przetwarzane]
Model dziedziny to model opisujący mechanizm działania/funkcjonowania czegoś. W nauce model to opis (wyjaśnienie) zjawiska . W inżynierii oprogramowania jest to logika dziedzinowa czyli to “jak to działa” np. jak wystawić poprawną fakturę na podstawie zamówienia, czy też jak kontrolować rezerwowane w hotelu pokoje .
Ontologia jest definiowana jako “część filozofii, która bada, czym jest istnienie” (Cambridge Dictionary). Słownik języka polskiego pokrewnie: “nowsze określenie metafizyki jako działu filozofii”. W encyklopedii PWN znajdziemy:
ontologia [gr. on óntos ?będący?, ?byt?, óntos on ?rzeczywiście będący, istniejący?, lógos ?słowo?, ?nauka?, ?teoria?]
(https://encyklopedia.pwn.pl/szukaj/ontologia.html)
Gdzie indziej czytamy:
ontology noun /?n?t?l?d?i/ /??n?t??l?d?i/
(Oxford Advanced Learner’s Dictionary)
??[uncountable] a branch of philosophy that deals with the nature of existence
??[countable] a list of concepts and categories in a subject area that shows the relationships between them
Tak więc jest to owszem “dział filozofii zajmujący się naturą bytu”, jednak jest to także
Obecnie, w branży jaką jest informatyka, ontologia jest określana jako narzędzie “modelowanie i reprezentowanie struktur wiedzy” .
Czytamy tamże: “Za najważniejsze uważamy kategoryzację i hierarchizację pojęć (a tym samym ich definicji). Kategoryzacja oznacza zdolność do porządkowania symboli, pojawiających się w komunikacie należących do ściśle określonej grupy obiektów, posiadających określone cechy. Komunikacji ludzkiej daleko do doskonałości, jednak staramy się, by ten abstrakcyjny model świata stał się sformalizowanym i samodzielnym bytem.” Pojawia się tu “abstrakcyjny model świata”, pytanie czym on jest? Tym co jest i można nazwać (ontologia jako natura bytu)? Czy może tym co wyjaśnia “Jak i do czego doszło?”
Problemy projektowania
Powszechnym problem w projektach informatycznych jest mylenie faktów z obiektami oraz pojęć z ich cechami (definicje). Różnicę między faktami a obiektami szerzej opisałem niedawno , zaś pojęcie nazwy rzeczy i jej atrybutów (definicje sprawozdawcze a atrybutowe) opisuje ). Problem ten pokazano na schemacie poniżej:
Lewy diagram to model pojęciowy (ontologia, tu taksonomia pojęcia trasa) i jest niesłusznie używany (utożsamiany z) jako “model dziedziny systemu” lub “model danych” (o “złych diagramach klas” pisałem wielokrotnie na blogu).
Modele struktury informacji i modele systemów, które tę informacje przetwarzają, to odrębne modele. Model dziedziny systemu (mechanizm jego działania) tworzymy jako model przetwarzania i przechowywania informacji (oprogramowanie, o ile nie jest grą symulacyjną, przetwarza informacje o świecie a nie świat).
Tak więc ontologia to “formalna, jawna specyfikacja konceptualizacji” (nazewnictwo). Kluczowymi cechami ontologii są: jednoznaczność, spójność, rozszerzalność. Proces budowania ontologii często jest opisywany jako: definiowanie klas i ich hierarchicznej struktury, definiowanie własności klas .
Nauka o znaczeniu słów to semiotyka a za jej ojca uznaje się (autor powieści “Imię róży”) Umberto Eco . Prekursorem nauki o znaczeniu słów był Ullman, który opisał tak zwany trójkąt Ullmana, później zwany także trójkątem semiotycznym . O znaczeniu słów w języku pisał Ogden .
Trójkąt ten wiąże nazwę (konotacja, tu górny wierzchołek), jej definicję (definicja, dolny lewy wierzchołek) i (wszystkie) przedmioty określane tą nazwą (denotacja, desygnaty nazwy, prawy dolny wierzchołek).
Object Management Group opublikował notację SBVR (Semantics Of Business Vocabulary And Business Rules) . Specyfikacja ta opisuje metody budowania i dokumentowania słowników i reguł biznesowych. Jest to bardzo ważna specyfikacja, bo opisuje metodę opisu, dokumentowania mechanizmu działania organizacji z użyciem reguł biznesowych, te zaś są budowane z użyciem pojęć, które muszą być jednoznaczne i spójne, a ich zbiór: przestrzeń pojęciowa, musi być kompletny (patrz też opis w SBVR…).
W specyfikacji tej znajdziemy rozdział dedykowany omawianej tu tematyce. Zawiera on bardzo precyzyjnie opisany trójkąt semiotyczny i to jak konstrukcja ta jest wykorzystywana do budowy Jednolitego Biznesowego Słownika Pojęć.
Generalnie autorzy są zgodni co do tego, że ontologie to narzędzie dokumentowania wiedzy, co oznacza, że nie mniej istotnym elementem, poza pojęciami i ich hierarchią, są związki między nimi. Kluczem jest także to, że ontologia to pojęcia, czyli nazwy rzeczy a nie rzeczy jako takie.
Krótkie podsumowanie:
- świat rzeczywisty to rzeczy, aby “o nich” opowiedzieć i móc tę opowieść zapisać (gromadzić wiedzę), musimy dysponować nazwami (pojęciami) i umieć je utrwalić (wyrazić to znakami),
- pojęcie to nazwa rzeczy lub faktu, każde pojęcie to jego brzmienie (i znaki czyli forma zapisu) oraz definicja (co oznacza),
- słowo ‘pies’ w języku polskim oznacza “zwierzę domowe hodowane m.in. dla przyjemności lub do polowań” i odnosi się do wszystkich istniejących “psów” (zbiór rzeczy będących psem wg. określonej definicji),
- w nomenklaturze OMG , są to klasa (pojęcie), klasyfikator (definicja), instancje klasy (wystąpienia obiektów danej kasy).
Brakuje nam jeszcze związków między klasami (pojęciami). W ontologii są to: generalizacja (pozwala budować taksonomie pojęć) oraz predykat (skierowana asocjacja reprezentująca związek zdaniotwórczy ). Poniżej przykład:
Przypominam, że to nie jest model dziedziny w rozumieniu projektu oprogramowania (model w rozumieniu wzorca MVC). Przykład ten szerzej opisałem w artykule Gabinet weterynarza. Często stosowany model danych dla ontologii to Grafowe bazy danych.
Czym jest powyższy diagram? To model pojęciowy (diagram faktów w nomenklaturze SBVR, diagram klas UML). Generalizacja (nie jest to dziedziczenie!) czytamy (tworzy zdanie) “pudel jest typem psa”, predykaty tworzą zdania, które czytamy “pies śpi w budzie”, “pies szczeka na listonosza” (końcówki w j. polskim tu zaniedbujemy). Warunkiem poprawności modelu jest bezwzględna prawdziwość wszystkich tych zdań w danym języku. Bardzo ważna rzecz: dokumentacja projektu powinna zawierać definicje wszystkich użytych do opisu danych (metadane) pojęć.
Testowanie ontologii, jako sprawdzanie poprawności i prawdziwości zdań, także na sprawdzaniu związków: podstawiamy w zdaniach definicje pojęcia w miejsce ich wystąpienia, co nie może spowodować zmiany treści zdania ani tego, że stanie się ono nieprawdziwe (zasada podstawiania w logice):
- definicja psa: zwierzę domowe hodowane m.in. dla przyjemności lub do polowań
- zdania:
- pies śpi w budzie
- pies szczeka na listonosza
- pudel jest typem psa
- testy:
- zwierzę domowe hodowane m.in. dla przyjemności lub do polowań śpi w budzie
- zwierzę domowe hodowane m.in. dla przyjemności lub do polowań szczeka na listonosza
- pudel jest typem zwierzęcia domowego hodowanego m.in. dla przyjemności lub do polowań
Powyższe to trywialne testy, ale celem moim jest pokazanie istoty tych testów.
W 2013 roku opisywałem Produkty w procesie analizy wymagań, gdzie pokazałem ontologię tego obszaru wiedzy:
I teraz przykład. Na pewnym blogu znalazłem taki diagram (nie podaję źródła bo celem jest ocena diagramu a nie autora):
Popatrzmy:
- aktywność: praca, którą firma lub organizacja wykonuje za pomocą procesów biznesowych, może być atomowa lub nieatomowa (złożona), rodzaje aktywności, które są częścią Modelu Procesu: Proces, Podproces i Zadanie (źr. OMG.org BPMN)
- funkcjonalny: dotyczący funkcjonowania lub funkcji czegoś w jakimś systemie (s.j.p.)
- wymaganie: warunek lub zespół warunków, którym ktoś lub coś musi odpowiadać (s.j.p.)
Autor przywołuje pojęcie Proces biznesowy BPMN 2.0, ale nie ma w specyfikacji tej notacji pojęcia “krok procesu biznesowego”. Można domniemywać, że pojęcie Aktywność pochodzi z przywołanej notacji, więc zdanie “Integracja jest typem aktywności” albo “Logika biznesowa jest typem Aktywności (zwraca, że Logika to rzeczownik). Proszę samemu przetestować resztę pojęć powyższego diagramu wg. wcześniej opisanych reguł. Zielony komentarz wskazuje na cel powstania tego modelu: pojęcia na tym diagramie mają stanowić metadane jakiegoś zbioru danych (wiedzy). Przemieszano pojęcia z obszaru notacji BPMN, notacji UML i obszaru prac realizowanych przez zespół projektowy: trzy różne dziedziny … Obawiam się, że to repozytorium zbudowane na powyższym modelu nie będzie działać zgodnie z oczekiwaniami…
Na zakończenie
Ontologia jako system nazw, stanowi źródło pojęć, których używamy jako nazw dokumentów (formularzy), ich sekcji, pól, wartości tych pól. Podstawowym zastosowaniem ontologii jest zapewnienie spójności i jednoznaczności treści (danych) przetwarzanych przez systemy informatyczne, poprzez budowanie systemu metadanych z pojęć danej ontologii. Uwaga: częstym błędem jest zawężanie ontologii do taksonomii.
A zarządzanie wiedzą? A jaką? Popatrzmy na użyte wyżej zdanie: “pies szczeka na listonosza”. Jest to (to że szczeka na nieznajomych, w tym na listonoszy) jedna z cech tego zwierzęcia ale też, może to być stwierdzenie tego co właśnie zachodzi (albo zaszło). Mamy tu więc wiedzę, że (ogólnie) psy szczekają, np. na listonoszy, ale też może to być wiedza o tym, że jakiś pies w określonym momencie szczekał na listonosza. Dokument opisujący psa jako gatunek, będzie zapewne zawierał to zdanie. Jednak zapis przesłuchania świadka tego zdarzenia, oznaczony określoną datą i miejscem, będzie zawierał identyczne zdanie. Pierwszy to opis psa jako pewnego obiektu, drugi to opis faktu. Poprawne zdanie może zawierać też jedno pojęcie i predykat: stwierdzenie Pies szczeka, podobnie: jest zdaniem charakteryzującym psa (w zasadzie mogło by być jego definicją) i jest (może być) stwierdzeniem, że właśnie w tym momencie Pies (jakiś lub mój) szczeka.
Czy opracowanie ontologii jest łatwe? Nie, nie jest. Czy zła ontologia szkodzi? Tak, potrafi doprowadzić do fiaska projektu informatycznego. Zapraszam do:
- skorzystania z usługi Zamień artykuł na warsztat
- przesłania mi do recenzji ontologii
- zlecenia mi opracowania ontologii
(Patrz strona Zamów)
Zapraszam także do lektury artykułu Inżynieria oprogramowania z użyciem narzędzia CASE ? przykładowy projekt Biblioteka, gdzie krok po kroku pokazałem powstawanie dokumentacji analitycznej zawierającej ontologię dziedziny systemu i to jaką ona rolę odegrała w projekcie.