forked from LogicalContracts/LogicalEnglish
-
Notifications
You must be signed in to change notification settings - Fork 0
/
cittadinanza_ita.pl
executable file
·66 lines (52 loc) · 1.59 KB
/
cittadinanza_ita.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
:- module('cittadinanza_ita+http://tests.com',[]).
it("il linguaggio destinazione è: scasp.
i modelli sono:
*una persona* ha la cittadinanza italiana,
*una persona* è padre di *una persona*,
*una persona* è madre di *una persona*,
*una persona* è nato in italia,
*una persona* è apolide,
il padre di *una persona* è sconosciuto,
la madre di *una persona* è sconosciuta,
*una persona* segue la cittadinanza di *una persona*.
la base di conoscenza cittadinanza_ita include:
una persona A è genitore di una persona B
se A è madre di B
o A è padre di B.
una persona A ha la cittadinanza italiana
se una persona B è genitore di A
e B ha la cittadinanza italiana.
una persona A ha la cittadinanza italiana
se A è nato in italia
e il padre di A è sconosciuto
e la madre di A è sconosciuta.
una persona A ha la cittadinanza italiana
se A è nato in italia
e non risulta che
una persona B è genitore di A.
una persona A ha la cittadinanza italiana
se A è nato in italia
e per ogni caso in cui
una persona B è genitore di A
è provato che
B è apolide.
una persona A ha la cittadinanza italiana
se A è nato in italia
e per ogni caso in cui
una persona B è genitore di A
è provato che
A non segue la cittadinanza di B.
scenario giuseppe è:
felice è padre di giuseppe.
tatiana è madre di giuseppe.
felice ha la cittadinanza italiana.
tatiana ha la cittadinanza italiana.
scenario filippo è:
filippo è nato in italia.
domanda uno è:
quale persona ha la cittadinanza italiana.
").
/** <examples>
?- answer(uno, with(giuseppe), le(E), R).
?- risposta uno con giuseppe.
*/