The same property cannot have both individuals and data values in its range.
In particular, since ex:hasChild is an owl:ObjectProperty, there may be no concrete data values (e.g., strings) in its range. Since in this case, there is a data value ("John") in its range, the combination is inconsistent, and an inconsistent atom ("a"="b") is derived.