Ontologie: RDF e OWL UNIVERSITA DI CAMERINO Corso di laurea in Informatica Barbara Re...

Post on 01-May-2015

215 views 0 download

Transcript of Ontologie: RDF e OWL UNIVERSITA DI CAMERINO Corso di laurea in Informatica Barbara Re...

Ontologie: RDF e OWLOntologie: RDF e OWL

UNIVERSITA’ DI CAMERINOCorso di laurea in Informatica

Barbara Rebarbara.re@unicam.it

Anno Accademico 2006-07

Barbara Re 2

RDF: scopo

Barbara Re 3

RDF: Scopo

Hanno bisogno di un linguaggio ontologico con cui definire il significato associato ai metadati

Esempio parentelaUn uomo è un essere umano ed è un maschioUna donna è un essere umano ed è femminaUna madre è una donna che ha figli almeno un essere umanoUn genitore è un padre o una madreUn nonno è un uomo che ha_figlio almeno un genitore

I termini sottolineati sono parte del linguaggio utilizzato per definire madre, padre, … , nonno

Barbara Re 4

RDF: Scopo

Il linguaggio ontologico deve però essereFormale

Perché automaticamente decodificabile Il linguaggio italiano non è adatto

EsplicitoPerché bastato su strutture di immediata applicazione un, è un, che, almeno un, o sono abbastanza espliciti

Perciò occorre definire esplicitamente e in modo formale il significato dei termini del linguaggio ontologico (un, è un, che, almeno un, o)

Barbara Re 5

RDF Vocabulary Description Language

RDFS: RDF Vocabulary Description Language o RDF Schema è un linguaggio ontologico adatto perché

È formaleEssendo costruito sopra RDF

È esplicitoSpecifica un insieme predefinito di risorse e predicati RDF per Definire classi e predicati Controllare quali classi e predicati debbono essere utilizzati

contemporaneamente

Barbara Re 6

Iniziamo con la prima ontologia

Creare una classeex:Artista rdf:type rdfs:Class

Creare sottoclasseEx:Pittore rdf:subClassOf ex:ArtistaEx:Scultore rdfs:subClassOf ex:Artista

Creare un esemplare (instance)ex:Rodin rdf:type ex:scultore

Barbara Re 7

… ed ancora

Uso di “Multiple inheritance”Ex:ArtistaMultidisciplinare rdfs:subClassOf ex:PittoreEx:ArtistaMultidisciplinare rdfs:subClassOf ex:Scultore

Uso di “Multiple instantiation”Ex:Michelangelo rdf:type ex:PittoreEx:Michelangelo rdf:type ex:Scultore

Barbara Re 8

Proprietà

Creare una proprietàex:crea rdf:type rdf:Property

Usare una proprietàex:Rodin ex:crea ex:il bacio

Creare sotto proprietàex:dipinge rdfs:subPropertyOf ex:creaex:scolpisce rdfs:subPropertyOf ex:crea

Barbara Re 9

Gerarchie di proprietà

Controllare quali classi e predicati devono essere utilizzati contemporaneamente

ex:crea rdfs:domain ex:Artistaex:crea rdfs:range ex:operaex:dipinge rdf:domain ex:pittoreex:dipinge rdf:range ex:operaex:scolpisce rdfs:domain ex:scultoreex:scolpisce rdfs:range ex:scultore

Barbara Re 10

Graficamente

Barbara Re 11

Ereditarietà!!!

Barbara Re 12

Barbara Re 13

Una singola tripla

Protegè

Barbara Re 15

La piattaforma Protégé

Esistono due modalità per creare le ontologie in Protégé:

Il Protégé-Frames editor, consente di costruire e popolare le ontologie che sono basate su “frame”, secondo il protocollo OKBC (Open Knowledge Base Connectivity protocol [www.ai.sri.com/~okbc/]). In questo modello, un’ontologia è costituita da un’insieme di classi organizzate in gerarchia, rappresentanti un insieme di concetti. Le classi sono caratterizzate da slot e relazioniIl Protégé-OWL editor, consente di costruire ontologie per il Semantic Web, in particolare secondo il linguaggio OWL [www.w3.org/2004/OWL/]. Un’ontologia OWL può includere descrizioni di classi, di proprietà e le loro istanze.

Barbara Re 16

Main

Barbara Re 17

:THING

Tutte le classi individuate come capostipiti di una gerarchia, saranno figlie di :THING (sarà la classe più generale della nostra ontologia).

(Nota: la :SYSTEM_CLASS è utilizzata da Protégé per definire le strutture dei form)

Barbara Re 18

Creazione di Classi

Barbara Re 19

Role

All’interno di Protégé Classes Tab si può definire il “role” di una classe:

AstrattaConcreta

Una caratteristica importante è che Protégé supporta l’ereditarietà multipla.

Inoltre si possono definire gli slot, i vincoli sui valori degli slot, le relazioni fra le classi e le proprietà.

Barbara Re 20

Nel dettaglio

Barbara Re 21

Le proprietà di una classe

Definite le classi, si devono descrivere le proprietà di queste, che nell’ontologia saranno gli slot.

Gli slot possono rappresentare:proprietà estrinseche (ad esempio il gusto di un vino)proprietà intrinseche (ad esempio il nome)parti di un oggetto, nel caso in cui questo sia strutturato (possono essere parti sia “astratte” sia “concrete”)le relazioni con altre classi

Gli slot possono avere dei vincoli, ad esempio il tipo, il numero di valori (la cardinalità)…

In Protégé i tipi previsti sono: boolean, float, integer, string, symbol (consente di enumerare i valori possibili), class, instance, any; inoltre la definizione dell’attributo può essere obbligatoria o meno (settando in maniera opportuna il flag “required”) e uno slot può avere una cardinalità singola o multipla.

Barbara Re 22

Proprietà di una classe (1)

Barbara Re 23

Proprietà di una classe (2)

Barbara Re 24

Inverse slot

Il valore di uno slot può dipendere dal valore di un altro slot.

Ad esempio ad un Paziente si può fare un’Anamnesi e l’Anamnesi è relativa solo ad un paziente.

Il Sistema è in grado di assicurare la consistenza della conoscenza di base in tal senso. Ad esempio cancellando un’istanza di Anamnesi,

Protégé provvederà a rimuovere il corrispettivo riferimento dal paziente.

Barbara Re 25

Classi e slot

Barbara Re 26

Protegè slot Tab

Nota: se dovete eliminare uno slot che avevate precedentemente creato, siconsiglia vivamente di eliminarlo sempre da Protégé Slot Tab, in quanto seviene eliminato per mezzo dell’interfaccia Protégé Class Tab, lo slot nonverrà definitivamente eliminato ma rimarrà presente nell’ontologia nonlegato a nessuna classe.

Barbara Re 27

Protégé Instance Tab

All’interno di Protégé Instance Tab si possono andare a definire le istanze per le varie classi.

Definire un’istanza significa1. Scegliere una classe2. Creare un’istanza della classe3. Immettere i valori degli slot

Barbara Re 28

Istanze

Barbara Re 29

Plug in

Proprietà dei Plug-in:Estendono le funzionalità di Protégé per adempiere a molteplici necessità (Visualizzazione, Importazione/Esportazione ad altri formati, etc…) Ogni plug-in ha un suo tab associato attivabile attraverso il menù Project Configure

Ontoviz: Plug-in per la visualizzazione grafica dell’ontologia Si basa su GraphViz, il quale deve essere correttamente

installato Consente di specificare differenti livelli di dettaglio

(Classi, Slots, SottoClassi, Istanze, Relazioni,etc…) Consente di specificare uno o più soggetti centrali della

visualizzazione (Se si desidera visualizzare tutta l’ontologia si può specificare semplicemente THING)

Barbara Re 30

Ontoviz

OWL

Barbara Re 32

Origini di OWL Properties

Symmetric, Transitive, Functional, Inverse Functionalrange, domain, subPropertyOf, inverseOf, equivalentPropertyClass

SubClassOf, intersectionOf, unionOf, complementOf, Enumeration, Equivalence, Disjoint

Statements sulle istanze groundsameIndividualAs,DIfferentFrom,AllDifferent

3 facce di OwlLite,DL,Full

OWL: Sommario

Barbara Re 33

Origini di OWL

DAML

DAML+OIL

DAML = DARPA Agent Markup LanguageOIL = Ontology Inference Layer

OIL

OWL

RDF

Tutti influenzati da RDF

Barbara Re 34

Non tutti hanno bisogno di tutta l’espressività di OWL

OWL Full

OWL DL

OWL Lite

Le tre facce di OWL

Barbara Re 35

OWL Full OWL DL OWL Lite

Tutto quello che è stato presentato è disponibile nella versione Full. E’ inoltrepossibile miscelare ledescrizioni OWL conRDF(S).

Non è possibile usareowl:cardinality con TransitiveProperty.Non è possibile avere classimembro, ad esempio definiremetaclassi.

Non è possibile usare owl:minCardinalityo owl:maxCardinality.I soli valori consentiti sono perowl:cardinality sono 0 e 1.Non sono disponibili owl:hasValue,owl:disjointWith, owl:one of,owl:complementOf, owl:unionOf.

Confronti

Barbara Re 36

Protégé-OWL editor

Bundled in Protégé 2.1 (Full):

12

3

Barbara Re 37

OWL (in Protégé)

Individuals (e.g., “FourSeasons”)

Properties

Classes (e.g., “Hotel”)

Barbara Re 38

Individual

Represent objects in the domain Specific things Two names could represent the same “real-world”

individual Individuals are also known as instances. Individuals

can be referred to as being ‘instances of classes’.

SydneysOlympicBeachBondiBeach

Sydney

Barbara Re 39

Proprità

Properties are roughly equivalent to slots in Protege.

They are also known as roles in description logics and relations in UML and other object oriented notions

Sono relazioni binarie sugli individui

Barbara Re 40

Classi

The word concept is sometimes used in place of class

Classes are a concrete representation of concepts

Barbara Re 41

Range and Domain

Property characteristicsDomain: “left side of relation” (Destination)Range: “right side” (Accomodation)

Sydney

BestWestern

FourSeasonshasAccomodation

DestinationAccomodation

hasAccomodation

Barbara Re 42

Superclass Relationships

Classes can be organized in a hierarchy Direct instances of subclass are also (indirect)

instances of superclasses

Cairns

Sydney

Canberra

Coonabarabran

Barbara Re 43

Class Relationships

Classes can overlap arbitrarily

City

Sydney

CairnsBondiBeach

RetireeDestination

Barbara Re 44

Class Disjointness

All classes could potentially overlap In many cases we want to make sure they don’t

share instances

Sydney

UrbanArea RuralArea

SydneyWoomera

CapeYork

disjointWith

City Destination

Barbara Re 45

(Create a new OWL project)

Barbara Re 46

(Create simple classes)

Barbara Re 47

(Create class hierarchy and set disjoints)

Barbara Re 48

(Create Contact class with datatype properties)

Barbara Re 49

(Edit details of datatype properties)

Barbara Re 50

(Create an object property hasContact)

Barbara Re 51

(Create an object property with inverse)

Barbara Re 52

(Create the remaining classes and properties)

Barbara Re 53

Ci sono domande?