protected PropertyType getPropertyType(OWLOntology o, OWLDataProperty dataTypeProperty) {
   Set<OWLDataRange> ranges = dataTypeProperty.getRanges(o);
   if (ranges.size() == 0) {
     return null;
   }
   if (ranges.size() > 1) {
     throw new LumifyException(
         "Unexpected number of ranges on data property " + dataTypeProperty.getIRI().toString());
   }
   for (OWLDataRange range : ranges) {
     if (range instanceof OWLDatatype) {
       OWLDatatype datatype = (OWLDatatype) range;
       return getPropertyType(datatype.getIRI().toString());
     }
   }
   throw new LumifyException(
       "Could not find range on data property " + dataTypeProperty.getIRI().toString());
 }