1 / 41

Seminari di ingegneria del software

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.

keren
Download Presentation

Seminari di ingegneria del software

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. OBIETTIVI • Creare ontologie con Protégé • Classificare le ontologie e verificarne la consistenza tramite RACER • Generare la sintassi astratta di OWL con SWOOP

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

  4. INTRODUZIONELOGICHE 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à

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

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

  7. Progettazione di un’ontologiain Protégé Progettare un’ontologia significa: 1. Determinare il dominio e lo scopo dell’ontologia 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

  8. ER in Protégé • Entità ~classes • Relazioni ~object properties • Attributi ~datatype properties • Vincoli ~restrictions

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

  10. Protégé – CLASSES TAB Nome della Classe IS-A Relazioni e attributi della classe Gerarchia delle Classi Restrizioni sugli individui della classe Classi disgiunte

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

  12. Relazioni - Object PropertiesProtégé • Per ogni relazione è possibile specificare: • Dominio • Range (codominio) • Ogni objectproperty può avere una inverseProperty • Le objectproperties possono avere quattro tipi di caratteristiche: • Functional • Inverse functional • Transitive • Simmetric

  13. Protégé - PROPERTIES TABObject Properties Nome della proprietà Object Property Caratteristiche delle proprietà Codominio Dominio Proprietà Inversa

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

  15. Protégé - PROPERTIES TABDatatype Properties Nome Range Datatype Properties Proprietà Valori Ammessi Dominio

  16. Vincoli – RestrictionsProtégé • Una restrictiondescrive 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: Restrizioni di quantità Restrizioni “hasValue” Restrizioni di cardinalità

  17. Protégé – RESTRICTIONS TABS

  18. Protégé - Individuals OWL non usa UNA, Racer sì • SameAs • DifferentFrom • AllDifferent

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

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

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

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

  23. Casi di studio:Compito A del 16/12/04Attributi Datatype Properties DatatypeProperty(a:codiceFiscale Functional domain(a:Persona) range(xsd:string)) DatatypeProperty(a:sesso Functional domain(a:Persona) range(oneOf("femminile"^^<http://www.w3.org/2001/XMLSchema#string> “maschile"^^<http://www.w3.org/2001/XMLSchema#string>))) DatatypeProperty(a:dataN Functional domain(a:Persona) range(xsd:date))

  24. Casi di studio:Compito A del 16/12/04Relazioni Object Properties Per esprimere il limite superiore della cardinalità inversa_di_effettua effettua Class(a:Prenotazionecomplete 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 inferiore della cardinalità

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

  26. Casi di studio: Compito A del 16/12/04Generalizzazione COMPLETE COMPLETE: Class(a:Prenotazionecomplete intersectionOf(restriction(a:inversa_di_effettua minCardinality(1)) unionOf(a:Collettiva a:Singola))) DISJOINT: DisjointClasses(a:Collettiva a:Singola). Class(a:Collettiva partial a:Prenotazione) Class(a:Singola partial a:Prenotazione)

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

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

  29. Casi 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”.

  30. Casi di studio: Compito A del 16/12/04Il ragionatore - Racer • Controllo di consistenza • Classificazione dell’ontologia

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

  32. Casi di studio: Compito A del 19/12/05Entità Classi Class(a:SettoreDisciplinare partial)

  33. Casi di studio: Compito A del 19/12/05Attributi Datatype Properties DatatypeProperty(a:codiceSettoreDisciplinare Functional domain(a:SettoreDisciplinare) range(xsd:string)) DatatypeProperty(a:nomeSettoreDisciplinare Functional domain(a:SettoreDisciplinare) range(xsd:string))

  34. Casi di studio: Compito A del 19/12/05Relazioni Object Properties Per esprimere il limite superiore della cardinalità inversa_di_del del Class(a:Corso complete restriction(a:inversa_di_del minCardinality(1))) ObjectProperty(a:del InverseFunctional inverseOf(a:inversa_di_del) domain(a:SettoreDisciplinare) range(a:Corso)) ObjectProperty(a:inversa_di_del Functional inverseOf(a:del) domain(a:Corso) range(a:SettoreDisciplinare)) Per esprimere il limite inferiore della cardinalità

  35. Casi di studio: Compito A del 19/12/05Relazioni Object Properties afferisce Inversa_di_afferisce Class(a:CDA complete intersectionOf( restriction(a:inversa_di_re_cda minCardinality(1)) restriction(a:inversa_di_afferisce minCardinality(1))))

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

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

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

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

  40. Casi di studio: Compito A del 19/12/05Il ragionatore - Racer • Controllo di consistenza • Classificazione dell’ontologia

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

More Related