add_node(X,_) :- node_col(X,_,_,_),!. % already processed
add_node(sg_root,Translation) :-
assertz(node_col(sg_root,Translation,lightblue,diamond)).
add_node(fd(X,Type),Translation) :- !,
get_col_assoc(node,Type,Col),
get_preference(dot_normal_node_shape,Shape),
assertz(node_col(fd(X,Type),Translation,Col,Shape)).
add_node(int(X),Translation) :- !,
Col = 'wheat3', %get_col_assoc(node,integer,Col),
get_preference(dot_normal_node_shape,Shape),
assertz(node_col(int(X),Translation,Col,Shape)).
add_node(string(X),Translation) :- !,
Col = 'khaki1', %'lavender' 'burlywood', %get_col_assoc(node,integer,Col),
get_preference(dot_normal_node_shape,Shape),
assertz(node_col(string(X),Translation,Col,Shape)).
add_node(pred_true,T) :- !, assertz(node_col(pred_true,T,'OliveDrab4',ellipse)).
add_node(pred_false,T) :- !, assertz(node_col(pred_false,T,brown,ellipse)).
add_node(RecordOrPair,Translation) :- get_fields(RecordOrPair,Fields),!,
translate_fields(Fields,Atoms),
ajoin(['|{ ' | Atoms], RecTranslation),
assertz(node_col(RecordOrPair,Translation,burlywood,record(RecTranslation))). % TO DO: maybe use dot record
add_node(Val,Translation) :- is_set(Val),!,
Col = 'LightSteelBlue1', %get_col_assoc(node,integer,Col),
get_preference(dot_normal_node_shape,Shape),
assertz(node_col(Val,Translation,Col,Shape)).
add_node(Term,Translation) :- is_real(Term,_),!,
Col = 'wheat2', %get_col_assoc(node,integer,Col),
get_preference(dot_normal_node_shape,Shape),
assertz(node_col(Term,Translation,Col,Shape)).
add_node(_Val,_Translation).