+ All Categories
Home > Technology > Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Date post: 13-May-2015
Category:
Upload: sabin-buraga
View: 504 times
Download: 1 times
Share this document with a friend
Description:
Dezvoltarea aplicațiilor Web (9/12) — detalii la http://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
170
Dr. Sabin Buragawww.purl.org/net/busaco Dezvoltarea aplica ț iilor Web modelarea cuno ș tin ț elor la nivel de Web ontologii exprimate prin OWL
Transcript
Page 1: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

Dezvoltarea aplicațiilor Web

modelarea cunoștințelor la nivel de Webontologii exprimate prin OWL

Page 2: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

“Cine deschide toate porțile,le poate închide pe toate.”

Antonio Porchia

Page 3: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

necesitate

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

Page 4: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

necesitate

Existența unui set comun de constrângeri

Page 5: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

necesitate

Existența unui cadru conceptual comunoferind relații între clase

de date/informații/cunoștințe

Page 6: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

necesitate

Existența unui cadru conceptual comunoferind relații între clase

de date/informații/cunoștințe

înțelegerea – automată (de dorit) – a informațiilornu va fi influențată de anumite cunoștințe inițiale

(unspecified background knowledge)

Page 7: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco:andrei a foaf:Person .

:andrei foaf:givenname "Andrei"@ro .

:andrei :teach :WebLab .

:WebLab :isPartOf :Web .

:Web a :Discipline .

:andrei a :PhDStudent .

:andrei :enrolledAt :PhDSchool .

:PhDSchool rdfs:subClassOf :PostgradStudies .

:PostgradStudies rdfs:subClassOf :FIIStudies .

:FIIStudies :providedBy :FII .

:FII a :Faculty , foaf:Agent .

:FII foaf:homepage <http://www.infoiasi.ro> .

:Academic a skos:Concept .

“Andrei predă laboratorul materiei Tehnologii Web.Andrei e student doctorand în Computer Science.”

Page 8: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco:andrei a foaf:Person .

:andrei foaf:givenname "Andrei"@ro .

:andrei :teach :WebLab .

:WebLab :isPartOf :Web .

:Web a :Discipline .

:andrei a :PhDStudent .

:andrei :enrolledAt :PhDSchool .

:PhDSchool rdfs:subClassOf :PostgradStudies .

:PostgradStudies rdfs:subClassOf :FIIStudies .

:FIIStudies :providedBy :FII .

:FII a :Faculty , foaf:Agent .

:FII foaf:homepage <http://www.infoiasi.ro> .

:Academic a skos:Concept .

“Andrei predă laboratorul materiei Tehnologii Web.Andrei e student doctorand în Computer Science.”

adnotaresemantică(explicită)

Page 9: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

necesitate

Un limbaj de modelare complexă a cunoștințelor gestionate de o aplicație Web

Page 10: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

soluție

Modelarea cunoștințelor via ontologii

Page 11: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii

Ontologia = teorie privitoare la existență

„ramură a filosofiei care studiazătrăsăturile ființei, existența”

(Hoklenium, 1613)

ontos (ființă, existență) + logos (studiu)

Page 12: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii

O ontologie reprezintă conceptualizareaunui domeniu de cunoaștere

într-un format destinat a fi procesat de calculator, format modelând

entități, atribute, relații și axiome

Page 13: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii

Scop:

conceptualizări complexeale unui domeniu de interes

Page 14: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii

Subiectul ontologiei este studiul categoriilorde lucruri (things) care există sau pot exista

în cadrul unui domeniu de interes

John Sowa, 2001

Page 15: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii

O ontologie reprezintă un set de definiții formulateîntr-un limbaj formal pentru termenii ce descriu

un domeniu de interes

Adam Pease, 2007

Page 16: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii

“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

Page 17: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.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

Page 18: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii

Ontologie catalog de tipuri de lucruricare 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

Page 19: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii

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

Page 20: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

Adam Pease, 2007 citând C.K. Ogden/I.A. Richards (1923)

Page 21: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

rolul ontologiilor (Jerry Hobbs, Eurolan 2003)

Teorie abstractă

Vocabular comun

Aplicația A

Aplicația B

Limbaj(e) de modelare/marcare

Page 22: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

rolul ontologiilor (Jerry Hobbs, Eurolan 2003)

stabilește înțelesulconceptelor (termenilor)

vocabularului comun

Teorie abstractă

Vocabular comun

Aplicația A

Aplicația B

Limbaj(e) de modelare/marcare

Page 23: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii

Folosind ontologii, asociem semantici“lucrurilor” despre care “vorbim”

exemplu: un framework Web este o componentă softwarecare facilitează dezvoltarea unui sit Web

categorie(clasă)

relație

Page 24: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii

Folosind ontologii, asociem semantici“lucrurilor” despre care “vorbim”

descrierile semantice “ajută” calculatoarelesă pară “smart”

Page 25: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii

Folosind ontologii, asociem semantici“lucrurilor” despre care “vorbim”

un program “smart” ar trebui să fie capabil să realizezeaceleași inferențe pe care le fac (unii) oameni

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,…

Page 26: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – exemplificare

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

Page 27: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – tipuri

Ontologii informale versus formale

(de la limbaj natural la logică)

Page 28: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – tipuri

Ontologii formale:

axiomaticesau

bazate pe prototipuri

Page 29: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – tipuri

Ontologii formale:

axiomaticedisting sub-tipurile prin axiome și definiții

specificate într-un limbaj formal (logic)

bazate pe prototipuridisting sub-tipurile prin comparația cu un membru tipic

ori specificând un prototip pentru fiecare sub-tip în parte

Page 30: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – tipuri

Conform nivelului de descriere oferit:

vocabular

de exemplu, specificare via o schemă XML

Page 31: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – tipuri

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

Page 32: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – tipuri

Conform nivelului de descriere oferit:

lexicon = taxonomie + termeni înrudiți(via relații de echivalență, ierarhii, asocieri etc.)

modelare prin SKOS

vezi cursul precedent

Page 33: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – tipuri

Conform nivelului de descriere oferit:

sistem relațional

schemă de baze de date

Page 34: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – tipuri

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

Page 35: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – tipuri

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-Setc.

Page 36: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

modelul conceptual al sistemului GitHub

Page 37: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – tipuri

După scopul & contextul utilizării:

ontologii generale

CycOpenCyc

SUMO (Suggested Upper Merged Ontology)UMBEL (Upper Mapping and Binding Exchange Layer)

Page 38: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – tipuri

După scopul & contextul utilizării:

ontologii intermediare – mid-level

exemplificare: MILO (MId-Level Ontology)

Page 39: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – tipuri (Guarino, 1998)

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

Page 40: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii

Aspecte de interes – inginerie(Gasevic, Djuric & Devedzic, 2009)

modelarecolaborare

interoperabilitateeducație

detalii în viitoarele cursuri

Page 41: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii

YAGO (Yet Another Great Ontology)modelează entități (abstracte); utilizare în cadrul DBpedia

http://yago-knowledge.org/

Page 42: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii

o reprezentare SVG a unei resurse YAGO (versiunea 2)inclusiv specificarea de relații via RDFS și SKOS

Page 43: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.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

necesitatea dezambiguizării(e.g., Paris poate fi

o localitate din USA)

Page 44: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – alte exemple

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

Page 45: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – specificare

Componente distincte:

nume privind cele mai importante concepteale domeniului de cunoaștere modelat

cunoștințe anterioare – de “background” –sau constrângeri ale domeniului

(eventual, specificate cu ajutorul axiomelor)

Page 46: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – specificare: exemplu (1)

Crocodil reprezintă un concept având ca membrianimale ce prezintă anumite caracteristici

Ierbivor este un concept privitor laanimale 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

Page 47: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – specificare: exemplu (2)

Warrior desemnează un concept privitorla 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

Page 48: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – specificare

O ontologie va include:

categoriile, clasele, conceptele fundamentale

proprietățile asociate conceptelor

relațiile dintre concepte

Page 49: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – specificare

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

Page 50: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – specificare

Specificarea categoriilor/conceptelor

categorie domeniuîn teoria bazelor de date

categorie tip/sortîn inteligența artificială

categorie clasăîn cazul ontologiilor Web

Page 51: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – specificare

Specificarea categoriilor/conceptelor

criteriile de stabilire a conceptelor sunt complexe

experiența are un rol foarte important

Page 52: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – specificare

Clasele (categoriile)de nivel cel mai înalt

ale ontologiei Cyc

Noy & Hafner, 1997

Page 53: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.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

Page 54: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – specificare

Specificarea proprietăților

proprietate atribut

proprietate slot/frameîn inteligența artificială

Page 55: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – specificare

Specificarea proprietăților

proprietate = relație binară care poate preciza fapteprivitoare la membrii unei clase (indivizi)

Page 56: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – specificare

Specificarea proprietăților

proprietate = relație binară care poate preciza fapteprivitoare la membrii unei clase (indivizi)

diferențiază un concept de altul

în unele cazuri, pot fi definite și sub-proprietăți

Page 57: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – specificare

Specificarea proprietăților

o proprietate se poate referi la:

tipuri de date – datatype property

sau

obiecte – object property

Page 58: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – specificare

Specificarea proprietăților – exemplu de frame

Claudia: Person

vârstă

ocupație

25

PhDStudent

cardinality: 1

ocupație WebDeveloper

… …

Page 59: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – specificare

Specificarea proprietăților – exemplu de frame

Claudia: Person

vârstă

ocupație

25

PhDStudent

cardinality: 1

ocupație WebDeveloper

… …

datatypeproperty

objectproperty

o persoană are o singură vârstă, dar poate avea

un număr arbitrar de ocupații

Page 60: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – specificare

Modalități de reprezentare vizuală:

modelul de date (abstract)bazat pe RDF Schema/OWL

instanțe (aici, adoptândvocabularul DCMI,

pe baza modelului RDF)

Resursăsubiect

Resursăobiect

Proprietate

web.htmlpurl.org/net

/busaco

dc:Creator

Page 61: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – specificare

Specificarea relațiilor

pentru organizarea/ilustrarea categoriilorse folosesc arborii și grafurile

Page 62: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii – specificare

Specificarea relațiilor – cazul WordNet

relațiile pot fi de:hiperonimie – “general-specific”

meronimie – “parte-întreg”antonimie

Page 63: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

ontologii vs. limbaj vs. cunoștințe

Ontologie

expandabilăindependentă de limbajprocesabilă de către mașină

Limbaj (natural)

înțeles de oameniambiguu

Cunoștințe

se modifică rapid (“perisabile”)pot exprima local un “lucru”

conform Adam Pease (2007)

Page 64: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

Cum exprimăm ontologiile la nivel de Web?

Page 65: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL

Web Ontology Language

scop:facilitarea interpretării de către software

a conținutului informațional

utilizează modelul RDF și RDF Schema

Page 66: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL

OWL 1.0recomandare W3C (2004) – 6 părți

www.w3.org/TR/owl-guide/

OWL 2.0recomandare W3C (2009, 2012) – 13 părți

www.w3.org/TR/owl2-overview/

www.w3.org/TR/owl2-primer/

Page 67: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL 1: niveluri

OWL Lite

folosit pentru exprimarea ierarhiilor de clasificare șia unor constrângeri de bază

facilitează realizarea de raționamente simple

Page 68: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL 1: niveluri

OWL DL (Description Logics)

oferă maximum de expresivitate,fără pierderea completitudinii și decidabilității

Page 69: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL 1: niveluri

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ă

Page 70: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL 1: niveluri

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)

Page 71: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL 1: niveluri

OWL Full

oferă maximum de expresivitate și flexibilitate,fără a se pune problema completitudinii

permite modificarea vocabularelor RDF și OWL

Page 72: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL 1: niveluri

OWL Lite OWL DL OWL Full

Page 73: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL

Sintaxă:

documente RDF

se folosesc formate precum RDF/XML sau Turtle

ușor de procesat, stocat, interogat(API-uri RDF, triple stores, SPARQL,…)

Page 74: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL

Sintaxă:

“abstractă”

corespunde modelului logicilor descrierii

e.g., sintaxa funcțională, sintaxa Manchester

Page 75: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL

O ontologie OWL este compusă în principal din:

clase

proprietăți

relații

Page 76: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

eventual, pot fi precizate:instanțe de clase

axiomeadnotări & importuri

Page 77: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL

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

Page 78: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL

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

Page 79: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

Multimedia

Audio Video

Proprietar

anca eugenancuta

the_eye

zidul

detine

rdfs:subClassOf rdfs:subClassOf

rdf:type rdf:type

owl:sameAs rudaCu

detine

detinutDe

detinutDe

rdf:type

detinutDe

nivelul datelor (indivizi)

nivelul conceptual (cunoștințe)

Page 80: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL

Nu se impune a-priori o cunoaștere completăa domeniului de interes

ipoteza lumii deschise(open world assumption)

Page 81: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL

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”

Page 82: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea claselor

O clasă se specifică prin owl:Classdesemnează colecții de indivizi – obiecte, things,... –

în vederea descrierii unei lumi (un web)

reprezintă un “obiect” (“thing”) al lumii

Page 83: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea claselor

O clasă se specifică prin owl:Classdesemnează 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

Page 84: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea claselor

Relația de derivare a claselorse exprimă via rdfs:subClassOf de la RDF Schema

<owl:Class rdf:ID="Audio">

<rdfs:subClassOf rdf:resource="#Multimedia" />

</owl:Class>

:Audio a owl:Class ;

rdfs:subClassOf :Multimedia .

Page 85: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea claselor

Expresii de clasă (class expressions): reuniune – owl:unionOf

intersecție – owl:intersectionOfcomplementară – owl:complementOf

disjuncție – owl:disjointWith

semantica operațiilor e conformă cu teoria mulțimilor

Page 86: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea claselor

Expresii de clasă (class expressions): reuniune – owl:unionOf

intersecție – owl:intersectionOfcomplementară – owl:complementOf

disjuncție – owl:disjointWith

se utilizează pentru specificarea unor clase

Page 87: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

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>

Page 88: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea claselor

Exemplu:resursele video nu sunt lumi virtuale, nici executabile

Class: Video

SubClassOf: Multimedia

DisjointWith: LumiVirtuale

DisjointWith: Executabile

sintaxaManchester

Page 89: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea claselor

Implicit, OWL se aliniază ipotezei lumii deschise

cu implicații majore în ceea ce priveșteoperațiile dintre clase și

realizarea inferențelor referitoare la cardinalitate

Page 90: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea claselor

Implicit, OWL se aliniază ipotezei lumii deschise

în unele cazuri, putem specifica exact membrii unei clase,adoptând – local – ipoteza lumii închise (closed world)

Page 91: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea claselor

Exemplu: determinarea albumului deținut de o persoană

:AlbumePortishead a owl:Class ;

owl:oneOf ( :Dummy :Portishead :Third ) .

fiecare instanță specificată via owl:oneOfeste membră a clasei respective

Page 92: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea claselor

Exemplu: determinarea albumului deținut de o persoană

:AlbumePortishead a owl:Class ;

owl:oneOf ( :Dummy :Portishead :Third ) .

fiecare instanță specificată via owl:oneOfeste 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

Page 93: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea claselor

Astfel, o clasă se poate definidoar 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>

Page 94: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea claselor

inspectarea claselor cu instrumentul Protégéhttp://protege.stanford.edu/

Page 95: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea claselor

Specificarea echivalenței claselor se poate realizarecurgând la owl:equivalentClass

<owl:Class rdf:ID="Designer">

<owl:equivalentClass rdf:resource="#Proiectant" />

</owl:Class>

:Designer a owl:Class ;

owl:equivalentClass :Proiectant .

Page 96: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea claselor

Având două clase echivalente, înseamnă că vor avea doar aceeași membri

Page 97: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea claselor

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)

Page 98: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea proprietăților

Proprietăți = relații binare ce specifică fapteprivitoare la membrii unei clase sau la indivizi

Page 99: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea proprietăților

Proprietăți = relații binare ce specifică fapteprivitoare la membrii unei clase sau la indivizi

se referă la tipurile de date – datatype propertysau

vizează obiectele – object property

Page 100: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea proprietăților

Proprietăți = relații binare ce specifică fapteprivitoare la membrii unei clase sau la indivizi

se referă la tipurile de date – datatype propertysau

vizează obiectele – object property

văzute drept colecții de relații între indivizi/date

Page 101: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea proprietăților

Exemplu: definirea unei proprietăți privitoare la obiectecare 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 owl:ObjectProperty ;

rdfs:domain :Multimedia ;

rdfs:range :SitMultimedia .

Page 102: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea proprietăților

Exemplificare: definirea unei proprietăți datatype pentrua 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>

Page 103: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea proprietăților

Exemplificare: definirea unei proprietăți datatype pentrua desemna relația între resurse și literali

(e.g., valori de date aparținând unor tipuri XML Schema)

DataProperty: dimensiune

Domain:

Multimedia

Range:

unsignedLongsintaxa

Manchester

Page 104: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea proprietăților

Proprietățile pot includesub-proprietăți (specializări)

definitevia RDF Schema

Page 105: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea proprietăților

Proprietățile pot includesub-proprietăți (specializări)

…și pot avea specificate caracteristici “speciale”

definitevia RDF Schema

Page 106: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea proprietăților

O proprietate care nu are decât o singură valoarepentru 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.”

Page 107: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea proprietăților

Dacă resursa A este în relația p cu B șiB 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ă.”

Page 108: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea proprietăților

De remarcat faptul că unele dintre proprietățilespecificate de OWL – e.g., owl:equivalentClass –

sunt simetrice

Page 109: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea proprietăților

Proprietăți inversedacă 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

Page 110: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea proprietăților

ReviewerOf este sub-proprietate a lui foaf:knows șieste inversa proprietății ReviewedBy

(Ciprian Amariei, 2007)

Page 111: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea proprietăților

ObjectProperty: ReviewerOf

Annotations:

rdfs:comment "Relația de recenzent (inspector)…"@ro

Domain:

foaf:Person

Range:

foaf:Person

InverseOf:

ReviewedBy

SubPropertyOf:

foaf:knowssintaxa

Manchester

Page 112: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea proprietăților

Proprietăți tranzitivedată fiind proprietatea p tranzitivă,

dacă există A p B . și B p C .

atunci se poate deduceA p C .

se recurge la owl:TransitiveProperty

Page 113: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea proprietăților

Definirea unei proprietăți tranzitive – exemplu:

:utilizează a owl:TransitiveProperty ,

owl:ObjectProperty ;

owl:inverseOf :utilizatDe .

Page 114: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea proprietăților

O proprietate mai poate fi definită ca fiind:invers funcțională

anti-simetricăreflexivă

anti-reflexivă

Page 115: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea proprietatilor

relația rudaCu este simetrică și reflexivă

Page 116: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea proprietăților

Folosind owl:equivalentProperty se poate defini că două proprietăți sunt echivalente

Page 117: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea indivizilor

Un individ (membru) al unei clasese declară ca aparținând clasei respective

Page 118: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea indivizilor

Un individ (membru) al unei clasese 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 datevia proprietăți

Page 119: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea indivizilor

<!-- 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 .

Page 120: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea indivizilor

Echivalența între indivizi se realizeazăprin owl:sameAs

se poate folosi și owl:differentFrom

Page 121: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

:ancuta rudaCu :eugen .

:ancuta owl:sameAs :anca .

Page 122: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea indivizilor

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>

Page 123: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea indivizilor

Pentru a defini colecții de indivizi distincți, se utilizează owl:distinctMembers

Page 124: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea indivizilor

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>

Page 125: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: studiu de caz – FOAF

Specificarea în OWL a vocabularului FOAFhttp://xmlns.com/foaf/spec/

Page 126: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

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:Organizationrdfs:subClassOf foaf:Agent .

Page 127: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: studiu de caz – FOAF

Page 128: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: studiu de caz – FOAF

Lista claselor FOAF(Dan Brickley & Libby Miller, 2010)

Agent Document Group Image OnlineAccount

OnlineChatAccount OnlineEcommerceAccount

OnlineGamingAccount Organization Person

PersonalProfileDocument Project

Page 129: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: studiu de caz – FOAF

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 .

Page 130: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: studiu de caz – FOAF

Fiecare agent (persoană, organizație,…) poate crearesurse (“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 rdfs:domain foaf:Person .

foaf:publications rdfs:range foaf:Document .

Page 131: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: studiu de caz – FOAF

Exprimarea constrângerilor:de exemplu, o persoană este identificată unic

prin adresa ei de e-maildouă persoane care au aceeașiadresă de e-mail reprezintă în fapt o singură persoană

foaf:mbox rdf:type owl:InverseFunctionalProperty .

idem, pentru foaf:homepage, foaf:jabberID, foaf:weblog,…

Page 132: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: studiu de caz – FOAF

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

Page 133: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: studiu de caz – Common Tag

Model conceptual simplu privind termenii de conținut(tag-urile), cu scopul de a fi utilizat în cadrul RDFa

www.commontag.org

Page 134: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: studiu de caz – Common Tag

O resursă de interes adresabilă via un URIare asociat (tagged) un număr de instanțe de tip Tag

Page 135: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: studiu de caz – Common Tag

Fiecare tag poate conține o referință (“pointer”)spre o altă resursă

ce identifică neambiguu acel concept descris de conținut

Page 136: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: studiu de caz – Common Tag

Clasa Tag cu sub-clasele AuthorTag, ReaderTag, AutoTag

proprietăți: means tagged taggingDate label

ctag:means a owl:ObjectProperty ;

rdf:domain ctag:Tag ;

rdf:range rdf:Resource .

Page 137: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: studiu de caz – Common Tag

<!-- 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

Page 138: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: studiu de caz – DBpedia

Cum sunt modelate resursele Wikipedia,disponibile în RDF prin intermediul DBpedia?

Page 139: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: studiu de caz – DBpedia

4 scheme de clasificare:

categorii de articole Wikipedia exprimateprin SKOS (Simple Knowledge Organizational System),

sub controlul exercitat de editorii Wikipedia

Page 140: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: studiu de caz – DBpedia

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

Page 141: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: studiu de caz – DBpedia

4 scheme de clasificare:

UMBEL (Upper Mapping and Binding Exchange Layer)

ontologie creată cu scopul interconectării datelordisponibile pe Web, derivată din OpenCyc

Page 142: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

UMBEL – model conceptual facilitând interoperabilitateahttp://umbel.org/

Page 143: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: studiu de caz – DBpedia

4 scheme de clasificare:

DBpedia Ontology – http://dbpedia.org/ontology/

529 clase + 2333 proprietăți3220000 de instanțe

model creat manual pe baza template-urilor Wikipedia

detalii la http://wiki.dbpedia.org/Ontology

Page 144: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: studiu de caz – FOAF

C. Bizer et al., “DBpedia – A Crystallization Point for the Web of Data” (2009)

Page 145: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: studiu de caz – DBpedialista claselor specificate

de ontologia DBpedia(fragment)

Page 146: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: studiu de caz – DBpedia

lista proprietăților DBPedia (fragment)

detalii la http://wiki.dbpedia.org/Datasets/Properties

Page 147: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: studiu de caz – DBpedia

Interconectarea datelor via owl:sameAs

SELECT ?resursa

WHERE {

<http://dbpedia.org/resource/Romania> owl:sameAs ?resursa

}

obținerea resurselor privitoare la Romaniape baza unei interogări SPARQL

Page 148: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: studiu de caz – DBpedia

Interconectarea datelor via owl:sameAs

<http://dbpedia.org/resource/Romania> owl:sameAs

<http://rdf.freebase.com/ns/m.06c1y> ;

<http://linkedgeodata.org/triplify/node432425064> ;

<http://eurostat.linked-statistics.org/dic/c_ctrl#RO> ;

<http://sw.cyc.com/concept/Mx4rvViC8ZwpEbGdrcN5Y29ycA> .

Freebase

Eurostat

OpenCyc

astfel, pot fi realizate reconcilieri între modele conceptuale

Page 149: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

Putem impune restricții suplimentaremodelului de cunoștințe descrise în OWL?

Page 150: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea restricțiilor

Restricțiile sunt considerate clasedefinite prin descrierea proprietăților indivizilor

pe care-i pot include

Page 151: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea restricțiilor

Restricțiile sunt considerate clasedefinite prin descrierea proprietăților indivizilor

pe care-i pot include

specificând o mulțime de indivizi în termeni de clasecunoscute (proprietăți comune), putem folosi aceastădescriere pentru a defini o nouă clasă – mai restrictivă

Page 152: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea restricțiilor

Restricțiile impuse proprietățilortrebuie să apară în cadrul elementelor

owl:Restriction și owl:onProperty

Page 153: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea restricțiilor

Tipuri de restricții:

asupra valorilorallValuesFrom, someValuesFrom, hasValue

privitoare la cardinalitatecardinality, minCardinality, maxCardinality

Page 154: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea restricțiilor

Prin owl:someValuesFrom specificăm restricția:“indivizii pentru care măcar o valoare

a proprietății p provine din clasa C”

[ a owl:Restriction ;

owl:onProperty p ;

owl:someValuesFrom C ]

Page 155: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea restricțiilor

Exemplu: clasa mamelor reprezintă intersecțiaclasei 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"/>

</owl:onProperty>

<owl:hasValue

rdf:resource="#Feminin"/>

</owl:Restriction>

[ a owl:Restriction ;

owl:onProperty :areGen ;

owl:hasValue :Feminin ]

Page 156: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea restricțiilor

Exemplu: clasa mamelor reprezintă intersecțiaclasei 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"/>

</owl:onProperty>

<owl:someValuesFrom

rdf:resource="#Persoana"/>

</owl:Restriction>

[ a owl:Restriction ;

owl:onProperty :areCopil ;

owl:someValuesFrom :Persoana ]

Page 157: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea restricțiilor

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 ]

Page 158: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea restricțiilor

Exemplu: clasa persoanelor vegetariene

<owl:Class rdf:about="#Vegetarian">

<rdfs:subClassOf rdf:resource="#Persoana" />

<rdfs:subClassOf>

<owl:Restriction>

<owl:onProperty rdf:resource="#consuma"/>

<owl:allValuesFrom rdf:resource="#Vegetala" />

</owl:Restriction>

</rdfs:subClassOf>

</owl:Class>

Page 159: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea restricțiilor

Exemplu: clasa persoanelor vegetariene

știind că Alex este vegetarian și consumă spanac:alex a :Vegetarian .

:alex :consuma :spanac .

…se poate deduce faptul că spanaculaparține clasei vegetalelor:

:spanac a :Vegetala .

Page 160: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea restricțiilor

În cazul someValuesFrom, trebuie să existemăcar un membru al clasei

pentru care are loc o proprietate dată

aceasta implică faptul cătrebuie să existe un astfel de membru

Page 161: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea restricțiilor

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

Page 162: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL: specificarea restricțiilor

Via restricții privind cardinalitatea, poate fi stabilitnumărul – minim/maxim – de valori distincte

pe care o proprietate le poate avea

[ a owl:Restriction ;

owl:onProperty p ;

owl:cardinality n ] .

Page 163: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

Exemplu: o resursă audio poate fi stocatămăcar de un sit Web multimedia

<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”

Page 164: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL

Aspect important:verificarea consistenței și coerenței ontologiei

inclusiv verificarea consistenței aserțiunilorprivind indivizii

care populează domeniul modelat de ontologie

Page 165: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL

Aspect important:clasele și proprietățile pot avea “definiții” multiple

AAA – Anyone can say Anything about Any topic

Page 166: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL

Aspect important:declarațiile privitoare la indivizi

nu trebuie obligatoriu să fie stocateîn cadrul aceluiași document

uzual, modelul ontologic este separatde aserțiunile privind indivizii

separation of concerns

Page 167: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL 1: privire de ansamblu

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

Page 168: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

OWL 1: privire de ansamblu

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

Page 169: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

rezumat

modelarea cunoștințelorontologii specificate în OWL 1.0

Page 170: Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limbajul OWL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busaco

episodul viitor: OWL 2.0

+formalizare și baze de cunoștințe


Recommended