A duct is the host of an elongate opening. A morphological extension is needed for this definition. The additional axiom restricts duct to anatomy.
(=> (_Duct ?A ?B) (And (Exists (?Y) (And (_Opening ?Y True) (_Elongate ?Y True) (Host-Of ?A ?Y))) (Exists (?X ?Y) (And (Material-Object ?X) (Material-Object ?Y) (Connects ?A ?X ?Y)))))