Title: Seminari di ingegneria del software
1Seminari di ingegneria del software
- Traduzione di diagrammi ER in Protégé
Emma Di Pasquale
Teresa Raguso
2OBIETTIVI
- Creare ontologie con Protégé
- Classificare le ontologie e verificarne la
consistenza tramite RACER - Generare la sintassi astratta di OWL con SWOOP
3ONTOLOGIA
- 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à
4INTRODUZIONELOGICHE DESCRITTIVE
- Le logiche descrittive (DL) sono frammenti
decidibili della - FOL 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 che
- popolano il mondo in oggetto, assegnando loro un
nome e asserendo le loro proprietà
5INTRODUZIONEOWL
- 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à -
6Proté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. -
7Progettazione di unontologiain Protégé
- Progettare unontologia significa
- 1. Determinare il dominio e lo scopo
dellontologia - 2. Individuare i concetti chiave del fenomeno da
descrivere - 3. Organizzare i concetti in classi e gerarchie
tra le classi - 4. Definire le proprietà delle classi
- 5. Definire vincoli (valori leciti) sulle
proprietà - 6. Creare le istanze
- 7. Attribuire i valori alle proprietà per tutte
le istanze create
8ER in Protégé
- Entità classes
- Relazioni object properties
- Attributi datatype properties
- Vincoli restrictions
9Entità - 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)
10Protégé CLASSES TAB
Nome della Classe
IS-A
Relazioni e attributi della classe
Gerarchia delle Classi
Restrizioni sugli individui della classe
Classi disgiunte
11PROPERTYProté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à
12Relazioni - 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
13Protégé - PROPERTIES TABObject Properties
Nome della proprietà
Object Property
Caratteristiche delle proprietà
Codominio
Dominio
Proprietà Inversa
14Attributi 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)
15Protégé - PROPERTIES TABDatatype Properties
Nome
Range
Datatype Properties
Proprietà
Valori Ammessi
Dominio
16Vincoli 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à
17Protégé RESTRICTIONS TABS
18Protégé - Individuals
- OWL non usa UNA,
- Racer sì
- SameAs
- DifferentFrom
- AllDifferent
19RACER
- 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
20Casi di studioProcesso di lavoro
Traduzione dei diagrammi concettuali in una
ontologia creata con Protégé
Controllo consistenza tramite Racer
Generazione file OWL e file pprj
Generazione sintassi astratta con SWOOP
21Casi di studio Compito A del 16/12/04 Schema ER
22Casi di studio Compito A del 16/12/04Entità
Classi
Class(aPersona complete intersectionOf(restric
tion(anatoA minCardinality(1))
restriction(arisiede minCardinality(1))))
23Casi di studioCompito A del 16/12/04Attributi
Datatype Properties
DatatypeProperty(acodiceFiscale
Functional domain(aPersona) range(xsdstring))
DatatypeProperty(asesso Functional domain(aPerso
na) range(oneOf("femminile"lthttp//www.w3.org/20
01/XMLSchemastringgt maschile"lthttp//www.w3.or
g/2001/XMLSchemastringgt)))
DatatypeProperty(adataN Functional domain(aPerso
na) range(xsddate))
24Casi di studioCompito A del 16/12/04Relazioni
Object Properties
Per esprimere il limite superiore della
cardinalità
inversa_di_effettua
effettua
Class(aPrenotazione complete
IntersectionOf(restriction(ainversa_di_effettua
minCardinality(1)) unionOf(aCollettiva
aSingola))) ObjectProperty(aeffettua
InverseFunctional inverseOf(ainversa_di_effettu
a) domain(aPersona) range(aPrenotazione))
ObjectProperty(ainversa_di_effettua
Functional inverseOf(aeffettua)
domain(aPrenotazione) range(aPersona))
Per esprimere il limite inferiore della
cardinalità
25Casi di studioCompito A del 16/12/04Caso
alternativo per esplicitare la cardinalità 1..1
di una relazione
DifferentIndividuals(aEmma aGina) ecc.
26Casi di studio Compito A del 16/12/04Generalizza
zione
COMPLETE
COMPLETE Class(aPrenotazione complete intersecti
onOf(restriction(ainversa_di_effettua
minCardinality(1)) unionOf(aCollettiva
aSingola))) DISJOINT DisjointClasses(aCollet
tiva aSingola).
Class(aCollettiva partial
aPrenotazione) Class(aSingola partial
aPrenotazione)
27Casi di studio Compito A del 16/12/04Generalizza
zione - Ereditarietà
28Casi 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(aPostoAssegnato aComune)
DisjointClasses(a PostoAssegnato aPersona)
DisjointClasses(a PostoAssegnato aCollettiva)
DisjointClasses(aPostoAssegnato aTeatro)
DisjointClasses(a PostoAssegnato aPosto) ecc.
29Casi di studio Compito A del 16/12/04Limiti di
Protégé
- Non si è potuto esprimere gli identificatori
interni in quanto OWL DL non permette di definire
InverseFunctional una datatype property - 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.
30Casi di studio Compito A del 16/12/04 Il
ragionatore - Racer
- Controllo di consistenza
- Classificazione dellontologia
31Casi di studio Compito A del 19/12/05 Schema ER
32Casi di studio Compito A del 19/12/05Entità
Classi
Class(aSettoreDisciplinare partial)
33Casi di studio Compito A del 19/12/05Attributi
Datatype Properties
DatatypeProperty(acodiceSettoreDisciplinare
Functional domain(aSettoreDisciplinare) range(xsd
string)) DatatypeProperty(anomeSettoreDiscipli
nare Functional domain(aSettoreDisciplinare) rang
e(xsdstring))
34Casi di studio Compito A del 19/12/05Relazioni
Object Properties
Per esprimere il limite superiore della
cardinalità
inversa_di_del
del
Class(aCorso complete restriction(ainversa_di_d
el minCardinality(1))) ObjectProperty(adel
InverseFunctional inverseOf(ainversa_di_del) doma
in(aSettoreDisciplinare) range(aCorso)) ObjectP
roperty(ainversa_di_del Functional inverseOf(ade
l) domain(aCorso) range(aSettoreDisciplinare))
Per esprimere il limite inferiore della
cardinalità
35Casi di studio Compito A del 19/12/05Relazioni
Object Properties
afferisce
Inversa_di_afferisce
Class(aCDA complete intersectionOf(
restriction(ainversa_di_re_cda
minCardinality(1)) restriction(ainversa
_di_afferisce minCardinality(1))))
36Casi di studio Compito A del 19/12/05ISA tra
relazioni
SubPropertyOf(are-cda aafferisce) SubPropertyOf(
ainversa_di_re-cda ainversa_di_afferisce)
37Casi di studio Compito A del 19/12/05ISA tra
classi
Class(aDocente complete restriction(aafferisce
minCardinality(1))) Class(aReferenteErasmus Com
plete restriction(are_cda minCardinality(1))) Cl
ass(aReferenteErasmus partial aDocente)
38Casi 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(aCDA aSettoreDisciplinare) Disjo
intClasses(aCDA aCorso) DisjointClasses(aCDA
aDomanda) DisjointClasses(aCDA
aStudente) DisjointClasses(aCDA
aDocente) ecc.
39Casi di studio Compito A del 19/12/05Limiti di
Protégé
- Non si è potuto esprimere gli identificatori
interni in quanto OWL DL non permette di definire
InverseFunctional una datatype property - Non si è potuto esprimere identificatori esterni
in quanto non esistono variabili in OWL - Non si è potuto esprimere il fatto che gli
attributi sono funzioni totali, ma sono stati
posti functional
40Casi di studio Compito A del 19/12/05 Il
ragionatore - Racer
- Controllo di consistenza
- Classificazione dellontologia
41Le 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 loperatore
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.