Saugojimas ir atkūrimas Spausdinti
( 0 Votes )
Parašė Aurimas Šimkus   

Kartais gali būti pravartu kur nors išsaugoti sukurtus arba mdifikuotus dinaminius termus. Vienas iš variantų - juos saugoti tekstiniuose failuose.

 

Pavyzdys. 

 

Dinaminės žinių bazės išsaugojimas 

Išsaugojimo algoritmas susideda iš triju veiksmų:

  1. failo atidarymas termų įrašymui -     tell('kelias_iki_failo'),
  2. dinaminių termų išvardijimas (faile) - listing(P), kur P - vardijamų termų aprašas,
  3. failo išsaugojimas ir uždarymas -     told.

Reikėtų atkreipti dėmesį į predikąto listing parametrą P. Gali būti naudojami trys variantai:

  • parametras P nenaudojamas. Tokiu atveju išvardijami visi šiuo (programos runtime) metu naudojami dinaminiai termai.
  • parametre P nurodomas termo pavadinimas (faktorius). Tokiu atveju išvardijami šio faktoriaus termai.
  • parametre P nurodomi termo pavadinimas ir parametrų skaičius tokiu formatu: faktorius/par_sk. Tokiu atveju išvardijami tik termai, pagal nurodyta faktoriu ir turintys nurodyta parametrų skaičių.

Čia pateiktas tradicinis failo įrašymo būdas. Jeigu prireiktų žinių bazę įrašyti kompleksinių būdu, pasiskaitykite apie kitus failo įrašymo būdus.

 

Dinaminės žinių bazės atkūrimas 

Išsaugoto dinaminių termų failo užkrovimas interpretatoriųje arba programos vykdymo metu nesiskiria nuo Prolog kodo (source) failo užkrovimo. Naudojamas failo konsultavimas, predikatas consult.

Dinaminės žinių bazės užkrovimas, du ekvivalentūs variantai:

consult( A ). /*A - atomas.*/
[ A ]. /*Trumpesnis variantas. Naudojimo taisyklės nesikeičia.*/

Jei failas - Prolog vykdomajame kataloge, užtenka nurodyti jo pavadinime. Jei ne - galima tarp apostrofų nurodyti pilną kelią iki jo.