Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa...
-
Upload
fabrizia-biondi -
Category
Documents
-
view
217 -
download
2
Transcript of Seminari di ingegneria del software Traduzione di diagrammi ER in Protégé Emma Di PasqualeTeresa...
Seminari di ingegneria del software
“Traduzione di diagrammi ER in Protégé”
Emma Di Pasquale Teresa Raguso
OBIETTIVI
• Creare ontologie con Protégé
• Classificare le ontologie e verificarne la consistenza tramite RACER
• Generare la sintassi astratta di OWL con SWOOP
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à
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à
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à
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.
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
ER in Protégé
• Entità ~ classes
• Relazioni ~ object properties
• Attributi ~ datatype properties
• Vincoli ~ restrictions
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)
Protégé – CLASSES TAB
Gerarchiadelle
Classi
Nomedella
Classe
Restrizionisugli individuidella classe
Classidisgiunte
Relazionie attributi
della classe
IS-A
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à
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
Protégé - PROPERTIES TABObject Properties
Object Property
DominioCodominio
Caratteristichedelle
proprietà
ProprietàInversa
Nomedella
proprietà
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)
Protégé - PROPERTIES TABDatatype Properties
Datatype
Properties
Dominio
Range
Proprietà
Valori Ammessi
Nome
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à
Protégé – RESTRICTIONS TABS
Protégé - Individuals
OWL non usa UNA,
Racer sì• SameAs• DifferentFrom• AllDifferent
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
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
Casi di studio: Compito A del 16/12/04 Schema ER
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))))
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))
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
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.
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).
Casi di studio: Compito A del 16/12/04Generalizzazione - Ereditarietà
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.
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”.
Casi di studio: Compito A del 16/12/04 Il ragionatore - Racer
• Controllo di consistenza
• Classificazione dell’ontologia
Casi di studio: Compito A del 19/12/05 Schema ER
Casi di studio: Compito A del 19/12/05Entità Classi
Class(a:SettoreDisciplinare partial)
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))
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
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))))
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)
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)
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.
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
Casi di studio: Compito A del 19/12/05 Il ragionatore - Racer
• Controllo di consistenza
• Classificazione dell’ontologia
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.