Sunteți pe pagina 1din 12

Universitatea Politehnica Bucuresti

Facultatea de Automatica si Calculatoare


An universitar 2007-2008

Descrierea Protg
Andreea Urzica
Sorin Simoiu

Protege

Ce este Protg?
Protege este un editor de ontologii dezvoltat de ctre Stanford Center for Biomedical
Informatics Research de la Stanford University School of Medicine. Este Open
source ceea ce nseamn c l putem utiliza fr a avea teama c datele noastre,
ontologiile create vor fi blocate prin dependena la un soft proprietar.

Ce este aceea o ontologie?


nainte de a vorbi despre Protege trebuie s discutm despre ontologii.
Ontologiile sunt utilizate pentru a captura cunotiine despre un anumit domeniu de
interes. O ontologie descrie cele mai importante concepte i relaii dintr-un anumit
domeniu. Ofer un vocabular pentru un domeniu i o specificaie computerizat
pentru vocabularul respectiv. Ontologiile variaz de la taxonomii, clasificri i scheme
de baze de date, la teorii axiomatice complexe. n ultimii ani, ontologiile au fost
adoptate n multe comuniti tiinifice i din mediul afacerilor ca o cale de a
mprti, reutiliza i procesa cunotiinele n domeniu. Ontologiile sunt acum partea
central a multor aplicaii cum ar fi: portaluri de cunotiine tiinifice, sisteme de
management i integrare informatice, comert electronic i web service-uri semantice.

Ce sunt tehnologiile OWL?


Diferite limbaje de definire ale ontologiilor ofer diferite faciliti. Cea mai recent
dezvoltare n limbajele standard de definire a ontologiilor este OWL, produs de
consoriul World Wide Web (W3C). La fel ca i RDF, OWL face posibil descrierea
conceptelor dar, n plus, ofer multe alte facilitati. Are un set mai bogat de operatori
(de exemplu: i, sau, negare). Se bazeaz pe un model logic diferit care d
posibilitatea conceptelor s fie definite i n acelai timp descrise. Concepte complexe
pot fi definite pornind de la concepte simple. Mai mult, modelul logic permite
utilizarea unui reasoner care verific dac toate definiiile i declaraiile din ontologie
sunt mutual consistente i poate, deasemenea, recunoate ce concepte se potrivesc i

_______________________________________________________________
Sorin Simoiu, Andreea Urzica

Protege
sub care definiii. Reasoner-ul ajut astfel la meninerea unei ierarhii corecte. Aceasta
ierarhie este folositoare atunci cand lucrm cu clase ce au mai mult de un parinte.

Componentele ontologiilor OWL:


Ontologiile OWL au componente similare cu Protege frame, bazate pe ontologii.
Oricum, terminologia folosita pentru a descrie aceste componente este diferita de cea
utilizata de Protege. O ontologie OWL este construita din Indivizi, Proprietati si
Clase, care au corenpondent in Protege: Instance, Sloturi si Clase
Indivizii
Indivizii, reprezinta obiecte din domeniu de care noi suntem interesati. O diferenta
importanta intre Protege si OWL este ca OWL nu utilizeaza Unified Name
Assumption (UNA), aceasta inseamna ca doua nume distincte pot defapt referi acelasi
individ. Spre exemplu Regina Elizabeta, Reginasi Elizabeth Windsor pot referi
acelasi individ. In OWL, trebuie specificat explicit ca indivizii sunt la fel unii cu altii
sau dinstincti unii de altii. Indivizii mai sunt cunoscuti si ca instante. Indivizii pot fi
referiti si ca fiind instante ale claselor.
Proprietatile
Proprietatile sunt relatii binare intre indivizi; spre exemplu proprietatile leaga doi
indivizi unul de altul.De exemplu, proprietatea areFrate poate lega individul Ion de
individul Maria., sau propretatea areCopil poate lega individul Petre de individul Ion.
Proprietatile pot avea inversi. De exemplu inversul lui areProprietar este
esteDetinutDe. Proprietatile pot fi limitate in a avea o singura valoare. Deasemenea
ele pot fi tranzitive sau simetrice. Figura de mai jos arata o reprezentare a unor
proprietati care leaga cativa indivizi impreuna.
Proprietatile sunt echivalente cu slot-urile in Protege. Ele sunt deasemenea cunoscute
ca si roluri in descrierea logica si relatii in UML si alte notatii orientate obiect.

_______________________________________________________________
Sorin Simoiu, Andreea Urzica

Protege

Clasele
Clasele OWL sunt interpretate ca seturi care contin indivizi. Ele sunt decrise utilizand
descrieri formale (matematice) care precizeaza cerintele pentru membrii claselor. De
exemplu clasa Pisica ar contine tot indivizii care sunt pisici in domeniul nostru de
interes. Clasele pot fi organizate intr-o ierarhie de superclase-subclase, care este
cunoscuta sub numele de taxonomie. Subclasele specializeaza superclasele. Spre
exemplu considerati clasele Animal si Pisica Pisica poate fi o subclasa a clasei
Animal (deci Animal este superclasa clasei Pisica). Aceasta poate fi tradusa astfel:
Toate pisicile sunt animale, Toti membrii clasei Pisica sunt membrii clasei
Animal, Fiind pisica implica ca esti un Animal. Una dintre caracteristicile OWLDL este ca aceste relatii superclasa-subclasa pot fi calculate automat de un reasoner.
Figura de mai jos arata o reprezentare a unor clase ce contin indivizi: clasele sunt
reprezentate de cercuri sau ovaluri. Cuvantul concept este cateodata folosit in locul
claselor. Clasele sunt reprezentari concrete ale conceptelor.

In owl clasele sunt construite din descrieri care specifica conditiile ce trebuie sa fie
satisfacute de un individ pentru a corespunde cat mai bine unui membru al unei clase.

_______________________________________________________________
Sorin Simoiu, Andreea Urzica

Protege

Construirea unei ontologii OWL


Pentru a face mai usor de inteles modul de utilizare al programului Protege, vom
discuta pe baza unui exemplu, si anume, construirea unei ontologii in jurul
conceptului Pizza.
Clasele cu nume:
Cand pornim Protege-OWL se va deschide tab-ul de clase aratat ca in figura de mai
jos.

Ierarhia de clase initiale ar trebui sa arate ca mai jos. Ontologia vida contine o clasa
numita owl:Thing.
Dupa cum am mentionat anterior, clasele OWL sunt interpretate ca seturi de indivizi
(seturi de obiecte). Clasa owl:Thing este clasa ce reprezinta multimea tuturor
indivizilor datorita faptului ca toate clasele sunt subclase ale owl:Thing.
Vom adauga cateva clase ontologiei pentru a crea ceea ce noi credem ca reprezinta
pizza. Desi nu exista nici o conventie obligatorie cu privire la numirea claselor OWL,
se recomand ca toate numele de clase sa inceapa cu litera mare si ar trebui sa nu
contina spatii, spre exemplu: Pizza, PizzaTopping, PizzaMargherita. Alternativ, se
poate folosi caracterul underscore pentru a uni cuvintele.
_______________________________________________________________
Sorin Simoiu, Andreea Urzica

Protege
Clase disjuncte
Avand adaugate clasele Pizza, PizzaTopping si PizzaBaza in ontologie dorim acum sa
spunem ca aceste clase sunt disjuncte, pentru ca un individ (un obiect) nu poate fi
instanta a mai mult decat una din aceste 3 clase. Pentru a specifica clase care sunt
disjuncte de clasa selectata folosim widget-ul Disjoint care este localizat in partea
dreapta jos a tabului OWLClasses. Dupa ce am activat widget-ul daca selectam
clasa PizzaBaza vom observa ca in widget se vor afisa clasele disjuncte cu PizzaBaza
si anume: Pizza si Pizza Topping
Nu putem presupune ca un individ nu este un membru al unei anumite clase doar
pentru ca ca nu a fost asignat ca fiind un membru al acelei clase. Pentru a separa un
grup de clase trebuie sa le facem disjuncte. Aceasta asigura ca un individ care a fost
asignat ca fiind un membru al uneia dintre clasele din grup nu poate fi un membru al
nici unei alte clase din acel grup. In exemplul nostru de mai sus clasele Pizza,
PizzaToping si PizzaBase au fost facute dinjuncte una de cealalta. Aceasta inseamna
ca nu este posibil pentru un individ sa fie un membru al unei combinatii din aceste
clase nu ar avea sens pentru un individ sa fie Pizza si PizzaBase.
Utilizarea Wizardurilor OWL pentru a crea clase
Pluginul OWL este o extensie ce contine un set de wizard-uri care sunt proiectate sa
transforme taskurile comune, repetitive si greoaie in unele mai usoare. Pentru a crea
clase folosind Protege OWL procedura este foarte simpla tot ceea ce trebuie sa facem
este sa apasam butonul Create a Group of Classes si spre exemplu sa adaugam
cateva subclase clasei PizzaBaza. Dupa ce am executat toate aceste operatiuni apasam
butonul Finish si wizzard-ul va crea clasele, le va face disjuncte si le va selecta in
tabul de clase: ProtegeClasses. Acum ontologia ar trebui sa contina clasele:
SubtireSiCrocantaBaza si de asemenea TavaInaltaBaza ca subclase ale clasei
PizzaBaza. Aceste noi clase ar trebui sa fie disjuncte unele de altele. Astfel, o pizza de
baza nu poate fi in acelasi timp una crocanta si una facuta in tigaie cu peretii inalti. Nu
este dificil de observat ca daca noi aveam o multime mai mare de clase de adaugat
acestei ontologii wizard-ul ar reduce considerabil timpul de creare al acestora.
Crearea unor topinguri pentru pizza
Dupa ce am creat cateva clase de baza o sa cream niste topping-uri pentru pizza.
Pentru a fi folositoare si mai tarziu topping-urile vor fi grupate in diferite categorii:
topping-uri cu carne, topping-uri vegetariene si topping-uri cu branza si topping-uri cu
fructe de mare.
Pana acum, am creat cateva clase cu nume simple, unele fiind subclase ale altor clase.
Constructia ierarhie de clase ar fi putut fi intuitiva pana aici. Totusi, ce inseamna
defapt a fi subclasa a unei alte clase in OWL? Spre exemplu, ce inseamna
pentruToppingVegetal sa fie subclasa a PizzaTopping, sau pentru TopingRosii sa fie
sublasa ToppingVegetal? In owl termenul de subclasa inseamna implicatie necesara.
Cu alte cuveinte, daca ToppingVegetal este o subclasa a PizzaTopping atunci TOATE
instantele ale clasei ToppingVegetal sunt subclase ale PizzaTopping, fara exceptie
_______________________________________________________________
Sorin Simoiu, Andreea Urzica

Protege
daca ceva este un ToppingVegetal atunci aceasta implica si apartenenta la
PizzaTopping dupa cum este reflectat in figura de mai jos.

Proprietatile OWL
Proprietatile OWL reprezinta relatii intre indivizi. Sunt 2 tipuri de proprietati:
Proprietati Obiect si proprietati TipuriDeDate. ProprietatileObiect leaga un individ de
un individ. Proprietatile TipuriDeDate leaga un individ de o Schema XML de valori
de tipuri de date sau un literal rdf. OWL are de asemenea informatii (metadate) despre
clase, indivizi si proprietati ale obiectelor sau tipurilor de date Proprietatile
Adnotari. Proprietatile Adnotari pot fi folosite pentru a adauga aceste informatii. In
figura de mai jos o sa fie ilustrat un exemplu despre aceste proprietati.

_______________________________________________________________
Sorin Simoiu, Andreea Urzica

Protege

Proprietatile pot fi create folosind tab-ul Properties.

Dupa cum se poate observa exista si butoane pentru a crea Proprietati ale tipurilor de
date si proprietati Admotari. Cele mai multe proprietati pe care le vom crea vor fi
proprietati Obiect. Dupa ce am adaugat proprietatea areIngredient, vom adauga acum
inca doua proprietati: areTopping si areBaza. In OWL, proprietatile pot avea
subproprietati astfel exista posibilitatea de a crea ierarhii de proprietati.
Subproprietatile specializeaza super proprietatile lor. Spre exemplu, proprietatea
areMama poate fi o specializare mai generala a proprietatii arePrinte. In cazul
ontologiei noatre cu pizza areTopping si areBaza ar trebui sa fie create ca
subproprietati ale areIngredient. Daca proprietatea areTopping leaga doi indivizi
aceasta implica ca cei doi indivizi sunt legati prin proprietatea areIngredient. De
subliniat este faptul ca se pot crea si subproprietati ale proprietatilor Tipurilor de Date.
Trebuie notat ca nu este posibil sa imperechem proprietatile obiect si proprietati ale
tipurilor de date adica nu este posibil sa cream o proprietate obect care este
subproprietate a unei proprietati tip de date si vice-versa.
_______________________________________________________________
Sorin Simoiu, Andreea Urzica

Protege
Proprietati inverse
Fiecare proprietate obiect poate avea o proprietate inversa corespondenta. Daca
anumite proprietati leaga individul a de individul b atunci proprietatea inversa va lega
individul b de individdul a. De exemplu, daca avem proprietatea areParinte si inversa
sa, proprietatea areCopil, atunci, daca Ion are parinte Mihai atunci datorita proprietatii
inverse vom putea infera ca Mihai areCopil pe Ion. Proprietatile inverse pot fi create
utilizand widget-ul de proprietati inverse.
Proprietati Functionale
Daca o proprietate este functionala, pentru un anumit individ, poate fi cel mult un
individ care este legat de individul initial prin acea proprietate. Figura de mai josne
arata unexplu de o proprietate functionala areMamaNastere ceva poate avea numai o
mama la nastere. Daca vom spune ca Jean areMamaNastere Petronela si vom spune
deasemenea ca Jean areMamaNastere Larisa atunci Petronela si Larisa trebuie sa fie
acelasi individ. Ar trebui deasemenea subliiat ca daca Petroela si Larisa ar fi doi
indivizi distincti atunci afirmatiile de mai sus ar duce la o inconsistenta. Proprietatile
functionale sunt deasemenea cunoscute ca proprietati valuate singulare si deasemenea
ca si caracteristici.
Proprietati Functionale Inverse
Daca o proprietate este functionala inversa atunci inseamna ca proprietatea inversa
este functionala. Pentru un anumit individ, poate fi cel mult un indivd legat de acel
individ prin acea proprietate. Figura de mai jos arata un exemplu de proprietate
funcionala inversa: esteMamaNastereA. Aceasta este proprietatea inversa a
areMamaNastere atata timp cat areMamaNastere este functionala,
esteMamaNastereA este proprietate inversa funcionala. Daca vom presupune ca
Petronela este mama de nastere a lui Larisa, si deasemenea Margareta este mama de
nastere a lui Larisa atunci vom putea infera ca Petronela si Margareta sunt acelasi
individ.
Proprietati tranzitive
Daca o proprietate este tranzitiva, si proprietatea relationeaza un individ a de un
individ b, si de asemenea individul b de individul c, atunci vom putea infera ca
individul a este relationat cu individulc prin proprietatea P.
Pentru a exemplifica, presupunem proprietatea tranzitiva: areStramos. Daca Matt
areStramos pe Bill si Tom il areStramos pe Matt, atunci Tom areStramos pe Bill.
Proprietati simetrice
Daca o proprietate P este simetrica, si proprietatea relationeaza individul a cu
individul b atunci individul b este si el relationat cu individul a.
Presupunem proprietatea simtrica esteSoraCu. Daca Julia esteSoraCu Olimpia, atunci
si Olimpia esteSora cu Julia.
_______________________________________________________________
9
Sorin Simoiu, Andreea Urzica

Protege
Domeniul si Codomeniul Proprietatilor
Proprietatile pot avea specificat un domeniu si un codomeniu. In exemplul nostru cu
Pizza proprietatea areTopping va lega indivizii din clasa Pizza cu indivizii din
PizzaTopping. In acest caz, domeniul este Pizza si codomeniul, PizzaTopping.

Daca domeniul contine mai mult clase, se va considera ca este format din reuniunea
acelor clase. La fel si pentru codomeniu.

Restrictii ale proprietatilor


In OWL, proprietatile sunt folosite pentru a crea restrictii. Restrictiile in OWL se
impart in urmatoarele categorii:
a) Restrictii cuantificator
b) Restrictii de cardinalitate
c) Restrictii areValoarea
O restrictie descrie de fapt o clasa anonima ce contine toti indivizii ce satisfac
restrictia.
Vom vorbi mai intai despre restrictiile cuanificator. Cei doi cuantificatori ce pot fi
folositi sunt:
1) Cuantificatorul existential (exista) care se citeste ca unii sau macar
unul
2) Cuantificatorul universal (oricare) care se citeste ca doar

_______________________________________________________________
Sorin Simoiu, Andreea Urzica

Protege

Restrictiile existentiale sunt de departe cele mai intalnite tipuri de restrictii in


ontologiile OWL. Pentru o multime de indivizi, o restictie de existentiala specifica
existenta a cel putin unei relatii intre o proprietate data asupra unui individ ce apartine
unei anumite clase. De exemplu, (exista) hasBase PizzaBase descrie toti indivizii care
au cel putin o relatie intre proprietatea hasBase cu indivizii care apartin clasei
PizzaBase, intr-un limbaj mai natural, toti indivizii ce au cel putin un blat de pizza.

Folosirea unui Reasoner


O caracteristica cheie a ontologiilor descrise folosind subspecia OWL-DL este aceea
ca ele pot fi procesate de catre un reasoner. Unul dintre serviciile cele mai importante
oferite de un Reasoner (numit si clasificator) este acela de a testa daca o clasa este
subclasa a altei clase sau nu. Prin efectuarea acestor teste asupra tuturor claselor dintro ontologie, un reasoner poate calcula ontologia inferata corespunzatoare ierarhiei de
clase. Un alt serviciu standard oferit de catre un reasoner, este verificarea consistentei.
Pe baza descrierii (conditiilor) unei clase, reasonerul poate verifica daca este sau nu
posibil ca acea clasa sa aiba vreo instanta. O clasa este declarata inconsistenta daca nu
poate avea nici o instanta.
Fara a avea un reasoner este foarte greu de mentinut ontologii mari intr-o stare corecta
logic. In cazurile in care ontologiile au clase care au multe superclase, este bine ca de
fiecare data sa construim ierarhia de clase ca un arbore simplu. Calcularea si
mentinerea mostenirii multiple este datoria reasonerului.

Restrictii universale
Am discutat pana acum despre restrictiile existentiale. Acestea nu specifica faptul ca
singura relatie pentru o anume proprietate care poate exista trebuie sa fie a indivizilor
ce apartin clasei specificate ca filler. De exemplu, am putea folosi restrictia
existentiala (exista) areTopping MozzarellaTopping pentru a descrie indivizii care au
cel putin o relatie intre proprietatea areTopping si un individ din clasa
MozzarellaTopping. Aceasta restrictie nu implica faptul ca toate relatiile de tip
areTopping trebuie sa se aplice catre un membru al clasei MozzarellaTopping. Pentru
a restrictiona relatiile pentru o anumita proprietate catre indivizi ce sunt membrii doar
unei clase anume, trebuie sa folosim restrictii universale.
De exemplu, restrictia universala (oricare) areTopping MozzarellaTopping descrie
indivizii
al caror toate relatiile hasTopping sunt catre membrii ai clasei
MozzarellaTopping; indivizii nu au relatii de genul areTopping cu membrii care nu
sunt din clasa Mozzarella.

Restrictii de cardinalitate
In OWL putem descrie clasa indivizilor care au cel mult, cel putin sau exact un
anumit numar de relatii cu alti indivizi sau valori de tip de date. Restrictia care descrie
aceste clase este cunoscuta sub numele de restrictie de cardinalitate. Pentru o
_______________________________________________________________
Sorin Simoiu, Andreea Urzica

Protege
proprietate data, P, restrictia de cardinalitate minima specifica numarul minim de
relatii P in care poate participa un individ. Analog pentru maxim si egal-cu.

Concluzii
Atunci cand dorim sa definim ontologii foarte complexe, si nu numai, Proetege este
tot ceea ce ne trebuie. Avand o interfata vizuala foarte dezvoltata putem defini clase,
indivizi, proprietati, relatii doar prin cateva click-uri salvand astfel mult timp pe care
l-am fi petrecut cu scrierea efectiva in OWL. Aceasta facilitate se poate observa din
descrierea clasei de mai jos:
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Person"/>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasChild"/>
<owl:allValuesFrom>
<owl:unionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Doctor"/>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasChild"/>
<owl:someValuesFrom rdf:resource="#Doctor"/>
</owl:Restriction>
</owl:unionOf>
</owl:allValuesFrom>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>

Bibliografie
http://protege.stanford.edu/overview/protege-owl.html
http://protege.stanford.edu/doc/tutorial/get_started/get-started.html
http://www.cs.pdx.edu/~howe/cs410/owl_tutorial.pdf
http://www.co-ode.org/resources/tutorials/

_______________________________________________________________
Sorin Simoiu, Andreea Urzica

S-ar putea să vă placă și