106
Dr. Sabin Buraga http://www.purl.org/net/busaco Semantic Web <?xml version=“1.0” ?> <curs desc=“…” /> Web semantic Dr. SabinCorneliu Buraga Facultatea de Informatica Universitatea “A.I.Cuza” – Iasi, Romania http://www.infoiasi.ro/~busaco/

Web08 Semantic Web: Inginerie Ontologica (I)

Embed Size (px)

DESCRIPTION

Aspecte referitoare la ingineria ontologica: modelarea si managementul cunostintelor, metodologii, reasoning etc.

Citation preview

Page 1: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Web semantic

Dr. Sabin­Corneliu BuragaFacultatea de Informatica

Universitatea “A.I.Cuza” – Iasi, Romania

http://www.infoiasi.ro/~busaco/

Page 2: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Inginerie ontologica

Page 3: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

“It is not the strongest of the species that survive, nor the most intelligent, 

but the ones most responsive to change.”

Charles Darwin

Page 4: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Folosind ontologiile, putemmodela cunostinteleknowledge modeling

Apare necesitatea managementului acestoraknowledge management

intro

Page 5: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Aspecte privind managementul cunostintelor(Shadbolt & O’Hara, 2004):

achizitia (acquiring)modelarea (modelling)reutilizarea (reusing)preluarea (retrieving)publicarea (publishing)mentinerea (maintaining)

intro

Page 6: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Achizitia (acquiring)aplicatiile Web trebuie sa preia cunostinte,

nu date brute, fara semnificatiee.g., texte (formatate) preluate din formulare

utilizatorii obisnuiti nu vor marca datelein XML, RDF sau OWL

conceptele trebuie stocate ca informatii structurate

managementul cunostintelor

Page 7: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Modelarea (modelling)ideal, fiecare fragment de informatie trebuie modelat

riguros la nivel semanticin practica, acest aspect este aproape imposibil

vezi dificultatile de dezambiguizare a limbajului natural

pasi de urmat: identificarea claselor,definirea proprietatilor, completarea datelor despreindivizi (input explicit, tagging, microformate etc.)

managementul cunostintelor

Page 8: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Reutilizarea (reusing)fiecare entitate trebuie definita doar o singura data

informatiile trebuie sa poata fi accesatela nivel global (eventual, via politici de acces)

facilitarea reutilizarii este data de usurinta utilizariisistemului (e.g., sintaxa simpla, asistenti digitali, 

flexibilitate etc.)

managementul cunostintelor

Page 9: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Preluarea (retrieving)mecanisme de interogare si filtrare a cunostintelor

oferirea de suport pentru efectuarea de agregari, procesarisi extrageri de informatii, in maniera (semi)automata,pe baza meta‐datelor si relatiilor dintre entitati

exemplu: extragerea intereselor comuneale membrilor unui grup dintr‐o retea sociala

managementul cunostintelor

Page 10: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Publicarea (publishing)cunostintele trebuie sa poata fi publicate

in formate standardizate, care sa incurajeze refolosirea in alte contexte

accesul la cunostinte are in vedereatit utilizatorii umani, cit si aplicatiile

managementul cunostintelor

Page 11: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Publicarea (publishing)cunostintele trebuie sa fie usor redate, 

conform necesitatilor si preferintelor utilizatorilor

depozitele de cunostinte trebuie sa ofere exportin formate consacrate (RDF, OWL)

managementul cunostintelor

Page 12: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Mentinerea (maintaining)necesitatea existentei unor servicii care sa asigure

consistenta cunostintelor

un suport manual poate fi oferit de wiki‐uri

serviciile automate se pot baza pe reasoners

managementul cunostintelor

Page 13: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Ontologiile pot fi considerate dreptlego‐uri conceptuale (Conceptual Lego)

managementul cunostintelor

Masterandurm(ar)indcursul

“Semantic Web”

Agent Web

Adaptaredupa

Horrocks&

 Rector, 2004

Page 14: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Ontologiile pot proveni din sau pot fi salvate sub forma de:scheme XML,

scheme de baze de date,diagrame UML,spreadsheets,alte specificatii

managementul cunostintelor

Page 15: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Probleme: Crearea de ontologii din diverse surseManagementul versiunilorRealizarea colectiilor de ontologii (asocieri, comparatii, reconcilieri, validari, conversii,...)

Obtinerea, organizarea & vizualizarea domeniului de cunoastere inainte si in timpul crearii unei ontologii

Utilizarea ontologiilor in functie de context

managementul cunostintelor

Page 16: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Existenta unor metodologii de ingineriea cunostintelor

(knowledge engineering methodologies)procesul prin care experti ai domeniului si ingineri

vor constitui o baza de cunostinte, specificata de un limbajde reprezentare a cunostintelor side o suita de instrumente aditionale

procesele, limbajele si instrumentele care pot fi folositese bazeaza pe diverse paradigme de reprezentare

a cunostintelor

necesitate

Page 17: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Traditionale din ingineria software clasica(knowledge engineering) 

CommonKADS (Scheriber et al., 2000)

Agile (mai flexibile & facile)eXtreme ProgrammingXP.K (Knublauch, 2002), RapidOWL (Auer, 2005)

abordari

Page 18: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Dezvoltarea unei ontologii implicapartajarea de informatii si colaborare

“Knowledge is fractal” (Alan Rector, 2004)ontologiile prezinta aceeasi structura la fiecare nivel

de granularitate (detaliu)

Atentie la dezvoltarile exponentiale ale ontologiei!fenomenul “exploding bicycle”

observatii

Page 19: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Complicatii:necunoasterea a­priori a dimensiunii ontologiei

numarul persoanelor implicate

utilizarea ontologiei de catre utilizatoricare nu sunt experti

natural laziness☺

...

inginerie

Page 20: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Conflicte privitoare la intuitii

intuitiile sunt dificil de formalizatexpertii in domeniu sunt condusi de obisnuinte si practica

(sabloane de proiectare) prototipuri & generalizari

logicienii sunt motivati de logica si computabilitatedefinitii & operatori universali

inginerie: dificultati

Page 21: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Transparenta & predictibilitateversus rigoare & completitudine

Utilizatorii fara experienta

inginerie: dificultati

Page 22: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Studiu de caz – Peter Morville, 2007alergia la alune (peanut allergy):Acces urgent la informatii exacte & utileCredibilitatea surselor este esentialaOrice cautare pe Google esueaza

(popularitate ≠ autoritate in domeniu)Cunostintele trebuie sa poate fi regasite pe Web

(necesita expertiza in domeniu + abilitati avansate de cautare via motoare)

Context: Information Architecture (IA)

inginerie: dificultati

Page 23: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

ModelareaSemantica (meaning): corectitudinea clasificarilor

& extragerii cunostintelorIndexarea: desfasurarea activitatilor de 

descoperire, cautare si gasire a cunostintelorUtilizarea: introducerea datelor, luarea de decizii,...

Achizitia: capt(ur)area cunoasterii

inginerie: dificultati

Page 24: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Asigurarea calitatii & managementul modificarilorCalitatea:

stabilirea de criterii privitoare la ceea ce este “corect”

Evolutia: luarea in calcul a schimbarilor viitoare ale ontologiei

Testarea: controlul modificarilor, asigurarea calitatii (QA)

inginerie: dificultati

Page 25: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Privitoare la persoanele implicateAparitia confuziilor privitoare la termeni

si la utilizarea ontologiei

Persoane provenind din medii eterogenefilosofie, interactiune om‐calculator, inginerie software, 

lingvistica, stiinte cognitive,...

Recurgerea la sintaxe diferite

inginerie: dificultati

Page 26: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Gasirea dificila unor criterii formale(consistenta, completitudine, concizie,...)

inginerie: realitati

Page 27: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Generarea manuala a ontologiilor

taxonomii navigabile: Open Directory, Yahoo!,...

folksonomii

ontologii publice – de exemplu, Gene Ontology

ontologii interne – e.g., Daimler‐Chrysler

inginerie: realitati

Page 28: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Ontologiile generale (top­level) nu sunt cu adevaratutile in practica

inginerie: realitati

Page 29: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Apar probleme teoretice/practice privind:asigurarea coerentei, facilitarea procesarii, 

folosirea surselor de date multiple

inginerie: realitati

Page 30: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Diferite vocabulare in vigoare

clasa ≈ concept ≈ categorie ≈ tip

instanta ≈ individ

entitate ≈ obiect (clasa/individ)

proprietate ≈ slot ≈ relatie ≈ atribut ≈ ≈ rol ≈ legatura semantica

inginerie: realitati

Page 31: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Diferite sintaxe existente:sintaxa abstracta,

N3, XML/RDF, 

logica de ordin I, formatul Protégé, 

limbaj natural (parafraza),...

inginerie: realitati

Page 32: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Stabilirea domeniului de cunoastereOrganizarea ontologiei“Umplerea” ontologieiVerificarea ontologieiPublicarea ontologiei

metodologie (Noy & McGuinness, 2003)

Page 33: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Stabilirea domeniului de cunoastere

asamblarea resurselor de informatie si expertizaa ceea ce vor deveni concepte (things)

ale domeniului de interes

se vor asigura consensul si consistenta

metodologie

Page 34: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Organizarea ontologieiproiectarea pe ansamblu a structurii conceptuale:

Identificarea principalelor concepte concrete si a proprietatilor acestora

Identificarea relatiilor dintre concepteCrearea conceptelor abstracteIdentificarea instantelor

Referentierea/includerea altor ontologii...

metodologie

Page 35: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

“Umplerea” ontologieiadaugarea conceptelor

inserarea relatiilor/constringeriloradaugarea indivizilor

…la nivelul de detaliere necesarpentru realizarea scopurilor ontologiei

metodologie

Page 36: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Verificarea ontologiei

reconcilierea inconsistentelor dintre elemente,la nivel sintactic, logic & semantic

verificarea consistentei poate implica o clasificareautomata, rezultind noi concepte bazate

pe proprietati individuale sau relatii intre clase

metodologie

Page 37: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Publicarea ontologiei

verificarea finala de catre experti ai domeniului

publicarea in cadrul comunitatii de practica

metodologie

Page 38: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

metodologie

Procesul ideal de dezvoltare a unei ontologii:

determinescope

considerreuse

enumerateterms

defineclasses

defineproperties

defineconstraints

createinstances

Page 39: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

metodologie

Procesul realist de dezvoltare a unei ontologii:determine

scopeconsider

reuseenumerate

termsdefine

classesconsider

reuseenumerate

termsdefine

classes

defineproperties

createinstances

defineclasses

defineproperties

defineconstraints

createinstances

defineclasses

considerreuse

defineproperties

defineconstraints

createinstances

Page 40: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Stabilirea scopuluiColectarea cunostintelor

(la nivel informal ori semi‐formal)Rafinarea cerintelor & testarea

Implementarea (modelarea propriu‐zisa)Evaluarea & asigurarea calitatii

Monitorizarea utilizarii si a evolutiei

metodologie (Rector & Horrocks, 2004)

Page 41: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Stabilirea scopuluicerinte, evaluare,reutilizare,

metodologie

Page 42: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Colectarea cunostintelorla nivel informal ori semi‐formal

Stabilirea termenilorOrganizarea informala a termenilorParafrazarea si clarificarea termenilor

definitii informale ale conceptelorRealizarea de diagrame informale

Rafinarea cerintelor & testarea

metodologie

Page 43: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Implementarea – modelarea propriu‐zisaParafrazare & comentare la fiecare fazaDezvoltarea unei scheme normalizate si

a unui “schelet” de ontologieImplementarea unui prototip(consemnind intentiile) Verificarea scalabilitatii

Popularea ontologiei – text mining,procesare a limbajului uman, microformate,XHTML/XML structurat (semantic) etc.

metodologie

Page 44: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Evaluarea si asigurarea calitatiiUrmarirea scopului initial

Includerea de verificari privind evolutia ontologieisi ajustarea manierei de management al ei

Proiectarea de teste si “probe”in mod similar testarii aplicatiilor software

metodologie

Page 45: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Monitorizarea utilizarii si a evolutiei(mentenanta)

“Process not product” (Alan Rector, 2004)

metodologie

Page 46: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Rationamentul lumilor inchise vs. deschiselumi deschise (open world reasoning)

Negatia reprezinta contradictie (orice poate fi adevaratpina cind se poate demonstra ca e fals)

Se rationeaza in maniera:“orice alta lume poate fi consistenta cu aceasta”

lumi inchise (close world reasoning)Negatia inseamna esec (orice nu poate fi gasit este fals)

“Totul este valabil numai in aceasta lume”

aspecte importante

Page 47: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Rationamentul lumilor inchise vs. deschise

ontologiile sunt considerate lumi deschise,iar bazele de date lumi inchise

aspecte importante

Page 48: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Knowledge Base vs. Data Base

O baza de cunostinte (knowledge base) nu definesteun model unic, ci reprezinta un set de constringericare pot defini o multime de modele posibile

nici o constringere orice model e posibil

cu cit exista mai multe constringeri, cu atit numarul modelelor posibile scade

aspecte importante

Page 49: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Knowledge Base vs. Data Base

O baza de date defineste un model unic

numele diferite sunt interpretate ca indivizi distincti

domeniul e compus numai din indivizii numiti in cadrulbazei de date (modelul lumii inchise)

extensiile sunt cit mai reduse posibil

aspecte importante

Page 50: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Knowledge Base vs. Data BaseModelul unic (Bechhofer, 2004):

expresivitate redusa – nu exista negatii/disjunctii

nu poate captura informatii incomplete

non‐monoton – adaugarea de informatiinu pastreaza adevarul

procesul de reasoning (interogare) este facil si rapid 

aspecte importante

Page 51: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Knowledge Base vs. Data BaseModelele multiple (Bechhofer, 2004):

expresivitate ridicata – conectori booleeni, reuniune,...

poate captura/exprima informatii incomplete

monotonic – adaugarea de informatii pastreaza adevarul

procesul de reasoning (interogare) este dificil si lent

aspecte importante

Page 52: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Activitatea de reasoningpoate fi realizata automat de un reasoner

clasificarea conceptelor – rezultind:un arbore (ierarhie stricta, taxonomie)

un digraf aciclic – DAG (poli‐ierarhie, graf conceptual) 

normalizare = separarea conceptelor de bazain arbori disjuncti, arborii avind legaturi intre ei

via definitii si restrictii

aspecte importante

Page 53: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Exemplu: o ontologie privitoare la animale

aspecte importante

Inainte de clasificareArbore de concepte

Dupa clasificareDAG

Page 54: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Dezvoltarea unei ontologii normalizate presupune:Identificarea conceptelor de baza de sine‐statoareSepararea conceptelor in arbori de concepteIdentificarea relatiilorCrearea descrierilor & definitiilorIdentificareamodului in care elementele‐cheietrebuie clasificate

Utilizarea clasificatorului pentru a forma DAG‐ulVerificarea satisfacerii testelor

aspecte importante

Page 55: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Dezvoltarea unei ontologii normalizate presupune:Identificarea conceptelor de baza de sine‐statoare(cu comentarea celor mai putin evidente)

Separarea conceptelor in arbori de concepte(poate implica specific. unor proprietati/concepte auxiliare)

Identificarea relatiilor(comentarea acelor relatii care nu sunt evidente)

Crearea descrierilor & definitiilor(cu oferirea de parafraze pentru fiecare)

Identificarea modului in care elementele‐cheie trebuie clasificate(crearea unor teste de regresie)

Utilizarea clasificatorului pentru a forma DAG‐ulVerificarea satisfacerii testelor

aspecte importante

Page 56: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Modelarea unei ontologii privitoare la animale

adaptare dupa (Rector, 2004)

studiu de caz

Page 57: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Intentii & scopuri:realizarea unui index al unei carti despre animale,

oferind informatii precum: locul unde traiesc

ce consuma (carnivore, ierbivore, omnivore)cit de periculoase pot fi

ce anatomie de baza au – e.g., numarul picioarelor,...ce greutate au

...

studiu de caz

Page 58: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Colectarea conceptelor:se pot folosi carduri de concepte

se lucreaza in grupuri mici de persoane

se pot atrage experti ai domeniului

studiu de caz

Page 59: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

studiu de caz

DogCatCowPersonTreeGrassHerbivoreMaleFemale

DangerousPetDomestic animalFarm animalFood animalFishGoldfish

CarnivorePlantAnimalFurChildParentMotherFather Clase

posibile

Page 60: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

studiu de caz: organizarea conceptelor

DogCatCowPersonTreeGrassHerbivoreMaleFemale

DangerousPetDomestic animal

Farm animalFood animalFishGoldfish

CarnivorePlantAnimalFurChildParentMotherFather

Page 61: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Extinderea conceptelorgruparea unor concepte

si determinarea caracteristicilor comune:Plant, Animal↦ Living Thing 

ar putea fi adaugati ulterior si termeni ca Bacteria, Fungi,…Cat, Dog, Cow, Person↦ Mammal

alti candidati ar putea fi Goat, Sheep, Horseetc.

studiu de caz

Page 62: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Pentru facilitarea clasificarii, colectiile de subclasetrebuie declarate explicit disjuncte

Plant disjointWith Animal

studiu de caz

Page 63: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Alegerea unor axe conceptualeAdaugarea de termeni abstracti

De exemplu: “Living thing”Identificarea relatiilor

De exemplu: “eats”, “owns”, “parent of”Identificarea entitatilor ce pot fi definiteE.g., “child”, “parent”, “Mother”, “Father”

Numirea explicita a conceptelorUtilizarea cunostintelor anterioare(background knowledge) – axiome

studiu de caz

Page 64: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

studiu de cazLiving Thing

AnimalMammal

CatDogCowPerson

FishGoldfish

PlantTreeGrassFruit

ModifiersDomestic

PetFarmed

FoodWildHealth

healthysick

GenderMaleFemale

AgeAdultChild

Relationseatsownsparent‐of…

DefinablesCarnivoreHerbivoreChildParentMotherFatherFood Animal

Page 65: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Stabilirea entitatilor de sine‐statatoare:

“Lucruri” ce exista conform substantivelor lorOameni, animale, case, actiuni, procese,…Se utilizeazamajoritatea substantivelor

Modificatori (modifiers)“Lucruri” ce se pot preschimba in alteleSe folosesc adjectivele si adverbele

studiu de caz

Page 66: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Reorganizam conceptele, grupind entitatilecare pot fi definite in arbori separati

constituirea conceptelor de baza (primitives)

studiu de caz

Page 67: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

studiu de cazSelf_standing

Living ThingAnimal

MammalCatDogCowPerson

FishGoldfish

PlantTreeGrassFruit

ModifiersDomestication

DomesticWild

UseFoodPet

RiskDangerousSafe

GenderMaleFemale

AgeAdultChild

Relationseatsownsparent‐of…

DefinablesCarnivoreHerbivoreChildParentMotherFatherFood Animal

Page 68: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

studiu de cazSelf_standing

Living ThingAnimal

MammalCatDogCowPerson

FishGoldfish

PlantTreeGrassFruit

Concept abstract incluzind toate entitatile vii 

– restrictionat la plante si animale in acest moment

Adaugarea comentariilorclarificatoare (parafraze)

Page 69: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Identificarea constringerilor privitoare la domeniu(domain) si interval (range) pentru fiecare proprietate:Animal eats Living_thing

eats domain: Animal range: Living_thing

Person owns Living_thing except Personowns domain:  Person

range:     Living_thing and not PersonLiving_thing parent_of Living_thing

parent_of domain:  Animalrange:    Animal

studiu de caz

Page 70: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Pentru entitatile ce pot fi definite trebuie comentate siformalizate definitiile acestora in termeni de primitive,

relatii si alte entitati ce pot fi definite

studiu de caz

Page 71: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Exemplul 1: “A ‘Parent’ is an animal that is the parent of some other animal” (Ignore plants for now)

Parent =  Animal and parent_of some Animal

Exemplul 2: “A ‘Herbivore’ is an animal that eatsonly plants” (NB: All animals eat some living thing)

Herbivore = Animal and eats only Plant

studiu de caz

Page 72: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Stabilirea proprietatilor ce pot apareala nivel de clasa

Ce se poate afirma privitor la totimembrii clasei?

exemplu: eats All cows eat some plantsAll cats eat some animals

All pigs eat some animals and eat some plants

studiu de caz

Page 73: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Verificarea clasificarii

“Cows should be Herbivores”

Cows are animals and, amongst other things,eat some grass and eat some leafy_plants

studiu de caz

Page 74: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Verificarea clasificarii

Trebuie specificata axioma de inchidere (closure axiom)

Cows are animals and, amongst other things,eat some plants andeat only plants

studiu de caz

Page 75: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Verificarea clasificarii (aici, in Protégé):

studiu de caz

Page 76: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Examinarea listei de modificatori

identificarea modificatorilorcare au valori mutual exclusiveDomestication, Risk, Gender, Age

precizarea mai precisa a unoraAge↦ Age_group

studiu de caz

Page 77: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Noua lista de modificatori

studiu de cazModifiers

DomesticationDomesticWildFeral

RiskDangerousRiskySafe

GenderMaleFemale

AgeInfantToddlerChildAdultElderly

Page 78: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Specificarea valorilor (solutia 1)partitii de valori: clase care partitioneaza o calitate

Dangerousness cu sub‐calitatile disjuncteDangerous, Risky, Safe

Se poate specifica proprietatea functionalahasDangerousness : Animal Dangereousness

Dangerous_animal = Animal and hasDangerousness some Dangerous

studiu de caz

Page 79: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

studiu de caz

DangerousRisky

Safe

Leo’sDanger

Dangerousanimal

Leo theLion

hasDangerousnesssomeValuesFrom

Dangerousness

AnimalDiagrama partitiilor de valori

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

Page 80: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Specificarea valorilor (solutia 1)partitii de valori: clase care partitioneaza o calitate

studiu de caz

calitatea

partitiile de valori

Page 81: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

studiu de caz

Dangerousness_Value

Safe_value

Risky_value

Dangerous_value

Animal

DangerousAnimal

Leo theLion

Leo’sDangerousness

owl:unionOf

hasDangerousness

hasDangerousnesssomeValuesFrom

Partitiile de valori in stilul UML

Page 82: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Specificarea valorilor (solutia 2)valori simbolice: indivizii pot enumeratoate valorile unei calitati (caracteristici)

calitatea specificata este Gender_value,pentru fiecare valoare existind o multime de indivizi

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

se specifica o proprietate functionalahasGender : Animal Gender_value

Male_animal = Animal and hasGender is male

studiu de caz

Page 83: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

studiu de caz

Gender_value

Person

Man

Andrei

owl:oneOf

hasGender

female male

Valorile simbolice – stilul UML

Page 84: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Principii pentru specificarea valorilor(design pattern):

Valori distincte exprimate via Disjoint pentru clase sau allDifferent pentru indivizi

Valorile “acopera” un tip de date Calitate = Part1 or Part2 or Part3 or… or PartnCalitate = {v1 , v2 , v3 ,…, vn}

Proprietatile exprimate sunt deseori functionale

studiu de caz

Page 85: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Exprimarea rolurilor (proprietatilor)apare necesitatea distingerii rolurilor

pe care le joaca entitatile in diferite situatii

Exemple: “pet” vs. “farm animal”,“profesor” vs. “student”, “medic” vs. “pacient”

Deseori, calificarile trebuie distinse fata de rolurie.g., o persoana poate avea calificare de medic,

dar joaca rol de pacient

studiu de caz

Page 86: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Exprimarea rolurilor (proprietatilor)uzual, rolurile desemneaza relatii

studiu de caz

AnimalFood_animal

CowHorse

Pet_animalHorseDog

AnimalMammal

CowHorseDog

Animal_use_roleFood_rolePet_role

Food_animal = Animal and has_rolesome Food_role

Pet_animal = Animal and has_rolesome Pet_role

Page 87: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Exprimarea rolurilor (proprietatilor)

Situatie: Horse plays_role some Food_roletoti caii joaca rol de animale bune de consum

o afirmatie prea categorica

studiu de caz

Page 88: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Observatie:anumite entitati pot fi deduse pe baza inferentei

– via reasoners (e.g., Pellet)

Grass and Leafy_plants are both kinds of Plant

studiu de caz

Page 89: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Exprimarea rolurilor (proprietatilor)

Solutii:ignorarea problemei intr‐un anumit contextinlocuirea lui has_role cu may_have_role

se poate specificaFood_Horse = Horse and has_role Food_role

studiu de caz

Page 90: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Comentarea & parafrazarea tuturor claselordin cadrul ontologiei

foarte util pentru alte persoane care vor utilizasi/sau extinde ontologia

studiu de caz

Page 91: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Oferirea unui set de clase de proba sia unui cadru de testare a ontologiei

Clase de proba = clase suplimentare care pot sa fie sau nu satisfiabile sau clasificabile intr‐un context 

particular (“exceptiile de la regula”)in ontologia finala, vor fi eliminate

studiu de caz

Page 92: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

studiu de caz: privire de ansamblu

Living Thing

Grass

Animal

Plant

Tree

Body Part

Arm

Leg

Person

CowCarnivore

Herbivoreeats

eats

eats

has part

Page 93: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Modelarea unui web privitor la un muzeu de arta

adaptare dupa (Enrico Franconi, 2003)

studiu de caz

Page 94: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Page 95: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Considerarea – eronata – a unui concept ca fiind rol

Painter subClassOf only PAINTING.Painting

Painting subClassOf only AUTHOR.Painter

PaintEvent subClassOfintersectionOf (some WHO.Painter, some WHAT.Painting)

studiu de caz

Page 96: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Acest TBox este redundant

Nu se pot detecta usor inconsistentele

TBox‐ul este ciclic

studiu de caz

Page 97: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

La nivel de ABox se specifica:Tabloul Pescuit de ton al lui Dali se gaseste in Madrid

Tabloul Pescuit de ton, pictat de Dali in 1966,se gaseste in Madrid

Redundanta:Painter (dali), PAINTING (dali, tuna-fishing),

Painting (tuna-fishing), AUTHOR (tuna-fishing, dali) etc.

studiu de caz

Page 98: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Aspecte de interes (Aldo Gangemi, 2008):cerinte – e.g., “doresc sa urmez masterul ideal”

contructii logice: subClassOf, restrictii de cardinalitate,…ontologii existente – e.g., FOAF, BibTeX, DOLCE, OpenCycresurse de cunostinte informale: CiteSeer, Open Directory

conventii & practici, inclusiv sabloane de proiectareinstrumente – editoare, instrumente de reasoning, 

convertoare etc. (Protégé, NeON Toolkit, FaCT++, Pellet, Jena, Virtuoso, Semantic MediaWiki,…)

de retinut

Page 99: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Intelegerea clara a distinctiilor (Franconi, 2003):

concept (clasa) vs. individ

concept (clasa) vs. proprietate (rol)

entitate definita vs. entitate dedusa

de retinut

Page 100: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Clasa (concept) versus instanta (individ)O multime de indivizi este una numarabila, discretaSpatiul privitor la concepte e ideal continuu si infinit

Fiecare individ poseda o identitate claraDaca 2 concepte au descrieri echivalente, 

atunci desemneaza acelasi conceptDescrierile privitoare la indivizi pot fi alterate

Actualizarile privitoare la indivizi, uzual, nu schimbaierarhia conceptelor

Alegerea “clasa vs. individ” depinde de granularitate

de retinut

Page 101: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Nu e usor de decis daca o entitate trebuie sa fie modelataca si concept sau drept rol

Persoana este un concept (clasa)Mama ca si concept nu exista daca nu consideram

ce rol joaca intr‐o relatie parentala(este un concept dependent de o relatie)

conventie: alegerea de nume neambigue pentru rolurie.g., hasParent, areMama, areGen etc.

de retinut

Page 102: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Fiecarui concept ales i se pot asocia:proprietati intrinseci – caracteristice naturii conceptului

proprietati extrinseci – externe, pot sa se modifice in timp

parti, fragmente – in cazul obiectelor structurate/compusepot fi fizice (“studentii dintr­o grupa”, “componentele unui

calculator”, “boabele unui strugure”) sau abstracte(“prezentarile unui curs”, “subiectele evocate de artist”,…)

de retinut

Page 103: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Rationamentele automate privitoare la indivizisunt dificil de realizat

ontologiile vizeaza in special claseleontologii ≠ baze de date

a se consulta siwww.co­ode.org

de retinut

Page 104: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Ontologiile reprezinta artefacte avind o structura specifica(lingvistica, ierarhica, logica)

Ontologiile vizeaza uzual atit domeniul de cunoastere,cit si activitatile desfasurate specifice acelui domeniu

Ontologia urmeaza un ciclu de viata (lifecycle), fiind creata, evaluata, ajustata, exploatata ca si alt artefact softwareaspecte de interes: datele, tipurile deworkflow‐uri,sabloanele de proiectare, utilizarea propriu‐zisa

de retinut

Page 105: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

Rezumat

Knowledge engineeringMetodologii de proiectare a ontologiilor

Page 106: Web08 Semantic Web: Inginerie Ontologica (I)

Dr. Sabin Buraga http://www.purl.org/net/busaco

Semantic Web <?xml version=“1.0” ?><curs desc=“…” />

?