VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Rozměr: px
Začít zobrazení ze stránky:

Download "VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY"

Transkript

1 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS SDÍLENÍ DAT MEZI INFORMAČNÍMI SYSTÉMY ZALOŽENÉ NA ONTOLOGIÍCH DIPLOMOVÁ PRÁCE MASTER S THESIS AUTOR PRÁCE AUTHOR BRNO 2009 BC. LUKÁŠ HÁK

2 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS SDÍLENÍ DAT MEZI INFORMAČNÍMI SYSTÉMY ZALOŽENÉ NA ONTOLOGIÍCH DATA SHARING BETWEEN INFORMATION SYSTEMS BASED ON ONTOLOGIES DIPLOMOVÁ PRÁCE MASTER S THESIS AUTOR PRÁCE BC. LUKÁŠ HÁK AUTHOR VEDOUCÍ PRÁCE SUPERVISOR BRNO 2009 ING. RADEK BURGET, PH.D.

3 3

4 Abstrakt Tato práce popisuje sdílení dat mezi informačními systémy založené na ontologiích. V první kapitole vysvětluje základní pojem ontologie a používané názvosloví. Dále rozebírá používané základní technologie, ontologické jazyky a částečně vysvětluje také sémantický web. Ve 3. kapitole jsou vypsány používané nástroje a pluginy pro práci s ontologiemi. Další kapitoly popisují vytvořené ontologie potřebné pro inzerci aut. Konkrétně ontologii s auty, prodejci a adresami. Na závěr je vysvětlen navrhnutý nástroj pro převod existujících dat v XML na zápis inzerce v jazyce OWL. Abstract This thesis describes data sharing between information systems based on ontologies. In the first chapter shows up the term ontology and used terminology. Then this thesis analyses used basic methods, onthological languages and partially describes semantic web. In the third chapter are write out utilities and plugins which are used for working with ontologies. The other chapters describe created ontology which are useful for car-selling. Especially ontology with cars, sellers and addresses. At the end of the thesis is explained suggested instrument to transfer existing XML to recording advertising in OWL language. Klíčová slova Ontologie, XML Schema, RDF, RDFS, RDF Schema, DAML+OIL, OWL, Protégé, KAON, Magpie Keywords Ontology, XML Schema, RDF, RDFS, RDF Schema, DAML+OIL, OWL, Protégé, KAON, Magpie Citace Lukáš Hák: Sdílení dat mezi informačními systémy založené na ontologiích, diplomová práce, Brno, FIT VUT v Brně, 2009

5 Sdílení dat mezi informačními systémy založené na ontologiích Prohlášení Prohlašuji, že jsem tuto diplomovou práci vypracoval samostatně pod vedením Ing. Radka Burgeta, Ph.D. Další informace mi poskytli Ing. Pavel Bílek ze společnosti Autosoft a Ing. Miroslav Krejčí ze společnosti Teas. Uvedl jsem všechny literární prameny a publikace, ze kterých jsem čerpal. Lukáš Hák Poděkování Rád bych zde poděkoval vedoucímu mé práce Ing. Radku Burgetovi Ph.D. za uskutečněné konzultace, rady a věcné připomínky k mé práci. V neposlední řadě také Ing. Pavlu Bílkovi ze společnosti Autosoft a Ing. Miroslavu Krejčímu ze společnosti Teas za vyjádření podpory a přislíbení pomoci při nasazení produktu této práce v komerčním sektoru. Lukáš Hák, Tato práce vznikla jako školní dílo na Vysokém učení technickém v Brně, Fakultě informačních technologií. Práce je chráněna autorským zákonem a její užití bez udělení oprávnění autorem je nezákonné, s výjimkou zákonem definovaných případů.

6 Obsah Obsah Úvod Teorie ontologie Pojem a definice ontologie Pojem ontologie Ontologická oblast Typy ontologií Struktura ontologií Základní technologie XML XML Schema RDF Ontologické jazyky RDF Schema DAML+OIL OWL Další způsoby zápisu Struktura OWL dokumentu Hlavička Třídy Vlastnosti Sémantický web Nasazení ontologií v praxi Nástroje pro ontologie Protégé Kaon Magpie Semanticworks Další nástroje Návrh ontologie pro inzerci aut Motivace pro tvorbu Textový popis Importované ontologie Hierarchie tříd

7 4.5 Vlastnosti s objekty Datové vlastnosti Příklad s individuem Návrh ontologie pro prodejce Textový popis Hierarchie tříd Vlastnosti s objekty Datové vlastnosti Příklad s individuem Návrh ontologie pro adresy Textový popis Hierarchie tříd Datové vlastnosti Příklad s individuem Převod XML na OWL Popis zdroje dat Obecný návrh systému Implementace parseru Příklad konverze Závěr...46 Literatura...47 Seznam příloh...48 Příloha 1. Struktura hlavní databáze Příloha 2. Návrh ontologií...52 Příloha 3. Transformační skript z XML...58 Příloha 4. CD se zdrojovými soubory...62 Příloha 5. Popis datového typu Base

8 1 Úvod Tato práce představuje jednak teoretický základ pro výměnu dat mezi informačními systémy na základě ontologií. Další část práce již pak řeší danou problematiku prakticky. Pro řešení tohoto tématu mě přiměla neexistence jednotného formátu dat pro výměnu mezi SW v autobazarech a inzertními portály. Sám vlastním internetový portál který se zabývá inzercí nových i ojetých sportovních aut a výsledek této práce bych rád implementoval do svého systému a také nabídnul ostatním společnostem, zabývajících se inzercí automobilů nebo vývojem SW pro autobazary. Vlastní ontologie představuje velký přínos, neboť dodává datům jednotnou sémantiku, oproti klasické výměně dat přes XML. Mým cílem je tedy vytvořit po dohodě s dalšími portály jednotnou ontologii, pomocí které by se formátem OWL přenášela data potřebná pro inzerci automobilů. Aktuálně používá každý inzertní portál i každý výrobce SW svůj formát dat a potřebné propojení je tedy velmi pracné a obsahuje také značnou chybovost v reprezentaci přijímaných dat. Po nasazení této ontologie by se tento proces velmi výrazně zjednodušil. Stačilo by totiž připravit pouze jeden jediný skript pro synchronizaci nabídky se všemi autobazary. Struktura teoretického úvodu je následující. Na začátek je vysvětlen vlastní pojem ontologie a ontologické oblasti a popsány jejich vlastnosti a způsoby využití. Dále následuje popis použitých základních technologií jako XML, XML Schema či RDF. Po tomto nezbytném úvodu již následují přímo ontologické jazyky. Podrobně je zde popsán jazyk OWL, ve kterém bude následně tato ontologie také zapsána. Zabývám se zde i sémantickým webem, jeho historií, postupným zaváděním a popisem vrstev. Závěr druhé kapitoly patří aktuálním informacím o nasazení různých ontologií v praxi a také jsou zde rozebrány možnosti širšího nástupu ontologií v budoucnu. Ve třetí kapitole je uveden seznam používaných nástrojů a pluginů pro zápis a využívání ontologií. Více je zde rozebrán nástroj Protégé, ve kterém vytvářím praktické ontologie pro inzerci aut. Není zapomenuto ani na opensource nástroj Kaon, či rozšíření pro internetové prohlížeče s názvem Magpie. Poslední popisovaný nástroj je komerční produkt Semanticworks od firmy Altova. Následuje již pouze seznam další používaných nástrojů bez podrobnějšího popisu. Ve čtvrté kapitole se již věnuji vlastnímu produktu této diplomové práce a to je ontologie pro inzerci aut. Jsou zde popsány všechny importované ontologie, vlastní hierarchie tříd, vlastnosti s objekty a také datové vlastnosti. Na závěr je uveden příklad s jedním individuem. Dvě následující kapitoly popisují další nutné ontologie, vytvořené na základě potřeby v hlavní ontologii. První je ontologie s prodejci aut a další je ontologie s adresami. Struktura těchto ontologií je popsána podobně jako u hlavní ontologie a jsou zde také uvedeny příklady s individui. Protože přechod na naší ontologii nebude revoluční, ale postupný, bylo potřeba se zabývat problémem převodu existujících XML souborů na požadovaný OWL formát. Tento problém řeší sedmá kapitola. Na začátku je rozebrán jeden z nejčastějších způsobů XML zápisu dat pro inzerci aut. Poté je popsán návrh implementace daného parseru. Následuje popis vlastní implementace i s popisem funkce pro hledání duplicit individuí v ontologii z centrální databáze. Na konec je uveden příklad takové konverze na datech portálu Sportovnivozy.cz. V samotném závěru jsem shrnul přínos této diplomové práce. Možnost nasazení v praxi a způsob rozšíření v budoucnosti. 3

9 2 Teorie ontologie 2.1 Pojem a definice ontologie Pojem ontologie Pojem ontologie pochází z filosofie, kde je chápán jako nauka o bytí, či soustava znalostí popisující objekty, jevy a zákonitosti světa tak jak jsou. V této práci se budu však zabývat informatickou ontologií. Samotná ontologie je předmět ontologického inženýrství a sémanticky popisuje to co existuje v reálném světě. Jedná se tedy o sémantický systém. Definic pojmu ontologie existuje celá řada. Zajímavá je definice od T. Grubera, zakladatele a duchovního otce informačních ontologií. Tato definice zní: ontologie je explicitní specifikace konceptualizace. Konceptualizace značí kolekci pojmů, označující určitou část světa. Musí být explicitní, tedy nejen pouze v hlavě autora, ale dobře specifikována. [6] Mezi další požadavky ontologií patří formalizace, což znamená použití jazyka s přesně definovanou syntaxí. Ontologie musí být výsledkem práce celé skupiny jisté zájmové komunity. Tedy nikoliv pouze individuální, ale musí být sdílená. Tento požadavek je v praxi často nedodržován a vznikají tedy různé ontologie na tu samou doménovou oblast. Musí být také časově, prostorově i personálně opakovaně použitelné. Účelově jsou ontologie použité pro podporu porozumění mezi experty, komunikaci mezi počítačovými systémy a zlehčení návrhu znalostně doménově orientovaných aplikací. V odborném textu se lze setkat s pojmem znalostní ontologie, což je vlastně pouze upřesňující výraz pro klasické ontologie. Tedy značí, že každá ontologie vyjadřuje určitou znalost. Oblasti a konkrétní aplikace mohou být různorodé. Pro potřeby této diplomové práce jsem si zvolil ontologii inzerce osobních vozidel Ontologická oblast Ontologickou oblast většinou chápeme jako objekt, lze si ale pod tímto názvem představit obecně i jakýkoliv jev. Tato oblast lze myšlenkově rozložit na jednodušší a pro poznání lépe přístupnější suboblasti. Tyto suboblasti tvoří v celku ontologickou soustavu. Tento postup rozdělování nazýváme analýza a lze rozložit hierarchicky. Například pokud zvolíme za objekt automobil, lze jej rozložit na nejvyšší úrovni na motor, podvozek, interiér, karosérii. Na nejnižší úrovni jako nejelementárnější mechanické a chemické procesy v motoru, činnost a funkce tlumičů, a jiné. Pokud je soustava hierarchická, studují se obvykle postupně jednotlivé vrstvy a následně jejich vzájemné vztahy. Redukovaná ontologická oblast dané soustavy je pak chápána jako soubor atributově popsaných entit - suboblastí a vztah mezi nimi. Pro každou entitu soustavy určíme, které atributy u ní akceptujeme a které vztahy. Redukovaná ontologická oblast se rozčlení na redukovanou ontologickou soustavu a je modelem myšlené ontologické soustavy. Pro popis topologie redukované ontologické soustavy lze použít neorientovaný graf a říkáme mu schéma. V něm je každý z redukovaných subobjektů znázorněn symbolem své typové příslušnosti a kvantitativními údaji příslušných atributů. Podobným způsobem jsou znázorněny i cesty pro interakce subobjektů. [1] Mezi další zajímavé pojmy patří ontologický závazek. Ten nám říká, že se autoři rozhodli přijmout závazek k určitému subjektu používat pro vyjádření pojmů prvky a strukturu dané přijímuté ontologie. Dalším problémem ontologické oblasti je její rozsah. Při tvorbě ontologie je občas potřeba provádět selekci a zařazovat pouze ty pojmy, které mají jasnou vazbu na pojmy z jádra ontologie. Používá se také rozdělení ontologie do více nezávislých modulů, které se mezi sebou vhodně propojí do výsledné celkové ontologie. Často se řeší kompromis mezi použitelností a znovupoužitelností. 4

10 Čím je ontologie nezávislejší na konkrétní návrhové aplikaci, tím je bohužel méně efektivnější její přímé využití. [6] Typy ontologií Základní členění může být na formální, poloformální či neformální, dále ontologie členíme podle předmětu formalizace a to na [6]: Doménové ontologie jsou nejčastějším typem. Jejich předmětem bývá vždy jistá specifická oblast, která může být široce zaměřena, například na celý segment motoristické inzerce, tedy i na nákladní vozy, terénní vozy, osobní vozy, motocykly, či pouze na jistou podoblast, například inzerce sportovních vozidel. Generické ontologie zachycují obecné zákonitosti, které platí napříč různými doménovými ontologiemi. Jedná se například o problematiku času, topologie objektů, determinismu. Úlohové ontologie jsou znalostní úlohy a jejich řešení se zaměřením na odvozování. Může se to týkat diagnostiky, zhodnocení či plánování. Aplikační ontologie v sobě zahrnují většinou všechny předchozí typy ontologií. Jedná se o výběr modelů pro konkrétní oblast a aplikaci Struktura ontologií Struktura znalostních ontologií bývá ve většině nástrojů stejná, avšak značně se liší použitá terminologie. Je tedy třeba si před prací s takovýmito nástroji ujasnit význam klíčových slov. Vlastní nástroje pro práci s ontologiemi jsou blíže popsány ve 3. kapitole. Nyní vysvětlím jednotlivé pojmy a strukturu ontologií. Třída může značit také koncept, kategorii či rámec. Třída je základ ontologií a značí množinu konkrétních objektů se stejnými vlastnostmi či strukturou. Oproti třídám v objektově orientovaných modelech zde neexistují metody. Na množině tříd může existovat hierarchie, lze využít také stromovou strukturu, či použít vícenásobnou dědičnost. Individua neboli instance. Je to konkrétní objekt reálného světa z dané třídy. Ontologie avšak primárně slouží k popsání sémantiky třídy, nikoliv konkrétního objektu. Relace nebo také funkce, sloty, vlastnosti, role či atributy. Obdobně jako v databázových systémech jsou podstatnou složkou vztahy. Mohou být specifikovány pomocí logických podmínek, či jako předdefinovaná lokální nebo globální omezení. Lze vytvářet také hierarchii relací, tedy například relace je-automobil je nadřazený relaci je-sportovní-automobil. Meta-sloty, omezení na sloty, facety. V ontologiích je možné vztahům přiřazovat vlastnosti. Těmto vlastnostem říkáme meta-sloty. Nejčastější vlastností je hierarchie nadřazeného a podřazeného slotu. Což je v podstatě tranzitivní binární relace. Mezi další vlastnosti patří například metainformace o slotu, tedy definiční doménový obor a obor hodnot, zapsané podle konkrétních tříd. Může se jednat o globální omezení, tak i o lokální omezení na konkrétní třídě přes svůj definiční obor. Jde o omezení oboru hodnot, či o kardinalitu. Primitivní hodnoty a datové typy. Argumenty relací nemusí být pouze další objekty, ale také primitivní hodnoty. Jedná se o dato-typové relace a jejich obor hodnot býva většinou klasického typu, tedy textový, číselný, daný intervalem či výčtem. Například číslo 6 je instancí datového typu integer. Sloty v ontologiích mohou nabývat více hodnot najednou, to je rozdíl oproti klasickému objektově orientovanému modelování. Pokud použijeme jednoznačné sloty typu má-rok-výroby, kde je možná pouze jedna hodnota, pak jej explicitně deklarujeme jako funkční. Axiomy a pravidla je možné zařazovat do ontologií vedle klasických výrazů, které explicitně vyjadřují příslušnost k určité třídě. Jedná se o logické formule vyjadřující například ekvivalenci tříd či relací, disjunknost, rozklad třídy na podtřídy, apod. Klasická pravidla mají mnohem omezenější sémantiku. Souhrnné informace se umísťují většinou do hlavičky v ontologiích. Obsahují jednak znalostní konstrukty, pak i další souhrné informace jako odkazy na importované ontologie. Může se 5

11 jednat i o popis dokumentu, údajích o autorovi, času a datumu vytvoření, použitém nástroji, apod. Tyto údaje nemají vliv na logickou interpretaci ontologie. [6] 2.2 Základní technologie XML XML je obecný značkovací jazyk, který byl vyvinut a standardizován konsorciem W3C.[3] Je označován jako metajazyk, protože umožňuje definici konkrétních jazyků, aplikací XML. Uživatel si může sám nadefinovat používané elementy, jejich možné atributy, standardní hodnoty, způsoby vnořování nebo omezení datových typů. Tímto vytváříme nový jazyk. Příkladem takovéhoto jazyka je XHTML, což je aplikace XML pro zápis HTML. Dalším příkladem může být grafický formát SVG nebo transformační stylový jazyk XSLT. Dokument XML obsahuje značkování, které odpovídá pravidlům určeným ve standardu XML a také má správnou strukturou definovanou DTD nebo schématem. Lze ale vytvořit dokument, který nemá určené DTD nebo schéma. V takovém případě stačí, pokud vyhovuje základním požadavkům na vnořování elementů a použití XML konstrukcí. Měl by obsahovat jeden a více elementů. Elementy jsou do sebe vnořovány, tedy je-li počáteční tag vnořen v určitém elementu, musí tam být vnořen i koncový element. Kromě kořenového elementu má tedy každý element svého rodiče a tedy tvoří stromovou strukturu. V podstatě hlavní podmínkou kladenou na dokumenty je správné vnořování a správná syntaxe. Tedy zápis tagů do lomených závorek, uvozování všech atributů uvozovkami či apostrofy a podobně. Pro lepší kontrolu nad obsahem dokumentu je třeba omezit elementy, které mohou být použity a specifikovat jejich vnořování. K tomu slouží definice typu dokumentu (dále DTD). Je v něm možné kontrolovat správnou strukturovanost a také validitu. Validující parsery nás upozorní na chybu při zápisu struktury daného dokumentu. Například na element, vyskytující se na špatném místě, na chybějící atribut, použití neznámého atributu nebo elementu. Lze takto snadno zjistit, zda všechny dokumenty odpovídají zadané struktuře a můžeme pro jejich další zpracování využít konkrétní nástroje. [5] XML Schema Definice struktury XML dokumentu pomocí DTD je jednoduchá, ale má celou řadu omezení. Tvůrci standardu XML Schema se snažili tyto omezení odstranit. Mezi zásadní výhody schémat oproti DTD patří: Podpora jmenných prostorů. V případě násobnosti elementů lze kontrolovat možný počet opakování. Definice struktury je také v XML a pro návrh schémat lze tedy také použít běžné nástroje a editory XML. Schémata umožňují definovat datové typy a velmi přesně specifikovat omezení možných hodnot. Bohužel ale existují i nevýhody těchto XML schémat [5]: Slabší podpora v aplikacích. Podstatně složitější mechanizmus. Nemožnost určení kořenového elementu. V DTD se určuje pomocí hlavičky DOCTYPE. Nelze rozdělit definici struktury na interní a externí část. Nelze definovat entity ani parametrické entity. 6

12 Jak již bylo řečeno, mezi výhody schémat patří možnost definice datových typů. Dělí se na primitivní vestavěné typy popsané ve specifikaci a odvozené typy popsané ve schématech. Z těchto typů lze také odvodit typy nové. Veškeré datové typy jsou definovány na základě prostoru hodnot, množiny hodnot, které mohou nabývat, a lexikálního prostoru, tedy jakými znaky jsou tyto hodnoty reprezentovány. Jeden typ může mít více lexikálních reprezentací [2]. Obr Hierarchie vestavěných číselných typů [2]. 7

13 Obr Hierarchie vestavěných řetězcových typů [2] RDF Resource Description Framework (dále RDF) je nástroj pro reprezentaci faktů (vztahů). Oproti klasické stromové struktury v XML je grafový model RDF pro ontologie mnohem vhodnější a dostatečně otevřený pro vyjádření sémantiky. V RDF jsou jednotlivá tvrzení nezávislá na ostatních a přitom je možné je vhodně propojovat pomocí URI zdrojů. Složitější struktury vyžadují rozbití do trojic subjekt-predikát-objekt a následuje serializace do struktury XML. Struktura RDF se používala historicky i pro sémantický web, zejména v jeho počátcích, kde byl označován jako síť sémantických metadat zapsaných pomocí RDF. [6] Tvrzení složené z již zmiňované trojice subjekt-predikát-objekt je tedy základním stavebním kamenem jazyka RDF. Zdrojem může být samostatná webová stránka, celý webový portál, nebo i dokument mimo internet a může se vyskytovat v roli subjektu i objektu. Predikáty odpovídají požadovaným vlastnostem subjektu a objekt hodnotou těchto vlastností. Objektem může být mimo zdroje také primitivní datová hodnota, viz kapitola Způsob zápisu datového modelu RDF není striktně předepsán, může se tedy jednat například o grafickou reprezentaci, zápis formou výrazů, nebo zápis založený na XML. Obálka RDF obsahuje údaje o jmenných prostorech a informace o tvůrci. V elementu description se nachází vlastní tvrzení, kde atribut about odkazuje na subjekt, název subelementu odpovídá predikátu a obsah tohoto subelementu odpovídá objektu. Specifikace RDF umožňuje zapsat tvrzení efektivněji, tedy například do elementu description zapsat více subelementů. Pokud naopak chceme přiřadit tutéž vlastnost různým zdrojům, můžeme je sdružit do kolekce. Hodnoty metadat lze také ukládat přímo do atributů místo do subelementů. V model RDF se vyskytuje také možnost reifikace. Jde o hierarchii tvrzení, kdy jistou kolekci tvrzení obaluje další tvrzení, které lze chápat jako zdroj, a udává věrohodnost zbylých tvrzení. Nevýhodou je podstatné zkomplikování všech formálních vlastností. 8

14 RDF lze vyjádřit i pomocí grafu a to ohodnoceným orientovaným multigrafem. Dva uzly lze spojit jednou i více hranami. Ovály se využívají pro zdroje, hrany pro vlastnosti a obdelníky obsahují hodnoty vlastností. Zdroje mohou mít více vlastností a literály se vyskytují jen jako objekty. Hrany jsou vyznačeny pomocí URI. Příklad RDF grafu je na obr [7] Obr Příklad RDF multigrafu [7]. Příklad tvrzení v RDF je v následující tabulce: Subjekt Predikát Objekt V tomto tvrzení je řečeno, že subjekt, zde URI konkrétního inzerovaného sportovního vozu, má objektovou vlastnost s typem karoserie a hodnotou této vlastnosti je objekt značící, že se jedná o kabriolet, opět zapsaný pomocí URI. Místo tohoto objektu by šla použít primitivní textová hodnota, ale takto je to jednoznačnější. Existují také jiné způsoby serializace trojic v RDF, ty se ale v důsledku dominance XML používají jen málokdy. Jako příklad lze uvést Notation_3, neboli častěji uváděný jako N3. Jedná se o ne-xml serializaci, zkratkovitý zápis RDF modelů, který je jednoduše čtený lidmi. Příklad zápisu pomocí dc: < < dc:title "Tony Benn"; dc:publisher "Wikipedia" Zjednodušená forma N3 se nazývá Turtle (Terse RDF Triple Language), která však není standardizovaná a nesahá za působnost RDF [18]. Příklad zápisu pomocí Turtle [19]: 9

15 @prefix : rdf: < :a :b [ rdf:first "apple"; rdf:rest [ rdf:first "banana"; rdf:rest rdf:nil ] ]. N-Triples je řádková forma zápisu: <urn:states:new%20york> < "NY" Mezi méně používané patří zápis NTRIX. Zde se využívá větné skladby, uvedeme si tedy trojici v tomto zápisu: Autorem této knihy je Jaroslav Vrchlický Jaroslav Vrchlický je autorem této knihy Kniha je autorizována Jaroslavem Vrchlickým 2.3 Ontologické jazyky RDF Schema Tento sémantický jazyk orientovaný na RDF vznikl již v roce Představuje nástavbu RDF s použitím hlavních konstrukcí objektových systémů a to třídy a binární sloty s definičním oborem a oborem hodnot. Nad třídami i sloty lze vytvářet hierarchii. Přímo v RDF lze zdroje přiřazovat jednotlivým třídám z RDF Schema (dále RDFS) pomocí atributu type. RDFS splňuje hlavní požadavky vývojářů sémantického webu a to například definování hierarchických struktur neboli témat. Oproti klasickým ontologickým jazykům mu chybí definování lokálních omezení a tedy příslušnosti ke třídám, dále postrádá disjunktní tvar a datové typy [6] DAML+OIL V roce 2000 byl zahájen projekt DAML, který byl z části financován vojenskou organizací DARPA, a na jeho tvorbě se podíleli významní výzkumníci sémantického webu v čele s Timem B. Lee. Cílem bylo vytvořit sémantický jazyk pro RDF s větší vyjadřovací silou než má RDFS. Tento jazyk zahrnoval celou řadu konstruktů pro vymezení vztahů tříd a hodnot slotů. Ontology Inference Layer (dále OIL) je jazyk založený na propracovaném logickém kalkulu a umožňuje konstrukci složitějších podmínek při zachování výhodných vlastností pro výpočty. Použitý kalkul je deskripční logika. Sloučením jazyka DAML a OIL vznikl nový jazyk DAML+OIL. Základem tohoto jazyka jsou třídy, které jsou reprezentovány buď svým jménem pomocí URI, pak se jedná o pojmenované třídy, nebo logickým výrazem, poté jde o anonymní třídy. Pro tvorbu logických výrazů vymezujících třídy se používají konstruktory uvedené v Tab Konstruktory je možno libovolně skládat, a tak vytvářet složité výrazy. Obsah ontologie tvoří axiomy vystavěné nad výrazy reprezentujícími třídy. Přehled axiomů je uveden v Tab Název konstruktoru Popis intersectionof unionof complementof Booleovský výraz nad třídami oneof Třída jako množina primitivních hodnot toclass Třída splňující univerzální resp. existenční omezení na slot (tj. na 10

16 hasclass třídy, které jsou jeho hodnotami) hasvalue Třída splňující omezení na konkrétní hodnotu slotu (kombinace hasclass a oneof) mincardinalityq maxcardinalityq CardinalityQ Třída splňující omezení na kardinalitu slotu Tab 2.1. Konstruktory tříd v DAML+OIL [6] Název axiomu Popis subclassof sameclassas disjointwith vztah obecnější a speciálnější třídy ekvivalence tříd prázdný průnik tříd subpropertyof samepropertyas inverseof transitiveproperty uniqueproperty unambiguousproperty vztah obecnější a speciálnější vlastnosti (slotu) ekvivalence vlastností vztah vzájemně inverzních vlastností tranzitivita vlastnosti vlastnost je funkcí inverzní vlastnost k dané vlastnosti je funkcí sameindividualas differentindividualfrom Třída splňující omezení na kardinalitu slotu totožnost individuí odlišnost individuí Tab 2.2. Typy axiomů v DAML+OIL [6] Následuje krátky příklad ontologie vládní podpory vědy a výzkumu v jazyce DAML+OIL. <?xml version='1.0' encoding='iso '?> <!DOCTYPE rdf:rdf [ <!ENTITY rdfs ' <!ENTITY rdf ' <!ENTITY daml ' <!ENTITY old ' <!ENTITY xsd ' ]> <rdf:rdf xmlns:rdfs="&rdfs;" xmlns:rdf="&rdf;" xmlns:daml="&daml;"> <daml:ontology rdf:about=""> <daml:versioninfo>xyz</daml:versioninfo> <rdfs:comment>ontology to describe organizations and individuals participating in a government R&D program.</rdfs:comment> </daml:ontology> <rdfs:class rdf:id="agency"> <rdfs:subclassof rdf:resource="#organization"/> <daml:sameclassas rdf:resource="&old;agency"/> <rdfs:subclassof> <daml:restriction> <daml:onproperty rdf:resource="#name"/> <daml:toclass rdf:resource=" </daml:restriction> </rdfs:subclassof> 11

17 <rdfs:subclassof> <daml:restriction> <daml:onproperty rdf:resource="#partof"/> <daml:toclass rdf:resource="#agency"/> </daml:restriction> </rdfs:subclassof> </rdfs:class> Po deklaraci jmenných prostorů následuje hlavička ontologie element daml:ontology. Prázdná hodnota jeho atributu rdf:about odkazuje na dokument, v němž je tato deklarace obsažena. Poté uvádíme výraz vymezující třídu. Třída Agency je deklarována jako podtřída třídy Organization, a jako ekvivalentní třídě Agency ze starší verze stejné ontologie. Hodnota dato-typové vlastnosti name je pro třídu Agency deklarována pomocí lokálního omezení restriction jako instance datového typu string. Obdobně hodnota objektové vlastnosti partof je pro třídu Agency deklarována jako instance téže třídy Agency, tedy agentura může být součástí jedině jiné agentury. Používá se zde jednotný způsob zápisu tvrzení o určité třídě. Axiomy jsou syntakticky začleněné do elementu odpovídajícího třídě. Je zde také patrné, že jednotlivé elementy XML pocházejí z různých jmenných prostorů a to konkrétně: rdf:, rdfs: a daml:. Což lze chápat jako vrstvenou jazykovou architekturu, kde vyšší jazyk dědí konstrukty z jazyka nižšího, které není poté nutné znovu definovat. Jedním z důvodů proč se to takto používá je i částečná zpětná kompatibilita. Pokud je například jistá webová služba schopná pracovat se sémantikou na úrovni RDFS, pak lze použít alespoň základní sémantickou analýzu až do této vrstvy, nebo získat explicitní hierarchii tříd. Ztratí se pouze nejvyšší sémantika zapsaná pomocí DAML+OIL OWL Na základě zkušeností s jazykem DAML+OIL vznikl jazyk Web Ontology Language (dále OWL). Rozvíjí se pod hlavičkou W3C Ontology Working Group. Byl vytvořen na základě potřeby automatizovaného získávání informace bez účasti člověka. Jazyk používá explicitní definici termínů ve slovnících a vztahy mezi nimi. Narozdíl od RDF, RDFS, XML má OWL mnohem větší vyjadřovací sémantickou sílu. Ontologie zde dokáže formálně a explicitně popsat význam použitého názvosloví. OWL používá oproti RDFS navíc případové a požadavkové dokumenty, obsahující bližší detaily použité ontologie. OWL byl navržen přímo jako webový ontologický jazyk. OWL se jako jazyk dělí na 3 samostatné části použitelné pro různé skupiny vývojářů a uživatelů a to [7]: OWL Lite obsahuje pouze základní hierarchii tříd a prosté omezení. Podporuje kardinalitu o mohutnosti 0 nebo 1. Kvůli jednoduchosti tohoto jazyka lze také jednodušeji vytvářet nástroje pro práci s tímto jazykem. Má také nižší formální složitost než jeho složitější verze. OWL DL je určen pro vývojáře, kteří požadují velkou sémantickou schopnost zároveň s požadavkem na malou výpočetní složitost. Všechny závěry jsou 100% vypočítatelné a zaručuje také bezespornost, tedy že všechny výpočty skončí v konečném čase. Lze využít veškerou konstrukci jazyka OWL, avšak s danými omezeními. Zkratka DL je zde užita ve významu description logics (logika popisu). OWL Full má maximální výraznost a syntaktickou volnost, ale nezaručuje výpočetní náročnost. Je dovolena rekurze. Tedy například třída může být kolekce individualit a zároveň i samotná individualita v jejich správě. Tvorba nástrojů pro plnou podporu tohoto jazyka je velmi náročná. Ontologie v jazyce OWL se skládá z hlavičky a vlastního obsahu. Hlavička obsahuje odkazy na další ontologie a číslo verze. Vlastní obsah je složen ze sady axiomů definující třídy, individua, vlastnosti a vazby mezi nimi. 12

18 OWL dovoluje pracovat s pojmenovanými i anonymními třídami. Pojmenovaná třída je identifikována pomocí Uniform Resource Identifier (dále URI). To je důležitá podmínka pro korektní využívání ontologií v oblasti otevřeného webu. Anonymní třída odpovídá logickému výrazu nad pojmenovanými či také anonymními třídami. Pro jakoukoliv dvojci tříd lze vyslovit tyto axiomy: subsumpce, ekvivalence a disjunktnosti. Nejčastěji se používá axiom subsempce dvou pojmenovaných tříd, který odpovídá v běžném chápání speciálnější či obecnější třídě. Nebo také subsempce pojmenované a anonymní třídy, vymezené pomocí hodnoty určité vlastnosti. Příkladem anonymní třídy může být třída objektů, které mají vlastnost prodávající vzhledem k alespoň jedné instanci třídy autobazar. Pojmenovanou třídu auto prodávané autobazarem pak můžeme definovat jako ekvivalent průniku třídy auto a výše zmíněné anonymní třídy. Oproti třídám musí být individuum definováno pomocí URI vždy. Existence individua není závislá na přiřazení do určité třídy. Může být přiřazena nejen k jedné, ale i k více třídám současně. Axiomy umožňují sledovat odlišnost, nebo naopak shodu, dvou individuí s různými názvy. Individua však nejsou běžnou součástí ontologií a používají se výhradně tehdy, je-li třeba s jejich pomocí definovat určitou třídu. Například pokud chceme třídu převod auta vymezit jako množinu transakcí převedených pomocí jistého zákona sbírky, musíme tento zákon v ontologii definovat jako individuum, které je instancí třídy zákon. Nebo v případě vlastnosti emisní norma lze definovat jako individua jednotlivé normy EURO 0 až 6, patřící do třídy norma. Také vlastnosti jsou definovány pomocí URI. Logicky se jedná o binární relace nad množinou individuí. Ani vlastnosti tedy nejsou definovány v rámci určité třídy. Axiomy vlastností mohou vymezovat definiční obor a obor hodnot a také obecné matematické charakteristiky, tedy zda se jedná o tranzitivní, symetrické či funkční relace. Nebo také vztah subsempce, ekvivalance či inverzity dvojice vlastností. V jazyku OWL platí také klasická dědičnost. Vyplývá to z logické podstaty ontologií. Omezení hodnot vlastností se dědí z obecnější třídy na speciálnější. Dědí se také matematické charakteristiky i obory argumentů obecnějších vlastností na vlastnosti speciálnější. Základní syntaxí OWL je XML, nikoli však nativní. Mezi stromovou strukturu XML a strukturu OWL je totiž v současné verzi vložena úroveň jazyka RDF, včetně jeho vlastní sémantické nadstavby RDFS. Vztah OWL a RDF je dvojí. OWL sémanticky rozšiřuje RDF a RDF je syntaktickým prostředkem pro zápis OWL. RDFS umožňuje zavést nad zdroji a vlastnostmi hierarchickou strukturu tříd. Je to totiž také ontologický jazyk, ale oproti OWL se liší chudším vyjadřovacím aparátem a nedokonalou formální sémantikou. Pro lepší pochopení následuje příklad definující zmíněnou třídu auto prodávané autobazarem. Jedná se tedy pouze o část celé ontologie v jazyce OWL v syntaxi XML/RDF: <owl:class rdf:id="auto_prodavane_autobazarem"> <owl:equivalentclass> <rdfs:subclassof rdf:resource="#auto" /> <rdfs:subclassof> <owl:restriction> <owl:onproperty rdf:resource="#prodavajici" /> <owl:somevaluesfrom rdf:resource="#autobazar" /> </owl:restriction> </rdfs:subclassof> </owl:equivalentclass>... </owl:class> Definice této pojmenované třídy je založena na ekvivalenci vůči anonymní třídě, která je vymezena subsumpcí vůči dalším dvěma třídám. Z množinového hlediska se jedná o průnik. V tomto příkladu se nachází tři jmenné prostory a to RDF, RDFS a OWL. V RDF umožňují atributy ID a resource odkazovat na zdroj. RDFS pro subsumpci tříd a OWL. Výhodou takovéhoto vrstveného 13

19 přístupu je to, že aplikace, které znají RDFS, ale neznají OWL, mohou získat alespoň částečnou informaci. Z pohledu syntaxe je každá ontologie v OWL korektním souborem tvrzení RDF. Trojice Zdroj Vlastnost Hodnota jsou ovšem v XML syntaxi RDF nepříliš dobře viditelné a v případě OWL někdy ani nemají samostatně význam. Naštěstí je uživatel při tvorbě ontologie od syntaxe zpravidla odstíněn, používá-li některý z existujících grafických nástrojů, viz 3. kapitola. Výše použitá ontologie v příkladu může sloužit pro zobrazování nabídky aut různých autobazarů či soukromých prodejců, jedná se tedy o inzerci aut. Inteligentní vyhledávací služba poté při zadání dotazu na vyhledání vozidel, které prodávají pouze autobazary, najde záznamy vyhovující přesně zadání, tedy objekty patřící do třídy auto prodávané autobazarem, ale také informaci o autobazaru, který prodává dané auto. Inzertní portály tedy nemusí používát jednotnou strukturu informací, předdefinovanou například pomocí DTD nebo XML Schema. Ani není třeba pro každý katalog s nabídkou aut sestavovat obalový program, tzv. Wrapper, který by strukturu konvertoval. Stačí pokud dané inzertní portály budou dodržovat zobrazování informací podle společné ontologie. Riziko chybného mapování je mnohem menší. [9] Další způsoby zápisu Mezi další jazyky pro popis hierarchie tříd a jednoduché sémantiky patří například i UML. Nepoužívá se v něm přímo pojem ontologie, ale má k němu velmi blízko. UML je v současnosti nejpoužívanějším modelovacím nástrojem, používaným při návrhu informačních systémů. Klasické ontologie ve svých třídách nezahrnují metody pro vyjádření zodpovědnosti za určitou funkci systému, ale je v nich kladen důraz na logické vztahy mezi třídami a tedy lze vyjádřit rozsáhlejší sémantiku, než graficky pomocí asociací v UML. UML je tedy vhodnější pro programový návrh samotné aplikace a klasické ontologie se hodí pro popis dané domény, nezávisle na návrhu konkrétní aplikace. Další podstatný rozdíl je v tom, že instance jsou v klasické podobě ontologie chápány jako reálné objekty světa a příslušnost k jedné nebo více tříd je pouze jejich vlastnost, která může být změněna. Oproti tomu v UML je instance přímo přiřazena konkrétní třídě, na kterou je silně vázaná. Přesto lze i v praxi UML také použít pro zápis jisté formy semi-formální ontologie. Dalším alternativním možným zápisem ontologií jsou takzvané Topic Maps. Jejich základním konstruktem je téma, zastupující určitý předmět. Těmto tématům se přiřazují konkrétní informační zdroje, které se značí jako výskyty. Různá témata mohou být mezi sebou propojena pomocí asociací a k odlišení témat se stejným názvem se používá rozsah působnosti. Hierarchii tříd a instancí zde lze vybudovat pomocí příslušných asociací, například nadtřída-podtřída či třída-instance. Zvláštností je, že jak třídy, tak instance jsou tématy. Nevýhodou je menší vyjadřovací schopnost. Jedinou možností odvozování je slučování témat. [6] 2.4 Struktura OWL dokumentu Struktura OWL dokumentu zachycuje jednotlivé pojmy ontologie. Obvykle obsahuje jednu hlavičku a následuje definice tříd, vlastností a případně také individuí Hlavička Hlavička dokumentu ontologie obsahuje některé důležité informace o ontologii. Může obsahovat také komentáře, informace o verzích dokumentu, nebo o vnořených ontologiích. Následuje příklad hlavičky OWL dokumentu: <owl:ontology rdf:about=""> <rdfs:comment>an example OWL ontology </rdfs:comment> <owl:priorversion> <owl:ontology rdf:about= " 14

20 </owl:priorversion> <owl:imports rdf:resource= " <rdfs:comment> Derived from the DAML Wine ontology at aml Substantially changed, in particular the Region based relations. </rdfs:comment> <rdfs:label>wine Ontology</rdfs:label> </owl:ontology> Třídy Třída je základním hierarchickým prvkem ontologie. Je to uspořádaná množina prvků, které spolu určitým způsobem souvisejí. Tyto prvky se nazývají instancemi nebo individui třídy. Třídu jednoznačně popisuje její název, zapsaný pomocí URI, a soubor prvků. Existuje několik způsobů, jak může být třída definována: Identifikátorem třídy, neboli URI reference Výčtem prvků, které budou tvořit instance třídy Omezením vlastností Sjednocením nebo průnikem dvou a více definicí tříd Doplňkem definice třídy Třídy definované identifikátorem Taková třída je definována pouze uvedením svého jména. Neobsahuje tedy žádné prvky ani vlastnosti. Následuje příklad takovéto třídy: <owl:class rdf:id="wine"/> Třídy definované výčtem prvků Třída definovaná výčtem prvků je tzv. třída anonymní. Na takovou třídu se nelze přímo odkazovat, ale má využití ve složitějších konstrukcích jako sjednocení či průniky. V následujícím příkladu je třída WineColor definovaná výčtem prvků White, Rose a Red. Hodnotou vlastnosti owl:oneof je seznam individuí, která se stanou instancemi třídy. Příklad třídy definované výčtem prvků: <owl:class rdf:id="winecolor"> <owl:oneof rdf:parsetype="collection"> <owl:thing rdf:about="#white"/> <owl:thing rdf:about="#rose"/> <owl:thing rdf:about="#red"/> </owl:oneof> </owl:class> 15

21 Třídy definované omezením vlastností Třída definovaná omezením vlastností je speciálním typem definice třídy. Popisuje anonymní třídu všech individuí, která budou odpovídat podmínkám omezení. Existují dva typy omezení: omezení hodnoty a omezení kardinality. Obecný formát definice třídy omezením vlastností vypadá následovně: <owl:restriction> <owl:onproperty rdf:resource="nějaká vlastnost"/> (řádek s omezením hodnoty nebo kardinality) </owl:restriction> Omezení hodnotou mohou využívat tří základních OWL vlastností, viz tabulka 2.3. OWL vlastnost owl:allvaluesfrom Popis Popisuje třídu všech individuí, pro která daná vlastnost nabývá pouze hodnot definovaných omezením. Může to být i třída. owl:somevaluesfrom Popisuje třídu všech individuí, pro která alespoň jedna hodnota dané vlastnosti nabývá hodnoty definované omezením. owl:hasvalue Popisuje třídu všech individuí, pro která daná vlastnost nabývá hodnoty definované omezením. Tedy pouze jedna konkrétní hodnota. Tab Základní OWL vlastnosti. Následující příklad ukazuje definici třídy definované omezením vlastnosti hassugar, která musí nabývat hodnoty Sweet, tu bychom pak mohli použít například při definici třídy sladkých vín: <owl:restriction> <owl:onproperty rdf:resource="#hassugar"/> <owl:hasvalue rdf:resource="#sweet"> </owl:restriction> Obdobně je tomu u definování tříd omezením kardinality. Zde také existují tři owl vlastnosti, které lze při omezování kardinality využít, viz následující tabulka 2.4. OWL vlastnost owl:maxcardinality Popis Popisuje třídu všech individuí, pro která daná vlastnost nabývá maximálně počtu hodnot definovaných omezením owl:mincardinality Popisuje třídu všech individuí, pro která daná vlastnost nabývá alespoň počtu hodnot definovaných omezením. owl:cardinality Popisuje třídu všech individuí, pro která daná vlastnost nabývá přesně počtu hodnot definovaných omezením. Tab 2.4. OWL vlastnosti pro omezování kardinality. Následující příklad ukazuje definici třídy definované omezením vlastnosti madefromgrape na kardinalitu 1. Tedy víno vyráběné z jednoho typu hroznů. Příklad takovéto třídy: <owl:restriction> <owl:onproperty rdf:resource="#madefromgrape"/> <owl:maxcardinality rdf:datatype=" ger">1 </owl:maxcardinality> </owl:restriction> 16

22 Třídy definované průnikem Další možností jak definovat třídy je pomocí množinových operací nad třídami. K definici třídy průnikem se využívá OWL vlastnosti owl:intersectionof. První je třída Wine, jejími instancemi jsou všechna vín. A třída definovaná omezením vlastnosti hascolor na hodnotu White, tedy všechna bílá vína. Příklad třídy definované průnikem: <owl:class rdf:id="whitewine"> <owl:intersectionof rdf:parsetype="collection"> <owl:class rdf:about="#wine"/> <owl:restriction> <owl:onproperty rdf:resource="#hascolor"/> <owl:hasvalue rdf:resource="#white"/> </owl:restriction> </owl:intersectionof> </owl:class> Třídy definované sjednocením Třída definovaná sjednocením bude obsahovat prvky, které náleží alespoň do jedné ze tříd, na které aplikujeme sjednocení. K tomu se využívá vlastnosti owl:unionof. Následující příklad obsahuje definici třídy WineDescriptor pomocí sjednocení prvků dvou tříd WineTaste a WineColor: <owl:class rdf:id="winedescriptor"> <owl:unionof rdf:parsetype="collection"> <owl:class rdf:about="#winetaste"/> <owl:class rdf:about="#winecolor"/> </owl:unionof> </owl:class> Třídy definované doplňkem Definice třídy pomocí doplňku se od předchozích dvou definicí liší tím, že lze použít pouze jednu třídu, ke které budeme tvořit doplněk. Výsledkem tedy může být velmi velká třída, obsahující obrovské množství prvků. V ontologii o vínech se takto definovaná třída nevyskytuje, pravděpodobně by neměla význam. Pro úplnost uvedu příklad, kdy pomocí doplňku ke třídě WhiteWine definuji abstraktní třídu, jejíž prvky jsou všechna ostatní vína, tedy Rose a RedWine. Využiji přitom vlastnosti owl:complementof. Příklad třídy definované doplňkem: <owl:class> <owl:complementof> <owl:class rdf:about="#whitewine"/> <owl:complementof/> </owl:class> Kromě výše popsaných možností definic tříd existují možnosti, jak upravit definice tříd pomocí dalších tvrzení. K tomu lze využít následující vlastnosti: rdfs:subclassof označuje, že prvky definované třídy jsou podmnožinou prvků jiné nadřazené třídy. 17

23 owl:equivalentclass označuje, že množina prvků jedné třídy je přesně stejná jako množina prvků jiné třídy. owl:disjointwith označuje, že množina prvků jedné třídy neobsahuje žádné společné prvky s množinou prvků jiné třídy Vlastnosti Vlastnosti jsou jistým druhem binárních relací, díky kterým lze ke třídám a jejich prvkům přidávat tvrzení a spojení mezi jednotlivými objekty a datovými typy. Vlastnost která spojuje dva objekty bývá označována jako objektová vlastnost a lze ji definovat elementem owl:objectproperty. Vlastnost, která spojuje určitý objekt s nějakým datovým typem označujeme jako dato-typová vlastnost a definujeme ji pomocí elementu owl:datatypeproperty. Obecně má definice vlastnosti následující formát: <owl:objectproperty rdf:id= název vlastnosti > Další podmínky a typy vlastnosti </owl:objectproperty> Při definici vlastností využívá OWL následujících konstruktorů: RDFS konstruktory: a. rdfs:subpropertyof b. rdfs:domain c. rdfs:range Vztahy mezi vlastnostmi: d. owl:equivalentproperty e. owl:inverseof Globální omezení kardinality: f. owl:functionalproperty g. owl:inversefunctionalproperty Logické charakteristiky h. owl:symmetricproperty i. owl:transitiveproperty Vztahy mezi vlastnostmi Konstruktor owl:equivalentproperty označuje, že dvě vlastnosti mají naprosto stejné prvky, tedy hodnoty. Neznamená to však, že vlastnosti jsou stejné, mohou mít jiný význam. Konstruktor owl:inverseof se používá k označení vztahů v obou směrech, tedy doplnění jedné relace opačným případem. V následujícím příkladu je definována objektová vlastnost produceswine a inverzní vlastnost hasmaker. Příklad inverzní vlastnosti: <owl:objectproperty rdf:id="produceswine"> <owl:inverseof rdf:resource="#hasmaker"/> </owl:objectproperty> Globální omezení kardinality Konstruktor owl:functionalproperty označuje funkcionální vlastnost, která může mít pouze jednu jedinečnou hodnotu pro každou instanci. K vymezení hodnoty se často využívá konstruktorů rdfs:domain a rdfs:range. Jako příklad uvedeme objektovou vlastnost hascolor. Tím že je označena funkcionální vlastností vlastně říkáme, že její hodnotou může být pouze jeden prvek ze třídy WineColor, víno má pouze jednu barvu: 18

24 <owl:objectproperty rdf:id="hascolor"> <rdfs:domain rdf:resource="#wine"/> <rdfs:range rdf:resource="#winecolor"/> </owl:objectproperty> <owl:functionalproperty rdf:about="hascolor"/> Inverzní funkcionální vlastnost owl:inversefunctionalproperty omezuje vlastnost v opačném směru. Neříká, jaký může být objekt vlastnosti, ale vymezuje hodnotu subjektu Logické charakteristiky Symetrická vlastnost, definovaná konstruktorem owl:symmetricproperty označuje, že pokud dvojice prvků (a,b) je instancí dané vlastnosti, pak také dvojice (b,a) je instancí dané vlastnosti. V praxi to znamená, že konstruktory rdfs:domain a rdfs:range vymezující hodnotu vlastnosti bývají stejné. Transitivní vlastnost, definovaná konstruktorem owl:transitiveproperty označuje, že pokud dvojice prvků (a,b) je instancí dané vlastnosti a také dvojice prvků (b,c) je instancí dané vlastnosti, pak také platí, že dvojice (a,c) bude instancí dané vlastnosti [10]. 2.5 Sémantický web Praktické využití ontologie lze spatřit v sémantickém webu. Jeho počátky sahají do roku 2001, kdy se tvůrci současného webu shodli, že dnešní web je v podstatě jen neustále narůstající hromada stránek bez explicitní sémantiky a ve které je obtížné se vyznat či rychle vyhledat požadovanou znalost. Řešení viděli v rozšíření sémantického webu, kdy webové služby a další aplikace budou moci automaticky zacházet s informacemi a navzájem komunikovat pomocí důvěrného sdílení. Obr Ukázka propojení zdrojů na internetu. 19

25 Hlavním předpokladem sémantického webu je standardizovaný popis webových zdrojů, tedy textových informací, obrázků, zvuků a videí. Všechny tyto zdroje mají být popsány metainformacemi a musí zapadnout do globálního sémantického webu. Požadovanou informaci uživatel pak získá jednoduchým dotazem. Výsledkem sémantického webu je veliká přesnost při vyhledávání. Bez sémantického webu je problém při vyhledávání více významových slov, či zkratek. [7] Sémantický web je navržen jako souhrn několika na sebe navazujících vrstev. Jedno z možných schémat je vidět na obrázku 2.2. Adresování je založeno na URI. Univerzální syntaktický základ je XML. Další vrstva je RDF, sloužící jako primární datová struktura pro uchovávání faktů. Ještě výše jsou ontologie, které dávají faktům sémantiku a mohou být zapsány například pomocí jazyka OWL. Ontologie mohou sloužit jako nástroj pro odvozování, ale mají omezené možnosti. Lze implementovat algoritmy pro testování jejich konzistence a příslušnosti individuí ke třídám. Z ontologií nelze vyvozovat nová fakta, kromě těch, která vychází z příslušnosti individuí k jejich třídám. Proto se vytváří další pravidlová vrstva, která vychází ze zkušeností s deduktivními databázemi a také ze zkušenostmi s věcnými pravidly v informačních systémech, aktivovanými pomocí událostí. Poslední vrstva zabezpečuje věrohodnost nalézaných i odvozovaných informací. [9] Obr Schéma vrstev sémantického webu [9]. 2.6 Nasazení ontologií v praxi Množství aplikací ontologií nasazených dlouhodobě, tedy nejen například po dobu trvání určitého výzkumného projektu spolufinancovaného EU, v praxi stále výrazně zaostává za objemem teoretického a aplikačního výzkumu. Přesto pozvolna roste zájem komerčních i neziskových organizací, který je asi nejlépe patrný na statistikách prakticky orientovaných konferencí o sémantických technologiích americké Semantic Technology Conference i evropské ESTC [16]. Lze říci, že nejlépe si, z hlediska všeobecného přijetí, vedou rozsáhlé doménové ontologie s jednoduchou strukturou a bez ambicí na rozsáhlejší automatické odvozování (např. medicínské či produktové taxonomie), a také poměrně malé ontologie, které jsou však spojeny s velkým objemem dat distribuovaně uložených v rámci sémantického webu (např. FOAF). Jednou z možných průlomových aplikací v prostředí velkých firem je připravované řešení managementu znalostí ve firmě Vodafone. Možnosti ontologií pro integraci informací a konkurenční zpravodajství jsou dlouhodobě zkoumány i dalšími telekomunikačními společnostmi. Mezi ně patří France Télécom, který se podílí na testování nástrojů sémantického webu, nebo British Telecom, jehož vývojové centrum přišlo s vlastním nástrojem pro konkurenční zpravodajství využívajícím ontologie Data Foundry. Mezi další místa opakovaného nasazení ontologií patří instituce státní správy, kulturní organizace, například muzea, mediální agentury, průmyslové podniky (např. automobilky a výrobci letadel), firmy pracující v oblasti lidských zdrojů apod. Topic Maps se uplatňují např. jako základ dynamicky upravovaného informačního portálu norského ministerstva kultury. Samostatnou kapitolu 20

26 by si zasloužily aplikace lingvistických ontologií (např. WordNetu) při zpracování přirozeného jazyka, a tzv. extrakčních ontologií při získávání znalostí z WWW. Obecně je poměrně pomalý nástup ontologií jako běžného technologického řešení do praxe spojen se specifiky znalostních technologií jako takových: formalizované znalosti jsou (na rozdíl od jednoduchých dat) obtížně převoditelné do jednotné podoby, pro jejíž zpracování lze efektivně vyvinout hromadně šířený softwarový nástroj. Každý projekt zahrnující ontologie je proto do značné míry jedinečný a vyžaduje nasazení expertů s předchozími zkušenostmi jak s technologickým řešením tak i s věcnou oblastí. Na druhé straně však mají již vzniklé ontologie, při dodržení některých zásad naznačených i v tomto textu, solidní naději na opakované a dlouhodobé využívání [16]. Ontologie, konkrétně výhody sémantického webu, využívá také společnost Vodafone a to pro vyhledávací nástroje, například pro hry, pozadí či zvonění. Používají formát RDF. Po jejím nasazení se zlepšila přesnost vyhledávání a zmenšil se o 50% počet zobrazených stránek, což znamenalo snížení nevhodné zátěže serveru. Zároveň se však zvýšil samotný prodej těchto položek. Celkově tedy nasazení RDF znamenalo pro společnost Vodafone zvýšení úspěšnosti prodeje. Mezi další společnosti které zavádějí ontologie se řadí Nokia, která využívá výhody sémantického webu na svém diskusním fóru dostupném na adrese: forum.nokia.com. Také společnost Oracle zabývající se databázovými technologiemi již od verze 10.2 podporuje ontologie. Lze například provádět konverze nebo načítání RDF dat. RDF se ukládá nativně. Pro nalezení grafických závislostí lze použít funkci RDF_Match [17]. Obr Ukázka ukládací struktury RDF v Oracle [17]. 21

27 3 Nástroje pro ontologie Všechny ontologické jazyky lze editovat v klasickém textovém editoru, nebo v XML editoru. Přesto je lepší používat specializované nástroje pro tvorbu ontologií. V této kapitole zmíním asi nejpoužívanější jazyk Protégé, ze kterého lze exportovat do libovolného ontologického jazyka. Dalším zajímavým opensource nástrojem je Kaon, řešící ontologickou strukturu pro podnikové informační systémy. Lze vyzkoušet také nástroj Magpie, který řeší integraci ontologické znalosti do obecné HTML stránky za pomocí pluginu do nejznámějších internetových prohlížečů. 3.1 Protégé Protégé je volně šiřitelný editor ontologií a rámcové báze znalostí. Platforma Protégé podporuje dva typy modelování ontologií, takzvané: Protégé-Frames a Protégé-OWL editory. Ontologie lze exportovat do mnoha formátů, hlavně však do RDF(S), OWL a XML Schema. Aplikace je založena na jazyce Java, je plně rozšiřitelná, s podporou pluginů. Což z ní vytváří základ pro rychlé vytváření prototypů a vývoje aplikací. V současné době má komunita zabývající se tímto editorem přes 66 tisíc členů vývojářů z akademické, vládní i soukromé sféry. Ti jej využívají k řešení znalostí při oblastech, jako: biochemie, shromažďování inteligence a modelování společnosti [7]. Obr Nástroj Protégé. Funguje na mnoha různých platformách: Win, MacOs, Linux, Unix. Funkcionalita Protégé může být rozšiřována implementací tzv. pluginů (přídavných modulů). Některé slouží pro vizualizaci ontologií (např. OWLViz plugin), import, export, validaci, zpracování přirozeného jazyka apod. Z praktického hlediska může být Protégé např. využito v lékařství - je možné vizualizovat, prohlížet velké a komplexní ontologie, porovnávat je co do jejich obsahu apod. Mezi důležité vlastnosti tohoto nástroje patří: Rozšiřitelný znalostní model. 22

28 Přízpůsobitelné GUI (pomocí pluginů), od verze Protégé 4.0 Alpha možné měnit layout prostředí a grafický vzhled. Možný export i import ontologií zapsaných v různých formátech: XML, CLIPSu, HTML, OWL, RDF, Turtle, N-Triple, N3. Integrace s jinými aplikacemi: možné propojení Protégé s externími programy za účelem využití ontologie v inteligentních aplikacích (odvozování, klasifikace). Využití API pro přístup k ontologiím a programové manipulaci s nimi. Prostředí Protégé má za sebou celkem bohatou historii. První verze, kterou vytvořil Mark Musen, byla zpřístupněna roku Původně to byl menší nástroj zaměřený na získávání znalostí (knowledge acquisition tool) pro pár specializovaných programů např. pro oblast lékařství. Od té doby se prostředí neustále vyvíjí. Stabilní verzí je verze K dispozici je už i verze Protégé 4.0 Beta, která je jiná po stránce GUI a nabízí nové funkcionality. Jednou z nich je například možnost mít otevřených více ontologických modelů, v dřívějších verzích toto nebylo možné. Původním cílem bylo usnadnit práci znalostním inženýrům při vývoji tzv. znalostních bází. Obrázek 3.4 ukazuje souvislost mezi Protégé a znalostní aplikací obsahující bázi znalostí. Protégé není expertní systém ani program, který přímo slouží k jejich tvorbě, ale pomáhá vytvářet jejich jednu hlavní část - bázi znalostí. Tím, že bude báze znalostí vytvářena odděleně od tvorby znalostní aplikace, je možné ji lépe udržovat, spravovat [15]. Obr Protégé a znalostní báze [15]. 3.2 Kaon Jde o soubor nástrojů pro tvorbu a využívání ontologií vyvinutý na universitě v Karlsruhe pod opensource licencí. Ukázku pracovní plochy lze vidět na obr.3.1. Hlavní částí je tzv. Kaon API, což je hlavní aplikační rozhraní, zpřístupňující primární datovou vrstvu ontologie. Jeho základem je relačnědatabázová technologie. Jeho rozhraní lze nastavit pro ontologické inženýrství s operacemi nad třídami a transakční zpracování. Další volbou je zobrazení metadat RDF. Lze přistupovat i ke klasickým relačním databázím a na jejich základě vytvářet schéma ontologie. Nad tímto API rozhraní 23

29 lze následně spouštět celá řada dalších připravených nadstavbových aplikací, například pro tvorbu samotných ontologií, nebo generování webových portálů na základě ontologií. Také učení ontologií z textu nebo extrakci metadat z relačních databází. Obr Uživatelské prostředí nástroje KAON. 3.3 Magpie Knowledge Media Institut na Open University v Londýně vyvinul zajímavý nástroj s názvem Magpie pro sémanticky obohacené brouzdání sémanticky značenými webovými dokumenty. Magpie umožňuje identifikaci a filtrování konceptů, jež jsou předmětem uživatelova zájmu. Jedná se o plugin do Internet Exploreru nebo Mozilly umožňující integraci ontologické znalosti do obecné HTML stránky. Ukázka práce s tímto pluginem je vidět na obrázku 3.2. Před samotným označováním a vyhledáváním je třeba zvolit základní ontologii, protože obecná HTML stránka jí neobsahuje. Ukázkové ontologie jsou obsaženy v pluginu po instalaci. Demonstrační video s ukázkou použití tohoto nástroje je na [20]. 24

30 Obr Ukázka integrace pluginu Magpie do Internet Exploreru verze 6 [20]. 3.4 Semanticworks Tento nástroj je navržen pro pohodlné vytvoření a editaci RDF schémat a ontologií OWL všech verzí. K tomuto účelu je vybaven standardním XML editorem, známý z editoru Altova XML Spy, dále nástrojem, který načte schéma, ontologii a vybere z ní třídy, vlastnosti, instance a ontologie. Veškerá data jsou zobrazena do tabulek a pomocí tlačítek lze plynule přejít do prohlížeče grafu RDF. Během editace nástroj sám stahuje definice použitých schémat a ontologií z internetu [11]. 25

31 Obr Ukázka nástroje Semanticworks [11]. 3.5 Další nástroje Jednodušší a tudíž méně časově a paměťově náročný editor s důrazem na webové adresování a kombinování více ontologií je SWOOP, vzniklý na univerzitě v Marylandu. Mezi komerčními nástroji dnes patří k hlavním konkurentům TopBraid Composer od firmy TopQuadrant, OntoStudio (nástupce OntoEdit) od firmy Ontoprise. Tvorba Topic Maps je podporována zejména nástroji firmy Ontopia jako je OKS (Ontopia Knowledge Suite). 26

32 Obr Nástroj SWOOP [17]. Vzhledem k rostoucímu počtu dostupných ontologií se stále častěji nabízí možnost nevytvářet ontologii na zelené louce, nýbrž využít některou z ontologií již na webu dostupných. Analogicky k nedávné historii webových katalogů vs. vyhledávačů mají za sebou již svůj konec pasivní knihovny ontologií typu DAML Library. Popularitu si získávají indexovací a vyhledávací služby jako je Swoogle, případně novější OntoSelect či Watson zpravidla umožňují vyhledávat jak ontologie, tak i jimi anotované dokumenty. Zatímco Swoogle svým pojetím silně připomíná vyhledávač Google (s rozšířenou verzí algoritmu PageRank, nazvanou OntoRank), OntoSelect klade důraz na možnost vícejazyčného vyhledávání, a Watson na automatické hodnocení kvality nalezených ontologií a na možnost jejich kombinování. S vyhledáváním ontologií úzce souvisí jejich vzájemné mapování, které je často podmínkou integrovatelnosti nezávisle vzniklých aplikací. Hlavní webový rozcestník pro tuto oblast uvádí více než dvacet nástrojů pro zcela či částečně automatické mapování ontologií, vesměs se ale jedná spíše o experimentální prototypy. Ze specializovaných nástrojů pro učení ontologií z textů je třeba zmínit především Text2Onto a OntoGen, v obou případech se jedná o volně šířené nástroje [16]. 27

33 4 Návrh ontologie pro inzerci aut Tato ontologie by měla vystihovat co nejpřesněji doménu pro inzerci nových i ojetých aut. Jak již bylo řečeno v teoretickém úvodu, měla by být ontologie pro určitou doménu jistým kompromisem profesionálů z dané oblasti a to proto, aby jí všichni používali a nevznikly tak konkurenční ontologie. V rámci této diplomové práci jsem vytvořil návrh této ontologie. V České Republice zatím podobná ontologie pro inzerci aut neexistuje a jedná se tedy o úplně první návrh. Tato ontologie bude následně konzultována se všemi zainteresovanými firmami a na základě domluvy budou provedeny změny. 4.1 Motivace pro tvorbu Dostáváme se tedy k pomyslnému důvodu pro vytváření ontologií. Současný stav je takový, že každý prodejce či inzertní portál používá své vlastní rozhraní a synchronizace nabídek probíhá pomocí XML souborů, kde jsou uloženy kompletní nabídky těchto vozidel, včetně informací o prodejcích. Bohužel neexistuje standardní rozhraní a tak se setkáváme s různými typy, názvy či vlastnostmi. Takovýto způsob zápisu je obtížně pochopitelný pro člověka a ještě hůře pro samotné počítače, protože v nich neexistuje sémantika. Inzertní portály tedy musí vytvářet desítky různých synchronizačních skriptů pro různé formáty. A problémy s nimi mají i vyhledávací roboti. Výhoda ontologií je zřejmá. K danému vozu bude existovat pouze jediné individuum. Inzertní portály si budou tyto individua pouze lokálně stahovat a ukládat do paměti. Budou probíhat noční aktualizační skripty. Takže například změna ceny pro prodávajícího bude velmi jednoduchá. Změní jí pouze jednou a změny se do pár hodin projeví všude. Další obrovskou výhodou bude oddělení ontologie s prodejci. U konkrétního vozu bude pouze objektová vlastnost s odkazem na konkrétního prodejce. Ontologie s prodejci bude použitelná i v jiné oblasti, například pro účely katastrálního úřadu či finančního úřadu. Takže oprávněný úředník bude mít okamžitě k dispozici pro daného prodejce jak soupis nemovitostí, informace o financích, tak i aktuálně prodávané vozy, či již prodané vozy. A tyto informace budou pochopitelné na základě vnořené sémantiky i pro počítačové systémy. Ostatně toto je důvod vytváření všech ontologií do různých doménových oblastí. Podčástí je také vytváření sémantického webu. Hlavním předpokladem sémantického webu je standardizovaný popis webových zdrojů, tedy textových informací, obrázků, zvuků a videí. 4.2 Textový popis Ontologie dostala název auta a vytvořena byla v jazyce OWL, tedy kompletní název souboru je auta.owl. Tento název je vyhovující, protože podobný duplicitní název v celém internetu neexistuje. Obsahuje vytvořenou hierarchii tříd s auty podle značek a modelů. Mezi objektové vlastnosti patří typ karoserie, poháněná náprava, palivo či objekt prodejce. Datové vlastnosti vystihují například barvu vozu, cenu i s popisem, datum vložení, najeté kilometry, objem motoru, doplňující popis, výbavu, typ modelu, výkon v kilowatech a rok výroby. Zvláštní datovou vlastností je typ pro vkládání obrázků. Zde jsou připraveny dvě možnosti, jednak pro vkládání přímo do datového souboru přes formát base64binary a také pro vkládání pouze přes URL odkaz na danou fotku. Podrobnosti k těmto vlastnostem budou uvedeny v kapitole

34 4.3 Importované ontologie Do této ontologie jsou importovány další potřebné samostatné ontologie a to ontologie s prodejci a ontologie s adresami. Všechny tyto ontologie také neexistovaly a musel jsem je vytvořit. Ontologie s prodejci je popsána v 5. kapitole. Obsahuje detailní informace o konkrétním prodejci. V ontologii s auty existuje objektová vlastnosti s odkazem na konkrétního prodejce z této ontologie. Na ontologii s prodejci navazuje ontologie s adresami, ta bude popsána v 6. kapitole. 4.4 Hierarchie tříd Základní třídou je třída Auto, která má jako podtřídy značky různých automobilek. Pro každou značku poté existují další podtřídy s různými modely. Tato hierarchie je ukázána na obr 4.1. Jedná se z pochopitelných důvodů pouze o částečnou ukázku. Kompletní seznam značek a modelů je již vytvořen v této ontologii, která je součástí 2. přílohy. Aktualizace těchto tříd bude prováděna centrálně, avšak za asistence a dohody všech zúčastněných stran. 29

35 Obr Ukázka části hierarchie třídy auto. Specialitou a odlišností od současného stavu ve všech inzertních portálech je postupné zanořování těchto tříd, tedy hlubší hierarchie. Je to velká výhoda, pokud chce uživatel nalézt pouze konkrétní model auta, nebo ho zajímá celá modelová řada. V těchto případech nemusí složitě vyhledávat přes volitelné pole typu vozu nebo přes výkon vozu, ale stačí mu vybrat pouze konkrétní modelovou třídu. Ukázka je patrná u modelové řady 1 a 3 značky BMW, viz obrázek

36 Obr Ukázka hlubší hierarchie tříd. Následují již třídy vytvořené pro popis jednotlivých vozů. Konkrétně se jedná o třídu karoserie, která obsahuje navzájem disjunktní podtřídy s jednotlivými typy. Další třídou je třída s palivem. Zde již jednotlivé podtřídy nejsou disjunktní. Disjunktní jsou pouze podtřídy benzín a nafta. Je to logické, protože naftový agregát může obsahovat v budoucnu pomocný vodíkový pohon. Poslední zajímavou třídou je poháněná náprava s navzájem disjunktními podtřídy s popisem poháněné nápravy. 31

37 Obr Ukázka hierarchie ostatních tříd. Následuje ukázka zápisu třídy Benzín, která je podtřídou třídy Palivo a je odloučená od třídy Nafta. <owl:class rdf:about="#benzín"> <rdfs:subclassof rdf:resource="#palivo"/> <owl:disjointwith rdf:resource="#nafta"/> </owl:class> 4.5 Vlastnosti s objekty Objektové vlastnosti mají zcela jiný charakter než u běžných objektově orientovaných jazyků. Zde mají vyšší význam. Nejsou tedy vloženy do některé třídy, ale jsou přiřazovány k různým třídám, do různých domén. Totéž platí i pro datové vlastnosti. Důležitý údaj je rozsah, který udává ze které třídy může být daný přiřazený objekt. 32

38 První objektovou vlastností je haskaroserie, která udává typ karoserie. Protože přiřazení této vlastnosti konkrétnímu autu vyžaduje přidání konkrétního objektu reálného světa, musel jsem pro všechny typy karoserie vytvořit vlastní individuum. Podobná situace nastala s objektovou vlastností pro palivo či pro poháněnou nápravu, vybírá se vždy z předpřipravených individuí. Poslední objektová vlastnost hasprodejce vyžaduje přiřazení konkrétního prodejce z ontologie prodejců. Doména je opět nastavena pouze pro auto. 4.6 Datové vlastnosti hasbarva Určuje barvu vozu v textové podobě. hascena Cena vozu v Kč a v číselné podobě. hascenapopis Textový popis ceny. Může se zde zobrazovat také detailní informace o použitém leasingu a podobně. Nebo možnost slevy. hasdatumvlozeni Přesné datum a čas vložení vozu do nabídky. hasdatumzmena Datum poslední změny vozu. Tato vlastnost je primárně určena pro synchronizační automaty, kde roboti ihned vidí, zda došlo u auta k aktualizaci ceny, údajů nebo fotografií. hasimagebinary Vlastnost pro přímé uložení obrázku do ontologie. Podrobněji bude popsána níže. hasimageurl Slouží pro textové uložení URL s fotkou. Pro velké zatížení primárního serveru je potřeba aby si každý inzertní portál uložil fotografie lokálně na svůj server a prováděl pouze aktualizaci. hasnajeto Uvádí počet najetých kilometrů. Pro převod z mil je třeba použít konstantu Tato konstanta je určena podle [12]. hasobjem Určuje objem motoru v krychlových centimetrech. Hodnota se zaokrouhluje na celočíselnou hodnotu. haspopis Textový doplňující popis vozu. Zde lze uvádět počet majitelů, servisování vozu, celkový stav, či podmínky prodeje. hastyp Doplňující typ vozu. Jedná-li se například o vůz Subaru Impera, pak typ může obsahovat doplňující popis modelu, tedy například WRX Sti. hasvaha Pohotovostní váha vozu v celých kilogramech. Tedy nikoliv celková váha vozu, jak se běžně chybně uvádí. Zde se jedná o váhu vozu bez užitkové hmotnosti, tedy bez posádky a zavazadel. hasvybava Ve starých systémech se uvádí kompletní výbava, což bývá nadbytečná informace. Cílem je vkládat pouze nadstandardní výbavu oproti zcela sériovému základnímu vozu. hasvykon Uvádí se výkon vozu v kilowatech. Další velmi častou jednotkou pro uvádění výkonu je metrická koňská síla (PS). Pro převod se využívá tento vzorec: 1 kw = 1,35962 k. Konstanta je určena podle [13]. hasvyrobeno Rok výroby vozu. Nikoliv tedy rok uvedení do provozu. Pro uložení fotografií přímo v datové části využíváme vlastnost hasimagebinary, která je datového typu base64binary, který umožňuje zápis informací uložených v binární podobě. Nese informace uložené metodou Base64 podle doporučení Popis tohoto datového typu je uveden v 5. příloze. 4.7 Příklad s individuem Následuje ukázka zápisu individua a to konkrétně nabídky ojetého vozu Audi S3. 33

39 <S3 rdf:about="#auto000001"> <hasvykon>210</hasvykon> <hasobjem>2000</hasobjem> <hasbarva>modrá</hasbarva> <hascenapopis>dohodou</hascenapopis> <haspopis> 1. Majitel, nebouraný.</haspopis> <hasdatumvlozeni> </hasdatumvlozeni> <hasvybava>klima, xenony.</hasvybava> <hasnajeto>45000</hasnajeto> <hastyp>2.0</hastyp> <hascena>650000</hascena> <hasvyrobeno>2004</hasvyrobeno> <haskaroserie rdf:resource="#karoserie_hatchback"/> <haspalivo rdf:resource="#palivo_benzin"/> <haspohanenanaprava rdf:resource="#pohon_predni"/> <hasprodejce rdf:resource="&ontology ;prodejce0001"/> </S3> Podstatné je zde uvedení, že daný vůz patří do třídy S3 a tedy vnoření do stejnojmenného tagu. Každé individuum musí mít jedinečný identifikátor. V OO systémech bývá podobný identifikátor nazýván Object ID. Jsou zde vidět jak jednoduché datové vlastnosti, tak i objektové vlastnosti s druhem paliva, či karoserií. K těmto vlastnostem se přiřazují již dříve vytvořené individua z konkrétních tříd. Prodejce je identifikován taktéž odkazem na jiné individuum, v tomto případě z jiné ontologie. 34

40 5 Návrh ontologie pro prodejce Na tuto ontologii se odkazuje ontologie s auty, kde individuum z této ontologie určuje prodávajícího konkrétního vozu. Jedná se ale o univerzální ontologii a bude použitelná i v jiných doménách. Proto jsem jí také oddělil od ontologie s auty. 5.1 Textový popis Základní třída je Prodejce. Na rozdíl od ontologie s auty nemá tato třída žádné podtřídy. Další třídou je Typ, který určuje, zda je prodejce právnickou osobou, či fyzická osoba podnikatel nebo nepodnikatel. Třída Forma rozděluje prodejce na autobazary, autosalóny, autopůjčovny, dovozce nebo soukromého prodejce. Mezi objektové vlastnosti se řadí výběr typu a formy. Další důležitá objektová vlastnost je hasadresa, která požaduje individuum z externí ontologie s adresami. Mezi datové vlastnosti se řadí datum založení účtu prodejce, název firmy, jméno, příjímení, , login či telefon. 5.2 Hierarchie tříd Třída Typ obsahuje již zmiňované typy prodejců. Všechny jsou navzájem oddělené a jeden prodejce nemůže nabývat více typů. Forma určuje typ prodávajícího. Na rozdíl od předchozí třídy je v této povoleno být členem ve více podtřídách, kromě soukromého prodejce. Tedy autosalón může být zároveň také autopůjčovnou. Obr Hierarchie tříd ontologie s prodejci. Ukázka zápisu omezení pro typ prodejce: <rdf:description> <rdf:type rdf:resource="&owl;alldisjointclasses"/> <owl:members rdf:parsetype="collection"> 35

41 <rdf:description rdf:about="#fyzická_nepodnikatel"/> <rdf:description rdf:about="#fyzická_podnikatel"/> <rdf:description rdf:about="#právnická"/> </owl:members> </rdf:description> 5.3 Vlastnosti s objekty Objektové vlastnosti jsou zde 3 a to hasadresa pro určení individua z ontologie adres. Dále již zmiňované hasforma a hastyp. Ukázka zápisu objektové vlastnosti hasforma, rozsah je nastaven na třídu Forma a je určená pro doménu Prodejce: <owl:objectproperty rdf:about="#hasforma"> <rdfs:range rdf:resource="#forma"/> <rdfs:domain rdf:resource="#prodejce"/> </owl:objectproperty> 5.4 Datové vlastnosti hasdatumzalozeni Přesné datum založení účtu s prodejcem. has Kontaktní . hasnazevfirmy Úplné jméno firmy podle obchodního rejstříku. hasjmeno Jméno soukromého prodejce či jednatele firmy. hasprijimeni Příjmení soukromého prodejce či jednatele firmy. hastelefon Telefon či mobil, vlastnost je textová, lze zapsat v libovolném formátu a dokonce i více telefonních čísel. haslogin Přihlašovací login prodejce do systému. Ukázka zápisu datové vlastnosti hasnazevfirmy: <owl:datatypeproperty rdf:about="#hasnazevfirmy"> <rdfs:domain rdf:resource="#prodejce"/> <rdfs:range rdf:resource="&xsd;string"/> </owl:datatypeproperty> Doména je nastavena pouze pro třídu Prodejce a datový typ je String. 5.5 Příklad s individuem Ukázka individua prodejce <Prodejce rdf:about="#prodejce0001"> <haslogin>novik</haslogin> <hasjmeno>pavel</hasjmeno> <hastelefon> </hastelefon> <hasdatumzalozeni> </hasdatumzalozeni> <hasnazevfirmy>autosklo s.r.o.</hasnazevfirmy> <has > @seznam.cz</has > <hasprijimeni>novák</hasprijimeni> <hasforma rdf:resource="#forma_autosalon"/> 36

42 <hastyp rdf:resource="#typ_pravnicka"/> <hasadresa rdf:resource="&ontology ;adr0001"/> </Prodejce> Jsou zde jak datové vlastnosti, tak i zmiňované objektové vlastnosti pro výběr typu či formy prodejce. Důležitou objektovou vlastností je hasadresa, která ukazuje na externí ontologii a výběr konkrétní adresy z individuí. 37

43 6 Návrh ontologie pro adresy Jedná se opět o univerzální ontologii, v našem případě použitou pro ontologii s prodejci pro určení adresy. Lze jí ale použít v libovolné jiné doméně. Její využití je velmi široké. 6.1 Textový popis Hlavní částí je třída s adresami. Na nejvyšší úrovni se určuje stát, dále je to město a mezi další podtřídy by se mohlo jednat o čtvrtě města. Objektové vlastnosti zde neuvádím, v budoucnu by se některé mohly vytvořit. Mezi datové vlastnosti patří například určení ulice, čísla domu, poštovního směrovacího čísla či textový URL odkaz na google mapu. 6.2 Hierarchie tříd Hlavní členění třídy Adresa je na státy, následují města a v budoucnu také čtvrtě měst. Všechny podtřídy jsou navzájem oddělené. Pokud budeme chtít použít pro jednoho prodejce více adres, využijeme 2 nezávislých individuí s adresami. Obr Hierarchie tříd v ontologii adres. 6.3 Datové vlastnosti hasulice Textová vlastnost se jménem ulice. hascislodomu Celočíselná vlastnost s číslem popisným. haspsc Celočíselný typ, poštovní směrovací číslo. hasgooglemapurl Textový URL odkaz s přímou adresou na mapový server společnosti Google. Ukázka zápisu celočíselné vlastnosti hascislodomu: <owl:datatypeproperty rdf:about="#hascislodomu"> <rdfs:domain rdf:resource="#adresa"/> 38

44 <rdfs:range rdf:resource="&xsd;nonnegativeinteger"/> </owl:datatypeproperty> 6.4 Příklad s individuem Ukázka individua adresy z Ostravy: <Ostrava rdf:about="#adr0001"> <haspsc xml:lang="">34101</haspsc> <hascislodomu>41</hascislodomu> <hasulice xml:lang="">dvorská</hasulice> </Ostrava> 39

45 7 Převod XML na OWL Protože přechod na ontologie nebude zřejmě revoluční, ale postupně zaváděný, je třeba připravit nástroj pro převod existujících dat v XML na zápis inzerce v jazyce OWL. Tento vytvořený konvertor bude vhodný například pro autobazary, aby mohly do nového systému přidávat svojí nabídku vozů přes stávající XML formát. Je to ovšem pouze dočasný stav, než přejdou na přímý převod do jazyka OWL. Vytvořím tedy převodní nástroj v jazyce PHP. 7.1 Popis zdroje dat Protože většina českých autobazarů využívá k exportu software Autosoft, nebo alespoň používá jejich formát zápisu XML, vytvořím nástroj pro tento formát. Následná úprava na jiný formát bude velmi jednoduchá. Aktualizační XML soubory jsou k dispozici ke stažení ve zkomprimovaném formátu ZIP. Název souboru se odvíjí od uživatelského jména na serveru AutoSoft.cz, nebo libovolného jména v případě nepoužití Autosoftu. Pro každou třídu XML lze pomocí speciálního jazyka přesně formálně definovat, jaké elementy lze v dokumentu použít, jaké mohou mít atributy a obsah. Těmto jazykům se říká jazyky pro definování schématu dokumentu. Historicky nejstarší a nejznámější je DTD (Document Type Definition), nebo v současnosti častěji používané XML schémata (viz kapitola ). V našem případě však většina XML souborů obvykle není formálně definovaná a předávají se formou komentovaných ukázek, viz následující příklad. Zkrácená ukázka zápisu vozu v XML: <car> <id>a05887</id> <datum_prijeti> </datum_prijeti> <kind>osobni</kind> <manufacturer>porsche</manufacturer> <model>911</model> <type>carrera 4S 997</type> <color>black</color> <state>d</state> <fuel>inz_benzin</fuel> <tachometr_unit>km</tachometr_unit> <tachometr>32800</tachometr> <rok_vyroby>2006</rok_vyroby> <engine_power>261</engine_power> <engine_volume>3824</engine_volume> <typkar>kabriolet</typkar> <dveri>2</dveri> <pocet_mist>4</pocet_mist> <stk>09/2010</stk> <buy_type>inz_used</buy_type> <price_base> </price_base> <price_currency_code>czk</price_currency_code> <doplnkova_vybava>dvd</doplnkova_vybava> <note>aktuální cenu naleznete na <not_crashed>nehavarový</not_crashed> <user_info10></user_info10> <equipment> <equipment_id>eq_abs</equipment_id> 40

46 <equipment_id>eq_xenon</equipment_id> </equipment> <photos> <photo> <photo_size>46568</photo_size> <url> <main>1</main> </photo> <photo> <photo_size>56031</photo_size> <url> <main>0</main> </photo> </photos> </car> Formát druhého nejpoužívanějšího programu TEAS je velmi podobný, avšak zásadně se liší způsob vkládání obrázku. Jak je patrné na ukázce, tak formát Autosoftu vkládá fotografie jako URL odkazy. Formát TEASu je vkládá přímo do XML jako typ base64binary (viz 5. příloha). 7.2 Obecný návrh systému Je potřeba navrhnout jednak parser pro současný formát XML a poté následný export do formátu jazyka OWL. Aby nedocházelo k duplicitě při vytváření individuí je třeba kontrolovat, zda-li se již dané individuum nenachází v hlavním OWL souboru. Protože by bylo procházení tohoto souboru časově velmi náročné, navrhnul jsem vytvořit centrální databázi aut a i prodejců z tohoto souboru, například v MySQL. Kontrola duplicit aut či prodejců bude fungovat na principu volání například php skriptu, který provede porovnání s databází a odpoví. V této databázi je vyhledávání duplicit velmi rychlé. V budoucnu by mohla existovat paralelní záložní databáze na jiném serveru. Návrh této databázové struktury je v příloze 1. Diagram nasazení celého systému je na obr Obr Diagram nasazení celého systému. 41

47 Nyní popíši činnost systému. Autobazary mají možnost exportovat svá data jak ve starším formátu XML, tak i již v sémantickém OWL. V případě použití XML se využije komponenta synchronizačního serveru pro parsování XML. Následně provede systém kontrolu zda se již daný vůz nenachází v ontologii aut a provede vložení, aktualizaci nebo smazání nabídky. Pro rychlejší vyhledávání se používá databázový server, který dané vozy kontroluje a vyhledává duplicity a změny. Přes tento databázový server se již přímo vytváří daná ontologie aut i prodejců. V současné době se nachází popis ontologie i všechna individua v jednom souboru. V budoucnu bude tento soubor rozdělen na dvě části, takže individua se budou nacházet v samostatném souboru. Fotografie se předávají formou url odkazů. V databázi budou uložena pouze metadata těchto fotografií a tedy jejich velikost, datum vytvoření a podobně. Podle těchto metadat lze určit potřebu případné aktualizace fotografií. Pro lepší dostupnost se obrázky kopírují z odkazů od prodejců přímo do souborového serveru. V diagramu je patrná pouze logická cesta vedoucí přes databázi, protože odkazy se sice kopírují přímo od autobazarů, ale to se děje automaticky a autobazary nemají přímý přístup do tohoto souborového serveru. Aby bylo možné využívat možností ontologií naplno, je třeba použít také ontologii adres. Ta bude potřeba v budoucnu vytvořit například s pomocí katastrálního úřadu, který by prováděl aktualizaci adres přes jejich geografický informační systém. Ontologie adres by se mohla vytvářet automaticky z jejich databázového serveru. Inzertní portály poté vezmou owl soubor prodejců a aut, owl soubor adres a obrázkové soubory s fotografiemi, které pomocí owl parseru převede do interních databází a zobrazí nabídku všech vozů pro potenciální uživatele. Tyto data se mohou zobrazovat například pomocí html ve webových prohlížečích. Tuto synchronizaci mohou inzertní portály spouštět v noci, nebo také několikrát denně. Inzertních portálů může být napojeno obecně neomezené množství. Nyní se již dostáváme k vlastní výhodě ontologií a to je jednotnost těchto dat, které jsou platné pro všechny inzertní portály. A tím mám na mysli jak vlastní data s konkrétními nabídkami vozů, tak i metadata. V současné době není problém narazit v nabídkách portálů na vozy, které jsou již prodány. Nebo například na rozdílnost cen vozů a dalších údajů. Totéž platí i pro kontaktní údaje u prodejců. Staré adresy, neplatné y a jiná telefonní čísla. 7.3 Implementace parseru Ze zdrojového XML souboru získám data pomocí obsluhy koncového tagu a podle konverzní tabulky. Příklad: if(eregi($nazev, "manufacturer")) { $znacka=$data2; $znackaxml=$data2; } if(eregi($nazev, "color")) { $barva=htmlspecialchars(barva($data2)); } if(eregi($nazev, "typkar")) { $karoserie=karoserie($data2); } if(eregi($nazev, "id")) { $importid=$data2; } Při vytváření individua je potřeba kontrolovat z centrální databáze vozů, zda-li se zde vůz již nevyskytuje. V případě existence se podle datumu kontroluje aktuálnost údajů a případná korekce. Pro toto byla vytvořena funkce owlkontrolaindividua: 42

48 function owlkontrolaindividua($importid) { $result7=mysql_query("select * FROM AUTO WHERE ID_IMPORT='$importID' "); if (mysql_num_rows($result7)==0) { return false; //auto neexistruje } else { return true; //auto jiz existuje - nutna kontrola aktualizace! } } Následná změna rozlišení fotografií a případné vložení vodoznaku loga Sportovnivozy.cz se provádí pomocí následující funkce: function resizepicture($filename,$mimetype,$max_width,$max_heigh,$vodoznak) { if (isjpegfile($mimetype)) { list($ow, $oh) = getimagesize($filename); if ($MAX_WIDTH/$MAX_HEIGH > $ow/$oh) { $trimheigh = true; } else { $trimheigh = false; } if ($trimheigh) { $new_h = $MAX_HEIGH; $new_w = round($ow/$oh * $MAX_HEIGH); } else { $new_w = $MAX_WIDTH; $new_h = round($oh/$ow * $MAX_WIDTH); } $dest = ImageCreateTrueColor($new_w,$new_h); $source = imagecreatefromjpeg($filename); imagecopyresampled($dest, $source, 0,0,0,0, $new_w, $new_h, $ow, $oh); //vlozeni vodoznaku if ($vodoznak) { $watermark='img/web/vodoznak.gif'; $imagesize_watermark = getimagesize($watermark); if ($imagesize_watermark && $imagesize_watermark[2] <= 3) { $img_watermark = ($imagesize_watermark[2] == 2? i imagecreatefromjpeg($watermark) : ($imagesize_watermark[2] == 1? imagecreatefromgif($watermark) : imagecreatefrompng($watermark))); imagecopymerge($dest, $img_watermark, imagesx($dest) - $imagesize_watermark[0] 5, imaesy($dest) - $imagesize_watermark[1] - 5, 0, 0, $imagesize_watermark[0], $imagesize_watermark[1], 50); } } imagedestroy($source); //uvolnim zabranou pamet //kvalita 92 (kdyz se neuvede, tak je 75 procent) imagejpeg($dest, $filename,92); imagedestroy($dest); //uvolnim zabranou pamet chmod($filename,0644); return true; } else { return false; 43

49 } } Podstatná je podmínka pro určení poměru stran obrazu, podle které se poté obraz zmenší a převzorkuje. Pro vložení vodoznaku se využívají php funkce pro prolínání obrázků. V tomto případě nastavíme polohu pro vložení grafického gif souboru. V neposlední řadě se určuje výsledná kvalita jpeg obrázku. Po zkušenostech jsem se rozhodl pro kvalitu 92%, která je rozumným kompromisem mezi kvalitou a velikostí. Pro převod datového typu Base64Binary na obrázek se využívá php funkce base64_decode: if((eregi($nazev, "b64")) and ($pocetfotek<$pocetfotekmax)) { $pocetfotek=$pocetfotek+1; file_put_contents("$adresar/$pocetfotek.jpg", base64_decode($data2)); } 7.4 Příklad konverze Za účelem testování byly ontologie nahrány na můj portál Sportovnivozy.cz: Jako databáze vzorových aut posloužila taktéž transakční databáze mého portálu. Funkce pro převod v následujícím příkladu využívá tato data. Bylo také vytvořeno testovací rozhraní na adrese: akce=xhaklu00. Toto slouží pro vyzkoušení vzorového převodu XML na jazyk OWL. Jsou zde k dispozici i duplicitní záznamy, aby bylo předvedeno i chování systému v případě naleznutí duplicit. Tato funkce využívá napojení na vzorovou databázi. Zdrojem je testovací soubor data.zip respektive data.xml a výstupem soubor export.owl. Vstupní data: Výstupní data: Prodejce byl zvolen z importované ontologie: &Ontology ;prodejce0001 Rád bych zde upozornil, že se jedná pouze o testovací rozhraní, vytvořené speciálně za účelem této diplomové práce. V létě tohoto roku budu dané ontologie konzultovat s ostatními portály a výrobci SW. Následně vytvořím již ostrou verzi těchto skriptů, které budou pokrývat veškerou funkčnost. V té době již bude známa stabilní podoba potřebných ontologií. 44

50 Obr Ukázka rozhraní pro transformaci XML do OWL na portálu Sportovnivozy.cz. 45

51 8 Závěr Cílem mé diplomové práce bylo prozkoumat možnosti sdílení dat mezi informačními systémy založené na ontologiích. Konkrétně jsem se zaměřil na možnosti použití v oblasti inzerce motorových vozidel. Protože se jedná o relativně novou a v praxi nepříliš používanou oblast, bylo třeba se hlouběji zaměřit na teorii. V této práci jsem tedy teoreticky shrnul vše od vlastního pojmu ontologie, typy a strukturu ontologií, přes základní využívané technologie XML, XML schema a RDF. Až po vlastní ontologické jazyky RDF schema, DAML+OIL a OWL. Protože v praktické části vytvářím vlastní ontologii pomocí jazyka OWL, tak jsem se na tento jazyk zaměřil více i v této úvodní teoretické části a podrobněji popsal jejich třídy a vlastnosti. Stručně jsem se také zmínil o evolučním nasazování sémantického webu a využívání ontologií v praxi. Hlavní částí této diplomové práce bylo praktické vytvoření ontologie pro inzerci aut. Proto bylo potřeba vytvořit také pomocné ontologie s prodejci a s adresami. Aby byly tyto ontologie použitelné i pro současný stav na trhu, bylo potřeba vymyslet celý systém pro správu těchto ontologií a také pro možnou konverzi dat z XML do jazyka OWL. Zde vidím hlavní přínos této práce. Doufám, že tato práce najde praktické využití. V létě tohoto roku budou tyto ontologie upravovány po konzultaci s předními inzertními portály. Práce na tomto tématu mě velmi zaujala, bavila a byla pro mne velkým přínosem a budu v této oblasti rád pokračovat, protože věřím v její budoucí úspěšnost v praxi. 46

52 Literatura [4] [5] [8] [7] [1] [18] [11] [10] [2] [6] [9] [16] [12] [13] [19] [3] [20] [17] [14] [15] Bertino E., Catania B., Zarri G. P.: Intelligent Database Systems. 1. vyd. Great Britain, London: Addison-Wesley, 2001, 458 s. ISBN Bráza J.: XML praktické příklady. 1. vyd. Praha: Grada Publishing, 2003, 212 s. ISBN Crofts N.: Ontologies. Semantic Web and Libraries (26th Library Systems Seminar). Dokument dostupný online na URL: ( ) Hanyáš P.: Sémantický web, bakalářská práce, Brno, FIT VUT v Brně, 2007, 41 s. Křemen J.: Modely a systémy. 1. vyd. Praha: Academia, 2007, 100 s. ISBN Pavlovič J., BC:xtalas:RDF. Dokument dostupný online na URL: wiki/index.php?title=bc:xtalas:rdf&printable=yes ( ) Petrák J.: Altova SemanticWorks. Dokument dostupný online na URL: item=altova-semanticworks-2006 ( ) Radek Stuchlík.: Ontologie a sémantický web, diplomová práce, Brno, FIT VUT v Brně, Skonnard A., Gudgin M.: XML. 1. vyd. Praha: Grada Publishing, 2006, 344 s. ISBN Svátek V.: Ontologie a sémantický web. Dokument dostupný online na URL: ( ) Svátek, V., Labský, M.,: Objektové modely a znalostní ontologie. Dokument dostupný online na URL: ( ) Svátek V., Vacura M.: Ontologické inženýrství. Dokument dostupný online na URL: ( ) Wikipedia: Mile. Dokument dostupný online na URL: ( ) Wikipedia: Koňská síla. Dokument dostupný online na URL: ( ) W3C Team, Turtle - Terse RDF Triple Language. Dokument dostupný online na URL: ( ) Interval.cz Co je XML?. Dokument dostupný online na URL: ( ) Magpie On-Demand Semantic Services. Dokument dostupný online na URL: ( ) The Semantic Web In Practice. Dokument dostupný online na URL: ( ) XML Schema. Dokument dostupný online na URL: ( ) Znalostní technologie. Dokument dostupný online na URL: ( ) 47

53 Seznam příloh Příloha 1. Struktura hlavní databáze. Příloha 2. Návrh ontologií. Příloha 3. Transformační skript z XML do OWL. Příloha 4. CD se zdrojovými soubory. Příloha 5. Popis datového typu Base64. 48

54 Příloha 1. Struktura hlavní databáze. #CREATE DATABASE `OWL_AUTA` DEFAULT CHARACTER SET utf8 COLLATE utf8_czech_ci; CREATE TABLE ZNACKA ( ZKRATKA VARCHAR(64) PRIMARY KEY (ZKRATKA) )TYPE = MYISAM CHARACTER SET utf8 COLLATE utf8_czech_ci; CREATE TABLE MODEL ( ZKRATKA VARCHAR(64) ZNACKA_ZKR VARCHAR(64) PRIMARY KEY (ZNACKA_ZKR,ZKRATKA), FOREIGN KEY (ZNACKA_ZKR) REFERENCES ZNACKA (ZKRATKA) )TYPE = MYISAM CHARACTER SET utf8 COLLATE utf8_czech_ci; CREATE TABLE PALIVO ( ZKRATKA VARCHAR(64) POPIS TEXT PRIMARY KEY (ZKRATKA) )TYPE = MYISAM CHARACTER SET utf8 COLLATE utf8_czech_ci; CREATE TABLE KAROSERIE ( ZKRATKA VARCHAR(64) POPIS TEXT PRIMARY KEY (ZKRATKA) )TYPE = MYISAM CHARACTER SET utf8 COLLATE utf8_czech_ci; CREATE TABLE KOLA ( ZKRATKA VARCHAR(64) POPIS TEXT PRIMARY KEY (ZKRATKA) )TYPE = MYISAM CHARACTER SET utf8 COLLATE utf8_czech_ci; CREATE TABLE AUTO ( ID DECIMAL(6, 0) UZIVATEL_ID DECIMAL(6, 0) ZNACKA_ZKR VARCHAR(64) MODEL_ZKR VARCHAR(64) PALIVO_ZKR VARCHAR(64) KAROSERIE_ZKR VARCHAR(64) TYP VARCHAR(64) BARVA VARCHAR(64) VYROBENO DECIMAL(4, 0) NAJETO DECIMAL(6, 0) OBJEM DECIMAL(6, 0) VYKON DECIMAL(4, 0) CENA DECIMAL(9, 0) CENA_POPIS VARCHAR(128) VYBAVA TEXT POPIS TEXT 49

55 DULEZITOST DECIMAL(3, 0) DATUM_VLOZ DATE ZRYCHLENI100 FLOAT ZRYCHLENI200 FLOAT VAHA DECIMAL(4, 0) MAXIMALKA DECIMAL(3, 0) KOLA_ZKR VARCHAR(64) PRIMARY KEY (ID), FOREIGN KEY (ZNACKA_ZKR) REFERENCES ZNACKA (ZKRATKA), FOREIGN KEY (MODEL_ZKR) REFERENCES MODEL (ZKRATKA), FOREIGN KEY (PALIVO_ZKR) REFERENCES PALIVO (ZKRATKA), FOREIGN KEY (KAROSERIE_ZKR) REFERENCES KAROSERIE (ZKRATKA), FOREIGN KEY (KOLA_ZKR) REFERENCES KOLA (ZKRATKA), FOREIGN KEY (UZIVATEL_ID) REFERENCES UZIVATEL (ID) )TYPE = MYISAM CHARACTER SET utf8 COLLATE utf8_czech_ci; CREATE TABLE UZIVATEL ( ID DECIMAL(6, 0) LOGIN VARCHAR(64) HESLO VARCHAR(64) NOT NULL default '', JMENO VARCHAR(64) PRIJMENI VARCHAR(64) ADRESA TEXT TELEFON VARCHAR(64) VARCHAR(64) ROLE_ID DECIMAL(2, 0) DATUM_VLOZ DATE POTVRZEN BOOLEAN JE_FIRMA BOOLEAN DATUM_POSL DATE PRIMARY KEY (ID), FOREIGN KEY (ROLE_ID) REFERENCES ROLE_UZIVATELE (ID) )TYPE = MYISAM CHARACTER SET utf8 COLLATE utf8_czech_ci; ALTER TABLE AUTO ADD AUTOSOFT VARCHAR(256) NOT NULL DEFAULT ''; ALTER TABLE AUTO ADD VIDITELNOST BOOLEAN NOT NULL DEFAULT TRUE; ALTER TABLE AUTO ADD KREDIT DECIMAL(8, 0) NOT NULL DEFAULT 0; ALTER TABLE AUTO ADD SUPERSPORT BOOLEAN NOT NULL DEFAULT FALSE; ALTER TABLE AUTO ADD IP_VLOZ VARCHAR(256) NOT NULL DEFAULT ''; ALTER TABLE AUTO ADD REZERVA VARCHAR(256) NOT NULL DEFAULT ''; commit; ALTER TABLE UZIVATEL ADD DATUM_INFO DATE NOT NULL DEFAULT ' '; ALTER TABLE UZIVATEL ADD DATUM_INFO2 DATE NOT NULL DEFAULT ' '; ALTER TABLE UZIVATEL ADD IP_VLOZ VARCHAR(256) NOT NULL DEFAULT ''; ALTER TABLE UZIVATEL ADD IP_POSL VARCHAR(256) NOT NULL DEFAULT ''; ALTER TABLE UZIVATEL ADD TEAS VARCHAR(256) NOT NULL DEFAULT ''; ALTER TABLE UZIVATEL ADD AUTOSOFT VARCHAR(256) NOT NULL DEFAULT ''; ALTER TABLE UZIVATEL ADD AUTOSOFT2 VARCHAR(256) NOT NULL DEFAULT ''; ALTER TABLE UZIVATEL ADD REZERVA VARCHAR(256) NOT NULL DEFAULT ''; commit; 50

56 INSERT INTO PALIVO VALUES('Benzín',''); INSERT INTO PALIVO VALUES('Nafta',''); INSERT INTO PALIVO VALUES('Hybridní pohon',''); INSERT INTO PALIVO VALUES('Elektrický pohon',''); INSERT INTO PALIVO VALUES('Vodíkový pohon',''); INSERT INTO KAROSERIE VALUES('Kupé',''); INSERT INTO KAROSERIE VALUES('Kabriolet',''); INSERT INTO KAROSERIE VALUES('CC',''); INSERT INTO KAROSERIE VALUES('Sportovní kombi',''); INSERT INTO KAROSERIE VALUES('Sportovní hatchback',''); INSERT INTO KAROSERIE VALUES('Sportovní limuzína',''); INSERT INTO KOLA VALUES('Přední',''); INSERT INTO KOLA VALUES('Zadní',''); INSERT INTO KOLA VALUES('4x4',''); 51

57 Příloha 2. Návrh ontologií. Vlastní ontologie jsou příliš rozsáhlé a je zde uvedena pouze ukázka ontologie s prodejci. Kompletní ontologie včetně hlavní ontologie pro inzerci aut jsou k dispozici na přiloženém CD. <?xml version="1.0"?> <!DOCTYPE rdf:rdf [ <!ENTITY owl " > <!ENTITY xsd " > <!ENTITY owl2xml " > <!ENTITY rdfs " > <!ENTITY rdf " > <!ENTITY Ontology " > <!ENTITY Ontology " > ]> <rdf:rdf xmlns=" xml:base=" xmlns:owl2xml=" xmlns:xsd=" xmlns:ontology =" owl#" xmlns:ontology =" owl#" xmlns:rdfs=" xmlns:rdf=" xmlns:owl=" <owl:ontology rdf:about=""> <owl:imports rdf:resource=" </owl:ontology> <!-/////////////////////////////////////////////////////////////////////////////////////// // // Object Properties // /////////////////////////////////////////////////////////////////////////////////////// <!-- --> <owl:objectproperty rdf:about="#hasadresa"> <rdfs:domain rdf:resource="#prodejce"/> <rdfs:range rdf:resource="&ontology ;adresa"/> </owl:objectproperty> <! > <owl:objectproperty rdf:about="#hasforma"> <rdfs:range rdf:resource="#forma"/> 52

58 <rdfs:domain rdf:resource="#prodejce"/> </owl:objectproperty> <! > <owl:objectproperty rdf:about="#hastyp"> <rdfs:domain rdf:resource="#prodejce"/> <rdfs:range rdf:resource="#typ"/> </owl:objectproperty> <!-/////////////////////////////////////////////////////////////////////////////////////// // // Data properties // /////////////////////////////////////////////////////////////////////////////////////// --> <!- -> <owl:datatypeproperty rdf:about="#hasdatumzalozeni"> <rdfs:domain rdf:resource="#prodejce"/> <rdfs:range rdf:resource="&xsd;datetime"/> </owl:datatypeproperty> <! > <owl:datatypeproperty rdf:about="#has "> <rdfs:domain rdf:resource="#prodejce"/> <rdfs:range rdf:resource="&xsd;string"/> </owl:datatypeproperty> <! > <owl:datatypeproperty rdf:about="#hasjmeno"> <rdfs:domain rdf:resource="#prodejce"/> <rdfs:range rdf:resource="&xsd;string"/> </owl:datatypeproperty> <! > <owl:datatypeproperty rdf:about="#haslogin"> <rdfs:domain rdf:resource="#prodejce"/> <rdfs:range rdf:resource="&xsd;string"/> </owl:datatypeproperty> <!- --> <owl:datatypeproperty rdf:about="#hasnazevfirmy"> <rdfs:domain rdf:resource="#prodejce"/> <rdfs:range rdf:resource="&xsd;string"/> </owl:datatypeproperty> <!-- -> 53

59 <owl:datatypeproperty rdf:about="#hasprijimeni"> <rdfs:domain rdf:resource="#prodejce"/> <rdfs:range rdf:resource="&xsd;string"/> </owl:datatypeproperty> <! > <owl:datatypeproperty rdf:about="#hastelefon"> <rdfs:domain rdf:resource="#prodejce"/> <rdfs:range rdf:resource="&xsd;string"/> </owl:datatypeproperty> <!-/////////////////////////////////////////////////////////////////////////////////////// // // Classes // /////////////////////////////////////////////////////////////////////////////////////// --> <! > <owl:class rdf:about="#autobazar"> <rdfs:subclassof rdf:resource="#forma"/> <owl:disjointwith rdf:resource="#soukromý_prodejce"/> </owl:class> <!- ovna --> <owl:class rdf:about="#autopůjčovna"> <rdfs:subclassof rdf:resource="#forma"/> <owl:disjointwith rdf:resource="#soukromý_prodejce"/> </owl:class> <!- --> <owl:class rdf:about="#autosalón"> <rdfs:subclassof rdf:resource="#forma"/> <owl:disjointwith rdf:resource="#soukromý_prodejce"/> </owl:class> <! > <owl:class rdf:about="#dovozce"> <rdfs:subclassof rdf:resource="#forma"/> <owl:disjointwith rdf:resource="#soukromý_prodejce"/> </owl:class> <! > <owl:class rdf:about="#forma"> <rdfs:subclassof rdf:resource="&owl;thing"/> </owl:class> 54

60 !- nikatel --> <owl:class rdf:about="#fyzická_nepodnikatel"> <rdfs:subclassof rdf:resource="#typ"/> </owl:class>!- katel --> <owl:class rdf:about="#fyzická_podnikatel"> <rdfs:subclassof rdf:resource="#typ"/> </owl:class> <! > <owl:class rdf:about="#prodejce"> <rdfs:subclassof rdf:resource="&owl;thing"/> </owl:class> <!- ; --> <owl:class rdf:about="#právnická"> <rdfs:subclassof rdf:resource="#typ"/> </owl:class> <!- dejce --> <owl:class rdf:about="#soukromý_prodejce"> <rdfs:subclassof rdf:resource="#forma"/> </owl:class> <! > <owl:class rdf:about="#typ"> <rdfs:subclassof rdf:resource="&owl;thing"/> </owl:class> <! > <owl:class rdf:about="&ontology ;adresa"/> <! > <owl:class rdf:about="&owl;thing"/> <!-/////////////////////////////////////////////////////////////////////////////////////// // // Individuals // /////////////////////////////////////////////////////////////////////////////////////// --> 55

61 <!- --> <Autobazar rdf:about="#forma_autobazar"/> <!- --> <Autopůjčovna rdf:about="#forma_autopujcovna"/> <!- --> <Autosalón rdf:about="#forma_autosalon"/> <!- --> <Dovozce rdf:about="#forma_dovozce"/> <!- dejce --> <Soukromý_prodejce rdf:about="#forma_soukromy_prodejce"/> <! > <Prodejce rdf:about="#prodejce0001"> <haslogin>novik</haslogin> <hasjmeno>pavel</hasjmeno> <hastelefon> </hastelefon> <hasdatumzalozeni> </hasdatumzalozeni> <hasnazevfirmy>autosklo s.r.o.</hasnazevfirmy> <hasprijimeni>novák</hasprijimeni> <hasforma rdf:resource="#forma_autosalon"/> <hastyp rdf:resource="#typ_pravnicka"/> <hasadresa rdf:resource="&ontology ;adr0001"/> </Prodejce> <!- atel --> <Fyzická_nepodnikatel rdf:about="#typ_fyzicka_nepodnikatel"/> <!- el --> <Fyzická_podnikatel rdf:about="#typ_fyzicka_podnikatel"/> <! > <Právnická rdf:about="#typ_pravnicka"/> 56

62 <! > <rdf:description rdf:about="&ontology ;adr0001"/> <!-/////////////////////////////////////////////////////////////////////////////////////// // // General axioms // /////////////////////////////////////////////////////////////////////////////////////// --> <rdf:description> <rdf:type rdf:resource="&owl;alldisjointclasses"/> <owl:members rdf:parsetype="collection"> <rdf:description rdf:about="#fyzická_nepodnikatel"/> <rdf:description rdf:about="#fyzická_podnikatel"/> <rdf:description rdf:about="#právnická"/> </owl:members> </rdf:description> </rdf:rdf> 57

63 Příloha 3. Transformační skript z XML. V této 3. příloze je k nahlédnutí pouze malá, ale podstatná, část transformačního skriptu. Další potřebné funkce a převodní číselníky jsou k dispozici na přiloženém CD. <?php function owlkontrolaindividua($importid) { $result7=mysql_query("select * FROM AUTO WHERE ID_IMPORT='$importID' "); if (mysql_num_rows($result7)==0) { return false; //auto neexistruje } else { return true; //auto jiz existuje - nutna kontrola aktualizace! } } $datum = date("y-m-d"); echo "Probíhá export do OWL, tato operace může trvat několik minut...-<br />"; //funkce pro XML parser... function obsluhapocatecnihotagu($parser, $nazev, $atributy) { global $data2; $data2=""; } function obsluhakoncovehotagu($parser, $nazev) { global $data2,$znacka, $pocetfotek,$barva,$karoserie,$importid,$palivo,$model, $modelxml,$znackaxml,$typ,$typxml,$objem,$rok,$najeto,$vykon,$cenapopis,$cena,$vybava, $popis,$adresar,$firmaid,$rowprava,$row_prodejce,$jesportovni,$hlavnifoto,$urlfotky, $najetonasobit; $data2 = iconv("utf-8", "CP1250//TRANSLIT",$data2); misto Windows-1250, mozna zmenim... //Windows puvodne if(eregi($nazev, "manufacturer")) { $znacka=$data2; $znackaxml=$data2; } if(eregi($nazev, "color")) { $barva=htmlspecialchars(barva($data2)); } if(eregi($nazev, "typkar")) { $karoserie=karoserie($data2); } if(eregi($nazev, "id")) { $importid=$data2; } if(eregi($nazev, "fuel")) { $palivo=palivo($data2); } if(eregi($nazev, "engine_volume")) { if ($data2!= "") { $objem=$data2; } } if(eregi($nazev, "rok_vyroby")) { $rok=$data2; } if(eregi($nazev, "engine_power")) { if ($data2!= "") { $vykon=$data2; } } if(eregi($nazev, "tachometr")) { if ($data2!= "") { $najeto=$data2*$najetonasobit; } } // if(eregi($nazev, "vat-expel-text")) { $cenapopis=$data2; } if(eregi($nazev, "price_base")) { if ($data2!= "") { $cena=round($data2); } } // if(eregi($nazev, "extra")) { $vybava=$vybava.$data2.", "; } if(eregi($nazev, "doplnkova_vybava")) { $vybava=htmlspecialchars($data2); } // if(eregi($nazev, "remark")) { $popis=$popis.$data2.", "; } if(eregi($nazev, "note")) { $popis=htmlspecialchars($data2); } 58

64 if(eregi($nazev, "model")) { $model=htmlspecialchars($data2); $modelxml=htmlspecialchars($data2); } if(eregi($nazev, "type")) { if ($typxml=="") { $typxml=htmlspecialchars($data2); } } if(eregi($nazev, "tachometr_unit")) { if ($data2=="mil") {$najetonasobit= ;} else {$najetonasobit=1.0;} } if (eregi($nazev, "url")) { //omezim pocet fotek podle spravneho maxima dle prodejce $pocetfotekmax=$rowprava[7]; if (($pocetfotek<$pocetfotekmax)) { $pocetfotek=$pocetfotek+1; $urlfotky[$pocetfotek]=$data2; } } if((eregi($nazev, "main")) ) { //nastavim spravnou hlavni fotku if ($data2=="1") {$hlavnifoto=$pocetfotek;}; //echo $hlavnifoto; } //vlozeni auta do databaze if(eregi($nazev, "car")) { //abych mohl provadet kontrolu i podle vykonu, karoserie a tak... $znacka=znacka($znacka); $model=model($model); //pribude jeste parametr *sportovni automobil* primo v programu Autosoft! if ($jesportovni) { //pokud vuz neni sportovni, nepokracuj s vkladanim... //jeste udelat omezeni na pocet maximalnich aut... if ($modelxml=="ostatní") {$modelxml="";} if ($cenapopis=="cena") {$cenapopis="";} if ($model=="ostatní modely") { $typ="$modelxml "; } if ($znacka=="ostatní značky") { $typ="$znackaxml $modelxml "; } $typ=$typ.$typxml; if (!ctype_digit($rok)) {$rok=1900;} $cisloauta=$importid; $datum = date("y-m-d"); // $dotaz = "INSERT INTO AUTO // VALUES($cisloAuta, $row_prodejce[0],'".addslashes($znacka)."','".addslashes($model)."','".addslashes($palivo)."','".addsla shes($karoserie)."','".addslashes($typ)."','".addslashes($barva)."',$rok,$najeto,$objem,$vykon, $cena,'".addslashes($cenapopis)."','".addslashes($vybava)."','".addslashes($popis)."',1,'$datum','','',0,0, '','$importid','new',true,0,false,'','') // "; //echo $dotaz; $text = " <$modelxml rdf:about='#auto_$importid'> <hasvykon>$vykon</hasvykon> <hasobjem>$objem</hasobjem> <hasbarva>$barva</hasbarva> 59

65 <hascenapopis></hascenapopis> <haspopis>$popis</haspopis> <hasdatumvlozeni>$datum</hasdatumvlozeni> <hasvybava>$vybava</hasvybava> <hasnajeto>$najeto</hasnajeto> <hastyp>$typ</hastyp> <hascena>$cena</hascena> <hasvyrobeno>$rok</hasvyrobeno> <haskaroserie rdf:resource='#karoserie_hatchback'/> <haspalivo rdf:resource='#palivo_benzin'/> <haspohanenanaprava rdf:resource='#pohon_predni'/> <hasprodejce rdf:resource='&ontology ;prodejce0001'/> </$modelxml> "; error_log($text, 3, dirname( FILE ).'/owl/export.owl'); echo nl2br(htmlspecialchars($text)); //break; //konec jednoho auta } nulujhodnoty(); } } function znaky($parser, $data) { global $data2; $data2.= $data; } //*****konec funkci pro xml parser... echo "Vytvořený OWL soubor: <a href='owl/export.owl'>export.owl</a><br /><br /><div class='tl'>"; $jmenosouboruzip=dirname( FILE )."/owl/data.zip"; if (!file_exists($jmenosouboruzip)) {echo "Neexistuje soubor $jmenosouboruzip"; logujautosoft("neexistuje soubor $jmenosouboruzip\n"); continue;} /* $zip = new ZipArchive; if ($zip->open($jmenosouboruzip) === TRUE) { $zip->extractto(dirname( FILE ).'/owl/'); $zip->close(); }*/ $jmenosouboru=dirname( FILE )."/owl/data.xml"; if (!file_exists($jmenosouboru)) {echo "Neexistuje logujautosoft("neexistuje soubor $jmenosouboru\n"); continue;} soubor $jmenosouboru"; nulujhodnoty(); //$parser=(xml_parser_create("iso ")); $parser=(xml_parser_create("utf-8")); xml_set_element_handler($parser, "obsluhapocatecnihotagu", "obsluhakoncovehotagu"); xml_set_character_data_handler($parser, "znaky"); //zmena typu xml z win-1250 na utf-8 60

66 $souborpom = fopen($jmenosouboru, "r+"); FSeek($souborPom, 30); FWrite($souborPom, "utf-8\"?> "); fclose($souborpom); if(!($soubor=fopen($jmenosouboru, "r"))) { die("nelze otevřít soubor ".$jmenosouboru."!"); } else { while ($d = fread($soubor, 4096)) { //kvuli cestine $d = iconv("windows-1250", "UTF-8",$d); if(!xml_parse($parser, $d, feof($soubor))) { die("<script language=\"javascript\"> window.alert('chyba XML v souboru ".$jmenosouboru." na řádku ".xml_get_current_line_number($parser).".\\n\\nkód chyby: ".xml_get_error_code($parser)."'); </script>"); } } } echo "</div>"; xml_parser_free($parser); //a korektne uvolnim... //break;?> 61

67 Příloha 4. CD se zdrojovými soubory. Na přiloženém CD se nachází: Vlastní návrhy ontologií. Transformační skripty a všechny potřebné funkce. Návrh struktury relační databáze pro synchronizaci ontologií. Vzorový XML soubor jako příklad pro transformaci. 62

68 Příloha 5. Popis datového typu Base64. Datový typ Base64 používá pro ukládání tabulku 64 hodnot, ve které se vyskytují základní alfanumerické znaky a znak =, který se používá pro speciální účely. Postup převodu je následující: zápis v binární podobě se rozdělí po 6 bitech, následně se převede do dekadického tvaru a v tabulce se vyhledá příslušná hodnota. Například: Binární zápis je rozdělen na sekvenci a následně převeden do dekadického tvaru Odpovídající zápis podle tabulky base64 (viz Tab. Příloha 5.1.) je kl1b [14]. Tab. Příloha 5.1. Tabulka base64 pro převod [14]. 63

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka Metody tvorby ontologií a sémantický web Martin Malčík, Rostislav Miarka Obsah Reprezentace znalostí Ontologie a sémantický web Tvorba ontologií Hierarchie znalostí (D.R.Tobin) Data jakékoliv znakové řetězce

Více

Ontologie. Otakar Trunda

Ontologie. Otakar Trunda Ontologie Otakar Trunda Definice Mnoho různých definic: Formální specifikace sdílené konceptualizace Hierarchicky strukturovaná množina termínů popisujících určitou věcnou oblast Strukturovaná slovní zásoba

Více

InternetovéTechnologie

InternetovéTechnologie 4 InternetovéTechnologie sémantický web Ing. Michal Radecký, Ph.D. www.cs.vsb.cz/radecky Web x.0 Sémantický web - I have a dream for the Web [in which computers] become capable of analyzing all the data

Více

Ontologie. Přednáška z předmětu Socioekonomická geografie pro geomatiku (KMA/SGG) Otakar Čerba Západočeská univerzita

Ontologie. Přednáška z předmětu Socioekonomická geografie pro geomatiku (KMA/SGG) Otakar Čerba Západočeská univerzita Ontologie Přednáška z předmětu Socioekonomická geografie pro geomatiku (KMA/SGG) Otakar Čerba Západočeská univerzita Datum vytvoření: 24.3. 2010 Poslední aktualizace: 15. 5. 2013 Ontologie... Proč ontologie

Více

Logika pro sémantický web

Logika pro sémantický web ZVYŠOVÁNÍ ODBORNÝCH KOMPETENCÍ AKADEMICKÝCH PRACOVNÍKŮ OSTRAVSKÉ UNIVERZITY V OSTRAVĚ A SLEZSKÉ UNIVERZITY V OPAVĚ Logika pro sémantický web Martin Žáček PROČ BALÍČEK? 1. balíček Formální logické systémy

Více

Deskripční logika. Petr Křemen FEL ČVUT. Petr Křemen (FEL ČVUT) Deskripční logika 37 / 157

Deskripční logika. Petr Křemen FEL ČVUT. Petr Křemen (FEL ČVUT) Deskripční logika 37 / 157 Deskripční logika Petr Křemen FEL ČVUT Petr Křemen (FEL ČVUT) Deskripční logika 37 / 157 Co nás čeká 1 Základy deskripční logiky 2 Jazyk ALC Syntax a sémantika 3 Cyklické a acyklické TBOXy Petr Křemen

Více

Modelování a odvozování v RDFS

Modelování a odvozování v RDFS Modelování a odvozování v RDFS Doc. Ing. Vojtěch Svátek, Dr. Zimní semestr 2012 http://nb.vse.cz/~svatek/rzzw.html Modelování v RDFS Základní konstrukce slovníku jsou Třídy Individua (jen význačná doménová

Více

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů. Modely datové Existují různé úrovně pohledu na data. Nejvyšší úroveň je úroveň, která zachycuje pouze vztahy a struktury dat samotných. Konceptuální model - E-R model. Další úrovní je logická úroveň Databázové

Více

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS DISTRIBUOVANÝ

Více

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS ONTOLOGIE A SÉMANTICKÝ

Více

GIS Geografické informační systémy

GIS Geografické informační systémy GIS Geografické informační systémy Obsah přednášky Prostorové vektorové modely Špagetový model Topologický model Převody geometrií Vektorový model Reprezentuje reálný svět po jednotlivých složkách popisu

Více

GIS Geografické informační systémy

GIS Geografické informační systémy GIS Geografické informační systémy Obsah přednášky Prostorové vektorové modely Špagetový model Topologický model Převody geometrií Vektorový model Reprezentuje reálný svět po jednotlivých složkách popisu

Více

Správa VF XML DTM DMVS Datový model a ontologický popis

Správa VF XML DTM DMVS Datový model a ontologický popis Správa VF XML DTM DMVS Datový model a ontologický popis Verze 1.0 Standard VF XML DTM DMVS Objednatel Plzeňský kraj Institut plánování a rozvoje hlavního města Prahy Zlínský kraj Kraj Vysočina Liberecký

Více

1. Dědičnost a polymorfismus

1. Dědičnost a polymorfismus 1. Dědičnost a polymorfismus Cíl látky Cílem této kapitoly je představit klíčové pojmy dědičnosti a polymorfismu. Předtím však je nutné se seznámit se základními pojmy zobecnění neboli generalizace. Komentář

Více

Ontologie v e-commerce

Ontologie v e-commerce Diplomová práce Ontologie v e-commerce Pavel Jisl pavel@cetoraz.info ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA ELEKTROTECHNICKÁ Ontologie v e-commerce Pavel Jisl, jislp@fel.cvut.cz p. 1/13 Cíle práce

Více

Aplikace s odvozováním nad ontologiemi

Aplikace s odvozováním nad ontologiemi Aplikace s odvozováním nad ontologiemi Doc. Ing. Vojtěch Svátek, Dr. Zimní semestr 2012 http://nb.vse.cz/~svatek/rzzw.html Přehled Odvozování v medicíně Odvozování ve stavebnictví Odvozování v Linked Data

Více

Sémantický web a extrakce

Sémantický web a extrakce Sémantický web a extrakce informací Martin Kavalec kavalec@vse.cz Katedra informačního a znalostního inženýrství FIS VŠE Seminář KEG, 11. 11. 2004 p.1 Přehled témat Vize sémantického webu Extrakce informací

Více

Formální systém výrokové logiky

Formální systém výrokové logiky Formální systém výrokové logiky 1.Jazyk výrokové logiky Nechť P = {p,q,r, } je neprázdná množina symbolů, které nazýváme prvotní formule. Symboly jazyka L P výrokové logiky jsou : a) prvky množiny P, b)

Více

RDF serializace Turtle

RDF serializace Turtle 4IZ440 Propojená data na webu RDF serializace Turtle Vyučující: Doc. Ing. Vojtěch Svátek, Dr. Zimní semestr 2016 http://nb.vse.cz/~svatek/rzzw.html Shrnutí obsahu a související zdroje Prezentace vychází

Více

24. XML. Aby se dokument XML vůbec zobrazil musí být well-formed (správně strukturovaný). To znamená, že splňuje formální požadavky specifikace XML.

24. XML. Aby se dokument XML vůbec zobrazil musí být well-formed (správně strukturovaný). To znamená, že splňuje formální požadavky specifikace XML. 24. XML Úvod Značkovací jazyk XML (extensible Markup Language) vznikl ze staršího a obecnějšího jazyku SGML (Standard Generalized Markup Language). XML byl vyvinut konsorciem W3C, aby poskytl standardní

Více

Syntaxe XML XML teorie a praxe značkovacích jazyků (4IZ238)

Syntaxe XML XML teorie a praxe značkovacích jazyků (4IZ238) XML teorie a praxe značkovacích jazyků (4IZ238) Jirka Kosek Poslední modifikace: $Date: 2009/10/01 19:46:33 $ Obsah Základy syntaxe... 3 Elementy a atributy... 4 Znakový model XML... 5 Komentáře... 6 Instrukce

Více

Znalostní systém nad ontologií ve formátu Topic Maps

Znalostní systém nad ontologií ve formátu Topic Maps Znalostní systém nad ontologií ve formátu Topic Maps Ladislav Buřita, Petr Do ladislav.burita@unob.cz; petr.do@unob.cz Univerzita obrany, Fakulta vojenských technologií Kounicova 65, 662 10 Brno Abstrakt:

Více

Logický datový model VF XML DTM DMVS

Logický datový model VF XML DTM DMVS Logický datový model VF XML DTM DMVS Verze 1.1 VF XML DTM DMVS Objednatel Plzeňský kraj Institut plánování a rozvoje hlavního města Prahy Zlínský kraj Kraj Vysočina Liberecký kraj Karlovarský kraj Statutární

Více

Systém elektronického rádce v životních situacích portálu www.senorady.cz

Systém elektronického rádce v životních situacích portálu www.senorady.cz Systém elektronického rádce v životních situacích portálu www.senorady.cz Obec Senorady Miroslav Patočka 2006 Obsah: 1. Úvodní informace 1.1 Informace pro uživatele 1.1.1 Přístupnost HTML, PDA, WAP, XML

Více

Pracovní celky 3.2, 3.3 a 3.4 Sémantická harmonizace - Srovnání a přiřazení datových modelů

Pracovní celky 3.2, 3.3 a 3.4 Sémantická harmonizace - Srovnání a přiřazení datových modelů Pracovní celky 3.2, 3.3 a 3.4 Sémantická harmonizace - Srovnání a datových modelů Obsah Seznam tabulek... 1 Seznam obrázků... 1 1 Úvod... 2 2 Metody sémantické harmonizace... 2 3 Dvojjazyčné katalogy objektů

Více

Sémantický web 10 let poté

Sémantický web 10 let poté Sémantický web 10 let poté Vilém Sklenák sklenak@vse.cz Vysoká škola ekonomická, fakulta informatiky a statistiky, katedra informačního a znalostního inženýrství Inforum2011, 26. 5. 2011 Vilém Sklenák

Více

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází 1 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Požadavky kreditového systému. Relační datový model, relace, atributy,

Více

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13. Grafy doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB TUO) Grafy 104 / 309 Osnova přednášky Grafy

Více

Výměnný formát XML DTM DMVS PK

Výměnný formát XML DTM DMVS PK Výměnný formát XML DTM DMVS PK Představení partnerským krajům Praha 8. 2. 2016 Krajský úřad Plzeňského kraje Odbor informatiky Koncept etapizace tvorby výměnného formátu XML aktualizačních zakázek Digitální

Více

XML terminologie a charakteristiky. Roman Malo

XML terminologie a charakteristiky. Roman Malo XML terminologie a charakteristiky Roman Malo XML extensible Markup Language (rozšiřitelný značkovací jazyk) Verze 1.0, 1.1 http://www.w3.org/xml Rozdíly v podpoře různých znakových sad a práci s řídícími

Více

EXTRAKT z mezinárodní normy

EXTRAKT z mezinárodní normy EXTRAKT z mezinárodní normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním ICS 03.220.01; 35.240.60 materiálem o normě. Inteligentní dopravní systémy Požadavky na ITS centrální datové

Více

MBI - technologická realizace modelu

MBI - technologická realizace modelu MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,

Více

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE

Více

Principy UML. Clear View Training 2005 v2.2 1

Principy UML. Clear View Training 2005 v2.2 1 Principy UML Clear View Training 2005 v2.2 1 1.2 Co je touml? Unified Modelling Language (UML) je univerzálníjazyk pro vizuální modelování systémů Podporuje všechny životní cykly Mohou jej implementovat

Více

Projekt do předmětu VPD

Projekt do předmětu VPD Projekt do předmětu VPD Sémantický web 2009 / 2010 Ing. Jaroslav Dytrych, xdytry00@stud.fit.vutbr.cz Fakulta informačních technologií Vysoké učení technické v Brně Obsah 1 Úvod 3 2 Idea sémantického webu

Více

Množiny, relace, zobrazení

Množiny, relace, zobrazení Množiny, relace, zobrazení Množiny Množinou rozumíme každý soubor určitých objektů shrnutých v jeden celek. Zmíněné objekty pak nazýváme prvky dané množiny. Pojem množina je tedy synonymem pojmů typu soubor,

Více

PRODUKTY. Tovek Tools

PRODUKTY. Tovek Tools Analyst Pack je desktopovou aplikací určenou k vyhledávání informací, tvorbě různých typů analýz a vytváření přehledů a rešerší. Jsou vhodné pro práci i s velkým objemem textových dat z různorodých informačních

Více

6 Objektově-orientovaný vývoj programového vybavení

6 Objektově-orientovaný vývoj programového vybavení 6 Objektově-orientovaný vývoj programového vybavení 6.1 Co značí objektově-orientovaný - organizace SW jako kolekce diskrétních objektů, které zahrnují jak data tak chování objekt: OMG: Objekt je věc (thing).

Více

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování.

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování. 3 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Business modelling, základní nástroje a metody business modelování.

Více

Databáze. Logický model DB. David Hoksza

Databáze. Logický model DB. David Hoksza Databáze Logický model DB David Hoksza http://siret.cz/hoksza Osnova Relační model dat Převod konceptuálního schématu do logického Funkční závislosti Normalizace schématu Cvičení převod do relačního modelu

Více

UML. Unified Modeling Language. Součásti UML

UML. Unified Modeling Language. Součásti UML UML Unified Modeling Language 1995 počátek 1997 verze 1.0 leden dnes verze 2.0 (vývoj stále nedokončen) Standardní notace OMG podpora velkých firem (Microsoft, IBM, Oracle, HP ) popisuje struktury popisuje

Více

5 Orientované grafy, Toky v sítích

5 Orientované grafy, Toky v sítích Petr Hliněný, FI MU Brno, 205 / 9 FI: IB000: Toky v sítích 5 Orientované grafy, Toky v sítích Nyní se budeme zabývat typem sít ových úloh, ve kterých není podstatná délka hran a spojení, nýbž jejich propustnost

Více

Moderní technologie ve studiu aplikované fyziky CZ.1.07/2.2.00/ Množiny, funkce

Moderní technologie ve studiu aplikované fyziky CZ.1.07/2.2.00/ Množiny, funkce Moderní technologie ve studiu aplikované fyziky CZ.1.07/2.2.00/07.0018 2. Množiny, funkce MNOŽIN, ZÁKLDNÍ POJMY Pojem množiny patří v matematice ke stěžejním. Nelze jej zavést ve formě definice pomocí

Více

Jazyky pro popis dat

Jazyky pro popis dat Realizováno za finanční podpory ESF a státního rozpočtu ČR v rámci v projektu Zkvalitnění a rozšíření možností studia na TUL pro studenty se SVP reg. č. CZ.1.07/2.2.00/29.0011 Jazyky pro popis dat Pavel

Více

Správnost XML dokumentu

Správnost XML dokumentu Realizováno za finanční podpory ESF a státního rozpočtu ČR v rámci v projektu Zkvalitnění a rozšíření možností studia na TUL pro studenty se SVP reg. č. CZ.1.07/2.2.00/29.0011 Správnost XML dokumentu Správně

Více

Návrh technických pravidel pro tvorbu SIP

Návrh technických pravidel pro tvorbu SIP Návrh technických pravidel pro tvorbu SIP Použití některých elementů XML schématu dle přílohy 3 národního standardu pro elektronické systémy spisové služby verze: 7 Národní standard pro elektronické systémy

Více

10. Techniky formální verifikace a validace

10. Techniky formální verifikace a validace Fakulta informačních technologií MI-NFA, zimní semestr 2011/2012 Jan Schmidt EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI 10. Techniky formální verifikace a validace 1 Simulace není

Více

Analýza podkladů pro návrh datového VF XML DTM DMVS

Analýza podkladů pro návrh datového VF XML DTM DMVS Analýza podkladů pro návrh datového modelu VF XML DTM DMVS Verze 1.0 VF XML DTM DMVS Objednatel Zhotovitel Plzeňský kraj Datum 30. 6. 2016 Etapa Fáze GEOREAL spol. s r. o.; Západočeská univerzita v Plzni,

Více

Obsah prezentace. Co je to XML? Vlastnosti. Validita

Obsah prezentace. Co je to XML? Vlastnosti. Validita Obsah prezentace Co je to XML? Vlastnosti Validita Co je to XML? EXtensible Markup Language Účelem je usnadnit sdílení dat napříč informačními systémy Popis dokumentu z hlediska věcného obsahu Vyvinuto

Více

Vstupní data pro program Deformace ve formátu XML

Vstupní data pro program Deformace ve formátu XML geocaktualizace:22.11.2004 Vstupní data pro program Deformace ve formátu XML Pro formát vstupních dat je využit jazyk XML pro popis strukturovaných dat. Formát je definován v souladu s definicí jazyka

Více

Objektové modely a znalostní ontologie podobnosti a rozdíly

Objektové modely a znalostní ontologie podobnosti a rozdíly Objektové modely a znalostní ontologie podobnosti a rozdíly Vojtěch Svátek, Martin Labský Katedra informačního a znalostního inženýrství, Vysoká škola ekonomická v Praze, nám. W. Churchilla 4, 130 67,

Více

postaveny výhradně na syntaktické bázi: jazyk logiky neinterpretujeme, provádíme s ním pouze syntaktické manipulace důkazy

postaveny výhradně na syntaktické bázi: jazyk logiky neinterpretujeme, provádíme s ním pouze syntaktické manipulace důkazy Formální systémy (výrokové) logiky postaveny výhradně na syntaktické bázi: jazyk logiky neinterpretujeme, provádíme s ním pouze syntaktické manipulace důkazy cíl: získat formální teorii jako souhrn dokazatelných

Více

PRODUKTY. Tovek Tools

PRODUKTY. Tovek Tools jsou desktopovou aplikací určenou k vyhledávání informací, tvorbě různých typů analýz a vytváření přehledů a rešerší. Jsou vhodné pro práci i s velkým objemem textových dat z různorodých informačních zdrojů.

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího

Více

Tovek Tools. Tovek Tools jsou standardně dodávány ve dvou variantách: Tovek Tools Search Pack Tovek Tools Analyst Pack. Připojené informační zdroje

Tovek Tools. Tovek Tools jsou standardně dodávány ve dvou variantách: Tovek Tools Search Pack Tovek Tools Analyst Pack. Připojené informační zdroje jsou souborem klientských desktopových aplikací určených k indexování dat, vyhledávání informací, tvorbě různých typů analýz a vytváření přehledů a rešerší. Jsou vhodné pro práci s velkým objemem textových

Více

Programovací jazyk Pascal

Programovací jazyk Pascal Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce

Více

Hierarchický databázový model

Hierarchický databázový model 12. Základy relačních databází Když před desítkami let doktor E. F. Codd zavedl pojem relační databáze, pohlíželo se na tabulky jako na relace, se kterými se daly provádět různé operace. Z matematického

Více

2. Množiny, funkce. Poznámka: Prvky množiny mohou být opět množiny. Takovou množinu, pak nazýváme systém množin, značí se

2. Množiny, funkce. Poznámka: Prvky množiny mohou být opět množiny. Takovou množinu, pak nazýváme systém množin, značí se MNOŽIN, ZÁKLDNÍ POJMY Pojem množiny patří v matematice ke stěžejním. Nelze jej zavést ve formě definice pomocí primitivních pojmů; považuje se totiž rovněž za pojem primitivní. Představa o pojmu množina

Více

Výroková a predikátová logika - III

Výroková a predikátová logika - III Výroková a predikátová logika - III Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - III ZS 2017/2018 1 / 16 2-SAT 2-SAT Výrok je v k-cnf, je-li v CNF a

Více

POKROČILÉ POUŽITÍ DATABÁZÍ

POKROČILÉ POUŽITÍ DATABÁZÍ POKROČILÉ POUŽITÍ DATABÁZÍ Barbora Tesařová Cíle kurzu Po ukončení tohoto kurzu budete schopni pochopit podstatu koncepce databází, navrhnout relační databázi s využitím pokročilých metod, navrhovat a

Více

Unifikovaný modelovací jazyk UML

Unifikovaný modelovací jazyk UML Unifikovaný modelovací jazyk UML Karel Richta katedra počíta tačů FEL ČVUT Praha richta@fel fel.cvut.czcz Motto: Komunikačním m prostředkem informační komunity se postupem času stala angličtina. Chcete-li

Více

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model Databázové systémy Tomáš Skopal - relační model * relační kalkuly Osnova přednášky relační kalkuly doménový n-ticový Relační kalkuly využití aparátu predikátové logiky 1. řádu pro dotazování rozšíření

Více

Negativní informace. Petr Štěpánek. S použitím materiálu M.Gelfonda a V. Lifschitze. Logické programování 15 1

Negativní informace. Petr Štěpánek. S použitím materiálu M.Gelfonda a V. Lifschitze. Logické programování 15 1 Negativní informace Petr Štěpánek S použitím materiálu M.Gelfonda a V. Lifschitze 2009 Logické programování 15 1 Negace jako neúspěch Motivace: Tvrzení p (atomická formule) neplatí, jestliže nelze odvodit

Více

8.2 Používání a tvorba databází

8.2 Používání a tvorba databází 8.2 Používání a tvorba databází Slide 1 8.2.1 Základní pojmy z oblasti relačních databází Slide 2 Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3 Pojmy tabulka, pole, záznam

Více

11 Diagram tříd, asociace, dědičnost, abstraktní třídy

11 Diagram tříd, asociace, dědičnost, abstraktní třídy 11 Diagram tříd, asociace, dědičnost, abstraktní třídy Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost diagramům tříd, asociaci,

Více

Kolaborativní aplikace

Kolaborativní aplikace Kolaborativní aplikace Michal Máčel Vema, a. s. Okružní 3a, 638 00 Brno - Lesná, macel@vema.cz Tomáš Hruška Fakulta informačních technologií Vysokého učení technického v Brně, Ústav informačních systémů,

Více

Linked Data a jazyk RDF

Linked Data a jazyk RDF Linked Data a jazyk RDF Doc. Ing. Vojtěch Svátek, Dr. Zimní semestr 2016 http://nb.vse.cz/~svatek/rzzw.html Osnova přednášky Strukturovaná data na webu - přehled Principy Linked Data Jazyk RDF Hlavní syntaxe

Více

RDF a RDF Query. Jakub Nerad 1. prosince Nerad () RDF a RDF Query 1. prosince / 16

RDF a RDF Query. Jakub Nerad 1. prosince Nerad () RDF a RDF Query 1. prosince / 16 RDF a RDF Query Jakub Nerad jakubnerad@gmail.com 1. prosince 2009 Nerad () RDF a RDF Query 1. prosince 2009 1 / 16 Součastnost Součastnost množství informací zpracování pomocí statistické analýzy problém

Více

Jak číst a psát RDF. Reprezentace a zpracování znalostí na WWW, Jindřich Mynarz

Jak číst a psát RDF. Reprezentace a zpracování znalostí na WWW, Jindřich Mynarz Jak číst a psát RDF Reprezentace a zpracování znalostí na WWW, 1. 10. 2012 Jindřich Mynarz Serializace RDF N3 RDF/XML NTriples Turtle RDFa JSON-LD Serializace: NTriples

Více

NAIVNÍ TEORIE MNOŽIN, okruh č. 5

NAIVNÍ TEORIE MNOŽIN, okruh č. 5 NAIVNÍ TEORIE MNOŽIN, okruh č. 5 Definování množiny a jejích prvků Množina je souhrn nějakých věcí. Patří-li věc do množiny X, říkáme, že v ní leží, že je jejím prvkem nebo že množina X tuto věc obsahuje.

Více

POPIS STANDARDU CEN TC278/WG7. 1 z 5. draft prenv Geografická silniční databáze. Oblast: ZEMĚPISNÁ DATA V SILNIČNÍ DOPRAVĚ ( GRD)

POPIS STANDARDU CEN TC278/WG7. 1 z 5. draft prenv Geografická silniční databáze. Oblast: ZEMĚPISNÁ DATA V SILNIČNÍ DOPRAVĚ ( GRD) POPIS STANDARDU CEN TC278/WG7 Oblast: ZEMĚPISNÁ DATA V SILNIČNÍ DOPRAVĚ ( GRD) Zkrácený název: GEOGRAFICKÁ DATABÁZE Norma číslo: 14825 Norma název (en): GDF GEOGRAPHIC DATA FILES VERSION 4.0 Norma název

Více

Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace

Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace RELACE Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace slouží k vyjádření vztahů mezi prvky nějakých množin. Vztahy mohou být různé povahy. Patří sem vztah býti potomkem,

Více

PRVNÍ ELASTICKÝ INFORMAČNÍ SYSTÉM : QI

PRVNÍ ELASTICKÝ INFORMAČNÍ SYSTÉM : QI PRVNÍ ELASTICKÝ INFORMAČNÍ SYSTÉM : QI Cyril Klimeš a) Jan Melzer b) a) Ostravská univerzita, katedra informatiky a počítačů, 30. dubna 22, 701 03 Ostrava, ČR E-mail: cyril.klimes@osu.cz b) DC Concept

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 22. Otázka : Úvodní fáze rozpracování softwarového projektu. Postupy při specifikaci byznys modelů. Specifikace požadavků a jejich rozpracování pomocí

Více

Ontologie a OWL. Prof. Ing. Vojtěch Svátek, Dr. Zimní semestr

Ontologie a OWL. Prof. Ing. Vojtěch Svátek, Dr. Zimní semestr Ontologie a OWL Prof. Ing. Vojtěch Svátek, Dr. Zimní semestr 2018 http://nb.vse.cz/~svatek/rzzw.html Témata Ontologie v informatice Jazyk OWL Vybrané aktuální problémy ontologického inženýrství a projekty

Více

Výroková a predikátová logika - II

Výroková a predikátová logika - II Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2017/2018 1 / 17 Předběžnosti Základní pojmy n-ární relace a funkce

Více

Obsah. Zpracoval:

Obsah. Zpracoval: Zpracoval: houzvjir@fel.cvut.cz 03. Modelem řízený vývoj. Doménový (business), konceptuální (analytický) a logický (návrhový) model. Vize projektu. (A7B36SIN) Obsah Modelem řízený vývoj... 2 Cíl MDD, proč

Více

Logický důsledek. Petr Kuchyňka (7765@mail.muni.cz)

Logický důsledek. Petr Kuchyňka (7765@mail.muni.cz) Logický důsledek Petr Kuchyňka (7765@mail.muni.cz) Úvod P 1 Logický důsledek je hlavním předmětem zájmu logiky. Je to relace mezi premisami a závěry logicky platných úsudků: v logicky platném úsudku závěr

Více

KMA/PDB. Karel Janečka. Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d

KMA/PDB. Karel Janečka. Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d KMA/PDB Prostorové databáze Karel Janečka Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d Sylabus předmětu KMA/PDB Úvodní přednáška Základní terminologie Motivace rozdíl klasické

Více

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky Otázka 20 A7B36DBS Zadání... 1 Slovníček pojmů... 1 Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky... 1 Zadání Relační DB struktury sloužící k optimalizaci

Více

Relační datový model. Integritní omezení. Normální formy Návrh IS. funkční závislosti multizávislosti inkluzní závislosti

Relační datový model. Integritní omezení. Normální formy Návrh IS. funkční závislosti multizávislosti inkluzní závislosti Relační datový model Integritní omezení funkční závislosti multizávislosti inkluzní závislosti Normální formy Návrh IS Funkční závislosti funkční závislost elementární redundantní redukovaná částečná pokrytí

Více

Nepravidlové a hybridní znalostní systémy

Nepravidlové a hybridní znalostní systémy Nepravidlové a hybridní znalostní systémy 7. 14. listopadu 2017 _ 3-1 Nepravidlové reprezentace znalostí K nepravidlovým reprezentačním technikám patří: rozhodovací stromy rámce sémantické sítě Petriho

Více

Teorie množin. Čekají nás základní množinové operace kartézské součiny, relace zobrazení, operace. Teoretické základy informatiky.

Teorie množin. Čekají nás základní množinové operace kartézské součiny, relace zobrazení, operace. Teoretické základy informatiky. Teorie množin V matematice je všechno množina I čísla jsou definována pomocí množin Informatika stojí na matematice Znalosti Teorie množin využijeme v databázových systémech v informačních systémech při

Více

Petr Křemen. Katedra kybernetiky, FEL ČVUT. Petr Křemen (Katedra kybernetiky, FEL ČVUT) Sémantické sítě a rámce 1 / 112

Petr Křemen. Katedra kybernetiky, FEL ČVUT. Petr Křemen (Katedra kybernetiky, FEL ČVUT) Sémantické sítě a rámce 1 / 112 Sémantické sítě a rámce Petr Křemen Katedra kybernetiky, FEL ČVUT Petr Křemen (Katedra kybernetiky, FEL ČVUT) Sémantické sítě a rámce 1 / 112 Co nás čeká 1 Úvod do reprezentace znalostí 2 Sémantické sítě

Více

Výroková a predikátová logika - VI

Výroková a predikátová logika - VI Výroková a predikátová logika - VI Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - VI ZS 2017/2018 1 / 24 Predikátová logika Úvod Predikátová logika Zabývá

Více

Ontologie, OWL a deskripční logika

Ontologie, OWL a deskripční logika Ontologie, OWL a deskripční logika Doc. Ing. Vojtěch Svátek, Dr. Zimní semestr 2016 http://nb.vse.cz/~svatek/rzzw.html Témata Ontologie v informatice Jazyk OWL Deskripční logika Pojem ontologie Ve filosofii:

Více

Logika a logické programování

Logika a logické programování Logika a logické programování témata ke zkoušce Poslední aktualizace: 16. prosince 2009 Zkouška je písemná, skládá se obvykle ze sedmi otázek (může být více nebo méně, podle náročnosti otázek), z toho

Více

Alena Malovaná, MAL305

Alena Malovaná, MAL305 Alena Malovaná, MAL305 GML WFS WMF Geografický značkovací jazyk (Geographic Markup Language - GML) Jedná se o velmi rozšířený standard pro popis geodat umožňující sdílení i integraci dat. Jeho základem

Více

RELACE, OPERACE. Relace

RELACE, OPERACE. Relace RELACE, OPERACE Relace Užití: 1. K popisu (evidenci) nějaké množiny objektů či jevů, které lze charakterizovat pomocí jejich vlastnostmi. Entita je popsána pomocí atributů. Ty se vybírají z domén. Různé

Více

Logika. 2. Výroková logika. RNDr. Luděk Cienciala, Ph. D.

Logika. 2. Výroková logika. RNDr. Luděk Cienciala, Ph. D. Logika 2. Výroková logika RNDr. Luděk Cienciala, Ph. D. Tato inovace předmětu Úvod do logiky je spolufinancována Evropským sociálním fondem a Státním rozpočtem ČR, projekt č. CZ. 1.07/2.2.00/28.0216, Logika:

Více

Množiny. množinové operace jsou mírně odlišné od

Množiny. množinové operace jsou mírně odlišné od Množiny Množina se dá chápat jako soubor prvků. ( Např. lidé na planetě zemi tvoří jednu velkou množinu.) Každá množina tedy obsahuje určitý počet prvků, který může být konečný (lze spočítat) nebo nekonečný

Více

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti MI-SOC: 11 METODY VERIFIKACE SYSTÉMŮ NA ČIPU Hana Kubátov vá doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta 1 informačních

Více

Matematická analýza 1

Matematická analýza 1 Matematická analýza 1 ZS 2019-20 Miroslav Zelený 1. Logika, množiny a základní číselné obory 2. Limita posloupnosti 3. Limita a spojitost funkce 4. Elementární funkce 5. Derivace 6. Taylorův polynom Návod

Více

Výroková a predikátová logika - V

Výroková a predikátová logika - V Výroková a predikátová logika - V Petr Gregor KTIML MFF UK ZS 2015/2016 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - V ZS 2015/2016 1 / 21 Dokazovací systémy VL Hilbertovský kalkul Hilbertovský

Více

Vývoj Internetových Aplikací

Vývoj Internetových Aplikací 2 Vývoj Internetových Aplikací HTML a CSS Ing. Michal Radecký, Ph.D. www.cs.vsb.cz/radecky HTML a CSS - Tvorba webových stránek - Struktura - Obsah - Vzhled - Funkcionalita zdroj: http://www.99points.info

Více

Výroková a predikátová logika - II

Výroková a predikátová logika - II Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2015/2016 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2015/2016 1 / 18 Základní syntax Jazyk Výroková logika je logikou

Více

teorie logických spojek chápaných jako pravdivostní funkce

teorie logických spojek chápaných jako pravdivostní funkce Výroková logika teorie logických spojek chápaných jako pravdivostní funkce zabývá se způsoby tvoření výroků pomocí spojek a vztahy mezi pravdivostí různých výroků používá specifický jazyk složený z výrokových

Více