A difficult question, I suppose, but learning OWL has opened up a new perspective on life, the universe, and all that. I will philosophize here.
I'm trying to reach class C, which is a subclass of B, which in turn is a subclass of C. Just for fun, you know ...
So here
>>> class A(object): pass ... >>> class B(A): pass ... >>> class C(B): pass ... >>> B.__bases__ (<class '__main__.A'>,) >>> B.__bases__ = (C,) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: a __bases__ item causes an inheritance cycle >>>
it is clear that python is smart and forbids it. However, in OWL, two classes can be defined as mutual subclasses. The question is, what a breathtaking explanation, why is this allowed in OWL (which is not a programming language) and not allowed in programming languages?
source share