Repository: aeye-lab/pymovements
Pull request #1096 (2025-04-16 23:23:37)

feat: add `DatasetDefinition.long_name`
## Description

instead of just our key add a more descriptive long (somtimes full) name

## Type of change

Remove irrelevant items:
- New functionality
- Documentation update

## Context

#### related issues:
- #1075 


codecov[bot]: ## [Codecov](https://app.codecov.io/gh/aeye-lab/pymovements/pull/1096?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=aeye-lab) Report
All modified and coverable lines are covered by tests :white_check_mark:
> Project coverage is 100.00%. Comparing base [(`af69b1c`)](https://app.codecov.io/gh/aeye-lab/pymovements/commit/af69b1c147300f4f59c2d42ac99a969ac842634e?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=aeye-lab) to head [(`5e0a01a`)](https://app.codecov.io/gh/aeye-lab/pymovements/commit/5e0a01a7e87a8b904065115deb89e01a995d5fe0?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=aeye-lab).

<details><summary>Additional details and impacted files</summary>


```diff
@@            Coverage Diff            @@
##              main     #1096   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           87        87           
  Lines         3720      3745   +25     
  Branches       638       638           
=========================================
+ Hits          3720      3745   +25     
```

</details>

[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/aeye-lab/pymovements/pull/1096?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=aeye-lab).   
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=aeye-lab).

<details><summary> :rocket: New features to boost your workflow: </summary>

- :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
</details>

Patch:
diff --git a/src/pymovements/dataset/dataset_definition.py b/src/pymovements/dataset/dataset_definition.py
index 274b82d..e815e04 100644
--- a/src/pymovements/dataset/dataset_definition.py
+++ b/src/pymovements/dataset/dataset_definition.py
@@ -47,6 +47,8 @@ class DatasetDefinition:
     ----------
     name: str
         The name of the dataset. (default: '.')
+    long_name: str
+        The entire name of the dataset. (default: '.')
     has_files: dict[str, bool]
         Indicate whether the dataset contains 'gaze', 'precomputed_events', and
         'precomputed_reading_measures'.
@@ -142,6 +144,9 @@ class DatasetDefinition:
 
     # pylint: disable=too-many-instance-attributes
     name: str = '.'
+
+    long_name: str = '.'
+
     has_files: dict[str, bool] = field(default_factory=dict)
 
     mirrors: dict[str, list[str]] | dict[str, tuple[str, ...]] = field(default_factory=dict)
diff --git a/src/pymovements/datasets/bsc.py b/src/pymovements/datasets/bsc.py
index b7e9e84..257637e 100644
--- a/src/pymovements/datasets/bsc.py
+++ b/src/pymovements/datasets/bsc.py
@@ -44,6 +44,9 @@ class BSC(DatasetDefinition):
     name: str
         The name of the dataset.
 
+    long_name: str
+        The entire name of the dataset.
+
     has_files: dict[str, bool]
         Indicate whether the dataset contains 'gaze', 'precomputed_events', and
         'precomputed_reading_measures'.
@@ -104,6 +107,8 @@ class BSC(DatasetDefinition):
 
     name: str = 'BSC'
 
+    long_name: str = 'Beijing Sentence Corpus'
+
     has_files: dict[str, bool] = field(
         default_factory=lambda: {
             'gaze': False,
diff --git a/src/pymovements/datasets/bsc.yaml b/src/pymovements/datasets/bsc.yaml
index 5e05a4c..4fa3ce5 100644
--- a/src/pymovements/datasets/bsc.yaml
+++ b/src/pymovements/datasets/bsc.yaml
@@ -1,5 +1,7 @@
 name: BSC
 
+long_name: "Beijing Sentence Corpus"
+
 has_files:
   gaze: false
   precomputed_events: true
diff --git a/src/pymovements/datasets/bsc2.py b/src/pymovements/datasets/bsc2.py
index 740b539..2ecc4f4 100644
--- a/src/pymovements/datasets/bsc2.py
+++ b/src/pymovements/datasets/bsc2.py
@@ -45,6 +45,9 @@ class BSCII(DatasetDefinition):
     name: str
         The name of the dataset.
 
+    long_name: str
+        The entire name of the dataset.
+
     has_files: dict[str, bool]
         Indicate whether the dataset contains 'gaze', 'precomputed_events', and
         'precomputed_reading_measures'.
@@ -105,6 +108,8 @@ class BSCII(DatasetDefinition):
 
     name: str = 'BSCII'
 
+    long_name: str = 'Beijing Sentence Corpus II'
+
     has_files: dict[str, bool] = field(
         default_factory=lambda: {
             'gaze': False,
diff --git a/src/pymovements/datasets/bsc2.yaml b/src/pymovements/datasets/bsc2.yaml
index 78c60ac..955b723 100644
--- a/src/pymovements/datasets/bsc2.yaml
+++ b/src/pymovements/datasets/bsc2.yaml
@@ -1,5 +1,7 @@
 name: "BSCII"
 
+long_name: "Beijing Sentence Corpus II"
+
 has_files:
   gaze: false
   precomputed_events: true
diff --git a/src/pymovements/datasets/codecomprehension.py b/src/pymovements/datasets/codecomprehension.py
index cdbdfde..f1e93c1 100644
--- a/src/pymovements/datasets/codecomprehension.py
+++ b/src/pymovements/datasets/codecomprehension.py
@@ -44,6 +44,9 @@ class CodeComprehension(DatasetDefinition):
     name: str
         The name of the dataset.
 
+    long_name: str
+        The entire name of the dataset.
+
     has_files: dict[str, bool]
         Indicate whether the dataset contains 'gaze', 'precomputed_events', and
         'precomputed_reading_measures'.
@@ -98,6 +101,8 @@ class CodeComprehension(DatasetDefinition):
 
     name: str = 'CodeComprehension'
 
+    long_name: str = 'Code Comprehension dataset'
+
     has_files: dict[str, bool] = field(
         default_factory=lambda: {
             'gaze': False,
diff --git a/src/pymovements/datasets/codecomprehension.yaml b/src/pymovements/datasets/codecomprehension.yaml
index f973bf0..d9eb456 100644
--- a/src/pymovements/datasets/codecomprehension.yaml
+++ b/src/pymovements/datasets/codecomprehension.yaml
@@ -1,5 +1,7 @@
 name: CodeComprehension
 
+long_name: "Code Comprehension dataset"
+
 has_files:
   gaze: false
   precomputed_events: true
diff --git a/src/pymovements/datasets/copco.py b/src/pymovements/datasets/copco.py
index ac5fbbf..f102593 100644
--- a/src/pymovements/datasets/copco.py
+++ b/src/pymovements/datasets/copco.py
@@ -48,6 +48,9 @@ class CopCo(DatasetDefinition):
     name: str
         The name of the dataset.
 
+    long_name: str
+        The entire name of the dataset.
+
     has_files: dict[str, bool]
         Indicate whether the dataset contains 'gaze', 'precomputed_events', and
         'precomputed_reading_measures'.
@@ -126,6 +129,8 @@ class CopCo(DatasetDefinition):
 
     name: str = 'CopCo'
 
+    long_name: str = 'Copenhagen Corpus of Eye-Tracking Recordings from Natural Reading'
+
     has_files: dict[str, bool] = field(
         default_factory=lambda: {
             'gaze': True,
diff --git a/src/pymovements/datasets/copco.yaml b/src/pymovements/datasets/copco.yaml
index 9739f19..88017fa 100644
--- a/src/pymovements/datasets/copco.yaml
+++ b/src/pymovements/datasets/copco.yaml
@@ -1,5 +1,7 @@
 name: "CopCo"
 
+long_name: 'Copenhagen Corpus of Eye-Tracking Recordings from Natural Reading'
+
 has_files:
   gaze: true
   precomputed_events: true
diff --git a/src/pymovements/datasets/daemons.py b/src/pymovements/datasets/daemons.py
index 090eb98..182bc72 100644
--- a/src/pymovements/datasets/daemons.py
+++ b/src/pymovements/datasets/daemons.py
@@ -49,6 +49,9 @@ class DAEMONS(DatasetDefinition):
     name: str
         The name of the dataset.
 
+    long_name: str
+        The entire name of the dataset.
+
     has_files: dict[str, bool]
         Indicate whether the dataset contains 'gaze', 'precomputed_events', and
         'precomputed_reading_measures'.
@@ -103,6 +106,8 @@ class DAEMONS(DatasetDefinition):
 
     name: str = 'DAEMONS'
 
+    long_name: str = 'Potsdam data set of eye movement on natural scenes'
+
     has_files: dict[str, bool] = field(
         default_factory=lambda: {
             'gaze': False,
diff --git a/src/pymovements/datasets/daemons.yaml b/src/pymovements/datasets/daemons.yaml
index 3779bbb..a279980 100644
--- a/src/pymovements/datasets/daemons.yaml
+++ b/src/pymovements/datasets/daemons.yaml
@@ -1,5 +1,7 @@
 name: "DAEMONS"
 
+long_name: 'Potsdam data set of eye movement on natural scenes'
+
 has_files:
   gaze: false
   precomputed_events: true
diff --git a/src/pymovements/datasets/didec.py b/src/pymovements/datasets/didec.py
index 8a9171e..f23bd6b 100644
--- a/src/pymovements/datasets/didec.py
+++ b/src/pymovements/datasets/didec.py
@@ -45,6 +45,9 @@ class DIDEC(DatasetDefinition):
     name: str
         The name of the dataset.
 
+    long_name: str
+        The entire name of the dataset.
+
     has_files: dict[str, bool]
         Indicate whether the dataset contains 'gaze', 'precomputed_events', and
         'precomputed_reading_measures'.
@@ -122,6 +125,8 @@ class DIDEC(DatasetDefinition):
 
     name: str = 'DIDEC'
 
+    long_name: str = 'Dutch Image Description and Eye-tracking Corpus'
+
     has_files: dict[str, bool] = field(
         default_factory=lambda: {
             'gaze': True,
diff --git a/src/pymovements/datasets/didec.yaml b/src/pymovements/datasets/didec.yaml
index 8462490..d4c211c 100644
--- a/src/pymovements/datasets/didec.yaml
+++ b/src/pymovements/datasets/didec.yaml
@@ -1,5 +1,7 @@
 name: "DIDEC"
 
+long_name: 'Dutch Image Description and Eye-tracking Corpus'
+
 has_files:
   gaze: true
   precomputed_events: false
diff --git a/src/pymovements/datasets/emtec.py b/src/pymovements/datasets/emtec.py
index c266298..1deb7ae 100644
--- a/src/pymovements/datasets/emtec.py
+++ b/src/pymovements/datasets/emtec.py
@@ -45,6 +45,9 @@ class EMTeC(DatasetDefinition):
     name: str
         The name of the dataset.
 
+    long_name: str
+        The entire name of the dataset.
+
     has_files: dict[str, bool]
         Indicate whether the dataset contains 'gaze', 'precomputed_events', and
         'precomputed_reading_measures'.
@@ -120,6 +123,8 @@ class EMTeC(DatasetDefinition):
 
     name: str = 'EMTeC'
 
+    long_name: str = 'Eye movements on Machine-generated Texts Corpus'
+
     has_files: dict[str, bool] = field(
         default_factory=lambda: {
             'gaze': True,
diff --git a/src/pymovements/datasets/emtec.yaml b/src/pymovements/datasets/emtec.yaml
index 861756c..565329e 100644
--- a/src/pymovements/datasets/emtec.yaml
+++ b/src/pymovements/datasets/emtec.yaml
@@ -1,5 +1,7 @@
 name: "EMTeC"
 
+long_name: 'Eye movements on Machine-generated Texts Corpus'
+
 has_files:
   gaze: true
   precomputed_events: true
diff --git a/src/pymovements/datasets/fakenews.py b/src/pymovements/datasets/fakenews.py
index 0ffd3d3..a5d0483 100644
--- a/src/pymovements/datasets/fakenews.py
+++ b/src/pymovements/datasets/fakenews.py
@@ -44,6 +44,9 @@ class FakeNewsPerception(DatasetDefinition):
     ----------
     name: str
         The name of the dataset.
+
+    long_name: str
+        The entire name of the dataset.
     has_files: dict[str, bool]
         Indicate whether the dataset contains 'gaze', 'precomputed_events', and
         'precomputed_reading_measures'.
@@ -73,6 +76,8 @@ class FakeNewsPerception(DatasetDefinition):
 
     name: str = 'FakeNewsPerception'
 
+    long_name: str = 'Fake News Perception Eye Tracking Corpus'
+
     has_files: dict[str, bool] = field(
         default_factory=lambda: {
             'gaze': False,
diff --git a/src/pymovements/datasets/fakenews.yaml b/src/pymovements/datasets/fakenews.yaml
index 0f1f0d4..b763e74 100644
--- a/src/pymovements/datasets/fakenews.yaml
+++ b/src/pymovements/datasets/fakenews.yaml
@@ -1,5 +1,7 @@
 name: "FakeNewsPerception"
 
+long_name:  'Fake News Perception Eye Tracking Corpus'
+
 has_files:
   gaze: false
   precomputed_events: true
diff --git a/src/pymovements/datasets/gaze_graph.py b/src/pymovements/datasets/gaze_graph.py
index dca70e4..5928f2d 100644
--- a/src/pymovements/datasets/gaze_graph.py
+++ b/src/pymovements/datasets/gaze_graph.py
@@ -51,6 +51,9 @@ class GazeGraph(DatasetDefinition):
     name: str
         The name of the dataset.
 
+    long_name: str
+        The entire name of the dataset.
+
     has_files: dict[str, bool]
         Indicate whether the dataset contains 'gaze', 'precomputed_events', and
         'precomputed_reading_measures'.
@@ -129,6 +132,8 @@ class GazeGraph(DatasetDefinition):
 
     name: str = 'GazeGraph'
 
+    long_name: str = 'GazeGraph dataset'
+
     has_files: dict[str, bool] = field(
         default_factory=lambda: {
             'gaze': True,
diff --git a/src/pymovements/datasets/gaze_graph.yaml b/src/pymovements/datasets/gaze_graph.yaml
index afb6498..4caad3c 100644
--- a/src/pymovements/datasets/gaze_graph.yaml
+++ b/src/pymovements/datasets/gaze_graph.yaml
@@ -1,5 +1,7 @@
 name: "GazeGraph"
 
+long_name: 'GazeGraph dataset'
+
 has_files:
   gaze: true
   precomputed_events: false
diff --git a/src/pymovements/datasets/gaze_on_faces.py b/src/pymovements/datasets/gaze_on_faces.py
index bbd8629..5b9daef 100644
--- a/src/pymovements/datasets/gaze_on_faces.py
+++ b/src/pymovements/datasets/gaze_on_faces.py
@@ -49,6 +49,9 @@ class GazeOnFaces(DatasetDefinition):
     name: str
         The name of the dataset.
 
+    long_name: str
+        The entire name of the dataset.
+
     has_files: dict[str, bool]
         Indicate whether the dataset contains 'gaze', 'precomputed_events', and
         'precomputed_reading_measures'.
@@ -121,6 +124,8 @@ class GazeOnFaces(DatasetDefinition):
 
     name: str = 'GazeOnFaces'
 
+    long_name: str = 'GazeOnFaces dataset'
+
     has_files: dict[str, bool] = field(
         default_factory=lambda: {
             'gaze': True,
diff --git a/src/pymovements/datasets/gaze_on_faces.yaml b/src/pymovements/datasets/gaze_on_faces.yaml
index e1eb804..4ef784a 100644
--- a/src/pymovements/datasets/gaze_on_faces.yaml
+++ b/src/pymovements/datasets/gaze_on_faces.yaml
@@ -1,5 +1,7 @@
 name: "GazeOnFaces"
 
+long_name: 'GazeOnFaces dataset'
+
 has_files:
   gaze: true
   precomputed_events: false
diff --git a/src/pymovements/datasets/gazebase.py b/src/pymovements/datasets/gazebase.py
index 594e1ce..ad08cae 100644
--- a/src/pymovements/datasets/gazebase.py
+++ b/src/pymovements/datasets/gazebase.py
@@ -53,6 +53,9 @@ class GazeBase(DatasetDefinition):
     name: str
         The name of the dataset.
 
+    long_name: str
+        The entire name of the dataset.
+
     has_files: dict[str, bool]
         Indicate whether the dataset contains 'gaze', 'precomputed_events', and
         'precomputed_reading_measures'.
@@ -126,6 +129,8 @@ class GazeBase(DatasetDefinition):
 
     name: str = 'GazeBase'
 
+    long_name: str = 'GazeBase dataset'
+
     has_files: dict[str, bool] = field(
         default_factory=lambda: {
             'gaze': True,
diff --git a/src/pymovements/datasets/gazebase.yaml b/src/pymovements/datasets/gazebase.yaml
index 329a622..38c65ec 100644
--- a/src/pymovements/datasets/gazebase.yaml
+++ b/src/pymovements/datasets/gazebase.yaml
@@ -1,5 +1,7 @@
 name: "GazeBase"
 
+long_name: "GazeBase dataset"
+
 has_files:
   gaze: true
   precomputed_events: false
diff --git a/src/pymovements/datasets/gazebasevr.py b/src/pymovements/datasets/gazebasevr.py
index a6d234d..fc22a5c 100644
--- a/src/pymovements/datasets/gazebasevr.py
+++ b/src/pymovements/datasets/gazebasevr.py
@@ -54,6 +54,9 @@ class GazeBaseVR(DatasetDefinition):
     name: str
         The name of the dataset.
 
+    long_name: str
+        The entire name of the dataset.
+
     has_files: dict[str, bool]
         Indicate whether the dataset contains 'gaze', 'precomputed_events', and
         'precomputed_reading_measures'.
@@ -127,6 +130,8 @@ class GazeBaseVR(DatasetDefinition):
 
     name: str = 'GazeBaseVR'
 
+    long_name: str = 'GazeBaseVR dataset'
+
     has_files: dict[str, bool] = field(
         default_factory=lambda: {
             'gaze': True,
diff --git a/src/pymovements/datasets/gazebasevr.yaml b/src/pymovements/datasets/gazebasevr.yaml
index 6b65d84..a378571 100644
--- a/src/pymovements/datasets/gazebasevr.yaml
+++ b/src/pymovements/datasets/gazebasevr.yaml
@@ -1,5 +1,7 @@
 name: "GazeBaseVR"
 
+long_name: 'GazeBaseVR dataset'
+
 has_files:
   gaze: true
   precomputed_events: false
diff --git a/src/pymovements/datasets/hbn.py b/src/pymovements/datasets/hbn.py
index f9ea5f8..8d6599d 100644
--- a/src/pymovements/datasets/hbn.py
+++ b/src/pymovements/datasets/hbn.py
@@ -48,6 +48,9 @@ class HBN(DatasetDefinition):
     name: str
         The name of the dataset.
 
+    long_name: str
+        The entire name of the dataset.
+
     has_files: dict[str, bool]
         Indicate whether the dataset contains 'gaze', 'precomputed_events', and
         'precomputed_reading_measures'.
@@ -120,6 +123,8 @@ class HBN(DatasetDefinition):
 
     name: str = 'HBN'
 
+    long_name: str = 'Healthy Brain Network dataset'
+
     has_files: dict[str, bool] = field(
         default_factory=lambda: {
             'gaze': True,
diff --git a/src/pymovements/datasets/hbn.yaml b/src/pymovements/datasets/hbn.yaml
index 519c79e..4c1722f 100644
--- a/src/pymovements/datasets/hbn.yaml
+++ b/src/pymovements/datasets/hbn.yaml
@@ -1,5 +1,7 @@
 name: "HBN"
 
+long_name: 'Healthy Brain Network dataset'
+
 has_files:
   gaze: true
   precomputed_events: false
diff --git a/src/pymovements/datasets/interead.py b/src/pymovements/datasets/interead.py
index 7a9a573..0a00aea 100644
--- a/src/pymovements/datasets/interead.py
+++ b/src/pymovements/datasets/interead.py
@@ -45,6 +45,9 @@ class InteRead(DatasetDefinition):
     name: str
         The name of the dataset.
 
+    long_name: str
+        The entire name of the dataset.
+
     has_files: dict[str, bool]
         Indicate whether the dataset contains 'gaze', 'precomputed_events', and
         'precomputed_reading_measures'.
@@ -124,6 +127,8 @@ class InteRead(DatasetDefinition):
 
     name: str = 'InteRead'
 
+    long_name: str = 'Interrupted Reading dataset'
+
     has_files: dict[str, bool] = field(
         default_factory=lambda: {
             'gaze': True,
diff --git a/src/pymovements/datasets/interead.yaml b/src/pymovements/datasets/interead.yaml
index c660804..cc50aba 100644
--- a/src/pymovements/datasets/interead.yaml
+++ b/src/pymovements/datasets/interead.yaml
@@ -1,5 +1,7 @@
 name: "InteRead"
 
+long_name: "Interrupted Reading dataset"
+
 has_files:
   gaze: true
   precomputed_events: true
diff --git a/src/pymovements/datasets/judo1000.py b/src/pymovements/datasets/judo1000.py
index f4dbf4e..c91e537 100644
--- a/src/pymovements/datasets/judo1000.py
+++ b/src/pymovements/datasets/judo1000.py
@@ -47,6 +47,9 @@ class JuDo1000(DatasetDefinition):
     name: str
         The name of the dataset.
 
+    long_name: str
+        The entire name of the dataset.
+
     has_files: dict[str, bool]
         Indicate whether the dataset contains 'gaze', 'precomputed_events', and
         'precomputed_reading_measures'.
@@ -126,6 +129,8 @@ class JuDo1000(DatasetDefinition):
 
     name: str = 'JuDo1000'
 
+    long_name: str = 'Jumping Dots 1000 Hz dataset'
+
     has_files: dict[str, bool] = field(
         default_factory=lambda: {
             'gaze': True,
diff --git a/src/pymovements/datasets/judo1000.yaml b/src/pymovements/datasets/judo1000.yaml
index 74eacbe..d7ea2c6 100644
--- a/src/pymovements/datasets/judo1000.yaml
+++ b/src/pymovements/datasets/judo1000.yaml
@@ -1,5 +1,7 @@
 name: "JuDo1000"
 
+long_name: 'Jumping Dots 1000 Hz dataset'
+
 has_files:
   gaze: true
   precomputed_events: false
diff --git a/src/pymovements/datasets/mousecursor.py b/src/pymovements/datasets/mousecursor.py
index 2d77122..b035f09 100644
--- a/src/pymovements/datasets/mousecursor.py
+++ b/src/pymovements/datasets/mousecursor.py
@@ -48,6 +48,9 @@ class MouseCursor(DatasetDefinition):
     name: str
         The name of the dataset.
 
+    long_name: str
+        The entire name of the dataset.
+
     has_files: dict[str, bool]
         Indicate whether the dataset contains 'gaze', 'precomputed_events', and
         'precomputed_reading_measures'.
@@ -127,6 +130,8 @@ class MouseCursor(DatasetDefinition):
 
     name: str = 'MouseCursor'
 
+    long_name: str = 'Mouse Cursor dataset'
+
     has_files: dict[str, bool] = field(
         default_factory=lambda: {
             'gaze': True,
diff --git a/src/pymovements/datasets/mousecursor.yaml b/src/pymovements/datasets/mousecursor.yaml
index ac8776d..718055e 100644
--- a/src/pymovements/datasets/mousecursor.yaml
+++ b/src/pymovements/datasets/mousecursor.yaml
@@ -1,5 +1,7 @@
 name: "MouseCursor"
 
+long_name: "Mouse Cursor dataset"
+
 has_files:
   gaze: true
   precomputed_events: false
diff --git a/src/pymovements/datasets/potec.py b/src/pymovements/datasets/potec.py
index db96851..e201d78 100644
--- a/src/pymovements/datasets/potec.py
+++ b/src/pymovements/datasets/potec.py
@@ -57,6 +57,9 @@ class PoTeC(DatasetDefinition):
     name: str
         The name of the dataset.
 
+    long_name: str
+        The entire name of the dataset.
+
     has_files: dict[str, bool]
         Indicate whether the dataset contains 'gaze', 'precomputed_events', and
         'precomputed_reading_measures'.
@@ -126,6 +129,8 @@ class PoTeC(DatasetDefinition):
 
     name: str = 'PoTeC'
 
+    long_name: str = 'Potsdam Textbook Corpus'
+
     has_files: dict[str, bool] = field(
         default_factory=lambda: {
             'gaze': True,
diff --git a/src/pymovements/datasets/potec.yaml b/src/pymovements/datasets/potec.yaml
index aaa5f7d..5e707d6 100644
--- a/src/pymovements/datasets/potec.yaml
+++ b/src/pymovements/datasets/potec.yaml
@@ -1,5 +1,7 @@
 name: "PoTeC"
 
+long_name: "Potsdam Textbook Corpus"
+
 has_files:
   gaze: true
   precomputed_events: false
diff --git a/src/pymovements/datasets/potsdam_binge_remote_pvt.py b/src/pymovements/datasets/potsdam_binge_remote_pvt.py
index 3955e30..c1820b0 100644
--- a/src/pymovements/datasets/potsdam_binge_remote_pvt.py
+++ b/src/pymovements/datasets/potsdam_binge_remote_pvt.py
@@ -48,6 +48,9 @@ class PotsdamBingeRemotePVT(DatasetDefinition):
     name: str
         The name of the dataset.
 
+    long_name: str
+        The entire name of the dataset.
+
     has_files: dict[str, bool]
         Indicate whether the dataset contains 'gaze', 'precomputed_events', and
         'precomputed_reading_measures'.
@@ -131,6 +134,8 @@ class PotsdamBingeRemotePVT(DatasetDefinition):
 
     name: str = 'PotsdamBingeRemotePVT'
 
+    long_name: str = 'Potsdam Binge Remote PVT dataset'
+
     has_files: dict[str, bool] = field(
         default_factory=lambda: {
             'gaze': True,
diff --git a/src/pymovements/datasets/potsdam_binge_remote_pvt.yaml b/src/pymovements/datasets/potsdam_binge_remote_pvt.yaml
index bfc6a5f..ebdc15f 100644
--- a/src/pymovements/datasets/potsdam_binge_remote_pvt.yaml
+++ b/src/pymovements/datasets/potsdam_binge_remote_pvt.yaml
@@ -1,5 +1,7 @@
 name: "PotsdamBingeRemotePVT"
 
+long_name: 'Potsdam Binge Remote PVT dataset'
+
 has_files:
   gaze: true
   precomputed_events: false
diff --git a/src/pymovements/datasets/potsdam_binge_wearable_pvt.py b/src/pymovements/datasets/potsdam_binge_wearable_pvt.py
index 0d8225c..84cafae 100644
--- a/src/pymovements/datasets/potsdam_binge_wearable_pvt.py
+++ b/src/pymovements/datasets/potsdam_binge_wearable_pvt.py
@@ -49,6 +49,9 @@ class PotsdamBingeWearablePVT(DatasetDefinition):
     name: str
         The name of the dataset.
 
+    long_name: str
+        The entire name of the dataset.
+
     has_files: dict[str, bool]
         Indicate whether the dataset contains 'gaze', 'precomputed_events', and
         'precomputed_reading_measures'.
@@ -132,6 +135,8 @@ class PotsdamBingeWearablePVT(DatasetDefinition):
 
     name: str = 'PotsdamBingeWearablePVT'
 
+    long_name: str = 'Potsdam Binge Wearable PVT dataset'
+
     has_files: dict[str, bool] = field(
         default_factory=lambda: {
             'gaze': True,
diff --git a/src/pymovements/datasets/potsdam_binge_wearable_pvt.yaml b/src/pymovements/datasets/potsdam_binge_wearable_pvt.yaml
index 063f45d..7066d77 100644
--- a/src/pymovements/datasets/potsdam_binge_wearable_pvt.yaml
+++ b/src/pymovements/datasets/potsdam_binge_wearable_pvt.yaml
@@ -1,5 +1,7 @@
 name: "PotsdamBingeWearablePVT"
 
+long_name: 'Potsdam Binge Wearable PVT dataset'
+
 has_files:
   gaze: true
   precomputed_events: false
diff --git a/src/pymovements/datasets/provo.py b/src/pymovements/datasets/provo.py
index 5d3264d..dcf17db 100644
--- a/src/pymovements/datasets/provo.py
+++ b/src/pymovements/datasets/provo.py
@@ -47,6 +47,9 @@ class Provo(DatasetDefinition):
     name: str
         The name of the dataset.
 
+    long_name: str
+        The entire name of the dataset.
+
     has_files: dict[str, bool]
         Indicate whether the dataset contains 'gaze', 'precomputed_events', and
         'precomputed_reading_measures'.
@@ -101,6 +104,8 @@ class Provo(DatasetDefinition):
 
     name: str = 'Provo'
 
+    long_name: str = 'Provo Corpus'
+
     has_files: dict[str, bool] = field(
         default_factory=lambda: {
             'gaze': False,
diff --git a/src/pymovements/datasets/provo.yaml b/src/pymovements/datasets/provo.yaml
index bfa10cf..3077a23 100644
--- a/src/pymovements/datasets/provo.yaml
+++ b/src/pymovements/datasets/provo.yaml
@@ -1,5 +1,7 @@
 name: "Provo"
 
+long_name: 'Provo Corpus'
+
 has_files:
   gaze: false
   precomputed_events: true
diff --git a/src/pymovements/datasets/sb_sat.py b/src/pymovements/datasets/sb_sat.py
index 1879e9f..bb99b3f 100644
--- a/src/pymovements/datasets/sb_sat.py
+++ b/src/pymovements/datasets/sb_sat.py
@@ -47,6 +47,9 @@ class SBSAT(DatasetDefinition):
     name: str
         The name of the dataset.
 
+    long_name: str
+        The entire name of the dataset.
+
     has_files: dict[str, bool]
         Indicate whether the dataset contains 'gaze', 'precomputed_events', and
         'precomputed_reading_measures'.
@@ -125,6 +128,8 @@ class SBSAT(DatasetDefinition):
 
     name: str = 'SBSAT'
 
+    long_name: str = 'Stony Brook SAT reading fixation dataset'
+
     has_files: dict[str, bool] = field(
         default_factory=lambda: {
             'gaze': True,
diff --git a/src/pymovements/datasets/sb_sat.yaml b/src/pymovements/datasets/sb_sat.yaml
index 95040e9..fdf72f0 100644
--- a/src/pymovements/datasets/sb_sat.yaml
+++ b/src/pymovements/datasets/sb_sat.yaml
@@ -1,5 +1,7 @@
 name: SBSAT
 
+long_name: "Stony Brook SAT reading fixation dataset"
+
 has_files:
   gaze: true
   precomputed_events: true
diff --git a/src/pymovements/datasets/toy_dataset.py b/src/pymovements/datasets/toy_dataset.py
index a926027..575a62e 100644
--- a/src/pymovements/datasets/toy_dataset.py
+++ b/src/pymovements/datasets/toy_dataset.py
@@ -45,6 +45,9 @@ class ToyDataset(DatasetDefinition):
     name: str
         The name of the dataset.
 
+    long_name: str
+        The entire name of the dataset.
+
     has_files: dict[str, bool]
         Indicate whether the dataset contains 'gaze', 'precomputed_events', and
         'precomputed_reading_measures'.
@@ -117,6 +120,8 @@ class ToyDataset(DatasetDefinition):
 
     name: str = 'ToyDataset'
 
+    long_name: str = 'pymovements Toy Dataset'
+
     has_files: dict[str, bool] = field(
         default_factory=lambda: {
             'gaze': True,
diff --git a/src/pymovements/datasets/toy_dataset.yaml b/src/pymovements/datasets/toy_dataset.yaml
index 4dad0a1..4bf981e 100644
--- a/src/pymovements/datasets/toy_dataset.yaml
+++ b/src/pymovements/datasets/toy_dataset.yaml
@@ -1,5 +1,7 @@
 name: "ToyDataset"
 
+long_name: "pymovements Toy Dataset"
+
 has_files:
   gaze: true
   precomputed_events: false
diff --git a/src/pymovements/datasets/toy_dataset_eyelink.py b/src/pymovements/datasets/toy_dataset_eyelink.py
index a7d1e5e..b1a09dc 100644
--- a/src/pymovements/datasets/toy_dataset_eyelink.py
+++ b/src/pymovements/datasets/toy_dataset_eyelink.py
@@ -46,6 +46,9 @@ class ToyDatasetEyeLink(DatasetDefinition):
     name: str
         The name of the dataset.
 
+    long_name: str
+        The entire name of the dataset.
+
     has_files: dict[str, bool]
         Indicate whether the dataset contains 'gaze', 'precomputed_events', and
         'precomputed_reading_measures'.
@@ -124,6 +127,8 @@ class ToyDatasetEyeLink(DatasetDefinition):
 
     name: str = 'ToyDatasetEyeLink'
 
+    long_name: str = 'pymovements Toy Dataset EyeLink'
+
     has_files: dict[str, bool] = field(
         default_factory=lambda: {
             'gaze': True,
diff --git a/src/pymovements/datasets/toy_dataset_eyelink.yaml b/src/pymovements/datasets/toy_dataset_eyelink.yaml
index 29d8fb6..343a1a9 100644
--- a/src/pymovements/datasets/toy_dataset_eyelink.yaml
+++ b/src/pymovements/datasets/toy_dataset_eyelink.yaml
@@ -1,5 +1,7 @@
 name: "ToyDatasetEyeLink"
 
+long_name: "pymovements Toy Dataset EyeLink"
+
 has_files:
   gaze: true
   precomputed_events: false
diff --git a/src/pymovements/datasets/ucl.py b/src/pymovements/datasets/ucl.py
index 2c0410b..698168e 100644
--- a/src/pymovements/datasets/ucl.py
+++ b/src/pymovements/datasets/ucl.py
@@ -44,6 +44,9 @@ class UCL(DatasetDefinition):
     name: str
         The name of the dataset.
 
+    long_name: str
+        The entire name of the dataset.
+
     has_files: dict[str, bool]
         Indicate whether the dataset contains 'gaze', 'precomputed_events', and
         'precomputed_reading_measures'.
@@ -98,6 +101,8 @@ class UCL(DatasetDefinition):
 
     name: str = 'UCL'
 
+    long_name: str = 'University College London corpus'
+
     has_files: dict[str, bool] = field(
         default_factory=lambda: {
             'gaze': False,
diff --git a/src/pymovements/datasets/ucl.yaml b/src/pymovements/datasets/ucl.yaml
index 32853ab..b60216b 100644
--- a/src/pymovements/datasets/ucl.yaml
+++ b/src/pymovements/datasets/ucl.yaml
@@ -1,5 +1,7 @@
 name: "UCL"
 
+long_name: "University College London corpus"
+
 has_files:
   gaze: false
   precomputed_events: true


Test patch:
diff --git a/tests/unit/dataset/dataset_definition_test.py b/tests/unit/dataset/dataset_definition_test.py
index f03ecbf..64236ee 100644
--- a/tests/unit/dataset/dataset_definition_test.py
+++ b/tests/unit/dataset/dataset_definition_test.py
@@ -54,6 +54,7 @@ def test_dataset_definition_is_equal(init_kwargs):
         pytest.param(
             DatasetDefinition(
                 name='Example',
+                long_name='Example',
                 has_files={
                     'gaze': False,
                     'precomputed_events': False,
@@ -62,6 +63,7 @@ def test_dataset_definition_is_equal(init_kwargs):
             ),
             {
                 'name': 'Example',
+                'long_name': 'Example',
                 'has_files': {
                     'gaze': False,
                     'precomputed_events': False,
@@ -104,10 +106,10 @@ def test_dataset_definition_is_equal(init_kwargs):
             },
             id='no_experiment',
         ),
-
         pytest.param(
             DatasetDefinition(
                 name='Example',
+                long_name='Example',
                 has_files={
                     'gaze': False,
                     'precomputed_events': False,
@@ -125,6 +127,7 @@ def test_dataset_definition_is_equal(init_kwargs):
             ),
             {
                 'name': 'Example',
+                'long_name': 'Example',
                 'has_files': {
                     'gaze': False,
                     'precomputed_events': False,
@@ -180,6 +183,7 @@ def test_dataset_definition_to_dict_expected(definition, expected_dict):
             True,
             {
                 'name': 'MyDatasetDefinition',
+                'long_name': '.',
                 'has_files': {},
                 'acceleration_columns': None,
                 'column_map': {},
@@ -223,6 +227,7 @@ def test_dataset_definition_to_dict_expected(definition, expected_dict):
             False,
             {
                 'name': 'MyDatasetDefinition',
+                'long_name': '.',
                 '_foobar': 'test',
                 'has_files': {},
                 'acceleration_columns': None,