SlideShare uma empresa Scribd logo
1 de 169
Baixar para ler offline
Dr. Sabin Buragawww.purl.org/net/busaco

Dezvoltarea aplicațiilor Web

inginerie ontologică
Charles Darwin

Dr. Sabin Buragawww.purl.org/net/busaco

“It is not the strongest of the species
that survive, nor the most intelligent,
but the ones most responsive to change.”
Data interoperability across applications
and organizations (for IT)

conform Tim Berners-Lee

Dr. Sabin Buragawww.purl.org/net/busaco

ce este web-ul semantic
A set of interoperable standards
for knowledge exchange

conform Tim Berners-Lee

Dr. Sabin Buragawww.purl.org/net/busaco

ce este web-ul semantic
An architecture for interconnected
communities and vocabularies

conform Tim Berners-Lee

Dr. Sabin Buragawww.purl.org/net/busaco

ce este web-ul semantic
Dr. Sabin Buragawww.purl.org/net/busaco

meta-date și relații descrise semantic
în cadrul și între documentele Web
Dr. Sabin Buragawww.purl.org/net/busaco

Web-ul semantic oferă un punct de vedere abstract
“ascunde” documentele
Dr. Sabin Buragawww.purl.org/net/busaco

se oferă premisele modelării conceptuale a resurselor
modelul
RDF

se oferă premisele modelării conceptuale a resurselor
(date, informații, cunoștințe)

Dr. Sabin Buragawww.purl.org/net/busaco

relație atomică
Dr. Sabin Buragawww.purl.org/net/busaco

Există metode de proiectare (modelare)
a cunoștințelor (ontologiilor)?
Aspect de interes:
crearea de ontologii din diverse surse

Dr. Sabin Buragawww.purl.org/net/busaco

managementul cunoștințelor
Aspect de interes:
crearea de ontologii din diverse surse
scheme XML,
scheme de baze de date,
diagrame UML,
foi de calcul tabelar,
alte specificații – e.g., microformate, microdate HTML5

Dr. Sabin Buragawww.purl.org/net/busaco

managementul cunoștințelor
Dr. Sabin Buragawww.purl.org/net/busaco

fragment de ontologie exprimat sub forma diagramelor de clasa UML
exemplu oferit de Cranefield (2001)
Aspect de interes:
gestiunea versiunilor

Dr. Sabin Buragawww.purl.org/net/busaco

managementul cunoștințelor
Aspect de interes:
constituirea/folosirea colecțiilor de ontologii

Dr. Sabin Buragawww.purl.org/net/busaco

managementul cunoștințelor
Aspect de interes:
constituirea/folosirea colecțiilor de ontologii
asocieri
comparații
reconcilieri
validări
conversii
asigurarea calității

Dr. Sabin Buragawww.purl.org/net/busaco

managementul cunoștințelor
Aspect de interes:
obținerea, organizarea & vizualizarea
domeniului de cunoaștere
înainte și în timpul creării unei ontologii

Dr. Sabin Buragawww.purl.org/net/busaco

managementul cunoștințelor
Aspect de interes:
utilizarea ontologiilor în funcție de context

Dr. Sabin Buragawww.purl.org/net/busaco

managementul cunoștințelor
Aspect de interes:
utilizarea ontologiilor în funcție de context
axate asupra modelării – exhaustive – a unei lumi (web)
specifice unui set de task-uri/procese – workflow-uri

mixte

Dr. Sabin Buragawww.purl.org/net/busaco

managementul cunoștințelor
Metodologii de inginerie a cunoștințelor
(knowledge engineering methodologies)

Dr. Sabin Buragawww.purl.org/net/busaco

necesitate
Metodologii de inginerie a cunoștințelor
(knowledge engineering methodologies)

Dr. Sabin Buragawww.purl.org/net/busaco

necesitate

procesul prin care experți ai domeniului și ontologiști
vor constitui o bază de cunoștințe (KB – Knowledge Base),
modelată într-un limbaj de reprezentare a cunoștințelor
și gestionată via o suită de instrumente adiționale
Metodologii de inginerie a cunoștințelor
(knowledge engineering methodologies)

Dr. Sabin Buragawww.purl.org/net/busaco

necesitate

procesul prin care experți ai domeniului și ontologiști
vor constitui o bază de cunoștințe (KB – Knowledge Base),
modelată într-un limbaj de reprezentare a cunoștințelor
și gestionată via o suită de instrumente adiționale
Metodologii de inginerie a cunoștințelor
(knowledge engineering methodologies)
procesele, limbajele și instrumentele folosite se bazează
pe diverse paradigme de reprezentare a cunoștințelor

Dr. Sabin Buragawww.purl.org/net/busaco

necesitate
Metodologii de inginerie a cunoștințelor
(knowledge engineering methodologies)
pot recurge la abordări de tip Model-Driven Engineering

de (re)văzut MDA – Model Driven Architecture

Dr. Sabin Buragawww.purl.org/net/busaco

necesitate
Dr. Sabin Buragawww.purl.org/net/busaco

necesitate

D. Gasevic, D. Djuric, V. Devedzic, Model Driven Engineering
and Ontology Development (2nd Edition), Springer, 2009
Tradiționale, din ingineria software clasică
exemplificări:
CommonKADS (Scheriber et al., 2000)
UOL – Unified Ontology Language (Baclawski et al., 2002)

Dr. Sabin Buragawww.purl.org/net/busaco

abordări
Agile – mai flexibile și facile
eXtreme Programming
exemple:
XP.K (Knublauch, 2002)
RapidOWL (Auer, 2005)

Dr. Sabin Buragawww.purl.org/net/busaco

abordări
Pentru detalii, a se studia articolele:
A. Denicola et al., “A Software Engineering Approach
to Ontology Building”, Information Systems 34(2), 2009
wwwusers.di.uniroma1.it/~navigli/pubs/De_Nicola_Missikoff_Navigli_2009.pdf

M. Jarrar, R. Meersman, “Ontology Engineering
– The DOGMA Approach”, LNCS 4891, Springer, 2008
http://www.jarrar.info/publications/JM08.v7.pdf

Dr. Sabin Buragawww.purl.org/net/busaco

abordări
Dr. Sabin Buragawww.purl.org/net/busaco

Care sunt procesele de modelare ontologică?
Dezvoltarea unei ontologii implică
partajarea de informații
+
colaborare

Dr. Sabin Buragawww.purl.org/net/busaco

observații
“Knowledge is fractal” (Alan Rector, 2004)
ontologiile prezintă aceeași structură
la fiecare nivel de granularitate (detaliu)

Dr. Sabin Buragawww.purl.org/net/busaco

observații
Dr. Sabin Buragawww.purl.org/net/busaco

observații

Atenție la dezvoltările exponențiale ale ontologiei!
fenomenul “exploding bicycle”
Necunoașterea a-priori a dimensiunii ontologiei
Numărul persoanelor implicate

Folosirea ontologiei de către utilizatori
care nu sunt experți ai domeniului modelat
Natural laziness 
...

Dr. Sabin Buragawww.purl.org/net/busaco

complicații
Conflicte privitoare la intuiții
intuițiile sunt dificil de formalizat

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: dificultăți
Conflicte privitoare la intuiții
intuițiile sunt dificil de formalizat

experții în domeniu sunt conduși de obisnuințe
și practică (șabloane de proiectare)
prototipuri + generalizări

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: dificultăți
Conflicte privitoare la intuiții
intuițiile sunt dificil de formalizat

logicienii sunt motivați de logică și computabilitate
definiții/axiome (formale) + operatori universali

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: dificultăți
transparență și predictibilitate
versus
rigoare + completitudine

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: dificultăți
Persoanele
– ontologiști, programatori, utilizatori –
fără (prea multă) experiență

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: dificultăți
Studiu de caz – Peter Morville, 2007
alergia la alune (peanut allergy)

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: dificultăți
Studiu de caz – Peter Morville, 2007
alergia la alune (peanut allergy)
acces urgent la informații exacte și utile
credibilitatea surselor este esențială

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: dificultăți
Studiu de caz – Peter Morville, 2007
alergia la alune (peanut allergy)

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: dificultăți

orice căutare folosind un motor de căutare clasic eșuează
popularitate ≠ autoritate în domeniu
cunoștințele (relevante) trebuie să fie regăsite pe Web
necesită expertiză în domeniu +
abilități avansate de căutare pe Web
rezultate
oferite de
Bing

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: dificultăți
Dr. Sabin Buragawww.purl.org/net/busaco

rezultate
întoarse de
DuckDuckGo
rezultate oferite
de Google
Dr. Sabin Buragawww.purl.org/net/busaco
rezultate furnizate
de Siri

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: dificultăți
Modelarea
semantica (meaning)
corectitudinea clasificărilor și extragerii cunoștințelor

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: dificultăți
Modelarea
indexarea
vizează activitățile de descoperire,
căutare și găsire a cunoștințelor

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: dificultăți
Modelarea
popularea
introducerea datelor (e.g., indivizi)
+
procesul decizional
eventual, alte aspecte de interes

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: dificultăți
Modelarea
achiziția
capt(ur)area cunoștințelor

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: dificultăți
Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: dificultăți
Asigurarea calității + managementul modificărilor
calitatea
stabilirea de criterii privitoare la ceea ce este “corect”
(e.g., grad de expresivitate, ușurința refolosirii,
volumul entităților modelate:
clase/proprietăti/restricții/indivizi,…)
Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: dificultăți
Asigurarea calității + managementul modificărilor
evoluția
luarea în calcul a schimbărilor viitoare ale ontologiei
Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: dificultăți
Asigurarea calității + managementul modificărilor
testarea
controlul modificărilor
asigurarea – eventual, (semi-)automată – a calității
de exemplu, detectarea inconsistențelor
Privitoare la factorul uman
apariția confuziilor privitoare la termeni
și la utilizarea ontologiei în practică

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: dificultăți
Privitoare la factorul uman
persoane provenind din medii eterogene
inteligență artificială, interacțiune om-calculator,
dezvoltare Web, inginerie software,
lingvistică (computațională), științe cognitive, filosofie,
...

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: dificultăți
Referitoare la interoperabilitate
recurgerea la sintaxe diferite

utilizarea de instrumente de modelare eterogene
folosirea unor limbaje având diverse expresivități

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: dificultăți
Vizualizarea (redarea) ontologiilor
prezentări alternative

documentare automată
navigare bazată pe context + faceted search
aspect important: ontologiile de mari dimensiuni

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: dificultăți
Dr. Sabin Buragawww.purl.org/net/busaco

VOWL – Visual Notation for OWL Ontologies
reprezentarea grafică a elementelor unei specificații OWL
(Ștefan Negru & Steffen Lohmann, 2013)
http://vowl.visualdataweb.org/
Vizualizarea (redarea) ontologiilor
descoperirea datelor și relațiilor (data/relation mining)

eventual, folosind instrumente de realizare
a raționamentelor automate (reasoners)

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: dificultăți
găsirea de relații între conceptele oferite de DBpedia
instrumentul RelFinder
http://www.visualdataweb.org/relfinder.php

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: dificultati
Alegerea dificilă a unor criterii formale
(i.e. privind calitatea cunoștințelor modelate)
consistență
completitudine
concizie
expresivitate
...

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: realități
Generarea manuală a ontologiilor
taxonomii navigabile: Open Directory, Yahoo!,...
folksonomii – vezi sistemele de tagging social
ontologii publice – e.g., YAGO, UMBEL
ontologii interne – exemplu: Daimler-Chrysler

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: realități
Ontologiile generale (top-level)
nu sunt cu adevărat utile în practică

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: realități
Apar probleme teoretice/practice privind:
asigurarea coerenței

facilitarea procesării
folosirea surselor de date multiple

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: realități
Diferite vocabulare în vigoare
clasa ≈ concept ≈ categorie ≈ tip
instanță ≈ individ
entitate ≈ obiect (clasă/individ)
proprietate ≈ slot ≈ relație ≈ atribut ≈
≈ rol ≈ legătură semantică

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: realități
Sintaxe diverse existente
sintaxa abstractă – vezi OWL Manchester
N3 (Turtle)
XML/RDF
logica de ordin I
formatul Protégé
limbajul natural (parafraza)
...

Dr. Sabin Buragawww.purl.org/net/busaco

inginerie: realități
1.
2.
3.
4.
5.

Stabilirea domeniului de cunoaștere
Organizarea ontologiei
Popularea (“umplerea”) ontologiei
Verificarea ontologiei
Publicarea ontologiei

Dr. Sabin Buragawww.purl.org/net/busaco

metodologie (Noy & McGuinness, 2003)
Stabilirea domeniului de cunoaștere
asamblarea surselor de date și expertiza
în domeniu pentru a constitui concepte (things)

Dr. Sabin Buragawww.purl.org/net/busaco

metodologie

se vor asigura – măcar informal – consensul și consistența
Organizarea ontologiei
proiectarea pe ansamblu a structurii conceptuale
identificarea principalelor concepte concrete
și a proprietăților acestora
identificarea relațiilor dintre concepte
crearea conceptelor abstracte (de nivel înalt)
identificarea instanțelor
referențierea/includerea altor ontologii
...

Dr. Sabin Buragawww.purl.org/net/busaco

metodologie
Popularea ontologiei

adăugarea conceptelor
inserarea relațiilor + constrângerilor/axiomelor
adăugarea indivizilor
…la nivelul de detaliere necesar
pentru realizarea scopurilor ontologiei

Dr. Sabin Buragawww.purl.org/net/busaco

metodologie
Verificarea ontologiei
reconcilierea inconsistențelor dintre elemente,
la nivel sintactic, logic și semantic

Dr. Sabin Buragawww.purl.org/net/busaco

metodologie
Verificarea ontologiei
reconcilierea inconsistențelor dintre elemente,
la nivel sintactic, logic și semantic
verificarea consistenței poate implica
o clasificare automată, rezultând noi concepte bazate
pe proprietăți individuale sau relații între clase

Dr. Sabin Buragawww.purl.org/net/busaco

metodologie
Publicarea ontologiei
verificarea finală de către experți ai domeniului
publicarea + utilizarea efectivă
în cadrul comunității de practică

Dr. Sabin Buragawww.purl.org/net/busaco

metodologie
Procesul ideal de dezvoltare a unei ontologii
determine
scope

consider
reuse

enumerate
terms

define
classes

define
properties

define
constraints

create
instances

Dr. Sabin Buragawww.purl.org/net/busaco

metodologie
Procesul realist de dezvoltare a unei ontologii
determine
scope

consider
reuse

define
properties

define
classes

consider
reuse

define
properties

enumerate
terms

define
properties
define
constraints

consider
reuse

define
constraints
create
instances

define
classes

enumerate
terms

define
classes

create
instances

define
classes

create
instances

Dr. Sabin Buragawww.purl.org/net/busaco

metodologie
1. Stabilirea scopului
2. Colectarea cunoștințelor
la nivel informal ori semi-formal

3.
4.
5.
6.

Rafinarea cerințelor + testarea
Implementarea – modelarea propriu-zisă
Evaluarea + asigurarea calității
Monitorizarea utilizării și a evoluției

Dr. Sabin Buragawww.purl.org/net/busaco

metodologie (Rector & Horrocks, 2004)
Stabilirea scopului
cerințe
evaluare
reutilizare

…

Dr. Sabin Buragawww.purl.org/net/busaco

metodologie
Colectarea cunoștințelor
la nivel informal ori semi-formal
stabilirea termenilor
organizarea informală a termenilor
parafrazarea și clarificarea termenilor
definiții informale ale conceptelor

realizarea de diagrame informale

Dr. Sabin Buragawww.purl.org/net/busaco

metodologie
Rafinarea cerințelor + testarea

Dr. Sabin Buragawww.purl.org/net/busaco

metodologie
Implementarea – modelarea propriu-zisă
parafrazare și comentare la fiecare fază

dezvoltarea unei scheme normalizate și
a unui “schelet” de ontologie

Dr. Sabin Buragawww.purl.org/net/busaco

metodologie

implementarea unui prototip (consemnând intențiile)
verificarea scalabilității
popularea ontologiei – text mining, procesare a

limbajului uman, JSON, microdate, RDFa, baze de date,…
Evaluarea + asigurarea calității
urmărirea scopului inițial

Dr. Sabin Buragawww.purl.org/net/busaco

metodologie

includerea de verificări privind evoluția ontologiei
și ajustarea manierei de management al ei
proiectarea de teste și “probe”
în mod similar testării aplicațiilor software
Monitorizarea utilizării și a evoluției
(mentenanță)

“process not product”
Alan Rector, 2004

Dr. Sabin Buragawww.purl.org/net/busaco

metodologie
Raționamentul lumilor închise vs. deschise
lumi deschise (open world reasoning)
negația reprezintă contradicție – orice poate fi adevărat
până când se poate demonstra că e fals

Dr. Sabin Buragawww.purl.org/net/busaco

aspecte importante
Raționamentul lumilor închise vs. deschise
lumi închise (close world reasoning)
negația înseamnă esec – orice nu poate fi găsit este fals

Dr. Sabin Buragawww.purl.org/net/busaco

aspecte importante
Raționamentul lumilor închise vs. deschise
ontologiile sunt considerate lumi deschise,
iar bazele de date lumi închise

Dr. Sabin Buragawww.purl.org/net/busaco

aspecte importante
Knowledge Base vs. Data Base
o bază de cunoștințe nu definește un model unic,
ci reprezintă un set de constrângeri
care pot defini o mulțime de modele posibile

Dr. Sabin Buragawww.purl.org/net/busaco

aspecte importante
Knowledge Base vs. Data Base
o bază de cunoștințe nu definește un model unic,
ci reprezintă un set de constrângeri
care pot defini o mulțime de modele posibile
nici o constrângereorice model e posibil
cu cât există mai multe constrângeri,
cu atât numărul modelelor posibile scade

Dr. Sabin Buragawww.purl.org/net/busaco

aspecte importante
Knowledge Base vs. Data Base
o baza de date definește un model unic
(Bechhofer, 2004)
numele diferite sunt interpretate ca indivizi distincți
domeniul e compus numai din indivizii numiți
în cadrul bazei de date – modelul lumii inchise
extensiile sunt cât mai reduse posibil

Dr. Sabin Buragawww.purl.org/net/busaco

aspecte importante
Knowledge Base vs. Data Base
model unic
expresivitate redusă – nu există negații/disjuncții
nu poate captura informații incomplete
non-monoton:
adăugarea de noi date nu păstrează adevărul
procesul de reasoning (interogare) este facil și rapid

Dr. Sabin Buragawww.purl.org/net/busaco

aspecte importante
Knowledge Base vs. Data Base
modele multiple
expresivitate ridicată – conectori booleeni, reuniune,...
se pot captura/exprima informații incomplete
monotonie – adăugarea de noi date păstrează adevărul
procesul de reasoning (interogare) este dificil și lent

Dr. Sabin Buragawww.purl.org/net/busaco

aspecte importante
Activitatea de reasoning

poate fi realizată automat de un reasoner
clasificarea conceptelor
rezultă:
un arbore – ierarhie strictă, taxonomie
sau
un digraf aciclic (DAG) – poli-ierarhie, graf conceptual

Dr. Sabin Buragawww.purl.org/net/busaco

aspecte importante
Activitatea de reasoning

poate fi realizată automat de un reasoner
normalizare
separarea conceptelor de bază în arbori disjuncți,
arborii având legături între ei via definiții și restricții

Dr. Sabin Buragawww.purl.org/net/busaco

aspecte importante
Exemplu: o ontologie privitoare la animale
înainte de clasificare

după clasificare

arbore de concepte

digraf aciclic

Dr. Sabin Buragawww.purl.org/net/busaco

aspecte importante
Dezvoltarea unei ontologii normalizate presupune:
1.
2.
3.
4.
5.

Identificarea conceptelor de bază de sine-stătătoare
Separarea conceptelor în arbori de concepte
Identificarea relațiilor
Crearea descrierilor și definițiilor
Identificarea modului în care entitățile-cheie
trebuie clasificate
6. Utilizarea clasificatorului pentru a genera digraful
7. Verificarea satisfacerii testelor

Dr. Sabin Buragawww.purl.org/net/busaco

aspecte importante
1. Identificarea conceptelor de bază de sine-stătătoare
(cu comentarea celor mai puțin evidente)
2. Separarea conceptelor în arbori de concepte
(poate implica specificarea unor
proprietăți/concepte auxiliare)
3. Identificarea relațiilor
(comentarea acelor relații care nu sunt evidente)
4. Crearea descrierilor și definițiilor
(cu oferirea de parafraze pentru fiecare)
5. Identificarea modului în care entitățile-cheie
trebuie clasificate (crearea unor teste de regresie)
6. Utilizarea clasificatorului pentru a genera digraful
7. Verificarea satisfacerii testelor

Dr. Sabin Buragawww.purl.org/net/busaco

Dezvoltarea unei ontologii normalizate presupune:
“Trusa” ontologistului
cerințe
formalisme (construcții logice)
ontologii existente
resurse de cunoștințe informale
convenții și practici
instrumente
adaptare după Aldo Gangemi (2008)

Dr. Sabin Buragawww.purl.org/net/busaco

considerații privind modelarea
“Trusa” ontologistului

Dr. Sabin Buragawww.purl.org/net/busaco

considerații privind modelarea

cerințe – e.g., “un model ideal de specificare a lumii” 
construcții logice: subClassOf, restricții de cardinalitate,…
ontologii existente – e.g., DOLCE, FOAF, UMBEL, YAGO etc.
resurse de cunoștințe informale: servicii Web, API-uri,…
convenții și practici – inclusiv șabloane de proiectare
instrumente – editoare, instrumente de reasoning,
convertoare, sisteme de stocare etc. (Disco, GATE, Protégé,
NeOn Toolkit, FaCT++, Jena, Triplr, Virtuoso,…)
Înțelegerea clară a distincțiilor (Franconi, 2003)
concept (clasă) vs. individ
concept (clasă) vs. proprietate (rol)
entitate definită vs. entitate dedusă

Dr. Sabin Buragawww.purl.org/net/busaco

considerații privind modelarea
Clasă (concept) versus instanță (individ)
o mulțime de indivizi este una numărabilă, discretă
spațiul privitor la concepte e ideal continuu și infinit

Dr. Sabin Buragawww.purl.org/net/busaco

considerații privind modelarea
Clasă (concept) versus instanță (individ)
fiecare individ posedă o identitate clară

Dr. Sabin Buragawww.purl.org/net/busaco

considerații privind modelarea
Clasă (concept) versus instanță (individ)
dacă două concepte au descrieri echivalente,
atunci desemnează același concept
descrierile privitoare la indivizi
pot fi alterate (pot evolua)

Dr. Sabin Buragawww.purl.org/net/busaco

considerații privind modelarea
Clasă (concept) versus instanță (individ)
uzual, actualizările vizând indivizii
nu schimbă ierarhia conceptelor

Dr. Sabin Buragawww.purl.org/net/busaco

considerații privind modelarea
Clasă (concept) versus instanță (individ)
alegerea “clasă vs. individ” depinde de granularitate

Dr. Sabin Buragawww.purl.org/net/busaco

considerații privind modelarea
Clasă (concept) versus proprietate (rol)
nu e ușor de decis dacă o entitate trebuie să fie modelată
ca un concept sau drept proprietate

Dr. Sabin Buragawww.purl.org/net/busaco

considerații privind modelarea
Clasă (concept) versus proprietate (rol)
nu e ușor de decis dacă o entitate trebuie să fie modelată
ca un concept sau drept proprietate
Persoana este un concept (clasă)
Mama ca și concept nu există dacă nu considerăm
ce rol joacă într-o relație parentală
(este un concept dependent de o relație)

Dr. Sabin Buragawww.purl.org/net/busaco

considerații privind modelarea
Clasă (concept) versus proprietate (rol)
nu e ușor de decis dacă o entitate trebuie să fie modelată
ca un concept sau drept proprietate
convenție:
alegerea de nume neambigue pentru roluri
e.g., hasParent, areMama, areGen etc.

Dr. Sabin Buragawww.purl.org/net/busaco

considerații privind modelarea
Fiecărui concept ales i se pot asocia:
proprietăți intrinseci
caracteristice naturii conceptului
proprietăți extrinseci
externe – pot să se modifice pe parcurs

Dr. Sabin Buragawww.purl.org/net/busaco

considerații privind modelarea
Fiecărui concept ales i se pot asocia:
proprietăți intrinseci
caracteristice naturii conceptului
exemplu: identitatea unei persoane
proprietăți extrinseci
externe – pot să se modifice pe parcurs
e.g., ocupația unei persoane: student, programator, artist

Dr. Sabin Buragawww.purl.org/net/busaco

considerații privind modelarea
Fiecărui concept ales i se pot asocia:

Dr. Sabin Buragawww.purl.org/net/busaco

considerații privind modelarea

părți, fragmente – în cazul obiectelor structurate/compuse
fizice

abstracte
Fiecărui concept ales i se pot asocia:

Dr. Sabin Buragawww.purl.org/net/busaco

considerații privind modelarea

părți, fragmente – în cazul obiectelor structurate/compuse
fizice
“studenții dintr-un an”, “componentele unei tablete”,
“boabele unui strugure” etc.
abstracte
“prezentările unei materii”, “subiectele unui blog”,…
Raționamentele automate privitoare la indivizi
sunt dificil de realizat
ontologiile vizează în special clasele
ontologii ≠ baze de date

Dr. Sabin Buragawww.purl.org/net/busaco

considerații privind modelarea
O ontologie urmează un ciclu de viață (lifecycle),
fiind creată, evaluată, ajustată, exploatată
ca și alt artefact software

Dr. Sabin Buragawww.purl.org/net/busaco

considerații privind modelarea
O ontologie urmează un ciclu de viață (lifecycle),
fiind creată, evaluată, ajustată, exploatată
ca și alt artefact software
aspecte de interes:
datele
tipurile de workflow-uri
șabloanele de proiectare (reguli de bună practică)
utilizarea propriu-zisă

Dr. Sabin Buragawww.purl.org/net/busaco

considerații privind modelarea
Dr. Sabin Buragawww.purl.org/net/busaco

J. Benedict, D. McGuinness, P. Fox (2007)
Modelarea unei ontologii privitoare la animale

adaptare după Alan Rector

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Intenții și scopuri
realizarea unei cărți electronice (e-book)
despre animale, oferind informații precum:
locul unde trăiesc
ce consumă – carnivore, ierbivore, omnivore
cât de periculoase pot fi
ce anatomie de bază au – e.g., numărul picioarelor,...
ce greutate au
...

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Colectarea conceptelor
se pot folosi carduri de concepte

se lucrează în grupuri mici de persoane
se pot atrage experți ai domeniului

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Dog
Cat
Cow
Person
Tree
Grass
Herbivore
Male
Female

Carnivore
Plant
Animal
Fur
Child
Parent
Mother
Father

Dangerous
Pet
Domestic animal
Farm animal
Food animal
Fish
Goldfish
clase posibile

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Dog
Cat
Cow
Person
Tree
Grass
Herbivore
Male
Female

Carnivore
Plant
Animal
Fur
Child
Parent
Mother
Father

Dangerous
Pet
Domestic animal
Farm animal
Food animal
Fish
Goldfish

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz: organizarea conceptelor
Extinderea conceptelor
gruparea unor concepte
și determinarea caracteristicilor comune:
Plant, Animal ↦ Living Thing
ar putea fi adăugați ulterior și termeni ca Bacteria, Fungi
Cat, Dog, Cow, Person ↦ Mammal
alți candidați ar putea fi Goat, Sheep, Horse, Lion
etc.

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Pentru facilitarea clasificării, colecțiile de subclase
trebuie declarate explicit disjuncte
exemplificare:
Plant disjointWith Animal
Alegerea unor axe conceptuale
adăugarea de termeni abstracți
de exemplu: “Living thing”

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Alegerea unor axe conceptuale
identificarea relațiilor
de pildă: “eats”, “owns”, “parent of”

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Alegerea unor axe conceptuale
identificarea entităților ce pot fi definite
(în relație cu altele)
e.g., “child”, “parent”, “Mother”, “Father”

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Alegerea unor axe conceptuale
numirea explicită a conceptelor
utilizarea cunoștințelor anterioare
(background knowledge)

axiome

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Living Thing
Mammal
Cat
Dog
Cow
Person

Fish

Modifiers
Domestic
Pet
Farmed
Food

Wild
Health
healthy
sick

Goldfish

Plant
Tree
Grass
Fruit

eats
owns
parent-of
…

Gender
Male
Female

Age
Adult
Child

Definables
Carnivore
Herbivore
Child
Parent
Mother
Father
Food Animal

Dr. Sabin Buragawww.purl.org/net/busaco

Animal

Relations
Stabilirea entităților de sine-stătătoare
“lucruri” ce există conform substantivelor lor
oameni, animale, edificii, acțiuni, procese,…
se utilizează majoritatea substantivelor

modificatori (modifiers)
“lucruri” ce se pot preschimba în altele
se folosesc adjectivele și adverbele

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Reorganizăm conceptele, grupând entitățile
care pot fi definite în arbori separați
constituirea conceptelor de bază (primitives)

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Living Thing
Animal
Mammal
Cat
Dog
Cow
Person
Fish
Gold
fish

Plant
Tree
Grass
Fruit

Modifiers

Domestication
Use
Risk

Domestic
Wild

Food
Pet
Dangerous
Safe

Gender
Age

Male
Female
Adult
Child

Relations

eats
owns
parent-of
…

Definables
Carnivore
Herbivore
Child
Parent
Mother
Father
Food Animal

Dr. Sabin Buragawww.purl.org/net/busaco

Self_standing
Living Thing
Animal
Mammal
Cat
Dog
Cow
Person
Fish
Gold
fish

Plant
Tree
Grass
Fruit

Concept abstract incluzând toate entitățile vii
– aici, restricționat la plante și animale.

adăugarea comentariilor
clarificatoare (parafraze)

Dr. Sabin Buragawww.purl.org/net/busaco

Self_standing
Identificarea constrângerilor privitoare la domeniu
(domain) și interval (range) pentru fiecare proprietate:
Animal eats Living_thing
eats

domain:
range:

Animal
Living_thing

Person owns Living_thing except Person
owns

domain:
range:

Person
Living_thing and not Person

Living_thing parent_of Living_thing
parent_of

domain:
range:

Animal
Animal

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Pentru entitățile ce pot fi definite,
trebuie comentate și formalizate
definițiile acestora în termeni de primitive,
relații și alte entități ce pot fi specificate

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Exemplu
“A ‘Parent’ is an animal that is the parent of
some other animal” – ignore plants for now
Parent = Animal and parent_of some Animal

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Exemplu
“A ‘Herbivore’ is an animal that eats only plants”
NB: All animals eat some living thing
Herbivore = Animal and eats only Plant

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Stabilirea proprietăților ce pot apărea
la nivel de clasă

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Ce se poate afirma privitor la toți membrii clasei?
exemplu: eats
All cows eat some plants
All cats eat some animals
All pigs eat some animals and eat some plants

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Verificarea clasificării
“Cows should be Herbivores”
Cows are animals and, amongst other things,
eat some grass and
eat some leafy_plants

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Verificarea clasificării

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz

trebuie specificată axioma de închidere (closure axiom)
Cows are animals and, amongst other things,
eat some plants and
eat only plants
Verificarea clasificării – aici, folosind Protégé

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Examinarea listei de modificatori
identificarea modificatorilor
care au valori mutual exclusive
Domestication, Risk, Gender, Age

precizarea mai precisă a unora
Age ↦ Age_group

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Domestication

Risk

Domestic
Wild
Feral

Dangerous
Risky
Safe

Gender
Age

Male
Female
Infant
Toddler
Child
Adult
Elderly

noua listă de modificatori

Dr. Sabin Buragawww.purl.org/net/busaco

Modifiers
Specificarea valorilor (soluția 1)
partiții de valori: clase ce partiționează o calitate
Dangerousness cu subcalitățile disjuncte
Dangerous, Risky, Safe

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Specificarea valorilor (soluția 1)
partiții de valori: clase ce partiționează o calitate
se poate specifica proprietatea funcțională
hasDangerousness : Animal ↦ Dangereousness
Dangerous_animal = Animal and
hasDangerousness some Dangerous

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Animal
hasDangerousness
someValuesFrom

Risky

Dangerous

Dangerous
animal
Cookie
the Lion

Dangerousness
Cookie’s
Danger

Safe

www.w3.org/TR/swbp-classes-as-values

Dr. Sabin Buragawww.purl.org/net/busaco

diagrama partițiilor de valori
Specificarea valorilor (soluția 1)
partiții de valori: clase ce partiționeaza o calitate
calitatea

partițiile de
valori

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Partițiile de valori în stilul UML
Animal

Dangerousness_
Value
owl:unionOf

Safe_
value

Risky_
value

Dangerous_
value

hasDangerousness
someValuesFrom

Dangerous
Animal

Cookie’s
Dangerousness

hasDangerousness

Cookie
the Lion

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Specificarea valorilor (soluția 2)
valori simbolice: indivizii pot enumera
toate valorile unei calități (caracteristici)
în acest caz, calitatea specificată este Gender_value,
pentru fiecare valoare existând o mulțime de indivizi

valorile vor fi diferite, date ca o enumerare:
Gender_value = { male, female }

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Specificarea valorilor (soluția 2)
valori simbolice: indivizii pot enumera
toate valorile unei calități (caracteristici)
se definește o proprietate funcțională
hasGender : Animal ↦ Gender_value

Male_animal = Animal and hasGender is male

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Valorile simbolice – stilul UML
Person

Gender
_value

owl:oneOf
female

hasGender

male

Man

Sabin

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Specificarea valorilor (design pattern)
valori distincte exprimate via Disjoint pentru clase
sau allDifferent pentru indivizi

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Specificarea valorilor (design pattern)
valorile “acoperă” un tip de date
Calitate = Part1 or Part2 or Part3 or … or Partn
sau
Calitate = { v1 , v2 , v3 ,…, vn }

proprietățile exprimate sunt deseori funcționale

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Exprimarea rolurilor (proprietăților)
apare necesitatea distingerii rolurilor
pe care le joacă entitățile în diferite situații

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Exprimarea rolurilor (proprietăților)
apare necesitatea distingerii rolurilor
pe care le joacă entitățile în diferite situații
exemple:
“pet” versus “farm animal”
“elev” versus “student” versus “profesor”
“medic” versus “pacient”

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Exprimarea rolurilor (proprietăților)
deseori, calificările trebuie distinse față de roluri
e.g., o persoană poate avea calificare de medic,
dar joacă rol de pacient

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Exprimarea rolurilor (proprietăților)
uzual, rolurile desemnează relații
Animal

Food_animal
Cow
Horse

Pet_animal
Horse
Dog

Animal
Mammal
Cow
Horse
Dog

Animal_use_role
Food_role
Pet_role

Food_animal =
Animal and
has_role
some Food_role
Pet_animal =
Animal and
has_role
some Pet_role

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Exprimarea rolurilor (proprietăților)
situație:
Horse plays_role some Food_role
toți caii au rol de animale bune de consum
o afirmație prea categorică

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Exprimarea rolurilor (proprietăților)
soluții:
ignorarea problemei într-un anumit context
sau
înlocuirea lui has_role cu may_have_role
se poate specifica
Food_Horse = Horse and has_role Food_role

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Observație:
anumite entități pot fi deduse pe baza inferențelor
– via reasoners (e.g., FaCT++, HermiT, Pellet)
Grass and Leafy_plants are both kinds of Plant

revezi exemplele
din cursul anterior

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Comentarea și parafrazarea tuturor claselor
din cadrul ontologiei
foarte util pentru alte persoane care vor folosi
și/sau vor extinde ontologia

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Oferirea unui set de clase de probă și
a unui cadru de testare a ontologiei

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz

clase de probă = clase suplimentare care pot să fie
sau nu satisfiabile sau clasificabile
într-un context particular – “excepțiile de la regulă”
în ontologia finală, vor fi eliminate
Living Thing

Body Part

eats
has part

Arm

Plant
eats

Animal

Leg

eats

Herbivore

Grass
Tree

Person
Carnivore
Cow

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz: privire de ansamblu
Modelarea unui web privitor la un muzeu de artă
eronată!

adaptare după Enrico Franconi

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Dr. Sabin Buragawww.purl.org/net/busaco

TBox redundant + ciclic
nu se pot detecta ușor inconsistențele
La nivel de ABox se specifică:
Dali este pictor, Pescuit de ton este tablou,
tabloul Pescuit de ton al lui Dali se găsește în Madrid
tabloul Pescuit de ton, pictat de Dali în 1966,
se găsește în Madrid etc.
date specificate redundant:
Painter (dali), PAINTING (dali, tuna-fishing),
Painting (tuna-fishing), AUTHOR (tuna-fishing, dali),...

Dr. Sabin Buragawww.purl.org/net/busaco

studiu de caz
Etape importante privind crearea unei ontologii:
initial feasibility study & requirement specification
knowledge acquisition
conceptualization
formalization
evaluation
refinement

Dr. Sabin Buragawww.purl.org/net/busaco

concluzii
Adoptarea unei/unor metodologii
exemplu de referință:
NeOn methodology (A. Gómez-Pérez et al., 2010)
propune diverse scenarii,
adaptate scopului și domeniului modelat
http://www.neon-project.org/nw/NeOn_Book

Dr. Sabin Buragawww.purl.org/net/busaco

concluzii
Dezvoltarea unei/unor ontologii
trebuie să reprezinte doar primul pas
un model conceptual nu are sens
dacă nu e utilizat în practică

Dr. Sabin Buragawww.purl.org/net/busaco

concluzii
oferă o descriere
a unui domeniu (web)

aplicații
software
servicii
Web

declară o manieră
de structurare

baze de date
problem-solving
methods

baze de
cunoștințe

recomandare,
filtrare, analiză,…

adaptare după Alan Rector et al., 2005

Dr. Sabin Buragawww.purl.org/net/busaco

ontologii
knowledge engineering
metodologii de proiectare a ontologiilor
studii de caz

Dr. Sabin Buragawww.purl.org/net/busaco

rezumat
Dr. Sabin Buragawww.purl.org/net/busaco

episodul viitor: inginerie ontologică (II)
alinierea ontologiilor & șabloane de proiectare

Mais conteúdo relacionado

Destaque

WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...
WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...
WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...Sabin Buraga
 
Curs tehnologie culinara
Curs tehnologie culinaraCurs tehnologie culinara
Curs tehnologie culinaraPopescu Daniel
 
Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)
Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)
Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)Sabin Buraga
 
009 Indrumar afaceri tic pentru comertul electronic
009 Indrumar afaceri  tic pentru comertul electronic009 Indrumar afaceri  tic pentru comertul electronic
009 Indrumar afaceri tic pentru comertul electronicIcesicon
 
005 Indrumar afaceri tic in cadrul intreprinderilor micro, mijlocii si mici
005 Indrumar afaceri  tic in cadrul intreprinderilor micro, mijlocii si mici005 Indrumar afaceri  tic in cadrul intreprinderilor micro, mijlocii si mici
005 Indrumar afaceri tic in cadrul intreprinderilor micro, mijlocii si miciIcesicon
 

Destaque (6)

WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...
WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...
WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...
 
Word si excel
Word si excelWord si excel
Word si excel
 
Curs tehnologie culinara
Curs tehnologie culinaraCurs tehnologie culinara
Curs tehnologie culinara
 
Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)
Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)
Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)
 
009 Indrumar afaceri tic pentru comertul electronic
009 Indrumar afaceri  tic pentru comertul electronic009 Indrumar afaceri  tic pentru comertul electronic
009 Indrumar afaceri tic pentru comertul electronic
 
005 Indrumar afaceri tic in cadrul intreprinderilor micro, mijlocii si mici
005 Indrumar afaceri  tic in cadrul intreprinderilor micro, mijlocii si mici005 Indrumar afaceri  tic in cadrul intreprinderilor micro, mijlocii si mici
005 Indrumar afaceri tic in cadrul intreprinderilor micro, mijlocii si mici
 

Semelhante a Dezvoltarea aplicațiilor Web (11/12): Inginerie ontologică: Management de cunoştinţe. Metodologii de proiectare

Ce înseamnă să fii dezvoltator Web
Ce înseamnă să fii dezvoltator WebCe înseamnă să fii dezvoltator Web
Ce înseamnă să fii dezvoltator WebSabin Buraga
 
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...Sabin Buraga
 
WADe 2017-2018 (11/12) Ontology Engineering: Knowledge Management. Methodolog...
WADe 2017-2018 (11/12) Ontology Engineering: Knowledge Management. Methodolog...WADe 2017-2018 (11/12) Ontology Engineering: Knowledge Management. Methodolog...
WADe 2017-2018 (11/12) Ontology Engineering: Knowledge Management. Methodolog...Sabin Buraga
 
Sabin Buraga: Participând la Web
Sabin Buraga: Participând la WebSabin Buraga: Participând la Web
Sabin Buraga: Participând la WebSabin Buraga
 
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...Sabin Buraga
 
Ce înseamnă a fi dezvoltator Web (varianta 2014)
Ce înseamnă a fi dezvoltator Web (varianta 2014)Ce înseamnă a fi dezvoltator Web (varianta 2014)
Ce înseamnă a fi dezvoltator Web (varianta 2014)Sabin Buraga
 
Dezvoltator Web?! (varianta 2015)
Dezvoltator Web?! (varianta 2015)Dezvoltator Web?! (varianta 2015)
Dezvoltator Web?! (varianta 2015)Sabin Buraga
 
Dezvoltarea aplicațiilor Web (5/12): Modelul RDF (Resource Description Framew...
Dezvoltarea aplicațiilor Web (5/12): Modelul RDF (Resource Description Framew...Dezvoltarea aplicațiilor Web (5/12): Modelul RDF (Resource Description Framew...
Dezvoltarea aplicațiilor Web (5/12): Modelul RDF (Resource Description Framew...Sabin Buraga
 
Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...
Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...
Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...Sabin Buraga
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #1): Interacţiune Web...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #1): Interacţiune Web...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #1): Interacţiune Web...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #1): Interacţiune Web...Sabin Buraga
 
Sabin Buraga: Date de 5 stele
Sabin Buraga: Date de 5 steleSabin Buraga: Date de 5 stele
Sabin Buraga: Date de 5 steleSabin Buraga
 
WADe 2017-2018 (7/12) Architecture of RDF-based Applications. Linked Open Dat...
WADe 2017-2018 (7/12) Architecture of RDF-based Applications. Linked Open Dat...WADe 2017-2018 (7/12) Architecture of RDF-based Applications. Linked Open Dat...
WADe 2017-2018 (7/12) Architecture of RDF-based Applications. Linked Open Dat...Sabin Buraga
 
WADe 2014—2015 (09/12): Semantic Web—Specificarea ontologiilor în limbajul OWL
WADe 2014—2015 (09/12): Semantic Web—Specificarea ontologiilor în limbajul OWLWADe 2014—2015 (09/12): Semantic Web—Specificarea ontologiilor în limbajul OWL
WADe 2014—2015 (09/12): Semantic Web—Specificarea ontologiilor în limbajul OWLSabin Buraga
 
CLIW 2014—2015 (3/12): Design Web. Interacţiune, utilizabilitate & metodologi...
CLIW 2014—2015 (3/12): Design Web. Interacţiune, utilizabilitate & metodologi...CLIW 2014—2015 (3/12): Design Web. Interacţiune, utilizabilitate & metodologi...
CLIW 2014—2015 (3/12): Design Web. Interacţiune, utilizabilitate & metodologi...Sabin Buraga
 
WADe 2014—2015 (04/12): Aspecte privind modelarea datelor şi cunoştinţelor la...
WADe 2014—2015 (04/12): Aspecte privind modelarea datelor şi cunoştinţelor la...WADe 2014—2015 (04/12): Aspecte privind modelarea datelor şi cunoştinţelor la...
WADe 2014—2015 (04/12): Aspecte privind modelarea datelor şi cunoştinţelor la...Sabin Buraga
 
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebWeb 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebSabin Buraga
 
Dezvoltarea aplicațiilor Web (4/12): Aspecte privind modelarea cunoştinţelor
Dezvoltarea aplicațiilor Web (4/12): Aspecte privind modelarea cunoştinţelorDezvoltarea aplicațiilor Web (4/12): Aspecte privind modelarea cunoştinţelor
Dezvoltarea aplicațiilor Web (4/12): Aspecte privind modelarea cunoştinţelorSabin Buraga
 
Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limba...
Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limba...Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limba...
Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limba...Sabin Buraga
 
Dezvoltarea aplicațiilor Web (12/12): Inginerie ontologică: Alinierea ontolog...
Dezvoltarea aplicațiilor Web (12/12): Inginerie ontologică: Alinierea ontolog...Dezvoltarea aplicațiilor Web (12/12): Inginerie ontologică: Alinierea ontolog...
Dezvoltarea aplicațiilor Web (12/12): Inginerie ontologică: Alinierea ontolog...Sabin Buraga
 
Dezvoltator Web?! – ...în 2016
Dezvoltator Web?! – ...în 2016Dezvoltator Web?! – ...în 2016
Dezvoltator Web?! – ...în 2016Sabin Buraga
 

Semelhante a Dezvoltarea aplicațiilor Web (11/12): Inginerie ontologică: Management de cunoştinţe. Metodologii de proiectare (20)

Ce înseamnă să fii dezvoltator Web
Ce înseamnă să fii dezvoltator WebCe înseamnă să fii dezvoltator Web
Ce înseamnă să fii dezvoltator Web
 
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
 
WADe 2017-2018 (11/12) Ontology Engineering: Knowledge Management. Methodolog...
WADe 2017-2018 (11/12) Ontology Engineering: Knowledge Management. Methodolog...WADe 2017-2018 (11/12) Ontology Engineering: Knowledge Management. Methodolog...
WADe 2017-2018 (11/12) Ontology Engineering: Knowledge Management. Methodolog...
 
Sabin Buraga: Participând la Web
Sabin Buraga: Participând la WebSabin Buraga: Participând la Web
Sabin Buraga: Participând la Web
 
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...
 
Ce înseamnă a fi dezvoltator Web (varianta 2014)
Ce înseamnă a fi dezvoltator Web (varianta 2014)Ce înseamnă a fi dezvoltator Web (varianta 2014)
Ce înseamnă a fi dezvoltator Web (varianta 2014)
 
Dezvoltator Web?! (varianta 2015)
Dezvoltator Web?! (varianta 2015)Dezvoltator Web?! (varianta 2015)
Dezvoltator Web?! (varianta 2015)
 
Dezvoltarea aplicațiilor Web (5/12): Modelul RDF (Resource Description Framew...
Dezvoltarea aplicațiilor Web (5/12): Modelul RDF (Resource Description Framew...Dezvoltarea aplicațiilor Web (5/12): Modelul RDF (Resource Description Framew...
Dezvoltarea aplicațiilor Web (5/12): Modelul RDF (Resource Description Framew...
 
Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...
Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...
Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #1): Interacţiune Web...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #1): Interacţiune Web...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #1): Interacţiune Web...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #1): Interacţiune Web...
 
Sabin Buraga: Date de 5 stele
Sabin Buraga: Date de 5 steleSabin Buraga: Date de 5 stele
Sabin Buraga: Date de 5 stele
 
WADe 2017-2018 (7/12) Architecture of RDF-based Applications. Linked Open Dat...
WADe 2017-2018 (7/12) Architecture of RDF-based Applications. Linked Open Dat...WADe 2017-2018 (7/12) Architecture of RDF-based Applications. Linked Open Dat...
WADe 2017-2018 (7/12) Architecture of RDF-based Applications. Linked Open Dat...
 
WADe 2014—2015 (09/12): Semantic Web—Specificarea ontologiilor în limbajul OWL
WADe 2014—2015 (09/12): Semantic Web—Specificarea ontologiilor în limbajul OWLWADe 2014—2015 (09/12): Semantic Web—Specificarea ontologiilor în limbajul OWL
WADe 2014—2015 (09/12): Semantic Web—Specificarea ontologiilor în limbajul OWL
 
CLIW 2014—2015 (3/12): Design Web. Interacţiune, utilizabilitate & metodologi...
CLIW 2014—2015 (3/12): Design Web. Interacţiune, utilizabilitate & metodologi...CLIW 2014—2015 (3/12): Design Web. Interacţiune, utilizabilitate & metodologi...
CLIW 2014—2015 (3/12): Design Web. Interacţiune, utilizabilitate & metodologi...
 
WADe 2014—2015 (04/12): Aspecte privind modelarea datelor şi cunoştinţelor la...
WADe 2014—2015 (04/12): Aspecte privind modelarea datelor şi cunoştinţelor la...WADe 2014—2015 (04/12): Aspecte privind modelarea datelor şi cunoştinţelor la...
WADe 2014—2015 (04/12): Aspecte privind modelarea datelor şi cunoştinţelor la...
 
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebWeb 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
 
Dezvoltarea aplicațiilor Web (4/12): Aspecte privind modelarea cunoştinţelor
Dezvoltarea aplicațiilor Web (4/12): Aspecte privind modelarea cunoştinţelorDezvoltarea aplicațiilor Web (4/12): Aspecte privind modelarea cunoştinţelor
Dezvoltarea aplicațiilor Web (4/12): Aspecte privind modelarea cunoştinţelor
 
Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limba...
Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limba...Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limba...
Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limba...
 
Dezvoltarea aplicațiilor Web (12/12): Inginerie ontologică: Alinierea ontolog...
Dezvoltarea aplicațiilor Web (12/12): Inginerie ontologică: Alinierea ontolog...Dezvoltarea aplicațiilor Web (12/12): Inginerie ontologică: Alinierea ontolog...
Dezvoltarea aplicațiilor Web (12/12): Inginerie ontologică: Alinierea ontolog...
 
Dezvoltator Web?! – ...în 2016
Dezvoltator Web?! – ...în 2016Dezvoltator Web?! – ...în 2016
Dezvoltator Web?! – ...în 2016
 

Mais de Sabin Buraga

Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleWeb 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleSabin Buraga
 
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebWeb 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebSabin Buraga
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Sabin Buraga
 
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Sabin Buraga
 
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelWeb 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelSabin Buraga
 
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Sabin Buraga
 
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Sabin Buraga
 
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTWeb 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTSabin Buraga
 
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Sabin Buraga
 
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Sabin Buraga
 
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeWeb 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeSabin Buraga
 
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSTAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSabin Buraga
 
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSTAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSabin Buraga
 
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.Sabin Buraga
 
STAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSTAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSabin Buraga
 
STAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSTAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSabin Buraga
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSabin Buraga
 
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSTAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSabin Buraga
 
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5Sabin Buraga
 
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)Sabin Buraga
 

Mais de Sabin Buraga (20)

Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleWeb 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturale
 
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebWeb 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
 
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
 
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelWeb 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
 
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
 
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
 
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTWeb 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma REST
 
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
 
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
 
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeWeb 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
 
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSTAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor Web
 
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSTAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
 
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
 
STAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSTAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.js
 
STAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSTAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului Web
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
 
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSTAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
 
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5
 
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
 

Dezvoltarea aplicațiilor Web (11/12): Inginerie ontologică: Management de cunoştinţe. Metodologii de proiectare

  • 1. Dr. Sabin Buragawww.purl.org/net/busaco Dezvoltarea aplicațiilor Web inginerie ontologică
  • 2. Charles Darwin Dr. Sabin Buragawww.purl.org/net/busaco “It is not the strongest of the species that survive, nor the most intelligent, but the ones most responsive to change.”
  • 3. Data interoperability across applications and organizations (for IT) conform Tim Berners-Lee Dr. Sabin Buragawww.purl.org/net/busaco ce este web-ul semantic
  • 4. A set of interoperable standards for knowledge exchange conform Tim Berners-Lee Dr. Sabin Buragawww.purl.org/net/busaco ce este web-ul semantic
  • 5. An architecture for interconnected communities and vocabularies conform Tim Berners-Lee Dr. Sabin Buragawww.purl.org/net/busaco ce este web-ul semantic
  • 6. Dr. Sabin Buragawww.purl.org/net/busaco meta-date și relații descrise semantic în cadrul și între documentele Web
  • 7. Dr. Sabin Buragawww.purl.org/net/busaco Web-ul semantic oferă un punct de vedere abstract “ascunde” documentele
  • 8. Dr. Sabin Buragawww.purl.org/net/busaco se oferă premisele modelării conceptuale a resurselor
  • 9. modelul RDF se oferă premisele modelării conceptuale a resurselor (date, informații, cunoștințe) Dr. Sabin Buragawww.purl.org/net/busaco relație atomică
  • 10. Dr. Sabin Buragawww.purl.org/net/busaco Există metode de proiectare (modelare) a cunoștințelor (ontologiilor)?
  • 11. Aspect de interes: crearea de ontologii din diverse surse Dr. Sabin Buragawww.purl.org/net/busaco managementul cunoștințelor
  • 12. Aspect de interes: crearea de ontologii din diverse surse scheme XML, scheme de baze de date, diagrame UML, foi de calcul tabelar, alte specificații – e.g., microformate, microdate HTML5 Dr. Sabin Buragawww.purl.org/net/busaco managementul cunoștințelor
  • 13. Dr. Sabin Buragawww.purl.org/net/busaco fragment de ontologie exprimat sub forma diagramelor de clasa UML exemplu oferit de Cranefield (2001)
  • 14. Aspect de interes: gestiunea versiunilor Dr. Sabin Buragawww.purl.org/net/busaco managementul cunoștințelor
  • 15. Aspect de interes: constituirea/folosirea colecțiilor de ontologii Dr. Sabin Buragawww.purl.org/net/busaco managementul cunoștințelor
  • 16. Aspect de interes: constituirea/folosirea colecțiilor de ontologii asocieri comparații reconcilieri validări conversii asigurarea calității Dr. Sabin Buragawww.purl.org/net/busaco managementul cunoștințelor
  • 17. Aspect de interes: obținerea, organizarea & vizualizarea domeniului de cunoaștere înainte și în timpul creării unei ontologii Dr. Sabin Buragawww.purl.org/net/busaco managementul cunoștințelor
  • 18. Aspect de interes: utilizarea ontologiilor în funcție de context Dr. Sabin Buragawww.purl.org/net/busaco managementul cunoștințelor
  • 19. Aspect de interes: utilizarea ontologiilor în funcție de context axate asupra modelării – exhaustive – a unei lumi (web) specifice unui set de task-uri/procese – workflow-uri mixte Dr. Sabin Buragawww.purl.org/net/busaco managementul cunoștințelor
  • 20. Metodologii de inginerie a cunoștințelor (knowledge engineering methodologies) Dr. Sabin Buragawww.purl.org/net/busaco necesitate
  • 21. Metodologii de inginerie a cunoștințelor (knowledge engineering methodologies) Dr. Sabin Buragawww.purl.org/net/busaco necesitate procesul prin care experți ai domeniului și ontologiști vor constitui o bază de cunoștințe (KB – Knowledge Base), modelată într-un limbaj de reprezentare a cunoștințelor și gestionată via o suită de instrumente adiționale
  • 22. Metodologii de inginerie a cunoștințelor (knowledge engineering methodologies) Dr. Sabin Buragawww.purl.org/net/busaco necesitate procesul prin care experți ai domeniului și ontologiști vor constitui o bază de cunoștințe (KB – Knowledge Base), modelată într-un limbaj de reprezentare a cunoștințelor și gestionată via o suită de instrumente adiționale
  • 23. Metodologii de inginerie a cunoștințelor (knowledge engineering methodologies) procesele, limbajele și instrumentele folosite se bazează pe diverse paradigme de reprezentare a cunoștințelor Dr. Sabin Buragawww.purl.org/net/busaco necesitate
  • 24. Metodologii de inginerie a cunoștințelor (knowledge engineering methodologies) pot recurge la abordări de tip Model-Driven Engineering de (re)văzut MDA – Model Driven Architecture Dr. Sabin Buragawww.purl.org/net/busaco necesitate
  • 25. Dr. Sabin Buragawww.purl.org/net/busaco necesitate D. Gasevic, D. Djuric, V. Devedzic, Model Driven Engineering and Ontology Development (2nd Edition), Springer, 2009
  • 26. Tradiționale, din ingineria software clasică exemplificări: CommonKADS (Scheriber et al., 2000) UOL – Unified Ontology Language (Baclawski et al., 2002) Dr. Sabin Buragawww.purl.org/net/busaco abordări
  • 27. Agile – mai flexibile și facile eXtreme Programming exemple: XP.K (Knublauch, 2002) RapidOWL (Auer, 2005) Dr. Sabin Buragawww.purl.org/net/busaco abordări
  • 28. Pentru detalii, a se studia articolele: A. Denicola et al., “A Software Engineering Approach to Ontology Building”, Information Systems 34(2), 2009 wwwusers.di.uniroma1.it/~navigli/pubs/De_Nicola_Missikoff_Navigli_2009.pdf M. Jarrar, R. Meersman, “Ontology Engineering – The DOGMA Approach”, LNCS 4891, Springer, 2008 http://www.jarrar.info/publications/JM08.v7.pdf Dr. Sabin Buragawww.purl.org/net/busaco abordări
  • 29. Dr. Sabin Buragawww.purl.org/net/busaco Care sunt procesele de modelare ontologică?
  • 30. Dezvoltarea unei ontologii implică partajarea de informații + colaborare Dr. Sabin Buragawww.purl.org/net/busaco observații
  • 31. “Knowledge is fractal” (Alan Rector, 2004) ontologiile prezintă aceeași structură la fiecare nivel de granularitate (detaliu) Dr. Sabin Buragawww.purl.org/net/busaco observații
  • 32. Dr. Sabin Buragawww.purl.org/net/busaco observații Atenție la dezvoltările exponențiale ale ontologiei! fenomenul “exploding bicycle”
  • 33. Necunoașterea a-priori a dimensiunii ontologiei Numărul persoanelor implicate Folosirea ontologiei de către utilizatori care nu sunt experți ai domeniului modelat Natural laziness  ... Dr. Sabin Buragawww.purl.org/net/busaco complicații
  • 34. Conflicte privitoare la intuiții intuițiile sunt dificil de formalizat Dr. Sabin Buragawww.purl.org/net/busaco inginerie: dificultăți
  • 35. Conflicte privitoare la intuiții intuițiile sunt dificil de formalizat experții în domeniu sunt conduși de obisnuințe și practică (șabloane de proiectare) prototipuri + generalizări Dr. Sabin Buragawww.purl.org/net/busaco inginerie: dificultăți
  • 36. Conflicte privitoare la intuiții intuițiile sunt dificil de formalizat logicienii sunt motivați de logică și computabilitate definiții/axiome (formale) + operatori universali Dr. Sabin Buragawww.purl.org/net/busaco inginerie: dificultăți
  • 37. transparență și predictibilitate versus rigoare + completitudine Dr. Sabin Buragawww.purl.org/net/busaco inginerie: dificultăți
  • 38. Persoanele – ontologiști, programatori, utilizatori – fără (prea multă) experiență Dr. Sabin Buragawww.purl.org/net/busaco inginerie: dificultăți
  • 39. Studiu de caz – Peter Morville, 2007 alergia la alune (peanut allergy) Dr. Sabin Buragawww.purl.org/net/busaco inginerie: dificultăți
  • 40. Studiu de caz – Peter Morville, 2007 alergia la alune (peanut allergy) acces urgent la informații exacte și utile credibilitatea surselor este esențială Dr. Sabin Buragawww.purl.org/net/busaco inginerie: dificultăți
  • 41. Studiu de caz – Peter Morville, 2007 alergia la alune (peanut allergy) Dr. Sabin Buragawww.purl.org/net/busaco inginerie: dificultăți orice căutare folosind un motor de căutare clasic eșuează popularitate ≠ autoritate în domeniu cunoștințele (relevante) trebuie să fie regăsite pe Web necesită expertiză în domeniu + abilități avansate de căutare pe Web
  • 42. rezultate oferite de Bing Dr. Sabin Buragawww.purl.org/net/busaco inginerie: dificultăți
  • 44. rezultate oferite de Google Dr. Sabin Buragawww.purl.org/net/busaco
  • 45. rezultate furnizate de Siri Dr. Sabin Buragawww.purl.org/net/busaco inginerie: dificultăți
  • 46. Modelarea semantica (meaning) corectitudinea clasificărilor și extragerii cunoștințelor Dr. Sabin Buragawww.purl.org/net/busaco inginerie: dificultăți
  • 47. Modelarea indexarea vizează activitățile de descoperire, căutare și găsire a cunoștințelor Dr. Sabin Buragawww.purl.org/net/busaco inginerie: dificultăți
  • 48. Modelarea popularea introducerea datelor (e.g., indivizi) + procesul decizional eventual, alte aspecte de interes Dr. Sabin Buragawww.purl.org/net/busaco inginerie: dificultăți
  • 49. Modelarea achiziția capt(ur)area cunoștințelor Dr. Sabin Buragawww.purl.org/net/busaco inginerie: dificultăți
  • 50. Dr. Sabin Buragawww.purl.org/net/busaco inginerie: dificultăți Asigurarea calității + managementul modificărilor calitatea stabilirea de criterii privitoare la ceea ce este “corect” (e.g., grad de expresivitate, ușurința refolosirii, volumul entităților modelate: clase/proprietăti/restricții/indivizi,…)
  • 51. Dr. Sabin Buragawww.purl.org/net/busaco inginerie: dificultăți Asigurarea calității + managementul modificărilor evoluția luarea în calcul a schimbărilor viitoare ale ontologiei
  • 52. Dr. Sabin Buragawww.purl.org/net/busaco inginerie: dificultăți Asigurarea calității + managementul modificărilor testarea controlul modificărilor asigurarea – eventual, (semi-)automată – a calității de exemplu, detectarea inconsistențelor
  • 53. Privitoare la factorul uman apariția confuziilor privitoare la termeni și la utilizarea ontologiei în practică Dr. Sabin Buragawww.purl.org/net/busaco inginerie: dificultăți
  • 54. Privitoare la factorul uman persoane provenind din medii eterogene inteligență artificială, interacțiune om-calculator, dezvoltare Web, inginerie software, lingvistică (computațională), științe cognitive, filosofie, ... Dr. Sabin Buragawww.purl.org/net/busaco inginerie: dificultăți
  • 55. Referitoare la interoperabilitate recurgerea la sintaxe diferite utilizarea de instrumente de modelare eterogene folosirea unor limbaje având diverse expresivități Dr. Sabin Buragawww.purl.org/net/busaco inginerie: dificultăți
  • 56. Vizualizarea (redarea) ontologiilor prezentări alternative documentare automată navigare bazată pe context + faceted search aspect important: ontologiile de mari dimensiuni Dr. Sabin Buragawww.purl.org/net/busaco inginerie: dificultăți
  • 57. Dr. Sabin Buragawww.purl.org/net/busaco VOWL – Visual Notation for OWL Ontologies reprezentarea grafică a elementelor unei specificații OWL (Ștefan Negru & Steffen Lohmann, 2013) http://vowl.visualdataweb.org/
  • 58. Vizualizarea (redarea) ontologiilor descoperirea datelor și relațiilor (data/relation mining) eventual, folosind instrumente de realizare a raționamentelor automate (reasoners) Dr. Sabin Buragawww.purl.org/net/busaco inginerie: dificultăți
  • 59. găsirea de relații între conceptele oferite de DBpedia instrumentul RelFinder http://www.visualdataweb.org/relfinder.php Dr. Sabin Buragawww.purl.org/net/busaco inginerie: dificultati
  • 60. Alegerea dificilă a unor criterii formale (i.e. privind calitatea cunoștințelor modelate) consistență completitudine concizie expresivitate ... Dr. Sabin Buragawww.purl.org/net/busaco inginerie: realități
  • 61. Generarea manuală a ontologiilor taxonomii navigabile: Open Directory, Yahoo!,... folksonomii – vezi sistemele de tagging social ontologii publice – e.g., YAGO, UMBEL ontologii interne – exemplu: Daimler-Chrysler Dr. Sabin Buragawww.purl.org/net/busaco inginerie: realități
  • 62. Ontologiile generale (top-level) nu sunt cu adevărat utile în practică Dr. Sabin Buragawww.purl.org/net/busaco inginerie: realități
  • 63. Apar probleme teoretice/practice privind: asigurarea coerenței facilitarea procesării folosirea surselor de date multiple Dr. Sabin Buragawww.purl.org/net/busaco inginerie: realități
  • 64. Diferite vocabulare în vigoare clasa ≈ concept ≈ categorie ≈ tip instanță ≈ individ entitate ≈ obiect (clasă/individ) proprietate ≈ slot ≈ relație ≈ atribut ≈ ≈ rol ≈ legătură semantică Dr. Sabin Buragawww.purl.org/net/busaco inginerie: realități
  • 65. Sintaxe diverse existente sintaxa abstractă – vezi OWL Manchester N3 (Turtle) XML/RDF logica de ordin I formatul Protégé limbajul natural (parafraza) ... Dr. Sabin Buragawww.purl.org/net/busaco inginerie: realități
  • 66. 1. 2. 3. 4. 5. Stabilirea domeniului de cunoaștere Organizarea ontologiei Popularea (“umplerea”) ontologiei Verificarea ontologiei Publicarea ontologiei Dr. Sabin Buragawww.purl.org/net/busaco metodologie (Noy & McGuinness, 2003)
  • 67. Stabilirea domeniului de cunoaștere asamblarea surselor de date și expertiza în domeniu pentru a constitui concepte (things) Dr. Sabin Buragawww.purl.org/net/busaco metodologie se vor asigura – măcar informal – consensul și consistența
  • 68. Organizarea ontologiei proiectarea pe ansamblu a structurii conceptuale identificarea principalelor concepte concrete și a proprietăților acestora identificarea relațiilor dintre concepte crearea conceptelor abstracte (de nivel înalt) identificarea instanțelor referențierea/includerea altor ontologii ... Dr. Sabin Buragawww.purl.org/net/busaco metodologie
  • 69. Popularea ontologiei adăugarea conceptelor inserarea relațiilor + constrângerilor/axiomelor adăugarea indivizilor …la nivelul de detaliere necesar pentru realizarea scopurilor ontologiei Dr. Sabin Buragawww.purl.org/net/busaco metodologie
  • 70. Verificarea ontologiei reconcilierea inconsistențelor dintre elemente, la nivel sintactic, logic și semantic Dr. Sabin Buragawww.purl.org/net/busaco metodologie
  • 71. Verificarea ontologiei reconcilierea inconsistențelor dintre elemente, la nivel sintactic, logic și semantic verificarea consistenței poate implica o clasificare automată, rezultând noi concepte bazate pe proprietăți individuale sau relații între clase Dr. Sabin Buragawww.purl.org/net/busaco metodologie
  • 72. Publicarea ontologiei verificarea finală de către experți ai domeniului publicarea + utilizarea efectivă în cadrul comunității de practică Dr. Sabin Buragawww.purl.org/net/busaco metodologie
  • 73. Procesul ideal de dezvoltare a unei ontologii determine scope consider reuse enumerate terms define classes define properties define constraints create instances Dr. Sabin Buragawww.purl.org/net/busaco metodologie
  • 74. Procesul realist de dezvoltare a unei ontologii determine scope consider reuse define properties define classes consider reuse define properties enumerate terms define properties define constraints consider reuse define constraints create instances define classes enumerate terms define classes create instances define classes create instances Dr. Sabin Buragawww.purl.org/net/busaco metodologie
  • 75. 1. Stabilirea scopului 2. Colectarea cunoștințelor la nivel informal ori semi-formal 3. 4. 5. 6. Rafinarea cerințelor + testarea Implementarea – modelarea propriu-zisă Evaluarea + asigurarea calității Monitorizarea utilizării și a evoluției Dr. Sabin Buragawww.purl.org/net/busaco metodologie (Rector & Horrocks, 2004)
  • 76. Stabilirea scopului cerințe evaluare reutilizare … Dr. Sabin Buragawww.purl.org/net/busaco metodologie
  • 77. Colectarea cunoștințelor la nivel informal ori semi-formal stabilirea termenilor organizarea informală a termenilor parafrazarea și clarificarea termenilor definiții informale ale conceptelor realizarea de diagrame informale Dr. Sabin Buragawww.purl.org/net/busaco metodologie
  • 78. Rafinarea cerințelor + testarea Dr. Sabin Buragawww.purl.org/net/busaco metodologie
  • 79. Implementarea – modelarea propriu-zisă parafrazare și comentare la fiecare fază dezvoltarea unei scheme normalizate și a unui “schelet” de ontologie Dr. Sabin Buragawww.purl.org/net/busaco metodologie implementarea unui prototip (consemnând intențiile) verificarea scalabilității popularea ontologiei – text mining, procesare a limbajului uman, JSON, microdate, RDFa, baze de date,…
  • 80. Evaluarea + asigurarea calității urmărirea scopului inițial Dr. Sabin Buragawww.purl.org/net/busaco metodologie includerea de verificări privind evoluția ontologiei și ajustarea manierei de management al ei proiectarea de teste și “probe” în mod similar testării aplicațiilor software
  • 81. Monitorizarea utilizării și a evoluției (mentenanță) “process not product” Alan Rector, 2004 Dr. Sabin Buragawww.purl.org/net/busaco metodologie
  • 82. Raționamentul lumilor închise vs. deschise lumi deschise (open world reasoning) negația reprezintă contradicție – orice poate fi adevărat până când se poate demonstra că e fals Dr. Sabin Buragawww.purl.org/net/busaco aspecte importante
  • 83. Raționamentul lumilor închise vs. deschise lumi închise (close world reasoning) negația înseamnă esec – orice nu poate fi găsit este fals Dr. Sabin Buragawww.purl.org/net/busaco aspecte importante
  • 84. Raționamentul lumilor închise vs. deschise ontologiile sunt considerate lumi deschise, iar bazele de date lumi închise Dr. Sabin Buragawww.purl.org/net/busaco aspecte importante
  • 85. Knowledge Base vs. Data Base o bază de cunoștințe nu definește un model unic, ci reprezintă un set de constrângeri care pot defini o mulțime de modele posibile Dr. Sabin Buragawww.purl.org/net/busaco aspecte importante
  • 86. Knowledge Base vs. Data Base o bază de cunoștințe nu definește un model unic, ci reprezintă un set de constrângeri care pot defini o mulțime de modele posibile nici o constrângereorice model e posibil cu cât există mai multe constrângeri, cu atât numărul modelelor posibile scade Dr. Sabin Buragawww.purl.org/net/busaco aspecte importante
  • 87. Knowledge Base vs. Data Base o baza de date definește un model unic (Bechhofer, 2004) numele diferite sunt interpretate ca indivizi distincți domeniul e compus numai din indivizii numiți în cadrul bazei de date – modelul lumii inchise extensiile sunt cât mai reduse posibil Dr. Sabin Buragawww.purl.org/net/busaco aspecte importante
  • 88. Knowledge Base vs. Data Base model unic expresivitate redusă – nu există negații/disjuncții nu poate captura informații incomplete non-monoton: adăugarea de noi date nu păstrează adevărul procesul de reasoning (interogare) este facil și rapid Dr. Sabin Buragawww.purl.org/net/busaco aspecte importante
  • 89. Knowledge Base vs. Data Base modele multiple expresivitate ridicată – conectori booleeni, reuniune,... se pot captura/exprima informații incomplete monotonie – adăugarea de noi date păstrează adevărul procesul de reasoning (interogare) este dificil și lent Dr. Sabin Buragawww.purl.org/net/busaco aspecte importante
  • 90. Activitatea de reasoning poate fi realizată automat de un reasoner clasificarea conceptelor rezultă: un arbore – ierarhie strictă, taxonomie sau un digraf aciclic (DAG) – poli-ierarhie, graf conceptual Dr. Sabin Buragawww.purl.org/net/busaco aspecte importante
  • 91. Activitatea de reasoning poate fi realizată automat de un reasoner normalizare separarea conceptelor de bază în arbori disjuncți, arborii având legături între ei via definiții și restricții Dr. Sabin Buragawww.purl.org/net/busaco aspecte importante
  • 92. Exemplu: o ontologie privitoare la animale înainte de clasificare după clasificare arbore de concepte digraf aciclic Dr. Sabin Buragawww.purl.org/net/busaco aspecte importante
  • 93. Dezvoltarea unei ontologii normalizate presupune: 1. 2. 3. 4. 5. Identificarea conceptelor de bază de sine-stătătoare Separarea conceptelor în arbori de concepte Identificarea relațiilor Crearea descrierilor și definițiilor Identificarea modului în care entitățile-cheie trebuie clasificate 6. Utilizarea clasificatorului pentru a genera digraful 7. Verificarea satisfacerii testelor Dr. Sabin Buragawww.purl.org/net/busaco aspecte importante
  • 94. 1. Identificarea conceptelor de bază de sine-stătătoare (cu comentarea celor mai puțin evidente) 2. Separarea conceptelor în arbori de concepte (poate implica specificarea unor proprietăți/concepte auxiliare) 3. Identificarea relațiilor (comentarea acelor relații care nu sunt evidente) 4. Crearea descrierilor și definițiilor (cu oferirea de parafraze pentru fiecare) 5. Identificarea modului în care entitățile-cheie trebuie clasificate (crearea unor teste de regresie) 6. Utilizarea clasificatorului pentru a genera digraful 7. Verificarea satisfacerii testelor Dr. Sabin Buragawww.purl.org/net/busaco Dezvoltarea unei ontologii normalizate presupune:
  • 95. “Trusa” ontologistului cerințe formalisme (construcții logice) ontologii existente resurse de cunoștințe informale convenții și practici instrumente adaptare după Aldo Gangemi (2008) Dr. Sabin Buragawww.purl.org/net/busaco considerații privind modelarea
  • 96. “Trusa” ontologistului Dr. Sabin Buragawww.purl.org/net/busaco considerații privind modelarea cerințe – e.g., “un model ideal de specificare a lumii”  construcții logice: subClassOf, restricții de cardinalitate,… ontologii existente – e.g., DOLCE, FOAF, UMBEL, YAGO etc. resurse de cunoștințe informale: servicii Web, API-uri,… convenții și practici – inclusiv șabloane de proiectare instrumente – editoare, instrumente de reasoning, convertoare, sisteme de stocare etc. (Disco, GATE, Protégé, NeOn Toolkit, FaCT++, Jena, Triplr, Virtuoso,…)
  • 97. Înțelegerea clară a distincțiilor (Franconi, 2003) concept (clasă) vs. individ concept (clasă) vs. proprietate (rol) entitate definită vs. entitate dedusă Dr. Sabin Buragawww.purl.org/net/busaco considerații privind modelarea
  • 98. Clasă (concept) versus instanță (individ) o mulțime de indivizi este una numărabilă, discretă spațiul privitor la concepte e ideal continuu și infinit Dr. Sabin Buragawww.purl.org/net/busaco considerații privind modelarea
  • 99. Clasă (concept) versus instanță (individ) fiecare individ posedă o identitate clară Dr. Sabin Buragawww.purl.org/net/busaco considerații privind modelarea
  • 100. Clasă (concept) versus instanță (individ) dacă două concepte au descrieri echivalente, atunci desemnează același concept descrierile privitoare la indivizi pot fi alterate (pot evolua) Dr. Sabin Buragawww.purl.org/net/busaco considerații privind modelarea
  • 101. Clasă (concept) versus instanță (individ) uzual, actualizările vizând indivizii nu schimbă ierarhia conceptelor Dr. Sabin Buragawww.purl.org/net/busaco considerații privind modelarea
  • 102. Clasă (concept) versus instanță (individ) alegerea “clasă vs. individ” depinde de granularitate Dr. Sabin Buragawww.purl.org/net/busaco considerații privind modelarea
  • 103. Clasă (concept) versus proprietate (rol) nu e ușor de decis dacă o entitate trebuie să fie modelată ca un concept sau drept proprietate Dr. Sabin Buragawww.purl.org/net/busaco considerații privind modelarea
  • 104. Clasă (concept) versus proprietate (rol) nu e ușor de decis dacă o entitate trebuie să fie modelată ca un concept sau drept proprietate Persoana este un concept (clasă) Mama ca și concept nu există dacă nu considerăm ce rol joacă într-o relație parentală (este un concept dependent de o relație) Dr. Sabin Buragawww.purl.org/net/busaco considerații privind modelarea
  • 105. Clasă (concept) versus proprietate (rol) nu e ușor de decis dacă o entitate trebuie să fie modelată ca un concept sau drept proprietate convenție: alegerea de nume neambigue pentru roluri e.g., hasParent, areMama, areGen etc. Dr. Sabin Buragawww.purl.org/net/busaco considerații privind modelarea
  • 106. Fiecărui concept ales i se pot asocia: proprietăți intrinseci caracteristice naturii conceptului proprietăți extrinseci externe – pot să se modifice pe parcurs Dr. Sabin Buragawww.purl.org/net/busaco considerații privind modelarea
  • 107. Fiecărui concept ales i se pot asocia: proprietăți intrinseci caracteristice naturii conceptului exemplu: identitatea unei persoane proprietăți extrinseci externe – pot să se modifice pe parcurs e.g., ocupația unei persoane: student, programator, artist Dr. Sabin Buragawww.purl.org/net/busaco considerații privind modelarea
  • 108. Fiecărui concept ales i se pot asocia: Dr. Sabin Buragawww.purl.org/net/busaco considerații privind modelarea părți, fragmente – în cazul obiectelor structurate/compuse fizice abstracte
  • 109. Fiecărui concept ales i se pot asocia: Dr. Sabin Buragawww.purl.org/net/busaco considerații privind modelarea părți, fragmente – în cazul obiectelor structurate/compuse fizice “studenții dintr-un an”, “componentele unei tablete”, “boabele unui strugure” etc. abstracte “prezentările unei materii”, “subiectele unui blog”,…
  • 110. Raționamentele automate privitoare la indivizi sunt dificil de realizat ontologiile vizează în special clasele ontologii ≠ baze de date Dr. Sabin Buragawww.purl.org/net/busaco considerații privind modelarea
  • 111. O ontologie urmează un ciclu de viață (lifecycle), fiind creată, evaluată, ajustată, exploatată ca și alt artefact software Dr. Sabin Buragawww.purl.org/net/busaco considerații privind modelarea
  • 112. O ontologie urmează un ciclu de viață (lifecycle), fiind creată, evaluată, ajustată, exploatată ca și alt artefact software aspecte de interes: datele tipurile de workflow-uri șabloanele de proiectare (reguli de bună practică) utilizarea propriu-zisă Dr. Sabin Buragawww.purl.org/net/busaco considerații privind modelarea
  • 113. Dr. Sabin Buragawww.purl.org/net/busaco J. Benedict, D. McGuinness, P. Fox (2007)
  • 114. Modelarea unei ontologii privitoare la animale adaptare după Alan Rector Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 115. Intenții și scopuri realizarea unei cărți electronice (e-book) despre animale, oferind informații precum: locul unde trăiesc ce consumă – carnivore, ierbivore, omnivore cât de periculoase pot fi ce anatomie de bază au – e.g., numărul picioarelor,... ce greutate au ... Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 116. Colectarea conceptelor se pot folosi carduri de concepte se lucrează în grupuri mici de persoane se pot atrage experți ai domeniului Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 118. Dog Cat Cow Person Tree Grass Herbivore Male Female Carnivore Plant Animal Fur Child Parent Mother Father Dangerous Pet Domestic animal Farm animal Food animal Fish Goldfish Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz: organizarea conceptelor
  • 119. Extinderea conceptelor gruparea unor concepte și determinarea caracteristicilor comune: Plant, Animal ↦ Living Thing ar putea fi adăugați ulterior și termeni ca Bacteria, Fungi Cat, Dog, Cow, Person ↦ Mammal alți candidați ar putea fi Goat, Sheep, Horse, Lion etc. Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 120. Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz Pentru facilitarea clasificării, colecțiile de subclase trebuie declarate explicit disjuncte exemplificare: Plant disjointWith Animal
  • 121. Alegerea unor axe conceptuale adăugarea de termeni abstracți de exemplu: “Living thing” Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 122. Alegerea unor axe conceptuale identificarea relațiilor de pildă: “eats”, “owns”, “parent of” Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 123. Alegerea unor axe conceptuale identificarea entităților ce pot fi definite (în relație cu altele) e.g., “child”, “parent”, “Mother”, “Father” Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 124. Alegerea unor axe conceptuale numirea explicită a conceptelor utilizarea cunoștințelor anterioare (background knowledge)  axiome Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 126. Stabilirea entităților de sine-stătătoare “lucruri” ce există conform substantivelor lor oameni, animale, edificii, acțiuni, procese,… se utilizează majoritatea substantivelor modificatori (modifiers) “lucruri” ce se pot preschimba în altele se folosesc adjectivele și adverbele Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 127. Reorganizăm conceptele, grupând entitățile care pot fi definite în arbori separați constituirea conceptelor de bază (primitives) Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 129. Living Thing Animal Mammal Cat Dog Cow Person Fish Gold fish Plant Tree Grass Fruit Concept abstract incluzând toate entitățile vii – aici, restricționat la plante și animale. adăugarea comentariilor clarificatoare (parafraze) Dr. Sabin Buragawww.purl.org/net/busaco Self_standing
  • 130. Identificarea constrângerilor privitoare la domeniu (domain) și interval (range) pentru fiecare proprietate: Animal eats Living_thing eats domain: range: Animal Living_thing Person owns Living_thing except Person owns domain: range: Person Living_thing and not Person Living_thing parent_of Living_thing parent_of domain: range: Animal Animal Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 131. Pentru entitățile ce pot fi definite, trebuie comentate și formalizate definițiile acestora în termeni de primitive, relații și alte entități ce pot fi specificate Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 132. Exemplu “A ‘Parent’ is an animal that is the parent of some other animal” – ignore plants for now Parent = Animal and parent_of some Animal Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 133. Exemplu “A ‘Herbivore’ is an animal that eats only plants” NB: All animals eat some living thing Herbivore = Animal and eats only Plant Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 134. Stabilirea proprietăților ce pot apărea la nivel de clasă Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 135. Ce se poate afirma privitor la toți membrii clasei? exemplu: eats All cows eat some plants All cats eat some animals All pigs eat some animals and eat some plants Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 136. Verificarea clasificării “Cows should be Herbivores” Cows are animals and, amongst other things, eat some grass and eat some leafy_plants Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 137. Verificarea clasificării Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz trebuie specificată axioma de închidere (closure axiom) Cows are animals and, amongst other things, eat some plants and eat only plants
  • 138. Verificarea clasificării – aici, folosind Protégé Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 139. Examinarea listei de modificatori identificarea modificatorilor care au valori mutual exclusive Domestication, Risk, Gender, Age precizarea mai precisă a unora Age ↦ Age_group Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 141. Specificarea valorilor (soluția 1) partiții de valori: clase ce partiționează o calitate Dangerousness cu subcalitățile disjuncte Dangerous, Risky, Safe Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 142. Specificarea valorilor (soluția 1) partiții de valori: clase ce partiționează o calitate se poate specifica proprietatea funcțională hasDangerousness : Animal ↦ Dangereousness Dangerous_animal = Animal and hasDangerousness some Dangerous Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 144. Specificarea valorilor (soluția 1) partiții de valori: clase ce partiționeaza o calitate calitatea partițiile de valori Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 145. Partițiile de valori în stilul UML Animal Dangerousness_ Value owl:unionOf Safe_ value Risky_ value Dangerous_ value hasDangerousness someValuesFrom Dangerous Animal Cookie’s Dangerousness hasDangerousness Cookie the Lion Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 146. Specificarea valorilor (soluția 2) valori simbolice: indivizii pot enumera toate valorile unei calități (caracteristici) în acest caz, calitatea specificată este Gender_value, pentru fiecare valoare existând o mulțime de indivizi valorile vor fi diferite, date ca o enumerare: Gender_value = { male, female } Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 147. Specificarea valorilor (soluția 2) valori simbolice: indivizii pot enumera toate valorile unei calități (caracteristici) se definește o proprietate funcțională hasGender : Animal ↦ Gender_value Male_animal = Animal and hasGender is male Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 148. Valorile simbolice – stilul UML Person Gender _value owl:oneOf female hasGender male Man Sabin Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 149. Specificarea valorilor (design pattern) valori distincte exprimate via Disjoint pentru clase sau allDifferent pentru indivizi Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 150. Specificarea valorilor (design pattern) valorile “acoperă” un tip de date Calitate = Part1 or Part2 or Part3 or … or Partn sau Calitate = { v1 , v2 , v3 ,…, vn } proprietățile exprimate sunt deseori funcționale Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 151. Exprimarea rolurilor (proprietăților) apare necesitatea distingerii rolurilor pe care le joacă entitățile în diferite situații Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 152. Exprimarea rolurilor (proprietăților) apare necesitatea distingerii rolurilor pe care le joacă entitățile în diferite situații exemple: “pet” versus “farm animal” “elev” versus “student” versus “profesor” “medic” versus “pacient” Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 153. Exprimarea rolurilor (proprietăților) deseori, calificările trebuie distinse față de roluri e.g., o persoană poate avea calificare de medic, dar joacă rol de pacient Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 154. Exprimarea rolurilor (proprietăților) uzual, rolurile desemnează relații Animal Food_animal Cow Horse Pet_animal Horse Dog Animal Mammal Cow Horse Dog Animal_use_role Food_role Pet_role Food_animal = Animal and has_role some Food_role Pet_animal = Animal and has_role some Pet_role Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 155. Exprimarea rolurilor (proprietăților) situație: Horse plays_role some Food_role toți caii au rol de animale bune de consum o afirmație prea categorică Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 156. Exprimarea rolurilor (proprietăților) soluții: ignorarea problemei într-un anumit context sau înlocuirea lui has_role cu may_have_role se poate specifica Food_Horse = Horse and has_role Food_role Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 157. Observație: anumite entități pot fi deduse pe baza inferențelor – via reasoners (e.g., FaCT++, HermiT, Pellet) Grass and Leafy_plants are both kinds of Plant revezi exemplele din cursul anterior Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 158. Comentarea și parafrazarea tuturor claselor din cadrul ontologiei foarte util pentru alte persoane care vor folosi și/sau vor extinde ontologia Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 159. Oferirea unui set de clase de probă și a unui cadru de testare a ontologiei Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz clase de probă = clase suplimentare care pot să fie sau nu satisfiabile sau clasificabile într-un context particular – “excepțiile de la regulă” în ontologia finală, vor fi eliminate
  • 160. Living Thing Body Part eats has part Arm Plant eats Animal Leg eats Herbivore Grass Tree Person Carnivore Cow Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz: privire de ansamblu
  • 161. Modelarea unui web privitor la un muzeu de artă eronată! adaptare după Enrico Franconi Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 162. Dr. Sabin Buragawww.purl.org/net/busaco TBox redundant + ciclic nu se pot detecta ușor inconsistențele
  • 163. La nivel de ABox se specifică: Dali este pictor, Pescuit de ton este tablou, tabloul Pescuit de ton al lui Dali se găsește în Madrid tabloul Pescuit de ton, pictat de Dali în 1966, se găsește în Madrid etc. date specificate redundant: Painter (dali), PAINTING (dali, tuna-fishing), Painting (tuna-fishing), AUTHOR (tuna-fishing, dali),... Dr. Sabin Buragawww.purl.org/net/busaco studiu de caz
  • 164. Etape importante privind crearea unei ontologii: initial feasibility study & requirement specification knowledge acquisition conceptualization formalization evaluation refinement Dr. Sabin Buragawww.purl.org/net/busaco concluzii
  • 165. Adoptarea unei/unor metodologii exemplu de referință: NeOn methodology (A. Gómez-Pérez et al., 2010) propune diverse scenarii, adaptate scopului și domeniului modelat http://www.neon-project.org/nw/NeOn_Book Dr. Sabin Buragawww.purl.org/net/busaco concluzii
  • 166. Dezvoltarea unei/unor ontologii trebuie să reprezinte doar primul pas un model conceptual nu are sens dacă nu e utilizat în practică Dr. Sabin Buragawww.purl.org/net/busaco concluzii
  • 167. oferă o descriere a unui domeniu (web) aplicații software servicii Web declară o manieră de structurare baze de date problem-solving methods baze de cunoștințe recomandare, filtrare, analiză,… adaptare după Alan Rector et al., 2005 Dr. Sabin Buragawww.purl.org/net/busaco ontologii
  • 168. knowledge engineering metodologii de proiectare a ontologiilor studii de caz Dr. Sabin Buragawww.purl.org/net/busaco rezumat
  • 169. Dr. Sabin Buragawww.purl.org/net/busaco episodul viitor: inginerie ontologică (II) alinierea ontologiilor & șabloane de proiectare