Ontológiák Bárány Máté József 2008.XII.03
Tartalomjegyzék Bevezetés Motiváció Ontológiák Protégé, egy ontológiai szerkesztő
Bevezetés Nem egyértelmű, nagyon is vitatott kifejezés A filozófiában régóta használt fogalom, lételméletet jelent Mesterséges Intelligencia: „Az ontológia megegyezésen alapuló fogalmi rendszer formális, egyértelmű leírása.” - Thomas Gruber
Motiváció Az emberek, szervezetek, szoftverrendszerek kommunikálnak egymással Eltérő háttér és különböző zsargon használata Ugyanarra a jelenségre több, egymást részben fedő fogalom használata A tudás megosztásának hiánya
Motiváció Következmények: Nehézkes kommunikáció Nehézségek a rendszerspecifikációk meghatározásában Korlátolt együttműködés különböző tudományterületek között Kevés lehetőség az újrafelhasználásra Jelentős erőfeszítések szükségesek a problémák áthidalására
Motiváció Megoldás: A fogalmi és terminológiai zavar csökkentése vagy megszüntetése, ezáltal a tudás megosztása A tudás megosztása lehetőséget ad egy egységes váz létrehozására a különböző nézőpontok számára
Motiváció A tudás megosztása: Segíti a kommunikációt különböző szükségletű és hátterű emberek között Megkönnyíti az együttműködést különböző rendszerek és tudományterületek között Segít jobb specifikációt készíteni egy informatikai rendszer számára, ha különböző csoportok igényeit vesszük figyelembe Egy informatikai rendszerben lehetővé teszi a konzisztencia ellenőrzésének automatizálását, ami egy megbízhatóbb rendszert eredményez Stb.
Motiváció - Példa Az MI, Döntéstámogatás és Elosztott rendszerek rokon területek, de nem tudnak közvetlenül profitálni egymás eredményeiből Ok: A megegyező alapötletek eltérő megközelítése és eltérő fogalmak használata Megoldás: Egy olyan egységes fogalmi váz kidolgozása, amely lehetővé teszi az eredmények egymás közti felhasználását
Motiváció - Példa Megvalósítás: Azonosítsuk a tématerületek közös ötleteit és a hozzájuk kapcsolódó szakkifejezéseket Keressük meg az azonos fogalmakat, és nézzük meg a fogalmak egymáshoz való viszonyát Egységes fogalmi keretrendszer: lingua – franca Eredmény: Egymás kutatási eredményei felhasználhatóak A fejlődés üteme felgyorsul, nem szükséges háromszor felfedezni ugyanazt
Motiváció – Példa II. Az űrkutatásban egy űrhajó működtetéséhez több, egymástól független ismeretalapú rendszert használnak, pl. tervezés, anomália észlelése, diagnózis, stb. Kívánatos a rendszerek integrációja, pl. az anomália észlelése modul eredményei felhasználhatóak a diagnózis modul bemeneteként Probléma: A rendszerek különböző megközelítéseket használnak
Motiváció – Példa II. A különböző rendszerek uniformizálása nem kívánatos és nem is praktikus Megoldás: Ágens alapú megközelítés ATOS : Advanced Technology Operations System
Motiváció – Példa II. Megoldás Azonosítsuk a lényeges fogalmakat Keressük meg a hozzájuk tartozó szakkifejezéseket Jelöljük a fogalmak közötti kapcsolatokat Egységes keretrendszer, lingua – franca A modulok változatlanok maradnak, a fordítást az ágensek végzik
Motiváció – Példa II. Következmény Az alrendszerek elérhetővé válnak egymás számára Lehetőség nyílik az együttműködésre és a tudás megosztására az egymástól függetlenül fejlesztett alrendszerek között
Ontológiák Nincs egységes definíció A példákban látható egységes vázakat/keretrendszereket, amelyekkel lehetővé válik a tudás megosztása és a problémák megoldása, Ontológiáknak nevezzük.
Ontológiák Egy Ontológia részei: fogalmak fogalmak attribútumai és tulajdonságai az attribútumokkal és tulajdonságokkal kapcsolatos feltételek Egy Ontológia definiálja: a közös szókincset (szótár) a tudás megosztását
Ontológiák Egy Ontológia sokféle lehet, de minden esetben tartalmaznia kell: a szótárat, amiben a kifejezések vannak a szótárban szereplő kifejezések magyarázatát A szótár formalizálására nincs megkötés Természetes nyelvű Természetes nyelvű, de strukturált Formális Szigorúan formális
Ontológiák Kommunikáció Emberek és szervezetek között Együttműködés Rendszerek között Újrafelhasználható komponensek Megbízhatóság Specifikáció System Engineering Az ontológiák felhasználásának fő területei
Ontológiák - Együttműködés L1L2 L3L4 L1L2 L3L4 Ontológiák segítségével a különböző komponensek közötti együttműködés megkönnyíthető O(n 2 ) vs O(n)
Ontológiák - Együttműködés
Ontológiák – System Engineering Specifikáció Az, hogy egy ontológia milyen szerepet játszik a specifikációban, függ a formalizáltság fokától Informális megközelítés: a rendszer követelményeinek és a komponensek kapcsolatainak meghatározása Formális megközelítés: inkább, hogy mire tervezzük a rendszert, ahelyett, hogy hogyan valósítsa meg a funkcionalitásokat
Ontológiák – System Engineering Megbízhatóság Formális ontológiák segítségével lehetőség nyílik a szoftverrendszer (fél)automatizált ellenőrzésére Újrahasznosítás A különböző szoftverrendszerek moduljai felhasználhatóak a különböző rendszerekben Ontológiák segítségével meg lehet mondani, hol melyik modul használható fel
Ontológiák - Emlékeztető Egy Ontológia részei: fogalmak fogalmak attribútumai és tulajdonságai az attribútumokkal és tulajdonságokkal kapcsolatos feltételek Egy Ontológia definiálja: a közös szókincset (szótár) a tudás megosztását
Ontológiák A kifejezések és a köztük lévő kapcsolatok meghatározásának folyamata: Ontology Engineering Fogalmak meghatározása (osztályok) Fogalmak hierarchiába rendezése (ősosztályok, származtatott osztályok) Az osztályok attribútumainak és tulajdonságaiknak (slotok) meghatározása a hozzájuk tartozó korlátokkal együtt A slotok feltöltése értékekkel
Ontológiák A világ szerkezetét tükrözik Fogalmak struktúrája a lényeges Fizikai reprezentáció nem lényeges OO struktúra Az adat és kód szerkezetét tükrözi Általában a viselkedés a lényeges (metódusok) A fizikai reprezentációt is leírja (int, char, stb…)
Ontológiák Egy ontológia fejlesztésének folyamata: determine scope consider reuse enumerate terms define classes define properties define constraints create instances determine scope consider reuse enumerate terms define classes consider reuse enumerate terms define classes define properties create instances define classes define properties define constraints create instances define classes consider reuse define properties define constraints create instances A valóságban ez egy iteratív folyamat…
Ontológiák Probléma- megoldó módszerek Ágensek Domain független alkalmazások Tudásbázisok Adatbázisok Egy ontológia legtöbbször csak a kezdet… Struktúra Domain leírás
Ontológiai szerkesztők Protégé grafikus felületű open-source Ontolingua and Chimaera OntoEdit OilEd
Protégé - Példa French wines and wine regions California wines and wine regions Which wine should I serve with seafood today? A shared ONTOLOGY of wine and food A shared ONTOLOGY of wine and food
Ontológia fejlesztése - Protégé Domain és hatáskör meghatározása determine scope consider reuse enumerate terms define classes define properties define constraints create instances Milyen területet fed le az ontológia? Mire fogjuk használni az ontológiát? Milyen típusú kérdésekre fog választ adni az ontológia ? (kompetencia kérdések) A kérdésekre adott válaszok változhatnak az életciklus során
Ontológia fejlesztése, Protégé Kompetencia kérdések A bor mely jellegzetességét vegyük figyelembe a bor kiválasztása során? A bordeauxi bor vörös vagy fehér? Melyik bor a legjobb választás grillezett húshoz? Melyik évjárat jó a Napa Zinfandel számára? A Cabernet Sauvignon megfelelő tengeri ételekhez? Stb.
Ontológia fejlesztése, Protégé Érdemes megfontolni az újrafelhasználást determine scope consider reuse enumerate terms define classes define properties define constraints create instances Erőfeszítések megspórolására Együttműködés olyan eszközökkel amelyek más ontológiákat használnak Olyan ontológiák felhasználása, amelyeket már bizonyítottak más alkalmazásokban
Ontológia fejlesztése, Protégé Mit lehet újrafelhasználni? Ontológiai könyvtárak Protégé ontology library Felsőbb ontológiák IEEE Standard Upper Ontology Általános ontológiák DMOZ Domén-specifikus ontológiák UMLS Semantic Net
Ontológia fejlesztése, Protégé A lényeges kifejezések felsorolása consider reuse determine scope enumerate terms define classes define properties define constraints create instances Milyen kifejezésekről kell beszélnünk? Milyen tulajdonságaik vannak a kifejezéseknek? Mit akarunk elmondani a kifejezésekről?
Ontológia fejlesztése, Protégé A kifejezések felsorolása a példa ontológiában: bor, szőlő, borászat, helyszín a bor színe, íze, cukortartalma fehérbor, vörösbor, bordeauxi bor étel, tengeri étel, hal, hús, zöldség, sajt
Ontológia fejlesztése, Protégé Osztályok és osztályhierarchia meghatározása consider reuse determine scope define classes define properties define constraints create instances enumerate terms Egy osztály a domain egy fogalmának feleltethető meg borok borászatok vörösborok Egy osztály hasonló tulajdonságú elemek gyűjteménye Osztályok példányai egy pohár kalifornai bor
Ontológia fejlesztése, Protégé Öröklődés Az osztályok általában rendszertani hierarchiát alkotnak (ősosztály – származtatott osztály) A származtatott osztály egy példánya az ősosztály egy példánya is Ha az osztály elemek egy halmaza, akkor a származtatott osztály egy részhalmaz
Ontológia fejlesztése, Protégé Öröklődés – Példa Az alma a gyümölcs osztály származtatott osztálya Minden alma gyümölcs A vörösbor a bor osztály származtatott osztálya Minden vörösbor bor Chianti a vörösbor osztály származtatott osztálya Minden chianti vörösbor
Ontológia fejlesztése, Protégé Hierarchia szintek Top level Middle level Bottom level
Ontológia fejlesztése, Protégé Fejlesztési módszerek: top – down : először a legáltalánosabb fogalmakat definiáljuk, majd azokat specializáljuk bottom – up: először a legspecifikusabb fogalmakat definiáljuk, majd általánosabb osztályokba szervezzük őket kombináció: először a legkézenfekvőbb fogalmakat definiáljuk, majd azokat specializáljuk és általánosítjuk
Ontológia fejlesztése, Protégé Dokumentáció Az osztályoknak és slotoknak általában van dokumentációja Az osztály leírása természetes nyelven Szinonimák felsorolása Az osztály szempontjából lényeges domain feltevések felsorolása Az osztályok és slotok dokumentálása legalább olyan lényeges, mint egy programkódé
Ontológia fejlesztése, Protégé Az osztályok tulajdonságainak meghatározása (slotok) consider reuse determine scope define constraints create instances enumerate terms define classes define properties Egy osztálydefinícióban a slotok leírják az osztály példányának a tulajdonságait és viszonyát más példányokhoz Minden bornak lesz színe, cukortartalma, gyártója, stb.
Ontológia fejlesztése, Protégé Tulajdonságok (slotok) Tulajdonságok típusai: „belső” tulajdonságok : íz és szín „külső” tulajdonságok : név és ár részek : hozzávalók viszonyok más objektumokhoz : gyártó (borászat) Egyszerű és összetett tulajdonságok: Egyszerű tulajdonságok : stringek, számok Összetett tulajdonságok : más objektumokat tartalmaznak
Ontológia fejlesztése, Protégé A wine osztály tulajdonságai
Ontológia fejlesztése, Protégé Tulajdonságok és öröklődés Egy származtatott osztály az ősosztály összes slotját örökli Ha a bornak van neve és íze, akkor a vörösbornak is lesz Ha egy osztálynak több őse van, az összestől örököl tulajdonságokat A port vörös és fehérbor is. Az utóbbitól a cukortartalmat, az előbbitől a színt örökli.
Ontológia fejlesztése, Protégé A tulajdonságok korlátai (facets) consider reuse determine scope create instances enumerate terms define classes define constraints define properties Limitálják a lehetséges értékeket egy slot számára A bor neve string A gyártó a borászat egy példánya Egy borászathoz pontosan egy helyszín tartozik
Ontológia fejlesztése, Protégé Gyakori facet-ek Slot számossága : hány értéke lehet a slotnak Slot érték típus : milyen típusú értékei lehetnek egy slotnak Min és max érték : numerikus slot esetén a lehetséges számtartomány Alapértelmezett érték : a slot értéke alapból, amíg mást nem adunk meg
Ontológia fejlesztése, Protégé A Slot számossága N számosság : a slotnak legalább N értékkel kell rendelkeznie Minimum számosság Ha egy, akkor a slotnak kell értéket adni (required) Ha nulla, akkor opcionális Maximum számosság Ha egy, akkor a slotnak legfeljebb egy értéke lehet Ha nagyobb, mint egy, akkor több értéke is lehet
Ontológia fejlesztése, Protégé Értéktípusok: String: karaktersztring Szám: egész vagy lebegőpontos Bool: igaz/hamis Enumeráció: a megengedett értékek felsorolása Összetett típus: egy másik osztály példánya
Ontológia fejlesztés, Protégé Öröklődés és facetek Egy származtatott osztály az ősosztály összes tulajdonságát megörökli A származtatott osztály felülírhatja a faceteket, hogy szűkítse a megengedett értékek listáját a numerikus értékek tartományának csökkentése egy osztály lecserélése egy származtatott osztályra
Ontológia fejlesztése, Protégé Példányosítás consider reuse determine scope create instances enumerate terms define classes define properties define constraints Az osztály egy példányának létrehozása Az osztály a példány közvetlen típusa lesz A közvetlen típus bármely őse a példány típusa lesz Slot értékek megadása A faceteknek megfelelő értékeket kell megadnunk
Ontológia fejlesztése, Protégé A Fehér Burgundy osztály egy példánya
Protégé Protégé Java alapú Open source Tovább bővíthető különböző pluginekkel Automatikusan generálja a grafikus felhasználói interészeket a felhasználó által definiált modelleknek megfelelően
Protégé A bekeretezett részt a Protégé támogatja determine scope consider reuse enumerate terms define classes define properties define constraints create instances
Protégé GUI komponensek Fülek segítenek kiválasztani a különböző munkaterületeket Widgetek a slotok létrehozására, szerkesztésére, és megtekintésére Gombok és menük műveletek végzésére
Protégé
Alaptípusok: Any Bool Class Instance Float String Integer Symbol (felsorolt konstansok)
Protégé Többszörös öröklődés A port típusú bornak több ősosztálya is van
Protégé Slotok a Protégé-ben A Protégé-ben a slotok első osztályú objektumok A legmagasabb szinten vannak definiálva (top level) A tudásbázisban csak egy slot lehet, de az több osztályhoz is hozzárendelhető Név Személy Újságpapír
Protégé Facetek a Protégé-ben:
Protégé Slot browser fül a Protégé-ben
Protégé Instances fül a Protégé-ben
Protégé Mike Uschold & Michael Gruninger : Ontologies : Principles, Methods and Applications Natasha F. Noy & Samson W. Tu : Developing Medical Informatics Ontologies With Protégé
KÖSZÖNÖM SZÉPEN A FIGYELMET!