The article recommends to have a asserted single inheritance structure and introduce multiple inheritance by inference. As example it uses classes as `Protein`, `Insulin`, and `Protein_Hormone`, `Hormone_Role`.
- `Insulin` `is_subclass_of` `Protein`
- `Insulin` `plays_role` `Hormone_Role`
- `Protein_Hormone` is equivalent to (`Protein` `and` `plays_role` `owl:someValuesFrom` `Hormone_Role`) (defined class)
After the reasoner ran, `Insulin` is correctly recognized as subclass of `Protein_Hormone` (expected result).
However, `Insulin` is still also classified as direct subclass of protein. This relation I deem redundant because every instance of `Protein_Hormone` must be a `Protein` by definition. Also, if I apply Protegé, the inferred class structure does not contain this redundant relation, as shown here:
Is there a (canonical) way to get rid of this superfluous subclass relation?