let print_knowledge print_cat knowl =
   print_string "{\n   category=";
   print_cat knowl.kn_category;
   print_string "\n   count=";
   print_int knowl.kn_count;
   print_string  "\n   attributes=\n   [\n";
   let print_probs n (attr,prob) = 
      print_string "      P(D";
      print_int n;
      print_string " = ";
      Types.print_attribute attr;
      print_string ")= ";
      print_float prob;
      print_string "\n"
   in
   Array.iteri (fun n -> List.iter (print_probs n)) knowl.kn_data;
   print_string "   ]\n}\n"