Modelování ontologií (Ontology Modeling) ISKM89 Organizace dat - sémantický web | podzim 2023 Zuzana Nevěřilová | Centrum zpracování přirozeného jazyka ● Model je analogií (části) reálného světa. (B. Russell) ● Sémantika modelu - formální interpretace modelu (A. Tarski) Interpretace: relace mezi syntaxí a sémantikou A: ∀x:P(f(x), x) B: ∃x:P(f(x), x) C: P(f(x), x) Interpretace I: U=ℕ, f→x², P →relace > Modelování Formule A v I není pravdivá. Formule B v I je pravdivá. Formule C je v I splnitelná, ale není pravdivá. To share common understanding of the structure of information among people or software agents To enable reuse of domain knowledge To make domain assumptions explicit To separate domain knowledge from the operational knowledge To analyze domain knowledge https://protege.stanford.edu/publications/ontology_development/ontology101.pdf Proč vytvářet ontologie? Metodologie Ontology Development 101 https://protege.stanford.edu/publications/ontology_development/ontology101.pdf Jak vytvářet ontologie? určit rámec Na jaké otázky ontologie odpovídá? Jaké situace ontologie popisuje? znát existující Může to být úsporné. Nástroje pro existující ontologie už jsou hotové. vyjmenovat termíny Jaké jsou pojmy v doméně? Jaké vlastnosti mají naše pojmy? Co o nich chceme v ontologii uchovávat? definovat třídy Jaké vlastnosti jsou společné pro různé objekty? Lze uspořádat třídy do hierarchie? definovat vlastnosti Které vlastnosti budou objektové, tj. relace k jinému objektu? Které budou datové, tj. literály? vytvořit instance Lze instance vyhledat? Popisují instance to, co jsme na začátku chtěli mít popsané? definovat omezení Datové vlastnosti mohou mít jen určité typy. Objektové vlastnosti mají doménu, obor hodnot a možná i určitou kardinalitu. https://link.springer.com/chapter/10.1007/11546924_64 Unifikovaný proces budování ontologií (Unified Process of Ontology Building) ● zjistit, jaké domény potřebujeme popsat ● zjistit, jaké ontologie pro domény existují ● zvolit vhodná URI - čtyři pravidla pro Linked Data ● vytvořit slovníky (vocabulary) pro důležité pojmy ○ třídy, atributy, relace, instance, pravidla, omezení ● vygenerovat odkazy ● popsat metadata (DublinCore, Semantic Web Publishing Vocabulary) ● použít vhodné publikační nástroje Jak začít? https://dbpedia.org/page/Masaryk_University https://viaf.org/viaf/146719391/ owl:sameAs https://www.wikidata.org/wiki/Q763586 owl:sameAs http://wbsg.informatik.uni-mannheim.de/bizer/wiqa/swp/SWP-UserManual.pdf Otevřená propojená data (Linked Open Data) Tim Berners-Lee (2006): Čtyři pravidla pro otevřená propojená data ● použij URI pro jména věcí ● použij URI se schématem HTTP, aby lidé věci našli na Internetu ● když někdo požaduje URI, přidej užitečné informace (s využitím standardů RDF a SPARQL) ● přidej odkazy na další URI, ať mohou ostatní objevovat další věci https://www.w3.org/DesignIssues/LinkedData.html třídy, atributy tříd, relace, instance, pravidla, omezení (constraints) - co bude co ● modelování je subjektivní proces ● není jeden správný způsob, jak modelovat doménu ● je vhodné postupovat od aplikace (i návrhu) a možných budoucích rozšíření ● vývoj ontologie je iterativní proces ● koncepty v ontologii by měly být pojmenované tak, jak se objekty (fyzické či logické) v doméně pojmenovávají - podstatná jména pro objekty, slovesa pro vlastnosti a vztahy Co je důležité vědět Doména: ● jaké domény má ontologie pokrýt? ● na jaké otázky by ontologie měla poskytovat odpovědi? ● kdo bude ontologii používat a kdo ji bude spravovat? ● lze použít (importovat) existující ontologie? Modelování ontologie od začátku Slovník ● jaké jsou důležité pojmy v doméně? ○ jednoduchý výpis ○ rozdělení na třídy a vlastnosti (properties) ○ taxonomie (hierarchie) tříd i vlastností ○ objektové vlastnosti (object properties) definice pomocí slotů židle - sedák - sedět - pohodlí - opírat ○ upřesnění slotů (facets) doména a obor hodnot (domain, range) kardinalita počet nohou, počet sedáků, sedět (kdo?) ● jaké jsou instance v doméně? Modelování ontologie od začátku Výrobek Automobil Nábytek komoda Malm postel Hemnes Škoda Octavia Honda Fit 2010 top down bottom up Entity Relationship Model (ERM) entitně vztahový model (přístup bottom up) výsledkem modelu je ER diagram softwarové nástroje pro modelování: ● MS Visio (spec. licence) ● draw.io (https://drawio-app.com/blog/entity-relationship-diagrams-with-draw-io/) ● smartdraw (https://www.smartdraw.com/entity-relationship-diagram/er-diagram-tool.htm) ● … z ER diagramu lze vygenerovat OWL schéma Modelování ontologie z databáze https://cs.wikipedia.org/wiki/Entity-relationship_model DOI 10.1109/ICSC.2009.61: https://ieeexplore.ieee.org/document/5298643 některá přiřazení je možné udělat ručně pro automatické metody je dobré využít některou z velkých ontologií přes API: ● DBPedia ● GeoNames ● Wikidata Předtím musí být data vyčištěná. OpenRefine zvládne obojí. Vygenerování odkazů https://dbpedia.org/page/Masaryk_University https://viaf.org/viaf/146719391/ owl:sameAs https://www.wikidata.org/wiki/Q763586 owl:sameAs Jaká pravidla platí globálně pro vlastnosti a třídy? ● hierarchie (podvlastnosti) ● reflexivita, symetrie, tranzitivita ● minimální a maximální kardinalita ● funkcionální vlastnost (kardinalita 1) ● existuje inverzní vlastnost? Modelování a logika ● rozdílnost (disjointWith) ● hierarchie (podtřídy) OWL nikde neodděluje A-Box a T-Box. U některých konstruktů je oddělení složité. Nicméně, definice tříd je spíš T-Box, individua jsou spíš A-Box. ex:c rdfs:subClassOf ex:d . ● může být relace mezi třídami ● může být vlastnost individuí Co je užitečné si rozmyslet Oddělit A-Box a T-Box? https://www.mkbergman.com/489/ontology-best-practices-for-data-driven-applications- part-2/ Nicméně, definice tříd je spíš T-Box, individua jsou spíš A-Box. ex:2010_Honda_Fit_Base_Model owl:instanceOf ex:2010_Honda_Fit ex:4B2_9999 owl:instanceOf ex:2010_Honda_Fit_Base_Model Co je užitečné si rozmyslet Instance a podtřídy Co je užitečné si rozmyslet - a jak se vyhnout chybám Alice Člověk Savec Druh is a is a is a Alice Člověk Savec Druh is a rdfs:subClassOf instance of instance of (rdf:type) Podtřídy a disjunkce Co je užitečné si rozmyslet - a jak se vyhnout chybám Motor Autodíl is a Motor Motory is a SedadlaKola UNION Autodíl Podtřídy a konstituenty Co je užitečné si rozmyslet - a jak se vyhnout chybám Oceán Voda is a Voda Oceán part of Je výhodné specifikovat třídy a vlastnosti co neúplněji. ● omezení v hierarchii ● omezení vlastností ● omezení kardinality https://www.w3.org/2001/sw/BestPractices/ https://www.w3.org/2001/sw/BestPractices/OEP/ - Ontology Engineering and Patterns Task Force (OEP) Co je užitečné si rozmyslet - pravidla (constraints) nutná podmínka nutná a postačující nutná podmínka Anonymní uzly obecně je lepší nemít. Anonymní třídy jsou v pořádku při popisu ontologie (A-Box). Anonymní třídy jsou super tam, kde není třeba komplexní koncept pojmenovávat (příliš mnoho jmen by hrozilo víceznačností nebo zmatkem). Příklad: geografický bod (šířka, délka) Anonymní uzly? Anonymní třídy? ● Strukturální interoperabilita - RDF umožňuje práci s tzv. strukturovanými i nestrukturovanými daty. Ideální je zobrazovat HTML ve webovém prohlížeči a RDF pro RDF klient. ● Federace - dotazy mohou jít přes několik provázaných datových zdrojů ● Konceptuální interoperabilita - sdílené a/nebo referenční slovníky ● Ekosystém - užití standardů RDF, OWL, SPARQL a jejich rozšíření (např. GeoSPARQL) ● dynamický import - URI vždy obsahuje poslední verzi Principy modelování ontologií - co je dobré dodržet SHACL ● je graf kompletní? ● obsahuje chyby Validační schéma tvarů tříd (Shapes) - množina podmínek, které musí třída splňovat ● validace typů ● předpokládané omezení kardinality validace pro daný cíl shapes tvoří graf tvarů (jmenný prostor sh http://www.w3.org/ns/shacl#) Dobré praxe - validace schématu SHACL Konkrétní postup: ● specifikovat tvary před návrhem ontologie ● navrhnout ontologii a vygenerovat tvary z návrhu ○ potom je ručně zkontrolovat https://shacl-play.sparna.fr/play/ Dobré praxe - validace schématu SHACL Ontologie by měly být navrženy tak, aby mohly být použity vícekrát? Co ale víme o budoucím využití? Dobré praxe - reusability? jak přesný model světa to je? Evaluace - jak dobrá je naše ontologie? https://app.flourish.studio/@flourish/network-graph https://commons.wikimedia.org/wiki/File:Applications-Earth-Globe.svg Přesnost (jak model odpovídá expertnímu popisu) Adaptibilita (můžeme ontologii rozšiřovat bez nutnosti refactoringu?) Srozumitelnost (je ontologie dokumentovaná? rozumí jí někdo?) Úplnost (popisuje celou doménu? víme, na které otázky zná ontologie odpovědi?) Výpočetní složitost (lze použít reasonery? u CDOC-CRM např. ne) Výstižnost (obsahuje ontologie minimální teorii? obsahuje pouze důležité pojmy?) Konzistence (obsahuje ontologie kontradikce? odpovídá formální část slovnímu popisu?) Organizační způsobilost (lze ontologii publikovat? je všechno právně v pořádku?) Evaluace - jak dobrá je naše ontologie? ● Identity - Stejnost +I -I (non Identity) ○ kdy jsou nějaké instance tatáž instance? ○ Čím je definován trojúhelník? Délkou tří stran. Tedy všechny takové trojúhelníky jsou identické. ● Unity - Jednota +U -U ~U (anti Unity) ○ vztah mezi instancemi a jejich třídou - jsou instance zároveň částmi, nebo jsou něco jiného? ○ Třídu Hlína lze rozkouskovat na různá množství Hlíny. S třídou Člověk to udělat nelze. ● Rigidity - Neměnnost +R -R ~R (anti Rigidity) ○ příslušnost ke třídě a možnost změny ○ Člověk zůstává týmž člověkem, i když si ostříhá vlasy. ● Dependence - Závislost +D -D ○ požaduje existence jedné třídy existenci jiné třídy? ○ Třída Student nemá smysl bez třídy Učitel. Analýza ontologií - metodologie OntoClean https://link.springer.com/chapter/10.1007/978-3-540-24750-0_8 ● návrh (Ontology Design) ● kombinování (Ontology Alignment) ● evaluace (Ontology Evaluation) ● automatický návrh ontologie (Ontology Learning) ● (automatické) doplnění instancí (Knowledge Graph Population) Úkoly spojené s ontologickým inženýrstvím ● z textů (zpracování přirozeného jazyka, Natural Language Processing, NLP) ○ rozpoznání entit ○ hyperonyma ○ rozpoznání vztahů ○ synonyma ○ nalezení zobrazení do ontologie ○ hotový software: Open IE https://nlp.stanford.edu/software/openie.html, ChatGPT ● z existujících ontologií ● z databází ○ R2RML https://www.w3.org/TR/r2rml/ ● crowdsourcing Jak doplnit instance do znalostního grafu