First of all, Potégé is an editor, not a reasoner. So, strictly speaking, it cannot do anything like you say. However, Protégé can host plugins among which you find reasoners. By default, the HermiT reasoner is preinstalled with Protégé 4 and 5. Other reasoners are pluggable in Protégé. The capabilities of the reasoners embedded in Protégé depend on what subset of the OWL specification they are supporting. In OWL 2, there are well defined subsets called profiles (OWL 2 DL, OWL 2 EL, OWL 2 QL, and OWL 2 RL) that correspond each to a partial support of OWL constructs.
Reasoning with datatype properties, including what you describe, is possible with OWL 2 DL. Consequently, any OWL-2-DL-conformant reasoner can do what you describe. HermiT is an OWL 2 DL reasoner, so it should be able to do what you explain. However, I can see two explanations for why Protégé is not showing you the expected inference:
- The ontology you are using does not model properly the knowledge you would like it to express. Please show us how the ontology is so we can help.
- Protégé is not showing all the inferences that the reasoner is doing. Protégé is just an interface. It does not show everything the reasoner does. So, while the reasoner maybe be indeed able to make the inference, you do not see it because Protégé is not considering it for display. This happens for some inferences, such as inferred domains and ranges that are not displayed. I do not know if the case you describe is part of those non-showing inferences.
You should also know that you can parameterise the types of inferences that Protégé should display. There is a tab in the preferences with checkboxes telling which kind of inferred facts should be displayed.