3.3 Teoria de la demostració - La Salle
3.3 Teoria de la demostració - La Salle
3.3 Teoria de la demostració - La Salle
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Operacions sobre facts<br />
Els fets que formen part d’una base da<strong>de</strong>s po<strong>de</strong>n estar especificats en temps <strong>de</strong><br />
compi<strong>la</strong>ció (estàticament) en <strong>la</strong> secció c<strong>la</strong>uses i <strong>de</strong>sprés, durant l’execució, se n’hi<br />
po<strong>de</strong>n afegir <strong>de</strong> nous o esborrar-ne.<br />
Visual Prolog permet mitjançant predicats pre<strong>de</strong>finits fer les següents operacions:<br />
- Afegir nous fets (assert)<br />
- Esborrar fets (retract)<br />
- Llegir un conjunt <strong>de</strong> fets <strong>de</strong> fitxer (consult)<br />
- Guardar un conjunt <strong>de</strong> fets a fitxer (save)<br />
Fixeu-vos que per actualitzar alguna informació d’un fet, hem d’esborrar i afegir. És a<br />
dir, no existeix cap operació d’actualització.<br />
Predicats assert. Afegint-hi fets<br />
Po<strong>de</strong>m afegir fets a qualssevol <strong>de</strong> les bases <strong>de</strong> da<strong>de</strong>s internes a través <strong>de</strong>ls predicats<br />
assert o a través <strong>de</strong>ls predicats consult.<br />
Hi ha tres predicats assert que permeten d’afegir-hi un fet en temps d’execució:<br />
asserta(El fet que hi volem afegir)<br />
asserta(El fet que hi volem afegir, NomDatabase)<br />
assertz(El fet que hi volem afegir)<br />
assertz(El fet que hi volem afegir, NomDatabase)<br />
assert(El fet que hi volem afegir)<br />
assert(El fet que hi volem afegir, NomDatabase)<br />
Com po<strong>de</strong>u observar cadascun <strong>de</strong>ls predicats té dues sintaxis, una en el cas <strong>de</strong> tenir<br />
una so<strong>la</strong> base da<strong>de</strong>s sense nom i l’altra en el cas <strong>de</strong> tenir diverses bases <strong>de</strong> da<strong>de</strong>s<br />
perquè puguem especificar on volem afegir.<br />
Recor<strong>de</strong>u que l’ordre <strong>de</strong>ls fets és important a l’hora d’executar el programa, per tant, el<br />
programador pot escollir introduir el fet <strong>de</strong> primer (asserta) o d’últim (assertz). Assert<br />
es comporta com assertz.<br />
Predicat consult. Llegint fets<br />
Una altra manera d’afegir-hi fets, és llegir-los d’un fitxer. Això permet tenir fitxers (tipus<br />
text) amb fets que po<strong>de</strong>n ser introduïts durant l’execució <strong>de</strong>l programa.<br />
Restriccions sobre el fitxer <strong>de</strong> fets:<br />
1. No po<strong>de</strong>n haver-hi caràcters en majúscules ni espais. Només si són en strings.<br />
2. No po<strong>de</strong>n haver-hi comentaris ni línies bui<strong>de</strong>s.<br />
3. No po<strong>de</strong>n haver-hi symbols sense dobles cometes.<br />
4. Un fet per línia i acabant amb un punt.<br />
Els predicats que permeten llegir són:<br />
131