code: public static boolean areDisjointTypes(SchemaConcept parent, SchemaConcept child, boolean direct) {
          return parent != null && child == null || !typesCompatible(parent, child, direct) && !typesCompatible(child, parent, direct);
      }
docs: determines disjointness of parent-child types, parent defines the bound on the child
  @param parent {@link SchemaConcept}
  @param child {@link SchemaConcept}
  @return true if types do not belong to the same type hierarchy, also true if parent is null and false if parent non-null and child null