nicola leone e francesco ricca dipartimento di matematica università della calabria {leone,...
TRANSCRIPT
![Page 1: Nicola Leone e Francesco Ricca Dipartimento di Matematica Università della Calabria {leone, ricca}@mat.unical.it Nicola Leone e Francesco Ricca Dipartimento](https://reader031.vdocumenti.com/reader031/viewer/2022020105/5542eb58497959361e8c41de/html5/thumbnails/1.jpg)
Nicola Leone e Francesco Ricca
Dipartimento di MatematicaUniversità della Calabria{leone, ricca}@mat.unical.it
Nicola Leone e Francesco Ricca
Dipartimento di MatematicaUniversità della Calabria{leone, ricca}@mat.unical.it
UNIVERSITÀDELLACALABRIA
Dipartimento di MATEMATICA
OntoDLV: An Object-Oriented Disjunctive Logic Programming
System
OntoDLV: An Object-Oriented Disjunctive Logic Programming
System
![Page 2: Nicola Leone e Francesco Ricca Dipartimento di Matematica Università della Calabria {leone, ricca}@mat.unical.it Nicola Leone e Francesco Ricca Dipartimento](https://reader031.vdocumenti.com/reader031/viewer/2022020105/5542eb58497959361e8c41de/html5/thumbnails/2.jpg)
SommarioSommario
La Programmazione Logia Disgiuntiva
Motivazioni Il Linguaggio OntoDLP Il Sistema OntoDLV Conclusioni
La Programmazione Logia Disgiuntiva
Motivazioni Il Linguaggio OntoDLP Il Sistema OntoDLV Conclusioni
![Page 3: Nicola Leone e Francesco Ricca Dipartimento di Matematica Università della Calabria {leone, ricca}@mat.unical.it Nicola Leone e Francesco Ricca Dipartimento](https://reader031.vdocumenti.com/reader031/viewer/2022020105/5542eb58497959361e8c41de/html5/thumbnails/3.jpg)
La Programmazione Logica Disgiuntiva (PLD)
La Programmazione Logica Disgiuntiva (PLD)
Semplice e potente formalismo di KR&R Answer Set Programming (ASP) Alto potere espressivo ( )
Solide implementazioni DLV, GnT/Smodels, Cmodels…
Utilizzato in diversi domini applicativi: IA (pianificazione, diagnosi, ecc) Information Integration Information Extraction Text Classification …
Semplice e potente formalismo di KR&R Answer Set Programming (ASP) Alto potere espressivo ( )
Solide implementazioni DLV, GnT/Smodels, Cmodels…
Utilizzato in diversi domini applicativi: IA (pianificazione, diagnosi, ecc) Information Integration Information Extraction Text Classification …
2P /2
P
![Page 4: Nicola Leone e Francesco Ricca Dipartimento di Matematica Università della Calabria {leone, ricca}@mat.unical.it Nicola Leone e Francesco Ricca Dipartimento](https://reader031.vdocumenti.com/reader031/viewer/2022020105/5542eb58497959361e8c41de/html5/thumbnails/4.jpg)
MotivazioniMotivazioni La DLP è uno strumento potente… I sistemi consentono di risolvere
problemi complessi Ma: Le recenti applicazioni ne hanno
evidenziato alcuni limiti nel linguaggio e nei sistemi La DLP necessita di costrutti di alto livello Classi, oggetti, tassonomie… I sistemi DLP non sono corredati da
strumenti di sviluppo (e.s. Ambienti di sviluppo grafici)
La DLP è uno strumento potente… I sistemi consentono di risolvere
problemi complessi Ma: Le recenti applicazioni ne hanno
evidenziato alcuni limiti nel linguaggio e nei sistemi La DLP necessita di costrutti di alto livello Classi, oggetti, tassonomie… I sistemi DLP non sono corredati da
strumenti di sviluppo (e.s. Ambienti di sviluppo grafici)
![Page 5: Nicola Leone e Francesco Ricca Dipartimento di Matematica Università della Calabria {leone, ricca}@mat.unical.it Nicola Leone e Francesco Ricca Dipartimento](https://reader031.vdocumenti.com/reader031/viewer/2022020105/5542eb58497959361e8c41de/html5/thumbnails/5.jpg)
OntoDLP…DLP con:OntoDLP…DLP con: Costrutti orientati agli oggetti
Identità degli Oggetti, Classi, Ereditarietà (singola e multipla), Classi e Relazioni Derivate
Controlli di consistenza Assiomi, Tipizzazione Forte
Programmazione Modulare Moduli di ragionamento
Estensioni Sintattiche Termini complessi (anche ricorsivi), notazione
non-posizionale, etc.
Costrutti orientati agli oggetti Identità degli Oggetti, Classi, Ereditarietà
(singola e multipla), Classi e Relazioni Derivate
Controlli di consistenza Assiomi, Tipizzazione Forte
Programmazione Modulare Moduli di ragionamento
Estensioni Sintattiche Termini complessi (anche ricorsivi), notazione
non-posizionale, etc.
![Page 6: Nicola Leone e Francesco Ricca Dipartimento di Matematica Università della Calabria {leone, ricca}@mat.unical.it Nicola Leone e Francesco Ricca Dipartimento](https://reader031.vdocumenti.com/reader031/viewer/2022020105/5542eb58497959361e8c41de/html5/thumbnails/6.jpg)
Esempio (1)Esempio (1)
Classi: class person(name:string, age:integer, sex:string, partner:person). class student isa {person} (pin:integer, faculty:string). class employee isa {person} (code:integer, sk:skill, sa:integer). class student_employee isa {student, employee). class skill (name:string). class project(numEmp:integer, numSk:integer, budget:integer, maxSal:integer). ….
Relazioni: relation inTeam (emp:employee, pr:project). ….
Classi: class person(name:string, age:integer, sex:string, partner:person). class student isa {person} (pin:integer, faculty:string). class employee isa {person} (code:integer, sk:skill, sa:integer). class student_employee isa {student, employee). class skill (name:string). class project(numEmp:integer, numSk:integer, budget:integer, maxSal:integer). ….
Relazioni: relation inTeam (emp:employee, pr:project). ….
![Page 7: Nicola Leone e Francesco Ricca Dipartimento di Matematica Università della Calabria {leone, ricca}@mat.unical.it Nicola Leone e Francesco Ricca Dipartimento](https://reader031.vdocumenti.com/reader031/viewer/2022020105/5542eb58497959361e8c41de/html5/thumbnails/7.jpg)
Esempio (2)Esempio (2)
Istanze & tuple: jack: employee(name:”Jack Big",age:20, sex:”Male”,
partner:joe, code:1,sk:cpp,sa:10000). …. cpp:skill(“C++ programmer”). ….
Assiomi: ::- X : employee(code: C ), Y : employee(code: C ), Y <> X.
Istanze & tuple: jack: employee(name:”Jack Big",age:20, sex:”Male”,
partner:joe, code:1,sk:cpp,sa:10000). …. cpp:skill(“C++ programmer”). ….
Assiomi: ::- X : employee(code: C ), Y : employee(code: C ), Y <> X.
![Page 8: Nicola Leone e Francesco Ricca Dipartimento di Matematica Università della Calabria {leone, ricca}@mat.unical.it Nicola Leone e Francesco Ricca Dipartimento](https://reader031.vdocumenti.com/reader031/viewer/2022020105/5542eb58497959361e8c41de/html5/thumbnails/8.jpg)
Esempio (3)Esempio (3)
Classi Derivate:
derived class youngAndShy(friendsNumber: integer) { X : youngAndShy(friendsNumber : N ) :− X : person(age : Age),
Age < 21, #count{F : friend(pers1 : X, pers2 : F )} < 2. }
Relazioni Derivate:
derived relation ancestor(anc:person, disc:person) { ancestor(anc : A, disc : X ) :− X : person(father : A). ancestor(anc : A, disc : X ) :− X : person(mother : A). ancestor(anc : A, disc : X ) :− X : person(father : Y ), ancestor(anc : A, disc : Y ). ancestor(anc : A, disc : X ) :− X : person(mother : Y ), ancestor(anc : A, disc : Y ).
}
Classi Derivate:
derived class youngAndShy(friendsNumber: integer) { X : youngAndShy(friendsNumber : N ) :− X : person(age : Age),
Age < 21, #count{F : friend(pers1 : X, pers2 : F )} < 2. }
Relazioni Derivate:
derived relation ancestor(anc:person, disc:person) { ancestor(anc : A, disc : X ) :− X : person(father : A). ancestor(anc : A, disc : X ) :− X : person(mother : A). ancestor(anc : A, disc : X ) :− X : person(father : Y ), ancestor(anc : A, disc : Y ). ancestor(anc : A, disc : X ) :− X : person(mother : Y ), ancestor(anc : A, disc : Y ).
}
![Page 9: Nicola Leone e Francesco Ricca Dipartimento di Matematica Università della Calabria {leone, ricca}@mat.unical.it Nicola Leone e Francesco Ricca Dipartimento](https://reader031.vdocumenti.com/reader031/viewer/2022020105/5542eb58497959361e8c41de/html5/thumbnails/9.jpg)
Esempio (4) Esempio (4) Moduli di Ragionamento:
module(partner_and_skill) { partnerWithDifferentSkill(X,Y) :- X:employee(partner:Y, sk:S),
not partner(X,Y,S). partner (X,Y,Y) :- X:employee(partner:Y, sk:S). }
Query partnerWithDifferentSkill(X,Y)? X:employee(sk:java,partner:employee(sk:java)) ?
X:employee(sk:java,partner:Y), Y:employee(sk:java) ?
Moduli di Ragionamento: module(partner_and_skill) { partnerWithDifferentSkill(X,Y) :- X:employee(partner:Y, sk:S),
not partner(X,Y,S). partner (X,Y,Y) :- X:employee(partner:Y, sk:S). }
Query partnerWithDifferentSkill(X,Y)? X:employee(sk:java,partner:employee(sk:java)) ?
X:employee(sk:java,partner:Y), Y:employee(sk:java) ?
![Page 10: Nicola Leone e Francesco Ricca Dipartimento di Matematica Università della Calabria {leone, ricca}@mat.unical.it Nicola Leone e Francesco Ricca Dipartimento](https://reader031.vdocumenti.com/reader031/viewer/2022020105/5542eb58497959361e8c41de/html5/thumbnails/10.jpg)
Esempio (5)Esempio (5)
module(team_building) { inTeam(E,P) v outTeam(E,P) :- E:employee(), P:project(). :- P:project(numEmp:N), not #count{ E: inTeam(emp:E)} =
N. :- P: project(numSk:S), not #count{ Sk: E:employee(sk:Sk),
inTeam(E,P)} >= S. :- P: project(budget:B), not #sum{ Sa,E: E:employee(sal:Sa),
inTeam(E ,P)} <= B. :- P: project(maxSal:M), not #max{ Sa: E:employee(sal:Sa),
inTeam(E ,P)} <= M.}
> inTeam(ciccio,X)?
module(team_building) { inTeam(E,P) v outTeam(E,P) :- E:employee(), P:project(). :- P:project(numEmp:N), not #count{ E: inTeam(emp:E)} =
N. :- P: project(numSk:S), not #count{ Sk: E:employee(sk:Sk),
inTeam(E,P)} >= S. :- P: project(budget:B), not #sum{ Sa,E: E:employee(sal:Sa),
inTeam(E ,P)} <= B. :- P: project(maxSal:M), not #max{ Sa: E:employee(sal:Sa),
inTeam(E ,P)} <= M.}
> inTeam(ciccio,X)?
![Page 11: Nicola Leone e Francesco Ricca Dipartimento di Matematica Università della Calabria {leone, ricca}@mat.unical.it Nicola Leone e Francesco Ricca Dipartimento](https://reader031.vdocumenti.com/reader031/viewer/2022020105/5542eb58497959361e8c41de/html5/thumbnails/11.jpg)
Il sistema OntoDLVIl sistema OntoDLV Un ambiente di sviluppo grafico
Specifica, browsing, ragionamento, interrogazione
Integra DLV
Interfaccia di interrogazione à la QBE
Un ambiente di sviluppo grafico Specifica, browsing, ragionamento,
interrogazione Integra DLV
Interfaccia di interrogazione à la QBE
![Page 12: Nicola Leone e Francesco Ricca Dipartimento di Matematica Università della Calabria {leone, ricca}@mat.unical.it Nicola Leone e Francesco Ricca Dipartimento](https://reader031.vdocumenti.com/reader031/viewer/2022020105/5542eb58497959361e8c41de/html5/thumbnails/12.jpg)
![Page 13: Nicola Leone e Francesco Ricca Dipartimento di Matematica Università della Calabria {leone, ricca}@mat.unical.it Nicola Leone e Francesco Ricca Dipartimento](https://reader031.vdocumenti.com/reader031/viewer/2022020105/5542eb58497959361e8c41de/html5/thumbnails/13.jpg)
![Page 14: Nicola Leone e Francesco Ricca Dipartimento di Matematica Università della Calabria {leone, ricca}@mat.unical.it Nicola Leone e Francesco Ricca Dipartimento](https://reader031.vdocumenti.com/reader031/viewer/2022020105/5542eb58497959361e8c41de/html5/thumbnails/14.jpg)
ApplicazioniApplicazioni
Content Categorization OLEX [Curia et al] [Cumbo et al]
OntoLog Enterprise Categorizer System, un sistema sviluppato da Exeura s.r.l. per la classificazione semantica di documenti.
Information Extraction Hilex [Ruffolo et al]
Un nuovo approccio basato su logica per l’estrazione semantica di informazione
Content Categorization OLEX [Curia et al] [Cumbo et al]
OntoLog Enterprise Categorizer System, un sistema sviluppato da Exeura s.r.l. per la classificazione semantica di documenti.
Information Extraction Hilex [Ruffolo et al]
Un nuovo approccio basato su logica per l’estrazione semantica di informazione
![Page 15: Nicola Leone e Francesco Ricca Dipartimento di Matematica Università della Calabria {leone, ricca}@mat.unical.it Nicola Leone e Francesco Ricca Dipartimento](https://reader031.vdocumenti.com/reader031/viewer/2022020105/5542eb58497959361e8c41de/html5/thumbnails/15.jpg)
Lavori CorrelatiLavori Correlati COMPLEX [Greco et al] Flogic & Flora-2 [Kifer] RDF/RDFS [W3C] OWL [W3C] DL-Programs [Grosof et al] DL-Safe Programs [Motik] …
COMPLEX [Greco et al] Flogic & Flora-2 [Kifer] RDF/RDFS [W3C] OWL [W3C] DL-Programs [Grosof et al] DL-Safe Programs [Motik] …
![Page 16: Nicola Leone e Francesco Ricca Dipartimento di Matematica Università della Calabria {leone, ricca}@mat.unical.it Nicola Leone e Francesco Ricca Dipartimento](https://reader031.vdocumenti.com/reader031/viewer/2022020105/5542eb58497959361e8c41de/html5/thumbnails/16.jpg)
ConclusioniConclusioni OntoDLP:
Estensione della DLP con costrutti Orientati agli oggetti (classi, ereditarietà, assiomi, ecc.)
Ragionamento su Ontologie OntoDLV:
Implementa il linguaggio OntoDLP Sviluppato utilizzando DLV Dotato di ambiente di sviluppo grafico
Interrogazioni à la QBE
Utilizzato in applicazioni reali
OntoDLP: Estensione della DLP con costrutti
Orientati agli oggetti (classi, ereditarietà, assiomi, ecc.)
Ragionamento su Ontologie OntoDLV:
Implementa il linguaggio OntoDLP Sviluppato utilizzando DLV Dotato di ambiente di sviluppo grafico
Interrogazioni à la QBE
Utilizzato in applicazioni reali