dal web al semantic web aspetti teorici e tecnologici carmagnola francesca dipartimento informatica...

Post on 02-May-2015

221 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

DAL WEB AL SEMANTIC WEB

Aspetti teorici e tecnologici

Carmagnola Francesca

Dipartimento Informatica

C.so Svizzera 185, Torino

carmagnola@di.unito.it

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

top related