OWL (syntax) ISKM89 Organizace dat - sémantický web | podzim 2023 Zuzana Nevěřilová | Centrum zpracování přirozeného jazyka ● na první pohled rozšiřuje popis v RDF(S) o vlastnosti relací ● ve skutečnosti se vracíme k deskripční logice (DL) ● to všechno kvůli odvozování OWL používá funkcionální syntax (functional syntax), což je vrstva mezi: ● jakoukoliv syntaxí zápisu (např. RDF) ● sémantikou Funkcionální syntax se podobá tomu, co jsme viděli u DL. Ještě více se tomu podobá manchesterská syntax (https://www.w3.org/TR/owl2-manchester-syntax/) OWL má dvě sémantiky: RDF-based a Direct. Web Ontology Language (OWL) Dva pohledy na OWL OWL jako rozšíření RDF ● přidáme negaci ● přidáme charakteristiky vlastností ● inference se rozšíří (např. díky owl:TransitiveProperty) ● můžeme použít nepojmenované (anonymní) třídy OWL jako DL ● tvrzení zapisujeme jako formule DL ● důkazy tvrzení vedeme stejně jako důkazy v DL ● místo anonymních tříd používáme množinové operace a závorky ● anotace jsou jen “nálepky”, nemají vliv na důkazy Koncept (unární predikát, třída, např. Rodič) C, D - koncepty Deskripční logika, formalizace ⊤ všechno top ⊥ nic bottom ⊓ průnik (logický součin) konceptů C ⊓ D C and D ⊔ sjednocení (logický součet) konceptů C ⊔ D C or D ¬ negace (doplněk) konceptu ¬ C not C ⊑ podmnožina konceptů C ⊑ D all C are D ≡ ekvivalence konceptů C ≡ D C is equivalent to D =˙ definice konceptů C = D C is defined to be equal to D Koncept (unární predikát, třída, např. Rodič) Role (binární predikát, vlastnost, např. máDítě) C, D - koncepty, a, b - individua v roli R (R-related) - koncept R-následník (R-successor) - koncept C, který má roli R, např. ∃máDítě.Žena (věc, která má aspoň jedno dítě ženu) Deskripční logika, formalizace ∀ univerzální kvantifikátor ∀R.C R-následníci jsou všichni C ∃ existenční kvantifikátor ∃R.C R-následník C existuje : přiřazení konceptu (assertion) a : C nebo C(a) a je instancí C : přiřazení role (a,b) : R nebo R(a,b) a je pro b v roli R OWL jako deskripční logika - funkcionální syntax DL OWL Manchester ⊤ (top) owl:Thing owl:Thing ⊥ (bottom) owl:Nothing owl:Nothing Concept name Class Class Role name Object property Object property ¬C ObjectComplementOf(C) not C C ⊔ D ObjectUnionOf(C D) C or D C ⊓ D ObjectIntersectionOf(C D) C and D ∃r.C ObjectSomeValuesFrom(r C) r some C ∀r.C ObjectAllValuesFrom(r C) r only C (≥ n r.C) ObjectMinCardinality(n r C) r min n C (≤ n r.C) ObjectMaxCardinality(n r C) r max n C (= n r.C) ObjectExactCardinality(n r C) r exactly n C Funkcionální syntax složitější oproti Manchester syntax (ale velmi podobné) Prefix(:=) Prefix(owl:=) Prefix(rdf:=) Prefix(xml:=) Prefix(xsd:=) Prefix(rdfs:=) Ontology(<.../my-ontology> Declaration(Class(<...#Car>)) Declaration(Class(<...#FrontWheel>)) Declaration(Class(<...#RearWheel>)) Declaration(Class(<...#Wheel>)) Declaration(ObjectProperty(<...#hasWheel>)) SubClassOf(<...#Car> ObjectIntersectionOf(ObjectExactCardinality(2 <...#hasWheel> <...#FrontWheel>) ObjectExactCardinality(2 <...#hasWheel> <...#RearWheel>))) OWL - Functional Syntax a Manchester Syntax :Car rdf:type owl:Class ; rdfs:subClassOf [ owl:intersectionOf ( [ rdf:type owl:Restriction ; owl:onProperty :hasWheel ; owl:qualifiedCardinality "2"^^xsd:nonNegativeInteger ; owl:onClass :FrontWheel ] [ rdf:type owl:Restriction ; owl:onProperty :hasWheel ; owl:qualifiedCardinality "2"^^xsd:nonNegativeInteger ; owl:onClass :RearWheel ] ) ; rdf:type owl:Class ] ; owl:disjointWith :Wheel . OWL - RDF a Manchester Syntax (hasWheel exactly 2 FrontWheel) and (hasWheel exactly 2 RearWheel) OWL umožňuje pracovat s anonymními třídami (intersection, union, restriction) vlastnosti (properties): ● objektové (objectProperty) ● datové (datatypeProperty) Vlastnosti mohou mít vlastnosti (charakteristiky): funkční, tranzitivní, symetrické, … Vlastnosti lze zřetězit (property chains), což umožňuje další inferenci. Možnost formulovat negativní tvrzení. OWL jako rozšíření RDF(S)