
\chapter{Expertní systémy}
%V této kapitole je popsána teorie expertních systémů 

\section{Teorie expertních systémů}
Expertní (znalostní) systémy patří mezi systémy umělé inteligence. Jejich úkolem je poskytnutí rady uživateli, která by mu pomohla vyřešit daný problém. Expertní systém na základě dat od uživatele a znalostí experta nebo jejich skupiny následně zvolí z možných jednotlivých hypotéz \cite{umelainteligence2}. 
\par Jejich výhodou je dostupnost konzultací, kdy jsou informace dostupné kdykoliv a komukoliv, další z výhod je opakovatelnost konzultací, kdy je možné stejnou konzultaci provést i s odstupem času. Expertní systém většinou obsahuje protokol, na základě kterého se dá doložit, jakým způsobem se dospělo k řešení. Další z výhod expertních systémů je také jejich nestrannost, kdy každý, kdo projde konzultaci, dostane stejné výsledky a informace. Naopak mezi nevýhody patří jejich zaměření pouze na malou část oboru. Expertní systém také není schopen sdělit, co je a co není schopen řešit a zda se uživatel již nenachází mimo jeho kompetenci \cite{umelainteligence2}.
\smallskip
\smallskip
\par Aby bylo možné opakovaně využívat části expertních systémů, které nezávisí na daném problému, tedy řídicí mechanismus a vysvětlovací systém, byly vytvořeny prázdné expertní systémy, které neobsahují báze znalostí a báze dat. Po připojení báze znalostí se systém orientuje na danou problematiku a po připojení báze dat je možné řešit daný případ   
\cite{umelainteligence2}.
%
\subsection{Typy expertních systémů}
%Dle řešených úloh se dají rozdělit do tří skupin: \newline
Dnes využívané expertní systémy je, dle charakteru řešených úloh, možné rozdělit do tří skupin:\newline
\newline
%
\textbf{A$)$ Diagnostické}, kdy na základě dat je určena nejlépe odpovídající hypotéza z předem dané množiny hypotéz. Řešení případů probíhá postupným ohodnocováním a přehodnocováním cílových hypotéz pomocí pevně daného vnitřního modelu, který byl předem navržen a odladěn expertem. Využívá se dvou přístupů. Jedním z nich je určování hypotéz ze symptomů na základě povrchových znalostí \cite{umelainteligence2}. 
\par
\smallskip
\smallskip
 Nespornou výhodou tohoto přístupu je jednoduchost metod řešení, kdy ze symp- tomů je přímo usuzována např. závada na automobilu, avšak tento přístup selhává, pokud systém má dvě nebo více závad najednou. Druhý přístup využívá odvozování z prvotních principů, kde základem znalostí je model vyšetřovaného systému. Tyto znalosti se často nazývají hloubkové, kdy tento přístup umožňuje vyslovovat hypotézy o vícenásobných poruchách, avšak vyžaduje složitější odvozování, jehož následkem je větší výpočetní náročnost \cite{umelainteligence2}.     
\newline
\textbf{B$)$ Plánovací}, se používají na úlohy, kdy je znám počáteční stav a cíl řešení, systém má za úkol nalézt optimální posloupnost kroků jak daného cíle dosáhnout. Obsahuje část, která generuje možná řešení kombinací posloupností operátorů. S rostoucím počtem operátorů a nutných kroků velmi rychle roste také počet kombinací. Tento počet kombinací je následně omezen na základě dat a znalostí experta. Výstupem je seznam navrhovaných řešení ohodnocených měrou optimality \cite{umelainteligence2}.\smallskip\smallskip\newline
\textbf{C$)$ Hybridní}, které kombinují vlastnosti obou předchozích typů. Nejčastěji se jedná o systémy výukové, kdy je na základě diagnostiky znalostí studentů následně plánována další výuka \cite{umelainteligence2}. 
%

\subsection{Základní části diagnostických expertních systémů}
% kapitolu začít textem o kapitole např charakteristikou a zdůvodnění proč pouze o diagnostickém systému
\begin{figure}[!h]
  \begin{center}
    \includegraphics[scale=0.36]{obrazky/expertnisystemdiagnosticky.png}
  \end{center}
  \caption[Blokové schéma diagnostického expertního systému]{Blokové schéma diagnostického expertního systému. Převzato z \cite{umelainteligence2}.}
\end{figure}

\textbf{A$)$Báze znalostí}
  obsahuje znalosti o řešení problémů v dané disciplíně, kterou se navrhovaný expertní systém zabývá. Musí být čitelná pro experta, aby mohl provádět úpravy a modifikovat ji, ale také pro spolupracovníky, aby se pomocí ní mohli školit. Tyto znalosti mohou být různých charakterů:
%
\begin{itemize}
    \item od nejobecnějších znalostí, až po ty „soukromé“, které by si žádný expert nedovolil publikovat.
    \item od exaktně dokázaných až po exaktně nedokázané znalosti (heuristikám), které expert nabyl dlouholetou praxí a o nichž ví, že mu pomáhají při řešení podobných problémů.
    \item od nejobecnějších, až po úzce speciální.
    \item od nejjednodušších znalostí, až po metaznalosti (znalosti o znalostech).
\end{itemize}
\hfill \break
\textbf{B$)$ Báze dat} může být tvořena přímými odpověďmi uživatele, ale i hodnotami z měřících přístrojů. \smallskip\newline
%
\textbf{C$)$ Řídicí mechanismus} zodpovídá za řízení konzultace, rozhoduje o dalším položeném dotazu a na základě odpovědi upravuje aktuální model. \smallskip\newline
%
\textbf{D$)$ Aktuální model} obsahuje aktuální nastavení pravděpodobností poznatků zahrnutých v bázi znalostí. \smallskip\newline
%
\textbf{E$)$ Vysvětlovací systém} je schopen uživateli objasnit, proč byla některá z otázek položena a proč byly některé hypotézy zamítnuty \cite{umelainteligence2}.

\subsection{Využití expertních systémů}
  Expertní systémy se využívají k řešení úloh z celé řady oborů. Nejméně polovina z nich je zaměřena na zdravotnictví, také díky přehlednému strukturování znalostí v této oblasti. Mezi další oblasti, kde lze expertní systémy využívat, patří geologie, chemie či výpočetní technika. 
  %Mezi zástupce expertních systémů ve zdravotnictví patří například\cite{umelainteligence2}:\\
  Následující expertní systémy byly jedny z prvních vytvořených expertních systémů a pomohly s jejich dalším rozvojem a také je pomohly dostat do povědomí veřejnosti: \\
  \begin{itemize}
  	\item MYCIN - Navrhuje vhodnou léčbu antibiotiky na základě typu bakteriální infekce, kterou pacient trpí, a  bylo možné jej stabilizovat do doby, než budou dokončeny náročnější vyšetření.Ze systému MYCIN vznikl prázdný expertní systém EMYCIN \cite{umelainteligence2}.    
  	\item PUFF - K jeho tvorbě byl využit prázdný expertní systém EMYCIN. Používá se pro detekci možných příčin potíží dýchacích cest \cite{umelainteligence2}. 
  	\item CADUCEUS - Obsahuje údajně 85 \% všech znalostí z oblasti interního lékařství. Jedná se o modifikovanou verzi systému INTERNIST, který je jeden z nerozsáhlejších expertních systémů v historii. I přes svou velikost a náročnost se tyto systémy nadále aktivně využívají \cite{umelainteligence2}.     
  	\item CLOT - Využívá se k diagnostice srážlivosti krve \cite{umelainteligence2}.\newline
  \end{itemize}

\par Systém PROSPECTOR se využívá k určení zda provádět v lokalitě hloubkové vrty na základě jednoduše dostupných geologických dat. Díky velkému úspěchu při prvním nasazení, kdy systém odhalil velké ložisko molybdenu, přispěl k zájmu veřejnosti a finanční podpoře expertních systémů \cite{umelainteligence2}.
 \smallskip
 \smallskip
\par Systém DENDRAL  je možné považovat za první expertní systém, který byl dokonce implementován před vznikem tohoto pojmu. Jeho úkolem je pomoci při identifikaci chemické sloučeniny na základě spektrografických dat ze spektrometru a ze spektrometru pro jadernou magnetickou rezonanci \cite{umelainteligence2}. 
\smallskip
\smallskip
\par Mezi další úspěšné expertní systémy patří XCON a XSEL, které vychází z předchůdce R1 a jsou používány firmou DEC pro zpracování objednávek počítačů řady VAX od zákazníků. Pro identifikaci závad na technologickém zařízení platformy pro těžení ropy v Severním moři se využívá AL/X vycházející ze systému PROSPECTOR. DIPMETER ADVISOR vyvinutý firmou Teknowledge poskytuje rady obsluze jak postupovat při problémech s hloubkovými vrty. I přes vysoké náklady na vývoj se firmám používajícím systém tato investice rychle vrátila \cite{umelainteligence2}.  
%popsat jeste xcon a xsel  a nejak jeste ten AL/X a dipmeter advisor na tezebni na hloubkove vrty a veze na tezeni ropy na moři   
   
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%kapitola o znalostním inženýství
\chapter{Znalostní inženýrství}

 \par Jedná se o klíčovou část umělé inteligence, která se zabývá naplňováním báze znalostí znalostmi. Zabývá se především metodami a technikami získávání, formalizací, kódováním, uchováváním, testováním a udržováním znalostí. Znalosti jsou získávány od odborníků-expertů, či odvozením ze souboru dat dané problematiky. Před začátkem tvorby expertního systému je třeba posoudit, zda je systém pro danou aplikaci realizovatelný a zda-li bude využíván\cite{umelainteligence2}.
%
\section{Metody znalostního inženýrství}
%
\par Tvorbě báze znalostí je třeba věnovat mimořádnou pozornost, jelikož kvalita znalostí zásadním způsobem ovlivňuje efektivitu celého expertního systému. Jedná se o dlouhodobý proces, na kterém se podílí jak znalostní inženýr, tak i expert na danou problematiku a to i v případě, že podstatná část znalostí je získávána indukcí z dat. Problém a jeho reprezentace je postupně formulován na základě komunikace mezi expertem, který není schopen své znalosti formulovat způsobem vhodným pro počítačovou reprezentaci, a znalostním inženýrem \cite{umelainteligence2}.
\smallskip
\smallskip
\par Znalostní inženýr je profese, která vznikla spolu s expertními systémy. Musí být seznámen s problematikou umělé inteligence a expertních systémů, s možnostmi reprezentace znalostí tak, aby byl schopný řídit proces tvorby báze znalostí. Je potřeba, aby vnikl do základů oblasti problému a vhodným způsobem získával a kódoval znalosti experta \cite{umelainteligence2}.
\bigskip
\par Postup tvorby expertního systému je možné rozdělit do těchto fází: \\
	\begin{enumerate}[label=\textbf{\Alph*$)$}]
		\item \textbf{Identifikace problému} v této fázi je třeba se seznámit s problémovou oblastí a přesně formulovat problém.\smallskip
		\item \textbf{Návrh koncepce} v této fázi se znalostní inženýr seznámí hlouběji, za pomoci experta, s danou problematikou. Vymezí základní pojmy a představu o charakteru dat, zda je možné úlohu rozdělit na podúlohy a další vztahy a strategie, které se v oblasti používají. Výsledkem této fáze je konceptuální model znalostí.\smallskip  
		\item \textbf{Formalizace znalostí} v této fázi je analyzován konceptuální model z hlediska výběru metod, technik a nástrojů. V případě potřeby jsou vyvíjeny metody nové. Také je upravována reprezentace dat. Obvykle se také objevují další omezující podmínky, které ovlivňují původní model.\smallskip 
		\item \textbf{Implementace} výsledkem této fáze je funkční prototyp báze znalostí.\smallskip
		\item \textbf{Testování a ladění} během testování je opakován cyklus, kdy je systém testován na reálných datech, výsledky jsou následně konzultovány s expertem\newline a následně je provedena úprava báze znalostí nebo expertního systému. Jedná se o časově nejnáročnější fázi vývoje, často je nutné také provádět na základě výsledků změny konceptuálního modelu či dokonce formulace problému \cite{umelainteligence2}.\smallskip
	\end{enumerate}  
\section{Získávání znalostí}
Lze jej členit na ruční a s podporou počítače, které lze dále dělit na interaktivní\newline a automatizované. U získávání znalostí může nastat několik problémů. Expert může záměrně bránit vydání znalostí z důvodu pochybností o projektu, či z nahrazení počítačem. Závisí také na navázání kontaktu se znalostním inženýrem. Někdy se může stát, že někteří odborníci nejsou schopni vyjádřit znalosti a faktory na jejichž základě se rozhodují \cite{umelainteligence2}.
\subsection{Ruční získávání znalostí}
\par Opírá se o techniky z psychologie, kdy jsou znalosti získávány pomocí rozhovoru mezi expertem a znalostním inženýrem. Zpočátku se jedná o nestrukturovaný rozhovor, následně se jedná o rozhovor s cílenými dotazy ohledně jednotlivých činností experta. K dalším technikám patří například myšlení nahlas, kdy expert popisuje své myšlenkové pochody nebo karetní metoda, při které jsou navrhovány různá uspořádání případů na kartách \cite{umelainteligence2}.
\subsection{S podporou počítače}
\begin{enumerate}[label=\Alph*$)$]
	\item \textbf{Interaktivní} kdy v prvním kroku je zadán seznam všech možných řešení problému, kterých se bude báze znalostí týkat. Následně jsou z této množiny vybírány trojice, expert hledá znaky, které odlišují první dva prvky od třetího.\smallskip
	\par Následně jsou tvořeny vazby mezi jednotlivými póly různých znaků. Poté jsou tvořeny pravidla, kdy se začíná od pravidel kde se vyskytuje některý ze závěrů. Po vytvoření všech pravidel se přejde k testování báze. Na základě výsledků poté může být báze dále upravována \cite{umelainteligence2}.
	\smallskip  
	\item \textbf{Automatizované} metody pro získávání znalostí se určují podle zdrojů, ze kterých je čerpáno, cíli, které budovaným systémem sledujeme, a charakteristickými postupy odvozování. Tyto pojmy nejsou zcela nezávislé.\smallskip
	\par Jsou rozlišovány 3 typy zdrojů: popisy typických objektů, příklady chování, které má systém reprodukovat, a formální znalost charakterizující oblast pro kterou je systém  konstruován.Cílová znalost může být deklarativního charakteru, kdy hledáme vhodné vztahy mezi sledovanými atributy popisující pozorované objekty, nebo procedurálního charakteru, kdy hledáme znalosti ve formě postupu vedoucí ke klasifikaci nových objektů \cite{umelainteligence2}.
	\smallskip
	\smallskip
	\par  Odvozování využívá indukci nebo dedukci. Indukce hledá rozšíření obecných znalostí umožnující vysvětlit pozorované jevy nebo výskyt objektu s jistými vlastnostmi. Dedukcí lze odvodit další odvozená pravidla ze znalostí nezávislých na zkušenosti. Jedná se o základ učení založeném na vysvětlování. Mezi metody automatického získávání znalostí se řadí například:
	\smallskip
	\begin{enumerate}[label=\textbf{\arabic*.}]
		\item \textbf{Rozpoznávání} je relace mezi vstupní veličinou a cílovou hypotézou lze chápat jako znalost reprezentovanou pravidlem. Do báze znalostí je vhodné zahrnovat pouze nejsilnější relace. Nevýhodou této metody je, že jí lze získat pouze mělká pravidla.\smallskip
		\item \textbf{Neuronové sítě}, kdy získané znalosti jsou reprezentovány vahami naučené sítě. Pokud jsou dvě třídy lineárně separabilní, může síť obsahovat pouze jeden neuron. Pokud lineárně separabilní nejsou, je nutné použít složitější vícevrstvou síť.
		\par Tato metoda přináší usnadnění procesu získávání znalostí, avšak znalosti získané tímto způsobem jsou pro člověka nečitelné, z toho také vyplývá, že síť není schopna vysvětlit své rozhodnutí. Poté záleží na dané aplikaci, zda je potřeba rozhodnutí vysvětlit \cite{umelainteligence2}.   
	\end{enumerate} 	
\end{enumerate}
 
\section{Ladění báze znalostí}
%Pro správné fungování systému je třeba bázi znalostí odladit. Po sepsání hypotéz a vhodném seřazení otázek báze je možné přistoupit k jejímu ladění. Nejprve přistoupíme k nastavení výchozí pravděpodobnosti u jednotlivých uzlů otázek, ty se ve většině případů nastavují na 50 \%. Poté nastavujeme výchozí pravděpodobnost cílových uzlů hypotéz. Dále se u pravidel stanoví, zda-li se jedná o konjunkci či disjunkci a alpha, která udává sílu vazby mezi pravidlem a ovlivňovaným uzlem a nabývá hodnot od 0 do 100 \%. Poté následuje jeden nebo více literálů, které určují ke kterému uzlu se pravidlo váže a zda-li se váže přímo (positive) nebo negovaně (negative). Ladění probíhá tak, že se u každého jednotlivého pravidla nastavuje hodnota jeho vazby. Ladění končí ve chvíli, kdy jsou všechny hodnoty vazeb nastavené a výsledky báze odpovídají předpokládaným hodnotám.
Pro správné fungování systému je třeba bázi znalostí odladit. Během ladění dochází ke kontrole struktury báze znalostí její funkčnosti a vyhodnocuje se správnost výsledků. Při kontrole struktury báze znalostí jsou hledány taková pravidla, která jsou nadbytečná, rozporná či neaplikovatelná. Hledají se tedy převážně inkonzistence v bázi znalostí. Při kontrole funkčnosti báze jsou hledány nesprávné výsledky a báze je analyzována a modifikována. Během této kontroly jsou zvyšovány nebo snižovány váhy pravidel či jsou přidávány nebo odebírány podmínky u jednotlivých hypotéz. Tyto změny v bázi provádí znalostní inženýr. Vyhodnocování báze znalostí probíhá na souboru několika vzorových příkladů vytvořených expertem. Ty jsou předloženy expertnímu systému a získané výsledky jsou porovnávány s výsledky experta. Není možné vytvořit takový soubor příkladů, aby bylo možné prohlásit systém za zaručeně spolehlivý na určité hladině \cite{umelainteligence2}.        
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% kapitola o nps core
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Diagnostický expertní systém NPS}
%Kapitola se zabývá popisem systému NPS. 
%\newline
%\newline
NPS je diagnostický expertní systém vyvinutý na FEKT. V rámci práce \cite{korinek} bylo vytvořeno uživatelské rozhraní pro oddělené výpočetní jádro vytvořené v práci \cite{krechler}.
Princip NPS je založen na pravidlech. Výhodou tohoto systému je jeho univerzálnost, kdy se systém neorientuje na určitou problematiku. To je možné díky jednoznačně definované syntaxi pro bázi znalostí popisující jednotlivé uzly a vazby mezi nimi. Systém je schopen pracovat s libovolnou bází znalostí s touto syntaxí. Konzultace se systémem probíhá jako dialog mezi programem a uživatelem, kdy je uživateli položena otázka, na kterou následně odpoví. Na základě odpovědí je upraven aktuální model. Tyto otázky jsou pokládány dynamicky na základě aktuálního modelu. Během konzultace jsou postupně upravovány hodnoty hypotéz.
\section{Typy uzlů}
%V systému NPS jsou definovány tyto typy uzlů\cite{krechler}:
V systému NPS je pro zápis znalostí používán orientovaný graf, ve kterém jsou definovány tyto typy uzlů:\smallskip\newline
\begin{enumerate}[label=\textbf{\Alph*$)$}]
\item \textbf{Pomocný uzel} obsahuje pouze identifikátor, hodnotu pravděpodobnosti a může obsahovat pravidla vazeb na jiné uzly.\smallskip
\item \textbf{Cílový uzel} oproti pomocnému uzlu obsahuje navíc popis cílové hypotézy.\smallskip
\item \textbf{Dotazovatelný přímý uzel} u tohoto typu uzlu je navíc definovaná otázka, která je v průběhu konzultace položena uživateli a na základě odpovědi se změní hodnota pravděpodobností. Pro tento typ uzlu se hodí otázky typu výběr míry souhlasu s otázkou, kdy uživatel vybere prostřednictvím odpovědi hodnotu pravděpodobnosti, do jaké míry s tvrzením v otázce souhlasí. Po zodpovězení otázky je aktualizována hodnota všech uzlů, které závisí dle pravidel na zodpovězeném uzlu.\smallskip
\item \textbf{Dotazovatelný přímý kvantitativní uzel} tento uzel je vhodný pro položení otázky typu výběr jedné položky ze seznamu. Po zvolení odpovědi je přiřazena hodnota 100 \% a ostatní uzly odpovídající otázkám zůstanou nezměněny. Otázka se v průběhu konzultace položí pouze tehdy pokud je kontext kladný.\smallskip
\item \textbf{Dotazovatelný běžný uzel} nemá možnost definovat vlastní kontexty ani pravidla. Na rozdíl od dodazovatelného přímého uzlu se tento typ pokládá až v momentě, kdy byly zodpovězeny všechny vhodné dotazovatelné uzly. V tento moment se z pravidel všech cílových uzlů vybere nezodpovězený uzel, který má největší sílu vazby a jde o vhodnou vazbu \cite{krechler}.\smallskip
\end{enumerate}
\textbf{Vazby mezi uzly}\newline 
Vazby mezi uzly jsou realizovány pomocí pravidel nebo kontextů.\newline
\textbf{Pravidla} zajišťují základní šíření informací mezi uzly a změny pravděpodobností dle zodpovězených otázek. Pravidla jsou uložena u uzlu a mohou být buď konjunkční, nebo disjunkční a každý uzel jich může obsahovat libovolné množství.
\newline
\textbf{Kontext} definuje podmínky, za kterých se má otázka uzlu během konzultace položit. Jsou definovány u uzlu, jež se má položit. Obsahuje vazbu na ostatní uzly, kterou vyhodnocuje tak, že porovnává aktuální hodnoty pravděpodobnosti uzlů vazby\newline s definovaným prahem, pokud všechny kontextové vazby vyhovují podmínce, tak je možné dotaz položit při konzultaci. Jsou dva druhy kontextových prahů - \emph{větší než}  (značeno \textgreater)  \space nebo \emph{menší než} ( značeno \textless). K porovnání se používá hodnota pravděpodobnosti v procentech.    
\newline
%\section{Matematický aparát}
\section{Tvorba báze znalostí}
Báze znalostí jsou zapsány ve formátu \emph{.nps}, který je zapsaný ve značkovacím jazyce \emph{XML}, který splňuje nároky na zápis struktury bázi znalostí \cite{korinek}. Tvorba báze znalostí probíhá lokálně na počítači znalostního inženýra a poté je nutné ji do systému přes webové rozhraní nahrát. Editaci báze je možné provádět v jakémkoli programu umožnující editaci textu, avšak výhodou je, pokud program podporuje zvýrazňování syntaxe XML. Pro tvorbu báze znalostí je možné použít například: Visual Studio, Visual Studio Code, Notepad++.     
\subsection{Formát báze znalostí}
Soubor s bází znalostí obsahuje následující náležitosti:\newline
\textbf{A) Hlavičku} obsahující základní údaje o bázi jako je verze báze znalostí, popis, jazyky, které báze podporuje a identifikátor báze, který je povinný a jedinečný identifikátor báze. Výpis 3.1 ukazuje podobu hlavičky báze znalostí \cite{korinek}.
%vypsani hlavicky baze
\begin{lstlisting}[language=XML,caption={Hlavička báze znalostí.},label=lst:hlavicka.baze.znalosti,basicstyle=\ttfamily\small, keywordstyle=\color{black}\bfseries]
<?xml version="1.0" encoding="utf-8" ?>
<knowledge_base version ="1.0">
    <head default_answers="3">
        <name>
            <content culture="cs-CZ" type="text">
            {název báze znalostí}
            </content>
        </name>
        <identifier>
        {jedinečný identifikátor báze}
        </identifier>
        <cultures>
            <culture>cs-CZ</culture>
            </cultures>
        <description>
            <content culture="cs-CZ" type="text">
             {nepovinný popis báze}
            </content>
        </description>    
    </head>
\end{lstlisting}
\textbf{B) Tělo} obsahuje tělo báze označené tagem \emph{body}. Tělo báze obsahuje uzly a jejich popis. %dát příklad body   
Uzel je označen tagem \emph{node}, který jako atributy obsahuje:
\begin{itemize}
    \item literal, který udává identifikátor uzlu.
    \item probability, který udává počáteční pravděpodobnost uzlu.
    \item type, ten udává typ uzlu dle 2.1 \cite{korinek}.
\end{itemize}
Node obsahuje potomka comment, který obsahuje obsahový blok content s popisem otázky nebo hypotézy. Může obsahovat také multimediální soubory jako jsou například obrázky.
Pokud se jedná o dotazovatelný uzel, tak obsahuje navíc potomky \emph{answers}, obsahující výčet možných odpovědí, a kontext, obsahující kontextové vazby na ostatní uzly. Jedná-li se o uzly hypotéz nebo pomocné, tak obsahuje \emph{relationships}, obsahující pravidla. Výpis 3.2 ukazuje podobu uzlu otázka báze znalostí \cite{korinek}. 
%výpis uzlu báze znalostí
\begin{lstlisting}[language=XML,caption={Uzel otázky báze znalostí.},label=lst:uzel.otázky.baze.znalosti,basicstyle=\ttfamily\small, keywordstyle=\color{black}\bfseries]
<node literal="{iduzlu}" probability="{pravděpobnost}"
type="{typ}">
    <comment>
        <content culture="cs-CZ" type="text">
            {otázka}
        </content>
    </comment>
    <contexts>
        <{less/greater} threshold="{práh}" 
        literal="{iduzlu}"/>
    </contexts>
    <answers>
        <answer probability={pravděpodobnost}>
            <content culture="cs-CZ" type="text">
                {text odpovědi}
            </content>
        </answer>
    </answers>
    <relationships>
        <relationship type="{conjunction/disjunction}"
        alpha="{vazba}">
            <{negative/positive} literal="{iduzlu}" />
        </relationship>
    </relationships>
</node>
\end{lstlisting}
\subsection{Nahrávání báze znalostí}
Pro nahrávání báze znalostí do systému NPS je třeba mít roli inženýra. Pokud máme roli inženýra, tak se nám v navigaci zobrazí záložka \emph{Správa} a po kliknutí na tuto záložku se nám vypíšou všechny dostupné báze znalostí s možností nahrát novou bázi. Po kliknutí na možnost \emph{Přidat bázi znalostí} se zobrazí stránka s formulářem pro přidání této nové báze (viz obr. 3.1).
\begin{figure}[!h]
	\begin{center}
		\includegraphics[scale=0.40]{obrazky/nahrávání-báze.PNG}
	\end{center}
	\caption[Snímek obrazovky stránky pro nahrávání báze.]{Snímek obrazovky stránky pro nahrávání báze.}
\end{figure}
\par Zde se vyplňuje verze báze, která musí být ve tvaru \emph{dd-mm-yyyy}, kde dd značí den, mm měsíc a yyyy rok, kdy je nahrávána. Báze znalostí se nahrává kliknutím na ikonu pro nahrání báze a následném vyhledáním báze v prohlížeči souborů nebo přetažením souboru na ikonu.
Po nahrání báze systém zkontroluje syntax a pokud je v syntaxi chyba, je zobrazena a je nutné ji najít a opravit a poté bázi nahrát znovu. V případě, že je báze nahrána bez chyby, je možné spustit konzultaci.   
\subsection{NPS API}
Serverová část NPS je realizován jako API. Je tedy možné zasílat dotazy na koncové body (endpointy) API. Na základě těchto dotazů následně vrací data. Tato data jsou ve formátu JSON. 
Pro provedení konzultace na bázi znalostí pomocí dotazů přes API je nutné se nejprve přihlásit. Po zaslání dotazu na přihlášení je navrácen \emph{JWT autorizační token}, tím následně bude ověřen uživatel. Tento token má časově omezenou platnost na 30 minut \cite{korinek}.
\smallskip
\smallskip
\par Po přihlášení je možné provést konzultaci na vybrané bázi znalostí. Konzultace je možné provádět dvěma způsoby. Při prvním způsobu je odeslán dotaz na zahájení konzultace. Jako návratová hodnota je vráceno identifikační číslo konzultace, aktuální stav hypotéz, první otázka a její možné odpovědi. Následně je možné na tuto otázku odeslat zvolenou odpověď. Po odeslání odpovědi jsou opět navráceny aktuální výsledky hypotéz a další otázka s možnými odpověďmi. Takto následně probíhá i zbytek konzultace. 
\smallskip
\smallskip
\par Druhý způsob spočívá v provedení konzultace v jednom kroku a se všemi odpověďmi uživatele. Kdy je odeslán dotaz pro provedení konzultace na bázi určenou identifikačním číslem. Dotaz také obsahuje odpovědi na všechny otázky v bázi. Po provedení konzultace jsou vráceny konečné výsledky jednotlivých hypotéz.
\smallskip
\smallskip
\par Identifikační číslo všech dostupných bází znalostí je možné získat zasláním dotazu na API po přihlášení. Dotaz vrátí identifikační číslo všech dostupných bází, jejich verzi a další informace. Pokud tento dotaz pošle nepřihlášený uživatel, tak jsou zobrazeny pouze konzultace se znakem demo dostupné pro nepřihlášené uživatele. Pro provádění konzultace na bázi znalostí je potřeba mít přístup k požadované bázi znalostí a také mít roli API.            
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%kapitola o tvorbě a ladění báze znalostí
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Návrh a realizace báze znalostí}

Kapitola  se zabývá návrhem a tvorbou demonstrační báze znalostí pro e-shop s mobilními telefony. 

\section{Realizované otázky}
Otázky pro bázi znalostí byly sestaveny na základě návštěv prodejen mobilních telefonů, kdy byly s jednotlivými prodejci konzultovány nejčastěji kladené otázky lidmi, kteří se v problematice parametrů  mobilních telefonů orientují jen málo nebo vůbec.
\smallskip
\smallskip
%\par Není zde zahrnuta otázka na cenu produktů, byť se jedná o velmi důležitý faktor při nákupu. Pokud se uživatel při výběru dostane na cenu, kterou již není schopen akceptovat, bude nutné slevit z některého nároku na parametry přístroje a tím budou vybrány produkty s nižší cenou.\newline
\\
\textbf{Byly zvoleny tyto dotazy:}
\\
\begin{enumerate}[label=\alph*$)$]
	\item Sledujete na telefonu videa?
	\item Hrajete na telefonu hry?
	\item Budete používat telefon jako náhradu fotoaparátu?
	\item Budete používat telefon při sportu?
	\item Je pro Vás důležitá výdrž baterie?
	\item Využíváte více SIM karet?
	\item Jakou vyžadujete velikost paměti telefonu? 
	\item Požadujete, aby byl telefon voděodolný?
\end{enumerate}

\subsubsection{Ad a) Sledujete na telefonu videa?}
Dnes je možné sledovat videa, filmy a seriály na různých webových platformách jako je například YouTube, Netflix a spousta dalších. Videa je samozřejmě pohodlnější sledovat na displejích s větší úhlopříčkou a s lepším připojením k internetu, což zaručuje vysokou kvalitu a rychlost načítání videa. 
\subsubsection{Ad b) Hrajete na telefonu hry?}
Čím dál více, zvláště mladších uživatelů, tráví volný čas na telefonu hraním her. Na běžné hry dostačuje obyčejný přístroj, ale v případě graficky náročnějších her je nutné zvolit telefon s dostatečně vysokým výkonem,který splňuje předpoklad, že hra bude fungovat plynule. V tomto případě je výhodné mít rychlé připojení k internetu, zvláště pokud uživatel předpokládá i hraní her pro více hráčů. 
\subsubsection{Ad c) Budete používat telefon jako náhradu fotoaparátu?}
Fotoaparáty mobilních telefonů dnes již dospěly k takové kvalitě, že mohou i u standardních přístrojů v podstatě nahradit dnešní běžné fotoaparáty a není výjimkou, že například dražší přístroje Applu používají profesionálové běžně při své práci.
\subsubsection{Ad d) Budete používat telefon při sportu?}
Kdo chce sportovat a nechce investovat své prostředky do sportovních náramků, či sporttesterů, má možnost si na svůj telefon stáhnout celou řadu dostupných sportovních aplikací. Avšak je nutné dávat si pozor, jelikož při sportování se telefon může snadno poškodit.Další nevýhodou sportování s telefonem je také menší přesnost měření a nemožnost  měření tepové frekvence. Sportovat se dá prakticky s každým telefonem avšak příliš veliký telefon je náročný na nošení a hůře se s ním manipuluje. Výhodnější pro sportování bude tedy odolnější telefon, který je méně náchylný k poškození.
\subsubsection{Ad e) Je pro Vás důležitá výdrž baterie?}
Dnešní telefony disponují různou výdrží baterie a pokud požadujeme, aby telefon vydržel celý den nebo dokonce více dní bez nutnosti jeho nabíjení, je nutné zvolit přístroj s větší kapacitou baterie, ale zároveň s tím je nutné počítat s většími rozměry telefonu. Výdrž baterie je rovněž ovlivněna dalšími faktory jako je např. výkonnější hardware a velikost displeje. Čím větší a kvalitnější je displej a náročnější hardware, tím více energie bude spotřebováváno při provozu.
\subsubsection{Ad f) Využíváte více SIM karet?}
Téměř všechny telefony dnes disponují možností použití více SIM karet. Je to výhodné pro spotřebitele, kteří využívají více operátorů k dosažení levnějších služeb jak pro volání, tak pro užívání internetu.
\subsubsection{Ad g) Jakou vyžadujete velikost paměti telefonu?}
Paměť telefonu je důležitým parametrem, neboť se zde ukládají všechny hry, videa a další soubory, které potřebujeme mít na telefonu uloženy. Dnes jsou standardem paměti o velikosti 32, 64, 128 a 256 GB a nově nejsou výjimkou i telefony s 512 GB pamětí. Standardem je i možnost rozšíření paměti SD kartou.
\subsubsection{Ad h) Požadujete, aby byl telefon voděodolný?}
Na trhu jsou dnes i voděodolné telefony. Tyto telefony mají nejčastěji stupeň ochrany IP67 a IP68, kdy telefony s IP67 vydrží 30 minutové ponoření do hloubky jeden metr a telefony s IP68 je možné nepřetržitě potápět do vody za podmínek určených výrobcem.

\section{Realizované hypotézy}
Na základě výsledků hypotéz se následně nastaví parametry pro filtr. Tímto filtrem poté proběhne výběr z databáze telefonů. Hodnoty kritérií a hraniční hodnoty hypotéz byly stanoveny na základě konzultací a následně byly dále upravovány na základně výsledků testování aplikace. \newline 
Byly vybrány tyto hypotézy:
\\
\begin{enumerate}[label=\alph*$)$]
	\item Velikost displeje
	\item Fotoaparát
	\item Výkon telefonu
	\item Rychlé připojení
	\item Baterie
	\item Voděodolnost
	\item Dual SIM 
	\item Paměť
	\item Sport 
\end{enumerate}

\subsubsection{Ad a) Velikost displeje}
Pokud bude mít hypotéza ve výsledku hodnotu více než 0,6, budou se vybírány telefony s úhlopříčkou vyšší než-li 6,2". Pokud výsledkem konzultace bude hodnota méně než 0,4, budou vybírány displeje menší než 6,2". Jestliže se výsledná hodnota bude nacházet blízko středu intervalu, nebude se filtrovat vůbec.
\subsubsection{Ad b) Fotoaparát}
Pokud bude hodnota hypotézy větší než 0,7 budou vybírány velmi kvalitní a kvalitní fotoaparáty, pokud bude hodnota menší než 0,3, budou voleny fotoaparáty střední a nižší kvality. Hodnoty v blízkosti středu intervalu nebudou filtrovány. Kvalita fotoaparátů byla rozdělena na interval od 0 do 1, kde 1 odpovídá velmi kvalitnímu fotoaparátu a 0 naopak tomu nejméně kvalitnímu.
\subsubsection{Ad c) Výkon telefonu}
Podobně jako v případě kvality fotoaparátu také výkon telefonu byl rozdělen do intervalu od 0 do 1, kdy 1 reprezentuje nejvyšší výkon na trhu a 0 naopak nejnižší. Pokud bude hodnota hypotézy nad hodnotu 0,7, budou vybírány telefony s vysokým a vyšším výkonem, pokud bude hodnota pod 0,3, budou vybírány telefony s nižším a nízkým výkonem.
Bude-li se hodnota nacházet ve zbytku intervalu, budou vybírány telefony se středním výkonem. Hodnoty v intervalu 4,9 až 5,1 nebudou filtrovány. 
\subsubsection{Ad d) Rychlé připojení}
Při výsledku hypotézy nad 0,8 budou voleny produkty s možností 5G připojení, pokud bude hodnota pod 0,9 tak budou voleny telefony se 4G.
\subsubsection{Ad e) Baterie}
Pokud bude hodnota hypotézy vyšší než 0,7, tak budou vybrány velikosti baterií 4000 mAh a větší. Při hodnotě pod 0,3 budou velikosti vybraných baterií menší než 4000 mAh.  
\subsubsection{Ad f) Voděodolnost}
Při výsledku hypotézy nad 0,7 jsou voleny telefony s ochranou IP68 a IP67, při výsledku pod 0,3 jsou vybírány telefony bez voděodolnosti. Pokud bude hodnota v intervalu, tak se nebude filtrovat. 
\subsubsection{Ad g) Dual SIM}
Výsledná hodnota menší než 0,5 nebude filtrována, bude-li hodnota nad 0,5, budou vybírány telefony podporující více SIM karet. Jestliže uživatel nebude vyžadovat velkou vnitřní paměť, bude se filtrovat z telefonů, které tuto možnost podporují bez ohledu na to zda, mají hybridní slot, což znamená, že si uživatel může vybrat, zda do telefonu dá dvě SIM karty, nebo kombinaci SIM karta + paměťová karta. V opačném případě budou vybírány produkty nabízející možnost dvou SIM karet a paměťové karty nebo telefony s možností dvou SIM karet a pamětí alespoň 128 GB.
\subsubsection{Ad h) Paměť}
Pokud bude uživatel vyžadovat vysokou hodnotu vnitřní paměti, tedy výsledná hodnota hypotézy bude nad 0,7, tak budou vybírány produkty s 256 a více GB volného místa a telefony s menší vnitřní pamětí, ale s možností jejího rozšíření pomocí SD karty. Pokud bude výsledná hodnota v intervalu 0,3 až 0,7, vybrané produkty budou mít vnitřní paměť 128 GB a menší opět s možností rozšíření paměti SD kartou. Při hodnotě menší než 0,3 budou vybrány telefony s pamětí 64 a 32 GB.
\smallskip
\smallskip
\par Podobně jako v případě se SIM kartami, i zde se bude brát ohled na konfiguraci karet v telefonu. Pokud bude uživatel požadovat velkou vnitřní paměť a možnost použití dvou SIM karet, budou vybírány telefony nabízející možnost dvou SIM karet a paměťové karty. V opačném případě budou voleny také telefony s hybridním slotem.    
\subsubsection{Ad i) Sport}
Při hodnotě hypotézy nad 0,5, budou vybírány telefony vhodnější pro sport, tedy telefony s menší úhlopříčkou displeje a s ochranou alespoň IP67. V opačném případě se nebude filtrovat.   
  
