def generate_semantic_data_key(used_semantic_keys):
    """ Create a new and unique semantic data key

    :param list used_semantic_keys: Handed list of keys already in use
    :rtype: str
    :return: semantic_data_id
    """
    semantic_data_id_counter = -1
    while True:
        semantic_data_id_counter += 1
        if 'semantic data key ' + str(semantic_data_id_counter
            ) not in used_semantic_keys:
            break
    return 'semantic data key ' + str(semantic_data_id_counter)
