docs: def set_cognitive_process(self, grade_id=None):
          """Sets the cognitive process.
  
          arg:    gradeId (osid.id.Id): the new cognitive process
          raise:  INVALID_ARGUMENT - gradeId is invalid
          raise:  NoAccess - gradeId cannot be modified
          raise:  NullArgument - gradeId is null
          compliance: mandatory - This method must be implemented.
  
          """
          if grade_id is None:
              raise NullArgument()
          metadata = Metadata(**settings.METADATA['cognitive_process_id'])
          if metadata.is_read_only():
              raise NoAccess()
          if self._is_valid_input(grade_id, metadata, array=False):
              self._my_map['cognitiveProcessId'] = str(grade_id)
          else:
              raise InvalidArgument