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)))))