Ontologie: RDF e OWLOntologie: RDF e OWL
UNIVERSITA’ DI CAMERINOCorso di laurea in Informatica
Barbara [email protected]
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?