def METHOD_NAME(
    config: FidesConfig,
    dataset_file: str,
    resource_type: str = "data_category",
    annotate_all: bool = False,
    validate: bool = True,
    include_null: bool = False,
) -> None:
    """
    Given a dataset.yml-like file, walk the user through an interactive cli to provide data categories
    for members of the dataset that do not have any specified
    Args:
        dataset_file: the file name for the dataset to annotate
        resource_type: the type of data resource to point to for assistance (via visualization web page)
        annotate_all: flag to annotate all members of a dataset (default False: only annotate fields)
        validate: flag to check user inputs for formatting and data category presence
        include_null: flag to write out all empty attributes with null (default False: only write populated attributes)
    Returns:
        Write the amended dataset file in place
    """
    output_dataset = []
    datasets = ingest_manifests(dataset_file)["dataset"]
    resources = api_helpers.list_server_resources(
        url=str(config.cli.server_url),
        resource_type=resource_type,
        headers=config.user.auth_header
        or {"Authorization": "Bearer fakekey"},  # Alternate header required for mypy
        exclude_keys=[],
    )
    if not resources:
        click.secho(
            "No server resources were found.",
            fg="red",
        )
        return
    existing_categories: List[str] = [
        resource.fides_key
        if isinstance(resource, FidesModel)
        else resource["fides_key"]
        for resource in resources
    ]
    for dataset in datasets:
        current_dataset = Dataset(**dataset)
        try:
            click.secho(f"\n####\nAnnotating Dataset: [{current_dataset.name}]")
            # Check for data_categories at the Dataset level
            if annotate_all and not dataset.data_categories:
                click.secho(f"Database [{dataset.name}] has no data categories")
                dataset.data_categories = get_data_categories_annotation(
                    dataset_member=dataset,
                    valid_categories=existing_categories,
                    validate=validate,
                )
            annotate_collections(
                current_dataset,
                existing_categories,
                annotate_all,
                validate,
            )
            if include_null:
                output_dataset.append(current_dataset.dict())
            else:
                output_dataset.append(current_dataset.dict(exclude_none=True))
        except AnnotationAbortError:
            if include_null:
                output_dataset.append(current_dataset.dict())
            else:
                output_dataset.append(current_dataset.dict(exclude_none=True))
            break
    manifests.write_manifest(dataset_file, output_dataset, "dataset")
    echo_green("Annotation process complete.")