OWL (sémantika) ISKM89 Organizace dat - sémantický web | podzim 2023 Zuzana Nevěřilová | Centrum zpracování přirozeného jazyka Koncept (unární predikát, třída, např. Rodič) Role (binární predikát, vlastnost, např. máDítě) Třída - agregovaný popis generického objektu skrze vlastnosti a relace s jinými třídami. Třída Rodič: ● podtřída Člověk ● spojení se třídou Dítě pomocí vlastnosti máDítě ● … Instance je členem jedné nebo více tříd (typicky odpovídají individuovým rolím). Definice třídy (z deskripční logiky) Doména a obor hodnot (domain, range): ex:Člověk rdf:type rdfs:Class . ex:Povolání rdf:type rdfs:Class . ex:máPovolání rdf:type rdf:Property . ex:máPovolání rdfs:domain ex:Člověk . ex:máPovolání rdfs:range ex:Povolání . Inference pro individua: ex:Pavel ex:máPovolání ex:Řezník . ⇒ ex:Pavel rdf:type ex:Člověk. ex:Řezník rdf:type ex:Povolání. RDFS - doména, obor hodnot (class, domain, range) Na rozdíl od rdfs:Class, owl:Class je množina. Proto lze aplikovat množinové operace. 1. a class identifier (a URI reference) 2. an exhaustive enumeration of individuals that together form the instances of a class 3. a property restriction 4. the intersection of two or more class descriptions 5. the union of two or more class descriptions 6. the complement of a class description Definice třídy v OWL ⇔ ex:Human rdf:type owl:Class . Na rozdíl od RDF(S), nelze mít trojici Human Human Human. 1 Definice třídy referencí ⇔ ex:Opera rdf:type owl:Class . ex:MusicalWork rdf:type owl:Class . ex:Opera rdfs:subClassOf owl:MusicalWork . Použití vlastnosti owl:oneOf a vyjmenování individuí. Collection je uzavřená struktura, což znamená, že třída není definovaná ničím jiným. 2 Definice třídy výčtem Použití třídy owl:Restriction a vlastnosti onProperty: ● omezení hodnoty (value constraint): owl:hasValue, owl:someValuesFrom, owl:allValuesFrom ● omezení kardinality (cardinality constraint): owl:maxCardinality, owl:minCardinality, owl:cardinality 11 Omezení je vždy v kontextu jedné restrikce (Restriction). Třída je definovaná jako výčet individuí, které splňují podmínky. 3 Definice třídy restrikcí na vlastnost Rodič Dítě máDítě máDítě rdfs:domain Člověk . máDítě rdfs:range Člověk . Množinové operace předpokládají, že třídy jsou rozdílné. 4, 5 Definice třídy množinovými operacemi Doplněk je něco jiného, než explicitní deklarace rozdílnosti (owl:disjointWith). 6 Definice třídy množinovými operacemi: doplněk (complement) Správná, avšak ne příliš užitečná definice. Hodí se vypsat nutné a dostačující podmínky. owl:equivalentClass znamená, že třídy znamenají totéž. Dokud nepovažujeme třídy za individua, nelze o nich říct, že owl:Class1 owl:sameAs owl:Class2. Axiomy tříd (Class Axioms) nutná podmínka nutná a postačující nutná podmínka ● hierarchie rdf:subPropertyOf, rdfs:domain, rdfs:range ● vlastnosti individuí: Object properties - Datatype properties ● ekvivalence vlastností: owl:equivalentProperty, owl:inverseOf ● (globální) omezení kardinality (cardinality constraints): owl:FunctionalProperty ● logické charakteristiky: owl:SymmetricProperty, owl:TransitiveProperty Typy vlastností (Property) ● Object properties - instance owl:ObjectProperty hodnoty jsou individua (instance tříd) ● Datatype properties - instance owl:DatatypeProperty hodnoty jsou datové hodnoty (data values, literály) ● Annotation properties - anotace (pro lidi) mohou být o individuích, třídách, vlastnostech, ontologiích: label, comment, seeAlso, isDefinedBy ○ žádný vliv na inferenci ● Ontology properties - versionInfo, imports, priorVersion, backwardCompatibleWith, incompatibleWith, … Typy vlastností (Property) - ve vztahu k individuím owl:equivalentProperty Kdy použít? ns:title rdfs:isDefinedBy . :book ns:title "My book" . :book dc:title "My book" . Při modelování ontologií využijeme více jmenných prostorů, jejichž sémantika se překrývá. Typy vlastností (Property) - rovnost owl:sameAs Kdy použít? ns:title rdfs:isDefinedBy . :book ns:title "My book" . :book dc:title "My book" . dc:title rdfs:isDefinedBy . Takto owl:sameAs funguje jen mezi individui, takže tato inference bude fungovat jen při použití OWL Full. owl:inverseOf se používá u dvojic symetrických vlastností. owl:inverseOf je symetrická, tj. používáme-li inference, není třeba deklarovat :hasParent owl:inverseOf :hasChild Využívá se v dotazování (můžeme se ptát, kdo je něčí rodič, můžeme se ale i ptát, kdo je něčí dítě). Typy vlastností (Property) - rovnost s obrácenou šipkou owl:FunctionalProperty a owl:InverseFunctionalProperty Binární relace R={(x,y)} je funkce právě tehdy, když každé x má maximálně jedno y. Nelze mít trojice x1 :funcProperty :y1 a x1 :funcProperty :y2. Je to něco jiného než deklarace třídy pomocí owl:Restriction na kardinalitu. Typy vlastností (Property) - omezení kardinality owl:TransitiveProperty - tranzitivní relace (nejde dohromady s omezením kardinality) owl:SymmetricProperty - symetrie Typy vlastností (Property) - logické charakteristiky O individuích (instancích) se dá říci, zda jsou stejná či jiná: ● owl:sameAs ● owl:differentFrom - pro dvojici ● owl:AllDifferent - pro seznam V OWL Full jsou třídy (také) individua. Individua = instance tříd Sue věří, že kočky mají čtyři nohy. Reifikace :statement1 a rdf:Statement ; rdf:subject :kočka; rdf:predicate :has_part; rdf:object [ a :noha; :cardinality "4" ]. :sue :believes :statement1. Instance vlastností Sue věří, že kočky mají čtyři nohy. Vlastnost singleton :kočka :has_part1 [ a :noha; :cardinality "4" ]. :has_part1 rdf:singletonPropertyOf :has_part. :sue :believes :has_part1. Obojí je W3C standard, později uvidíme možná rozšíření. Vhodné pro modelování: ● původu tvrzení (provenance, kdo si to myslí?) ● metadat tvrzení (např. kdy si to myslí?) ● spolehlivost tvrzení, důvěra ve zdroj (reliability and trust) Reifikace musí být modelována obezřetně, problém se může projevit nekonečnými cykly a nekonečnou rekurzí. Abychom mohli definovat, co je to rekurze, musíme definovat rekurzi. Reifikace a singleton vlastnosti