La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Nicola Leone e Francesco Ricca Dipartimento di Matematica Università della Calabria {leone, Nicola Leone e Francesco Ricca Dipartimento.

Presentazioni simili


Presentazione sul tema: "Nicola Leone e Francesco Ricca Dipartimento di Matematica Università della Calabria {leone, Nicola Leone e Francesco Ricca Dipartimento."— Transcript della presentazione:

1 Nicola Leone e Francesco Ricca Dipartimento di Matematica Università della Calabria {leone, ricca}@mat.unical.it Nicola Leone e Francesco Ricca Dipartimento di Matematica Università della Calabria {leone, ricca}@mat.unical.it UNIVERSITÀDELLACALABRIA Dipartimento di MATEMATICA OntoDLV: An Object-Oriented Disjunctive Logic Programming System

2 Sommario La Programmazione Logia Disgiuntiva Motivazioni Il Linguaggio OntoDLP Il Sistema OntoDLV Conclusioni La Programmazione Logia Disgiuntiva Motivazioni Il Linguaggio OntoDLP Il Sistema OntoDLV Conclusioni

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

4 Motivazioni 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)

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

6 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). ….

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

8 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 ). }

9 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) ?

10 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)?

11 Il 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

12

13

14 Applicazioni 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 lestrazione 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 lestrazione semantica di informazione

15 Lavori 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] …

16 Conclusioni 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


Scaricare ppt "Nicola Leone e Francesco Ricca Dipartimento di Matematica Università della Calabria {leone, Nicola Leone e Francesco Ricca Dipartimento."

Presentazioni simili


Annunci Google