let evaluate knowls data =
   (* find the category with highest probapbility *)
   let rec loop knowls value akku =
      match knowls with
         [] -> akku
      |   knowl :: knowls -> 
            (* calculate the current probapbility *)
            let prob = calculate_prob knowl data in
            (* compare with current best *)
            if prob >= value then
               loop knowls prob knowl.kn_category
            else
               loop knowls value akku
   in
   loop knowls ~-.10.0 ((List.hd knowls).kn_category)