            :agr {:number :sing
                  :person :3rd}}}
  
-   ;; working on: "mi sono comprato un nuovo cellulare"
-   "cellulare"
-   {:synsem {:agr {:gender :masc}
-             :cat :noun
-             :sem {:pred :cellulare
-                   :artifact true
-                   :consumable false
-                   :writable false
-                   :place false
-                   :speakable false}}}
+ ;; working on: "mi sono comprato un nuovo cellulare"
+ "cellulare"
+ {:synsem {:agr {:gender :masc}
+           :cat :noun
+           :sem {:pred :cellulare
+                 :artifact true
+                 :consumable false
+                 :writable false
+                 :place false
+                 :speakable false}}}
   
-   "cenare" {:synsem {:cat :verb
-                      :essere false
-                      :sem {:subj {:human true}
-                            :pred :have-dinner}}}
+ "cenare" {:synsem {:cat :verb
+                    :essere false
+                    :sem {:subj {:human true}
+                          :pred :have-dinner}}}
      
  "chiacchierare" {:synsem {:cat :verb
                            :sem {:pred :chat}}}

              :sem {:pred :affolato
                    :comparative false}}})]
 
   "aggiungere" {:synsem {:cat :verb
                          :sem {:pred :add}}}
   "aiutare"
   {:synsem {:essere false
             :cat :verb
             :sem {:pred :aiutare}}}

   "alla prossima"
   {:synsem {:cat :exclamation
             :sem {:pred :bye}}}

 "alto"
 [;; non-comparative:
  {:synsem {:cat :adjective

                 :human true
                 :child false}}}
   
 "ammirare" {:synsem {:cat :verb
                      :sem {:pred :admire}}}
 "andare"
 {:italiano {:italiano "andare"
             :essere true
             :drop-e true
             :future-stem "andr"
             :present {:1sing "vado"
                       :2sing "vai"
                       :3sing "va"
                       :1plur "andiamo"
                       :2plur "andate"
                       :3plur "vanno"}}
  :synsem {:cat :verb
           :essere true
           :sem {:subj {:animate true}
                 :pred :go}}}

 "anno" {:synsem {:agr {:gender :masc}
                  :cat :noun
                  :sem {:pred :year
                        :time true}}}

 "annunciare"  {:synsem {:cat :verb
                         :sem {:pred :announce}}}

 "appoggiare"  {:synsem {:cat :verb
                         :sem {:pred :support}}}

 "apprendere"  {:synsem {:cat :verb
                         :sem {:pred :learn}}}

 "approfittare"  {:synsem {:cat :verb
                           :sem {:pred :take-advantage-of}}}
   
 "approvare" {:synsem {:cat :verb
                       :sem {:pred :approve}}}

 "arrabbiarsi" {:synsem {:cat :verb
                         :sem {:pred :get-angry
                               :reflexive true
                               :subj {:animate true}}}}
   
 "arrivare" {:synsem {:essere true 
                      :cat :verb
                      :sem {:pred :arrive}
                      :subcat {:2 '()}}}
                              
 ;; TODO: add                 :subcat {:2 {:cat :prep}}}}
   
 "ascoltare"  {:synsem {:cat :verb
                        :sem {:pred :listen-to}}}

 "aspettare"  {:synsem {:cat :verb
                        :sem {:pred :wait-for}}}

 "assicurare" [ {:synsem {:cat :verb
                          :sem {:pred :assure}}}
               {:synsem {:cat :verb
                         :sem {:pred :insure}}}]

 "attoro" {:synsem {:agr {:gender :masc}
                    :cat :noun
                    :sem {:pred :actor}}}

 "aula" {:synsem {:agr {:gender :fem}
                  :cat :noun
                  :sem {:pred :classroom}}}
   
 "aumentare"   {:synsem {:cat :verb
                         :sem {:pred :increase}}}
 "avere"
 (let [avere-common {:synsem {:essere false
                              :cat :verb
                              :sem {:reflexive false}}
                     :italiano {:italiano "avere"
                                :future-stem "avr"
                                :drop-e true
                                :present {:1sing "ho"
                                          :2sing "hai"
                                          :3sing "ha"
                                          :1plur "abbiamo"
                                          :2plur "avete"
                                          :3plur "hanno"}}}]
   
   ;; 1. "avere": to possess something buyable
   [{:unify [avere-common]
     :note "avere (possess)"
     :synsem {:sem {:pred :have
                    :activity false
                    :discrete false
                    :subj {:human true}
                    :obj {:buyable true}}}}

    ;; 2. "avere": to be in a relation with: e.g. "I have two children"
    {:unify [avere-common]
     :note "avere (relation)"
     :synsem {:sem {:pred :have
                    :activity false
                    :discrete false
                    :obj {:human true}}}}

    ;; 3. avere: unspecified object
    {:unify [avere-common]
     :note "avere (possess): unspecified object"
     :synsem {:sem {:pred :have
                    :activity false
                    :discrete false
                    :subj {:human true}}}}

    ;; 4. "avere" that takes a transitive verb: e.g. "io l'ho vista (i saw her)"
    (let [agr (atom :top)]
      {:unify [avere-common]
       :note "avere(aux): takes trans"
       :synsem {:aux true
                :infl :present
                :subcat {:2 {:agr agr
                             :sem {:reflexive false}
                             :subcat {:2 {:agr agr
                                          :pronoun true}}
                             :essere false}}}})

    ;; 5. "avere" that takes an intransitive verb or a transitive verb within a VP
    ;;    with the object (e.g. "io ho dormito (i slept)" or "io ho [mangiato la pizza] (i ate the pizza)"
    ;; "avere": auxiliary-verb: takes 2 args:
    ;; 1. subject that is the same as the subject of 2.
    ;; 2. an intransitive verb.
    {:unify [avere-common]
     :note "avere(aux): takes intrans"
     :synsem {:aux true
              :infl :present
              :subcat {:2 {:sem {:reflexive false}
                           :essere false
                           :reflexive false ;; in Italian, reflexive verbs are always essere=false.
                           ;; this additional qualification here (:reflexive false) is not necessary
                           ;; but is expected to reduce fails during generation.
                           :subcat {:2 '()}}}}}])
     
 "ballare" {:synsem {:cat :verb
                     :sem {:pred :dance}}}
 "bello"
 [{:synsem {:cat :adjective
            :sem {:pred :bello}}}
