               ;; if verb does specify a [:sem :obj], then fill it in with subcat info.
               transitivize
 
+              ;; default: essere=false
+              (map-function-on-map-vals
+               (fn [k vals]
+                 (map (fn [val]
+                        ;; if: 1. the val's :cat is :verb
+                        ;;     2. it is not true that essere=true (either essere=false or essere is not defined)
+                        ;; then: essere=false
+                        (cond (and (= (get-in val [:synsem :cat])
+                                      :verb)
+                                   (not (= true (get-in val [:synsem :essere] false))))
+                              (unify val {:synsem {:essere false}})
+                                 
+                              true ;; otherwise, leave the verb alone
+                              val))
+                      vals)))
+              
               ;; Cleanup functions can go here. Number them for ease of reading.
               ;; 1. this filters out any verbs without an inflection:
               ;; infinitive verbs should have inflection ':infinitive', 

                     :sem {:pred :amare
                           :subj {:human true}}}}
   
   "aller" {:français {:essere true
                       :future-stem "ir"
                       :present {:1sing "vais"
                                 :2sing "vas"
                                 :3sing "va"

                         :sem {:pred :teach}}}]

   "entrer" {:synsem {:cat :verb
                      :essere true
                     :sem {:pred :enter}}}

   "envoyer" {:synsem {:cat :verb
