Structura unui Program ProLog

Imagine preview
(6/10 din 4 voturi)

Acest laborator prezinta Structura unui Program ProLog.
Mai jos poate fi vizualizat un extras din document (aprox. 2 pagini).

Arhiva contine 4 fisiere doc, pro de 8 pagini (in total).

Profesor: Iordan Anca

Iti recomandam sa te uiti bine pe extras si pe imaginile oferite iar daca este ceea ce-ti trebuie pentru documentarea ta, il poti descarca.

Fratele cel mare te iubeste, acest download este gratuit. Yupyy!

Domeniu: Inteligenta Artificiala

Extras din document

Structura unui program VISUAL PROLOG

Un program PROLOG conţine 4 secţiuni de bază:

“clauses”

“predicates”

“domains”

“goal”

Secţiunea “clauses” conţine faptele şi regulile cu care va opera PROLOG pentru satisfacerea interogărilor.

Secţiunea “predicates” este secţiunea în care se declară predicatele şi domeniile (tipurile) argumentelor.

Secţiunea “domains” cuprinde declarea domeniilor (tipurilor) utilizate în program şi care nu sunt domenii standard.

Secţiunea “goal” este secţiunea în care se fac interogările.

Secţiunea “CLAUSES”

Clauzele (faptele şi regulile) pentru un predicat trebuie amplasate împreună în secţiunea CLAUSES. O secvenţă de fapte şi reguli care definesc un predicat poartă numele de procedură.

Atunci când răspunde la o interogare, Visual Prolog va începe cu începutul secţiunii, „clauses” căutând o potrivire cu toate faptele şi regulile din această secţiune.

Secţiunea „PREDICATES”

Atunci când se defineşte un predicat în secţiunea clauses a unui program Visual Prolog, trebuie în prealabil declarat în secţiunea predicates prin care se comunică programului Visual Prolog despre ce este vorba. Există şi predicate predefinite în Visual Prolog care nu trebuie redeclarate. De asemenea vor trebui precizate domeniile argumentelor predicatului. Declararea unui predicat se face după sintaxa:

nume_predicat(tip_argument1, tip_argument2, ... )

Domeniile utilizate în declararea unui argument sunt fie domenii standard, fie domenii care au fost declarate în secţiunea DOMAINS.

Numele predicatelor trebuie să înceapă cu literă, urmată apoi de o secvenţă de litere, cifre şi eventual caracterul _ „underscore”. Nu are importanţă dacă literele utilizate sunt litere mari sau mici dar este recomandabil ca prima literă să fie literă mică, deoarece alte versiuni ale limbajului Prolog nu acceptă literele mari ca primă literă în numele unui predicat. Numele unui predicat nu poate depăşi 250 de caractere.

Exemple de nume de predicate:

Nume corecte de predicate Nume incorecte de predicate

fact [fact]

este_un *este_un*

are_o are/o

listaDeVerificare lista-De-Verificare

choose_Menu_Item choose Menu Item

predicateName predicate<Name>

Exemple

Se poate declara un predicat cu denumirea my_predicate(symbol, integer)în secţiunea predicates:

PREDICATES

my_predicate(symbol, integer)

pentru care nu este necesară declararea domeniilor argumentelor în secţiunea domains deoarece symbol şi integer sunt domenii standard. Dacă însă se declară predicatul my_predicate(name, number) în secţiunea predicates:

PREDICATES

my_predicate(name, number)

va fi necesară o declaraţie pentru cele două domenii name şi number care nu sunt domenii standard. Presupunând că se doreşte ca aceste domenii să corespundă domeniilor standard symbol şi integer, secţiunea declarării domeniilor va fi:

DOMAINS

name = symbol

number = integer

PREDICATES

my_predicate(name, number)

Următoarea secţiune de program prezintă mai multe astfel de declaraţii de predicate şi de domenii:

DOMAINS

persoana, activitate = symbol

masina, marca, culoare = symbol

kilometri, vechime, pret = integer

PREDICATES

place(persoana, activitate)

parinte(persoana, persoana)

poate_cumpara(persoana, masina)

masina(marca, kilometri, vechime, culoare, pret)

verde(symbol)

clasifica(symbol, integer)

Această secţiune de program specifică următoarele informaţii despre predicate şi despre argumentele lor:

Predicatul place are două argumente (persoana şi activitate), ambele aparţinând domeniului symbol (ceea ce înseamnă că valorile lor sunt alfanumerice)

Predicatul parinte are două argumente de tip persoana, unde domeniul persoana este de tip symbol.

Predicatul poate_cumpara are două argumente persoana şi masina, care sunt ambele de tip symbol.

Predicatul masina are 5 argumente marca şi culoare aparţin domeniului symbol, în timp ce kilometri, vechime şi cost aparţin domeniului integer.

Predicatul clasifica, are două argumente, ambele aparţinând domeniilor standard symbol şi integer, astfel încât nu mai este necesară declararea tipului acestora în secţiunea domains.

Fisiere in arhiva (4):

  • Structura unui Program ProLog.doc
  • ia2p2.pro
  • ia2p3.pro
  • ia2p1.pro