2. Antonio Porchia
Dr. Sabin Buragawww.purl.org/net/busaco
“Cine deschide toate porțile,
le poate închide pe toate.”
3. Existența unui vocabular partajabil
elementele sintactice (cuvintele, marcatorii etc.)
au același înțeles atât pentru transmițător,
cât și pentru destinatar
Dr. Sabin Buragawww.purl.org/net/busaco
necesitate
4. Existența unui set comun de constrângeri
Dr. Sabin Buragawww.purl.org/net/busaco
necesitate
5. Existența unui cadru conceptual comun
oferind relații între clase
de date/informații/cunoștințe
Dr. Sabin Buragawww.purl.org/net/busaco
necesitate
6. Existența unui cadru conceptual comun
oferind relații între clase
de date/informații/cunoștințe
înțelegerea – automată (de dorit) – a informațiilor
nu va fi influențată de anumite cunoștințe inițiale
(unspecified background knowledge)
Dr. Sabin Buragawww.purl.org/net/busaco
necesitate
7. “Andrei predă laboratorul materiei Tehnologii Web.
Andrei e student doctorand în Computer Science.”
a
foaf:givenname
:teach
:isPartOf
a
a
:enrolledAt
rdfs:subClassOf
rdfs:subClassOf
:providedBy
a
foaf:homepage
a
foaf:Person .
"Andrei"@ro .
:WebLab .
:Web .
:Discipline .
:PhDStudent .
:PhDSchool .
:PostgradStudies .
:FIIStudies .
:FII .
:Faculty , foaf:Agent .
<http://www.infoiasi.ro> .
skos:Concept .
Dr. Sabin Buragawww.purl.org/net/busaco
:andrei
:andrei
:andrei
:WebLab
:Web
:andrei
:andrei
:PhDSchool
:PostgradStudies
:FIIStudies
:FII
:FII
:Academic
8. “Andrei predă laboratorul materiei Tehnologii Web.
Andrei e student doctorand în Computer Science.”
a
foaf:givenname
:teach
:isPartOf
a
a
:enrolledAt
rdfs:subClassOf
rdfs:subClassOf
:providedBy
a
foaf:homepage
a
foaf:Person .
"Andrei"@ro .
adnotare
:WebLab . semantică
:Web .
(explicită)
:Discipline .
:PhDStudent .
:PhDSchool .
:PostgradStudies .
:FIIStudies .
:FII .
:Faculty , foaf:Agent .
<http://www.infoiasi.ro> .
skos:Concept .
Dr. Sabin Buragawww.purl.org/net/busaco
:andrei
:andrei
:andrei
:WebLab
:Web
:andrei
:andrei
:PhDSchool
:PostgradStudies
:FIIStudies
:FII
:FII
:Academic
9. Un limbaj de modelare complexă a cunoștințelor
gestionate de o aplicație Web
Dr. Sabin Buragawww.purl.org/net/busaco
necesitate
11. Ontologia = teorie privitoare la existență
„ramură a filosofiei care studiază
trăsăturile ființei, existența”
(Hoklenium, 1613)
ontos (ființă, existență) + logos (studiu)
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii
12. O ontologie reprezintă conceptualizarea
unui domeniu de cunoaștere
într-un format destinat a fi procesat de calculator,
format modelând
entități, atribute, relații și axiome
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii
14. Subiectul ontologiei este studiul categoriilor
de lucruri (things) care există sau pot exista
în cadrul unui domeniu de interes
John Sowa, 2001
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii
16. “Ontology is a set of knowledge terms,
including the vocabulary,
the semantic interconnections,
and some simple rules of inference and logic
for some particular topic.”
James Hendler, 2001
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii
17. Dr. Sabin Buragawww.purl.org/net/busaco
ontologii
“A rigorous and exhaustive organization of some
knowledge domain that is usually hierarchical and
contains all the relevant entities and their relations.”
WordNet
18. 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 Buragawww.purl.org/net/busaco
ontologii
19. Tipurile din ontologie reprezintă predicatele,
sensurile cuvintelor sau conceptele și
relațiile din cadrul limbajului L,
atunci când este utilizat pentru a discuta
despre domeniul D
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii
23. Folosind ontologii, asociem semantici
“lucrurilor” despre care “vorbim”
relație
exemplu: un framework Web este o componentă software
care facilitează dezvoltarea unui sit Web
categorie
(clasă)
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii
24. Folosind ontologii, asociem semantici
“lucrurilor” despre care “vorbim”
descrierile semantice “ajută” calculatoarele
să pară “smart”
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii
25. Folosind ontologii, asociem semantici
“lucrurilor” despre care “vorbim”
un program “smart” ar trebui să fie capabil să realizeze
aceleași inferențe pe care le fac (unii) oameni
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii
e.g., dacă Meteor este framework Web, atunci este
componentă softwarenecesită un mediu de execuție și
oferă suport pentru diverse tehnologii Web: URI, HTTP,…
26. Siri – asistent digital personal mobil
(Tom Gruber, 2010; Apple, din 2011)
bazat pe modele semantice privind domenii + activități
recurge la servicii (API-uri) publice de interes
manifestă o interacțiune naturală cu utilizatorul
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – exemplificare
27. Ontologii informale versus formale
(de la limbaj natural la logică)
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – tipuri
29. Ontologii formale:
axiomatice
disting sub-tipurile prin axiome și definiții
specificate într-un limbaj formal (logic)
bazate pe prototipuri
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – tipuri
disting sub-tipurile prin comparația cu un membru tipic
ori specificând un prototip pentru fiecare sub-tip în parte
30. Conform nivelului de descriere oferit:
vocabular
de exemplu, specificare via o schemă XML
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – tipuri
31. Conform nivelului de descriere oferit:
taxonomie – relații de clasificare (is-a)
vedere ierarhică a conceptelor
(clase, sub-clase, supra-clase)
modelare prin RDF Schema
vezi cursul
precedent
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – tipuri
32. Conform nivelului de descriere oferit:
lexicon = taxonomie + termeni înrudiți
(via relații de echivalență, ierarhii, asocieri etc.)
modelare prin SKOS
vezi cursul
precedent
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – tipuri
33. Conform nivelului de descriere oferit:
sistem relațional
schemă de baze de date
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – tipuri
34. Conform nivelului de descriere oferit:
teorie axiomatică
(constrângeri axiome)
axiomă enunț logic ce nu poate fi dedus din altele,
dar poate fi folosit pentru demonstrarea altora
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – tipuri
35. După scopul & contextul utilizării:
ontologii specializate
industria de automobile, aeronautica,
biologie (GO – Gene Ontology),
comerț electronic (GoodRelations),
muzică (MO – Music Ontology),
ontologia proceselor (serviciilor Web) OWL-S
etc.
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – tipuri
37. După scopul & contextul utilizării:
ontologii generale
Cyc
OpenCyc
SUMO (Suggested Upper Merged Ontology)
UMBEL (Upper Mapping and Binding Exchange Layer)
…
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – tipuri
38. După scopul & contextul utilizării:
ontologii intermediare – mid-level
exemplificare:
MILO (MId-Level Ontology)
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – tipuri
39. De nivel cel mai înalt
(top-level, upper-level) – cele mai generale
Specifice unui domeniu
(domain-related) – verticale
Specifice unor sarcini
(task-related) – orizontale
Specifice unei aplicații
(application-related) – apelează la ontologii verticale
și/sau orizontale
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – tipuri (Guarino, 1998)
40. Aspecte de interes – inginerie
(Gasevic, Djuric & Devedzic, 2009)
modelare
colaborare
interoperabilitate
educație
detalii în
viitoarele cursuri
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii
42. o reprezentare SVG a unei resurse YAGO (versiunea 2)
inclusiv specificarea de relații via RDFS și SKOS
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii
43. necesitatea dezambiguizării
(e.g., Paris poate fi
o localitate din USA)
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii
spotpx – interfață Web de interogare YAGO
în acest caz: lista oamenilor de știință născuți după 1933 în
jurul orașului Paris care au primit premiul Nobel în chimie
44. ODOL (Object-oriented software Design Ontology)
folosită la reprezentarea șabloanelor de proiectare
PersonaOnto (Ș. Negru & S. Buraga, 2012)
modelează personas
http://blankdots.com/open/personasonto.html
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – alte exemple
45. Componente distincte:
nume privind cele mai importante concepte
ale domeniului de cunoaștere modelat
cunoștințe anterioare – de “background” –
sau constrângeri ale domeniului
(eventual, specificate cu ajutorul axiomelor)
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – specificare
46. Crocodil reprezintă un concept având ca membri
animale ce prezintă anumite caracteristici
Ierbivor este un concept privitor la
animale care consumă doar plante ori părți de plante
Orice membru al clasei Crocodil este vorace
Un animal nu poate fi simultan Ierbivor și Carnivor
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – specificare: exemplu (1)
47. Warrior desemnează un concept privitor
la un anumit tip de personaj al unui joc electronic
Human referă un personaj uman având o anumită rasă
– disjunct de Elf, Goblin și Orc – și care poate utiliza
doar arme dintr-o anumită categorie
Orice membru al clasei Warrior poate folosi MagicPotion
Echipamentul purtat de personajele din clasa Orc
include instanțe ale clasei BarbarianEquipment
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – specificare: exemplu (2)
48. O ontologie va include:
categoriile, clasele, conceptele fundamentale
proprietățile asociate conceptelor
relațiile dintre concepte
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – specificare
49. Reprezentări uzuale ale ontologiilor:
limbaje logice: Prolog & familia (Golog, ConGolog)
KIF (Knowledge Interchange Format)
CL (Common Logic)
diagrame UML
DL (logici ale descrierii – description logics)
limbaje utilizate în contextul Web: RDFS, OWL
specificații vizuale
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – specificare
50. Specificarea categoriilor/conceptelor
categorie domeniu
în teoria bazelor de date
categorie tip/sort
în inteligența artificială
categorie clasă
în cazul ontologiilor Web
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – specificare
52. Clasele (categoriile)
de nivel cel mai înalt
ale ontologiei Cyc
Noy & Hafner, 1997
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – specificare
53. Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – specificare
Categorii de nivel înalt – cazul SUMO (Adam Pease, 2007)
Entity
Physical
Object
SelfConnectedObject
Substance
CorpuscularObject
Region
Collection
Process
Abstract
54. Specificarea proprietăților
proprietate atribut
proprietate slot/frame
în inteligența artificială
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – specificare
55. Specificarea proprietăților
proprietate = relație binară care poate preciza fapte
privitoare la membrii unei clase (indivizi)
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – specificare
56. Specificarea proprietăților
proprietate = relație binară care poate preciza fapte
privitoare la membrii unei clase (indivizi)
diferențiază un concept de altul
în unele cazuri, pot fi definite și sub-proprietăți
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – specificare
57. Specificarea proprietăților
o proprietate se poate referi la:
tipuri de date – datatype property
sau
obiecte – object property
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – specificare
58. Specificarea proprietăților – exemplu de frame
Claudia: Person
vârstă
ocupație
25 cardinality: 1
PhDStudent
ocupație
WebDeveloper
…
…
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – specificare
59. Specificarea proprietăților – exemplu de frame
Claudia: Person
datatype
property
vârstă
ocupație
25 cardinality: 1
PhDStudent
object
property
ocupație
WebDeveloper
…
…
o persoană are o singură vârstă,
dar poate avea
un număr arbitrar de ocupații
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – specificare
60. Modalități de reprezentare vizuală:
Resursă
subiect
Proprietate
dc:Creator
web.html
Resursă
obiect
modelul de date (abstract)
bazat pe RDF Schema/OWL
purl.org/net
/busaco
instanțe (aici, adoptând
vocabularul DCMI,
pe baza modelului RDF)
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – specificare
62. Specificarea relațiilor – cazul WordNet
relațiile pot fi de:
hiperonimie – “general-specific”
meronimie – “parte-întreg”
antonimie
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii – specificare
63. Ontologie
Limbaj (natural)
expandabilă
independentă de limbaj
procesabilă de către mașină
înțeles de oameni
ambiguu
Cunoștințe
se modifică rapid (“perisabile”)
pot exprima local un “lucru”
conform Adam Pease (2007)
Dr. Sabin Buragawww.purl.org/net/busaco
ontologii vs. limbaj vs. cunoștințe
65. Web Ontology Language
scop:
facilitarea interpretării de către software
a conținutului informațional
utilizează modelul RDF și RDF Schema
Dr. Sabin Buragawww.purl.org/net/busaco
OWL
66. OWL 1.0
recomandare W3C (2004) – 6 părți
www.w3.org/TR/owl-guide/
OWL 2.0
recomandare W3C (2009, 2012) – 13 părți
www.w3.org/TR/owl2-overview/
www.w3.org/TR/owl2-primer/
Dr. Sabin Buragawww.purl.org/net/busaco
OWL
67. OWL Lite
folosit pentru exprimarea ierarhiilor de clasificare și
a unor constrângeri de bază
facilitează realizarea de raționamente simple
Dr. Sabin Buragawww.purl.org/net/busaco
OWL 1: niveluri
68. OWL DL (Description Logics)
oferă maximum de expresivitate,
fără pierderea completitudinii și decidabilității
Dr. Sabin Buragawww.purl.org/net/busaco
OWL 1: niveluri
69. OWL DL (Description Logics)
oferă maximum de expresivitate,
fără pierderea completitudinii și decidabilității
completitudine = orice propoziție supusă regulilor de
deducție poate fi demonstrată
decidabilitate = mulțimea formulelor (teoremelor)
unui sistem logic poate fi efectiv determinată
Dr. Sabin Buragawww.purl.org/net/busaco
OWL 1: niveluri
70. OWL DL (Description Logics)
oferă maximum de expresivitate,
fără pierderea completitudinii și decidabilității
formalizare via logicile descrierii
(subset al logicii cu predicate de ordinul I)
Dr. Sabin Buragawww.purl.org/net/busaco
OWL 1: niveluri
71. OWL Full
oferă maximum de expresivitate și flexibilitate,
fără a se pune problema completitudinii
permite modificarea vocabularelor RDF și OWL
Dr. Sabin Buragawww.purl.org/net/busaco
OWL 1: niveluri
72. OWL Lite OWL DL OWL Full
Dr. Sabin Buragawww.purl.org/net/busaco
OWL 1: niveluri
73. Sintaxă:
documente RDF
se folosesc formate precum RDF/XML sau Turtle
ușor de procesat, stocat, interogat
(API-uri RDF, triple stores, SPARQL,…)
Dr. Sabin Buragawww.purl.org/net/busaco
OWL
77. Fiecare ontologie va fi identificată de un URI unic
FOAF: http://xmlns.com/foaf/0.1/
Gene Ontology: http://purl.org/obo/owl/GO
Music Ontology: http://purl.org/ontology/mo/
PersonasOnto: http://blankdots.com/open/personasonto.owl
Dr. Sabin Buragawww.purl.org/net/busaco
OWL
78. Fiecare ontologie va fi identificată de un URI unic
URI-ul ontologiei demonstrative utilizate la acest curs:
http://www.semanticweb.org/ontologies/2008/10/SWOnto.owl
Dr. Sabin Buragawww.purl.org/net/busaco
OWL
80. Nu se impune a-priori o cunoaștere completă
a domeniului de interes
ipoteza lumii deschise
(open world assumption)
Dr. Sabin Buragawww.purl.org/net/busaco
OWL
81. Nu se impune a-priori o cunoaștere completă
a domeniului de interes
ipoteza lumii deschise
(open world assumption)
unele definiții vor fi considerate “parțiale”
Dr. Sabin Buragawww.purl.org/net/busaco
OWL
82. O clasă se specifică prin owl:Class
desemnează colecții de indivizi – obiecte, things,... –
în vederea descrierii unei lumi (un web)
reprezintă un “obiect” (“thing”) al lumii
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea claselor
83. O clasă se specifică prin owl:Class
desemnează colecții de indivizi – obiecte, things,... –
în vederea descrierii unei lumi (un web)
reprezintă un “obiect” (“thing”) al lumii
cea mai generală clasă este owl:Thing
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea claselor
84. Relația de derivare a claselor
se exprimă via rdfs:subClassOf de la RDF Schema
<owl:Class rdf:ID="Audio">
<rdfs:subClassOf rdf:resource="#Multimedia" />
</owl:Class>
:Audio
a
rdfs:subClassOf
owl:Class ;
:Multimedia .
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea claselor
85. Expresii de clasă (class expressions):
reuniune – owl:unionOf
intersecție – owl:intersectionOf
complementară – owl:complementOf
disjuncție – owl:disjointWith
semantica operațiilor e conformă cu teoria mulțimilor
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea claselor
86. Expresii de clasă (class expressions):
reuniune – owl:unionOf
intersecție – owl:intersectionOf
complementară – owl:complementOf
disjuncție – owl:disjointWith
se utilizează pentru specificarea unor clase
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea claselor
87. 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 Buragawww.purl.org/net/busaco
OWL: specificarea claselor
88. Exemplu:
resursele video nu sunt lumi virtuale, nici executabile
Class: Video
SubClassOf:
DisjointWith:
DisjointWith:
Multimedia
LumiVirtuale
Executabile
sintaxa
Manchester
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea claselor
89. Implicit, OWL se aliniază ipotezei lumii deschise
cu implicații majore în ceea ce privește
operațiile dintre clase și
realizarea inferențelor referitoare la cardinalitate
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea claselor
90. Implicit, OWL se aliniază ipotezei lumii deschise
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea claselor
în unele cazuri, putem specifica exact membrii unei clase,
adoptând – local – ipoteza lumii închise (closed world)
91. Exemplu: determinarea albumului deținut de o persoană
:AlbumePortishead a owl:Class ;
owl:oneOf ( :Dummy :Portishead :Third ) .
fiecare instanță specificată via owl:oneOf
este membră a clasei respective
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea claselor
92. Exemplu: determinarea albumului deținut de o persoană
:AlbumePortishead a owl:Class ;
owl:oneOf ( :Dummy :Portishead :Third ) .
fiecare instanță specificată via owl:oneOf
este membră a clasei respective
știind că :me voc:detine :AlbumePortishead .
se poate deduce faptul că entitatea desemnată de :me
posedă măcar unul dintre ele
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea claselor
93. Astfel, o clasă 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 Buragawww.purl.org/net/busaco
OWL: specificarea claselor
95. Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea claselor
Specificarea echivalenței claselor se poate realiza
recurgând la owl:equivalentClass
<owl:Class rdf:ID="Designer">
<owl:equivalentClass rdf:resource="#Proiectant" />
</owl:Class>
:Designer a
owl:Class ;
owl:equivalentClass :Proiectant .
96. Având două clase echivalente,
înseamnă că vor avea doar aceeași membri
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea claselor
97. Având două clase echivalente,
înseamnă că vor avea doar aceeași membri
alte proprietăți asociate claselor sunt proprii fiecăreia
(de exemplu, rdfs:label ori rdfs:comment)
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea claselor
98. Proprietăți = relații binare ce specifică fapte
privitoare la membrii unei clase sau la indivizi
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea proprietăților
99. Proprietăți = relații binare ce specifică fapte
privitoare la membrii unei clase sau la indivizi
se referă la tipurile de date – datatype property
sau
vizează obiectele – object property
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea proprietăților
100. Proprietăți = relații binare ce specifică fapte
privitoare la membrii unei clase sau la indivizi
se referă la tipurile de date – datatype property
sau
vizează obiectele – object property
văzute drept colecții de relații între indivizi/date
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea proprietăților
101. Exemplu: definirea unei proprietăți privitoare la obiecte
care exprimă faptul că o resursă multimedia
poate fi stocată pe un sit Web multimedia
<owl:ObjectProperty rdf:ID="stocat">
<rdfs:domain rdf:resource="#Multimedia" />
<rdfs:range rdf:resource="#SitMultimedia" />
</owl:ObjectProperty>
:stocat a
rdfs:domain
rdfs:range
owl:ObjectProperty ;
:Multimedia ;
:SitMultimedia .
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea proprietăților
102. Exemplificare: definirea unei proprietăți datatype pentru
a desemna relația între resurse și literali
(e.g., valori de date aparținând unor 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 Buragawww.purl.org/net/busaco
OWL: specificarea proprietăților
103. Exemplificare: definirea unei proprietăți datatype pentru
a desemna relația între resurse și literali
(e.g., valori de date aparținând unor tipuri XML Schema)
DataProperty: dimensiune
Domain:
Multimedia
Range:
unsignedLong
sintaxa
Manchester
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea proprietăților
105. Proprietățile pot include
sub-proprietăți (specializări)
definite
via RDF Schema
…și pot avea specificate caracteristici “speciale”
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea proprietăților
106. O proprietate care nu are decât o singură valoare
pentru fiecare individ – valoarea ei este unică –
se numește proprietate funcțională
<owl:FunctionalProperty rdf:ID="areGen">
<rdfs:domain rdf:resource="#Persoana" />
<rdfs:range rdf:resource="#Gen"
/>
</owl:FunctionalProperty>
„O persoană are doar un singur gen.”
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea proprietăților
107. Dacă resursa A este în relația p cu B și
B este în relația p cu A,
atunci p este o proprietate simetrică
<owl:SymmetricProperty rdf:ID="rudaCu">
<rdfs:domain rdf:resource="#Persoana" />
<rdfs:range rdf:resource="#Persoana" />
</owl:SymmetricProperty>
„Relația de rudenie între persoane este simetrică.”
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea proprietăților
108. De remarcat faptul că unele dintre proprietățile
specificate de OWL – e.g., owl:equivalentClass –
sunt simetrice
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea proprietăților
109. Proprietăți inverse
dacă proprietatea p este inversa lui q
și A este în relația p cu B,
atunci se poate deduce că B este în relația q cu A
se folosește construcția owl:inverseOf
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea proprietăților
110. ReviewerOf este sub-proprietate a lui foaf:knows și
este inversa proprietății ReviewedBy
(Ciprian Amariei, 2007)
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea proprietăților
111. ObjectProperty: ReviewerOf
Annotations:
rdfs:comment "Relația de recenzent (inspector)…"@ro
Domain:
foaf:Person
Range:
foaf:Person
InverseOf:
ReviewedBy
SubPropertyOf:
sintaxa
foaf:knows
Manchester
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea proprietăților
112. Proprietăți tranzitive
dată fiind proprietatea p tranzitivă,
dacă există A p B . și B p C .
atunci se poate deduce
ApC.
se recurge la owl:TransitiveProperty
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea proprietăților
113. Definirea unei proprietăți tranzitive – exemplu:
:utilizează a
owl:TransitiveProperty ,
owl:ObjectProperty ;
owl:inverseOf :utilizatDe .
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea proprietăților
114. O proprietate mai poate fi definită ca fiind:
invers funcțională
anti-simetrică
reflexivă
anti-reflexivă
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea proprietăților
116. Folosind owl:equivalentProperty se poate defini
că două proprietăți sunt echivalente
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea proprietăților
117. Un individ (membru) al unei clase
se declară ca aparținând clasei respective
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea indivizilor
118. Un individ (membru) al unei clase
se declară ca aparținând clasei respective
reprezintă un obiect al lumii – aparține clasei owl:Thing
este “înrudit” cu alte obiecte sau valori de date
via proprietăți
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea indivizilor
119. <!-- definim individul -->
<owl:Thing rdf:ID="the_wall">
<rdfs:comment xml:lang="ro">
Un film de Pink Floyd</rdfs:comment>
</owl:Thing>
<!-- ulterior, specificăm tipul lui (plus proprietăți/meta-date) -->
<owl:Thing rdf:about="#the_wall">
<rdf:type rdf:resource="#Video" />
</owl:Thing>
:the_wall a
:Video ;
rdfs:comment "Un film…"@ro .
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea indivizilor
120. Echivalența între indivizi se realizează
prin owl:sameAs
se poate folosi și owl:differentFrom
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea indivizilor
122. Exemplu: specificarea a doi indivizi distincți
<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 Buragawww.purl.org/net/busaco
OWL: specificarea indivizilor
123. Pentru a defini colecții de indivizi distincți,
se utilizează owl:distinctMembers
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea indivizilor
124. Exemplu:
specificarea în termeni fuzzy a localizării 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 Buragawww.purl.org/net/busaco
OWL: specificarea indivizilor
125. Specificarea în OWL a vocabularului FOAF
http://xmlns.com/foaf/spec/
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: studiu de caz – FOAF
126. Se definesc clasele foaf:Person, foaf:Group,
foaf:Organization ca fiind sub-clase ale foaf:Agent
foaf:Agent
rdf:type
foaf:Person
rdfs:subClassOf
foaf:Group
rdfs:subClassOf
foaf:Organizationrdfs:subClassOf
owl:Class .
foaf:Agent .
foaf:Agent .
foaf:Agent .
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: studiu de caz – FOAF
128. Lista claselor FOAF
(Dan Brickley & Libby Miller, 2010)
Agent Document Group Image OnlineAccount
OnlineChatAccount OnlineEcommerceAccount
OnlineGamingAccount Organization Person
PersonalProfileDocument Project
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: studiu de caz – FOAF
129. Pentru o persoană, sunt definite diverse proprietăți:
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 Buragawww.purl.org/net/busaco
OWL: studiu de caz – FOAF
130. Fiecare agent (persoană, organizație,…) poate crea
resurse (“things”) – se definește proprietatea foaf:made
foaf:made rdfs:domain
foaf:Agent .
foaf:made rdfs:range
owl:Thing .
foaf:made owl:inverseOf foaf:maker .
similar:
foaf:publications
foaf:publications
rdfs:domain
rdfs:range
foaf:Person .
foaf:Document .
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: studiu de caz – FOAF
131. Exprimarea constrângerilor:
de exemplu, o persoană este identificată unic
prin adresa ei de e-maildouă persoane care au aceeași
adresă de e-mail reprezintă în fapt o singură persoană
foaf:mbox rdf:type owl:InverseFunctionalProperty .
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: studiu de caz – FOAF
idem, pentru foaf:homepage, foaf:jabberID, foaf:weblog,…
132. Lista proprietăților vizând informații personale
(Dan Brickley & Libby Miller, 2010)
weblog knows interest currentProject pastProject plan
based_near workplaceHomepage workInfoHomepage
schoolHomepage topic_interest publications geekcode
myersBriggs dnaChecksum
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: studiu de caz – FOAF
133. Model conceptual simplu privind termenii de conținut
(tag-urile), cu scopul de a fi utilizat în cadrul RDFa
www.commontag.org
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: studiu de caz – Common Tag
134. O resursă de interes adresabilă via un URI
are asociat (tagged) un număr de instanțe de tip Tag
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: studiu de caz – Common Tag
135. Fiecare tag poate conține o referință (“pointer”)
spre o altă resursă
ce identifică neambiguu acel concept descris de conținut
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: studiu de caz – Common Tag
136. Clasa Tag cu sub-clasele AuthorTag, ReaderTag, AutoTag
proprietăți: means tagged taggingDate label
ctag:means a
rdf:domain
rdf:range
owl:ObjectProperty ;
ctag:Tag ;
rdf:Resource .
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: studiu de caz – Common Tag
137. <!-- specificarea (cu RDFa) a tag-ului Portishead
(grupul muzical, nu localitatea) asociat unei imagini -->
<div xmlns:ctag="http://commontag.org/ns#"
rel="ctag:tagged" about="#resursa">
<span typeof="ctag:Tag" rel="ctag:means"
resource="http://seevl.fm/entity/3v2HbhVZ"
property="ctag:label" content="Portishead"/>
</div>
<img id="resursa" src="…" alt="Formația Portishead" />
înțelesul termenului „Portishead”
este cel dat de situl seevl.fm
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: studiu de caz – Common Tag
138. Cum sunt modelate resursele Wikipedia,
disponibile în RDF prin intermediul DBpedia?
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: studiu de caz – DBpedia
139. 4 scheme de clasificare:
categorii de articole Wikipedia exprimate
prin SKOS (Simple Knowledge Organizational System),
sub controlul exercitat de editorii Wikipedia
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: studiu de caz – DBpedia
140. 4 scheme de clasificare:
YAGO – Yet Another Great Ontology (versiunea 2)
pe baza asocierii dintre categoriile-frunză Wikipedia și
mulțimile de sinonime (synsets) WordNet
J. Hoffart et al., “YAGO2: A Spatially and Temporally
Enhanced Knowledge Base from Wikipedia”,
AI Journal (2012) – http://tinyurl.com/azkqee7
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: studiu de caz – DBpedia
141. 4 scheme de clasificare:
UMBEL (Upper Mapping and Binding Exchange Layer)
ontologie creată cu scopul interconectării datelor
disponibile pe Web, derivată din OpenCyc
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: studiu de caz – DBpedia
143. 4 scheme de clasificare:
DBpedia Ontology – http://dbpedia.org/ontology/
529 clase + 2333 proprietăți
3220000 de instanțe
model creat manual pe baza template-urilor Wikipedia
detalii la http://wiki.dbpedia.org/Ontology
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: studiu de caz – DBpedia
147. Interconectarea datelor via owl:sameAs
SELECT ?resursa
WHERE {
<http://dbpedia.org/resource/Romania> owl:sameAs ?resursa
}
obținerea resurselor privitoare la Romania
pe baza unei interogări SPARQL
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: studiu de caz – DBpedia
148. Interconectarea datelor via owl:sameAs
<http://dbpedia.org/resource/Romania> owl:sameAs
Freebase
<http://rdf.freebase.com/ns/m.06c1y> ;
<http://linkedgeodata.org/triplify/node432425064> ;
Eurostat
<http://eurostat.linked-statistics.org/dic/c_ctrl#RO> ;
<http://sw.cyc.com/concept/Mx4rvViC8ZwpEbGdrcN5Y29ycA> .
OpenCyc
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: studiu de caz – DBpedia
astfel, pot fi realizate reconcilieri între modele conceptuale
150. Restricțiile sunt considerate clase
definite prin descrierea proprietăților indivizilor
pe care-i pot include
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea restricțiilor
151. Restricțiile sunt considerate clase
definite prin descrierea proprietăților indivizilor
pe care-i pot include
specificând o mulțime de indivizi în termeni de clase
cunoscute (proprietăți comune), putem folosi această
descriere pentru a defini o nouă clasă – mai restrictivă
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea restricțiilor
152. Restricțiile impuse proprietăților
trebuie să apară în cadrul elementelor
owl:Restriction și owl:onProperty
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea restricțiilor
153. Tipuri de restricții:
asupra valorilor
allValuesFrom, someValuesFrom, hasValue
privitoare la cardinalitate
cardinality, minCardinality, maxCardinality
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea restricțiilor
154. Prin owl:someValuesFrom specificăm restricția:
“indivizii pentru care măcar o valoare
a proprietății p provine din clasa C”
[a
owl:onProperty
owl:someValuesFrom
owl:Restriction ;
p;
C]
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea restricțiilor
155. Exemplu: clasa mamelor reprezintă intersecția
clasei femeilor cu cea a persoanelor care au copii
restricția 1: clasa persoanelor care sunt femei
<owl:Restriction>
<owl:onProperty>
<owl:FunctionalProperty
rdf:about="#areGen"/>
[ a owl:Restriction ;
</owl:onProperty>
owl:onProperty :areGen ;
<owl:hasValue
owl:hasValue :Feminin ]
rdf:resource="#Feminin"/>
</owl:Restriction>
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea restricțiilor
156. Exemplu: clasa mamelor reprezintă intersecția
clasei femeilor cu cea a persoanelor care au copii
restricția 2: clasa persoanelor care au copii
<owl:Restriction>
<owl:onProperty>
<owl:ObjectProperty
rdf:about="#areCopil"/>
[a
owl:Restriction ;
</owl:onProperty>
owl:onProperty :areCopil ;
<owl:someValuesFrom
rdf:resource="#Persoana"/> owl:someValuesFrom :Persoana ]
</owl:Restriction>
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea restricțiilor
157. Prin owl:allValuesFrom specificăm restricția:
“toți indivizii pentru care toate valorile
proprietății p provin din clasa C”
[a
owl:Restriction ;
owl:onProperty
p;
owl:allValuesFrom C ]
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea restricțiilor
159. Exemplu: clasa persoanelor vegetariene
știind că Alex este vegetarian și consumă spanac
:alex a :Vegetarian .
:alex :consuma :spanac .
…se poate deduce faptul că spanacul
aparține clasei vegetalelor:
:spanac a :Vegetala .
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea restricțiilor
160. În cazul someValuesFrom, trebuie să existe
măcar un membru al clasei
pentru care are loc o proprietate dată
aceasta implică faptul că
trebuie să existe un astfel de membru
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea restricțiilor
161. Restricția allValuesFrom înseamnă “dacă există membri,
atunci ei toți trebuie să aibă acea proprietate”
aceasta nu implică faptul că
trebuie să existe de fapt membrii corespunzători
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea restricțiilor
162. Via restricții privind cardinalitatea, poate fi stabilit
numărul – minim/maxim – de valori distincte
pe care o proprietate le poate avea
[a
owl:onProperty
owl:cardinality
owl:Restriction ;
p;
n].
Dr. Sabin Buragawww.purl.org/net/busaco
OWL: specificarea restricțiilor
163. <owl:Class rdf:ID="Audio">
<rdfs:subClassOf rdf:resource="#Multimedia" />
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#stocat">
<!-- indicăm cardinalitatea minimă -->
<owl:minCardinality rdf:datatype="xsd:nonNegativeInteger">
1
</owl:minCardinality>
</owl:onProperty>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
fiecare instanță din clasa Audio trebuie să apară
măcar în cel puțin o relație “stocat”
Dr. Sabin Buragawww.purl.org/net/busaco
Exemplu: o resursă audio poate fi stocată
măcar de un sit Web multimedia
164. Aspect important:
verificarea consistenței și coerenței ontologiei
inclusiv verificarea consistenței aserțiunilor
privind indivizii
care populează domeniul modelat de ontologie
Dr. Sabin Buragawww.purl.org/net/busaco
OWL
166. Aspect important:
declarațiile privitoare la indivizi
nu trebuie obligatoriu să fie stocate
în cadrul aceluiași document
uzual, modelul ontologic este separat
de aserțiunile privind indivizii
separation
of concerns
Dr. Sabin Buragawww.purl.org/net/busaco
OWL
167. Antet:
Ontology
Clase (concepte):
Class, rdfs:subClassOf, intersectionOf
Proprietăți:
rdfs:Property, rdfs:subPropertyOf, rdfs:domain, rdfs:range
(In)egalități:
equivalentClass, equivalentProperty,
sameAs, differentFrom, allDifferent
Dr. Sabin Buragawww.purl.org/net/busaco
OWL 1: privire de ansamblu
168. Caracteristici ale proprietăților:
inverseOf, TransitiveProperty, SymmetricProperty,
FunctionalProperty, InverseFunctionalProperty
Restricții de tip asupra proprietăților:
allValuesFrom, someValuesFrom
Restricții de cardinalitate:
minCardinality, maxCardinality, cardinality
Dr. Sabin Buragawww.purl.org/net/busaco
OWL 1: privire de ansamblu