440 likes | 559 Vues
This guide explains the structure and semantics of Web Ontology Language (OWL) in RDF, emphasizing the relationship system between resources. It provides an overview of the ontology language and its extensions, focusing on the representation of meanings and the building of concept and role hierarchies. With examples and explanations, it simplifies the understanding and implementation of OWL, highlighting its importance in defining resource classes and their meanings. It also covers the different OWL sublanguages and their features, including OWL Full, OWL DL, and OWL Lite, along with the classification of OWL classes and properties. The document concludes with illustrations of various OWL class types, such as intersection, union, and complement classes.
E N D
RDF emlékeztető • Nagyon egyszerű ontológialeíró nyelv • Erőforrások közötti kapcsolatrendszer leírására • Jelentés a kapcsolatrendszerből ered (szemantika)
xyz pql frt alosztálya pql frt RDF kiterjesztése - RDFS • Bizonyos erőforrások jelentése rögzítve • Eddig: • Ezután: • Még mindig elég egyszerű ontológianyelv • Fogalom- és szerephierarchia építhető
Komplex nyelvi elemek • Leíró logikákkal több minden kifejezhető • Egy DL nyelvhez többféle szintaxis • Hangsúly a jelentésen, nem a szintaxison • OWL nyelv tekinthető egy konkrét szintaxisának
Miért pont ilyen lett a világháló ontológia nyelve? • Ugyanaz motiválta, mint az RDF-et • XML alapú • Weben kényelmesen elhelyezhető • Jelenlegi webes keresők támogatják az XML dokumentumok feldolgozását • Adatcsere formátum alkalmazások között • DL háttér biztosítja a következtetést
Mi az OWL? • Egy OWL dokumentum egy érvényes RDF leírás • OWL bevezet egy erőforrás halmazt és rögzíti a jelentését • Ugyanúgy, mint az RDFS
<?xml version=“1.0” encoding=“ISO-8859-1”?> <rdf:RDF xml:base=http://ww.cs.bme.hu/vima9000# xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# xmlns:rdfs=http://www.w3.org/2000/01/rdf-schema# xmlns:owl=http://www.w3.org/2002/07/owl#> <owl:Class rdf:ID=“Ember” /> <owl:Class rdf:ID=“Nő”> <rdfs:subClassOf rdf:resource=“#Ember”/> </owl:Class> <owl:ObjectProperty rdf:ID=“gyereke”> <rdfs:domain rdf:resource=“#Ember”/> <rdfs:range rdf:resource=“#Ember”/> </owl:ObjectProperty> <owl:Class rdf:ID=“LányosApa”> <owl:intersectionOf rdf:parseType=“Collection”> <owl:Class rdf:about:”#Ember”/> <owl:Class> <owl:complementOf rdf:resource=“#Nő”/> </owl:Class> <owl:Restriction> <owl:onProperty rdf:resource=“#gyereke” /> <owl:allValuesFrom rdf:resource=“#Nő” /> </owl:Restriction> </owl:interectionOf> </owl:Class> </rdf:RDF>
OWL résznyelvei • OWL Full • Minden RDF konstrukció használható • Nem ágyazható semmilyen DL nyelvbe • Probléma: magasabbrendű kijelentések • OWL DL • Közvetlenül fordítható DL-re -> SHOIN(D) • Erőforrásoknak meghatározott típusa van: • Egyed, konkrét érték, osztály, konkrét osztály, absztrakt tulajdonság, konkrét tulajdonság
OWL résznyelvei • OWL Lite • Leegyszerűsített OWL DL • Megfelel a SHIF(D) nyelvnek • Átmenet az RDFS és az OWL DL között • Nagyon hatékony következtetés
OWL osztályok • Elnevezett osztály • Enumerációs osztály • Tulajdonságkorlátozásos osztály • Metszet osztály • Unió osztály • Komplementer osztály
OWL osztályok • Elnevezett osztály • DL: atomi fogalom • 2 beépített elnevezett osztály: • owl:Thing • owl:Nothing <owl:Class rdf:ID=“Ember”/>
OWL osztályok • Enumerációs osztály • DL: nominálisok uniója • Nem megengedett OWL Lite-ban <owl:Class> <owl:oneof rdf:parseType=“Collection”> <owl:Thing rdf:about=“#Hétfő”/> <owl:Thing rdf:about=“#Kedd”/> … </owl:oneof> </owl:Class>
OWL osztályok • Tulajdonságkorlátozásos osztály • Értékkorlátozás • Számosságkorlátozás <owl:Restriction> <owl:onProperty rdf:resource=“P”/> {korlátozás} </owl:Restriction>
OWL osztályok Tulajdonságkorlátozás: értékkorlátozás • DL: ( R.C), ( R.C), ( R.{a}) <owl:Restriction> <owl:onProperty rdf:resource=“#gyereke”/> <owl:allValuesFrom rdf:resource=“#Szőke”/> <owl:someValuesFrom rdf:resource=“#Nő”/> <owl:hasValue rdf:resource=“#Judit”/> </owl:Restriction>
OWL osztályok Tulajdonságkorlátozás: számosságkorlátozás • DL: (n R), (n R), (=n R) <owl:Restriction> <owl:onProperty rdf:resource=“#alkalmazottja”/> <owl:minCardinality rdf:datatype=“&xsd;nonnegativeInteger”> 3 </owl:minCardinality> <owl:maxCardinality rdf:datatype=“&xsd;nonnegativeInteger”> 50 </owl:maxCardinality> </owl:Restriction>
OWL osztályok • Metszet osztály <owl:Class> <owl:intersectionOf rdf:parsetype=“Collection”> <owl:Class rdf:resource=“#Magas”/> <owl:Class rdf:resource=“#Barna”/> </owl:intersectionOf> </owl:Class>
OWL osztályok • Unió osztály <owl:Class> <owl:unionOf rdf:parseType=“Collection”> <owl:Class rdf:about=“#Nő”/> <owl:Restriction> <owl:onProperty rdf:resource=“#hajszíne”/> <owl:hasValue>Barna</owl:hasValue> </owl:Restriction> </owl:unionOf> </owl:Class>
OWL osztályok • Komplementer osztály <owl:Class> <owl:complementOf> <owl:Class rdf:about=“#Szőke”/> </owl:complementOf> </owl:Class>
OWL axiómák • Fogalomtartalmazási axiómák • rdfs:subClassOf • Fogalomazonossági axiómák • owl:equivalentClass • Diszjunkció • owl:disjointWith
Fogalomtartalmazási axiómák <owl:Class rdf:about=“#Ház”> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource=“#ablaka”/> <owl:minCardinality rdf:datatype=“&xsd;nonnegativeInteger> 3 </owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> </owl:Class>
Fogalomazonossági axiómák <owl:Class rdf:about=“#Hétvége”> <owl:equivalentClass> <owl:Class> <owl:oneof rdf:parseType=“Collection”> <owl:Thing rdf:about=“#szombat”/> <owl:Thing rdf:about=“#vasárnap”/> </owl:oneof> </owl:Class> </owl:equivalentClass> </owl:Class>
Diszjunkció <owl:Class rdf:about=“#Férfi”> <owl:disjointWith rdf:resource=“#Nő”/> </owl:Class>
OWL szerepek • Nincsenek szerepkonstruktorok • Kijelenthetjük, hogy egy szerep létezik <owl:ObjectProperty rdf:ID=“gyereke”/> <owl:DatatypeProperty rdf:ID=“mérete”/>
Szerepállítások • RDF séma lehetőségek <owl:ObjectProperty rdf:ID=“apja”> <rdfs:subPropertyOf rdf:resource=“#szülője”/> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID=“kedvencItala”> <rdfs:domain rdf:resource=“#Ember”/> <rdfs:range rdf:resource=“#Ital”/> </owl:ObjectProperty>
Szerepállítások • Szerepazonosság, inverz szerepek <owl:ObjectProperty rdf:about=“#gyereke”> <owl:equivalentProperty rdf:resource=“#kölyke”/> <owl:inverseOf rdf:resource=“#szülője”/> </owl:ObjectProperty>
Szerepállítások • Funkcionális, inverz funkcionális szerep <owl:ObjectProperty rdf:ID=“felesége”> <rdf:type rdf:resource=“&owl;FunctionalProperty”/> <rdf:type rdf:resource=“&owl;InverseFunctionalProperty”/> </owl:ObjectProperty>
Szerepállítások • Tranzitivitás, szimmetria <owl:SymmetricProperty rdf:ID=“testvére”/> <owl:ObjectProperty rdf:ID=“része”> <rdf:type rdf:resource=“#owl;TransitiveProperty/> </owl:ObjectProperty>
OWL egyedek • Nincs UNA • Fontos, hogy egyedekről kijelenthessük, hogy • azonosak • különbözőek
OWL egyedek • Egyedek azonossága <rdf:Description rdf:about=“#Rudi”> <owl:sameAs rdf:resource=“#Rudolf”/> </rdf:Description>
OWL egyedek • Egyedek különbözősége <t:Film rdf:ID=“Ötödik_Elem”> <owl:differentFrom rdf:resource=“Ponyvaregény”/> </t:Film>
OWL egyedek • Egyedek különbözősége <owl:AllDifferent> <owl:distinctMembers rdf:parseType=“Collection”> <t:Film rdf:about=“#Ötödik_Elem”/> <t:Film rdf:about=“#Ponyvaregény”/> <t:Film rdf:about=“#Kill_Bill”/> </owl:distinctMembers> </owl:Alldifferent>
OWL 2 - újdonságok • Szinaktikus édesítőszerek • Nyelvi kiterjesztés – SROIQ(D) • Kiterjesztett konkrét adattípusok • Metamodellezés
Szintaktikus édesítőszerek • DisjointUnion diszjunkt unióból előálló osztály • DisjointClasses megadott osztályok diszjunktak • NegativeObjectPropertyAssertion -gyereke(a,b) • NegativeDataPropertyAssertion -mérete(a,42)
Nyelvi kiterjesztés: SROIQ(D) • Önkorlátozás • R.Self • Minősített számosságkorlátozás • n R.C, n R.C, =n R.C • Reflexív szerep • x R(x,x) • Irreflexív szerep • x -R(x,x) • Antiszimmetrikus szerep • x,y R(x,y) -R(y,x)
Nyelvi kiterjesztés: SROIQ(D) • Diszjunkt szerepek • R(x,y) -S(x,y) • Komplex szerephierarchia • R1R2…Rn R • Kulcsok • hasKey(Diák, neptunkódja) Minden diákot azonosít a neptun kódja. • hasKey(Verseny, sportága, ideje, helye) Minden versenyt azonosít a sportág, idő, hely hármas.
Kiterjesztett konkrét adattípusok • OWL-ben csak integer és string adattípusok támogatottak • OWL 2-ben új adattípusok (pl. double, float, decimal) • OWL 2-ben lehetőség van felhasználói adattípusok definiálására, pl: • {18-nál nagyobb egészek} • {18-nál kisebb, vagy 32-nél nagyobb egészek} • {legalább 3 hosszú stringek}
Metamodellezés • OWL-ben az erőforrásoknak jól meghatározott típusa van • OWL 2-ben egy erőforrás lehet egyszer egyed, egyszer osztály • Sas: sasok halmaza • Sas: egyed, mely egy fajt azonosít • Konkrét egyedek és osztályok, valamint tulajdonságok továbbra is csak egy szerepben fordulhatnak elő
Példa Adottak az Ember és Robot fogalmak,melyek részei a Lények fogalomnak. Az Emberfogalmon belül létezik egy Kimek nevû részfogalom. Definiáltak továbbá a következő szerepek: gyűlöli, felettese és ismeri. Tudjuk, hogy ember nem lehet robot felettese, valamint egy robot nem gyűlöl senkit. Azt is tudjuk, hogy mindenki ismeri a feletteseit és viszont, továbbá mindenki ismeri azt, akit gyűlöl. Zsarnoknak nevezünk egy embert, ha ő kimek, legalább két nemkimek-ember gyűlöli őt, valamint van robot felettese.
Adottak az Ember és Robot fogalmak,melyek részei a Lények fogalomnak. Az Emberfogalmon belül létezik egy Kimek nevû részfogalom. <owl:Class rdf:about="#Lény"/> <owl:Class rdf:about="#Robot"> <rdfs:subClassOf rdf:resource="#Lény"/> </owl:Class> <owl:Class rdf:about="#Ember"> <rdfs:subClassOf rdf:resource="#Lény"/> </owl:Class> <owl:Class rdf:about="#Kimek"> <rdfs:subClassOf rdf:resource="#Ember"/> </owl:Class>
Definiáltak továbbá a következő szerepek: gyűlöli, felettese és ismeri. <owl:ObjectProperty rdf:about=“#gyűlöli”/> <owl:ObjectProperty rdf:about=“#felettese”/> <owl:ObjectProperty rdf:about=“#ismeri”/>
Tudjuk, hogy ember nem lehet robot felettese,… <owl:Description rdf:about="#Ember"> <owl:disjointWith> <owl:Restriction> <owl:onProperty> <owl:ObjectProperty> <owl:inverseOf rdf:resource="#felettese"/> </owl:ObjectProperty> </owl:onProperty> <owl:someValuesFrom rdf:resource="#Robot"/> </owl:Restriction> </owl:disjointWith> </owl:Description>
…valamint egy robot nem gyűlöl senkit. <owl:Description rdf:about=“#Robot”> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource=“#gyűlöli”/> <owl:allValuesFrom rdf:resource=“owl:Nothing”/> </owl:Restriction> </rdfs:subClassOf> </owl:Description>
Azt is tudjuk, hogy mindenki ismeri a feletteseit és viszont, továbbá mindenki ismeri azt, akit gyűlöl. <owl:ObjectProperty rdf:about="#felettese"> <owl:inverseOf rdf:resource="#beosztottja"/> <rdfs:subPropertyOf rdf:resource="#ismeri"/> </owl:ObjectProperty> <owl:ObjectProperty rdf:about="#beosztottja"> <rdfs:subPropertyOf rdf:resource="#ismeri"/> </owl:ObjectProperty> <owl:ObjectProperty rdf:about="#gyűlöli"> <rdfs:subPropertyOf rdf:resource="#ismeri"/> </owl:ObjectProperty>
Zsarnoknak nevezünk egy embert, ha ő kimek, legalább két nemkimek-ember gyűlöli őt, valamint van robot felettese. <owl:Class rdf:about="#Zsarnok"> <rdfs:subClassOf rdf:resource="#Ember"/> <rdfs:subClassOf rdf:resource="#Kimek"/> <rdfs:subClassOf><owl:Restriction> <owl:onProperty rdf:resource="#felettese"/> <owl:someValuesFrom rdf:resource="#Robot"/> </owl:Restriction></rdfs:subClassOf> <rdfs:subClassOf><owl:Restriction> <owl:onProperty><owl:ObjectProperty> <owl:inverseOf rdf:resource="#gyűlöli"/> </owl:ObjectProperty></owl:onProperty> <owl:onClass><owl:Class> <owl:complementOf rdf:resource="#Kimek"/> </owl:Class></owl:onClass> <owl:minQualifiedCardinality rdf:datatype="&xsd;nonNegativeInteger"> 2 </owl:minQualifiedCardinality> </owl:Restriction></rdfs:subClassOf> </owl:Class>