This property supplements the excludes_TU property. Because it is not known in advance in which topological relationship the external specifiers stand to each other if there is more than one, only one can use the external_TU property in a given logical expression.
Algorithm outline: For defining the node that splits from the externals, we create a conjunction of “includes_TU some internal_sp_i” for all internal specifiers internal_sp_i. (2) We don’t know the most closely related external specifier external_sp_i. So, we choose one and intersect with “excludes_TU some external_sp_i”. (3) For the remaining external specifiers externalsp{j \in 1..n \ I} (n = number of external specifiers), we require that they be "outside the clade”: Generate a conjunction of “has_outside_TU some external_sp_j” for all j != i. Intersect the result with the conjunction from (1). (4) Repeat #2 and #3 for each external specifier.
Looks good to me -- and as you mentioned in your e-mail, Crocodyloidea2 (and therefore Crocodyloidea) now resolves correctly on the ontology you sent me.
This property supplements the excludes_TU property. Because it is not known in advance in which topological relationship the external specifiers stand to each other if there is more than one, only one can use the external_TU property in a given logical expression.
Algorithm outline: For defining the node that splits from the externals, we create a conjunction of “includes_TU some internal_sp_i” for all internal specifiers internal_sp_i. (2) We don’t know the most closely related external specifier external_sp_i. So, we choose one and intersect with “excludes_TU some external_sp_i”. (3) For the remaining external specifiers externalsp{j \in 1..n \ I} (n = number of external specifiers), we require that they be "outside the clade”: Generate a conjunction of “has_outside_TU some external_sp_j” for all j != i. Intersect the result with the conjunction from (1). (4) Repeat #2 and #3 for each external specifier.