docs: def _add_study_provenance(
              self,
              phenotyping_center,
              colony,
              project_fullname,
              pipeline_name,
              pipeline_stable_id,
              procedure_stable_id,
              procedure_name,
              parameter_stable_id,
              parameter_name,
              statistical_method,
              resource_name,
              row_num
      ):
          """
          :param phenotyping_center: str, from self.files['all']
          :param colony: str, from self.files['all']
          :param project_fullname: str, from self.files['all']
          :param pipeline_name: str, from self.files['all']
          :param pipeline_stable_id: str, from self.files['all']
          :param procedure_stable_id: str, from self.files['all']
          :param procedure_name: str, from self.files['all']
          :param parameter_stable_id: str, from self.files['all']
          :param parameter_name: str, from self.files['all']
          :param statistical_method: str, from self.files['all']
          :param resource_name: str, from self.files['all']
          :return: study bnode
          """
  
          provenance_model = Provenance(self.graph)
          model = Model(self.graph)
  
          # Add provenance
          # A study is a blank node equal to its parts
          study_bnode = self.make_id("{0}{1}{2}{3}{4}{5}{6}{7}".format(
              phenotyping_center, colony, project_fullname, pipeline_stable_id,
              procedure_stable_id, parameter_stable_id, statistical_method,
              resource_name), '_')
  
          model.addIndividualToGraph(
              study_bnode, None, self.globaltt['study'])
  
          # List of nodes linked to study with has_part property
          study_parts = []
  
          # Add study parts
          model.addIndividualToGraph(self.resolve(procedure_stable_id), procedure_name)
          study_parts.append(self.resolve(procedure_stable_id))
  
          study_parts.append(self.resolve(statistical_method))
          provenance_model.add_study_parts(study_bnode, study_parts)
  
          # Add parameter/measure statement: study measures parameter
          parameter_label = "{0} ({1})".format(parameter_name, procedure_name)
  
          logging.info("Adding Provenance")
          model.addIndividualToGraph(
              self.resolve(parameter_stable_id), parameter_label)
          provenance_model.add_study_measure(
              study_bnode, self.resolve(parameter_stable_id))
  
          # Add Colony
          colony_bnode = self.make_id("{0}".format(colony), '_')
          model.addIndividualToGraph(colony_bnode, colony)
  
          # Add study agent
          model.addIndividualToGraph(
              self.resolve(phenotyping_center), phenotyping_center,
              self.globaltt['organization'])
  
          # self.graph
          model.addTriple(
              study_bnode, self.globaltt['has_agent'], self.resolve(phenotyping_center))
  
          # add pipeline and project
          model.addIndividualToGraph(
              self.resolve(pipeline_stable_id), pipeline_name)
  
          # self.graph
          model.addTriple(
              study_bnode, self.globaltt['part_of'], self.resolve(pipeline_stable_id))
  
          model.addIndividualToGraph(
              self.resolve(project_fullname), project_fullname, self.globaltt['project'])
  
          # self.graph
          model.addTriple(
              study_bnode, self.globaltt['part_of'], self.resolve(project_fullname))
  
          return study_bnode