260 likes | 448 Views
DAL WEB AL SEMANTIC WEB Aspetti teorici e tecnologici Carmagnola Francesca Dipartimento Informatica C.so Svizzera 185, Torino carmagnola@di.unito.it. IN SINTESI…. In sintesi, un’ontologia descrive formalmente il dominio di un discorso e consiste in:
E N D
DAL WEB AL SEMANTIC WEB • Aspetti teorici e tecnologici • Carmagnola Francesca • Dipartimento Informatica • C.so Svizzera 185, Torino • carmagnola@di.unito.it
IN SINTESI… 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
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)
OIL (Ontology Inference Layer) • 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
DAML (Darpa Agent Markup Language • 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
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à
DAML OIL RDF Tutti influenzati da RDF DAML+OIL ORIGINI DI OWL OWL
OWL: SINTASSI 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 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 >
OWL: SINTASSI • 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 >
ESEMPIO Africa world life Animal Plant Herbivore Carnivore Tree Giraff Leon Pioppo Dominio: africa world life
ESEMPIO <?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>
<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 consistency • Violation of property constraints • Cycles in the class hierarchy • Terms which are used but not defined • Analysis: style • Classes with a single subclass • Classes and slots with no definitions • Slots with no constraints (value type, cardinality) • Tools for automated analysis • Chimaera (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 was designed
Ontologie:open issues • Ontology maintenance • Ontology merging • Having two or more overlapping ontology, create a new one • Ontology mapping • Create a mapping between ontologies • Versioning and evolution • Compatibility between different versions of the same ontology • Compatibility 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à?
Ontologie: open issues 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
Tool • 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/
Protege e WebODE • Protégé2000 • Technology: Java standalone application; plug-in architecture • Knowledge model features: OKBC compliant: classes and slots. Also metaclasses Axioms in KIF and PAL Knowledge 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
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