Esempio d'uso di Computer:


 
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].
  start loading...

READY 

klone compiled, 0.32 sec, 60,572 bytes.

Yes
2 ?- [computer].
computer compiled, 0.03 sec, 9,780 bytes.

Yes
3 ?- inizializza.

   >>  generic_concept(cosa) 


   >>  generic_concept(pc_80) 


   >>  generic_concept(corpo) 


   >>  generic_concept(input) 


   >>  generic_concept(output) 


   >>  generic_concept(in_out) 


   >>  generic_concept(memorie) 


   >>  generic_concept(u_elabo) 


   >>  has_super_concept(pc_80, cosa) 


   >>  has_super_concept(corpo, cosa) 


   >>  has_super_concept(input, cosa) 


   >>  has_super_concept(output, cosa) 


   >>  has_super_concept(in_out, cosa) 


   >>  has_super_concept(memorie, cosa) 


   >>  has_super_concept(u_elabo, cosa) 


   >>  generic_role ( tastiera ) 


   >>  has_role(pc_80, tastiera) 


   >>  generic_role ( scatola ) 


   >>  has_role(pc_80, scatola) 


   >>  generic_role ( video ) 


   >>  has_role(pc_80, video) 


   >>  generic_role ( drive ) 



   >>  has_role(pc_80, drive) 


   >>  generic_role ( memoria ) 


   >>  has_role(pc_80, memoria) 


   >>  generic_role ( c_p_u ) 


   >>  has_role(pc_80, c_p_u) 


   >>  has_vr(scatola, pc_80, corpo) 


   >>  has_vr(tastiera, pc_80, input) 


   >>  has_vr(video, pc_80, output) 


   >>  has_vr(drive, pc_80, in_out) 


   >>  has_vr(memoria, pc_80, memorie) 


   >>  has_vr(c_p_u, pc_80, u_elabo) 


   >>  has_number(tastiera, pc_80, [1, 1]) 


   >>  has_number(scatola, pc_80, [1, 1]) 


   >>  has_number(video, pc_80, [1, 1]) 


   >>  has_number(drive, pc_80, [1, 2]) 


   >>  has_number(memoria, pc_80, [1, 1]) 


   >>  has_number(c_p_u, pc_80, [1, 1]) 


   >>  has_modality(tastiera, pc_80, obl) 


   >>  has_modality(video, pc_80, obl) 


   >>  has_modality(scatola, pc_80, obl) 


   >>  has_modality(drive, pc_80, obl) 


   >>  has_modality(memoria, pc_80, obl) 


   >>  has_modality(c_p_u, pc_80, obl) 


   >>  generic_concept(pc_85) 


   >>  has_super_concept(pc_85, pc_80) 


   >>  generic_role ( disco_fisso ) 


   >>  has_role(pc_85, disco_fisso) 


   >>  generic_role ( co_pro_mat ) 


   >>  has_role(pc_85, co_pro_mat) 


   >>  generic_role ( stampante ) 


   >>  has_role(pc_85, stampante) 


   >>  has_vr(disco_fisso, pc_85, memorie) 


   >>  has_vr(stampante, pc_85, output) 


   >>  has_vr(co_pro_mat, pc_85, u_elabo) 


   >>  has_number(disco_fisso, pc_85, [0, 1]) 


   >>  has_number(stampante, pc_85, [0, 1]) 


   >>  has_number(co_pro_mat, pc_85, [0, 1]) 


   >>  generic_concept(pc_90) 


   >>  has_super_concept(pc_90, pc_85) 


   >>  generic_role ( mouse ) 


   >>  has_role(pc_90, mouse) 


   >>  generic_role ( scheda_audio ) 


   >>  has_role(pc_90, scheda_audio) 


   >>  generic_role ( lettore_cd ) 



   >>  has_role(pc_90, lettore_cd) 


   >>  generic_role ( cash ) 


   >>  has_role(pc_90, cash) 


   >>  has_vr(mouse, pc_90, input) 


   >>  has_vr(cash, pc_90, memorie) 


   >>  has_vr(scheda_audio, pc_90, output) 


   >>  has_vr(lettore_cd, pc_90, input) 


   >>  has_number(disco_fisso, pc_90, [1, 2]) 


   >>  has_number(lettore_cd, pc_90, [0, 1]) 


   >>  has_number(scheda_audio, pc_90, [0, 1]) 


   >>  has_number(drive, pc_90, [1, 1]) 


   >>  has_number(mouse, pc_90, [1, 1]) 


   >>  has_modality(disco_fisso, pc_90, obl) 


   >>  has_modality(stampante, pc_90, obl) 


   >>  has_modality(co_pro_mat, pc_90, obl) 


   >>  has_modality(mouse, pc_90, obl) 


   >>  generic_concept(pc_95) 


   >>  has_super_concept(pc_95, pc_90) 


   >>  generic_role ( modem ) 


   >>  has_role(pc_95, modem) 


   >>  generic_role ( zip ) 


   >>  has_role(pc_95, zip) 


   >>  generic_role ( tele_camera ) 


   >>  has_role(pc_95, tele_camera) 


   >>  has_vr(modem, pc_95, in_out) 


   >>  has_vr(zip, pc_95, in_out) 


   >>  has_vr(tele_camera, pc_95, in_out) 


   >>  has_number(modem, pc_95, [1, 1]) 


   >>  has_number(zip, pc_95, [1, 1]) 


   >>  has_number(tele_camera, pc_95, [1, 1]) 


   >>  has_modality(lettore_cd, pc_95, obl) 


   >>  has_modality(scheda_audio, pc_95, obl) 


   >>  has_modality(cash, pc_95, obl) 


   >>  generic_concept(pc_int) 


   >>  has_super_concept(pc_int, pc_95) 


   >>  has_modality(modem, pc_95, obl) 


   >>  generic_concept(internet) 


   >>  has_super_concept(internet, cosa) 


   >>  generic_role ( siti ) 


   >>  has_role(internet, siti) 


   >>  has_vr(siti, internet, pc_int) 


   >>  has_modality(siti, internet, obl) 


   >>  individual_concept(hd_80mb) 


   >>  individuates(hd_80mb, disco_fisso) 


   >>  individual_concept(ram_2mb) 


   >>  individuates(ram_2mb, memoria) 


   >>  individual_concept(cashe_2k) 


   >>  individuates(cashe_2k, cashe) 


   >>  individual_concept(drive_144) 


   >>  individuates(drive_144, drive) 


   >>  individual_concept(video_13p) 


   >>  individuates(video_13p, video) 


   >>  individual_concept(epson_100) 


   >>  individuates(epson_100, stampante) 


   >>  individual_concept(mouse_ibm) 


   >>  individuates(mouse_ibm, mouse) 


   >>  individual_concept(keyboard_ibm) 


   >>  individuates(keyboard_ibm, tastiera) 


   >>  individual_concept(corpo_ps1) 


   >>  individuates(corpo_ps1, scatola) 


   >>  individual_concept(intel80386) 


   >>  individuates(intel80386, c_p_u) 


   >>  individual_concept(intel80387) 


   >>  individuates(intel80387, co_pro_mat) 


   >>  individual_concept(ps1) 


   >>  individuates(ps1, pc_90) 



   >>  instance_role ( hd1 ) 


   >>  satisfies(hd1, ps1, disco_fisso, pc_90) 


   >>  has_value(hd1, ps1, hd_80mb) 


   >>  instance_role ( ram1 ) 


   >>  satisfies(ram1, ps1, memoria, pc_90) 


   >>  has_value(ram1, ps1, ram_2mb) 


   >>  instance_role ( cashe1 ) 


   >>  satisfies(cashe1, ps1, cashe, pc_90) 


   >>  has_value(cashe1, ps1, cashe_2k) 


   >>  instance_role ( drive1 ) 


   >>  satisfies(drive1, ps1, drive, pc_90) 


   >>  has_value(drive1, ps1, drive_144) 


   >>  instance_role ( video1 ) 


   >>  satisfies(video1, ps1, video, pc_90) 


   >>  has_value(video1, ps1, video_13p) 


   >>  instance_role ( stamp1 ) 


   >>  satisfies(stamp1, ps1, stampante, pc_90) 


   >>  has_value(stamp1, ps1, epson_100) 


   >>  instance_role ( mouse1 ) 


   >>  satisfies(mouse1, ps1, mouse, pc_90) 


   >>  has_value(mouse1, ps1, mouse_ibm) 


   >>  instance_role ( tas1 ) 


   >>  satisfies(tas1, ps1, tastiera, pc_90) 


   >>  has_value(tas1, ps1, keyboard_ibm) 


   >>  instance_role ( corp1 ) 


   >>  satisfies(corp1, ps1, scatola, pc_90) 


   >>  has_value(corp1, ps1, corpo_ps1) 


   >>  instance_role ( cpu1 ) 


   >>  satisfies(cpu1, ps1, c_p_u, pc_90) 


   >>  has_value(cpu1, ps1, intel80386) 


   >>  instance_role ( copro1 ) 


   >>  satisfies(copro1, ps1, co_pro_mat, pc_90) 


   >>  has_value(copro1, ps1, intel80387) 


Yes
4 ?- stampa_ps1.
copro1 e_ un instance_role 
 che individua il co_pro_mat del PS1   tipo intel80387
cpu1 e_ un instance_role 
 che individua il c_p_u del PS1   tipo intel80386
corp1 e_ un instance_role 
 che individua il scatola del PS1   tipo corpo_ps1
tas1 e_ un instance_role 
 che individua il tastiera del PS1   tipo keyboard_ibm
mouse1 e_ un instance_role 
 che individua il mouse del PS1   tipo mouse_ibm
stamp1 e_ un instance_role 
 che individua il stampante del PS1   tipo epson_100
video1 e_ un instance_role 
 che individua il video del PS1   tipo video_13p
drive1 e_ un instance_role 
 che individua il drive del PS1   tipo drive_144
cashe1 e_ un instance_role 
 che individua il cashe del PS1   tipo cashe_2k
ram1 e_ un instance_role 
 che individua il memoria del PS1   tipo ram_2mb
hd1 e_ un instance_role 
 che individua il disco_fisso del PS1   tipo hd_80mb

No
5 ?- pp(epson_100).
epson_100 e_ un concetto individiale
epson_100 e_ un stampante

Yes
6 ?- pretty_print1(pc_int).

   **  pc_int  ** is a Generic Concept with 

     Super Concepts : 
     ------ 
     cosa 
     pc_80 
     pc_85 
     pc_90 
     pc_95 
     Roles : 
     ----- 
     c_p_u : 
        ( from : pc_80 ) 
          V/R = u_elabo 
          Num = 1 
          Mod = obl 
     cash : 
        ( from : pc_90 ) 
          V/R = memorie 
          Num = 1 , nil 
          Mod = opt 
     co_pro_mat : 
        ( from : pc_85 ) 
          V/R = u_elabo 
          Num = 0 , 1 
          Mod = opt 
     disco_fisso : 
        ( from : pc_85 ) 
          V/R = memorie 
          Num = 0 , 1 
          Mod = opt 
     drive : 
        ( from : pc_80 ) 
          V/R = in_out 
          Num = 1 , 2 
          Mod = obl 
     lettore_cd : 
        ( from : pc_90 ) 
          V/R = input 
          Num = 0 , 1 
          Mod = opt 
     memoria : 
        ( from : pc_80 ) 
          V/R = memorie 
          Num = 1 
          Mod = obl 
     modem : 
        ( from : pc_95 ) 
          V/R = in_out 
          Num = 1 
          Mod = obl 
     mouse : 
        ( from : pc_90 ) 
          V/R = input 
          Num = 1 
          Mod = obl 
     scatola : 
        ( from : pc_80 ) 
          V/R = corpo 
          Num = 1 
          Mod = obl 
     scheda_audio : 
        ( from : pc_90 ) 
          V/R = output 
          Num = 0 , 1 
          Mod = opt 
     stampante : 
        ( from : pc_85 ) 
          V/R = output 
          Num = 0 , 1 
          Mod = opt 
     tastiera : 
        ( from : pc_80 ) 
          V/R = input 
          Num = 1 
          Mod = obl 
     tele_camera : 
        ( from : pc_95 ) 
          V/R = in_out 
          Num = 1 
          Mod = opt 
     video : 
        ( from : pc_80 ) 
          V/R = output 
          Num = 1 
          Mod = obl 
     zip : 
        ( from : pc_95 ) 
          V/R = in_out 
          Num = 1 
          Mod = opt 

Yes