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