                 :buyable true
                 :edible false
                 :human false}
+
+   {:pred :house} {:artifact true
+                   :buyable true
+                   :place true}
+   
    }
   )
 

  "null sem-impl: simply return input."
  (log/trace (str "null-sem-impl:" (strip-refs input)))
  input)
  
(defn sem-impl [input & [original-input]]
  "expand input feature structures with semantic (really cultural) implicatures, e.g., if human, then not buyable or edible"
  (let [original-input (if original-input original-input

    (cond
      (= input :top) input
      true
      (let [activity (get-encyc input :activity)
            animate  (get-encyc input :animate)
            artifact (get-encyc input :artifact)
            buyable  (get-encyc input :buyable)
            city     (get-encyc input :city)

            clothing (if (= (get-in input '(:clothing))
                            true)
