Pentru implementarea claselor de obiectelor pasive din FKB se va folosi o baza de date relationala, caz in care sunt acoperite problemele legate atat de reprezentarea proprietatilor fiecarei clase in parte cat si cele legate de regulile de relationare a acestor entitati, si nu in ultimul rand, regulile de conservare a coerentei datelor si a accesului la date.
Totodata, folosirea unei baze de date ca si baza de cunostinte asigura portabilitatea acesteia si independenta fata de mediul in care aceasta va fi utilizata, atat timp cat se va pastra utilitatea, se va tine cont de structura acesteia si interpretarea datelor va fi corespunzatoare.
Pentru implementarea bazei de cunostinte s-a ales mediul de management de baze de date Microsoft Access, oferind facilitati atat in proiectarea propriu-zisa a bazei de date cat si in ce priveste relationarea entitatilor si specificarea rolulilor, regulilor si asocierilor impreuna cu proprietatile acestora.
Elementele componente ale bazei de date sunt cele prezentate in figura 3.1.1.
Figura 3.1.1. Structura bazei de cunostinte ca baza de date.
Fiecare dintre aceste elemente sunt reprezentate in baza de date printr-o tabela (figura 3.1. 2).
(a)
(b)
(c)
(d)
(e)
(f)
(g)
Figura 3.1.2. Structura tabelei Domenii (a - Domenii, b - Domenii discrete, c - Modificatori, d - Multimi, e - Multimi continui, f - Multimi discrete, g - Numre fuzzy).
Relatiile dintre aceste tabele sunt definite folosind propriul mediu de proiectare si sunt reprezentate in figura 3.1.3.
Figura 3.1.2. Diagrama Entitate - Relatie pentru baza de cunostinte FKB.
Un amanunt important considerat in implementare este faptul ca aceasta baza de date va fi salvata intr-un fisier cu extensia CKB (Context Knowledge Base) tehnica prin care se va face conexiunea intre instrument si o anumita baza de cunostinte de context la un moment dat.
Un alt aspect il prezinta modul in care se executa actualizarile bazei de date, acesta fiind implementat folosind limbajul SQL, comunicarea cu baza de date fiind la nivel de conexiune, efectuata cu ajutorul obiectelor puse la dispozitie de librariile de acces la date (DataAccessObject Library v2.5). Obiectele utilizate in acest caz sunt instante ale claselor Connection si RecordSet, impreuna cu colectiile de obiecte de tip Field si Rows.