Úvod :
Prolog je a logické programování Jazyk. Má důležitou roli v umělé inteligenci. Na rozdíl od mnoha jiných programovacích jazyků je Prolog zamýšlen především jako deklarativní programovací jazyk. V prologu je logika vyjádřena jako vztahy (nazývané jako fakta a pravidla). Jádro prologu leží v logika je aplikováno. Formulace nebo výpočet se provádí spuštěním dotazu nad těmito vztahy.
Instalace v Linuxu:
Otevřete terminál (Ctrl+Alt+T) a typ:
sudo apt-get install swi-prolog>
Syntaxe a základní pole:
V prologu uvádíme některá fakta. Tato fakta tvoří znalostní bázi systému. Můžeme se dotazovat na Knowledge Base. Výstup dostaneme jako kladný, pokud je náš dotaz již ve znalostní bázi nebo je implikován znalostní bází, jinak dostaneme výstup jako záporný. Znalostní databázi lze tedy považovat za podobnou databázi, proti které můžeme dotazovat. Prologová fakta jsou vyjádřena v určitém vzoru. Fakta obsahují entity a jejich vztah. Entity se zapisují do závorek oddělených čárkou (, ). Jejich vztah je vyjádřen na začátku a mimo závorku. Každý fakt/pravidlo končí tečkou (.). Typický prolog tedy zní takto:
Format : relation(entity1, entity2, ....k'th entity). Example : friends(raju, mahesh). singer(sonu). odd_number(5). Explanation : These facts can be interpreted as : raju and mahesh are friends. sonu is a singer. 5 is an odd number.>
Klíčové vlastnosti:
1. Sjednocení: Základní myšlenkou je, mohou dané termíny představovat stejnou strukturu.
2. Zpětné sledování: Když úkol selže, prolog trasuje pozpátku a pokusí se splnit předchozí úkol.
3. Rekurze: Rekurze je základem pro jakékoli vyhledávání v programu.
Spuštěné dotazy:
Typický prologový dotaz může být položen takto:
Query 1 : ?- singer(sonu). Output : Yes. Explanation : As our knowledge base contains the above fact, so output was 'Yes', otherwise it would have been 'No'. Query 2 : ?- odd_number(7). Output : No. Explanation : As our knowledge base does not contain the above fact, so output was 'No'.>
výhody:
1. Snadné sestavení databáze. Nevyžaduje mnoho programátorského úsilí.
2. Porovnání vzorů je snadné. Vyhledávání je založeno na rekurzi.
3. Má zabudovanou manipulaci se seznamy. Usnadňuje hraní s jakýmkoliv algoritmem zahrnujícím seznamy.
Nevýhody:
1. LISP (další logický programovací jazyk) dominuje nad prologem s ohledem na I/O funkce.
2. Někdy není vstup a výstup snadný.
Aplikace:
Prolog je velmi používán v umělé inteligenci (AI). Prolog se také používá pro porovnávání vzorů přes stromy analýzy přirozeného jazyka.
Reference 1: https://cs.wikipedia.org/wiki/Prolog
Reference 2: http://www.swi-prolog.org/