dal web al semantic web aspetti teorici e tecnologici carmagnola francesca dipartimento informatica...
TRANSCRIPT
DAL WEB AL SEMANTIC WEB
Aspetti teorici e tecnologici
Carmagnola Francesca
Dipartimento Informatica
C.so Svizzera 185, Torino
In sintesi, un’ontologia descrive formalmente il dominio di un
discorso e consiste in:
una lista finita di termini che denotano concetti (ossia classi
di oggetti) del dominio
relazioni: gerarchie di classi, proprietà, restrizioni di valori,
relazioni logiche e di disgiunzione
IN SINTESI…
LA SCELTA DEL LINGUAGGIO
Una volta selezionati i componenti dell’ontologia occorre definirli in
maniera esplicita, mediante un opportuno linguaggio
Per esprimere in maniera formale le ontologie sono stati proposti
diversi linguaggi, ciascuno con diverse capacità espressive
• RDFS• OIL• DAML
Lo standard W3C è attualmente OWL (Ontology Web Language)
Linguaggio standard per le ontologie che fornisce, a partire dagli Schemi RDF, un approccio multilivello, basato su una gerarchia stratificata
Vantaggi
•possibilità di supportare la definizione di ontologie, il loro cambiamento, la loro verifica e integrazione per mezzo del sistema FaCT che esamina la consistenza di tutte le definizioni ontologiche per scoprire i legami fra le sottoclassi
Svantaggi
•prevede un numero limitato e immutabile di proprietà senza la possibilità di avere definizioni di relazioni composte che rimangono slegate e indipendenti
•non supporta domini concreti come interi e stringhe, e questo costituisce un grande limite per la rappresentazione della conoscenza ontologica
OIL (Ontology Inference Layer)
•Linguaggio di markup ontologico promosso negli Stati Uniti dall’agenzia Darpa
•Combina caratteristiche di altri linguaggi basati sul Semantic Web
•E’costruito su RDF e lo integra con elementi di logica descrittiva
•Offre un mezzo per l’espressione e interpretazione della classificazione, delle asserzioni e delle proprietà dei metadati rappresentati da RDF e RDFS
DAML (Darpa Agent Markup Language
OWL (Ontology Web Language)
OWL (Ontology Web Language) consente di:
specificare meglio le relazioni tra le classi
– disgiunzione (maschi/femmine)
– equivalenza
– combinazioni booleane
complementarietà
unione
intersezione
definire le restrizioni sulle proprietà
– di valore
– di cardinalità
ORIGINI DI OWL
OWL
DAML
DAML+OIL
OIL
RDF
Tutti influenzati da RDF
Vi sono tre versioni di OWL:
OWL Full: completamente compatibile con RDF; molto potente
ed espressivo
OWL DL: meno efficiente per il ragionamento e meno
compatibile con RDF
OWL Lite: restrizioni su OWL DL, semplice da implementare,
poco espressivo. Buono per semplici classificazioni tassonomiche
con poche restrizioni sulle classi
OWL: SINTASSI
La scelta della versione di OWL da usare dipende dal dominio che si
deve descrivere e dall’obiettivo che con la descrizione di tale dominio
si vuole perseguire
OWL: SINTASSI
definire una classe
<owl:Class rdf:ID=“associateProfessor”>
<rdfs:subClassOf rdf:resource=“staff” >
</owl:Class>
dire che questa classe è disgiunta da un’altra
<owl:disjointWith rdf:resource=“assistantProfessor” >
dire che questa classe è equivalente ad un’altra
<owl:equivalentClass rdf:resource=“teacher” >
OWL: SINTASSI
Proprietà
– Object property: collega un oggetto con un altro oggetto (“sotto-proprietà”)
<owl:ObjectProperty rdf:ID=“isTaughtBy” >
<rdfs:domain rdf:resource=“#course”>
<rdfs:range rdf:resource=“#staff” > </ owl:ObjectProperty >
– Data type property: collega un oggetto con un valore
<owl: DataTypeProperty rdf:ID=“age” >
<rdfs:range rdf:resource=“www.w3c.org/01/xmlschema#nonNegativeInteger” >
</ owl: DataTypeProperty >
Proprietà inversa
<owl:ObjectProperty rdf:ID=“teaches” >
<rdfs:domain rdf:resource=“staff”>
<rdfs:range rdf:resource=“course” >
<owl:inverseOf rdf:resource=“isTaughtBy”
</ owl:ObjectProperty >
Restrizioni di proprietà
- specifica il valore che l’elemento di “onProperty” deve avere
<owl: hasValue rdf:resource=“2”>
- possibili valori della proprietà devono provenire da questa classe
<owl:allValueFrom rdf:resource=“professor”>
OWL: SINTASSI
Operatori booleani
Complemetarietà <owl:ComplementOf >
Unione tra classi <owl:UnionOf >
Intersezione <owl:intersectionOf” >
Enumerazione
<owl:OneOf rdf:ID=“weekDays” >
< owl:thing rdf:about=“#Monday”>
< owl:thing rdf:about=“#Tuesday”>
</ owl: OneOf >
OWL: SINTASSI
Africa world life
Animal Plant
Herbivore Carnivore Tree
Giraff Leon Pioppo
ESEMPIO
Dominio: africa world life
<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http:// www.w3.org/1999/02/owl #">
...
<owl:Ontology rdf:about =“xml:base “ />
<owl:Class rdf:ID=“animal“ >
<rdfs:Comment >classe degli animali </rdfs:Comment >
</owl:Class>
<owl:Class rdf:ID=“plant“ >
<rdfs:Comment >classe delle piante, disgiunta da animali </rdfs:Comment >
<owl:DisjointWith rdf:resource=“animal“ >
</owl:Class>
<owl:Class rdf:ID=“tree“ >
<rdfs:Comment >classe delle alberi, sottoclasse d alberi </rdfs:Comment >
<rdfs:SubClassOf rdf:resource=“plants“ >
</owl:Class>
ESEMPIO
<owl:Class rdf:ID=“pioppo“ >
<rdfs:Comment >i pioppi sono parte della classe alberi </rdfs:Comment >
<rdfs:SubClassOf >
<owl:Restriction >
<owl:onProperty rdf:resource=“#is_part_of” / >
<owl:allValueFrom rdf:resource=“#tree” / >
</owl:Restriction >
</rdfs:SubClassOf >
</owl:Class>
<owl:Class rdf:ID=“herbivore“ >
<rdfs:Comment >erbivori sono animali che mangiano solo piante
</rdfs:Comment >
< rdfs:SubClassOf rdf:resource=“#animal” >
<owl:class rdf:about =“animal” >
<owl:Restriction >
<owl:onProperty rdf:resource=“#eats/ >
<owl:allValueFrom>
<owl:class rdf:about =“plant” >
<owl:Restriction >
<owl:onProperty rdf:resource=“#is_part_of” / >
<owl:allValueFrom rdf:resource=“#plant” / >
</owl:Restriction >
</owl:allValueFrom>
</owl:Restriction >
</owl:Class >
</rdfs:SubClassOf >
</owl:Class>
Ontologie:open issues
Knowledge acquisition
Knowledge acquisition is a bottleneck
Sharing and reuse alleviate the problem
But we need automated knowledge acquisition techniques
Linguistic techniques: ontology acquisition from text
Machine-learning: generate ontologies from structured documents (e.g., XML documents)
Exploiting the Web structure: generate ontologies by crawling structured Web sites
Ontologie:open issues
Analysis
Analysis: semantic consistencyViolation of property constraintsCycles in the class hierarchyTerms which are used but not defined
Analysis: styleClasses with a single subclassClasses and slots with no definitionsSlots with no constraints (value type, cardinality)
Tools for automated analysisChimaera (Stanford KSL)DAML validator
Ontologie:open issues
Evaluation
One of the hardest problems in ontology design
Ontology design is subjective
What does it mean for an ontology to be correct (objectively)?
The best test is the application for which the ontology wasdesigned
Ontologie:open issues
Ontology maintenance
Ontology mergingHaving two or more overlapping ontology, create a new
one
Ontology mappingCreate a mapping between ontologies
Versioning and evolutionCompatibility between different versions of the same
ontologyCompatibility between versions of an ontology and
instance data
Ontologie:open issues
Ontology languages
What is the “right” level of expressiveness?
What is the “right” semantics?
When does the language make “too many” assumptions?
Ontologie: open issues
Quale tool?
Quello che piu’ mi piace?
Quello che conosco meglio?
Quello che traduce l’ontologia in uno specifico formalismo?
Quello che meglio si adatta alle mie necessità?
Tipi di tool• Ontology development tools
– Editors and browsers
– Graphical editors
– Translators
– Ontology library management
– Ontology documentation
– Ontology population
– Evaluation
– Evolution
• Merge and alignement tools
• Ontology-based annotation tools
• Querying tools and inference engines
• Ontology learning tools
Ontologie: open issues
• OilEd from University of Manchester http://oiled.man.ac.uk/• Ontolingua from KSL (Stanford University)
http://www-ksl.stanford.edu• OntoSaurus from ISI (USA)
http://www.isi .edu/isd/ontosaurus.html• OntoEdit from Karlsrhue Univ.
http://ontoserver.aifb.unikarlsruhe.de/ontoedit/• Protégé 2000 from SMI (Stanford University)
http://protege.stanford.edu /• WebOnto from KMI (Open University)
http://kmi.open.ac.uk/projects/webonto/• WebODE from UPM http://webode.dia.fi.upm.es/webODE/• KAON from AIFB and FZI at the University of Karlsruhe
http://kaon.semanticweb.org/
Tool
• Protégé2000– Technology: Java standalone application; plug-in architecture– Knowledge model features:
OKBC compliant: classes and slots. Also metaclassesAxioms in KIF and PALKnowledge acquisition forms automatically generated for
capturing instances– Merge tools: protégéPrompt– Imports: RDF, OIL, XML– Exports: RDF, OIL, XML
• WebODE– Technology: Java workbench.– Knowledge model features:
• Support to Methontology; OCML; axioms in Prolog– Imports: RDF(S), OIL, DAML+OIL, F-logic, Prolog– Exports: RDF(S), DAML+OIL, OWL , F-logic, Prolog
Protege e WebODE
Sitografia per l’esame
www.expedia.it
www.edreams.it
www.turistipercaso.it
www.vialattea.it
www.montagnedoc.it
www.lastminutetour.com
www.icani.it
www.carrefour.it