• Nie Znaleziono Wyników

3.5. Przykład zastosowania reguł

3.5.1. Problem klasyfikacji robotów

Robotyka to interdyscyplinarna nauka, której celem jest tworzenie robotów – maszyn wyposa˙zonych w autonomi˛e oraz mo˙zliwo´s´c ekspresji poprzez efektory. Roboty mo˙zna klasyfikowa´c na podstawie posiadanych przez nie cech. Dzi˛eki nim robot mo˙ze zosta´c przypisany do odpowiedniej grupy, mo˙zna te˙z okre´sli´c jego pewne wła´sciwo´sci wynikaj ˛ace konstrukcji.

Projektuj ˛ac dziedzinow ˛a ontologi˛e mo˙zna obra´c ró˙zne strategie. Mo˙zna na przykład podj ˛a´c prób˛e stworzenia szczegółowego opisu, z wieloma informacjami o ka˙zdym mo˙zliwym elemencie lub te˙z zaproponowa´c opis bardziej ogólny, z wy-ró˙znieniem głównych klas oraz wła´sciwo´sci. Na przykład fakt, i˙z dany robot jest manipulatorem mo˙zna zapisa´c na wiele sposobów:

3.5. Przykład zastosowania reguł • poprzez jawne przypisanie danego obiektu do klasyManipulator. Jest to naj-prostsza metoda, specjalnie nie ró˙zni ˛aca si˛e od wpisania rekordu do konkret-nego pola w bazie danych.

• poprzez zdefiniowanie wła´sciwo´sciRamiei reguły robot posiadaj ˛acy rami˛e jest manipulatorem. W tej metodzie korzysta si˛e cz˛e´sciowo z mechanizmu wnio-skowania, co pozwala opisa´c robota przez deklaracj˛e jego budowy. Opis ten jest jednak bardzo ogólny, nie zawiera ˙zadnych informacji o wła´sciwo´sciach poszczególnych ramion.

• poprzez osobne zdefiniowanie pojedynczych przegubów ramienia, przypisa-nie ich robotowi oraz dokonaprzypisa-nie odpowiedprzypisa-niej klasyfikacji z zastosowaprzypisa-niem reguł. Jest to metoda pozwalaj ˛aca na bardzo szczegółowy opis robota i jego pa-rametrów. Pewn ˛a trudno´s´c mo˙zna napotka´c przy opisie układów składaj ˛acych si˛e z dwóch manipulatorów (na wzór robotów humanoidalnych).

• poprzez osobn ˛a definicj˛e przegubów, ramion i samego robota (opisywane s ˛a wszystkie elementy z odpowiednimi wła´sciwo´sciami). Ta metoda generuje du˙zo informacji, jednak jest bardzo rozbudowana, nieczytelna, rodz ˛aca trud-no´sci przy wychwytywaniu bł˛edów.

Wnioskowanie na podstawie ontologii Wnioskowanie o przynale˙zno´sci obiek-tów do klas mo˙ze odbywa´c si˛e na podstawie samych aksjomaobiek-tów OWL, bez u˙zycia reguł SWRL (pierwsza z metod wy˙zej wymienionych tak wła´snie działa, kolejne wymagaj ˛a zastosowania bardziej rozbudowanych ontologii i reguł). Zobrazo-wano to na przykładzie małej ontologii, zawieraj ˛acej definicje kilku klas pokaza-nych na rysunku 3.2. Ponadto w stworzonej ontologii zdefiniowano dwa obiekty:

IRB_140– robota iObrotowa_podstawa– przegub typu platforma obrotowa oraz utworzono wła´sciwo´sci wi ˛a˙z ˛ace obiekty:Posiada_PrzegubiPosiada_Kolo.

Rys. 3.2: Hierarchia klas wykorzystanych podczas testów.

RobotowiIRB_140przypisano posiadanie platformy obrotowej. W celu przy-pisania robotaIRB_140do manipulatorów zdefiniowano klas˛eManipulatorjako podklas˛eRobotz warunkiem:

U˙zyciesomew tym przypadku oznacza, ˙ze wyst˛epuje przynajmniej 1 aksjomat

Posiada_Przegub z dopełnieniemPrzegub dla danego indywiduum. Spraw-dzono działanie tego przypisania – niezale˙znie od u˙zytego reasonera IRB_140

nie został przypisany do klasyManipulator. Jednak udało si˛e przypisa´c robota

IRB_140 do klasy Manipulator poprzez zdefiniowanie równowa˙zno´sci, a nie podklasy: klasaManipulator jest równowa˙zna wszystkim obiektom spełniaj ˛ a-cym podany wy˙zej warunek (równowa˙zno´s´c pozwala zdefiniowa´c warunki ko-nieczne i wystarczaj ˛ace). Ponadto, po dodaniu wi˛ekszej liczby przegubów, pró-bowano stworzy´c podklas˛e manipulatorów redundantnych (manipulatorów, któ-rych liczba stopni swobody jest wi˛eksza ni˙z 6, jednak przy zało˙zeniu, ˙ze ka˙zdy przegub wprowadza jeden stopie ´n swobody). ˙Zaden z reasonerów nie był w sta-nie zwróci´c poprawnego przypisania na podstawie tej reguły. Jedysta-nie regułamin 1równowa˙zna regulesomejest przetwarzana poprawnie. Nie były przetwarzane reguły równo´sci (exactly) ani nierówno´sci (min,max).

W nast˛epnej kolejno´sci spróbowano stworzy´c klas˛e robotów stacjonarnych (w uproszczeniu robotów, które nie posiadaj ˛a kół). KlasieRobot_Stacjonarny

przypisano równowa˙zno´s´c P o s i a d a _ K o l o e x a c t l y 0 Kolo

Warunek ten nie został zrealizowany w ˙zadnym reasonerze.

Podj˛eto jeszcze jedn ˛a prób˛e zdefiniowania manipulatora: przy u˙zyciu restryk-cji nało˙zonej na klas˛eManipulator:

L i c z b a _ S t o p n i _ S w o b o d y min X

gdzie Liczba_Stopni_Swobody to wła´sciwo´s´c o warto´sci liczbowej całkowitej. Tak ˛a wła´sciwo´s´c przypisano robotowiIRB_140i nadano jej warto´s´c 6 (zgodnie ze specyfikacj ˛a tego manipulatora). PrzyX = 0do klasyManipulatorzostał za-klasyfikowany robotIRB_140oraz robot Sputnik (robot mobilny, bez wła´sciwo´sci

Liczba_Stopni_Swobody). Sprawdzono równie˙z inne restrykcje:maxiexactly. W przeciwie ´nstwie do wła´sciwo´sci mi˛edzy obiektami (Object Properties) re-strykcje dotycz ˛ace wła´sciwo´sci przechowuj ˛acych dane (Data Properies) s ˛a do-brze zrealizowane w reasonerach.

Nast˛epnie stworzono podklas˛e manipulatorów o 6 stopniach swobody. Dla tej klasy ustanowiono restrykcj˛e:

L i c z b a _ S t o p n i _ S w o b o d y value 6

Restrykcja ta zadziałała poprawnie: robotIRB_140został przypisany do klasy ma-nipulatorów o 6 stopniach swobody, a po zmianie warto´sci liczby stopni swobody na 5 przestał by´c do niej klasyfikowany.

Nast˛epnie stworzono obiektRamiei przypisano go do klasyEfektor. Wpro-wadzono równie˙z warunek, którego efektem miało by´c przypisanie robotów z co najmniej jednym ramieniem do klasyManipulator:

P o s i a d a _ E f e k t o r min 1 Ramie

Aby był to warunek konieczny i wystarczaj ˛acy, klasaManipulatormusiała by´c zdefiniowana jako równowa˙zna klasie z t ˛a restrykcj ˛a. W efekcie jakiekolwiek obiekty posiadaj ˛ace w swojej strukturze rami˛e stawały si˛e manipulatorami.

3.5. Przykład zastosowania reguł

Wnioskowanie oparte na regułach Do wnioskowania z wykorzystaniem re-guł SWRL wykorzystano przedstawion ˛a ju˙z hierarchi˛e klas (rys. 3.2). Ro-botowi Sputnikprzyporz ˛adkowano wła´sciwo´s´c Posiada_Efektorz warto´sci ˛a

Kola_Sputnika, a robotowiIRB_140– wła´sciwo´s´cPosiada_Efektorz warto´sci ˛a

Obrotowa_podstawa. Poniewa˙zIRB_140posiada przegub, powinien on by´c za-klasyfikowany do manipulatorów. Reguła to zapewniaj ˛aca ma posta´c:

P r z e g u b (? p ) , Robot (? r ) , P o s i a d a _ E f e k t o r (? r , ? p ) -> M a n i p u l a t o r (? r )

Oprócz tej reguły stworzono analogiczne reguły dla robotów kołowych i stacjo-narnych (bez kół):

Robot (? r ) , ( P o s i a d a _ E f e k t o r max 0 Kolo )(? r ) -> S t a c j o n a r n y (? r )

W reguł ˛ach tych zmienianomax na exactly, min oraz przypisywano im ró˙zne warto´sci. Dla opracowanego zestawu reasoner Pellet nie przyporz ˛adkował ma-nipulatora do klasy robotów stacjonarnych przez zaprzeczenie wła´sciwo´sci po-siadania kół (Posiada_Efektor Kolo) – co było zgodne z zało˙zenia otwarto´sci ´swiata (negacja faktu musi by´c jawnie podana).

Stwierdzenie manipulator posiadaj ˛acy wi˛ecej ni˙z 6 stopni swobody jest redun-dantny w j˛ezyku reguł mo˙zna zapisa´c w nast˛epuj ˛acy sposób:

Robot (? r ) , ( P o s i a d a _ E f e k t o r min 6 P r z e g u b )(? r ) -> R e d u n d a n t n y (? r )

W celu sprawdzenie działania reasonera stworzono nieprawdziw ˛a reguł˛e i do-pisano 5 pozostałych przegubów jakie ma manipulator IRB 140:

Robot (? r ) , ( P o s i a d a _ E f e k t o r min 5 P r z e g u b )(? r ) -> S t a c j o n a r n y (? r )

Okazało si˛e, ˙ze reasoner Pellet nie jest w stanie klasyfikowa´c na podstawie tej re-guły.

Reguły wymagaj ˛ace zliczania aksjomatów nie działaj ˛a w dost˛epnych reasone-rach, zarówno je´sli s ˛a to reguły wykorzystuj ˛ace składni˛e OWL, jak i SWRL. Obsłu-giwane s ˛a za´s reguły bazuj ˛ace na informacjach o istnieniu danej relacji mi˛edzy obiektami. To znaczy, ˙ze mo˙zna tworzy´c reguł˛e wymagaj ˛ac ˛a istnienia przynaj-mniej jednego obiektu o okre´slonej relacji z innymi, lecz nie da si˛e stworzy´c re-guły wymagaj ˛acej jakiejkolwiek innej restrykcji wzgl˛edem liczebno´sci predykatu. W kolejnej cz˛e´sci zaprezentowano projekt ontologii opartej na obiektach, któ-rych opis w mniejszym stopniu tworzy sie´c powi ˛aza ´n mi˛edzy indywiduami i kla-sami, a w wi˛ekszym zawiera informacje w formie danych. Stworzenie takiej onto-logii jest mo˙zliwe dzi˛eki regułom SWRL, które pozwalaj ˛a na wprowadzanie funk-cji w aksjomaty typuData Property.

Rozbudowa ontologii Do stworzenia ontologii wykorzystano program Protégé. W celu szybkiej weryfikacji reguł wykorzystano wtyczk˛e dostarczaj ˛ac ˛a reasoner Pellet. Niestety reasoner w dost˛epnej wersji zawierał pewne niedoci ˛agni˛ecia, wi˛ec dodatkowo skorzystano z programu napisanego w j˛ezyku Java, wykorzystu-j ˛acego OWL API oraz inn ˛a wersj˛e reasonera Pellet.

Oprócz klas robotów w zaprojektowanej ontologii uwzgl˛edniono kilka innych klas: Firma, Efektor i Sensor oraz wła´sciwo´sci (rys. 3.3). Wszystkie bardziej

skomplikowane zale˙zno´sci starano si˛e zamie´sci´c we wła´sciwo´sciach obiektów i odpowiednich regułach SWRL.

Rys. 3.3: Hierarchia klas i wła´sciwo´sci rozbudowanej ontologii.

Zadeklarowane wła´sciwo´sci typuData Propertyodpowiadaj ˛a cechom, które stosunkowo łatwo pozyska´c i jednocze´snie łatwo wykorzysta´c do ró˙znicowania robotów. Ponadto dwie wła´sciwo´sci typuObject Property(niepokazane na ry-sunku) słu˙z ˛a do okre´slenia zale˙zno´sci mi˛edzy robotem, a jego elementami: robot mo˙ze posiada´c efektor lub sensor i by´c produkowanym przez okre´slon ˛a firm˛e.

Klasy i wła´sciwo´sci uszczegółowiono zgodnie z mo˙zliwo´sciami j˛ezyka OWL poprzez dodatkowe warunki:

• rozł ˛aczno´s´c klas robot, efektor, sensor i firma,

• narzucenie klas dla wła´sciwo´sci ł ˛acz ˛acych dwa obiekty,

• narzucenie wła´sciwo´sci typu danej, je´sli dane te maj ˛a warto´s´c logiczn ˛a prawda-fałsz lub warto´s´c liczbow ˛a całkowit ˛a (rok produkcji, czas produkcji (lata), liczba kół, kierownic, stopni swobody i nóg, redundancja, brak degeneracji)

• inwersja wła´sciwo´sci: robot X jest produkowany przez firm˛e Y oraz firma Y pro-dukuje robota X.

Wykorzystuj ˛ac reguły SWRL mo˙zna dostarczy´c czytelniejszego opisu ni˙z same deklaracje klas i wła´sciwo´sci. Ponadto wykorzystuj ˛ac struktur˛e klas jako szkie-let wszelkie inne informacje mo˙zna przechowywa´c jako wła´sciwo´sci. Np. czas od stworzenia robota jest dobrym kryterium do podziału robotów na nowoczesne i starsze. Równocze´snie jednak tak ˛a informacj˛e lepiej zachowywa´c jako subiek-tywn ˛a ocen˛e konstrukcji, a nie podstaw˛e klasyfikacji.

Rozbudowa reguł Reguły wykorzystuj ˛a informacje o robocie i okre´slaj ˛a pewne jego cechy. Poni˙zej przedstawiono zaimplementowane reguły:

• definicja inwersji je´sli robot Y posiada efektor lub sensor X, to efektor lub sensor X jest cz˛e´sci ˛a robota Y – przypadek ten opisano w podrozdziale 3.2.3. Dzi˛eki tej

3.6. Podsumowanie definicji z ka˙zdym sensorem i efektorem mo˙zna zwi ˛aza´c list˛e robotów, w któ-rych one wyst˛epuj ˛a:

Robot (? r ) , M a _ E f e k t o r (? r , ? e ) -> J e s t _ C z e s c i a _ R o b o t a (? e , ? r ) Robot (? r ) , M a _ S e n s o r (? r , ? e ) -> J e s t _ C z e s c i a _ R o b o t a (? e , ? r )

• okre´slenie cech dynamiki robota na podstawie jego parametrów – s ˛a to reguły takie jak: degeneracja robota kołowego, typ robota krocz ˛acego, redundancja manipulatora. Cechy te łatwo wyznaczy´c przy znajomo´sci takich liczbowych parametrów robota jak: liczba kół i kierownic w robocie kołowym lub liczba stopni swobody manipulatora:

K r o c z a c y (? r ) , I l o s c _ N o g (? r , ? l ) , g r e a t e r T h a n (? l , 3) -> T y p _ r o b o t a _ k r o c z a c e g o (? r , " s t a t y c z n i e s t a b i l n y ") K r o c z a c y (? r ) , I l o s c _ N o g (? r , ? l ) , equal (? l , 2) -> T y p _ r o b o t a _ k r o c z a c e g o (? r , " hu manoid alny , d y n a m i c z n i e s t a b i l n y ") Kolo wy (? r ) , I l o s c _ K i e r o w n i c (? r , ? l ) , I l o s c _ K o l (? r , ? p ) , add (? k , ?l , ? p ) , g r e a t e r T h a n (? k , 1) , l e s s T h a n (? k , 4) -> B r a k _ D e g e n e r a c j i (? r , true ) M a n i p u l a t o r (? r ) , S t o p n i e _ S w o b o d y (? r , ? l ) , g r e a t e r T h a n (? l , 6) -> C z y _ R e d u n d a n t n y (? r , true )

• przydzielenie robota do klasy – robot jest krocz ˛acy gdy posiada nogi, a kołowy gdy posiada koła. Aby dokona´c takiej klasyfikacji wystarcza sprawdzi´c, czy ta wła´sciwo´s´c ma warto´s´c liczbow ˛a wi˛eksz ˛a od 0.

I l o s c _ N o g (? r , ? l ) , g r e a t e r T h a n (? l , 0) -> K r o c z a c y (? r ) I l o s c _ K o l (? r , ? l ) , g r e a t e r T h a n (? l , 0) -> K olowy (? r )

• wyliczenie nowej wła´sciwo´sci – jak stary jest dany robot. Liczbowy zapis roku wytworzenia czy rozpocz˛ecia produkcji robota jest odejmowany od roku bie˙z ˛ a-cego. Dzi˛eki wyznaczonej wła´sciwo´sci mo˙zna okre´sli´c czy robot jest nowocze-sny (powstał wcze´sniej ni˙z 5 lat temu), czy nie.

R o k _ p o w s t a n i a (? r , ? rok ) , s u b t r a c t (? wiek , 2014 , ? rok ) -> P r o d u k o w a n y _ L a t (? r , ? wiek )

P r o d u k o w a n y _ L a t (? r , ? wiek ) , g r e a t e r T h a n (? wiek , 5) -> N o w o c z e s n y (? r , false )

P r o d u k o w a n y _ L a t (? r , ? wiek ) , l e s s T h a n O r E q u a l (? wiek , 5) -> N o w o c z e s n y (? r , true )

Ł ˛acznie zdefiniowano jedena´scie reguł, w których zastosowano obce j˛ezykowi OWL operacje porówna ´n, sumowania i dodawania.

3.6. Podsumowanie