Bază de date dinamică - secțiunea a programului, în care faptele pot fi adăugate sau încărcate dintr-un fișier de pe disc în timpul programului sau scos din ea. Faptele care descriu predicatul bazei de date, pot fi de asemenea tratate ca un predicate Prolog obișnuite.
Pe de altă parte, poate fi interpretat de baze de date Prolog ca un fel de variabilă la nivel mondial. Această interpretare este foarte convenabil: orice procedură se poate scrie cu ea rezultatul, care va fi disponibil la orice altă procedură, indiferent de distanța dintre ele nu a fost în concordanță cu apelurile lor dinamice.
22. Un exemplu al unei baze de date dinamice.
Baza de date - db1% bază de date numit db1
Baza de date - db2% Baza de date numit db2
Obiectiv rettactall (fact1 (X, Y, [_, 2 | Z]))% elimina faptele eșantionului
Obiectiv retractall (db2)% elimina o bază de date numită
Programul de Clasificare 23.. Aici considerăm sistemul de întrebare-răspuns, care este un exemplu al unui sistem expert de mic, în sensul că programul variază în procesul de votare, în funcție de circumstanțe; Mai mult decât atât, se poate stabili numărul minim de întrebări.
Baza de date a unui astfel de program este un arbore de decizie a unui domeniu. În cazul nostru, un astfel de copac ar fi un sistem de clasificare a animalelor. Toate animalele sunt împărțite în mamifere, păsări și pești. Printre mamifere sunt carnivore și ungulate. Pentru Predators, în special, tigrul și ghepard.
Prezentăm aici un exemplu de versiunea programului cu lanțul de feedback-ul de raționament, deoarece este mai aproape de mecanismul de ieșire Prolog built-in. Programul cu o linie directă de raționament poate fi găsită în [1].
Structura versiunii pe linia din spate a raționamentului este proiectat introducerea unei reguli la nivel înalt. Fiecare astfel de regulă descrie animalului, de exemplu:
pozitiv ( „o“, „pete negre“).
pozitiv ( „o“, „culoare roșie“),
pozitiv ( „o“, „dungi negre“).
pozitiv ( „o“, „alb-negru“).
Norme similare ar trebui să fie pentru toate animalele care urmează să fie clasificate programul.
Toate regulile sunt menținute la următorul nivel inferior, unele de predicate subordonate:
pozitiv ( „o“, „ochii îndreptate înainte“).
Programul său de lucru începe cu Termenii de utilizare
scrie ( "Conceputa animalule", X).
Sistemul apoi încearcă să stabilească adevărul sau falsitatea unei reguli la nivel înalt, la un moment dat, de exemplu, găsi un candidat care este capabil de a verifica conformitatea cu animal_is predicatul.
Determinarea validității acestei reguli atrage după sine o inspecție a tuturor faptelor subordonate din lemn și elemente de probă, care trebuie să fie adevărat pentru a confirma concluzia de bază. Pe măsură ce înaintăm în jos copac în funcție de situația programului pune întrebările potrivite la momentul potrivit pentru a furniza informațiile care lipsesc, astfel încât comportamentul ei pare rezonabil. O mare parte din regulile pozitive și negative de lucru făcut, xpositive și xnegative. Ele sunt folosite pentru a verifica atributele specifice ale animalelor care pot fi găsite în procesul de dialog și înregistrate în baza de date.
Aici este implicat mecanismul de întrebări și răspunsuri, așa că trebuie să ia în considerare aceste norme în detaliu. Următoarele este partea relevantă a programului.
pozitiv (X, Y): -% răspuns pozitiv detectat
xpositive (X, Y). % De baze de date
pozitiv (X, Y): - xnegative (X, Y). nu reușesc. % Răspunsul negativ este găsit
pozitiv (X, Y): -% pune o întrebare pentru care
Nu (xnegative (X, Y)),% așteptat un răspuns pozitiv
scrie (X, "este", Y, '\ n'),
ans_pos (X, Y, Răspuns).
ans_pos (X, Y, 'n'): - assertz (xnegative (X, Y)). nu reușesc.
În cazul în care mecanismul de retragere ajunge la punctul în care doriți să aflați dacă animalul stabilit un atribut, se utilizează termeni pozitivi și negativi. (Aici ne-am dat predicat pozitiv, care corespunde valorii pozitive a unui atribut. O lucrare similară pentru el predicat negativ este înregistrat simetric.)
Tot ce locurile de program din baza de date are întotdeauna forma unei perechi constând dintr-un verb și proprietăți, de exemplu:
Prin urmare, este ușor de a crea o propoziție corect gramatical pentru prezentarea la utilizator prin punerea cuvântul „l“ între verbul și proprietate. Utilizatorul este de natură să introducă caractere „y“ sau „n“ ca răspuns la cerere, iar memoria, în general, va aduce informații în baza de date folosind una din cele două predicate:
Deci, dacă doriți să reporniți programul, trebuie mai întâi pentru a șterge baza de date a răspunsurilor la întrebările puse de comportamentul ultimului dialog. Ei continuă să fie în baza de date și va afecta următoarele rezultate, în cazul în care acestea nu sunt eliminate.