docs: def add_semantic_data(self, path_as_list, value, key):
          """ Adds a semantic data entry.
  
          :param list path_as_list: The path in the vividict to enter the value
          :param value: The value of the new entry.
          :param key: The key of the new entry.
          :return:
          """
          assert isinstance(key, string_types)
          target_dict = self.get_semantic_data(path_as_list)
          target_dict[key] = value
          return path_as_list + [key]