STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
Web06 Semantic Web: Ontologii OWL
1. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
Web semantic
Dr. SabinCorneliu Buraga
Facultatea de Informatica
Universitatea “A.I.Cuza” – Iasi, Romania
http://www.infoiasi.ro/~busaco/
Dr. Sabin Buraga http://www.purl.org/net/busaco
3. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
“Cine deschide toate portile,
le poate inchide pe toate.”
Antonio Porchia
Dr. Sabin Buraga http://www.purl.org/net/busaco
4. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
necesitate
Existenta unui vocabular comun
elementele sintactice (cuvintele, marcatorii etc.) au acelaşi
înțeles atât pentru transmițător, cât şi pentru destinatar
Dr. Sabin Buraga http://www.purl.org/net/busaco
5. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
necesitate
Existenta unui set comun de constrângeri
Dr. Sabin Buraga http://www.purl.org/net/busaco
6. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
necesitate
Existenta unui cadru conceptual comun
oferind relații între clase de informație
înțelegerea informațiilor nu va fi influențată
de cunoştințele inițiale nespecificate
(unspecified background knowledge)
Dr. Sabin Buraga http://www.purl.org/net/busaco
7. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
solutie
Modelarea cunostintelor via ontologii
Dr. Sabin Buraga http://www.purl.org/net/busaco
8. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii
Ontologia = teorie privitoare la existenta
Dr. Sabin Buraga http://www.purl.org/net/busaco
9. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii
O ontologie reprezinta conceptualizarea
unui domeniu de cunoastere
intr‐un format destinat a fi procesat de calculator,
format modelind entitati, atribute, relatii si axiome
scop: conceptualizari complexe
ale unui domeniu de interes
Dr. Sabin Buraga http://www.purl.org/net/busaco
10. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii
Subiectul ontologiei este studiul categoriilor
de lucruri (things) care exista sau pot exista
intr‐un domeniu de interes (Sowa, 2001)
Dr. Sabin Buraga http://www.purl.org/net/busaco
11. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii
O ontologie reprezinta un set de definitii formulate
intr‐un limbaj formal pentru termenii ce descriu
un domeniu de interes
(Adam Pease, 2007)
Dr. Sabin Buraga http://www.purl.org/net/busaco
12. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii
Ontologie ≡ catalog de tipuri de lucruri
care se presupune că există într‐un domeniu
de interes D (domain) din perspectiva
unei persoane care utilizează un limbaj L
cu scopul de a discuta despre D
Dr. Sabin Buraga http://www.purl.org/net/busaco
13. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii
Tipurile din ontologie reprezintă predicatele,
sensurile cuvintelor sau conceptele şi
relaţiile ale limbajului L, atunci când este utilizat
pentru a discuta despre domeniul D
Dr. Sabin Buraga http://www.purl.org/net/busaco
14. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii
Ontology work should be here,
Concept since logic is needed
Refers To to substitute for
human thought.
“Orange”
Lots of “ontology” work
Stands For Term
Referent has really been here.
Adam Pease, 2007 citind pe C.K. Ogden/I.A. Richards (1923)
Dr. Sabin Buraga http://www.purl.org/net/busaco
15. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii
Rolul ontologiilor (Jerry Hobbs, 2003)
Fixeaza intelesul
conceptelor (termenilor)
vocabularului comun
Dr. Sabin Buraga http://www.purl.org/net/busaco
16. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii
Folosind ontologii, asociem semantici
“lucrurilor” despre care “vorbim”
descrierile semantice “ajuta” calculatoarele sa para “smart”
un program “smart” ar trebui sa fie capabil sa realizeze
aceleasi inferente pe care le fac (unii) oameni
Dr. Sabin Buraga http://www.purl.org/net/busaco
17. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii – tipuri
Ontologii informale versus formale
(de la limbaj natural la logica)
Dr. Sabin Buraga http://www.purl.org/net/busaco
18. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii – tipuri
Ontologii formale:
axiomatice – disting sub‐tipurile prin axiome şi definiții
specificate într‐un limbaj formal (logic)
bazate pe prototipuri – disting sub‐tipurile prin
comparația cu un membru tipic ori specificând
un prototip pentru fiecare sub‐tip în parte
Dr. Sabin Buraga http://www.purl.org/net/busaco
19. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii – tipuri
Conform nivelului de descriere oferit:
Vocabular (schema XML)
Taxonomie – relatii de clasificare (isa)
vedere ierarhica a conceptelor
(clase, sub‐clase, supra‐clase)
Tezaur = taxonomie + termeni inruditi
(via relatii de echivalenta, ierarhii, asocieri etc.)
Sistem relational (schema de baze de date)
Teorie axiomatica (constrangeri ≡ axiome)
axiomă ≡ enunț logic ce nu poate fi dedus din altele,
dar poate fi folosit pentru demonstrarea altora
Dr. Sabin Buraga http://www.purl.org/net/busaco
20. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
Tipuri de ontologii
(Daconta et al., 2003)
Dr. Sabin Buraga http://www.purl.org/net/busaco
21. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii – tipuri
Dupa scopul & contextul utilizarii:
Ontologii specializate
e.g., industria de automobile, aeronautica,
ontologia proceselor OWL‐S, biologie etc.
Ontologii generale
Cyc, OpenCyc, ontologia lui Sowa,
SUMO (Suggested Upper Merged Ontology),…
Ontologii intermediare – midlevel
MILO (MIdLevel Ontology)
Dr. Sabin Buraga http://www.purl.org/net/busaco
22. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii – tipuri (Guarino, 1998)
De nivel cel mai inalt
(toplevel, upperlevel) – cele mai generale
Specifice unui domeniu
(domainrelated) – verticale
Specifice unor sarcini
(taskrelated) – orizontale
Specifice unei aplicatii
(applicationrelated) – apeleaza la ontologii verticale
si/sau orizontale
Dr. Sabin Buraga http://www.purl.org/net/busaco
23. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii – specificare
Componente distincte:
nume privind cele mai importante concepte
ale domeniului de cunoastere modelat
cunostinte anterioare (de “background”)
sau constringeri ale domeniului
Dr. Sabin Buraga http://www.purl.org/net/busaco
24. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii – specificare: exemplu
Crocodil reprezinta un concept ai carui membri
sunt animale de un anumit tip
Ierbivor este un concept ai carui membri sunt acele
animale care consuma doar plante ori parti de plante
Orice membru al clasei Crocodil este vorace
Un animal nu poate fi simultan Ierbivor si Carnivor
Dr. Sabin Buraga http://www.purl.org/net/busaco
25. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii – specificare
O ontologie va include:
categoriile, clasele, conceptele fundamentale
proprietatile conceptelor
relatiile & distinctiile dintre concepte
Dr. Sabin Buraga http://www.purl.org/net/busaco
26. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii – specificare
Reprezentari uzuale ale ontologiilor:
Limbaje logice: Prolog & familia (Golog, ConGolog)
KIF (Knowledge Interchange Format)
CL (Common Logic)
DL (Logici ale descrierii – description logics)
Limbaje bazate pe XML: OIL, RDFS, DAML+OIL, OWL
Dr. Sabin Buraga http://www.purl.org/net/busaco
27. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii – specificare
Specificarea categoriilor/conceptelor
Categorie ≡ domeniu (in teoria bazelor de date)
Categorie ≡ tip/sort (in inteligenta artificiala)
Categorie ≡ clasa (in cazul ontologiilor Web)
Criteriile de stabilire a conceptelor sunt complexe
Experienta are un rol foarte important
Exemplu: Thing – categoria cea mai generala la Cyc
Dr. Sabin Buraga http://www.purl.org/net/busaco
28. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii – specificare
Clasele (categoriile)
de nivel cel mai inalt
ale ontologiei Cyc
(Noy & Hafner, 1997)
Dr. Sabin Buraga http://www.purl.org/net/busaco
29. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii – specificare
Categorii de nivel inalt – cazul SUMO (Adam Pease, 2007):
Entity
Physical
Object
SelfConnectedObject
Substance
CorpuscularObject
Region
Collection
Process
Abstract
Dr. Sabin Buraga http://www.purl.org/net/busaco
30. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii – specificare
Specificarea proprietatilor
Proprietate ≡ atribut
Proprietate ≡ slot/frame (in inteligenta artificiala)
Diferentiaza un concept de altul
Relatie binara care poate specifica fapte privitoare la
membrii unei clase ori la indivizi
Proprietatile se pot referi la tipuri de date (datatype
property) sau la obiecte (object property)
In unele cazuri, pot fi specificate si sub‐proprietati
Dr. Sabin Buraga http://www.purl.org/net/busaco
31. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii – specificare
Specificarea proprietatilor – exemplu de frame
Eugen: Person
varsta 24 cardinality: 1
ocupatie masterand
Dr. Sabin Buraga http://www.purl.org/net/busaco
32. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii – specificare
Specificarea proprietatilor – exemplu:
Modelul de date (abstract)
Instante – folosind DCMI
Dr. Sabin Buraga http://www.purl.org/net/busaco
33. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii – specificare
Specificarea relatiilor
Pentru organizarea/ilustrarea categoriilor
se folosesc arborii si grafurile
Relatiile pot fi de:
Cazul
hiperonimie (“general‐specific”)
WordNet
meronimie (“parte‐intreg”)
antonimie
Remarca: in specificarea relatiilor si proprietatilor
pot interveni meta‐datele
Dr. Sabin Buraga http://www.purl.org/net/busaco
34. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii – specificare
Specificarea relatiilor – exemplu:
Dr. Sabin Buraga http://www.purl.org/net/busaco
35. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
ontologii vs. limbaj vs. cunostinte
Conform (Pease, 2007)
Ontologie Limbaj (natural)
expandabila
inteles de oameni
independenta de limbaj
ambiguu
procesabila de catre masina
Cunostinte
se modifica rapid (“perisabile”)
pot exprima local un “lucru”
Dr. Sabin Buraga http://www.purl.org/net/busaco
36. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
intrebare
Cum exprimam ontologiile la nivel de Web?
Dr. Sabin Buraga http://www.purl.org/net/busaco
37. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL
Web Ontology Language
scop: facilitarea interpretarii de catre masina
a continutului informational
exprima ontologii
Recomandare W3C (2004) – 6 parti:
www.w3.org/TR/owlguide/
Dr. Sabin Buraga http://www.purl.org/net/busaco
38. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL
Se bazeaza pe modelul RDF si RDF Schema
succesor al DAML+OIL
DARPA Agent Markup Language + Ontology Inference Layer
modelul formal se bazeaza pe logicile descrierii
(subset al logicii cu predicate de ordinul I)
Dr. Sabin Buraga http://www.purl.org/net/busaco
39. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: niveluri
OWL Lite – pentru exprimarea ierarhiilor
de clasificare si a unor constringeri simple
OWL DL – ofera maximum de expresivitate,
fara pierderea completitudinii & decidabilitatii
OWL Full – maximum de expresivitate si flexibilitate,
fara a se pune problema completitudinii
OWL Lite ⊂ OWL DL ⊂ OWL Full
Dr. Sabin Buraga http://www.purl.org/net/busaco
40. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: niveluri
OWL Full – extensie a RDF,
permite modificarea vocabularelor RDF si OWL
OWL DL – parte a OWL Full conforma
cu modelul formal oferit de logicile descrierii
OWL Lite – faciliteaza realizarea de rationamente
(reasoning) simple
OWL Lite ⊂ OWL DL ⊂ OWL Full
Dr. Sabin Buraga http://www.purl.org/net/busaco
41. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL
Constructii pentru descrierea proprietatilor si claselor:
relatiile dintre clase – e.g., disjunctia
cardinalitatea – e.g., “exact una”
egalitatea/echivalenta (conceptelor, proprietatilor,…)
specificarea tipurilor de proprietati
caracteristicile proprietatilor – e.g., simetria, inversa
…
Dr. Sabin Buraga http://www.purl.org/net/busaco
42. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL
Sintaxe:
documente RDF/XML
usor de procesat, stocat, interogat
“abstracta”
corespunde modelului logicilor descrierii
Dr. Sabin Buraga http://www.purl.org/net/busaco
43. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL
O ontologie OWL este compusa din:
clase
instante de clase
relatii intre instantele claselor
nu se impune apriori o cunoastere completa
a domeniului de interes – ipoteza open world
fiecare ontologie va fi identificata de un URI
Dr. Sabin Buraga http://www.purl.org/net/busaco
44. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea claselor
O clasa se specifica prin owl:Class
colectii de indivizi (obiecte, things,...)
modalitate de a descrie o lume
reprezinta un “obiect” (“thing”) al lumii
cea mai generala clasa va fi owl:Thing
Dr. Sabin Buraga http://www.purl.org/net/busaco
45. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea claselor
Relatia de derivare a claselor
se exprima via rdfs:subClassOf
<owl:Class rdf:ID=Audio>
<rdfs:subClassOf rdf:resource=#Multimedia />
</owl:Class>
Dr. Sabin Buraga http://www.purl.org/net/busaco
46. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea claselor
Expresii de clasa:
reuniune <owl:unionOf>
intersectie <owl:intersectionOf>
complementara <owl:complementOf>
disjunctie <owl:disjointWith>
semantica operatiilor e conforma cu teoria multimilor
expresiile de clasa sunt folosite la specificarea claselor
Dr. Sabin Buraga http://www.purl.org/net/busaco
47. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea claselor
Exemplu:
resursele video nu sunt lumi virtuale, nici executabile
<owl:Class rdf:ID=Video>
<rdfs:subClassOf rdf:resource=#Multimedia />
<owl:disjointWith rdf:resource=#LumiVirtuale />
<owl:disjointWith rdf:resource=#Executabile />
</owl:Class>
Dr. Sabin Buraga http://www.purl.org/net/busaco
48. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea claselor
Implicit, OWL se aliniaza ipotezei lumii deschise
(open world assumption)
cu implicatii majore in ceea ce priveste operatiile
dintre clase si realizarea inferentelor
referitoare la cardinalitate
in unele cazuri, putem specifica exact membrii unei clase,
adoptind – local – ipoteza lumii inchise (closed world)
Dr. Sabin Buraga http://www.purl.org/net/busaco
49. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea claselor
Exemplu: determinarea albumului detinut de o persoana
:AlbumePortishead a owl:Class ;
owl:oneOf ( :Dummy :Portishead :Third ) .
fiecare instanta specificata via owl:oneOf
este membra a clasei respective
stiind ca :Anca :detine :AlbumePortishead .
se poate deduce faptul ca detine macar unul dintre ele
Dr. Sabin Buraga http://www.purl.org/net/busaco
50. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea claselor
Astfel, o clasa se poate defini
doar prin enumerarea membrilor ei:
<owl:Class rdf:ID=Gen>
<owl:oneOf rdf:parseType=Collection>
<Gen rdf:about=#Masculin/>
<Gen rdf:about=#Feminin/>
</owl:oneOf>
</owl:Class>
Dr. Sabin Buraga http://www.purl.org/net/busaco
51. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea claselor
Specificarea echivalentei claselor se poate realiza
prin owl:equivalentClass
<owl:Class rdf:ID=Designer>
<owl:equivalentClass rdf:resource=#Proiectant />
</owl:Class>
Dr. Sabin Buraga http://www.purl.org/net/busaco
52. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea claselor
Avind doua clase echivalente,
aceasta inseamna ca vor avea doar aceeasi membri
alte proprietati ale claselor sunt proprii fiecareia
(de exemplu, rdfs:label)
Dr. Sabin Buraga http://www.purl.org/net/busaco
53. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea proprietatilor
Proprietati = relatii binare care pot specifica fapte
privitoare la membrii unei clase sau la indivizi
se refera la tipurile de date (datatype property)
se refera la obiecte (object property)
vazute drept colectii de relatii intre indivizi (si date)
Dr. Sabin Buraga http://www.purl.org/net/busaco
54. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea proprietatilor
Exemplu: definirea unei proprietati de tip obiect care
exprima faptul ca o resursa multimedia poate fi stocata
pe un sit Web multimedia
<owl:ObjectProperty rdf:ID=stocat>
<rdfs:domain rdf:resource=#Multimedia />
<rdfs:range rdf:resource=#SitMultimedia />
</owl:ObjectProperty>
Dr. Sabin Buraga http://www.purl.org/net/busaco
55. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea proprietatilor
Exemplu: definirea unei proprietati datatype pentru
a specifica relatia intre resurse si literali sau valori de date
avind tipuri XML Schema
<owl:DatatypeProperty rdf:ID=dimensiune>
<rdfs:domain rdf:resource=#Multimedia />
<rdfs:range rdf:resource=
http://www.w3.org/2001/XMLSchema#unsignedLong />
</owl:DatatypeProperty>
Dr. Sabin Buraga http://www.purl.org/net/busaco
56. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea proprietatilor
Definind o proprietate, in fapt se impune o restrictie
Proprietatile pot include sub‐proprietati (specializari)
si pot avea specificate caracteristici “speciale”
Dr. Sabin Buraga http://www.purl.org/net/busaco
57. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea proprietatilor
O proprietate care nu are decit o singura valoare
pentru fiecare individ – valoarea ei este unica –
se numeste proprietate functionala
<owl:FunctionalProperty rdf:ID=areGen>
<rdfs:domain rdf:resource=#Persoana />
<rdfs:range rdf:resource=#Gen />
</owl:FunctionalProperty>
O persoana are doar un singur gen.
Dr. Sabin Buraga http://www.purl.org/net/busaco
58. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea proprietatilor
Daca resursa A este in relatia p cu B si
B este in relatia p cu A,
atunci p este o proprietate simetrica
<owl:SymmetricProperty rdf:ID=rudaCu>
<rdfs:domain rdf:resource=#Persoana />
<rdfs:range rdf:resource=#Persoana />
</owl:SymmetricProperty>
Relatia de rudenie intre persoane este simetrica.
Dr. Sabin Buraga http://www.purl.org/net/busaco
59. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea proprietatilor
De remarcat faptul ca unele dintre proprietatile
specificate de OWL – e.g., owl:equivalentClass –
sunt simetrice
Dr. Sabin Buraga http://www.purl.org/net/busaco
60. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea proprietatilor
Proprietati inverse
daca proprietatea p este inversa lui q
si A este in relatia p cu B,
atunci se poate deduce ca B este in relatia q cu A
se foloseste constructia owl:inverseOf
Dr. Sabin Buraga http://www.purl.org/net/busaco
62. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea proprietatilor
Proprietati tranzitive
data fiind proprietatea p tranzitiva,
daca exista A p B . si B p C .
atunci se poate deduce
ApC.
se recurge la owl:TransitiveProperty
Dr. Sabin Buraga http://www.purl.org/net/busaco
63. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea proprietatilor
Mai pot fi specificate proprietati:
invers functionale
antisimetrice
reflexive
antireflexive
Dr. Sabin Buraga http://www.purl.org/net/busaco
64. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea proprietatilor
Folosind owl:equivalentProperty se poate specifica
echivalenta a doua proprietati
Dr. Sabin Buraga http://www.purl.org/net/busaco
65. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea indivizilor
Un individ (membru) al unei clase
se declara ca apartinind clasei respective
reprezinta un obiect al lumii (Thing)
este “inrudit” cu alte obiecte sau valori de date
via proprietati
Dr. Sabin Buraga http://www.purl.org/net/busaco
66. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea indivizilor
<!-- definim individul -->
<owl:Thing rdf:ID=the_wall>
<rdfs:comment>Un film de Pink Floyd</rdfs:comment>
</owl:Thing>
<!-- ulterior, specificăm tipul lui
(eventual proprietăţi/meta-date) -->
<owl:Thing rdf:about=#the_wall>
<rdf:type rdf:resource=#Video />
</owl:Thing>
Dr. Sabin Buraga http://www.purl.org/net/busaco
68. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea indivizilor
Echivalenta intre indivizi se realizeaza
prin owl:sameAs
Se poate folosi si owl:differentFrom
Dr. Sabin Buraga http://www.purl.org/net/busaco
69. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea indivizilor
Exemplu: specificarea a 2 indivizi distincti
<owl:Thing rdf:ID=zidul>
<rdfs:comment>Un film din România</rdfs:comment>
</owl:Thing>
<rdf:Description rdf:about=#zidul>
<owl:differentFrom rdf:resource=#the_wall/>
<rdfs:comment>Nu are legătură cu 'The Wall'</rdfs:comment>
<rdf:type rdf:resource=#Video />
</rdf:Description>
Dr. Sabin Buraga http://www.purl.org/net/busaco
70. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea indivizilor
Pentru a defini colectii de indivizi distincti,
se utilizeaza owl:distinctMembers
Dr. Sabin Buraga http://www.purl.org/net/busaco
71. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea indivizilor
Exemplu:
specificarea in termeni fuzzy a localizarii unei resurse
<owl:AllDifferent>
<owl:distinctMembers rdf:parseType=Collection>
<localizare rdf:about=#local />
<localizare rdf:about=#intranet />
<localizare rdf:about=#extranet />
</owl:distinctMembers>
</owl:AllDifferent>
Dr. Sabin Buraga http://www.purl.org/net/busaco
72. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: studiu de caz – FOAF
Se definesc clasele foaf:Person, foaf:Group,
foaf:Organization ca fiind sub‐clase ale foaf:Agent
foaf:Agent rdf:type owl:Class .
foaf:Person rdfs:subClassOf foaf:Agent .
foaf:Group rdfs:subClassOf foaf:Agent .
foaf:Organization rdfs:subClassOf foaf:Agent .
Dr. Sabin Buraga http://www.purl.org/net/busaco
73. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: studiu de caz – FOAF
Pentru o persoana, sunt specificate diverse proprietati:
foaf:name, foaf:surname, foaf:nick etc.
foaf:name rdfs:domain owl:Thing .
foaf:name rdfs:subPropertyOf rdfs:label .
foaf:surname owl:equivalentProperty foaf:family_name .
Dr. Sabin Buraga http://www.purl.org/net/busaco
74. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: studiu de caz – FOAF
Fiecare agent (persoana, organizatie,…) poate creea
resurse (“things”) – se defineste proprietatea foaf:made
foaf:made rdfs:domain foaf:Agent .
foaf:made rdfs:range owl:Thing .
foaf:made owl:inverseOf foaf:maker .
similar:
foaf:publications rdfs:domain foaf:Person .
foaf:publications rdfs:range foaf:Document .
Dr. Sabin Buraga http://www.purl.org/net/busaco
75. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: studiu de caz – FOAF
Exprimarea constringerii: o persoana este identificata unic
prin adresa ei de email (doua persoane care au aceeasi
adresa de email in fapt reprezinta o singura persoana)
foaf:mbox rdf:type owl:InverseFunctionalProperty .
idem, pentru foaf:homepage, foaf:jabberID, foaf:weblog,…
Dr. Sabin Buraga http://www.purl.org/net/busaco
76. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
intrebare
Putem impune restrictii suplimentare
modelului de cunostinte descrise in OWL?
Dr. Sabin Buraga http://www.purl.org/net/busaco
77. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea restrictiilor
Restrictiile sunt considerate clase
definite prin descrierea proprietatilor indivizilor
pe care‐i pot include
specificind o multime de indivizi in termeni de clase
cunoscute (proprietati comune), putem folosi aceasta
descriere pentru a defini o noua clasa – mai restrictiva
Dr. Sabin Buraga http://www.purl.org/net/busaco
78. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea restrictiilor
Restrictiile impuse proprietatilor trebuie
sa apara in cadrul elementelor
<owl:Restriction> si <owl:onProperty>
tipuri de restrictii uzuale:
asupra valorilor: allValuesFrom, someValuesFrom, hasValue
asupra cardinalitatii: minCardinality, maxCardinality
Dr. Sabin Buraga http://www.purl.org/net/busaco
79. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea restrictiilor
Prin owl:someValuesFrom specificam restrictia:
“toti indivizii pentru care macar o valoare
a proprietatii p provine din clasa C”
[a owl:Restriction ;
owl:onProperty p ;
owl:someValuesFrom C ]
Dr. Sabin Buraga http://www.purl.org/net/busaco
80. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea restrictiilor
Exemplu: clasa mamelor reprezinta intersectia clasei
persoanelor care au copii cu cea a clasei femeilor
restrictia 1: clasa persoanelor care au copii
<owl:Restriction>
<owl:onProperty>
<owl:ObjectProperty rdf:about=#areCopil/>
</owl:onProperty>
<owl:someValuesFrom rdf:resource=#Persoana/>
</owl:Restriction>
Dr. Sabin Buraga http://www.purl.org/net/busaco
81. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea restrictiilor
Exemplu: clasa mamelor reprezinta intersectia clasei
persoanelor care au copii cu cea a clasei femeilor
restrictia 2: clasa persoanelor care sunt femei
<owl:Restriction>
<owl:onProperty>
<owl:FunctionalProperty rdf:about=#areGen/>
</owl:onProperty>
<owl:hasValue rdf:resource=#Feminin/>
</owl:Restriction>
Dr. Sabin Buraga http://www.purl.org/net/busaco
82. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea restrictiilor
Exemplu: clasa mamelor reprezinta intersectia clasei
persoanelor care au copii cu cea a clasei femeilor
restrictia 1: clasa persoanelor care au copii
[ a owl:Restriction ;
owl:onProperty :areCopil ;
owl:someValuesFrom :Persoana ]
restrictia 2: clasa persoanelor care sunt femei
[ a owl:Restriction ;
owl:onProperty :areGen ;
owl:hasValue :Feminin ]
Dr. Sabin Buraga http://www.purl.org/net/busaco
83. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea restrictiilor
Exemplu: stabilirea genului unei persoane
<owl:Class rdf:ID=Femeie>
<owl:equivalentClass>
<owl:Class>
<owl:intersectionOf rdf:parseType=Collection>
<owl:Class rdf:about=#Persoana/>
<owl:Restriction>
<owl:onProperty>
<owl:FunctionalProperty rdf:about=#areGen/>
</owl:onProperty>
<owl:hasValue rdf:resource=#Feminin/>
</owl:Restriction>
</owl:intersectionOf></owl:Class></owl:equivalentClass>
</owl:Class>
Dr. Sabin Buraga http://www.purl.org/net/busaco
84. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea restrictiilor
Prin owl:allValuesFrom specificam restrictia:
“toti indivizii pentru care toate valorile
proprietatii p provin din clasa C”
[a owl:Restriction ;
owl:onProperty p ;
owl:allValuesFrom C ]
Dr. Sabin Buraga http://www.purl.org/net/busaco
86. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea restrictiilor
Exemplu: clasa persoanelor vegetariene
stiind ca Emanuel este vegetarian si ca el consuma spanac:
:Emanuel a :Vegetarian .
:Emanuel :consuma :Spanac .
…se poate deduce faptul ca spanacul este vegetala:
:Spanac a :Vegetala .
Dr. Sabin Buraga http://www.purl.org/net/busaco
87. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea restrictiilor
In cazul someValuesFrom, trebuie sa existe macar
un membru al clasei pentru care are loc o proprietate data;
aceasta implica faptul ca trebuie sa existe
un astfel de membru
Restrictia allValuesFrom inseamna “daca exista membri,
atunci ei toti trebuie sa aiba proprietatea data”;
aceasta nu implica faptul ca trebuie sa existe de fapt
membrii corespunzatori
Dr. Sabin Buraga http://www.purl.org/net/busaco
88. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea restrictiilor
Via restrictii privind cardinalitatea, poate fi specificat
numarul (minim/maxim) de valori distincte
pe care o proprietate le poate avea
[a owl:Restriction ;
owl:onProperty p;
owl:cardinality n].
owl:minCardinality
owl:maxCardinality
Dr. Sabin Buraga http://www.purl.org/net/busaco
89. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: specificarea restrictiilor
Exemplu: o resursa audio poate fi stocata
macar de un sit Web multimedia
<owl:Class rdf:ID=Audio>
Fiecare instanta
<rdfs:subClassOf rdf:resource=#Multimedia /> din clasa Audio
<rdfs:subClassOf> trebuie sa apara
<owl:Restriction> macar in cel putin
<owl:onProperty rdf:resource=#stocat> o relatie “stocat”
<!-- indicam cardinalitatea minima -->
<owl:minCardinality rdf:datatype=&xsd;nonNegativeInteger>
1 </owl:minCardinality> </owl:onProperty>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
Dr. Sabin Buraga http://www.purl.org/net/busaco
90. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL
Aspecte importante:
verificarea consistentei si coerentei ontologiei
verificarea consistentei asertiunilor privind indivizii
– care populeaza lumea modelata de ontologie
Dr. Sabin Buraga http://www.purl.org/net/busaco
91. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL
Clasele si proprietatile pot avea “definitii” multiple
Declaratiile privitoare la indivizi
nu trebuie obligatoriu sa fie stocate
in cadrul aceluiasi document
Dr. Sabin Buraga http://www.purl.org/net/busaco
92. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: inferente
Exemplul 1 – hotul & calatorul fara bilet
Primul fapt: amprentele gasite la locul unui jaf
au identificat ca posibil hot pe Jiji Berka
<infractiune rdf:ID=raport-2008-10-29-pol4 tip=jaf>
<desc>...</desc>
<suspect>
<individ rdf:about=http://www.persoane.ro#JijiBerka />
</suspect>
</infractiune>
Dr. Sabin Buraga http://www.purl.org/net/busaco
93. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: inferente
Exemplul 1 – hotul & calatorul fara bilet
Alt doilea fapt: in tramvai, a fost gasit un calator fara bilet,
numit Moco Fin
<amenda rdf:ID=raport-2008-10-29-pol54>
<desc>...</desc>
<cetatean>
<individ rdf:about=http://www.persoane.ro#MocoFin />
</cetatean>
</amenda>
Dr. Sabin Buraga http://www.purl.org/net/busaco
94. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: inferente
Exemplul 1 – hotul & calatorul fara bilet
Alt treilea fapt: Politia poseda informatiile
<individ rdf:about=http://www.persoane.ro#MocoFin>
<owl:sameAs
rdf:resource=http://www.persoane.ro#JijiBerka />
</individ>
Dr. Sabin Buraga http://www.purl.org/net/busaco
95. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: inferente
Exemplul 1 – hotul & calatorul fara bilet
Concluzie: se poate realiza inferenta
“Moco Fin este acelasi individ cu Jiji Berka.”
OWL ofera posibilitatea de a exprima faptul
ca doua resurse (e.g., doua persoane) sunt identice
Dr. Sabin Buraga http://www.purl.org/net/busaco
96. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: inferente
Exemplul 2 – achizitionarea unei camere
Dupa (Costello et al., 2003)
SLR este
o camera? Asistent Web
pentru “Trimite‐mi catalogul
3
cumparaturi de produse”
online 1
Situl Web
<SLR rdf:ID=Olympus-OM10>
al magazi
<f-stop>1.4</f-stop>
nului
“Iata
<lens u=mm>300</lens>
catalogul...” virtual
...
<cost currency=USD>120</cost> 2
</SLR>
Dr. Sabin Buraga http://www.purl.org/net/busaco
97. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: inferente
Exemplul 2 – achizitionarea unei camere
Asistentul (agentul) Web consulta o ontologie OWL
privitoare la camere digitale de unde se poate determina
ca SLR este sub‐clasa a clasei Camera
Se poate deduce: “Olympus‐OM10 e o camera digitala.”
Camera
SLR Large-Format Digital
Dr. Sabin Buraga http://www.purl.org/net/busaco
98. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: inferente
Exemplul 2 – achizitionarea unei camere
ontologiile exprimate in OWL pot conduce la
descoperirea dinamica a relatiilor dintre resurse
Dr. Sabin Buraga http://www.purl.org/net/busaco
99. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: inferente
Exemplul 3 – locul de nastere al regelui Kamehameha
Fapt: In urma extragerii de date de pe Web, s‐a obtinut:
<individ rdf:about=http://www.persoane.ro#Kamehameha>
<locNastere rdf:about=http://www.states.com/Hawaii />
</individ>
<individ rdf:about=http://www.persoane.ro#Kamehameha>
<locNastere rdf:about=http://world.info/Sandwich_Islands />
</individ>
<individ rdf:about=http://www.persoane.ro#Kamehameha>
<locNastere rdf:about=http://history.org/Aloha />
</individ>
Dr. Sabin Buraga http://www.purl.org/net/busaco
100. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: inferente
Exemplul 3 – locul de nastere al regelui Kamehameha
ontologia privitoare la indivizi indica faptul ca
un individ are un unic loc de nastere
se poate trage concluzia ca Hawaii, Sandwich Islands
si Aloha reprezinta aceeasi locatie
OWL ofera suport pentru precizarea cardinalitatii unei
relatii dintre o resursa si o alta – in acest caz, exact una
proprietate
Resursa
Resursa
(valoare)
(subiect) 1
Dr. Sabin Buraga http://www.purl.org/net/busaco
101. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: inferente – demo
Utilizarea unui reasoner (aici, Pellet) inclus in SWOOP
Dr. Sabin Buraga http://www.purl.org/net/busaco
102. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: inferente – demo
Unealta Web OWLSight – semnalarea inconsistentelor
Dr. Sabin Buraga http://www.purl.org/net/busaco
103. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: privire de ansamblu
Antet:
Ontology
Clase (concepte):
Class, rdfs:subClassOf, intersectionOf
Proprietati:
rdfs:Property, rdfs:subPropertyOf, rdfs:domain, rdfs:range
(In)egalitati:
equivalentClass, equivalentProperty,
sameAs, differentFrom, allDifferent
Dr. Sabin Buraga http://www.purl.org/net/busaco
104. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
OWL: privire de ansamblu
Caracteristici ale proprietatilor:
inverseOf, TransitiveProperty, SymmetricProperty,
FunctionalProperty, InverseFunctionalProperty
Restrictii de tip asupra proprietatilor:
allValuesFrom, someValuesFrom
Restrictii de cardinalitate:
minCardinality, maxCardinality, cardinality
Dr. Sabin Buraga http://www.purl.org/net/busaco
105. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
Rezumat
Modelarea cunostintelor:
ontologii specificate via OWL
Dr. Sabin Buraga http://www.purl.org/net/busaco