code: def primitive_datatype(self, t: URIRef) -> Optional[URIRef]:
          
          for sco in self._o.objects(t, RDFS.subClassOf):
              sco_type = self._o.value(sco, RDF.type)
              sco_prop = self._o.value(sco, OWL.onProperty)
              if sco_type == OWL.Restriction and sco_prop == FHIR.value:
                  # The older versions of fhir.ttl (incorrectly) referenced the datatype directly
                  restriction_type = self._o.value(sco, OWL.allValuesFrom)
                  if not restriction_type:
                      restriction_dt_entry = self._o.value(sco, OWL.someValuesFrom)
                      restriction_type = self._o.value(restriction_dt_entry, OWL.onDatatype)
                  return restriction_type
          return None
docs: Return the data type for primitive type t, if any
          :param t: type
          :return: corresponding data type