DATALOG
DATALOG
Jazyk Datalog (odvodený z Prologu) sa využíva na deklaratívnu špecifikáciu pravidiel, pričom spôsob ich použitia je otvorený. Na špecifikáciu pravidiel sa používajú predikáty. Slabou stránkou skorších verzií Datalogu sú matematické operácie, čo je však slabinou u väčšiny DeDBS. Novšie verzie však už umožňujú použiť aritmetické operácie ako argumenty literálov. Na vyjadrenie pravidla sa v Datalogu používajú literály v tvare p(a1,a2,…an), kde p je meno predikátu a a1..an sú argumenty. Literály (atomické formuly) môžu byť pozitívne a negatívne. Všetky pravidlá v Datalogu musia mať kauzálnu formu a spĺňať Hornovú klauzulu, teda môžu obsahovať maximálne jeden pozitívny literál. Dotaz v Datalogu má dve časti :
• datalógový program = konečná množina pravidiel
• literál p(X1…Xn) = každé X je premenná alebo konštanta
Takto formulovaný dotaz dokáže interpretovať interný inferenčný mechanizmus, zabudovaný v Datalogu.
V Datalogu sú zabudované aj predikáty binárneho porovnávania. Treba však dávať pozor pri tvorbe pravidiel, pretože pri použití predikátu typu x,3), ktorá predpokladá hodnoty väčšie ako 3, vygeneruje nekonečnú množinu hodnôt. Z toho vyplýva, že pravidlá sú bezpečné práve vtedy, ak generujú konečnú množinu faktov. Z tohto dôvodu hrajú dôležitú úlohu integritné obmedzenia, ktoré by mali testovať prípustnosť jednotlivých faktov. Všeobecný problém testovania, či je množina pravidiel bezpečná je nerozhodnuteľný, ale dá sa zistiť bezpečnosť niektorých tvarov pravidiel.
Vysoký_plat (Y) :- Yje větší nežSk ….. generuje nekonečnú množinu hodnôt
ale
Vysoký_plat(Y) :- zamestnanec(X), plat(X,Y), Y je větší než 30.000
Dané pravidlo je v poriadku, lebo testovaná hodnota plat je viazaná na konkrétneho zamestnanca a teda je to jedna konkrétna hodnota