<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def natural_name(self, value):
 """Set natural name."""

        if value is None:
            value = ""
        if hasattr(self, "_natural_name") and self.name != "/":
            keys = [k for k in self._instances.keys() if k.startswith(self.fullpath)]
            dskeys = [k for k in Dataset._instances.keys() if k.startswith(self.fullpath)]
            self.parent.move(self._natural_name, value)
            for k in keys:
                obj = self._instances.pop(k)
                self._instances[obj.fullpath] = obj
            for k in dskeys:
                obj = Dataset._instances.pop(k)
                Dataset._instances[obj.fullpath] = obj
        self._natural_name = self.attrs["name"] = value