def update_name(self, force=False, create_term=False, report_unchanged=True):
updates = []<EOL>self.ensure_identifier()<EOL>name_term = self.find_first('<STR_LIT>')<EOL>if not name_term:<EOL><INDENT>if create_term:<EOL><INDENT>name_term = self['<STR_LIT>'].new_term('<STR_LIT>','<STR_LIT>')<EOL><DEDENT>else:<EOL><INDENT>updates.append("<STR_LIT>")<EOL>return updates<EOL><DEDENT><DEDENT>orig_name = name_term.value<EOL>identifier = self.get_value('<STR_LIT>')<EOL>datasetname = self.get_value('<STR_LIT>')<EOL>if datasetname:<EOL><INDENT>name = self._generate_identity_name()<EOL>if name != orig_name or force:<EOL><INDENT>name_term.value = name<EOL>updates.append("<STR_LIT>")<EOL><DEDENT>else:<EOL><INDENT>if report_unchanged:<EOL><INDENT>updates.append("<STR_LIT>")<EOL><DEDENT><DEDENT><DEDENT>elif not orig_name:<EOL><INDENT>if not identifier:<EOL><INDENT>updates.append("<STR_LIT>")<EOL><DEDENT>else:<EOL><INDENT>updates.append("<STR_LIT>")<EOL>name_term.value = identifier<EOL><DEDENT><DEDENT>elif orig_name == identifier:<EOL><INDENT>if report_unchanged:<EOL><INDENT>updates.append("<STR_LIT>")<EOL><DEDENT><DEDENT>else:<EOL><INDENT>updates.append("<STR_LIT>")<EOL><DEDENT>return updates<EOL>
Generate the Root.Name term from DatasetName, Version, Origin, TIme and Space