BioASQ  AttributeError: 'BuilderConfig' object has no attribute 'schema'
Opened by DSLituiev (open)

## Describe the bug
I am trying to load a dataset from drive and running into an error. 

## Steps to reproduce the bug
```python
data_dir = "/Users/dlituiev/repos/datasets/bioasq/BioASQ-training9b"
bioasq_task_b = load_dataset("aps/bioasq_task_b", data_dir=data_dir)
```

## Actual results

`AttributeError: 'BuilderConfig' object has no attribute 'schema'`

<details>

```
Using custom data configuration default-a1ca3e05be5abf2f
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Input In [8], in <cell line: 2>()
      1 data_dir = "/Users/dlituiev/repos/datasets/bioasq/BioASQ-training9b"
----> 2 bioasq_task_b = load_dataset("aps/bioasq_task_b", data_dir=data_dir)

File ~/opt/anaconda3/envs/spacy3/lib/python3.10/site-packages/datasets/load.py:1723, in load_dataset(path, name, data_dir, data_files, split, cache_dir, features, download_config, download_mode, ignore_verifications, keep_in_memory, save_infos, revision, use_auth_token, task, streaming, **config_kwargs)
   1720 ignore_verifications = ignore_verifications or save_infos
   1722 # Create a dataset builder
-> 1723 builder_instance = load_dataset_builder(
   1724     path=path,
   1725     name=name,
   1726     data_dir=data_dir,
   1727     data_files=data_files,
   1728     cache_dir=cache_dir,
   1729     features=features,
   1730     download_config=download_config,
   1731     download_mode=download_mode,
   1732     revision=revision,
   1733     use_auth_token=use_auth_token,
   1734     **config_kwargs,
   1735 )
   1737 # Return iterable dataset in case of streaming
   1738 if streaming:

File ~/opt/anaconda3/envs/spacy3/lib/python3.10/site-packages/datasets/load.py:1526, in load_dataset_builder(path, name, data_dir, data_files, cache_dir, features, download_config, download_mode, revision, use_auth_token, **config_kwargs)
   1523     raise ValueError(error_msg)
   1525 # Instantiate the dataset builder
-> 1526 builder_instance: DatasetBuilder = builder_cls(
   1527     cache_dir=cache_dir,
   1528     config_name=config_name,
   1529     data_dir=data_dir,
   1530     data_files=data_files,
   1531     hash=hash,
   1532     features=features,
   1533     use_auth_token=use_auth_token,
   1534     **builder_kwargs,
   1535     **config_kwargs,
   1536 )
   1538 return builder_instance

File ~/opt/anaconda3/envs/spacy3/lib/python3.10/site-packages/datasets/builder.py:1154, in GeneratorBasedBuilder.__init__(self, writer_batch_size, *args, **kwargs)
   1153 def __init__(self, *args, writer_batch_size=None, **kwargs):
-> 1154     super().__init__(*args, **kwargs)
   1155     # Batch size used by the ArrowWriter
   1156     # It defines the number of samples that are kept in memory before writing them
   1157     # and also the length of the arrow chunks
   1158     # None means that the ArrowWriter will use its default value
   1159     self._writer_batch_size = writer_batch_size or self.DEFAULT_WRITER_BATCH_SIZE

File ~/opt/anaconda3/envs/spacy3/lib/python3.10/site-packages/datasets/builder.py:307, in DatasetBuilder.__init__(self, cache_dir, config_name, hash, base_path, info, features, use_auth_token, repo_id, data_files, data_dir, name, **config_kwargs)
    305 if info is None:
    306     info = self.get_exported_dataset_info()
--> 307     info.update(self._info())
    308     info.builder_name = self.name
    309     info.config_name = self.config.name

File ~/.cache/huggingface/modules/datasets_modules/datasets/aps--bioasq_task_b/3d54b1213f7e8001eef755af92877f9efa44161ee83c2a70d5d649defa95759e/bioasq_task_b.py:477, in BioasqTaskBDataset._info(self)
    474 def _info(self):
    475 
    476     # BioASQ Task B source schema
--> 477     if self.config.schema == "source":
    478         features = datasets.Features(
    479             {
    480                 "id": datasets.Value("string"),
   (...)
    504             }
    505         )
    506     # simplified schema for QA tasks

AttributeError: 'BuilderConfig' object has no attribute 'schema'
```

</details>

## Environment info

- `datasets` version: 2.4.0
- Platform: macOS-10.16-x86_64-i386-64bit
- Python version: 3.10.4
- PyArrow version: 9.0.0
- Pandas version: 1.4.3

Comments:
Following worked:

```
data_dir = "/Users/dlituiev/repos/datasets/bioasq/"
bioasq_task_b = load_dataset("aps/bioasq_task_b", data_dir=data_dir, name="bioasq_9b_source")
```

Would maintainers be open to one of the following:
- automating this with a latest default config (e.g.  `bioasq_9b_source`); how can this be generalized to other datasets?
- providing an actionable error message that lists available `name` values? I only got available `name` values once I've provided something there (`name="aps/bioasq_task_b"`), before it would not even mention that it requires `name` argument

Hi ! In general the list of available configurations is prompted. I think this is an issue with this specific dataset.

Feel free to open a new discussions at https://huggingface.co/datasets/aps/bioasq_task_b/discussions

cc @apsdehal

In particular it sounds like the `BUILDER_CONFIG_CLASS= BigBioConfig ` class attribute is missing and the _info should account for schema being None and raise an error