code: def add_reference(self, subj: Node, val: str) -> None:
          
          match = FHIR_RESOURCE_RE.match(val)
          ref_uri_str = res_type = None
          if match:
              ref_uri_str = val if match.group(FHIR_RE_BASE) else (self._base_uri + urllib.parse.quote(val))
              res_type = match.group(FHIR_RE_RESOURCE)
          elif '://' in val:
              ref_uri_str = val
              res_type = "Resource"
          elif self._base_uri and not val.startswith('#') and not val.startswith('/'):
              ref_uri_str = self._base_uri + urllib.parse.quote(val)
              res_type = val.split('/', 1)[0] if '/' in val else "Resource"
          if ref_uri_str:
              ref_uri = URIRef(ref_uri_str)
              self.add(subj, FHIR.link, ref_uri)
              self.add(ref_uri, RDF.type, FHIR[res_type])
docs: Add a fhir:link and RDF type arc if it can be determined
          :param subj: reference subject
          :param val: reference value