>>> cl = get_ontology("
https://purl.obolibrary.org/obo/cl.owl").load()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/vincent/Downloads/vinceowl/lib/python3.12/site-packages/owlready2/namespace.py", line 1046, in load
if self.world.graph.indexed: self._load_properties()
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/vincent/Downloads/vinceowl/lib/python3.12/site-packages/owlready2/namespace.py", line 1083, in _load_properties
raise TypeError("'%s' belongs to more than one entity types (cannot be both a property and a class/an individual)!" % Prop.iri)
TypeError: '
http://purl.obolibrary.org/obo/STATO_0000416' belongs to more than one entity types (cannot be both a property and a class/an individual)!
see
https://github.com/obophenotype/cell-ontology/issues/3237 for more discussion and link relevant to punning concept.
I recognize this is an OWL DL 2 spec concern, but am not sure whether owlready2 cannot cope with this.
a CL maintainer mentioned that protege and OWL api-based tools accommodate punning.