code: def _simsearch_to_simresult(self, sim_resp: Dict, method: SimAlgorithm) -> SimResult:
          
  
          sim_ids = get_nodes_from_ids(sim_resp['query_IRIs'])
          sim_resp['results'] = OwlSim2Api._rank_results(sim_resp['results'], method)
  
          # get id type map:
          ids = [result['j']['id'] for result in sim_resp['results']]
          id_type_map = get_id_type_map(ids)
  
          matches = []
  
          for result in sim_resp['results']:
              matches.append(
                  SimMatch(
                      id=result['j']['id'],
                      label=result['j']['label'],
                      rank=result['rank'],
                      score=result[OwlSim2Api.method2key[method]],
                      type=id_type_map[result['j']['id']][0],
                      taxon=get_taxon(result['j']['id']),
                      significance="NaN",
                      pairwise_match=OwlSim2Api._make_pairwise_matches(result)
                  )
              )
  
          return SimResult(
              query=SimQuery(
                  ids=sim_ids,
                  unresolved_ids=sim_resp['unresolved'],
                  target_ids=[[]]
              ),
              matches=matches,
              metadata=SimMetadata(
                  max_max_ic=self.statistics.max_max_ic
              )
          )
docs: Convert owlsim json to SimResult object
  
          :param sim_resp: owlsim response from search_by_attribute_set()
          :param method: SimAlgorithm
          :return: SimResult object