docs: def __validation_property_range(self, p):
          """
          if p.sub_property_of(q) then
          for every y in included_ranges(p) we have y is subclass of some r in
          included_ranges(q) -- for object properties
          """
          for y in p.included_ranges():
              superclasses = y.super_classes_closure()
              for q in p.super_properties():
                  if not any(r == y or r in superclasses for r in q.included_ranges()) and not any(
                          r == y or r in superclasses for s in q.super_properties_closure() for r in
                          s.included_ranges()):
                      raise ValidationError("Range {} of property {} isn't a subclass of any range of"
                                            " superproperty {}".format(y.name(), p.name(), q.name()))