<HTML>
<HEAD><TITLE>Manuale</TITLE></HEAD>
<BODY BACKGROUND="sfondo3.jpg">
<table cellpadding=0 cellspacing=0 border=0>
<tr><td width=20 valign=top align=left>
</td><td width=400 valign=topalign=left><BR><FONT SIZE=2>
<b><h2>
<a name=  "assume"><h2 font color=black>assume(Fact).</h2></font><font color=black></a><p><p>
argomenti:<p><ul>
	-Fact , nome di una struttura prolog della quale il funtore rappresenta<p>
	 un  tipo o una relazione di SI-NET.<p><p></ul>
descrizione:<p><ul>
	Fact e' una informazione che deve essere sommata al SI-NET.<p>
	Due fondamentali usi di "assume" esistono:<p>
	-creazione  di oggetti (concetti,regole) nella tassonomia.<p>
	  in questo caso il  predicato in "Fact"  corrisponde a uno dei tipi<p>
	  di oggetti SI-NET -un elemento dell'insieme(generic_concept,individual_<p>
	  concept,generic_role,instance_role)- e il suo  argomento corrisponde<p>
	  al nome dell'oggetto creato<p>
	-creazione di relazioni strutturali tra gli oggetti della taxonomia.<p>
	  In questo caso il predicato al posto di "Fact" corrisponde a una relazione<p>
	  delle relazioni SI-NET -un elemento dell'insieme (has_super_concept,<p>
	  individuates,modifies,satisfies,differentiates,has_role,has_vr,<p>
	  has_number,has_modality,has_value)- e i suo argomenti corrispondono ai<p>
	  nomi di oggetti collegati dalle relazioni create.<p>
	In entrambi questi casi , se l'operazione ha successo, la funzione ritorna il<p>
	messaggio che il nuovo fatto e' assunto<p><p></ul>
esempi:<p><ul>
	-? assume(generic_concept(g_conc)).<p>
	   >>generic_concept(g_conc)<p><p>
	-?assume(modifies([g_role1,g_conc1],[g_role2,g_conc2])).<p>
	   >>modifies([g_role1,g_conc1],[g_role2,g_conc2]).<p></ul>
<hr font size=2>
</font></font><a name=  "add"><h2 font color=black>add(Obj,Val,Attr)</h2></font><font color=>  </a><p>
<h2 font color=black>add(Obj1,Obj2,Val,Attr)</h2></font><font color=black>   <p><p>
argomenti:<p><ul>
	-Obj,Obj1,Obj2,sono nomi di oggetto (uno o due nomi,<p>
	 dipendono dagli attributi)<p>
	-Val,e' il valore dell'attributo<p>
	-Attr,atomo che definisce il tipo di attributo aggiunto a Obj<p><p></ul>
descrizione:<p><ul>
	l'attributo dei tipi  "Attr" e' aggiunto alla struttura descrittiva degli oggetti<p>
	con valore "Val".<p>
	I due piu' importanti usi di "add" sono:<p>
	-modifica concetti descrittivi.<p>
	 In questo caso,gli attributi che possono essere sommati a Obj sono<p>
	 regole (generiche o istanziate).Le regole sono create e collegate ai<p>
	 concetti.<p>
	-modifica regole descrittive.<p>
	 In questo caso, gli attributi che possono essere sommati a Obj1 sono aspetti<p>
	 (modality,number,vr o value),Obj2 e' il concetto  associato alla regola Obj1.<p>
	Modalita' e numero  hanno sempre dei valori (al limite i valori predefiniti<p>
	che possono essere modificati tramite cambiamento.<p>
	Se  il V/R deve essere sommato , il concetto definito come valore di <p>
	restrizione e' creato e collegato alla regola.<p><p></ul>
esempi:<p><ul>
	-? add(g_conc,g_role,generic_role).<p>
	>>generic_role(g_role)<p>
	>>has_role(g_conc,g_role)<p><p>
	-?add([g_role,g_conc],val,vr).<p>
	>>generic_concept(val<p>
	>>has_vr([g_role,g_conc],val)<p></ul>
<hr font size=2>
</font></font><a name=  "change"><h2 font color=black>change(Obj1,Obj2,Val,Attr)</h2></font><font color=black>  </a><p><p>
argomenti:<p><ul>
	-Obj1,Obj2, la regola e il concetto associati<p>
	-Val, nome del nuovo valore<p>
	-Attr,l'aspetto  che deve essere cambiato<p><p></ul>
descrizione:<p><ul>
	Val diventa il nuovo valore dell'aspetto "Attr" della regola.<p>
	Il valore sostitutore puo' essere locale,o ereditato o <p>
	predefinito a uno.<p><p></ul>
esempio:<p><ul>
	-?change([g_role,g_conc],val,has_modality).<p>
	>>has_modality([g_role,g_conc],val).<p></ul>
<hr font size=2>
</font></font><a name=  "clear_all"><h2 font color=black>clear_all</h2></font><font color=black>  </a><p><p>
descrizione:<p><ul>
	cancella tutte le reti in memoria<p></ul>
<hr font size=2></font><a name= "clear_net"><h2 font color=black>clear_net(Net)</h2> </font><font color=black>  </a><p><p>
argomento:<p><ul>
	Net,nome di una rete<p><p></ul>
descrizione:<p><ul>
	cancella la rete "Net".<p>
</ul>
<hr font size=2>
</font><a name= "differentiates"><h2 font color=black>differentiates([GRole1,GConc1],[GRole2,GConc2]).</h2> </font><font color=black>  </a><p><p>
argomenti:<p><ul>
	-GRole1,GRole2,nomi di regole generiche<p>
        -GConc1,GConc2,nomi di concetti generici<p><p></ul>
descrizione:<p><ul>
	GConc1,Gconc2 sono i concetti rispettivamente associati a GRole1,GRole2.<p>
	GRole1 differenzia Grole2 direttamente,con un collegamento <p>
	differenziato tra gli ogetti,o per mezzo di <p>
	una catena di regole dove e' presente alla fine un collegamento differenziato.<p><p></ul>
esempi:<p><ul>
	-? differentiates (g_role1,g_conc1,g_role2,g_conc2). <p> 
	       -? (success)<p><p>

	-? differentiates (g_role1,g_conc1,X,g_conc2).<p>
	       X=g_role2<p></ul>
<hr font size=2>
</font><a name= "generic_concept"><h2 font color=black>generic_concept(GConc)</h2></font><font color=black>  </a><p><p>
argomento:<p><ul>
	-GConc,nome di un concetto generico<p><p></ul>
descrizione:<p><ul>
	GConc e' un concetto generico.<p><p></ul>
esempi :<p><ul>
	-? generic_concept(X).<p>
	   X=g_conc1<p>
	   X=g_conc2<p></ul>

<hr font size=2>
</font><a name= "generic_role"><h2 font color=black>generic_role(GRole)</h2> </font><font color=black>  </a><p><p>
argomento:<p><ul>
	-GRole,nome di una regola generica.<p><p></ul>
descrizione:<p><ul>
	GRole e' una regola generica.<p></ul>

<hr font size=2>
</font><a name= "has_inherited_role"><h2 font color=black>has_inherited_role(Conc,Role)</h2></font><font color=black>   </a><p><p>
argomenti:<p><ul>
	-Conc,nome di un concetto<p>
	-Role,nome di una regola<p><p></ul>
descrizione:<p><ul>
	Role e' ereditato dal concetto Conc.<p>
	Se Conc e' generico allora tutte le regole dei super_concetti di Conc sonoereditate.<p> 
	Se Conc e' individuale allora tutte le regole dei concetti individuate direttamente o no<p>
 	per Conc sono regole ereditate.<p><p></ul>	
esempi:<p><ul>
	-?has _inherited_role(g_conc2,g_role2).<p>
	   No solutions<p><p>
	-?has_inherited_role(g_conc2,X).<p>
	   X=g_role1<p></ul>
<hr font size=2>
</font><a name= "has_modality"><h2 font color=black>has_modality([GRole,GConc],M)</h2> </font><font color=black>  </a><p><p>
argomenti:<p><ul>
	-GConc, nme di un concetto generico<p>
	-GRole,nome di una regola generica.<p>
	-M,valore di Modality<p><p></ul>
descrizione:<p><ul>
	GConc e' un concetto associato a GRole.<p>
	La generica regola GRole ha modality M.<p>
	ll possibile valore di modality,ordinati per importanza sono:<p>
	opzionale,ereditario,obbligatorio(opt,ine,obl).<p>
	Sempre la regola generica ha un valore di modality localmente definito o ereditato <p>
	da super regole.<p>
	Il valore predefinito e' opzionale (opt).<p>
	Quando le catene multiple di super regole sono presenti,il principale valore e' <p>
	ereditario (ine) <p><p></ul> 
 esempi:<p><ul>
	-?has_modality(g_role1,g_conc1,X)<p>
	   X=opt<p><p>
	-?has_modality(g_role2,g_conc2,X)<p>
	    X=obl<p></ul>
<hr font size=2>
</font><a name= "has_number"><h2 font color=black>has_number( [GRole,GConc],[Num1,Num2])</h2></font><font color=black>  </a><p><p>
argomenti:<p><ul>
	-GRole,nome di una regola generica<p>
	-GConc,nome di un concetto generico<p>
	-Num1,e' un numero intero non inferiore a 1<p>
	-Num2,e' un numero intero non inferiore a 1 ,o puo' essere messo a "nil"<p><p></ul>
descrizione:<p><ul>
	GConc e' il concetto associato a GRole.<p>
	Num1 e Num2 sono, rispettivamente, il piu' basso e il piu' alto limite dell'intervallo <p>
	numerico che rappresenta la faccia numerica  di GRole<p>
	Sempre la regola generica ha la cardinalita' localmente definita o ereditata<p>
	da super regole.<p>
	Quando sono presenti catene multiple di super regole,l'intervallo<p>
	corrispondente e' dato dalla intersezione degli intervalli ereditati.<p>
	Il valore predefinito per Num1 e' 1,per Num2 e' "nil".<p>
	Num2=nil significa che l'intervallo non ha limite superiore.<p><p></ul>
esempi:<p><ul>
	-?has_number(g_role1,gconc1,X)<p>
	   X=[1,5]<p><p>
	-?has_number(g_role2,gconc2,X)<p>
	   X=[1,5]<p></ul>

<hr font size=2>
</font><a name= "has_role"><h2 font color=black>has_role(Conc,Role).</h2> </font><font color=black>  </a><p><p>
argomenti:<p><ul>
	-Conc,nome di un concetto<p>
	-Role ,nome di una regola.<p><p></ul>
descrizione:<p><ul>
	Role e' una regola del concetto Conc.<p>
	Role e' localmente collegato a Conc (regola locale),o e' ereditato da un super<p>
	concetto di Conc.<p>
	Per ogni  catena di regole imparentate ereditariamente con Conc(catena<p>
	di regole di super concetti di Conc) e' considerata ereditaria la regola piu' bassa.<p> 
	Se Conc e' generico gli e' permesso avere regole generiche o regole istanziate;<p>
	se Conc e' individuale sono permesse solo regole istanziate.<p>
	Se entrambi gli argomenti sono inizializzati il sistema risalira' lungo la catena di <p>
	regole finche' non avra' successo.<p>
	Invece di, se uno o entrambi gli argomenti non sono inizializzati,il sistema si<p>
	fermera' nel piu' basso livello della catena.<p><p></ul>
esempi:<p><ul>
	-?has_role(g_conc2,g_role1).<p>
	   -? (successo)<p><p>
	-?has_role(g_conc2,X).<p>
	    X=g_role3<p>
	    X=g_role2<p></ul>
<hr font size=2>
</font><a name= "has_super_concept"><h2 font color=black>has_super_concept(GConc1,GConc2)</h2></font><font color=black>  </a><p><p>
argomenti:<p><ul>
	-GConc1,nome di un concetto generico<p>
	-GConc2, nome di un concetto generico<p><p></ul>
descrizione:<p><ul>
	GConc2 e' un super concetto di GConc1.<p>
	I concetti sono collegati direttamenteo per mezzo di una catena di super concetti.<p><p></ul>
esempio:<p><ul>
	-?has_super_concept(g_conc3,X).<p>
	   X=g_conc2<p>
	   X=g_conc1<p></ul>
<hr font size=2>
</font><a name= "has_super_role"><h2 font color=black>has_super_role([GRole1,GConc1],[GRole2,GConc2])</h2> </font><font color=black>  </a><p><p>
argomenti:<p><ul>
	-GRole1,GRole2,nomi di regole generiche<p>
	-GConc1,GConc2,nomi di concetti generici<p><p></ul>
descrizione:<p><ul>
	GConc1 e GConc2 sono concetti rispettivamente associati alle regole <p>
	GRole1,GRole2.<p>
	GRole2 e' una super regola di GRole1.<p>
	Le regole sono collegate direttamente o per mezzo di una catena di collegatori <p>
	speciali (modification o differentation).<p><p></ul>
esempio:<p><ul>
	-?has_super_role(g_role2,g_conc2,X,Y)<p>
	  X=g_role1.<p>
	  Y=g_conc1.<p></ul>
<hr font size=2>
</font><a name= "has_value"><h2 font color=black>has_value(IRole,IConc)</h2> </font><font color=black>  </a><p><p>
argomenti:<p><ul>
	-IRole ,nome di una regola istanziata<p>
	-IConc, nome di un concetto individuale.<p><p></ul>
descrizione:<p><ul>
	IConc e' il valore di IRole.<p>
	Il valore di una regola istanziata e' unico,ed e' definito solo <p>
	localmente (collegamenti ereditari non esistono).<p></ul>
<hr font size=2>
</font><a name= "has_vr"><h2 font color=black>has_vr([GRole,GConc],Vr)</h2></font><font color=black>  </a><p><p>
argomenti:<p><ul>
	-GRole,nome di una regola generica<p>
	-GConc,nome di un concetto generico<p>
	-Vr, nome di un generico concetto<p><p></ul>
descrizione:<p><ul>
	GConc e' un concetto associato a GRole .<p>
	Il concetto Vr e' un valore di  restrizione (V/R) di GRole.<p>
	Sempre la regola generica ha un insieme di valori di restrizione specificati<p>
	dalle catene di super regole che definiscono l'ereditarieta' delle regole.<p>
	Vr puo' essere definita localmente (solo una) o ereditata lungo ogni <p>
	catena di super regole che appartengono a GRole.<p>
	E' considerato un valore di restrizione applicato a GRole ogni V/R<p>
	appartenente all'eredita' di Grole (in altre parole,non necessariamente<p>
	il piu' basso valore lungo la catena di super regole).<p><p></ul>
esempi:<p><ul>
	-? has_vr(g_role2,g_conc2,X).<p>
	   X=vr_1<p><p>
 	-? has_vr(r_role1,g_conc1,X)<p>
	   X=vr_1<p></ul>
<hr font size=2>
</font><a name= "individual_concept"><h2 font color=black>individual_concept( IConc)</h2></font><font color=black>  </a><p><p>
argomento:<p><ul>
	-IConc, nome di un concetto individuale<p><p></ul>
descrizione:<p><ul>
	IConc e' un concetto individuale.<p></ul>
<hr font size=2>
</font><a name= "individuates"><h2 font color=black>individuates(IConc,GConc)</h2></font><font color=black>   </a><p><p>
argomenti:<p><ul>
	-IConc , nome di un concetto individuale<p>
	-GConc , nome di un concetto generico<p><p></ul>
descrizione:<p><ul>
	IConc individua direttamente il concetto GConc o uno dei suoi subconcetti.<p></ul>
<hr font size=2>
</font><a name= "istance_role"><h2 font color=black>istance_role(IRole)</h2> </font><font color=black>  </a><p><p>
argomento:<p><ul>
	-IRole ,nome di una regola istanziata<p><p></ul>
descrizione:<p><ul>
	IRole e' una regola istanziata.<p></ul>
<hr font size=2>
</font><a name= "is_concept"><h2 font color=black>is_concept(Conc)</h2> </font><font color=black>  </a><p><p>
argomentio:<p><ul>
	-Conc , nome di concetto<p><p></ul>
descrizione:<p><ul>
	Conc e' un concetto individuale o generico.<p></ul>
<hr font size=2>
</font><a name= "is_net"><h2 font color=black>is_net(File)</h2></font><font color=black>   </a><p><p>
argomento:<p><ul>
	-File, nome di un file<p><p></ul>
descrizione:<p><ul>
	File e' un file generato do save_net,contiene una SI-NET conoscenza di base<p>
	Questo predicato puo' essere utile per conoscere  i nomi delle reti salvate su file,<p>
	senza dover uscire per andare su un programma shell.<p></ul>

<hr font size=2>
</font><a name= "is_role"><h2 font color=black>is_role(Role)</h2></font><font color=black>   </a><p><p>
argomento:<p><ul>
	-Role ,nome di una regola.<p><p></ul>
descrizione:<p><ul>
	Role e' una regola generale o istanziata.<p></ul>
<hr font size=2>
</font><a name= "load_net"><h2 font color=black>load_net(File)</h2></font><font color=black>   </a><p><p>
argomento:<p><ul>
	-File, nome di un file<p><p></ul>
descrizione:<p><ul>
	carica dal File una rete precedentemente salvata.<p>
	Prima di caricare e' necessario cancellare la rete presente in memoria<p></ul>

<hr font size=2>
</font><a name= "modifies"><h2 font color=black>modifies([GRole1,GConc1],[GRole2,GConc2]).</h2> </font><font color=black>  </a><p><p>
argomenti:<p><ul>
	-GRole1,GRole2,nomi di regole generiche<p>
	-GConc1,GConc2,nomi di concetti generici<p><p></ul>
descrizione:<p><ul>
	GConc1 e GConc2 sono concetti rispettivamente associati alle regole <p>
	GRole1,GRole2.<p>
	La regola GRole1 modifica la regola GRole2.<p>
	Le regole sono direttamente collegate da una relazione di modifica, o<p>
	indirettamente da una catena di soli collegamenti modificanti.<p>
	E' impossibile definire regole di modifica con i nomi degli stessi modificatori.<p><p></ul>
esempi:<p><ul>
	-?modifies(g_role2,g_conc2,g_role1,g_conc1).<p>
	-?      (success)<p><p>
	-?modifies(g_role2,g_conc2,X,Y).<p>
	     X=g_role1<p>
	     Y=g_conc1<p></ul>
<hr font size=2>
</font><a name= "pretty_print"><h2 font color=black>pretty_print(Obj)</h2> </font><font color=black>  </a><p><p>
argomento:<p><ul>
	-Obj,nome di un oggetto SI-NET<p><p></ul>
descrizione:<p><ul>
	visualizza,in una via leggibile,una descrizione della struttura Obj.<p>
	-Se Obj e' un concetto,i super concetti e le regole sono visualizzati:<p>
	per  ogni regola ereditata  e' visualizzato il concetto ereditato da Obj;<p>
	per ogni regola locale  la super regola di chiusura dell'albero &egrave <p>
	descritta con l'aspetto localmente assegnato.<p>
	-Se Obj e' una regola visualizza il concetto associato e la super regola che chiude<p>
         l'albero e il valore dell'aspetto localmente definito.<p></ul>
<hr font size=2>
</font><a name= "satisfies"><h2 font color=black>satisfies([IRole,IConc],[GRole,GConc]).</h2></font><font color=black>   </a><p><p>
argomenti:<p><ul>
	-IRole ,nome di una regola istanziata<p>
	-IConc, nome di un concetto individuale<p>
	-GRole,nome di una regola generica<p>
	-GConc,nome di un concetto generico<p><p></ul>
descrizione:<p><ul>
	IConc e GConc sono i concetti rispettivamente associati a IRole e GRole.<p>
	IRole soddisfa GRole direttamente per mezzo del collegamento di sodisfazione<p>
	o non direttamente tramite una catena di relazioni tra regole.<p>
	In questo caso, IRole soddisfa una generica regola GRole1 che ha GRole <p>
	come super regola.<p></ul>
<hr font size=2>
</font><a name= "save_net"><h2 font color=black>save_net(File)  </h2></font><font color=black>  </a><p><p>
argomento:<p><ul>
	-File, nome di un file<p><p></ul>
descrizione:<p><ul>
	salva la rete attualmente attiva in memoria nel file File.<p>
	La rete copiata su File e' caricabile tramite load_net.<p></ul>
<hr font size=2>
</font><a name= "working_net"><h2 font color=black>working_net(Net)</h2> </font><font color=black>  </a><p><p>
argomento:<p><ul>
	Net,nome di una rete<p><p></ul>
descrizione:<p><ul>
	cambia la rete attiva in memoria.<p>
	E' possibile creare o usare piu' di una sola rete nei file.<p>
	Con questo comando e' considerato attivo solo la rete Net<p>
	Il valore predefinito per la rete e' "r1".<p></ul>
<p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p><p>
<hr font size=2>
</h4></FONT><p></td></tr></b></table></BODY></HTML>
