docs: def __validation_property_domain(self, p):
          """
          if p.sub_property_of(q) then
          for every x in included_domains(p) we have x is subclass of some d in
          included_domains(q)
          """
          for x in p.included_domains():
              superclasses = x.super_classes_closure()
              for q in p.super_properties_closure():
                  if x in q.included_domains():
                      logging.warning("Redundant domain :%s for :%s.", x.name(), p.name())
                      continue
                  if not any(d == x or d in superclasses for d in q.included_domains()) and not any(
                          d == x or d in superclasses for s in q.super_properties_closure() for d in
                          s.included_domains()):
                      raise ValidationError("Domain {} of property {} isn't a subclass of any domain of "
                                            "superproperty {}".format(x.name(), p.name(), q.name()))