Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa...

41
Seminari di ingegneria del software “Traduzione di diagrammi ER in Protégé” Emma Di Pasquale Teresa Raguso

Transcript of Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa...

Page 1: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Seminari di ingegneria del software

“Traduzione di diagrammi ER in Protégé”

Emma Di Pasquale Teresa Raguso

Page 2: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

OBIETTIVI

• Creare ontologie con Protégé

• Classificare le ontologie e verificarne la consistenza tramite RACER

• Generare la sintassi astratta di OWL con SWOOP

Page 3: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

ONTOLOGIA

• “Descrizione formale esplicita dei concetti di un dominio”.

• Essa contiene:– Un insieme di classi (concetti rilevanti)– Un insieme di relazioni tra queste classi– Un insieme di proprietà attribuite a ciascun

concetto– Un insieme di restrizioni sulle proprietà

Page 4: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

INTRODUZIONELOGICHE DESCRITTIVE

Le logiche descrittive (DL) sono frammenti decidibili dellaFOL per esprimere la conoscenza in termini di:

– concetti atomici (predicati unari)– ruoli atomici (predicati binari)– individui (costanti)

Una base di conoscenza in DL comprende:– TBox: insieme di assiomi terminologici, ovvero il

vocabolario del dominio applicativo (concetti e ruoli)

– ABox: contiene asserzioni circa gli individui chepopolano il mondo in oggetto, assegnando loro un nome e asserendo le loro proprietà

Page 5: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

INTRODUZIONEOWL

OWL Ontology Web Language, è una raccomandazione del W3C.

• Linguaggio per esprimere le ontologie

• Tre tipi di OWL:– OWL Lite, versione sintatticamente più semplice che permette

di esprimere una gerarchia di classi e semplici restrizioni– OWL DL, versione intermedia basata sulle logiche descrittive,

offre un potere espressivo elevato mantenendo completezza e decidibilità

– OWL FULL, offre la massima espressività senza offrire alcuna garanzia circa completezza e decidibilità

Page 6: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Protégé

E’ un editor per la creazione di ontologie

Caratteristiche:

-Piattaforma open-source-Può esportare le ontologie in vari formati: RDF(S), XML Schema e OWL-E’ basato su Java-E’ estendibile (esistono numerose API e plug-in)-Dispone di numerosi ambienti plug-and-play che consentono un rapido sviluppo delle applicazioni.

Page 7: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Progettazione di un’ontologiain Protégé

Progettare un’ontologia significa:1. Determinare il dominio e lo scopo dell’ontologia2. Individuare i concetti chiave del fenomeno da descrivere3. Organizzare i concetti in classi e gerarchie tra le classi4. Definire le proprietà delle classi5. Definire vincoli (valori leciti) sulle proprietà6. Creare le istanze7. Attribuire i valori alle proprietà per tutte le istanze create

Page 8: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

ER in Protégé

• Entità ~ classes

• Relazioni ~ object properties

• Attributi ~ datatype properties

• Vincoli ~ restrictions

Page 9: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Entità - ClassesProtégé

• Rappresentano insiemi di individui• Organizzate in una tassonomia• Possono essere combinate usando un insieme di

operatori:– sussunzione– disjoint– unione– intersezione– complemento

• Ad ogni classe possono essere associate delle condizioni (restrictions) che possono essere:− necessarie (classi primitive)− necessarie e sufficienti (classi definite)

Page 10: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Protégé – CLASSES TAB

Gerarchiadelle

Classi

Nomedella

Classe

Restrizionisugli individuidella classe

Classidisgiunte

Relazionie attributi

della classe

IS-A

Page 11: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

PROPERTYProtégé

• Due tipi di proprietà:– Object properties, relazionano individui ad individui – Datatype properties, relazionano individui a valori

di dati• Protégé supporta una gerarchia tra le proprietà• Con riferimento alle subproperty, non è possibile

“mescolare” i due tipi di proprietà

Page 12: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Relazioni - Object PropertiesProtégé

• Per ogni relazione è possibile specificare:– Dominio– Range (codominio)

• Ogni object property può avere una inverseProperty

• Le object properties possono avere quattro tipi di caratteristiche:– Functional– Inverse functional– Transitive– Simmetric

Page 13: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Protégé - PROPERTIES TABObject Properties

Object Property

DominioCodominio

Caratteristichedelle

proprietà

ProprietàInversa

Nomedella

proprietà

Page 14: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Attributi – Datatype PropertiesProtégé

• Per ogni attributo è possibile specificare:– Dominio– Range (integer, float, string)

• L’ unica caratteristica ammessa da Protégé OWL DL è:– Functional

• Non si possono quindi esplicitare le chiavi primarie in quanto non è possibile definire inverseFunctional una

datatype property (è invece ammesso con OWL Full)

Page 15: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Protégé - PROPERTIES TABDatatype Properties

Datatype

Properties

Dominio

Range

Proprietà

Valori Ammessi

Nome

Page 16: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Vincoli – RestrictionsProtégé

• Una restriction descrive un insieme di individui in base al tipo e al numero di relazioni a cui essi partecipano e quindi restringe gli individui che appartengono ad una classe

• Tre tipi di restrictions:

Existential, someValuesFrom

Universal, allValuesFrom

hasValue

= Cardinality

≤ Max cardinality

≥ Min cardinality

Restrizioni di quantità

Restrizioni “hasValue”

Restrizioni di cardinalità

Page 17: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Protégé – RESTRICTIONS TABS

Page 18: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Protégé - Individuals

OWL non usa UNA,

Racer sì• SameAs• DifferentFrom• AllDifferent

Page 19: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

RACER

• Per ogni ontologia che cade nello scope di OWL DL possiamo usare un DL reasoner per inferire informazioni che non sono esplicitamente rappresentate nell’ ontologia.

• Racer è un classificatore basato sulla Logica Descrittiva• I servizi di ragionamento offerti sono

– sussunzione– equivalenza– consistenza– istanziazione

Page 20: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Casi di studioProcesso di lavoro

Traduzione dei diagrammiconcettuali in una ontologia creata con Protégé

Generazione file OWL e file pprj

Generazione sintassi astratta con SWOOP

Controllo consistenza tramite Racer

Page 21: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Casi di studio: Compito A del 16/12/04 Schema ER

Page 22: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Casi di studio: Compito A del 16/12/04Entità Classi

Class(a:Persona complete

intersectionOf(restriction(a:natoA

minCardinality(1)) restriction(a:risiede minCardinality(1))))

Page 23: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Casi di studio:Compito A del 16/12/04Attributi Datatype Properties

DatatypeProperty(a:codiceFiscale Functionaldomain(a:Persona)range(xsd:string))

DatatypeProperty(a:sesso Functionaldomain(a:Persona)range(oneOf("femminile"^^<http://www.w3.org/2001/XMLSchema#string>“maschile"^^<http://www.w3.org/2001/XMLSchema#string>)))

DatatypeProperty(a:dataN Functionaldomain(a:Persona)range(xsd:date))

Page 24: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Casi di studio:Compito A del 16/12/04Relazioni Object Properties

Per esprimere il limite

inferiore della cardinalità

Class(a:Prenotazione complete

IntersectionOf(restriction(a:inversa_di_effettua

minCardinality(1)) unionOf(a:Collettiva

a:Singola)))

ObjectProperty(a:effettua InverseFunctional

inverseOf(a:inversa_di_effettua)

domain(a:Persona)

range(a:Prenotazione))

ObjectProperty(a:inversa_di_effettua Functional

inverseOf(a:effettua)

domain(a:Prenotazione)

range(a:Persona))

Per esprimere il limite

superiore della cardinalità

effettua

inversa_di_effettua

Page 25: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Casi di studio:Compito A del 16/12/04Caso alternativo per esplicitare la cardinalità 1..1 di una relazione

DifferentIndividuals(a:Emma a:Gina)ecc. 

Page 26: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Casi di studio: Compito A del 16/12/04Generalizzazione

 Class(a:Collettiva partial a:Prenotazione)

 Class(a:Singola partial a:Prenotazione)

COMPLETE

COMPLETE:Class(a:Prenotazione completeintersectionOf(restriction(a:inversa_di_effettua minCardinality(1)) unionOf(a:Collettiva a:Singola)))

DISJOINT:DisjointClasses(a:Collettiva a:Singola).

Page 27: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Casi di studio: Compito A del 16/12/04Generalizzazione - Ereditarietà

Page 28: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Casi di studio: Compito A del 16/12/04Disjoint tra classi

Tutte le classi, tranne le sottoclassi della generalizzazione con la propria superclasse, sono state

poste disjoint a due a due.

DisjointClasses(a:PostoAssegnato a:Comune)

DisjointClasses(a: PostoAssegnato a:Persona)

DisjointClasses(a: PostoAssegnato a:Collettiva)

DisjointClasses(a:PostoAssegnato a:Teatro)

DisjointClasses(a: PostoAssegnato a:Posto)

ecc.

Page 29: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Casi di studio: Compito A del 16/12/04Limiti di Protégé

1. Non si è potuto esprimere gli identificatori interni in quanto OWL DL non permette di definire “InverseFunctional” una datatype property

2. Non si è potuto esprimere identificatori esterni in quanto non esistono variabili in OWL

3. Non si è potuto esprimere il fatto che gli attributi sono funzioni totali, ma sono stati posti functional

4. Non si è potuto esprimere gli attributi delle relazioni: “data” della relazione “effettua” e “da” di “risiede”.

Page 30: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Casi di studio: Compito A del 16/12/04 Il ragionatore - Racer

• Controllo di consistenza

• Classificazione dell’ontologia

Page 31: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Casi di studio: Compito A del 19/12/05 Schema ER

Page 32: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Casi di studio: Compito A del 19/12/05Entità Classi

Class(a:SettoreDisciplinare partial)

Page 33: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Casi di studio: Compito A del 19/12/05Attributi Datatype Properties

DatatypeProperty(a:codiceSettoreDisciplinare Functionaldomain(a:SettoreDisciplinare)range(xsd:string)) DatatypeProperty(a:nomeSettoreDisciplinare Functionaldomain(a:SettoreDisciplinare)range(xsd:string))  

Page 34: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Casi di studio: Compito A del 19/12/05Relazioni Object Properties

Class(a:Corso complete restriction(a:inversa_di_del minCardinality(1)))

ObjectProperty(a:del InverseFunctionalinverseOf(a:inversa_di_del)domain(a:SettoreDisciplinare)range(a:Corso))

ObjectProperty(a:inversa_di_del FunctionalinverseOf(a:del)domain(a:Corso)range(a:SettoreDisciplinare)) 

Per esprimere il limite superiore della cardinalità

Per esprimere il limite inferiore della cardinalità

del

inversa_di_del

Page 35: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Casi di studio: Compito A del 19/12/05Relazioni Object Properties

afferisce

Inversa_di_afferisce

Class(a:CDA completeintersectionOf( restriction(a:inversa_di_re_cda minCardinality(1)) restriction(a:inversa_di_afferisceminCardinality(1))))

Page 36: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Casi di studio: Compito A del 19/12/05ISA tra relazioni

SubPropertyOf(a:re-cda a:afferisce)

SubPropertyOf(a:inversa_di_re-cda a:inversa_di_afferisce)

Page 37: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Casi di studio: Compito A del 19/12/05ISA tra classi

Class(a:Docente complete

restriction(a:afferisce

minCardinality(1)))

Class(a:ReferenteErasmus

Complete restriction(a:re_cda

minCardinality(1)))

Class(a:ReferenteErasmus

partial a:Docente)

 

Page 38: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Casi di studio: Compito A del 19/12/05Disjoint tra classi

Tutte le classi, tranne la sottoclasse della generalizzazione con la propria superclasse, sono state poste disjoint a due a due.

DisjointClasses(a:CDA a:SettoreDisciplinare)

DisjointClasses(a:CDA a:Corso)

DisjointClasses(a:CDA a:Domanda)

DisjointClasses(a:CDA a:Studente)

DisjointClasses(a:CDA a:Docente)

ecc.

Page 39: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Casi di studio: Compito A del 19/12/05Limiti di Protégé

1. Non si è potuto esprimere gli identificatori interni in quanto OWL DL non permette di definire “InverseFunctional” una datatype property

2. Non si è potuto esprimere identificatori esterni in quanto non esistono variabili in OWL

3. Non si è potuto esprimere il fatto che gli attributi sono funzioni totali, ma sono stati posti functional

Page 40: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Casi di studio: Compito A del 19/12/05 Il ragionatore - Racer

• Controllo di consistenza

• Classificazione dell’ontologia

Page 41: Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa Raguso.

Le Queries Non è stato possibile esprimere le queries richieste dai vari compiti

per i seguenti motivi:

• Sulle datatype properties non si possono utilizzare operatori ≥ e ≤, ma solo l’operatore hasValue che permette di esprimere queries su specifici valori di un dato attributo

• Non si possono estrarre i valori degli attributi di una classe (Es. restituire i codici fiscali di una persona)

• Non si possono esprimere queries con cicli (Es. restituire tutte le persone che sono nate nello stesso comune in cui risiedono) in quanto non ci sono variabili in OWL, ma si possono esprimere solo queries ad albero.