Structura unui program prolog

Previzualizare laborator:

Extras din laborator:

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.

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • Structura unui Program ProLog.doc
  • ia2p2.pro
  • ia2p3.pro
  • ia2p1.pro
Alte informații:
Tipuri fișiere:
doc, pro
Nota:
4/10 (2 voturi)
Nr fișiere:
4 fisiere
Pagini (total):
8 pagini
Imagini extrase:
8 imagini
Nr cuvinte:
2 800 cuvinte
Nr caractere:
15 747 caractere
Marime:
21.16KB (arhivat)
Publicat de:
NNT 1 P.
Nivel studiu:
Facultate
Tip document:
Laborator
Domeniu:
Inteligența Artificială
Predat:
la facultate
Materie:
Inteligența Artificială
Profesorului:
Iordan Anca
Sus!