Esempio d'uso di Patente:


Welcome to SWI-Prolog (Version 2.8.2)
Copyright (c) 1993-1997 University of Amsterdam.  All rights reserved.

For help, use ?- help(Topic). or ?- apropos(Word).

1 ?- [klone].
[WARNING: (/home/magoo/diploma/dia388/kl1/klone.pl:8)
	Attempt to redefine a system predicate: not/1
	Use :- redefine_system_predicate(+Head) if this is intended]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone.pl:9)
	Attempt to redefine a system predicate: \=/2
	Use :- redefine_system_predicate(+Head) if this is intended]
         WELCOME
                 IN KLONE !! 
[WARNING: (/home/magoo/diploma/dia388/kl1/klone1.pl:13)
	Singleton variables: C]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone1.pl:35)
	Singleton variables: E]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone1.pl:56)
	Singleton variables: C]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone1.pl:62)
	Singleton variables: C]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone1.pl:65)
	Singleton variables: C]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone1.pl:86)
	Singleton variables: B]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone1.pl:95)
	Singleton variables: B, D]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone1.pl:138)
	Singleton variables: B]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone1.pl:148)
	Singleton variables: B, E]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone1.pl:171)
	Singleton variables: B]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone1.pl:182)
	Singleton variables: B, F]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone1.pl:210)
	Singleton variables: B]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone1.pl:222)
	Singleton variables: B, F, G]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone1.pl:241)
	Singleton variables: C, D]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone1.pl:248)
	Singleton variables: B]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone1.pl:368)
	Singleton variables: K]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone1.pl:392)
	Singleton variables: B]
klone1 compiled, 0.08 sec, 16,736 bytes.
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:7)
	Singleton variables: D, E]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:10)
	Singleton variables: C, D, E]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:17)
	Singleton variables: E]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:38)
	Singleton variables: D]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:42)
	Singleton variables: E]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:57)
	Singleton variables: D, E, F, G, H]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:61)
	Singleton variables: F, G, H, K, O, R, U, V]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:73)
	Singleton variables: E, F, G, J, M]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:81)
	Singleton variables: F, G, J, N, Q, T]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:113)
	Singleton variables: D, E, F, G]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:120)
	Singleton variables: D, F, G, H]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:172)
	Singleton variables: D, E]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:175)
	Singleton variables: D, F]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:188)
	Singleton variables: D, E]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:191)
	Singleton variables: D, F, G, H]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:208)
	Singleton variables: A]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:209)
	Singleton variables: A]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:210)
	Singleton variables: A, B]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:211)
	Singleton variables: A, B]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:212)
	Singleton variables: A, B]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:213)
	Singleton variables: A, B]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:214)
	Singleton variables: A, B]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:215)
	Singleton variables: A, B, C, D]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:216)
	Singleton variables: A, B, C, D]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:217)
	Singleton variables: A, B, C, D]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:218)
	Singleton variables: A, B, C]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:219)
	Singleton variables: A, B, C]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:220)
	Singleton variables: A, B, C]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:221)
	Singleton variables: A, B, C]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:272)
	Singleton variables: B, C]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:274)
	Singleton variables: B]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:276)
	Singleton variables: A]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:278)
	Singleton variables: B, C]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone2.pl:280)
	Singleton variables: A, C]
klone2 compiled, 0.10 sec, 13,148 bytes.
[WARNING: (/home/magoo/diploma/dia388/kl1/klone3.pl:110)
	Singleton variables: F, I]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone3.pl:134)
	Singleton variables: A, C]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone3.pl:154)
	Singleton variables: C, E]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone3.pl:159)
	Singleton variables: A]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone3.pl:163)
	Singleton variables: A]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone3.pl:167)
	Singleton variables: A]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone3.pl:171)
	Singleton variables: A]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone3.pl:176)
	Singleton variables: A]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone3.pl:181)
	Singleton variables: A, B]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone3.pl:243)
	Singleton variables: E, H]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone3.pl:340)
	Singleton variables: D]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone3.pl:355)
	Singleton variables: D, E, F]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone3.pl:367)
	Singleton variables: D]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone3.pl:383)
	Singleton variables: D]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone3.pl:389)
	Singleton variables: D, E, F]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone3.pl:431)
	Singleton variables: A]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone3.pl:448)
	Singleton variables: A]
klone3 compiled, 0.11 sec, 18,060 bytes.
[WARNING: (/home/magoo/diploma/dia388/kl1/klone4.pl:10)
	Singleton variables: C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, L1]
[WARNING: (/home/magoo/diploma/dia388/kl1/klone4.pl:143)
	Singleton variables: C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, L1]
klone4 compiled, 0.04 sec, 7,556 bytes.
[WARNING: (/home/magoo/diploma/dia388/kl1/klvarie.pl:23)
	Singleton variables: Value]
[WARNING: (/home/magoo/diploma/dia388/kl1/klvarie.pl:35)
	Singleton variables: Ir, Ic, V]
[WARNING: (/home/magoo/diploma/dia388/kl1/klvarie.pl:61)
	Singleton variables: Gc]
[WARNING: (/home/magoo/diploma/dia388/kl1/klvarie.pl:64)
	Singleton variables: Value, Ir, Gc]
klvarie compiled, 0.03 sec, 3,192 bytes.
   start loading...

READY 

klone compiled, 0.38 sec, 60,688 bytes.

Yes
2 ?- [patente].
[WARNING: (/home/magoo/diploma/dia388/kl1/max.pl:201)
	Singleton variables: Value]
[WARNING: (/home/magoo/diploma/dia388/kl1/max.pl:201)
	Redefined: stampa_ruoli/2]
[WARNING: (/home/magoo/diploma/dia388/kl1/max.pl:211)
	Redefined: stampa_valore/3]
[WARNING: (/home/magoo/diploma/dia388/kl1/max.pl:213)
	Singleton variables: Ir, Ic, V]
max compiled, 0.03 sec, 7,348 bytes.

Yes
3 ?- inizializza.

   >>  generic_concept(thing) 


   >>  generic_concept(doc_identita) 


   >>  generic_concept(testo) 


   >>  generic_concept(data) 


   >>  has_super_concept(doc_identita, thing) 


   >>  has_super_concept(testo, thing) 


   >>  has_super_concept(data, thing) 


   >>  generic_role ( cognome ) 


   >>  has_role(doc_identita, cognome) 


   >>  generic_role ( nome ) 


   >>  has_role(doc_identita, nome) 


   >>  generic_role ( data_nascita ) 


   >>  has_role(doc_identita, data_nascita) 


   >>  generic_role ( luogo_nascita ) 


   >>  has_role(doc_identita, luogo_nascita) 


   >>  generic_role ( residenza ) 


   >>  has_role(doc_identita, residenza) 


   >>  generic_role ( via ) 


   >>  has_role(doc_identita, via) 


   >>  has_vr(cognome, doc_identita, testo) 


   >>  has_vr(nome, doc_identita, testo) 


   >>  has_vr(data_nascita, doc_identita, data) 


   >>  has_vr(luogo_nascita, doc_identita, testo) 


   >>  has_vr(residenza, doc_identita, testo) 


   >>  has_vr(via, doc_identita, testo) 


   >>  has_number(cognome, doc_identita, [1, 1]) 


   >>  has_number(nome, doc_identita, [1, 1]) 


   >>  has_number(data_nascita, doc_identita, [1, 1]) 


   >>  has_number(luogo_nascita, doc_identita, [1, 1]) 


   >>  has_number(residenza, doc_identita, [1, 1]) 


   >>  has_number(via, doc_identita, [1, 1]) 


   >>  has_modality(nome, doc_identita, obl) 


   >>  has_modality(cognome, doc_identita, obl) 


   >>  has_modality(data_nascita, doc_identita, obl) 


   >>  has_modality(luogo_nascita, doc_identita, obl) 


   >>  has_modality(residenza, doc_identita, obl) 


   >>  has_modality(via, doc_identita, obl) 


   **  doc_identita  ** is a Generic Concept with 

     Super Concepts : 
     ------ 
     thing 
     Roles : 
     ----- 
     cognome : 
          V/R = testo 
          Num = 1 
          Mod = obl 
     data_nascita : 
          V/R = data 
          Num = 1 
          Mod = obl 
     luogo_nascita : 
          V/R = testo 
          Num = 1 
          Mod = obl 
     nome : 
          V/R = testo 
          Num = 1 
          Mod = obl 
     residenza : 
          V/R = testo 
          Num = 1 
          Mod = obl 
     via : 
          V/R = testo 
          Num = 1 
          Mod = obl 

   >>  generic_concept(patente) 


   >>  has_super_concept(patente, doc_identita) 


   >>  generic_role ( prefetto_di ) 


   >>  has_role(patente, prefetto_di) 


   >>  generic_role ( data_rilascio ) 


   >>  has_role(patente, data_rilascio) 


   >>  generic_role ( data_scadenza ) 


   >>  has_role(patente, data_scadenza) 


   >>  generic_role ( numero ) 


   >>  has_role(patente, numero) 


   >>  generic_role ( tipo ) 


   >>  has_role(patente, tipo) 


   >>  has_vr(prefetto_di, patente, testo) 


   >>  has_vr(data_rilascio, patente, data) 


   >>  has_vr(data_scadenza, patente, data) 


   >>  has_vr(numero, patente, testo) 


   >>  has_vr(tipo, patente, testo) 


   >>  has_number(prefetto_di, patente, [1, 1]) 


   >>  has_number(data_rilascio, patente, [1, 1]) 


   >>  has_number(data_scadenza, patente, [1, 1]) 


   >>  has_number(numero, patente, [1, 1]) 


   >>  has_number(tipo, patente, [1, 1]) 


   >>  has_modality(prefetto_di, patente, obl) 


   >>  has_modality(data_rilascio, patente, obl) 


   >>  has_modality(data_scadenza, patente, obl) 


   >>  has_modality(numero, patente, obl) 


   >>  has_modality(tipo, patente, obl) 


   **  patente  ** is a Generic Concept with 

     Super Concepts : 
     ------ 
     doc_identita 
     thing 
     Roles : 
     ----- 
     cognome : 
        ( from : doc_identita ) 
          V/R = testo 
          Num = 1 
          Mod = obl 
     data_nascita : 
        ( from : doc_identita ) 
          V/R = data 
          Num = 1 
          Mod = obl 
     luogo_nascita : 
        ( from : doc_identita ) 
          V/R = testo 
          Num = 1 
          Mod = obl 
     nome : 
        ( from : doc_identita ) 
          V/R = testo 
          Num = 1 
          Mod = obl 
     residenza : 
        ( from : doc_identita ) 
          V/R = testo 
          Num = 1 
          Mod = obl 
     via : 
        ( from : doc_identita ) 
          V/R = testo 
          Num = 1 
          Mod = obl 
     data_rilascio : 
          V/R = data 
          Num = 1 
          Mod = obl 
     data_scadenza : 
          V/R = data 
          Num = 1 
          Mod = obl 
     numero : 
          V/R = testo 
          Num = 1 
          Mod = obl 
     prefetto_di : 
          V/R = testo 
          Num = 1 
          Mod = obl 
     tipo : 
          V/R = testo 
          Num = 1 
          Mod = obl 

   >>  individual_concept(25 / 10 / 1975) 


   >>  individuates(25 / 10 / 1975, data) 


   >>  individual_concept(15 / 11 / 1993) 


   >>  individuates(15 / 11 / 1993, data) 


   >>  individual_concept(15 / 11 / 2003) 


   >>  individuates(15 / 11 / 2003, data) 


   >>  individual_concept(mario) 


   >>  individuates(mario, testo) 


   >>  individual_concept(rossi) 


   >>  individuates(rossi, testo) 


   >>  individual_concept(pavia) 


   >>  individuates(pavia, testo) 


   >>  individual_concept(parma) 


   >>  individuates(parma, testo) 


   >>  individual_concept(aj8b44012i4p3r) 


   >>  individuates(aj8b44012i4p3r, testo) 


   >>  individual_concept([via, cacciatori, delle, alpi]) 


   >>  individuates([via, cacciatori, delle, alpi], testo) 


   >>  individual_concept(pat1) 


   >>  individuates(pat1, patente) 


Yes

4 ?- pat1.

 >>  instance_role ( nome1 ) 


   >>  satisfies(nome1, pat1, nome, patente) 


   >>  has_value(nome1, pat1, mario) 


   >>  instance_role ( cognome1 ) 


   >>  satisfies(cognome1, pat1, cognome, patente) 


   >>  has_value(cognome1, pat1, rossi) 


   >>  instance_role ( luogo_nascita1 ) 


   >>  satisfies(luogo_nascita1, pat1, luogo_nascita, patente) 


   >>  has_value(luogo_nascita1, pat1, pavia) 


   >>  instance_role ( data_nascita1 ) 


   >>  satisfies(data_nascita1, pat1, data_nascita, patente) 


   >>  has_value(data_nascita1, pat1, 25 / 10 / 1975) 


   >>  instance_role ( residenza1 ) 


   >>  satisfies(residenza1, pat1, residenza, patente) 


   >>  has_value(residenza1, pat1, parma) 


   >>  instance_role ( via1 ) 


   >>  satisfies(via1, pat1, via, patente) 


   >>  has_value(via1, pat1, [via, cacciatori, delle, alpi]) 


   >>  instance_role ( prefetto_di1 ) 


   >>  satisfies(prefetto_di1, pat1, prefetto_di, patente) 


   >>  has_value(prefetto_di1, pat1, parma) 


   >>  instance_role ( data_rilascio1 ) 


   >>  satisfies(data_rilascio1, pat1, data_rilascio, patente) 


   >>  has_value(data_rilascio1, pat1, 15 / 11 / 1993) 


   >>  instance_role ( data_scadenza1 ) 


   >>  satisfies(data_scadenza1, pat1, data_scadenza, patente) 


   >>  has_value(data_scadenza1, pat1, 15 / 11 / 2003) 


   >>  instance_role ( numero1 ) 


   >>  satisfies(numero1, pat1, numero, patente) 


   >>  has_value(numero1, pat1, aj8b44012i4p3r) 


5 ?- has_role(patente,X).

X = tipo ;

X = numero ;

X = data_scadenza ;

X = data_rilascio ;

X = prefetto_di ;

X = via ;

X = residenza ;

X = luogo_nascita ;

X = data_nascita ;

X = nome ;

X = cognome ;

No
6 ?- has_vr(numero,patente,X).

X = testo ;

No
7 ?- has_number(prefetto_di,patente,X).

X = [1, 1] ;

No
8 ?- pretty_print(patente).

   **  patente  ** is a Generic Concept with 

     Super Concepts : 
     ------ 
     doc_identita 
     thing 
     Roles : 
     ----- 
     cognome : 
        ( from : doc_identita ) 
     data_nascita : 
        ( from : doc_identita ) 
     luogo_nascita : 
        ( from : doc_identita ) 
     nome : 
        ( from : doc_identita ) 
     residenza : 
        ( from : doc_identita ) 
     via : 
        ( from : doc_identita ) 
     data_rilascio : 
          V/R = data 
          Num = 1 
          Mod = obl 
     data_scadenza : 
          V/R = data 
          Num = 1 
          Mod = obl 
     numero : 
          V/R = testo 
          Num = 1 
          Mod = obl 
     prefetto_di : 
          V/R = testo 
          Num = 1 
          Mod = obl 
     tipo : 
          V/R = testo 
          Num = 1 
          Mod = obl 

Yes
9 ?- individual_concept(X).

X = pat1 ;

X = [via, cacciatori, delle, alpi] ;

X = aj8b44012i4p3r ;

X = parma ;

X = pavia ;

X = rossi ;

X = mario ;

X = 15 / 11 / 2003 ;

X = 15 / 11 / 1993 ;

X = 25 / 10 / 1975 ;

No
10 ?- individuates(X,Y).

X = pat1
Y = patente ;

X = [via, cacciatori, delle, alpi]
Y = testo ;

X = aj8b44012i4p3r
Y = testo ;

X = parma
Y = testo ;

X = pavia
Y = testo ;

X = rossi
Y = testo ;

X = mario
Y = testo ;

X = 15 / 11 / 2003
Y = data ;

X = 15 / 11 / 1993
Y = data ;

X = 25 / 10 / 1975
Y = data ;

X = pat1
Y = doc_identita ;

X = pat1
Y = thing ;

X = [via, cacciatori, delle, alpi]
Y = thing ;

X = aj8b44012i4p3r
Y = thing ;

X = parma
Y = thing ;

X = pavia
Y = thing ;

X = rossi
Y = thing ;

X = mario
Y = thing ;

X = 15 / 11 / 2003
Y = thing ;

X = 15 / 11 / 1993
Y = thing ;

X = 25 / 10 / 1975
Y = thing ;

No

11 ?- stampa_ruoli(pat1,X).
numero1 e_ un instance_role 
 che individua un numero di patente  con valore aj8b44012i4p3r
data_scadenza1 e_ un instance_role 
 che individua un data_scadenza di patente  con valore 15 / 11 / 2003
data_rilascio1 e_ un instance_role 
 che individua un data_rilascio di patente  con valore 15 / 11 / 1993
prefetto_di1 e_ un instance_role 
 che individua un prefetto_di di patente  con valore parma
via1 e_ un instance_role 
 che individua un via di patente  con valore [via, cacciatori, delle, alpi]
residenza1 e_ un instance_role 
 che individua un residenza di patente  con valore parma
data_nascita1 e_ un instance_role 
 che individua un data_nascita di patente  con valore 25 / 10 / 1975
luogo_nascita1 e_ un instance_role 
 che individua un luogo_nascita di patente  con valore pavia
cognome1 e_ un instance_role 
 che individua un cognome di patente  con valore rossi
nome1 e_ un instance_role 
 che individua un nome di patente  con valore mario