1 OWL: Ontology Web Language Pierluigi DAmadio a.a.2003/2004
2 Web Semantico: una visione? Estensione del WWW: Macchine capaci di processare e di capire il significato dei dati Linguaggi proposti dal W3C XML RDF RDF(S) OWL Syntax Semantics
3 Ontologie: definizioni a confronto a systematic explanation of being (Philosophy) … defines the basic terms and relations including the vocabulary of a topic area as well as the rules for combining terms and relations to define extensions to the vocabulary. (Neches) … an explicit specification of a conceptualization. (Gruber) An ontology is a formal and explicit specification of a shared conceptualization. (Borst) … a logical theory which gives an explicit, partial account of a conceptualization. (Guarino)
4 XML Vantaggi: estendibilità del linguaggio: ciascuno ha la possibilità di scrivere un proprio schema fornisce uno standard per rappresentare le informazionitramite alberi etichettati Svantaggi: La semantica non è specificata formalmente
5 RDF versus XML In XML è importante lordine con cui sono fatte le asserzioni, in RDF no. La semantica in RDF è specificata formalmente, in XML è immersa nelle etichette che si associano ai tag e nella sintassi del DTD. La specifica formale di RDF è raggiungibile a:
6 RDF: Modello Soggetto: La risorsa che si vuole descrivere Predicato: Una proprietà della risorsa Oggetto: Il valore della proprietà Una combinazione dei precedenti elementi è detta statement (o regola) La risorsa che si vuole descrivere [Soggetto] Una proprietà della risorsa [Predicato] Il valore della proprietà [Oggetto] River BodyOfWate r emptiesInto
7 RDF: Esempio <River rdf:ID="Yangtze" xmlns:rdf=" xmlns=" kilometers western China's Qinghai-Tibet Plateau East China Sea RDF fornisce lattributo ID per identificare la risorsa che viene descritta. Lattributo ID vive nel namespace RDF. Lidentificatore "fragment indica la fine del namespace. 123
8 RDF Schema RDF Schema fornisce nozioni di modellazione per: esprimere classi (Class) e le interrelazioni tra classi (subClassOf). definire proprietà (Property,subPropertyOf) e associarle alle classi. domain, range definire le istanze (non necessariamente ground) con la proprietà type River BodyOfWater emptiesInto domain range YangtzeeRiver type
9 OWL: Sommario Origini di OWL Properties Symmetric, Transitive, Functional, Inverse Functional range, domain, subPropertyOf, inverseOf, equivalentProperty Class SubClassOf, intersectionOf, unionOf, complementOf, Enumeration, Equivalence, Disjoint Statements sulle istanze ground sameIndividualAs,DIfferentFrom,AllDifferent 3 facce di Owl Lite,DL,Full
10 Origini di OWL DAM L DAML+ OIL DAML = DARPA Agent Markup Language OIL = Ontology Inference Layer OIL OWL RDF Tutti influenzati da RDF
11 Definire Property in OWL OWL usa rdfs:range, rdfs:domain, e rdfs:subPropertyOf. OWL introduce due classi di Property: owl:ObjectProperty è la classe di proprietà che hanno come valore un oggetto istanza di una classe (Resource2Resource) owl:DatatypeProperty è la classe di proprietà che hanno come valore un dato di tipo semplice o strutturato (rdfs:Literal o XML Schema built-in datatype)
12 Gerarchia delle property classes rdf:Property owl:ObjectProperty owl:DatatypeProperty owl:SymmetricProperty owl:TransitiveProperty owl:FunctionalProperty FunctionalProperty e InverseFunctionalProperty possono essere usate per associare Resources a Resources, oppure Resources a un RDF Schema Literal o a un XML(S) datatype. InverseProperty è una proprietà di ObjectProperty owl:InverseFunctionalProperty
13 Ocean Lake BodyOfWater River Stream Sea NaturallyOccurringWaterSource Tributary Brook Rivulet Esempio: la tassonomia delle sorgenti dacqua
14 Se un sorgente dacqua A connectsTo una sorgente B, allora la sorgente B connectsTo A. Symmetric Properties NaturallyOccurringWaterSource Properties: connectsTo: NaturallyOccurringWaterSource connectsTo Symmetric Property type
15 Se A è containedIn B, B è containedIn C allora A è containedIn C. Sea Properties: containedIn: BodyOfWater containedI n TransitiveP roperty type Transitive Properties
16 River Properties: emptiesInto: BodyOfWater Per ogni istanza cè al più un valore per la property emptiesInto FunctionalP roperty type Functional Properties
17 BodyOfWater River Properties: emptiesInto: BodyOfWater Properties: feedsFrom: River Se una proprietà P1 associa la Resource1 alla Resource2, allora la Inverse property associa la Resource2 alla Resource1 </owl:ObjectProperty feedsFrom emptiesInt o inverseOf Inverse Properties
18 BodyOfWaterRiver Per un dato valore di range il dominio è unico Properties: emptiesInto: BodyOfWater Properties: feedsFrom: River (functional) Inverse Functional Properties
19 Global vs Local rdfs:range stabilisce una global restriction su emptiesInto, ossia, rdfs:range value si applica a River e a tutte le sottoclassi di River. Nel contesto di Flueve, vogliamo restringere il range della property emptiesInto alla sola classe Sea, ossia vogliamo una local restriction of emptiesInto. River Flueve Properties: emptiesInto: BodyOfWater Flueve: a River emptiesInto Sea
20 Due forme di rdfs:subClassOf Specifica la classe usando lattributo rdf:resource. 1 Specifica la risorsa usando owl:Restriction. Specifica che tutti i valori sono presi da Sea 2 anonymous class
21 Restrizioni Tutti i valori devono appartenere ad una data classe (allValuesFrom). Al più un valore deve appartenere ad una certa classe (someValuesFrom). La restrizione prescrive un valore specifico (hasValue). La restrizione impone un vincolo sulla cardinalità delle occorrenze dellattributo (cardinality,mincardinality,maxcardinality)
22 Definire Classi in OWL Le classi di OWL sono molto più espressive delle classi di RDF Schema classes. RDFSOWL rdfs:Class owl:Class
23 Classi: Esempio River Flueve Properties: emptiesInto: BodyOfWater Flueve (French): un fiume che sfocia nel mare". Rivìere Rivìere (French): un fiume che sfocia in un lago o in un altro fiume.
24 intersectionOf Flueve I membri di questa classe anonima sono istanze che hanno la proprietà emptiesInto in cui tutti i valori sono istanze di Sea. River
25 Lereditarietà multipla Flueve Ci potrebbero essere dei Rivers che sfociano nel mare che non sono Flueves I membri di questa classe anonima sono istanze che hanno la proprietà emptiesInto in cui tutti i valori sono istanze di Sea. River
26 unionOf I membri di questa classe anonima sono istanze che hanno la proprietà emptiesInto in cui tutti i valori sono istanze di Sea. I membri di questa classe anonima sono istanze che hanno la proprietà emptiesInto in cui tutti i valori sono istanze di River. Rivìere River
27 complementOf NaturallyOccurringWaterSource Intersezione delle WaterSource e il complementOf ManMadeWaterSource. WaterSource ManMadeWaterSource
28 oneOf: enumerare le istanze di una classe … Qui enumeriamo i fiumi che sono protetti dal Trattato di Kyoto
29 equivalentClass Ocean Lake LakeOceanSea Sea Vogliamo affermare che BodyOfWater è equivalente a LakeOceanSea.
30 disjointWith In questa definizione di River, unistanza di River non può essere unistanza di Brook, Rivulet o Tributary. La proprietà disjointWith è una proprietà simmetrica.
31 Sommario delle proprietà delle classi Properties: subClassOf: rdfs:Class domain: rdfs:Class range: rdfs:Class Properties: intersectionOf: rdf:List unionOf: rdf:List complementOf: owl:Class oneOf: rdf:List equivalentClass: owl:Class disjointWith: owl:Class Properties: onProperty: rdf:Property allValuesFrom: rdfs:Class hasValue: someValuesFrom: rdfs:Class cardinality: xsd:nonNegativeInteger minCardinality: xsd:nonNegativeInteger maxCardinality: xsd:nonNegativeInteger rdfs:Class owl:Class owl:Restriction
32 OWL statements owl:sameIndividualAs Applicabile a due istanze Rinforza functionalProperty owl:differentFrom Applicabile a due istanze Può portare a contraddizioni con functionalProperty owl:AllDifferent Applicabile a un set di istanze
33 Le tre facce di OWL Non tutti hanno bisogno di tutta lespressività di OWL: OWL Full OWL DL OWL Lite
34 Confronti OWL FullOWL DL OWL Lite Tutto quello che è stato presentato è disponibile nella versione Full. E inoltre possibile miscelare le descrizioni OWL con RDF(S). Non è possibile usare owl:cardinality con TransitiveProperty. Non è possibile avere classi membro, ad esempio definire metaclassi. Non è possibile usare owl:minCardinality o owl:maxCardinality. I soli valori consentiti sono per owl:cardinality sono 0 e 1. Non sono disponibili owl:hasValue, owl:disjointWith, owl:one of, owl:complementOf, owl:unionOf.
35 OWL Guide fornisce una buona descrizione di OWL con molti esempi: – OWL Reference è una guida completa e dettagliata: – Per tutti gli altri documenti OWL, e informazioni su Semantic Web: – OWL Resources