• Nie Znaleziono Wyników

12.4. Przykład zastosowania

12.4.3. Program symuluj ˛ acy ´swiat klocków

W celu zobrazowania deklaracyjnego podej´scia do programowania zaplano-wano stworzy´c program symuluj ˛acy ´swiat klocków. ´Swiat klocków mo˙zna sobie wyobrazi´c jako stół, na którym znajduj ˛a si˛e klocki ró˙znego koloru. ´Swiat ten ma swój zestaw reguł oraz pozwala na zmian˛e uło˙zenia klocków. Układ klocków musi by´c zgodny z ustalonymi regułami.

Struktura programu

Program składa si˛e z graficznego interfejsu, w którym wy´swietlane jest roz-mieszczenie klocków. Aplikacja umo˙zliwia u˙zytkownikowi przemieszczanie kloc-ków. Do programu doł ˛aczony jest plik z regułami, według których mo˙zna

dokony-wa´c zmian w przedstawionym ´swiecie. Plik z regułami mo˙zna zmienia´c i tworzy´c swój własny zestaw reguł.

Cz˛e´s´c graficzna programu została napisana w j˛ezyku C++ przy u˙zyciu biblio-teki Qt na platformie Linux. Obliczenia logiczne s ˛a wykonywane przez system automatycznego wnioskowania Otter. Komunikacja mi˛edzy programami odbywa si˛e za pomoc ˛a plików i strumieni.

Działanie programu

Program zapisuje stan ´swiata wraz ze zbiorem reguł do pliku. Nast˛epnie uru-chamia program Otter z nazw ˛a zapisanego pliku. Na wyj´sciu programu automa-tycznego wnioskowania pojawi si˛e zestaw poprawnych ruchów, które u˙zytkownik mo˙ze wykona´c. Po wykonaniu ruchu przez u˙zytkownika program sprawdzi, czy takie przestawienie klocków znalazło si˛e na li´scie.

Niestety nie udało nam si˛e znale´z´c funkcji Otter, umo˙zliwiaj ˛acej wykrywanie sprzeczno´sci. Gdyby system Otter potrafił wysła´c sygnał, gdy natrafi na sprzecz-no´s´c, wtedy program mógłby sprawdza´c, czy dane uło˙zenie nie jest sprzeczne z regułami.

Program mógłby stanowi´c podstaw˛e do stworzenia aplikacji symuluj ˛acej wie˙ze Hanoi albo manipulator, ustawiaj ˛acy elementy na linii produkcyjnej lub w magazynie.

Literatura

[1] S. j˛ezyka polskiego: red. M. Szymczak, volume 1 Pa ´nstwowe Wydawnictwo Naukowe, Warszawa, (1983).

[2] N. S. Encyclopedia: red. D. W. Downey, volume 10 Ferguson Publishing Com-pany, Chicago, (1998).

[3] E. S. Matematyka: red. W. Waliszewski Wydawnictwo Szkolne i Pedagogiczne, Warszawa, (1988).

[4] W. Paluszy ´nski and E. Roszkowska: Podstawy Logiki 2006/07. Wykłady [5] J. Tiuryn, J. Tyszkiewicz, and P. Urzyczyn: Logika dla informatyków., (2006). [6] J. Józefowska: Logika obliczeniowa. Wykłady

[7] Wikipedia. en.wikipedia.org

R

O Z D Z I A Ł

13

MIARY PODOBIE ´NSTWA W ONTOLOGIACH

R. Gierczak, T. Tylecki

W rozdziale tym zostan ˛a przedstawione informacje wyja´sniaj ˛ace poj˛ecie on-tologii oraz miar podobie ´nstwa stosowanych przy porównywaniu ontologii. Po-ruszony b˛edzie równie˙z temat narz˛edzi oraz j˛ezyków do edyzji i zapisu ontologii. Zostan ˛a zaprezentowane przyj˛ete zało˙zenia projektowe, opis pomysłu realizacji zadania, a tak˙ze sposób w jaki zostało wykonane przy pomocy dost˛epnych na-rz˛edzi.

13.1. Ontologia

Dost˛epna literatura zawiera kilka definicji tego słowa. W szeroko rozumia-nym podej´sciu filozoficzrozumia-nym oraz du˙zo bardziej nas interesuj ˛acym podej´sciu in-formatycznym. Słowo ontologia wywodzi si˛e z j˛ezyka greckiego b˛ed ˛acego zlep-kiem słowa ˜oν (on), w dopełniaczu ˜oντoς (ontos), oznaczaj ˛acego „byt”, „rzeczy-wi´scie b˛ed ˛acy”, „istniej ˛acy” oraz słowa −λoγια (-logia), oznaczaj ˛acego „słowo”, „nauka”, „teoria” [6], st ˛ad mo˙ze oznacza´c nauk˛e o szeroko pojmowanym bycie, czyli o wszystkim. Termin ten został u˙zyty w XVII w. Do spopularyzowania słowa przyczynił si˛e Christian Wolff, który podzielił filozofi˛e na ontologi˛e, kosmologi˛e i psychologi˛e. Przed nim w swoich pracach u˙zywał tego terminu niemiecki teolog i filozof Johannes Clauberg, pierwszy raz słowo to zostało u˙zyte w obecnej for-mie w słowniku filozoficznym napisanym przez pomorskiego teologa Johannesa Micraeliusa [7]. Ontologia według dzisiejszej definicji w poj˛eciu filozoficznym jest dziedzin ˛a metafizyki, która zajmuje si˛e badaniem i wyja´snianiem natury jak i kluczowych wła´sciwo´sci oraz relacji rz ˛adz ˛acych wszelkimi bytami, b ˛ad´z głów-nych zasad i przyczyn bytu. Nie zajmuje si˛e tym w jaki sposób człowiek postrzega ´swiat, ale stawia pytania „jak mo˙zna wszystko poklasyfikowa´c”, „jakie klasy bytów s ˛a niezb˛edne do opisu i wnioskowania na temat zachodz ˛acych procesów?”, „jakie klasy bytów pozwalaj ˛a wnioskowa´c o prawdzie?”, „na podstawie jakich klas bytów mo˙zna wnioskowa´c o przyszło´sci”.

Rozwój techniki oraz próba wykorzystania maszyn w coraz to nowych zada-niach spowodowała konieczno´s´c opisu rzeczywisto´sci, w taki sposób aby był on równie˙z „rozumiały” przez maszyny. Próby opisu opieraj ˛ace si˛e jedynie na

lek-sykalnym podej´sciu do problemu nie daj ˛a w wi˛ekszo´sci przypadków po˙z ˛ ada-nych efektów, poniewa˙z nie oddaj ˛a one relacji zachodz ˛acych pomi˛edzy obiek-tami. Sprawdza si˛e jedynie w przypadkach, gdzie wyst˛epuj ˛a zbiory słów o wspól-nym rdzeniu daj ˛ace si˛e w łatwy sposób kategoryzowa´c, cho´c cz˛esto mog ˛a wyst ˛ a-pi´c przypadki obiektów o wspólnym rdzeniu w nazwie znaczeniowo ró˙zni ˛ace si˛e, dla których metoda ta zawodzi. Rozwi ˛azanie takie jest równie˙z niepraktyczne, ze wzgl˛edu na opis obiektów w ró˙znych j˛ezykach, co nie zapewnia przeno´sno´sci danego opisu rzeczywisto´sci. Jednym ze sposobów poradzenia sobie z tym pro-blemem jest stworzenie zapisu uwzgl˛edniaj ˛acego rzeczywiste powi ˛azania mie-dzy obiektami. Zapis taki powinien oddawa´c znaczenie obiektów oraz umiesz-cza´c je w hierarchicznej strukturze umo˙zliwiaj ˛acej badanie powi ˛aza ´n pomi˛edzy nimi. Wła´snie w takim kontek´scie (informatycznym) termin ontologia pojawił si˛e w 1967 r. w badaniach dotycz ˛acych modelowania danych, jednak˙ze zyskał on do-piero na popularno´sci wraz z rozwojem internetu i konieczno´sci przetwarzania informacji.

Mo˙zna przytoczy´c nast˛epuj ˛ac ˛a definicj˛e ontologii w znaczeniu informatycz-nym [2]: „specjalizacja konceptualizacji” (ang. specification of a conceptualiza-tion). Ontologia okre´sla zbiór reprezentacyjnych jednostek elementarnych sta-nowi ˛acych dziedzin˛e modelu wiedzy. Jednostki elementarne s ˛a typowo kla-sami (zbiorami), atrybutami (wła´sciwo´sciami) i relacjami (powi ˛azaniami mi˛edzy członkami klas). Opis jednostek elementarnych niesie z sob ˛a informacje o ich znaczeniu oraz ograniczeniach ich stosowania. W kontek´scie systemów baz da-nych, ontologia mo˙ze by´c rozpatrywana jako poziom abstrakcji modelu danych analogicznie do hierarchicznych i relacyjnych modelów, przeznaczona do mode-lowania wiedzy o indywiduach, ich atrybutach oraz ich relacjach w stosunku do innych indywiduów.

Formalna definicja wg [1] przedstawia ontologi˛e jako par˛e: (O; L)

gdzie O jest struktur ˛a ontologii, a L jest leksykonem ontologii. Struktura ontologii ma posta´c:

O = {C ,R, Hc,Rel , A}

gdzie: C - zbiór wszystkich poj˛e´c wykorzystanych w modelu, R - zbiór nietakso-nomicznych relacji, definiowane jako nazwane poł ˛aczenia mi˛edzy poj˛eciami, H c - zbiór taksonomicznych relacji pomi˛edzy poj˛eciami (relacja H c(C1;C2) oznacza, ˙ze C1jest podpoj˛eciem C2), Rel - funkcja R → C ×C , która relacji nietaksonomicz-nej przyporz ˛adkowuje uporz ˛adkowan ˛a par˛e poj˛e´c; A - zbiór aksjomatów.

Leksykon zawiera interpretacje rozumienia poj˛e´c i relacji wyst˛epuj ˛acych mi˛e-dzy nimi. Leksykon ma posta´c:

L = {Lc,Lr,F,G}

gdzie Lc - definicja leksykonu dla zbioru poj˛e´c, Lr - definicja leksykonu dla zbioru relacji, F - referencje dla poj˛e´c, G - referencje dla relacji.