Skip to content

Commit 5757b79

Browse files
committed
chore(website): add diagrams to detailed design
1 parent a09ec3a commit 5757b79

File tree

13 files changed

+25
-0
lines changed

13 files changed

+25
-0
lines changed

docs/docs/documentazione/detailed_design.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ Di seguito verrà riportato il design dettagliato della libreria.
99

1010
## Term
1111

12+
![](/img/diagrams/Term.png)
13+
1214
Il trait Term rappresenta il concetto di termine in Prolog. Costituisce l'entità fondamentale dalla quale ereditano tutti
1315
gli altri costrutti del linguaggio prolog.
1416

@@ -17,6 +19,8 @@ determina se si tratta o meno di un termine base.
1719

1820
## Constant
1921

22+
![](/img/diagrams/constant.png)
23+
2024
Una costante è un termine che racchiude un valore che può essere alfanumerico o numerico.
2125
Le costanti alfanumeriche sono atomi rappresentati dal trai Atom, mentre le costanti numeriche sono
2226
rappresentate dal trait Numeric.
@@ -25,10 +29,14 @@ Un atomo è un caso particolare di termine composto.
2529

2630
## Variabili
2731

32+
![](/img/diagrams/Variable.png)
33+
2834
Una variabile ha un nome particolare oppure è anonima (il suo nome è `_`).
2935

3036
## Struct
3137

38+
![](/img/diagrams/Struct.png)
39+
3240
I termini composti, detti anche strutture, sono rappresentati dal trait Struct. Ogni termine è caratterizzato da un funtore, ossia un nome di
3341
predicato, e dai sui argomenti, che sono a loro volta dei termini. Il numero di argomenti di cui è costituito un termine
3442
composto determina l'arità del termine composto.
@@ -51,6 +59,8 @@ considerato una regola il cui corpo è il l'atomo `true`.
5159

5260
### RecursiveStruct
5361

62+
![](/img/diagrams/RecursiveStructs.png)
63+
5464
Alcuni termini composti hanno una struttura ricorsiva. Sono strutture i cui argomenti includono in maniera ricorsiva
5565
strutture con lo stesso predicato.
5666
Da una struttura è sempre possibile ottenere la lista lineare degli argomenti.
@@ -64,12 +74,16 @@ La maggior parte delle strutture ricorsive sono binarie (BinaryRecursiveStruct).
6474

6575
## Theory
6676

77+
![](/img/diagrams/Theory.png)
78+
6779
Una teoria è rappresentata dal trait Theory. Una teoria è una lista di clausole.
6880

6981
## Modello del dominio riconciliato
7082

7183
## PrologProgram
7284

85+
![](/img/diagrams/PrologProgram.png)
86+
7387
Un programma prolog (PrologProgram) comprende:
7488

7589
* Una teoria dinamica
@@ -78,6 +92,8 @@ Un programma prolog (PrologProgram) comprende:
7892

7993
## Solver
8094

95+
![](/img/diagrams/Solver.png)
96+
8197
Un Solver risolve un goal o un programma prolog e restituisce le sue soluzioni.
8298
Un solver può:
8399

@@ -86,6 +102,8 @@ Un solver può:
86102

87103
### Solution
88104

105+
![](/img/diagrams/Solution.png)
106+
89107
Una soluzione di un programma prolog può:
90108

91109
* Essere una soluzione positiva (Yes) (il goal è una conseguenza logica della teoria).
@@ -94,11 +112,15 @@ Una soluzione di un programma prolog può:
94112

95113
### Substitution
96114

115+
![](/img/diagrams/Substitution.png)
116+
97117
In caso di soluzione positiva è possibile che il solver fornisca una sostituzione. Una sostituzione
98118
mappa variabili a termini.
99119

100120
## PrologDSL
101121

122+
![](/img/diagrams/PrologDSL.png)
123+
102124
Il trait PrologDSL contiene i metodi e i meccanismi per poter esprimere i concetti appartenenti al mondo Prolog.
103125
Include infatti dei metodi per costruire fatti, regole, atomi e variabili ma anche liste, congiunzioni e disgiunzioni
104126
di goal.
@@ -112,3 +134,6 @@ termine prolog.
112134

113135
TermVisitor è il trait che, se implementato da un termine o da un oggetto convertibile, permette di visitare l'albero
114136
della struttura del termine.
137+
138+
139+
![](/img/diagrams/TermConverterAndVisitor.png)
14.8 KB
Loading
4.68 KB
Loading
27.6 KB
Loading

docs/static/img/diagrams/Solution.png

5.13 KB
Loading

docs/static/img/diagrams/Solver.png

7.85 KB
Loading

docs/static/img/diagrams/Struct.png

22.5 KB
Loading
5.42 KB
Loading

docs/static/img/diagrams/Term.png

6.14 KB
Loading
Loading

docs/static/img/diagrams/Theory.png

4.39 KB
Loading

docs/static/img/diagrams/Variable.png

6.29 KB
Loading

docs/static/img/diagrams/contant.png

13 KB
Loading

0 commit comments

Comments
 (0)