docs: def fix_for_specific_versions(self, rdf_data, to_replace):
          """
          Fixes of the RDF before loading the graph. All of these are workaround
          to circuvent known issues of the SPM and FSL exporters.
          """
  
          # Load the graph as is so that we can query
          g = self.parse(rdf_data)
  
          # Retreive the exporter name and version
          query = """
  prefix nidm_spm_results_nidm: <http://purl.org/nidash/nidm#NIDM_0000168>
  prefix nidm_nidmfsl: <http://purl.org/nidash/nidm#NIDM_0000167>
  prefix nidm_softwareVersion: <http://purl.org/nidash/nidm#NIDM_0000122>
  
  SELECT DISTINCT ?type ?version ?exp_act WHERE {
      {?exporter a nidm_nidmfsl: .} UNION {?exporter a nidm_spm_results_nidm: .}.
      ?exporter a ?type ;
          nidm_softwareVersion: ?version .
  
      ?exp_act prov:wasAssociatedWith ?exporter .
  
      FILTER ( ?type NOT IN (prov:SoftwareAgent, prov:Agent))
  }
          """
  
          sd = g.query(query)
          objects = dict()
          if sd:
              for row in sd:
                  argums = row.asdict()
                  if (argums['type'] == NIDM_SPM_RESULTS_NIDM and
                          (argums['version'].eq('12.6903') or
                           argums['version'].eq('12.575ac2c'))):
                      warnings.warn('Applying fixes for SPM exporter ' +
                                    str(argums['version']))
                      # crypto namespace inconsistent with NIDM-Results spec
                      to_replace[('http://id.loc.gov/vocabulary/preservation/' +
                                  'cryptographicHashFunctions/')] = (
                                  'http://id.loc.gov/vocabulary/preservation/' +
                                  'cryptographicHashFunctions#')
                      # Missing 'activity' attribute in qualified Generation
                      to_replace['a prov:Generation .'] = (
                          'a prov:Generation ; prov:activity <' +
                          str(argums['exp_act']) + '> .')
  
          # Avoid confusion between attribute and
          # class uncorrected p-value
          # cf. https://github.com/incf-nidash/nidm/issues/421
          to_replace[('@prefix nidm_PValueUncorrected: ' +
                      '<http://purl.org/nidash/nidm#NIDM_0000160>')] = (
                      '@prefix nidm_UncorrectedPValue: ' +
                      '<http://purl.org/nidash/nidm#NIDM_0000160>')
          to_replace['nidm_PValueUncorrected'] = 'nidm_UncorrectedPValue'
  
          if to_replace is not None:
              for to_rep, replacement in to_replace.items():
                  rdf_data = rdf_data.replace(to_rep, replacement)
  
          return rdf_data