Adatbázisok MSc 12. téma Ontológia és SPARQL Igény az automatikus tudáskezelése Az adat és tudáskezelés szintjei adatok összesítő adatok domain leírása következtetések tudás kontexus ismerete RDBMS OLAP XML Datalog??? 1
Ontológia fogalma - Ontológia egy témakör megosztott és szabványos alakban megadott fogalmi rendszere - Ontológia egy formális nyelven megadott definíciók, szabályok együttese a jelentés megadására. Különböző szintjei: - szótárak - adatbázis séma - fogalmi séma - tezaurusz - taxonomia - fogalmi hálók - formális ontológia Szemantikai modellek fogalmak kapcsolatok logika integritás nyelvészet Ontológia fogalma adatkezelés tudás menedzsment tudás mérnökség tudás reprezentáció 2
Ontológia séma (Berners Lee) Ontológia kiépítése dokumentumok nyelvi elemek adatok metaadatok kapcsolatok szabályok következtetések 3
Ontológia alkalmazása: szemantikus WEB A web következő generációja ágens alapú lesz (Semantic Web), amely lehetővé teszi, hogy a fennlévő információkat egy szoftver automatikusan értelmezni tudja. A Semantic Web egy terv, melynek lényege, hogy a háló elemei úgy vannak megadva, hogy a gépi feldolgozást és értelmezést lehetővé tegyék. Ontológia alkalmazása: szemantikus WEB Semantic Web and Beyond Creators Semantic Web content Users Semantic Web Semantic Annotations Ontologies Logical Support Languages Tools Applications / Services WWW and Beyond Creators Web content Users 4
Ontológia alkalmazása: szemantikus WEB Ontológia leiró nyelvek RDF: Resource Description Framework RDF célja: - univerzális ismeret leírás - automatikus feldolgozás támogatása - tények és kapcsolatok megadása - rugalmasság, bővíthetőség RDF reprezentációk: - gráf - formális - XML < #Lassila, Creator, Ora Lassila> RDF hiányossága: - logika - következtetés - integritás <rdf:description about= "http://www.w3.org/home/lassila"> <s:creator>ora Lassila</s:Creator> </rdf:description> 5
RDF nyelv A nyelv épitő elemei Erőforrás (resource) Tulajdonság (property) Literál Állítás (statement) objektumok azonosítása, URI formátumú http://iit.uni-miskolc.hu/~kovacs/rdf_konyv erőforrások jellemzői, maguk is erőforrások http://konyvek/szerzője konstans Bevezetés az XML-be Kapcsolattal megadott információatom <#Peter, #olvas, Bevezetes az XML-be> RDF nyelv Az álltások értelmezése Minden álltás egy hármassal írható le szubjektum: amiről állítunk valamit erőforrás predikátum: objektum: kapcsolat megadása tulajdonság kapcsolat értéke erőforrás vagy literál <#Peter, #olvas, Bevezetes az XML-be> <#Peter, #baratja, #Zoli> 6
RDF nyelv Az elemi állításokból háló építhető fel Erőforrás: Tulajdonság: Literál: Zoli baratja Peter <#Peter, #olvas, Bevezetes az XML-be> <#Peter, #baratja, #Zoli> olvas Bevezetes az XML-be RDF nyelv Köztes erőforrások nem rendelkeznek saját URI-val, ideiglenes jellegűek neve baratja kora Zoli 23 Peter Összetett értékek kezelése: - Multi-halmaz - Lista - Opciok 7
RDF nyelv Magasabb rendű kijelentések A kijelentés objektuma egy másik kijelentés tudja type statement subject Zoli predicate Peter object vodka inni RDF XML nyelv Állítások formátuma keret állítás <rdf:rdf xmlns:rdf= > <rdf:description rdf:about= "http://www.w3.org/peter"> <s:olvassa>bevezetes az XML-be</s:olvassa> </rdf:description> </rdf:rdf> predikátum objektum szubjektum Literál objektum esete 8
RDF XML nyelv Állítások formátuma keret állítás szubjektum <rdf:rdf xmlns:rdf= > <rdf:description rdf:about= "http://www.w3.org/peter"> <s:baratja rdf:resource="http://www.w3.org/zoli" /> </rdf:description> </rdf:rdf> predikátum objektum Erőforrás objektum esete RDF XML nyelv Állítások formátuma <rdf:rdf xmlns:rdf= > <rdf:description rdf:id= "http://www.w3.org/peter"> <s:baratja rdf:resource="http://www.w3.org/zoli" /> </rdf:description> <rdf:description rdf:about= #Peter"> <s:telefonja>243535</s:telefonja> </rdf:description> </rdf:rdf> Új erőforrás létrehozása és hivatkozása 9
RDF XML nyelv Köztes erőforrások A tulajdonság értékét resource-re állítjuk át <rdf:rdf xmlns:rdf= > <rdf:description about= "http://www.w3.org/peter"> <s:baratja rdf:parsetype="resource"> <s:nev rdf:resource= #Zoli /> <s:kor>23</s:kor> </s:baratja> </rdf:description> </rdf:rdf> RDF XML nyelv Érték kollekciók használata <rdf:rdf xmlns:rdf= > <rdf:description about= #tankor_g1"> <s:diakok> <rdf:bag> <rdf:li rdf:resource= #peter > <rdf:li rdf:resource= #zoli > <rdf:li rdf:resource= #anna >. </rdf:bag> </s:diakok> </rdf:description> </rdf:rdf> 10
RDF XML nyelv Magasabb rendű állítások <rdf:rdf xmlns:rdf= > <rdf:description about= "http://www.w3.org/peter"> <s:allitja rdf:parsetype="resource"> <rdf:type rdf:resource= #Statement /> <rdf:subject rdf:resource= #Zoli /> <rdf:predicate rdf:resource= #iszik /> <rdf:object>23</rdf:object> </s:allitja> </rdf:description> </rdf:rdf> Ontologia Fogalmak + kapcsolatok = taxonomia Taxonomia + Szabályok, integritás = ontologia ontologia + Példányok = tudásbázis Ontológia elemei: Classes + class-hierarchy Properties (Slots) / values Relations between classes (inheritance, disjoints, equivalents) Restrictions on properties (type, cardinality) Characteristics of properties (transitive, ) Annotations Individuals 11
OWL ontologia leíró nyelv <owl:class rdf:id= Person /> <owl:class rdf:id= Man > <rdfs:subclassof rdf:resource= #Person /> <owl:disjointwith rdf:resource= #Woman /> </owl:class> <owl:class rdf:id= Woman > <rdfs:subclassof rdf:resource= #Person /> <owl:disjointwith rdf:resource= #Man /> </owl:class> <owl:class rdf:id= Father > <rdfs:subclassof rdf:resource= Man /> <owl:restriction owl:mincardinality="1"> <owl:onproperty rdf:resource="#haschild" /> </owl:restriction> </owl:class> <owl:objectproperty rdf:id= haschild"> <rdfs:domain rdf:resource="#parent" /> <rdfs:range rdf:resource="#person" /> </owl:objectproperty> SPARQL Simple Protocol and RDF Query Language A ontológia, RDF alapú tudásbázisok lekérdező, kezelő nyelve SQL orientáltság PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX ns: <http://example.org/ns#> SELECT?title?price?x ns:price?price. FILTER (?price < 10).?x dc:title?title. 12
SPARQL Változók: nevesített:?x név nélküli: _ Állítások (hármasok): a b c. összevonás: a b c, d, e. a b c. a b d. a b e. a b c; j d; s e. a b c. a j d. a s e. Lekérdezés: PREFIX pdef SELECT vlista alista FILTER kif ORDER BY kif SPARQL A lekérdezés eredménye a szabad változók egy halamza PREFIX person: <http://example/person/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT?name?x foaf:name?name Az értékekre szűrés tehető (FILTER) SELECT?book?title?book dc:title?title.?book inv:price?price. FILTER (?price < 15 )?book inv:quantity?num. FILTER (?num > 0 ) 13
SPARQL Opcionálisan teljesülő feltételek, értékek megjelenítése PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT?name?nick?x foaf:name?name. OPTIONAL {?x foaf:nick?nick ------------------------ name nick ================ "Alice" "A-online" "Bob ------------------------ Megoldások egyesítése (diszjunkció) PREFIX dc10: <http://purl.org/dc/elements/1.0/> PREFIX dc11: <http://purl.org/dc/elements/1.1/> SELECT DISTINCT?title { {?book dc10:title?title UNION {?book dc11:title?title SPARQL Feltételek összevonása SELECT?state?city?cityR city:name?city ; uscity:state?stater.?stater state:name?state Eredmény rendezése SELECT?book?title?book dc:title?title.?book inv:price?price. FILTER (?price < 15 )?book inv:quantity?num. FILTER (?num > 0 ) ORDER BY?title 14
SPARQL Egyediség megkövetelése az eredményben SELECT DISTINCT?state?city?cityR city:name?city ; uscity:state?stater.?stater state:name?state A SPARQL tartalmaz DML funciokat is DELETE {?state population _?cityr city:name?city ; uscity:state?stater.?stater state:name?state Protégé keretrendszer 15
Protégé minta Protégé minta 16
Protégé minta 17