´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
Pravidlov´e syst´emy - implementace s vyuˇzit´ım SQL Jakub Koz´ak MFF UK
29. 4. 2011
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
1
´ Uvod
2
Deduktivn´ı datab´aze
3
Aktivn´ı datab´aze
4
MTBC-RBS ´ Uvod Architektura Pravidlov´a z´akladna Engine Uˇzivatelsk´e rozhran´ı V´ysledky
5
Z´avˇer
Aktivn´ı datab´ aze
MTBC-RBS
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
Co to jsou pravidla?
T´emˇeˇr ve vˇsech ˇzivotn´ıch situac´ıch se ˇr´ıd´ıme pravidly. - Kdyˇz je mi horko, svl´eknu si svetr. - Kdyˇz vid´ım pˇrek´ aˇzku, obejdu ji. ˇ Kdyˇz podm´ınka, pak ˇcinnost. - OBECNE:
Pˇri hled´an´ı odpovˇedi se ˇr´ıd´ıme pravidly. - Pokud je hledan´ a osoba syn m´eho str´yce, pak je to m˚ uj bratranec. - Pokud A ∧ B, pak A. ˇ Logick´e uvaˇzov´ - OBECNE: an´ı, dedukce.
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
Pravidlov´e syst´emy
Pravidlov´e syst´emy se vyvinuly z prvotn´ıch prac´ı umˇel´e inteligence. Tyto syst´emy vyuˇz´ıvaj´ı expertn´ı znalosti pro ˇreˇsen´ı probl´em˚ u re´aln´eho svˇeta. Pouˇz´ıvaj´ı se v syst´emech pro ˇr´ızen´ı (viz. napˇr. fuzzy logika), pˇri zpracov´an´ı jazyka (napˇr. regul´arn´ı v´yrazy) Vyuˇz´ıvaj´ı se ovˇsem tak´e jako rozˇs´ıˇren´ı DB syst´em˚ u. 2 hlavn´ı proudy: - Deduktivn´ı datab´ aze - Aktivn´ı datab´ aze
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
Deduktivn´ı datab´aze
Ovlivnˇeno logick´ym programov´an´ım Rozˇsiˇruje relaˇcn´ı algebru o nov´e moˇznosti - rekurze, tranzitivn´ı uz´avˇer Deklarativn´ı s´emantika - jde o dotaz, ne o zp˚ usob jeho vyhodnocen´ı Pravidla ve formˇe p : −q1 , q2 , . . . , qn Pouˇzit´ı pro aplikace s velk´ym mnoˇzstv´ım dat a komplexn´ımi dotazy finanˇcn´ı anal´yza, vˇedeck´e v´ypoˇcty apod.
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
Deduktivn´ı datab´aze
Historie deduktivn´ıch datab´az´ı sah´a aˇz do 70. let 20. stolet´ı V roce 1984 zaˇcaly 3 hlavn´ı v´yzkumn´e projekty: - The Nail! - projekt Stanfordovy univerzity - LDL projekt na MCC v Austinu - ECRC - projekt v Evropˇe
D´ale vzniklo pomˇernˇe velk´e mnoˇzstv´ı dalˇs´ıch jazyk˚ u a projekt˚ u (viz. Literatura)
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
Aktivn´ı datab´aze
Reprezentuj´ı reaktivn´ı chov´an´ı (akce → reakce) Bˇeˇzn´y pˇr´ıstup modelov´an´ı pravidel sest´av´a ze tˇr´ı komponent: ´ UDALOST → PODM´INKA → AKCE ⇒ UPA pravidla (EVENT → CONDITION → ACTION ⇒ ECA rules) Nˇekdy mohou b´yt nˇekter´e ˇc´asti vypuˇstˇeny - napˇr. ud´alost, nebo podm´ınka.
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
Aktivn´ı datab´aze
Velmi podrobnˇe se popisem aktivn´ıch datab´az´ı zab´yv´a ˇcl´anek Paton N. P., D´ıaz O.: Active Database Systems, ACM Computing Surveys, Vol. 31, No. 1, March 1999. Vˇenuje se vˇsem aspekt˚ um dan´e problematiky. Refer´at dostupn´y na str´ankach prof. Pokorn´eho o aktivn´ıch datab´az´ıch ze zimn´ıho semestru.
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
Aktivn´ı datab´aze - implementace
Relaˇcn´ı Starburst POSTGRES Ariel SQL-3
Objektovˇe orientovan´e HiPAC, EXACT, NAOS, Chimera Ode, SAMOS, Sentinel, REACH
MTBC-RBS
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
Abstraktn´ı architektura syst´emu aktivn´ıch pravidel
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
´ Uvod
Konkr´etn´ı implementace pravidlov´eho syst´emu
MTBC-RBS
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
´ Uvod
IT ve zdravotnictv´ı
Zdravotnictv´ı je pro IT v USA v souˇcasn´e dobˇe velk´y byznys - st´atn´ı dotace a z´akonem stanoven´e podoby dokumentac´ı Konkr´etn´ı implementace pravidlov´eho syst´emu pro sekci zdravotn´ı p´eˇce v USA Budou n´as zaj´ımat ˇz´adosti o platby od zdravotn´ıch pojiˇst’oven D˚ uleˇzit´a poloˇzka v u ´ˇcetnictv´ı, nebot’ aˇz 30 % ˇz´adost´ı je poprv´e zam´ıtnuto a z nich dalˇs´ıch 35 % zam´ıtnuto opakovanˇe
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
´ Uvod
Co je to MTBC?
Spoleˇcnost zaloˇzen´a v roce 1999 v USA Software pro sektor zdravotn´ı p´eˇce Medic´ınsk´e u ´ˇcetnictv´ı, elektronick´e l´ekaˇrsk´e z´aznamy Management l´ekaˇrsk´e praxe - pl´anov´an´ı sch˚ uzek, veden´ı evidence, postoupen´ı n´arok˚ u na platby od pojiˇst’ovny ´ Udajnˇ e vyuˇz´ıvaj´ı modern´ı softwarov´e metody MTBC zpracov´av´a tis´ıce ˇz´adost´ı pro pojiˇst’ovny dennˇe
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
´ Uvod
Proˇc ˇz´adosti pro pojiˇst’ovny
ˇ adost mus´ı obsahovat korektn´ı informace - spr´avn´e datum, validn´ı Z´ ˇc´ıslo diagn´ ozy apod. Tyto poˇzadavky se ˇcasto mˇen´ı a udrˇzovat ˇr´ızen´ı pˇr´ımo v nˇejak´e aplikaci je komplikovan´e Proto byl pro v´yvoj zvolen pravidlov´y syst´em zaloˇzen´y na SQL Tento syst´em je nyn´ı v MTBC plnˇe funkˇcn´ı
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
Architektura
Architektura MTBC Data se do datab´aze MTBC importuj´ı z r˚ uzn´ych zdroj˚ u bez aplikace jak´ekoliv kontroly dat.
Kontrola ˇz´adost´ı tedy prob´ıh´a po z´apisu do datab´aze a pˇred odesl´an´ım pl´atc˚ um pojistn´eho.
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
Pravidlov´ a z´ akladna
Pravidlov´a z´akladna
Jak budeme pravidla reprezentovat a ukl´adat? Budeme potˇrebovat tˇri z´akladn´ı entity: - Logick´e promˇenn´e - Pravidla - Meta-pravidla
Vˇsechny si rozebereme podrobnˇeji.
MTBC-RBS
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
Pravidlov´ a z´ akladna
Logick´e promˇenn´e
Logickou promˇennou rozum´ıme symbol uzavˇren´y ve ˇspiˇcat´ych z´avork´ach <> Pravidla se prov´adˇej´ı aˇz po nahrazen´ı promˇenn´ych jejich skuteˇcn´ymi hodnotami Skuteˇcn´e hodnoty jsou z´ıskany dotazem pˇr´ısluˇsn´ym k dan´e promˇenn´e Pˇr´ıklad:
:= SELECT Pohlavi FROM Pacient WHERE pac_ucet = @pac_ucet @pac_ucet je SQL promˇenn´a, v n´ıˇz je uloˇzena hodnota u ´ˇctu pacienta, na kter´y je aplikov´ano dan´e pravidlo
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
Pravidlov´ a z´ akladna
Logick´e promˇenn´e
Dalˇs´ı pˇr´ıklady: - := SELECT datum_nehody FROM pozadavky WHERE id_pozadavku = @id_pozadavku - := SELECT dg_kod FROM pozadavky WHERE id_pozadavku = @id_pozadavku - := SELECT datum_sluzby FROM pozadavky WHERE id_pozadavku = @id_pozadavku - := SELECT @id_pozadavku AS id_pozadavku
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
Pravidlov´ a z´ akladna
Pravidla
Typicky pravidla sest´avaj´ı z konjunkce podm´ınek v if-ˇc´asti a mnoˇziny akc´ı v then-ˇc´asti. V tomto syst´emu jsou podm´ınky ˇc´asti SQL dotaz˚ u. Pravidla maj´ı sv´e priority (pˇrirozen´a ˇc´ısla od 1 do 100), podle nichˇz se vyhodnocuj´ı. Existuj´ı hodnoty, pro kter´e se pravidla zkouˇs´ı aplikovat vˇzdy. Jinak mus´ı b´yt platn´e meta-pravidlo.
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
Pravidlov´ a z´ akladna
Pravidla N´azev pravidla: R4 Priorita: 25 Popis: Datum nehody chyb´ı pro MKN v intervalu od 800 do 999 Dotaz: WHERE ISNULL(’’,’1900-01-01’) = ’1900-01-01’ AND LEFT(’’,3) BETWEEN ’800’ AND ’999’; IF @Recordcnt = 1 BEGIN UPDATE pozadavky SET datum_nehody = ’’ WHERE id_pozadavku = END MKN je zkratka pro mezin´arodn´ı klasifikaci nemoc´ı Kaˇzd´e pravidlo je na zaˇc´atku opatˇreno konstantn´ım ˇretˇezcem SELECT @Recordcnt = COUNT(*) @Recordcnt je 0, pokud se nic s danou podm´ınkou nenajde, jinak 1 a poˇzadavek je prohl´aˇsen za chybn´y.
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
Pravidlov´ a z´ akladna
Pravidla
Popis nˇekter´ych pravidel, kter´e se v souˇcasnosti v MTBC-RBS pouˇz´ıvaj´ı. SR 2 4 5 7 8
Popis pravidla Chyb´ı datum nehody pro MKN od 800 do 900 St´aˇr´ı poˇzadavku pˇrekraˇcuje limit n´asleduj´ıc´ıho roku spoleˇcnosti Medicare St´aˇr´ı poˇzadavku vˇetˇs´ı neˇz 365-denn´ı limit pl´atce pojistn´eho K´ od diagn´ ozy nesouhlas´ı s vˇekem pacienta K´ od diagn´ ozy nesouhlas´ı s pohlav´ım pacienta
Akc´ı vˇetˇsiny pravidel je zobrazen´ı chybov´eho hl´aˇsen´ı uˇzivateli. Nˇekter´e chyby jsou oznaˇceny jako kritick´e a blokuj´ı odesl´an´ı poˇzadavku.
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
Z´ avˇ er
Pravidlov´ a z´ akladna
Metapravidla
Spoleˇcn´e podm´ınky pro v´ıce pravidel mohou b´yt uloˇzeny jako speci´aln´ı metapravidla. Nejdˇr´ıve se vyhodnot´ı metapravidlo. Pokud je v´ysledkem pravda, provedou se podˇr´ızen´a pravidla v poˇrad´ı podle priority. Pˇr´ıklad - rozdˇelen´ı pravidla R4 N´azev meta pravidla: MR1 Popis: Chyb´ı datum nehody Dotaz: WHERE ISNULL(’’,’1900-01-01’) = ’1900-01-01’
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
Z´ avˇ er
Pravidlov´ a z´ akladna
Metapravidla
N´azev pravidla: R4 N´azev metapravidla: MR1 Priorita: 35 Popis: Datum nehody chyb´ı pro MKN v intervalu od 800 do 999 Dotaz: WHERE LEFT(’’,3) BETWEEN ’800’ AND ’999’; IF @Recordcnt = 1 BEGIN UPDATE pozadavky SET datum_nehody = ’’ WHERE id_pozadavku = END
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
Engine
Engine syst´emu Vstupem pro MTBC-RBS je ˇc´ıslo poˇzadavku. ˇ adost se skl´ad´a z: Z´ -
k´ od diagn´ ozy l´eˇcebn´e procedury ˇ ... u ´daje o pacientovi - jm´eno, datum narozen´ı, RC dalˇs´ı informace pro potˇreby pojiˇst’oven
V´yˇse uveden´a data jsou uloˇzena v relaˇcn´ı DB a pravidlov´y syst´em si je vyb´ır´a z pˇr´ısluˇsn´ych tabulek. Logika syst´emu je vcelku jednoduch´a: 1 Vezmi jednu ˇz´ adost 2 Pamatuj priority pravidel a metapravidla, aplikuj pravidla jedno po druh´em 3 Spust’ akci tˇech pravidel, jejichˇz podm´ınka je splnˇena (tzn. se z´ aznamem nen´ı nˇeco v poˇr´ adku)
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
Engine
Engine syst´emu
4 tabulky v relaˇcn´ı DB - 3 pro uloˇzen´ı pravidel, 1 pro uloˇzen´ı v´ysledk˚ u aplikace pravidel 3 hlavn´ı kroky pˇri aplikaci pravidel: 1 naj´ıt vˇsechna aplikovateln´ a pravidla (sp_find_applicable_rules) vˇsechna aktivn´ı pravidla, pak priorita 25, 75 a do tabulky #Apprules se uloˇz´ı pravidla, jejichˇz metapravidla vrac´ı pravdu 2 nahradit logick´e promˇenn´e (sp_replace_LV_values) pokud m´ a logick´ a promˇenn´ a v´ıce hodnot, vytvoˇr´ı se v´ıce kopi´ı dotazu 3 spuˇstˇen´ı pravidla - tj. kontrola podm´ınky, uloˇzen´ı v´ysledku do z´ aznamu a pˇr´ıpadn´e spuˇstˇen´ı akce
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Engine
Engine syst´emu
Aktivn´ı datab´ aze
MTBC-RBS
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
Uˇzivatelsk´ e rozhran´ı
Editor pravidel
Obr´ azek: Hlavn´ı okno pro editaci pravidel m´ a 3 panely
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
V´ ysledky
V´ysledky
Aplikace 5230 pravidel na jeden poˇzadavek trv´a pˇribliˇznˇe 3 sekundy V testovan´em obdob´ı bylo dennˇe pr˚ umˇernˇe vyplaceno 4128 ˇz´adost´ı a nalezeno 1289 chyb. (2 chyby v jedn´e ˇz´adosti byly poˇc´ıt´any jako 2 chyby) Tento typ syst´emu se hod´ı pro prostˇred´ı s ˇcastou zmˇenou pravidel.
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
Z´avˇer
Z´akladn´ı pˇrehled o pravidlov´ych syst´emech Co to jsou deduktivn´ı a aktivn´ı datab´aze Konkr´etn´ı implementace syst´emu v zaj´ımav´em prostˇred´ı zdravotn´ı p´eˇce
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
MTBC-RBS
Literatura
Ceri S., Ramakrishnan R.: Rules in Database Systems, ACM Computing Surveys, Vol. 28, No. 1, March 1996. Ramakrishnan R., Ullman J. D.: A Survey of Deductive Database Systems, The Journal of Logic Programming, 1995. Paton N. P., D´ıaz O.: Active Database Systems, ACM Computing Surveys, Vol. 31, No. 1, March 1999. Abdullah U., Sawar M. J., Ahmed A.: Design of a rule based system using Structured Query Language, DASC ’09 Proceedings of the 2009 Eighth IEEE International Conference on Dependable, Autonomic and Secure Computing.
Z´ avˇ er
´ Uvod
Deduktivn´ı datab´ aze
Aktivn´ı datab´ aze
Konec
Dˇekuji za pozornost.
MTBC-RBS
Z´ avˇ er