The hasFeature property of ComponentReference conflicts in type with the hasFeature property of Component, because in ComponentReference this is a pointer while in Component it is a child object. This causes difficulty for defining the ontology, because the property has contextual meaning.
We propose that hasFeature was never actually a good name for the ComponentReference property in the first place, since ComponentReference's other property, inChildOf is also a Feature (subclass). We thus propose to resolve the type conflict by renaming ComponentReference to refersTo, which is a better description of its meaning.