Upload
antonio-sanfelice
View
481
Download
2
Embed Size (px)
DESCRIPTION
Uso della logica fuzzy all'interno di ontologie scritte in OWL2, basato sul lavoro di U. Straccia e F. Bobillo. Presentazione fatta per il corso di Web Semantico @ Università degli studi di salerno.
Citation preview
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Web Semantico e Logica Fuzzy
Antonio Sanfelice
Università degli Studi di Salerno
18 Novembre 2011
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Problemi della logica classica
Paradosso del mucchio
1 Un �lm che dura 5 minuti è breve;
2 un �lm breve che dura un minuto in più è ancora breve;
3 =⇒ Un �lm che dura 1030 anni è breve (?!)
Vi è piaciuto il �lm?
Si (true);
No (false);
Abbastanza (?!);
Non proprio (?!!).
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Problemi della logica classica
Il problema
La teoria naive degli insiemi non permette di de�nireinsiemi vaghi (�lm brevi o recenti);
La logica classica non permette di trattare la conoscenzavaga e imprecisa (Il �lm è molto divertente);
La soluzione
La soluzione arriva nei primi anni '60 da un matematico azero:Lofti A. Zadeh, che de�nisce due strumenti:
Insiemi Fuzzy
Logica Fuzzy
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
L'idea di base
Fuzzy Set
Consideriamo il grado di appartenenza dell'elementoall'insieme:
Il signore degli anelli ∈ Film Lunghi con grado 0.9
Star Wars ∈ Film Fantasy con grado 0.3
The Eye 3 ∈ Film Horror con grado 0.1
Fuzzy Logic
Consideriamo il grado di verità dell'asserzione:
Twilight è un bel �lm: abbastanza falso (verità 0.1)
Paranormal Activity è spaventoso: meh (verità 0.5)
Una settimana da Dio è divertente: vero (verità 1.0)
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
De�nire un fuzzy set
De�nizione
Dato un insieme U de�nito universo, un fuzzy set A su U è unafunzione
µA : U → [0, 1]
µA è anche detta funzione di appartenenza (membership)
Un fuzzy set viene de�nito
nel caso U discreto
A= ∑x∈U
x/µA(x)
nel caso U continuo
A=∫U
x/µA(x)
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Funzioni di appartenenza
Lineare Triangolare
Spalla destra Trapezoidale
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Relazioni fuzzy binarie
Premesse
Siano U e V due insiemi classici.Sia A un fuzzy set de�nito su U con f.a. µA
Sia B un fuzzy set de�nito su V con f.a. µB
Prodotto cartesiano fra insiemi fuzzy
Il prodotto cartesiano S fra A e B si ottiene come segue:
1 S ← UxV
2 µS(x ,y)←min(µA(x),µB(y)) : x ∈ U, y ∈ V
Relazione fuzzy
come nel caso classico, R(A,B)⊆ AxB ;simili(Avatar, Pocahontas) = 0.65
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Logica Fuzzy
Predicati Fuzzy
Nella Logica Fuzzy i predicati sono espressi nella forma
A è T
dove:
A è una Variabile Linguistica
T è un Termine, ovvero un valore assumibile dalla V.L.,rappresentato da un fuzzy set.
Esempi
(l'età di) Harry Potter 7 è nuovo(l'età in) Una notte da leoni è recente(l'età di) La storia in�nita è vecchio
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Esempio
Variabile linguistica Età (�lm)
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Modi�catori Fuzzy
E se volessi modi�care il signi�cato di un termine?
Questo �lm è molto vecchio;
Questo �lm è abbastanza recente;
È possibile de�nire dei modi�catori fuzzy
Modi�catori Fuzzy
Un modi�catore fuzzy è una funzione che agisce sulla funzionedi appartenenza del fuzzy set. Si dividono in diverse categorie
Restrittivi;
Espansivi;
. . .
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Modi�catori: Esempi
Elevamento a potenza
mα(A) :U → [0, 1]
x 7→ (µA(x))α
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Modi�catori: Esempi
Traslazione
mα(A) :U → [0, 1]
x 7→ µA(x−α)
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Logiche Fuzzy
Diversi tipi di logiche
Si distinguono a seconda di come de�niscono le operazioni di:
T-Norma (Intersezione);
T-Conorma (Unione);
Negazione;
Implicazione;
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Logiche Fuzzy
Famiglie di logiche fuzzy
Famiglia Zadeh Gödel �ukasiewicz
t-Norma min{α,β} min{α,β} max{α +β −1,0}
t-Conorma max{α,β} max{α,β} min{α +β ,1}
Negazione 1−α
{1, α = 0
0, α > 01−α
Implicazione max{1−α,β}{
1, α ≤ β
β , α > βmin{1−α +β ,1}
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Ontologia
De�nizione Formale
È una tuplaO ≡ (C , T , R, σ)
Dove
C insieme di concetti;
T relazione d'ordine parziale
Ri�essivaAnti-SimmetricaTransitiva
R è un insieme di relazioni;
σ : R → C+ funzione che associa ad ogni relazione la suaarietà;
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Ontologia Fuzzy
De�nizione Formale
È una tuplaO ≡ (C , T , R)
Dove
C insieme di concetti fuzzy (fuzzy sets);
T Tassonomia Fuzzy
A è un B con grado α
R è un insieme di relazioni fuzzy;
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Scelta dello strumento
Come rappresentare la conoscenza imprecisa?
Attualmente non ci sono standard e non sembra che ce nesaranno a breve termine;
Si è ancora alla ricerca di una soluzione che o�ra un buontradeo� fra capacità espressiva e semplicità d'uso.Possiamo identi�care principalmente due �loni:
Estendere un linguaggio esistente con meccaniche fuzzy;
Usare un linguaggio esistente per rappresentare concetti
fuzzy;
Nella situazione attuale conviene sicuramente usare unlinguaggio già esistente: usiamo OWL2
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Caratteristiche dello strumento
Cosa dobbiamo riuscire a fare con OWL2?
rappresentare fuzzy set;
de�nire ruoli astratti fuzzy;
de�nire ruoli concreti fuzzy;
de�nire modi�catori fuzzy;
de�nire relazioni tassonomiche fuzzy.
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Una possibile soluzione
Fuzzy OWL2
Utilizza il meccanismo delle annotazioni di OWL2.Ciò consente di:
Estendere ontologie esistenti con concetti fuzzy;
Utilizzare editor testati e ra�nati per creare le ontologie;
Continuare ad usare reasoner non-fuzzy, i quali scarterannosemplicemente le annotazioni;
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Annotazioni
Sintassi OWL/XML
<AnnotationAssertion >
<AnnotationProperty IRI="# annotationProperty "/>
<IRI >#className </IRI >
<Literal datatypeIRI ="&rdf;PlainLiteral">
annotationValue
</Literal >
</AnnotationAssertion >
Fuzzy OWL2
Usa una propria annotation property: fuzzyLabel;
Un elemento può avere al massimo una annotazione fuzzy;Ogni annotazione fuzzy deve essere delimitata dai tag<fuzzyOwl2></fuzzyOwl2>;
L'attributo fuzzyType speci�ca il tipo di elementoannotato;
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Fuzzy Ontology
Scelta della logica
Tramite la fuzzyLabel è possibile sceglire quale logica usare.Sono supportate:
Zadeh
�ukasiewicz
Sintassi
<fuzzyOwl2 fuzzyType =" ontology">
<FuzzyLogic logic= <FUZZY_LOGIC >/>
</fuzzyOwl2 >
<FUZZY_LOGIC > := "lukasiewicz" | "zadeh"
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Fuzzy Datatype
Sintassi
<fuzzyOwl2 fuzzyType =" datatype">
<DATATYPE >
</fuzzyOwl2 >
<DATATYPE >:=
<Datatype type=" leftshoulder" a="<DOUBLE >" b="<DOUBLE >"/> |
<Datatype type=" rightshoulder" a="<DOUBLE >" b="<DOUBLE >"/>|
<Datatype type=" triangular" a="<DOUBLE >" b="<DOUBLE >"
c="<DOUBLE >"/> |
<Datatypetype =" trapezoidal" a="<DOUBLE >" b="<DOUBLE >"
c="<DOUBLE >" d="<DOUBLE >"/>
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Fuzzy Datatype: Esempio
Datatype classico
<DatatypeDefinition >
<Datatype IRI='#Vecchio '/>
<DataIntersectionOf >
<DatatypeRestriction >
<Datatype abbreviatedIRI='xsd:double '/>
<FacetRestriction facet='&xsd;minInclusive '>
<Literal datatypeIRI ='&xsd;integer '>0</Literal >
</FacetRestriction >
</DatatypeRestriction >
<DatatypeRestriction >
<Datatype abbreviatedIRI='xsd:double '/>
<FacetRestriction facet='&xsd;maxInclusive '>
<Literal datatypeIRI ='&xsd;integer '>200</Literal >
</FacetRestriction >
</DatatypeRestriction >
</DataIntersectionOf >
</DatatypeDefinition >
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Fuzzy Datatype: Esempio
L'annotazione Fuzzy
<AnnotationAssertion >
<AnnotationProperty IRI='#fuzzyLabel '/>
<IRI >#Vecchio </IRI >
<Literal datatypeIRI ='&rdf;PlainLiteral '>
<fuzzyOwl2 fuzzyType =" datatype">
<Datatype type=" leftshoulder" a="5" b="7"/>
</fuzzyOwl2 >
</Literal >
</AnnotationAssertion >
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Modi�catori Fuzzy
Sintassi
<fuzzyOwl2 fuzzyType =" modifier">
<MODIFIER >
</fuzzyOwl2 >
<MODIFIER >:=
<Modifier type=" linear" c="<DOUBLE >"/>|
<Modifier type=" triangular" a="<DOUBLE >" b="<DOUBLE >"
c="<DOUBLE >"/>
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Modi�catori Fuzzy: Esempio
Annotazione
<AnnotationAssertion >
<AnnotationProperty IRI='#fuzzyLabel '/>
<IRI >#molto </IRI >
<Literal datatypeIRI ='&rdf;PlainLiteral '>
<fuzzyOwl2 fuzzyType =" modifier">
<Modifier type=" linear" c="0.8"/ >
</fuzzyOwl2 >
</Literal >
</AnnotationAssertion >
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Modi�catori Fuzzy: Applicazione
Sintassi
<fuzzyOwl2 fuzzyType =" datatype">
<Datatype type=" modified" modifier="<STRING >"
base="<STRING >"/>
</fuzzyOwl2 >
Annotazione
<AnnotationAssertion >
<AnnotationProperty IRI='#fuzzyLabel '/>
<IRI ># MoltoVecchio </IRI >
<Literal datatypeIRI ='&rdf;PlainLiteral '>
<fuzzyOwl2 fuzzyType =" datatype">
<Datatype type=" modified" modifier =" molto"
base=" vecchio">
</fuzzyOwl2 >
</Literal >
</AnnotationAssertion >
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Asserzioni Fuzzy
Sintassi
<fuzzyOwl2 fuzzyType ="axiom">
<Degree value="<DOUBLE >"/>
</fuzzyOwl2 >
Esempio
<ClassAssertion >
<Class IRI='#Spaventoso '/>
<NamedIndividual IRI='#paranormalActivity '/>
<Annotation >
<AnnotationProperty IRI='#fuzzyLabel '/>
<Literal datatypeIRI ='&rdf;PlainLiteral '>
<fuzzyOwl2 fuzzyType ="axiom">
<Degree value ="0.5"/ >
</fuzzyOwl2 >
</Literal >
</Annotation >
</ClassAssertion >
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Plugin per Protégé
WebSemantico eLogica Fuzzy
AntonioSanfelice
Introduzione
OntologieFuzzy
Fuzzy OWL2
Riferimenti
U.Straccia, F.BobilloFuzzy Ontology Representation Using OWL 2
Martine De CockRepresenting the Adverb Very in Fuzzy Set Theory