Skip to main content

anno_eval/eval/
dataset_registry.rs

1//! Dataset Registry: Single Source of Truth
2//!
3//! This module defines ALL dataset metadata in a single declarative macro.
4//! The macro generates:
5//! - The `DatasetId` enum
6//! - All accessor methods (name, description, url, etc.)
7//! - Category membership (is_coreference, is_biomedical, etc.)
8//! - Group functions (all_ner, all_coref, etc.)
9//!
10//! # Design Philosophy
11//!
12//! > "A single point of truth means a single point of maintenance."
13//!
14//! Instead of maintaining both a Rust enum AND a TOML file with a fragile
15//! `rust_variant` mapping, we define everything here. The TOML file is
16//! now a *derived artifact* generated from this registry for documentation.
17//!
18//! # Tasks vs Categories
19//!
20//! These two fields serve different purposes:
21//!
22//! ## `tasks` - What you can DO with the dataset (NLP capabilities)
23//!
24//! | Task | Description |
25//! |------|-------------|
26//! | `ner` | Named entity recognition |
27//! | `coref` | Coreference resolution |
28//! | `re` | Relation extraction |
29//! | `el` | Entity linking |
30//! | `event_coref` | Event coreference |
31//! | `slot_filling` | Slot/intent filling |
32//! | `temporal` | Temporal information extraction |
33//! | `cdcr` | Cross-document coreference |
34//!
35//! ## `categories` - How to FIND relevant datasets (discovery/filtering)
36//!
37//! | Category | What it means |
38//! |----------|---------------|
39//! | **Domain** | |
40//! | `biomedical` | Medical/clinical/life science text |
41//! | `legal` | Legal documents, contracts, court cases |
42//! | `scientific` | Academic papers, technical reports |
43//! | `social_media` | Twitter, Reddit, informal text |
44//! | `literary` | Fiction, novels, poetry |
45//! | `news` | News articles, journalism |
46//! | `dialogue` | Conversations, meetings, interviews |
47//! | `gaming` | Game content, D&D, fantasy |
48//! | `arcane_domain` | Very niche domains (cuneiform, mythology) |
49//! | **Language** | |
50//! | `multilingual` | Covers multiple languages |
51//! | `low_resource` | Under-resourced languages |
52//! | `code_switching` | Mixed-language text |
53//! | `indigenous` | Indigenous/endangered languages |
54//! | `historical` | Ancient/historical languages |
55//! | **Annotation** | |
56//! | `nested` | Nested entity annotations |
57//! | `discontinuous` | Discontinuous entity spans |
58//! | `long_document` | Documents > 2k tokens |
59//! | **Evaluation** | |
60//! | `adversarial` | Adversarial/robustness testing |
61//! | `bias_evaluation` | Gender/demographic bias testing |
62//! | `few_shot` | Few-shot learning evaluation |
63//!
64//! ### Example: Same dataset, different views
65//!
66//! ```text
67//! LitBank:
68//!   tasks: ["ner", "coref", "event_coref"]  ← What can you do with it?
69//!   categories: [literary, long_document]    ← How to discover it
70//!
71//! BC5CDR:
72//!   tasks: ["ner", "re"]                     ← NER + relation extraction
73//!   categories: [biomedical]                 ← Domain filtering
74//!
75//! GICoref:
76//!   tasks: ["coref"]                         ← Coreference task
77//!   categories: [bias_evaluation]            ← For bias evaluation
78//! ```
79//!
80//! ### Migration Note
81//!
82//! Some datasets still have task-like categories (e.g., `ner`, `coref`).
83//! These are being migrated to use `tasks` field instead. When adding new
84//! datasets, prefer using `tasks` for NLP tasks and `categories` for
85//! domain/property discovery.
86//!
87//! # Schema Fields
88//!
89//! Required:
90//! - `name`: Human-readable name
91//! - `description`: Brief description with historical context where relevant
92//! - `url`: Download URL (empty if requires license)
93//! - `entity_types`: Array of entity type strings
94//! - `language`: ISO 639-1/3 code (en, de, grc, multi, etc.)
95//! - `domain`: Domain category (news, biomedical, literature, etc.)
96//! - `categories`: Category flags for filtering
97//!
98//! Optional metadata (highly recommended):
99//! - `license`: SPDX identifier or common name (CC-BY-4.0, MIT, LDC, Research)
100//! - `citation`: "Author et al. (YYYY)" format for quick reference
101//! - `paper_url`: DOI or ACL Anthology URL preferred
102//! - `year`: Publication year (u16) for temporal sorting
103//! - `format`: Data format (CoNLL, JSONL, TSV, BIO, BRAT, XML)
104//! - `annotation_scheme`: Annotation scheme (BIO, BIOES, IOB2, standoff)
105//! - `size_hint`: Approximate size ("~1500 docs", "~40k tokens")
106//! - `notes`: Historical motivation, cultural context, known issues
107//! - `tasks`: NLP tasks this dataset supports (see Tasks vs Categories above)
108//!
109//! # License Values
110//!
111//! Use SPDX identifiers where possible:
112//! - `CC-BY-4.0`, `CC-BY-SA-4.0`, `CC-BY-NC-4.0`, `CC-BY-NC-SA-4.0`
113//! - `MIT`, `Apache-2.0`, `GPL-3.0`
114//! - `LDC` - Requires Linguistic Data Consortium membership
115//! - `Research` - Academic use only, contact authors
116//! - `Public` - Public domain or no restrictions
117//!
118//! # Adding a New Dataset
119//!
120//! 1. Add an entry in `define_datasets!` below
121//! 2. Run tests to verify: `cargo test -p anno-eval`
122//! 3. Regenerate exports:
123//!    - `cargo test -p anno-eval generate_datasets_json -- --ignored`
124//!    - `cargo test -p anno-eval generate_datasets_jsonl -- --ignored`
125//!    - `cargo test -p anno-eval generate_datasets_markdown -- --ignored`
126//! 4. If the dataset should be *loadable*, ensure `eval::loader::LoadableDatasetId`
127//!    maps it to a parsing plan.
128//!
129//! Note:
130//! - `DatasetId` here is the canonical catalog + metadata.
131//! - Some catalog datasets are intentionally not loadable (yet).
132//!
133//! # Example
134//!
135//! ```rust,ignore
136//! use anno_eval::eval::DatasetId;
137//!
138//! let id = DatasetId::WikiGold;
139//! assert_eq!(id.name(), "WikiGold");
140//! assert!(!id.is_coreference());
141//! assert!(DatasetId::all_ner().contains(&id));
142//! assert_eq!(id.year(), Some(2009));
143//! ```
144
145/// Data format for dataset files.
146#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, serde::Serialize, serde::Deserialize)]
147pub enum DataFormat {
148    /// CoNLL column format (space/tab separated)
149    CoNLL,
150    /// CoNLL-U (Universal Dependencies format)
151    CoNLLU,
152    /// JSON Lines (one JSON object per line)
153    JSONL,
154    /// Tab-separated values
155    TSV,
156    /// Comma-separated values
157    CSV,
158    /// BIO/IOB tagged format
159    BIO,
160    /// BRAT standoff annotation
161    BRAT,
162    /// XML-based format
163    XML,
164    /// HuggingFace datasets format
165    HuggingFace,
166    /// Custom or mixed format
167    Custom,
168}
169
170impl DataFormat {
171    /// Get format name as string
172    #[must_use]
173    pub fn as_str(&self) -> &'static str {
174        match self {
175            Self::CoNLL => "CoNLL",
176            Self::CoNLLU => "CoNLL-U",
177            Self::JSONL => "JSONL",
178            Self::TSV => "TSV",
179            Self::CSV => "CSV",
180            Self::BIO => "BIO",
181            Self::BRAT => "BRAT",
182            Self::XML => "XML",
183            Self::HuggingFace => "HuggingFace",
184            Self::Custom => "Custom",
185        }
186    }
187}
188
189/// Annotation scheme used in the dataset.
190#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, serde::Serialize, serde::Deserialize)]
191pub enum AnnotationScheme {
192    /// BIO (Begin, Inside, Outside)
193    BIO,
194    /// BIOES (Begin, Inside, Outside, End, Single)
195    BIOES,
196    /// IOB2 (variant of IOB)
197    IOB2,
198    /// Standoff annotation (character offsets)
199    Standoff,
200    /// CoNLL coref (cluster IDs)
201    CoNLLCoref,
202    /// Custom scheme
203    Custom,
204}
205
206impl AnnotationScheme {
207    /// Get scheme name as string
208    #[must_use]
209    pub fn as_str(&self) -> &'static str {
210        match self {
211            Self::BIO => "BIO",
212            Self::BIOES => "BIOES",
213            Self::IOB2 => "IOB2",
214            Self::Standoff => "Standoff",
215            Self::CoNLLCoref => "CoNLL-Coref",
216            Self::Custom => "Custom",
217        }
218    }
219}
220
221/// Dataset accessibility status.
222///
223/// Indicates how easy it is to obtain the dataset data files.
224#[derive(
225    Debug, Clone, Copy, PartialEq, Eq, Hash, serde::Serialize, serde::Deserialize, Default,
226)]
227pub enum DatasetAccessibility {
228    /// Fully public, direct download available
229    #[default]
230    Public,
231    /// Available on HuggingFace datasets hub
232    HuggingFace,
233    /// Available locally in testdata/ or cache
234    Local,
235    /// Requires registration but free (e.g., LDC for academics)
236    Registration,
237    /// Requires license agreement or contact with authors
238    ContactAuthors,
239    /// Data not yet released, only paper available
240    NotYetReleased,
241    /// Requires access to another dataset first (e.g., GCDC needs Yahoo L6)
242    DependsOnOther,
243    /// Dataset has been deprecated or is no longer available
244    Deprecated,
245}
246
247impl DatasetAccessibility {
248    /// Get accessibility as string
249    #[must_use]
250    pub fn as_str(&self) -> &'static str {
251        match self {
252            Self::Public => "public",
253            Self::HuggingFace => "huggingface",
254            Self::Local => "local",
255            Self::Registration => "registration",
256            Self::ContactAuthors => "contact_authors",
257            Self::NotYetReleased => "not_yet_released",
258            Self::DependsOnOther => "depends_on_other",
259            Self::Deprecated => "deprecated",
260        }
261    }
262
263    /// Check if data can be downloaded without human intervention
264    #[must_use]
265    pub fn is_automatable(&self) -> bool {
266        matches!(self, Self::Public | Self::HuggingFace | Self::Local)
267    }
268
269    /// Check if dataset is actually obtainable (eventually)
270    #[must_use]
271    pub fn is_obtainable(&self) -> bool {
272        !matches!(self, Self::NotYetReleased | Self::Deprecated)
273    }
274}
275
276/// Macro to define all datasets in a single place.
277///
278/// Each dataset entry has:
279/// - `variant`: The enum variant name (e.g., `WikiGold`)
280/// - `name`: Human-readable name (e.g., "WikiGold")
281/// - `description`: Brief description with historical context
282/// - `url`: Download URL (empty string if requires license)
283/// - `entity_types`: Slice of entity type strings
284/// - `language`: Primary language code (ISO 639-1/3). Use `"mul"` for multilingual datasets.
285/// - `domain`: Domain category
286/// - `categories`: List of category flags (coref, biomedical, etc.)
287///
288/// Optional fields (add after domain, before categories):
289/// - `license`: SPDX identifier or common name
290/// - `citation`: "Author et al. (YYYY)" format
291/// - `paper_url`: DOI or ACL Anthology URL
292/// - `year`: Publication year (u16)
293/// - `format`: Data format string
294/// - `annotation_scheme`: BIO, BIOES, IOB2, standoff
295/// - `size_hint`: Approximate size description
296/// - `example`: Short example snippet showing annotation style
297/// - `notes`: Historical context, known issues, cultural significance
298/// - `splits`: Available splits ("train", "dev", "test", "all")
299/// - `tasks`: Supported NLP tasks ("ner", "coref", "re", "el", etc.)
300/// - `expected_docs`: Expected doc count for validation (u32)
301/// - `sha256`: Content hash for integrity verification
302/// - `access_status`: DatasetAccessibility value (public, huggingface, contact_authors, etc.)
303/// - `mirror_url`: Alternative download URL if primary is unavailable
304/// - `depends_on`: Dataset ID this depends on (e.g., GCDC depends on Yahoo L6)
305#[macro_export]
306macro_rules! define_datasets {
307    (
308        $(
309            $variant:ident {
310                name: $name:literal,
311                description: $description:literal,
312                url: $url:literal,
313                entity_types: [$($etype:literal),* $(,)?],
314                language: $language:literal,
315                domain: $domain:literal,
316                $(license: $license:literal,)?
317                $(citation: $citation:literal,)?
318                $(paper_url: $paper_url:literal,)?
319                $(year: $year:literal,)?
320                $(format: $format:literal,)?
321                $(annotation_scheme: $ann_scheme:literal,)?
322                $(size_hint: $size_hint:literal,)?
323                $(example: $example:literal,)?
324                $(notes: $notes:literal,)?
325                $(splits: [$($split:literal),* $(,)?],)?
326                $(tasks: [$($task:literal),* $(,)?],)?
327                $(expected_docs: $expected_docs:literal,)?
328                $(sha256: $sha256:literal,)?
329                $(hf_id: $hf_id:literal,)?
330                $(hf_config: $hf_config:literal,)?
331                $(access_status: $access_status:ident,)?
332                $(mirror_url: $mirror_url:literal,)?
333                $(depends_on: $depends_on:literal,)?
334                categories: [$($cat:ident),* $(,)?] $(,)?
335            }
336        ),* $(,)?
337    ) => {
338        /// Supported dataset identifiers.
339        ///
340        /// Each dataset has a known download URL, format, and expected entity types.
341        /// Use `DatasetId::all()` to iterate over all available datasets.
342        #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, serde::Serialize, serde::Deserialize)]
343        #[non_exhaustive]
344        pub enum DatasetId {
345            $(
346                #[doc = $description]
347                $variant,
348            )*
349        }
350
351        #[allow(clippy::too_many_lines, clippy::type_complexity, clippy::cognitive_complexity)]
352        impl DatasetId {
353            /// Get the download URL for this dataset.
354            #[must_use]
355            pub fn download_url(&self) -> &'static str {
356                match self {
357                    $(Self::$variant => $url,)*
358                }
359            }
360
361            /// Get the human-readable name.
362            #[must_use]
363            pub fn name(&self) -> &'static str {
364                match self {
365                    $(Self::$variant => $name,)*
366                }
367            }
368
369            /// Get the description.
370            #[must_use]
371            pub fn description(&self) -> &'static str {
372                match self {
373                    $(Self::$variant => $description,)*
374                }
375            }
376
377            /// Get the primary language.
378            #[must_use]
379            pub fn language(&self) -> &'static str {
380                match self {
381                    $(Self::$variant => $language,)*
382                }
383            }
384
385            /// Get the domain category.
386            #[must_use]
387            pub fn domain(&self) -> &'static str {
388                match self {
389                    $(Self::$variant => $domain,)*
390                }
391            }
392
393            /// Get the category tags for this dataset.
394            ///
395            /// Categories are used for discovery/filtering (domain, language family, annotation
396            /// properties). They are not intended to encode benchmark outcomes.
397            #[must_use]
398            pub fn categories(&self) -> &'static [&'static str] {
399                match self {
400                    $(Self::$variant => &[$(stringify!($cat)),*],)*
401                }
402            }
403
404            /// Get the entity types for this dataset.
405            #[must_use]
406            pub fn entity_types(&self) -> &'static [&'static str] {
407                match self {
408                    $(Self::$variant => &[$($etype),*],)*
409                }
410            }
411
412            /// Get the license for this dataset.
413            #[must_use]
414            pub fn license(&self) -> Option<&'static str> {
415                match self {
416                    $(Self::$variant => $crate::optional_field!($($license)?),)*
417                }
418            }
419
420            /// Get the citation for this dataset.
421            #[must_use]
422            pub fn citation(&self) -> Option<&'static str> {
423                match self {
424                    $(Self::$variant => $crate::optional_field!($($citation)?),)*
425                }
426            }
427
428            /// Get the paper URL for this dataset.
429            #[must_use]
430            pub fn paper_url(&self) -> Option<&'static str> {
431                match self {
432                    $(Self::$variant => $crate::optional_field!($($paper_url)?),)*
433                }
434            }
435
436            /// Get additional notes for this dataset.
437            #[must_use]
438            pub fn notes(&self) -> Option<&'static str> {
439                match self {
440                    $(Self::$variant => $crate::optional_field!($($notes)?),)*
441                }
442            }
443
444            /// Get the publication year for this dataset.
445            #[must_use]
446            pub fn year(&self) -> Option<u16> {
447                match self {
448                    $(Self::$variant => $crate::optional_field_num!($($year)?),)*
449                }
450            }
451
452            /// Get the data format for this dataset.
453            #[must_use]
454            pub fn format(&self) -> Option<&'static str> {
455                match self {
456                    $(Self::$variant => $crate::optional_field!($($format)?),)*
457                }
458            }
459
460            /// Get the annotation scheme for this dataset.
461            #[must_use]
462            pub fn annotation_scheme(&self) -> Option<&'static str> {
463                match self {
464                    $(Self::$variant => $crate::optional_field!($($ann_scheme)?),)*
465                }
466            }
467
468            /// Get the size hint for this dataset.
469            #[must_use]
470            pub fn size_hint(&self) -> Option<&'static str> {
471                match self {
472                    $(Self::$variant => $crate::optional_field!($($size_hint)?),)*
473                }
474            }
475
476            /// Get an example snippet from this dataset.
477            #[must_use]
478            pub fn example(&self) -> Option<&'static str> {
479                match self {
480                    $(Self::$variant => $crate::optional_field!($($example)?),)*
481                }
482            }
483
484            /// Get available data splits (train, dev, test, etc.).
485            #[must_use]
486            pub fn splits(&self) -> &'static [&'static str] {
487                match self {
488                    $(Self::$variant => &[$($($split),*)?],)*
489                }
490            }
491
492            /// Get supported NLP tasks (ner, coref, re, el, etc.).
493            /// Datasets often support multiple tasks via their annotations.
494            #[must_use]
495            pub fn tasks(&self) -> &'static [&'static str] {
496                match self {
497                    $(Self::$variant => &[$($($task),*)?],)*
498                }
499            }
500
501            /// Get supported tasks as typed `Task` values (best-effort).
502            ///
503            /// This keeps the registry as the single source of truth (strings), while giving
504            /// downstream code a type-safe view for control flow and compatibility checks.
505            ///
506            /// Unknown/out-of-scope task strings are ignored.
507            #[must_use]
508            pub fn tasks_typed(&self) -> Vec<$crate::eval::task_mapping::Task> {
509                let mut out = Vec::new();
510                for task_str in self.tasks_or_inferred() {
511                    let Some(task) = $crate::eval::task_mapping::Task::from_code(task_str) else {
512                        continue;
513                    };
514                    if !out.contains(&task) {
515                        out.push(task);
516                    }
517                }
518                out
519            }
520
521            /// Get expected document count for validation.
522            #[must_use]
523            pub fn expected_docs(&self) -> Option<u32> {
524                match self {
525                    $(Self::$variant => $crate::optional_field_num!($($expected_docs)?),)*
526                }
527            }
528
529            /// Get SHA256 hash for integrity verification.
530            #[must_use]
531            pub fn sha256(&self) -> Option<&'static str> {
532                match self {
533                    $(Self::$variant => $crate::optional_field!($($sha256)?),)*
534                }
535            }
536
537            /// Get HuggingFace dataset ID for automated download.
538            #[must_use]
539            pub fn hf_id(&self) -> Option<&'static str> {
540                match self {
541                    $(Self::$variant => $crate::optional_field!($($hf_id)?),)*
542                }
543            }
544
545            /// Get HuggingFace dataset config/subset name.
546            #[must_use]
547            pub fn hf_config(&self) -> Option<&'static str> {
548                match self {
549                    $(Self::$variant => $crate::optional_field!($($hf_config)?),)*
550                }
551            }
552
553            /// Get the access status for this dataset.
554            ///
555            /// Indicates how to obtain the dataset: public download, HuggingFace,
556            /// contact authors, not yet released, etc.
557            #[must_use]
558            pub fn access_status(&self) -> $crate::eval::dataset_registry::DatasetAccessibility {
559                match self {
560                    $(Self::$variant => $crate::optional_access_status!($($access_status)?),)*
561                }
562            }
563
564            /// Get mirror URL for this dataset (alternative download location).
565            #[must_use]
566            pub fn mirror_url(&self) -> Option<&'static str> {
567                match self {
568                    $(Self::$variant => $crate::optional_field!($($mirror_url)?),)*
569                }
570            }
571
572            /// Get dependency dataset name (e.g., GCDC depends on "Yahoo L6 corpus").
573            #[must_use]
574            pub fn depends_on(&self) -> Option<&'static str> {
575                match self {
576                    $(Self::$variant => $crate::optional_field!($($depends_on)?),)*
577                }
578            }
579
580            /// Check if this dataset can be automatically downloaded.
581            #[must_use]
582            pub fn is_automatable(&self) -> bool {
583                self.access_status().is_automatable()
584            }
585
586            /// Check if this dataset requires a license agreement (no public URL).
587            #[must_use]
588            pub fn requires_license(&self) -> bool {
589                self.download_url().is_empty()
590            }
591
592            /// Check if this dataset has SPDX-compatible license.
593            #[must_use]
594            pub fn has_spdx_license(&self) -> bool {
595                matches!(self.license(), Some(l) if
596                    l.starts_with("CC-") ||
597                    l == "MIT" ||
598                    l == "Apache-2.0" ||
599                    l == "GPL-3.0" ||
600                    l == "Public")
601            }
602
603            /// Get the cache filename (derived from variant name).
604            #[must_use]
605            pub fn cache_filename(&self) -> &'static str {
606                match self {
607                    $(Self::$variant => concat!(stringify!($variant), ".cache"),)*
608                }
609            }
610
611            /// Parse a `DatasetId` from a cache filename (like `Wnut17.cache`).
612            ///
613            /// This is the inverse of `cache_filename()` and is intended for tooling that
614            /// iterates the local cache manifest or filesystem and needs to recover the enum.
615            #[must_use]
616            pub fn from_cache_filename(s: &str) -> Option<Self> {
617                match s {
618                    $(concat!(stringify!($variant), ".cache") => Some(Self::$variant),)*
619                    _ => None,
620                }
621            }
622
623            /// Get all dataset IDs.
624            #[must_use]
625            pub fn all() -> &'static [DatasetId] {
626                &[$(Self::$variant,)*]
627            }
628
629            // Category checks are generated via helper macro
630            $crate::impl_category_checks!($($variant => [$($cat),*]),*);
631        }
632
633        impl std::fmt::Display for DatasetId {
634            fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
635                write!(f, "{}", self.name())
636            }
637        }
638
639        impl std::str::FromStr for DatasetId {
640            type Err = String;
641
642            fn from_str(s: &str) -> Result<Self, Self::Err> {
643                // Try exact match first
644                match s {
645                    $(stringify!($variant) => return Ok(Self::$variant),)*
646                    _ => {}
647                }
648                // Try name match
649                match s {
650                    $($name => return Ok(Self::$variant),)*
651                    _ => {}
652                }
653                // Try case-insensitive
654                let lower = s.to_lowercase();
655
656                // Common aliases (human-friendly / legacy spellings)
657                match lower.as_str() {
658                    "masakhane-ner" | "masakhane_ner" | "masakhane ner" => return Ok(Self::MasakhaNER),
659                    "masakhane-news" | "masakhane_news" | "masakhane news" => return Ok(Self::MasakhaNEWS),
660                    "chinese-historical-ie" | "chinese_historical_ie" | "ancient-chinese-ner" | "ancient_chinese_ner" => {
661                        return Ok(Self::CHisIEC);
662                    }
663                    _ => {}
664                }
665                $(
666                    if stringify!($variant).to_lowercase() == lower {
667                        return Ok(Self::$variant);
668                    }
669                )*
670
671                // Try normalized matching (handles `wnut-17`, `mit_movie`, `ch-is-iec`, etc.)
672                // NOTE: We intentionally only strip separators/punctuation; we do not attempt
673                // fuzzy/approximate matching.
674                fn normalize(inp: &str) -> String {
675                    inp.chars()
676                        .filter(|c| c.is_ascii_alphanumeric())
677                        .flat_map(|c| c.to_lowercase())
678                        .collect()
679                }
680
681                let needle = normalize(s);
682                if needle.is_empty() {
683                    return Err("Unknown dataset: <empty>".to_string());
684                }
685
686                let mut matches = Vec::new();
687                $(
688                    if normalize(stringify!($variant)) == needle || normalize($name) == needle {
689                        matches.push(Self::$variant);
690                    }
691                )*
692
693                match matches.as_slice() {
694                    [only] => Ok(*only),
695                    [] => Err(format!("Unknown dataset: {}", s)),
696                    _ => Err(format!("Ambiguous dataset id '{}': {:?}", s, matches)),
697                }
698            }
699        }
700    };
701}
702
703/// Helper macro to implement category checking methods.
704///
705/// This generates `is_X()` methods and `all_X()` functions for each category.
706#[macro_export]
707macro_rules! impl_category_checks {
708    ($($variant:ident => [$($cat:ident),*]),*) => {
709        // Individual category checks
710        /// Check if this dataset is for coreference resolution.
711        #[must_use]
712        pub fn is_coreference(&self) -> bool {
713            match self {
714                $(Self::$variant => $crate::has_category!([$($cat),*], coref),)*
715            }
716        }
717
718        /// Check if this dataset is biomedical domain.
719        #[must_use]
720        pub fn is_biomedical(&self) -> bool {
721            match self {
722                $(Self::$variant => $crate::has_category!([$($cat),*], biomedical),)*
723            }
724        }
725
726        /// Check if this dataset is social media domain.
727        #[must_use]
728        pub fn is_social_media(&self) -> bool {
729            match self {
730                $(Self::$variant => $crate::has_category!([$($cat),*], social_media),)*
731            }
732        }
733
734        /// Check if this dataset is for relation extraction.
735        #[must_use]
736        pub fn is_relation_extraction(&self) -> bool {
737            match self {
738                $(Self::$variant => $crate::has_category!([$($cat),*], relation_extraction),)*
739            }
740        }
741
742        /// Check if this dataset is multilingual.
743        #[must_use]
744        pub fn is_multilingual(&self) -> bool {
745            match self {
746                $(Self::$variant => $crate::has_category!([$($cat),*], multilingual),)*
747            }
748        }
749
750        /// Check if this dataset is for historical texts.
751        #[must_use]
752        pub fn is_historical(&self) -> bool {
753            match self {
754                $(Self::$variant => $crate::has_category!([$($cat),*], historical),)*
755            }
756        }
757
758        /// Check if this dataset is for bias evaluation.
759        #[must_use]
760        pub fn is_bias_evaluation(&self) -> bool {
761            match self {
762                $(Self::$variant => $crate::has_category!([$($cat),*], bias_evaluation),)*
763            }
764        }
765
766        /// Check if this dataset is indigenous language.
767        #[must_use]
768        pub fn is_indigenous(&self) -> bool {
769            match self {
770                $(Self::$variant => $crate::has_category!([$($cat),*], indigenous),)*
771            }
772        }
773
774        /// Check if this dataset is an African language dataset.
775        #[must_use]
776        pub fn is_african_language(&self) -> bool {
777            match self {
778                $(Self::$variant => $crate::has_category!([$($cat),*], african_language),)*
779            }
780        }
781
782        /// Check if this dataset is for literary/fiction texts.
783        #[must_use]
784        pub fn is_literary(&self) -> bool {
785            match self {
786                $(Self::$variant => $crate::has_category!([$($cat),*], literary),)*
787            }
788        }
789
790        /// Check if this dataset has nested NER annotations.
791        #[must_use]
792        pub fn is_nested_ner(&self) -> bool {
793            match self {
794                $(Self::$variant => $crate::has_category!([$($cat),*], nested_ner),)*
795            }
796        }
797
798        /// Check if this dataset has discontinuous NER annotations.
799        #[must_use]
800        pub fn is_discontinuous_ner(&self) -> bool {
801            match self {
802                $(Self::$variant => $crate::has_category!([$($cat),*], discontinuous_ner),)*
803            }
804        }
805
806        /// Check if this dataset is dialogue/conversational.
807        #[must_use]
808        pub fn is_dialogue(&self) -> bool {
809            match self {
810                $(Self::$variant => $crate::has_category!([$($cat),*], dialogue),)*
811            }
812        }
813
814        /// Check if this dataset is NER (not coreference).
815        #[must_use]
816        pub fn is_ner(&self) -> bool {
817            match self {
818                $(Self::$variant => $crate::has_category!([$($cat),*], ner),)*
819            }
820        }
821
822        /// Check if this dataset is for cross-document event coreference.
823        #[must_use]
824        pub fn is_event_coref(&self) -> bool {
825            match self {
826                $(Self::$variant => $crate::has_category!([$($cat),*], event_coref),)*
827            }
828        }
829
830        /// Check if this dataset is for ancient/classical languages.
831        #[must_use]
832        pub fn is_ancient(&self) -> bool {
833            match self {
834                $(Self::$variant => $crate::has_category!([$($cat),*], ancient),)*
835            }
836        }
837
838        /// Check if this dataset is for abstract anaphora/discourse deixis.
839        #[must_use]
840        pub fn is_abstract_anaphora(&self) -> bool {
841            match self {
842                $(Self::$variant => $crate::has_category!([$($cat),*], abstract_anaphora),)*
843            }
844        }
845
846        /// Check if this dataset is for low-resource/endangered languages.
847        #[must_use]
848        pub fn is_low_resource(&self) -> bool {
849            match self {
850                $(Self::$variant => $crate::has_category!([$($cat),*], low_resource),)*
851            }
852        }
853
854        /// Check if this dataset is for constructed languages.
855        #[must_use]
856        pub fn is_constructed(&self) -> bool {
857            match self {
858                $(Self::$variant => $crate::has_category!([$($cat),*], constructed),)*
859            }
860        }
861
862        /// Check if this dataset is for arcane/specialized domains.
863        #[must_use]
864        pub fn is_arcane_domain(&self) -> bool {
865            match self {
866                $(Self::$variant => $crate::has_category!([$($cat),*], arcane_domain),)*
867            }
868        }
869
870        /// Check if this dataset is for adversarial/robustness evaluation.
871        #[must_use]
872        pub fn is_adversarial(&self) -> bool {
873            match self {
874                $(Self::$variant => $crate::has_category!([$($cat),*], adversarial),)*
875            }
876        }
877
878        /// Check if this dataset is for speech/audio NER.
879        #[must_use]
880        pub fn is_speech(&self) -> bool {
881            match self {
882                $(Self::$variant => $crate::has_category!([$($cat),*], speech),)*
883            }
884        }
885
886        /// Check if this dataset is for entity linking / named entity disambiguation.
887        #[must_use]
888        pub fn is_entity_linking(&self) -> bool {
889            match self {
890                $(Self::$variant => $crate::has_category!([$($cat),*], entity_linking),)*
891            }
892        }
893
894        /// Check if this dataset is for long-document processing (>10k tokens).
895        #[must_use]
896        pub fn is_long_document(&self) -> bool {
897            match self {
898                $(Self::$variant => $crate::has_category!([$($cat),*], long_document),)*
899            }
900        }
901
902        /// Check if this dataset is clinical/medical domain.
903        #[must_use]
904        pub fn is_clinical(&self) -> bool {
905            match self {
906                $(Self::$variant => $crate::has_category!([$($cat),*], clinical),)*
907            }
908        }
909
910        // Group accessors
911        /// Get all NER datasets.
912        pub fn all_ner() -> Vec<&'static DatasetId> {
913            Self::all().iter().filter(|d| d.is_ner()).collect()
914        }
915
916        /// Get all coreference datasets.
917        pub fn all_coref() -> Vec<&'static DatasetId> {
918            Self::all().iter().filter(|d| d.is_coreference()).collect()
919        }
920
921        /// Get all biomedical datasets.
922        pub fn all_biomedical() -> Vec<&'static DatasetId> {
923            Self::all().iter().filter(|d| d.is_biomedical()).collect()
924        }
925
926        /// Get all multilingual datasets.
927        pub fn all_multilingual() -> Vec<&'static DatasetId> {
928            Self::all().iter().filter(|d| d.is_multilingual()).collect()
929        }
930
931        /// Get all historical datasets.
932        pub fn all_historical() -> Vec<&'static DatasetId> {
933            Self::all().iter().filter(|d| d.is_historical()).collect()
934        }
935
936        /// Get all indigenous language datasets.
937        pub fn all_indigenous() -> Vec<&'static DatasetId> {
938            Self::all().iter().filter(|d| d.is_indigenous()).collect()
939        }
940
941        /// Get all literary/fiction datasets.
942        pub fn all_literary() -> Vec<&'static DatasetId> {
943            Self::all().iter().filter(|d| d.is_literary()).collect()
944        }
945
946        /// Get all nested NER datasets.
947        pub fn all_nested_ner() -> Vec<&'static DatasetId> {
948            Self::all().iter().filter(|d| d.is_nested_ner()).collect()
949        }
950
951        /// Get all relation extraction datasets.
952        pub fn all_relation_extraction() -> Vec<&'static DatasetId> {
953            Self::all().iter().filter(|d| d.is_relation_extraction()).collect()
954        }
955
956        /// Get all event coreference datasets.
957        pub fn all_event_coref() -> Vec<&'static DatasetId> {
958            Self::all().iter().filter(|d| d.is_event_coref()).collect()
959        }
960
961        /// Get all ancient/classical language datasets.
962        pub fn all_ancient() -> Vec<&'static DatasetId> {
963            Self::all().iter().filter(|d| d.is_ancient()).collect()
964        }
965
966        /// Get all abstract anaphora datasets.
967        pub fn all_abstract_anaphora() -> Vec<&'static DatasetId> {
968            Self::all().iter().filter(|d| d.is_abstract_anaphora()).collect()
969        }
970
971        /// Get all low-resource language datasets.
972        pub fn all_low_resource() -> Vec<&'static DatasetId> {
973            Self::all().iter().filter(|d| d.is_low_resource()).collect()
974        }
975
976        /// Get all constructed language datasets.
977        pub fn all_constructed() -> Vec<&'static DatasetId> {
978            Self::all().iter().filter(|d| d.is_constructed()).collect()
979        }
980
981        /// Get all arcane domain datasets.
982        pub fn all_arcane_domain() -> Vec<&'static DatasetId> {
983            Self::all().iter().filter(|d| d.is_arcane_domain()).collect()
984        }
985
986        /// Get all adversarial/robustness datasets.
987        pub fn all_adversarial() -> Vec<&'static DatasetId> {
988            Self::all().iter().filter(|d| d.is_adversarial()).collect()
989        }
990
991        /// Get all speech NER datasets.
992        pub fn all_speech() -> Vec<&'static DatasetId> {
993            Self::all().iter().filter(|d| d.is_speech()).collect()
994        }
995
996        /// Get all social media datasets.
997        pub fn all_social_media() -> Vec<&'static DatasetId> {
998            Self::all().iter().filter(|d| d.is_social_media()).collect()
999        }
1000
1001        /// Get all discontinuous NER datasets.
1002        pub fn all_discontinuous_ner() -> Vec<&'static DatasetId> {
1003            Self::all().iter().filter(|d| d.is_discontinuous_ner()).collect()
1004        }
1005
1006        /// Get all bias evaluation datasets.
1007        pub fn all_bias_evaluation() -> Vec<&'static DatasetId> {
1008            Self::all().iter().filter(|d| d.is_bias_evaluation()).collect()
1009        }
1010
1011        /// Get all entity linking / NED datasets.
1012        pub fn all_entity_linking() -> Vec<&'static DatasetId> {
1013            Self::all().iter().filter(|d| d.is_entity_linking()).collect()
1014        }
1015
1016        /// Get all long-document datasets.
1017        pub fn all_long_document() -> Vec<&'static DatasetId> {
1018            Self::all().iter().filter(|d| d.is_long_document()).collect()
1019        }
1020
1021        /// Get all clinical datasets.
1022        pub fn all_clinical() -> Vec<&'static DatasetId> {
1023            Self::all().iter().filter(|d| d.is_clinical()).collect()
1024        }
1025
1026        /// Get all dialogue/conversational datasets.
1027        pub fn all_dialogue() -> Vec<&'static DatasetId> {
1028            Self::all().iter().filter(|d| d.is_dialogue()).collect()
1029        }
1030
1031        /// Get all African language datasets.
1032        pub fn all_african_languages() -> Vec<&'static DatasetId> {
1033            Self::all().iter().filter(|d| (*d).is_african_language()).collect()
1034        }
1035
1036        /// Quick evaluation set (fast downloads, common benchmarks).
1037        pub fn quick() -> Vec<&'static DatasetId> {
1038            Self::all().iter()
1039                .filter(|d| matches!(d,
1040                    DatasetId::WikiGold |
1041                    DatasetId::Wnut17 |
1042                    DatasetId::GAP
1043                ))
1044                .collect()
1045        }
1046
1047        /// Medium evaluation set (moderate size, diverse domains).
1048        pub fn medium() -> Vec<&'static DatasetId> {
1049            Self::all().iter()
1050                .filter(|d| matches!(d,
1051                    DatasetId::WikiGold |
1052                    DatasetId::Wnut17 |
1053                    DatasetId::MitMovie |
1054                    DatasetId::MitRestaurant |
1055                    DatasetId::CoNLL2003Sample |
1056                    DatasetId::BC5CDR |
1057                    DatasetId::GAP |
1058                    DatasetId::PreCo
1059                ))
1060                .collect()
1061        }
1062    };
1063}
1064
1065/// Helper macro to check if a list of categories contains a specific category.
1066#[macro_export]
1067macro_rules! has_category {
1068    ([], $target:ident) => { false };
1069    ([$first:ident $(, $rest:ident)*], $target:ident) => {
1070        stringify!($first) == stringify!($target) || $crate::has_category!([$($rest),*], $target)
1071    };
1072}
1073
1074/// Helper macro to handle optional string fields in dataset definitions.
1075#[macro_export]
1076macro_rules! optional_field {
1077    () => {
1078        None
1079    };
1080    ($value:literal) => {
1081        Some($value)
1082    };
1083}
1084
1085/// Helper macro to handle optional numeric fields in dataset definitions.
1086#[macro_export]
1087macro_rules! optional_field_num {
1088    () => {
1089        None
1090    };
1091    ($value:literal) => {
1092        Some($value)
1093    };
1094}
1095
1096/// Helper macro to handle optional access_status fields in dataset definitions.
1097/// Returns DatasetAccessibility::Public as the default when not specified.
1098#[macro_export]
1099macro_rules! optional_access_status {
1100    () => {
1101        $crate::eval::dataset_registry::DatasetAccessibility::Public
1102    };
1103    (Public) => {
1104        $crate::eval::dataset_registry::DatasetAccessibility::Public
1105    };
1106    (HuggingFace) => {
1107        $crate::eval::dataset_registry::DatasetAccessibility::HuggingFace
1108    };
1109    (Local) => {
1110        $crate::eval::dataset_registry::DatasetAccessibility::Local
1111    };
1112    (Registration) => {
1113        $crate::eval::dataset_registry::DatasetAccessibility::Registration
1114    };
1115    (ContactAuthors) => {
1116        $crate::eval::dataset_registry::DatasetAccessibility::ContactAuthors
1117    };
1118    (NotYetReleased) => {
1119        $crate::eval::dataset_registry::DatasetAccessibility::NotYetReleased
1120    };
1121    (DependsOnOther) => {
1122        $crate::eval::dataset_registry::DatasetAccessibility::DependsOnOther
1123    };
1124    (Deprecated) => {
1125        $crate::eval::dataset_registry::DatasetAccessibility::Deprecated
1126    };
1127}
1128
1129// Re-export for use in other modules
1130pub use define_datasets;
1131pub use has_category;
1132pub use impl_category_checks;
1133pub use optional_field;
1134pub use optional_field_num;
1135
1136// =============================================================================
1137// The Dataset Registry - Single Source of Truth
1138// =============================================================================
1139//
1140// To add a dataset:
1141// 1. Add an entry below with all metadata
1142// 2. Run tests: `cargo test -p anno-eval`
1143// 3. The TOML is generated automatically for documentation
1144//
1145// Categories available:
1146// - ner: Standard NER dataset
1147// - coref: Coreference resolution
1148// - biomedical: Medical/biological domain
1149// - clinical: Clinical/medical notes domain
1150// - social_media: Twitter, Reddit, etc.
1151// - relation_extraction: Entity relations
1152// - entity_linking: Entity linking / named entity disambiguation
1153// - multilingual: Multiple languages
1154// - historical: Historical texts
1155// - bias_evaluation: Bias benchmarks
1156// - indigenous: Indigenous languages
1157// - literary: Fiction/literature
1158// - nested_ner: Nested entity annotations
1159// - discontinuous_ner: Non-contiguous spans
1160// - dialogue: Conversational text
1161// - event_coref: Cross-document event coreference
1162// - ancient: Ancient/classical languages (Latin, Greek, Sumerian)
1163// - abstract_anaphora: Shell nouns, discourse deixis, bridging
1164// - low_resource: Low-resource/endangered languages
1165// - constructed: Constructed languages (Esperanto, Klingon)
1166// - arcane_domain: Specialized domains (astronomy, archaeology)
1167// - adversarial: Robustness/adversarial evaluation
1168// - speech: Audio/speech NER
1169// - long_document: Long-document (>10k tokens) processing
1170
1171define_datasets! {
1172    // =========================================================================
1173    // Core NER Datasets
1174    // =========================================================================
1175    WikiGold {
1176        name: "WikiGold",
1177        description: "Wikipedia-based NER (PER, LOC, ORG, MISC). Historically significant as early Wikipedia NER resource.",
1178        url: "https://raw.githubusercontent.com/juand-r/entity-recognition-datasets/master/data/wikigold/CONLL-format/data/wikigold.conll.txt",
1179        entity_types: ["PER", "LOC", "ORG", "MISC"],
1180        language: "en",
1181        domain: "wikipedia",
1182        license: "CC-BY-4.0",
1183        citation: "Balasuriya et al. (2009)",
1184        paper_url: "https://aclanthology.org/U09-1001/",
1185        year: 2009,
1186        format: "CoNLL",
1187        annotation_scheme: "IOB2",
1188        size_hint: "~40k tokens, ~3,500 entities",
1189        example: "Japan B-LOC\n's O\nMinister O\nShinzo B-PER\nAbe I-PER\nvisited O\nthe O\nUnited B-LOC\nStates I-LOC\n. O",
1190        splits: ["all"],
1191        tasks: ["ner"],
1192        expected_docs: 145,
1193        categories: [ner],
1194    },
1195    Wnut17 {
1196        name: "WNUT-17",
1197        description: "Social media NER with emerging entities. Created to evaluate models on rare/emerging entities in noisy social text.",
1198        url: "https://raw.githubusercontent.com/leondz/emerging_entities_17/master/emerging.test.annotated",
1199        entity_types: ["person", "location", "corporation", "product", "creative-work", "group"],
1200        language: "en",
1201        domain: "social_media",
1202        license: "CC-BY-4.0",
1203        citation: "Derczynski et al. (2017)",
1204        paper_url: "https://aclanthology.org/W17-4418/",
1205        year: 2017,
1206        format: "CoNLL",
1207        annotation_scheme: "BIO",
1208        size_hint: "~65k tokens, 1,000 tweets",
1209        notes: "89% unseen entities in test set - excellent for OOD evaluation; shared task at W-NUT workshop",
1210        tasks: ["ner"],
1211        hf_id: "leondz/wnut_17",
1212        access_status: HuggingFace,
1213        categories: [ner, social_media],
1214    },
1215    MitMovie {
1216        name: "MIT Movie",
1217        description: "Movie domain slot filling NER. Created at MIT SLS for spoken language understanding research.",
1218        url: "https://groups.csail.mit.edu/sls/downloads/movie/engtest.bio",
1219        entity_types: ["Actor", "Director", "Genre", "Title", "Year", "Song", "Character", "Plot", "Rating"],
1220        language: "en",
1221        domain: "entertainment",
1222        license: "Research",
1223        citation: "Liu et al. (2013)",
1224        paper_url: "https://groups.csail.mit.edu/sls/publications/2013/Liu_ASRU_2013.pdf",
1225        year: 2013,
1226        format: "BIO",
1227        annotation_scheme: "BIO",
1228        size_hint: "~12k utterances",
1229        example: "show O\nme O\naction B-Genre\nmovies O\ndirected O\nby O\nsteven B-Director\nspielberg I-Director",
1230        tasks: ["ner", "slot_filling"],
1231        categories: [ner],
1232    },
1233    MitRestaurant {
1234        name: "MIT Restaurant",
1235        description: "Restaurant domain slot filling NER. Part of MIT SLS spoken dialogue systems research.",
1236        url: "https://groups.csail.mit.edu/sls/downloads/restaurant/restauranttest.bio",
1237        entity_types: ["Amenity", "Cuisine", "Dish", "Hours", "Location", "Price", "Rating", "Restaurant_Name"],
1238        language: "en",
1239        domain: "restaurant",
1240        license: "Research",
1241        citation: "Liu et al. (2013)",
1242        paper_url: "https://groups.csail.mit.edu/sls/publications/2013/Liu_ASRU_2013.pdf",
1243        year: 2013,
1244        format: "BIO",
1245        annotation_scheme: "BIO",
1246        size_hint: "~8k utterances",
1247        example: "find O\nitalian B-Cuisine\nrestaurants O\nin O\nboston B-Location\nwith O\noutdoor B-Amenity\nseating I-Amenity",
1248        tasks: ["ner", "slot_filling"],
1249        categories: [ner],
1250    },
1251    CoNLL2003Sample {
1252        name: "CoNLL-2003 Sample",
1253        description: "Classic news NER benchmark from Reuters Corpus. Foundational dataset that established modern NER evaluation standards.",
1254        url: "https://huggingface.co/datasets/tner/conll2003",
1255        entity_types: ["PER", "LOC", "ORG", "MISC"],
1256        language: "en",
1257        domain: "news",
1258        license: "Research",
1259        citation: "Tjong Kim Sang & De Meulder (2003)",
1260        paper_url: "https://aclanthology.org/W03-0419/",
1261        year: 2003,
1262        format: "CoNLL",
1263        annotation_scheme: "IOB2",
1264        size_hint: "~300k tokens, ~35k entities",
1265        example: "EU B-ORG\nrejects O\nGerman B-MISC\ncall O\nto O\nboycott O\nBritish B-MISC\nlamb O\n. O",
1266        notes: "Known annotation noise; see CleanCoNLL (2023) for one audit/correction pass",
1267        tasks: ["ner"],
1268        hf_id: "tner/conll2003",
1269        access_status: HuggingFace,
1270        categories: [ner],
1271    },
1272    OntoNotesSample {
1273        name: "OntoNotes Sample",
1274        description: "Multi-genre 18-type NER from OntoNotes 5.0. Rich annotation including coreference, parsing, and PropBank.",
1275        url: "https://huggingface.co/datasets/tner/ontonotes5",
1276        entity_types: ["PERSON", "ORG", "GPE", "LOC", "DATE", "TIME", "MONEY", "PERCENT", "NORP", "FAC", "PRODUCT", "EVENT", "WORK_OF_ART", "LAW", "LANGUAGE", "QUANTITY", "ORDINAL", "CARDINAL"],
1277        language: "en",
1278        domain: "news",
1279        license: "LDC",
1280        citation: "Weischedel et al. (2013)",
1281        paper_url: "https://catalog.ldc.upenn.edu/LDC2013T19",
1282        year: 2013,
1283        format: "CoNLL",
1284        annotation_scheme: "IOB2",
1285        size_hint: "~1.6M tokens, ~128k entities",
1286        example: "The B-ORG\nEuropean I-ORG\nUnion I-ORG\nannounced O\nMonday B-DATE\nthat O\nthe O\n$ B-MONEY\n10 I-MONEY\nmillion I-MONEY\nwill O\ngo O\nto O\nUkraine B-GPE\n. O",
1287        notes: "Full corpus requires LDC license; sample available on HuggingFace; includes 7 genres",
1288        hf_id: "tner/ontonotes5",
1289        access_status: HuggingFace,
1290        categories: [ner],
1291    },
1292    MultiNERD {
1293        name: "MultiNERD",
1294        description: "Large multilingual NER covering 10 languages. Created to address scarcity of multilingual fine-grained NER data.",
1295        url: "https://huggingface.co/datasets/Babelscape/multinerd/resolve/main/test/test_en.jsonl",
1296        entity_types: ["PER", "LOC", "ORG", "ANIM", "BIO", "CEL", "DIS", "EVE", "FOOD", "INST", "MEDIA", "MYTH", "PLANT", "TIME", "VEHI"],
1297        language: "en",
1298        domain: "wikipedia",
1299        license: "CC-BY-SA-4.0",
1300        citation: "Tedeschi & Navigli (2022)",
1301        paper_url: "https://aclanthology.org/2022.findings-naacl.60/",
1302        year: 2022,
1303        format: "JSONL",
1304        annotation_scheme: "BIO",
1305        size_hint: "~1M sentences across 10 languages",
1306        example: "Marie Curie (PER) discovered radium at the University of Paris (ORG) in France (LOC).",
1307        tasks: ["ner"],
1308        hf_id: "Babelscape/multinerd",
1309        access_status: HuggingFace,
1310        categories: [ner, multilingual],
1311    },
1312
1313    FewNERD {
1314        name: "Few-NERD",
1315        description: "Fine-grained NER with 66 types in 8 coarse categories. Designed for few-shot learning evaluation.",
1316        url: "https://huggingface.co/datasets/DFKI-SLT/few-nerd",
1317        entity_types: ["person", "location", "organization", "building", "art", "product", "event", "other"],
1318        language: "en",
1319        domain: "wikipedia",
1320        license: "CC-BY-SA-4.0",
1321        citation: "Ding et al. (2021)",
1322        paper_url: "https://aclanthology.org/2021.acl-long.248/",
1323        year: 2021,
1324        format: "TSV",
1325        size_hint: "188k sentences, 66 fine-grained types",
1326        example: "Jensen Huang (person-entrepreneur) founded NVIDIA (organization-company) in Santa Clara (location-city), California.",
1327        notes: "Hierarchical type system; benchmark for few-shot and fine-grained NER. Note: HuggingFace API may return 422 errors; consider downloading locally.",
1328        tasks: ["ner"],
1329        hf_id: "DFKI-SLT/few-nerd",
1330        access_status: HuggingFace,
1331        categories: [ner],
1332    },
1333
1334    CrossNER {
1335        name: "CrossNER",
1336        description: "Cross-domain NER across 5 domains: politics, science, music, literature, AI. Tests domain transfer.",
1337        url: "https://huggingface.co/datasets/DFKI-SLT/cross_ner",
1338        entity_types: ["PER", "ORG", "LOC", "MISC", "Domain-specific"],
1339        language: "en",
1340        domain: "multi-domain",
1341        license: "MIT",
1342        citation: "Liu et al. (2021)",
1343        paper_url: "https://aclanthology.org/2021.aaai.main.672/",
1344        year: 2021,
1345        format: "CoNLL",
1346        size_hint: "5 domains, ~10k sentences each",
1347        notes: "Tests cross-domain transfer; domain-specific entity types. Use HuggingFace datasets library to load.",
1348        hf_id: "DFKI-SLT/cross_ner",
1349        hf_config: "politics",
1350        access_status: HuggingFace,
1351        categories: [ner],
1352    },
1353
1354    FabNER {
1355        name: "FabNER",
1356        description: "Manufacturing domain NER. 12 entity types for Industry 4.0 applications.",
1357        url: "https://huggingface.co/datasets/DFKI-SLT/fabner",
1358        entity_types: ["Material", "Process", "Machine", "Product", "Property"],
1359        language: "en",
1360        domain: "manufacturing",
1361        license: "CC-BY-4.0",
1362        citation: "Kumar et al. (2022)",
1363        paper_url: "https://aclanthology.org/2022.lrec-1.227/",
1364        year: 2022,
1365        format: "CoNLL",
1366        size_hint: "~14k sentences, 12 entity types",
1367        notes: "Specialized manufacturing/engineering domain; Industry 4.0",
1368        hf_id: "DFKI-SLT/fabner",
1369        access_status: HuggingFace,
1370        categories: [ner],
1371    },
1372
1373    BroadTwitterCorpus {
1374        name: "Broad Twitter Corpus",
1375        description: "Twitter NER across multiple time periods. Tests temporal robustness of NER systems.",
1376        url: "https://huggingface.co/datasets/tner/btc",
1377        entity_types: ["PER", "LOC", "ORG", "MISC"],
1378        language: "en",
1379        domain: "social_media",
1380        license: "CC-BY-4.0",
1381        citation: "Derczynski et al. (2016)",
1382        paper_url: "https://aclanthology.org/C16-1111/",
1383        year: 2016,
1384        format: "BIO",
1385        size_hint: "~9k tweets, stratified by time period",
1386        notes: "Temporal stratification; tests model robustness to language evolution",
1387        hf_id: "tner/btc",
1388        access_status: HuggingFace,
1389        categories: [ner, social_media],
1390    },
1391
1392    WikiNeural {
1393        name: "WikiNeural",
1394        description: "Silver-standard multilingual NER from Wikipedia. 9 languages with automatic annotation.",
1395        url: "https://huggingface.co/datasets/Babelscape/wikineural",
1396        entity_types: ["PER", "LOC", "ORG", "MISC"],
1397        language: "mul",
1398        domain: "wikipedia",
1399        license: "CC-BY-SA-4.0",
1400        citation: "Tedeschi et al. (2021)",
1401        paper_url: "https://aclanthology.org/2021.findings-emnlp.215/",
1402        year: 2021,
1403        format: "CoNLL",
1404        size_hint: "9 languages, ~100k sentences each",
1405        notes: "Automatically generated silver annotations; useful for pre-training",
1406        hf_id: "Babelscape/wikineural",
1407        hf_config: "en",
1408        access_status: HuggingFace,
1409        categories: [ner, multilingual],
1410    },
1411
1412    PolyglotNER {
1413        name: "Polyglot-NER",
1414        description: "Massively multilingual NER. 40 languages with silver annotations from Wikipedia.",
1415        url: "https://huggingface.co/datasets/rmyeid/polyglot_ner",
1416        entity_types: ["PER", "LOC", "ORG"],
1417        language: "mul",
1418        domain: "wikipedia",
1419        license: "Research",
1420        citation: "Al-Rfou et al. (2015)",
1421        paper_url: "https://aclanthology.org/C14-1078/",
1422        year: 2015,
1423        format: "CoNLL",
1424        size_hint: "40 languages, silver annotations",
1425        notes: "Largest language coverage; silver annotations via Wikipedia links",
1426        tasks: ["ner"],
1427        hf_id: "rmyeid/polyglot_ner",
1428        access_status: HuggingFace,
1429        categories: [ner, multilingual],
1430    },
1431
1432    UniversalNERBench {
1433        name: "Universal NER",
1434        description: "Cross-lingual NER benchmark spanning 13 diverse languages. Tests zero-shot transfer.",
1435        url: "https://github.com/UniversalNER/uner_code",
1436        entity_types: ["PER", "LOC", "ORG"],
1437        language: "mul",
1438        domain: "mixed",
1439        license: "CC-BY-4.0",
1440        citation: "Malmasi et al. (2022)",
1441        paper_url: "https://aclanthology.org/2022.emnlp-main.13/",
1442        year: 2022,
1443        format: "CoNLL",
1444        size_hint: "13 languages, gold annotations",
1445        notes: "Tests cross-lingual zero-shot transfer; diverse language families",
1446        categories: [ner, multilingual],
1447    },
1448
1449    CoNLL2002 {
1450        name: "CoNLL-2002",
1451        description: "Spanish and Dutch NER from CoNLL 2002 shared task. Multi-language NER benchmark.",
1452        // NOTE: Do not point this at a HuggingFace dataset *page* unless the repo exposes
1453        // raw data files or datasets-server rows. `eriktks/conll2002` is a dataset-script
1454        // repo (e.g. `conll2002.py`) and does not expose raw data via the Hub API, so our
1455        // loader cannot fetch it as a plain CoNLL file.
1456        //
1457        // Use the language-specific, directly-downloadable splits instead:
1458        // - `CoNLL2002Spanish`
1459        // - `CoNLL2002Dutch`
1460        url: "",
1461        entity_types: ["PER", "LOC", "ORG", "MISC"],
1462        language: "mul",
1463        domain: "news",
1464        license: "Research",
1465        citation: "Tjong Kim Sang (2002)",
1466        paper_url: "https://aclanthology.org/W02-2024/",
1467        year: 2002,
1468        format: "CoNLL",
1469        annotation_scheme: "BIO",
1470        size_hint: "Spanish + Dutch news articles",
1471        notes: "Meta entry only; use `CoNLL2002Spanish` / `CoNLL2002Dutch` for loadable data.",
1472        tasks: ["blocked"],
1473        access_status: Deprecated,
1474        categories: [ner, multilingual],
1475    },
1476
1477    TweetNER7 {
1478        name: "TweetNER7",
1479        description: "Twitter NER across 7 entity types. Fine-grained social media NER with temporal annotations.",
1480        url: "https://huggingface.co/datasets/tner/tweetner7",
1481        entity_types: ["person", "location", "corporation", "product", "creative_work", "group", "event"],
1482        language: "en",
1483        domain: "social_media",
1484        license: "CC-BY-4.0",
1485        citation: "Ushio et al. (2022)",
1486        paper_url: "https://aclanthology.org/2022.findings-emnlp.304/",
1487        year: 2022,
1488        format: "JSONL",
1489        size_hint: "~12k tweets",
1490        notes: "Temporal distribution shift; tests robustness to evolving language",
1491        hf_id: "tner/tweetner7",
1492        hf_config: "tweetner7",
1493        access_status: HuggingFace,
1494        categories: [ner, social_media],
1495    },
1496
1497    GoogleRE {
1498        name: "Google-RE",
1499        description: "Google Relation Extraction dataset. Wikipedia sentences with relation annotations.",
1500        url: "https://raw.githubusercontent.com/google-research-datasets/relation-extraction-corpus/master/20130403-place_of_birth.json",
1501        entity_types: ["PER", "LOC", "ORG"],
1502        language: "en",
1503        domain: "wikipedia",
1504        license: "CC-BY-4.0",
1505        citation: "Levy et al. (2017)",
1506        paper_url: "https://aclanthology.org/D17-1004/",
1507        year: 2017,
1508        format: "JSON",
1509        size_hint: "~60k relation triples",
1510        notes: "Clean relation extraction; commonly used for zero-shot RE evaluation; using place_of_birth subset",
1511        tasks: ["re"],
1512        access_status: Public,
1513        categories: [relation_extraction],
1514    },
1515
1516    NYTFB {
1517        name: "NYT-FB",
1518        description: "New York Times with Freebase relations. Distant supervision relation extraction.",
1519        url: "https://github.com/thunlp/OpenNRE",
1520        entity_types: ["PER", "LOC", "ORG"],
1521        language: "en",
1522        domain: "news",
1523        license: "Research",
1524        citation: "Riedel et al. (2010)",
1525        paper_url: "https://aclanthology.org/N10-1114/",
1526        year: 2010,
1527        format: "JSONL",
1528        size_hint: "~570k sentences, 53 relations",
1529        notes: "Classic distant supervision RE; noisy but large-scale",
1530        categories: [relation_extraction],
1531    },
1532
1533    REBEL {
1534        name: "REBEL",
1535        description: "Relation Extraction By End-to-end Language generation. Large-scale RE dataset.",
1536        url: "https://huggingface.co/datasets/Babelscape/rebel-dataset",
1537        entity_types: ["PER", "LOC", "ORG", "Event"],
1538        language: "en",
1539        domain: "wikipedia",
1540        license: "CC-BY-SA-4.0",
1541        citation: "Huguet Cabot & Navigli (2021)",
1542        paper_url: "https://aclanthology.org/2021.findings-emnlp.204/",
1543        year: 2021,
1544        format: "JSONL",
1545        size_hint: "~6M triples from Wikipedia",
1546        notes: "Large-scale; generative RE approach; 220 relation types",
1547        categories: [relation_extraction],
1548    },
1549
1550    MultiCoNER {
1551        name: "MultiCoNER",
1552        description: "Multilingual Complex NER. 11 languages with fine-grained and complex entities.",
1553        url: "https://huggingface.co/datasets/samanjoy2/multiconer_v1",
1554        entity_types: ["PER", "LOC", "CORP", "GRP", "PROD", "CW"],
1555        language: "mul",
1556        domain: "mixed",
1557        license: "CC-BY-4.0",
1558        citation: "Malmasi et al. (2022)",
1559        paper_url: "https://aclanthology.org/2022.semeval-1.196/",
1560        year: 2022,
1561        format: "CoNLL",
1562        size_hint: "11 languages, ~1.1M tokens",
1563        notes: "SemEval-2022 shared task; complex entities from diverse sources. Community mirror of original.",
1564        hf_id: "samanjoy2/multiconer_v1",
1565        access_status: HuggingFace,
1566        categories: [ner, multilingual],
1567    },
1568
1569    MultiCoNERv2 {
1570        name: "MultiCoNER v2",
1571        description: "MultiCoNER v2 with expanded languages and fine-grained types.",
1572        url: "https://huggingface.co/datasets/MultiCoNER/multiconer_v2",
1573        entity_types: ["PER", "LOC", "CORP", "GRP", "PROD", "CW", "Medical", "Scientist"],
1574        language: "mul",
1575        domain: "mixed",
1576        license: "CC-BY-4.0",
1577        citation: "Fetahu et al. (2023)",
1578        paper_url: "https://aclanthology.org/2023.semeval-1.43/",
1579        year: 2023,
1580        format: "CoNLL",
1581        size_hint: "12 languages, fine-grained types",
1582        notes: "SemEval-2023 shared task; expanded from v1 with more types.",
1583        tasks: ["ner"],
1584        hf_id: "MultiCoNER/multiconer_v2",
1585        access_status: HuggingFace,
1586        categories: [ner, multilingual],
1587    },
1588
1589    // =========================================================================
1590    // Biomedical NER Datasets
1591    // =========================================================================
1592    BC5CDR {
1593        name: "BC5CDR",
1594        description: "Biomedical NER for diseases and chemicals. Created for BioCreative V CDR task, a major biomedical NLP benchmark.",
1595        url: "https://huggingface.co/datasets/tner/bc5cdr",
1596        entity_types: ["Chemical", "Disease"],
1597        language: "en",
1598        domain: "biomedical",
1599        license: "Public",
1600        citation: "Li et al. (2016)",
1601        paper_url: "https://academic.oup.com/database/article/doi/10.1093/database/baw068/2630414",
1602        year: 2016,
1603        format: "BIO",
1604        annotation_scheme: "BIO",
1605        size_hint: "~1500 PubMed abstracts, ~14k mentions",
1606        example: "Aspirin B-Chemical\ninduced O\nhepatotoxicity B-Disease\nwas O\nobserved O\n. O",
1607        tasks: ["ner"],
1608        hf_id: "tner/bc5cdr",
1609        access_status: HuggingFace,
1610        categories: [ner, biomedical],
1611    },
1612    NCBIDisease {
1613        name: "NCBI Disease",
1614        description: "NCBI disease mentions corpus. Foundational resource for disease NER from NIH.",
1615        url: "https://raw.githubusercontent.com/shreyashub/BioFLAIR/master/data/ner/NCBI-disease/test.txt",
1616        entity_types: ["Disease"],
1617        language: "en",
1618        domain: "biomedical",
1619        license: "Public",
1620        citation: "Dogan et al. (2014)",
1621        paper_url: "https://www.sciencedirect.com/science/article/pii/S1532046413001974",
1622        year: 2014,
1623        format: "BIO",
1624        annotation_scheme: "BIO",
1625        size_hint: "~800 PubMed abstracts, ~6k mentions",
1626        example: "The O\npatient O\nwas O\ndiagnosed O\nwith O\ntype B-Disease\n2 I-Disease\ndiabetes I-Disease\n. O",
1627        tasks: ["ner"],
1628        hf_id: "ncbi_disease",
1629        access_status: HuggingFace,
1630        categories: [ner, biomedical],
1631    },
1632    GENIA {
1633        name: "GENIA",
1634        description: "Biomedical NER for molecular biology. First large-scale biomedical NER corpus; historically significant.",
1635        url: "https://huggingface.co/datasets/chufangao/GENIA-NER",
1636        entity_types: ["DNA", "RNA", "protein", "cell_line", "cell_type"],
1637        language: "en",
1638        domain: "biomedical",
1639        license: "GENIA Project License",
1640        citation: "Kim et al. (2003)",
1641        paper_url: "https://academic.oup.com/bioinformatics/article/19/suppl_1/i180/227927",
1642        year: 2003,
1643        format: "XML",
1644        annotation_scheme: "Standoff",
1645        size_hint: "2000 MEDLINE abstracts, ~100k entities",
1646        example: "The B-protein\nNF-kappa B I-protein\nprotein I-protein\nbinds O\nto O\nthe B-DNA\nkappa B I-DNA\nbinding I-DNA\nsite I-DNA\n. O",
1647        notes: "Nested entities common; requires special handling; pioneered biomedical NER",
1648        hf_id: "chufangao/GENIA-NER",
1649        access_status: HuggingFace,
1650        categories: [ner, biomedical],
1651    },
1652
1653    AnatEM {
1654        name: "AnatEM",
1655        description: "Anatomical entity mention corpus. 1,212 PubMed abstracts with anatomical structures.",
1656        url: "https://huggingface.co/datasets/disi-unibo-nlp/AnatEM",
1657        entity_types: ["Anatomy"],
1658        language: "en",
1659        domain: "biomedical",
1660        license: "CC-BY-4.0",
1661        citation: "Ohta et al. (2012)",
1662        paper_url: "https://aclanthology.org/W12-2402/",
1663        year: 2012,
1664        format: "Standoff",
1665        size_hint: "1,212 abstracts, ~7k entity mentions",
1666        notes: "Fine-grained anatomical mentions; standalone or nested within other entities",
1667        hf_id: "disi-unibo-nlp/AnatEM",
1668        access_status: HuggingFace,
1669        categories: [ner, biomedical],
1670    },
1671
1672    BC2GM {
1673        name: "BC2GM",
1674        description: "BioCreative II Gene Mention recognition. Gold-standard gene/protein name tagging.",
1675        url: "https://huggingface.co/datasets/spyysalo/bc2gm_corpus",
1676        entity_types: ["Gene", "Protein"],
1677        language: "en",
1678        domain: "biomedical",
1679        license: "Research",
1680        citation: "Smith et al. (2008)",
1681        paper_url: "https://genomebiology.biomedcentral.com/articles/10.1186/gb-2008-9-s2-s2",
1682        year: 2008,
1683        format: "IOB2",
1684        size_hint: "20k sentences, ~24k gene mentions",
1685        example: "The B-Gene\np53 I-Gene\nprotein I-Gene\nregulates O\ncell O\ncycle O\narrest O\n. O",
1686        notes: "Classic benchmark for gene/protein NER; BioCreative shared task",
1687        tasks: ["ner"],
1688        hf_id: "spyysalo/bc2gm_corpus",
1689        access_status: HuggingFace,
1690        categories: [ner, biomedical],
1691    },
1692
1693    BC4CHEMD {
1694        name: "BC4CHEMD",
1695        description: "BioCreative IV Chemical Entity Mention Detection. Drug and chemical name recognition.",
1696        url: "https://huggingface.co/datasets/chintagunta85/bc4chemd",
1697        entity_types: ["Chemical"],
1698        language: "en",
1699        domain: "biomedical",
1700        license: "Research",
1701        citation: "Krallinger et al. (2015)",
1702        paper_url: "https://jcheminf.biomedcentral.com/articles/10.1186/1758-2946-7-S1-S2",
1703        year: 2015,
1704        format: "IOB2",
1705        size_hint: "10k PubMed abstracts, ~84k chemical mentions",
1706        example: "Treatment O\nwith O\nB-Chemical\naspirin I-Chemical\nreduced O\ninflammation O\n. O",
1707        notes: "Chemical NER benchmark; includes IUPAC names, trivial names, abbreviations",
1708        tasks: ["ner"],
1709        hf_id: "chintagunta85/bc4chemd",
1710        access_status: HuggingFace,
1711        categories: [ner, biomedical],
1712    },
1713
1714    // =========================================================================
1715    // Coreference Datasets
1716    // =========================================================================
1717    GAP {
1718        name: "GAP",
1719        description: "Gender Ambiguous Pronoun resolution. Google's benchmark for exposing gender bias in coreference systems.",
1720        url: "https://raw.githubusercontent.com/google-research-datasets/gap-coreference/master/gap-test.tsv",
1721        entity_types: ["PER"],
1722        language: "en",
1723        domain: "wikipedia",
1724        license: "Apache-2.0",
1725        citation: "Webster et al. (2018)",
1726        paper_url: "https://aclanthology.org/Q18-1042/",
1727        year: 2018,
1728        format: "TSV",
1729        size_hint: "8,908 pronoun-name pairs",
1730        example: "ID\tText\tPronoun\tA\tB\tA-coref\ntest-1\tZoe met Alice and she waved.\tshe\tZoe\tAlice\tFALSE",
1731        notes: "Designed to expose gender bias; Kaggle shared task; balanced male/female",
1732        tasks: ["coref"],
1733        hf_id: "google-gap-coreference/gap",
1734        access_status: HuggingFace,
1735        categories: [coref, bias_evaluation],
1736    },
1737    PreCo {
1738        name: "PreCo",
1739        description: "Large-scale coreference from PreCo reading comprehension corpus. 10x larger than OntoNotes.",
1740        url: "https://huggingface.co/datasets/coref-data/preco_raw",
1741        entity_types: ["PER", "LOC", "ORG"],
1742        language: "en",
1743        domain: "reading_comprehension",
1744        license: "CC-BY-4.0",
1745        citation: "Chen et al. (2018)",
1746        paper_url: "https://aclanthology.org/D18-1016/",
1747        year: 2018,
1748        format: "JSONL",
1749        annotation_scheme: "CoNLLCoref",
1750        size_hint: "38k documents, includes singletons",
1751        notes: "Preschool vocabulary for cleaner evaluation; largest public coref corpus",
1752        splits: ["train", "dev", "test"],
1753        tasks: ["coref"],
1754        hf_id: "coref-data/preco_raw",
1755        access_status: HuggingFace,
1756        categories: [coref],
1757    },
1758    LitBank {
1759        name: "LitBank",
1760        description: "Literary coreference. 100 public-domain English fiction works (1719-1922) with ACE-style entities.",
1761        url: "https://raw.githubusercontent.com/dbamman/litbank/master/coref/brat/1023_bleak_house_brat.ann",
1762        entity_types: ["PER", "LOC", "ORG", "GPE", "FAC", "VEH"],
1763        language: "en",
1764        domain: "literature",
1765        license: "CC-BY-4.0",
1766        citation: "Bamman et al. (2019)",
1767        paper_url: "https://aclanthology.org/P19-1353/",
1768        year: 2019,
1769        format: "BRAT",
1770        annotation_scheme: "Standoff",
1771        size_hint: "100 novels, ~2k tokens each",
1772        notes: "Focus on character coreference; includes event coref; public domain texts",
1773        splits: ["all"],
1774        tasks: ["ner", "coref", "event_coref"],
1775        expected_docs: 100,
1776        categories: [coref, literary],
1777    },
1778    ECBPlus {
1779        name: "ECB+",
1780        description: "Event Coreference Bank Plus. Standard benchmark for cross-document event coreference resolution.",
1781        url: "https://raw.githubusercontent.com/cltl/ecbPlus/master/ECB%2B_LREC2014/ECBplus_coreference_sentences.csv",
1782        entity_types: ["EVENT", "TIME", "LOC", "PARTICIPANT"],
1783        language: "en",
1784        domain: "news",
1785        license: "CC-BY-3.0",
1786        citation: "Cybulska & Vossen (2014)",
1787        paper_url: "https://aclanthology.org/L14-1646/",
1788        year: 2014,
1789        format: "Custom",
1790        size_hint: "43 topics, 982 docs, ~7k events",
1791        example: "Doc1: 'The earthquake [struck] at 3am.' Doc2: 'The [tremor] caused damage.'\nEvents: struck_1, tremor_2 -> coreferent (same event)",
1792        notes: "De facto CDCR standard; topic-clustered structure may cause overfitting",
1793        splits: ["train", "dev", "test"],
1794        tasks: ["coref", "event_coref", "cdcr"],
1795        expected_docs: 982,
1796        categories: [coref, event_coref],
1797    },
1798
1799    OntoNotesCoref {
1800        name: "OntoNotes Coreference",
1801        description: "OntoNotes 5.0 coreference annotations. Gold-standard multi-genre coref including WSJ, broadcast, web.",
1802        url: "https://catalog.ldc.upenn.edu/LDC2013T19",
1803        entity_types: ["PER", "ORG", "GPE", "NORP"],
1804        language: "en",
1805        domain: "mixed",
1806        license: "LDC",
1807        citation: "Pradhan et al. (2012)",
1808        paper_url: "https://aclanthology.org/W12-4501/",
1809        year: 2012,
1810        format: "CoNLL",
1811        annotation_scheme: "CoNLLCoref",
1812        size_hint: "3,493 documents, ~1.6M tokens",
1813        notes: "De facto standard for within-document coreference evaluation",
1814        categories: [coref],
1815    },
1816
1817    WikiCoref {
1818        name: "WikiCoref",
1819        description: "Wikipedia coreference corpus. 30 documents with full coreference annotation.",
1820        url: "",
1821        entity_types: ["PER", "ORG", "LOC"],
1822        language: "en",
1823        domain: "wikipedia",
1824        license: "CC-BY-SA-4.0",
1825        citation: "Ghaddar & Langlais (2016)",
1826        paper_url: "https://aclanthology.org/C16-1252/",
1827        year: 2016,
1828        format: "CoNLL",
1829        size_hint: "30 documents, ~60k tokens",
1830        notes: "Long documents averaging 2k tokens; challenging for span-based models. Prior download URL has an expired TLS cert; needs a fresh mirror.",
1831        access_status: Deprecated,
1832        categories: [coref],
1833    },
1834
1835    ARRAU3 {
1836        name: "ARRAU 3.0",
1837        description: "Anaphora Resolution and Underspecification corpus version 3. Multi-genre with rich annotation.",
1838        url: "https://aclanthology.org/2024.codi-1.12/",
1839        entity_types: ["PER", "ORG", "LOC", "Event"],
1840        language: "en",
1841        domain: "mixed",
1842        license: "Research",
1843        citation: "Uryupina et al. (2024)",
1844        paper_url: "https://aclanthology.org/2024.codi-1.12/",
1845        year: 2024,
1846        format: "MMAX2",
1847        annotation_scheme: "ARRAU",
1848        size_hint: "~350k tokens across multiple genres",
1849        notes: "Rich annotation including bridging, discourse deixis, and ambiguity",
1850        categories: [coref],
1851    },
1852
1853    AMIMeeting {
1854        name: "AMI Meeting",
1855        description: "Meeting transcripts with coreference and dialogue act annotation.",
1856        url: "https://groups.inf.ed.ac.uk/ami/download/",
1857        entity_types: ["PER", "ORG", "LOC"],
1858        language: "en",
1859        domain: "dialogue",
1860        license: "CC-BY-4.0",
1861        citation: "Carletta et al. (2005)",
1862        paper_url: "https://groups.inf.ed.ac.uk/ami/icsi/",
1863        year: 2005,
1864        format: "XML",
1865        size_hint: "100 hours of meetings",
1866        notes: "Multi-party dialogue; includes prosody and head gestures",
1867        categories: [coref, dialogue],
1868    },
1869
1870    CLEFClinicalCoref {
1871        name: "CLEF Clinical Coreference",
1872        description: "Clinical coreference from ShARe/CLEF eHealth. Patient records with coref.",
1873        url: "",
1874        entity_types: ["Disorder", "Drug", "Procedure"],
1875        language: "en",
1876        domain: "clinical",
1877        license: "PhysioNet",
1878        citation: "Suominen et al. (2013)",
1879        paper_url: "https://clef2013.clef-initiative.eu/index.php?page=pages/proceedings.php",
1880        year: 2013,
1881        format: "Standoff",
1882        size_hint: "298 discharge summaries",
1883        notes: "Clinical concept coreference; disorder mentions across sentences. Was hosted on PhysioNet; URL appears gone/renamed; requires controlled access.",
1884        access_status: Registration,
1885        categories: [coref, biomedical],
1886    },
1887
1888    RSTDT {
1889        name: "RST Discourse Treebank",
1890        description: "Penn Discourse Treebank with RST annotations. Discourse relations and structure.",
1891        url: "https://catalog.ldc.upenn.edu/LDC2002T07",
1892        entity_types: [],
1893        language: "en",
1894        domain: "news",
1895        license: "LDC",
1896        citation: "Carlson et al. (2001)",
1897        paper_url: "https://aclanthology.org/A00-1036/",
1898        year: 2001,
1899        format: "Custom",
1900        size_hint: "385 WSJ articles",
1901        notes: "RST discourse structure; useful for discourse-aware coreference",
1902        categories: [coref],
1903    },
1904
1905    WinoBias {
1906        name: "WinoBias",
1907        description: "Coreference bias benchmark. Winograd-schema sentences testing occupational gender stereotypes.",
1908        url: "https://raw.githubusercontent.com/uclanlp/corefBias/master/WinoBias/wino/data/anti_stereotyped_type1.txt.dev",
1909        entity_types: ["PER"],
1910        language: "en",
1911        domain: "evaluation",
1912        license: "MIT",
1913        citation: "Zhao et al. (2018)",
1914        paper_url: "https://aclanthology.org/N18-2003/",
1915        year: 2018,
1916        format: "Custom",
1917        size_hint: "3,160 sentences",
1918        notes: "Type 1 (syntactic) and Type 2 (semantic) splits; tests BLS occupational stats",
1919        categories: [coref, bias_evaluation],
1920    },
1921
1922    // =========================================================================
1923    // Indigenous Language Datasets
1924    // =========================================================================
1925    QxoRef {
1926        name: "qxoRef",
1927        description: "First coreference corpus for Conchucos Quechua. Historically significant as first indigenous coref resource.",
1928        url: "https://raw.githubusercontent.com/elizabethpankratz/qxoRef/f0eb5716573b3f428bfcfdda923b195d0e7967b8/qxoRef_AZ23.conll",
1929        entity_types: ["PER", "LOC", "ORG"],
1930        language: "qxo",
1931        domain: "narrative",
1932        license: "CC-BY-NC-SA-4.0",
1933        citation: "Rios (2021)",
1934        paper_url: "https://aclanthology.org/2021.americasnlp-1.1/",
1935        year: 2021,
1936        format: "CoNLL",
1937        annotation_scheme: "CoNLLCoref",
1938        size_hint: "12 docs, 332 mentions",
1939        notes: "First indigenous coreference corpus; pro-drop language; agglutinative morphology",
1940        categories: [coref, indigenous, low_resource],
1941    },
1942    AmericasNLI {
1943        name: "AmericasNLI",
1944        description: "NLI for 10 Indigenous American languages (Quechua, Guaraní, Nahuatl, etc.).",
1945        url: "https://raw.githubusercontent.com/nala-cub/AmericasNLI/be3c351b7e1ae69936c61bfde3e24f30757db9ac/test.tsv",
1946        entity_types: [],
1947        language: "mul",
1948        domain: "general",
1949        license: "CC-BY-4.0",
1950        citation: "Ebrahimi et al. (2022)",
1951        paper_url: "https://aclanthology.org/2022.acl-long.435/",
1952        year: 2022,
1953        format: "TSV",
1954        notes: "Tests zero-shot transfer from multilingual models; 10 indigenous languages",
1955        categories: [indigenous, multilingual, low_resource],
1956    },
1957    CherokeeNER {
1958        name: "Cherokee NER",
1959        description: "Cherokee-English parallel corpus for NER transfer. Uses Syllabary script.",
1960        url: "",
1961        entity_types: ["PER", "LOC", "ORG"],
1962        language: "chr",
1963        domain: "indigenous",
1964        license: "Research",
1965        citation: "Zhang et al. (2020)",
1966        paper_url: "https://aclanthology.org/2020.findings-emnlp.464/",
1967        year: 2020,
1968        format: "Custom",
1969        notes: "Syllabary script (85 characters); polysynthetic language; ~7k speakers. Prior URL is dead; needs a fresh mirror.",
1970        access_status: Deprecated,
1971        categories: [ner, indigenous, low_resource],
1972    },
1973    NahuatlNER {
1974        name: "Nahuatl NER",
1975        description: "Named entity recognition for Nahuatl (Aztec language). Colonial-era texts and modern usage.",
1976        url: "",
1977        entity_types: ["PER", "LOC", "ORG"],
1978        language: "nah",
1979        domain: "historical",
1980        license: "CC-BY-4.0",
1981        citation: "Gutierrez-Vasquez et al. (2023)",
1982        year: 2023,
1983        format: "CoNLL",
1984        notes: "Polysynthetic Uto-Aztecan language; ~1.7M speakers; includes colonial manuscripts. Prior URL is dead; needs a fresh mirror.",
1985        access_status: Deprecated,
1986        categories: [ner, indigenous, low_resource, historical],
1987    },
1988    MaoriNER {
1989        name: "Māori NER",
1990        description: "Named entity recognition for Te Reo Māori. New Zealand indigenous language corpus.",
1991        url: "",
1992        entity_types: ["PER", "LOC", "ORG"],
1993        language: "mi",
1994        domain: "indigenous",
1995        license: "Research",
1996        citation: "Te Hiku Media (2022)",
1997        year: 2022,
1998        format: "JSONL",
1999        notes: "Polynesian language; ~50k fluent speakers; limited training data available",
2000        access_status: ContactAuthors,
2001        categories: [ner, indigenous, low_resource],
2002    },
2003    WelshNER {
2004        name: "Welsh NER",
2005        description: "Named entity recognition for Welsh (Cymraeg). Celtic language NER corpus.",
2006        url: "",
2007        entity_types: ["PER", "LOC", "ORG", "MISC"],
2008        language: "cy",
2009        domain: "news",
2010        license: "CC-BY-4.0",
2011        citation: "Roberts et al. (2021)",
2012        year: 2021,
2013        format: "CoNLL",
2014        notes: "Celtic language; ~900k speakers; supports Welsh-specific entity types. Prior URL is dead; needs a fresh mirror.",
2015        access_status: Deprecated,
2016        categories: [ner, indigenous, low_resource],
2017    },
2018    BasqueNER {
2019        name: "Basque NER",
2020        description: "Named entity recognition for Basque (Euskara). Language isolate NER corpus.",
2021        url: "",
2022        entity_types: ["PER", "LOC", "ORG", "MISC"],
2023        language: "eu",
2024        domain: "news",
2025        license: "CC-BY-4.0",
2026        citation: "Alegria et al. (2019)",
2027        year: 2019,
2028        format: "CoNLL",
2029        size_hint: "~80k tokens",
2030        notes: "Language isolate; agglutinative morphology; ~750k speakers; ergative-absolutive alignment. Prior URL is dead; needs a fresh mirror.",
2031        access_status: Deprecated,
2032        categories: [ner, indigenous, low_resource],
2033    },
2034
2035    // =========================================================================
2036    // Historical NER Datasets
2037    // =========================================================================
2038    HIPE2022 {
2039        name: "HIPE-2022",
2040        description: "Multilingual Historical NER. 6 datasets across 11 languages including Latin.",
2041        url: "https://raw.githubusercontent.com/hipe-eval/HIPE-2022-data/147f5bc3c7fb7e5c6b024a9ffd6503cd019fb9ea/data/v2.1/hipe2020/de/HIPE-2022-v2.1-hipe2020-test-de.tsv",
2042        entity_types: ["PER", "LOC", "ORG", "PROD"],
2043        language: "mul",
2044        domain: "historical",
2045        license: "CC-BY-NC-4.0",
2046        citation: "Ehrmann et al. (2022)",
2047        paper_url: "https://ceur-ws.org/Vol-3180/paper-83.pdf",
2048        year: 2022,
2049        format: "TSV",
2050        annotation_scheme: "IOB2",
2051        notes: "CLEF-HIPE shared task; includes Latin and Classical commentary; OCR noise",
2052        splits: ["test"],
2053        tasks: ["ner"],
2054        categories: [ner, historical, multilingual],
2055    },
2056    HistNERo {
2057        name: "HistNERo",
2058        description: "Romanian historical newspaper NER. First Romanian historical NER corpus from four regions.",
2059        url: "https://github.com/avramandrei/histnero",
2060        entity_types: ["PER", "LOC", "ORG", "DATE", "MISC"],
2061        language: "ro",
2062        domain: "historical",
2063        license: "CC-BY-4.0",
2064        citation: "HistNERo Team (2024)",
2065        paper_url: "https://arxiv.org/abs/2405.00155",
2066        year: 2024,
2067        format: "CoNLL",
2068        size_hint: "~323k tokens, 19th-20th century newspapers",
2069        notes: "Four historical Romanian regions (Bessarabia, Moldavia, Transylvania, Wallachia); diachronic benchmark",
2070        splits: ["train", "dev", "test"],
2071        tasks: ["ner"],
2072        categories: [ner, historical, low_resource],
2073    },
2074    QuaeroOldPress {
2075        name: "Quaero Old Press",
2076        description: "French historical newspaper NER from 1890. OCR-corrected with manual NE annotations.",
2077        url: "",
2078        entity_types: ["PER", "LOC", "ORG", "TIME", "PROD"],
2079        language: "fr",
2080        domain: "historical",
2081        license: "Research",
2082        citation: "Galibert et al. (2012)",
2083        year: 2012,
2084        format: "XML",
2085        size_hint: "295 pages, 1890 newspapers",
2086        notes: "French historical NER benchmark; manual OCR corrections; reasonably clean historical text",
2087        splits: ["test"],
2088        tasks: ["ner"],
2089        access_status: ContactAuthors,
2090        categories: [ner, historical],
2091    },
2092    HistoricalChineseNER {
2093        name: "Historical Chinese NER",
2094        description: "Multi-task historical Chinese corpus. NER + entity linking + coreference + relations.",
2095        url: "",
2096        entity_types: ["PER", "LOC", "ORG", "TIME", "OFFICIAL"],
2097        language: "zh",
2098        domain: "historical",
2099        license: "Research",
2100        citation: "LREC-COLING (2024)",
2101        paper_url: "https://aclanthology.org/2024.lrec-main.35.pdf",
2102        year: 2024,
2103        format: "JSONL",
2104        size_hint: "Historical Chinese newspapers + documents",
2105        notes: "LREC-COLING 2024; multi-task historical IE benchmark; cross-genre historical Chinese",
2106        splits: ["train", "dev", "test"],
2107        tasks: ["ner", "el", "coref", "re"],
2108        access_status: ContactAuthors,
2109        categories: [ner, entity_linking, coref, historical, multilingual],
2110    },
2111    CHisIEC {
2112        name: "CHisIEC",
2113        description: "Chinese Historical Information Extraction Corpus. Ancient Chinese NER + RE with 12 relation types.",
2114        url: "https://raw.githubusercontent.com/tangxuemei1995/CHisIEC/main/data/re/coling_test.json",
2115        entity_types: ["PER", "LOC", "OFI", "BOOK"],
2116        language: "lzh",
2117        domain: "historical",
2118        license: "Research",
2119        citation: "Tang et al. (2024)",
2120        paper_url: "https://aclanthology.org/2024.lrec-main.283/",
2121        year: 2024,
2122        format: "JSON",
2123        size_hint: "3,891 paragraphs, 13,520 entities, 8,228 relations",
2124        notes: "Ancient Chinese dynastic histories (24史); 12 domain-specific relations for historical socio-political structures; pre-modern Chinese (文言文)",
2125        splits: ["train", "dev", "test"],
2126        tasks: ["ner", "re"],
2127        categories: [ner, relation_extraction, historical, ancient],
2128    },
2129
2130    // =========================================================================
2131    // Relation Extraction Datasets
2132    // =========================================================================
2133    DocRED {
2134        name: "DocRED",
2135        description: "Document-level relation extraction. 96 relation types from Wikipedia.",
2136        url: "https://raw.githubusercontent.com/mainlp/CrossRE/main/crossre_data/ai-test.json",
2137        entity_types: ["PER", "LOC", "ORG", "TIME", "NUM"],
2138        language: "en",
2139        domain: "wikipedia",
2140        license: "MIT",
2141        citation: "Yao et al. (2019)",
2142        paper_url: "https://aclanthology.org/P19-1074/",
2143        year: 2019,
2144        format: "JSONL",
2145        size_hint: "5,053 docs, 132k entities, 56k relations",
2146        splits: ["train", "dev", "test"],
2147        tasks: ["re"],
2148        expected_docs: 5053,
2149        hf_id: "docred",
2150        access_status: HuggingFace,
2151        categories: [relation_extraction],
2152    },
2153    ReTACRED {
2154        name: "Re-TACRED",
2155        description: "Large-scale relation extraction. 41 relation types + no_relation. Cleaned TACRED.",
2156        // NOTE: Re-TACRED is distributed as a delta/cleaned relabeling that depends on the
2157        // original TACRED distribution (LDC). We intentionally do not provide a direct URL
2158        // here to avoid accidentally pointing at unrelated files.
2159        url: "",
2160        entity_types: ["PER", "ORG", "LOC", "DATE", "NUM"],
2161        language: "en",
2162        domain: "news",
2163        license: "LDC",
2164        citation: "Stoica et al. (2021)",
2165        paper_url: "https://aclanthology.org/2021.acl-long.359/",
2166        year: 2021,
2167        format: "JSONL",
2168        size_hint: "~106k relations",
2169        notes: "Cleaned version of TACRED with relabeling; requires original TACRED",
2170        access_status: DependsOnOther,
2171        categories: [relation_extraction],
2172    },
2173
2174    // =========================================================================
2175    // Nested/Discontinuous NER Datasets
2176    // =========================================================================
2177    ACE2004 {
2178        name: "ACE 2004",
2179        description: "Nested entity recognition benchmark. Influential early corpus for nested NER research.",
2180        url: "",  // Requires LDC license
2181        entity_types: ["PER", "ORG", "GPE", "LOC", "FAC", "WEA", "VEH"],
2182        language: "en",
2183        domain: "news",
2184        license: "LDC",
2185        citation: "Doddington et al. (2004)",
2186        paper_url: "https://aclanthology.org/L04-1011/",
2187        year: 2004,
2188        format: "XML",
2189        annotation_scheme: "Standoff",
2190        notes: "Requires LDC license; includes entity relations; includes some nested entities",
2191        access_status: Registration,
2192        categories: [ner, nested_ner],
2193    },
2194    CADEC {
2195        name: "CADEC",
2196        description: "Clinical Adverse Drug Events. Benchmark for discontinuous NER from AskaPatient.",
2197        url: "https://huggingface.co/datasets/KevinSpaghetti/cadec",
2198        entity_types: ["ADR", "Drug", "Disease", "Symptom"],
2199        language: "en",
2200        domain: "biomedical",
2201        license: "Research",
2202        citation: "Karimi et al. (2015)",
2203        paper_url: "https://pubmed.ncbi.nlm.nih.gov/25817970/",
2204        year: 2015,
2205        format: "BRAT",
2206        annotation_scheme: "Standoff",
2207        size_hint: "~1,250 posts",
2208        example: "'severe [pain]...in my [legs]' -> ADR spans [0:10, 20:24] (discontinuous)",
2209        notes: "Discontinuous spans common; requires special handling; patient-written text",
2210        // Note: HF export endpoints currently fail (rows=422) and repo stores parquet shards.
2211        // Keep as HF reference but treat as non-automatable until we add parquet support or a stable jsonl mirror.
2212        splits: ["train", "dev", "test"],
2213        tasks: ["ner", "discontinuous_ner"],
2214        hf_id: "KevinSpaghetti/cadec",
2215        access_status: HuggingFace,
2216        categories: [ner, biomedical, discontinuous_ner],
2217    },
2218
2219    // =========================================================================
2220    // Bias Evaluation Datasets
2221    // =========================================================================
2222    WinoQueer {
2223        name: "WinoQueer",
2224        description: "Anti-LGBTQ+ bias benchmark. Community-in-the-loop design for queer representation.",
2225        url: "https://raw.githubusercontent.com/katyfelkner/winoqueer/main/data/winoqueer_final.csv",
2226        entity_types: ["PER"],
2227        language: "en",
2228        domain: "evaluation",
2229        license: "MIT",
2230        citation: "Felkner et al. (2023)",
2231        paper_url: "https://aclanthology.org/2023.acl-long.507/",
2232        year: 2023,
2233        format: "CSV",
2234        size_hint: "45,540 sentence pairs, ~4.8MB",
2235        notes: "Community-designed; tests queer stereotypes in LLMs; Winograd-schema style",
2236        splits: ["all"],
2237        tasks: ["bias_evaluation"],
2238        categories: [bias_evaluation],
2239    },
2240    BBQ {
2241        name: "BBQ",
2242        description: "Bias Benchmark for QA. Tests 9 social bias categories including sexual orientation.",
2243        url: "https://raw.githubusercontent.com/nyu-mll/BBQ/main/data/Gender_identity.jsonl",
2244        entity_types: [],
2245        language: "en",
2246        domain: "evaluation",
2247        license: "CC-BY-4.0",
2248        citation: "Parrish et al. (2022)",
2249        paper_url: "https://aclanthology.org/2022.findings-acl.165/",
2250        year: 2022,
2251        format: "JSONL",
2252        size_hint: "~58k QA pairs across 11 categories",
2253        notes: "Hand-built ambiguous contexts; age, disability, nationality, religion, etc.",
2254        splits: ["all"],
2255        tasks: ["bias_evaluation", "qa"],
2256        categories: [bias_evaluation],
2257    },
2258    GICoref {
2259        name: "GICoref",
2260        description: "Gender-inclusive coreference. Written by/about trans and non-binary individuals.",
2261        url: "https://raw.githubusercontent.com/TristaCao/into_inclusivecoref/master/GICoref/coref.combo.conll",
2262        entity_types: ["PER"],
2263        language: "en",
2264        domain: "evaluation",
2265        license: "CC-BY-4.0",
2266        citation: "Cao & Daume III (2020)",
2267        paper_url: "https://aclanthology.org/2020.acl-main.418/",
2268        year: 2020,
2269        format: "CoNLL",
2270        annotation_scheme: "CoNLLCoref",
2271        size_hint: "95 docs, 470KB",
2272        notes: "Includes neopronouns (ze/hir, xe/xem); singular they; first gender-inclusive coref corpus",
2273        splits: ["all"],
2274        tasks: ["coref"],
2275        categories: [coref, bias_evaluation],
2276    },
2277
2278    // =========================================================================
2279    // Multilingual Coreference
2280    // =========================================================================
2281    CorefUD {
2282        name: "CorefUD",
2283        description: "Multilingual coreference (17 languages, 22 datasets). CRAC shared task standard.",
2284        url: "http://hdl.handle.net/11234/1-5987",
2285        entity_types: ["PER", "LOC", "ORG"],
2286        language: "mul",
2287        domain: "general",
2288        license: "CC-BY-NC-SA-4.0",
2289        citation: "Nedoluzhko et al. (2022)",
2290        paper_url: "https://aclanthology.org/2022.lrec-1.581/",
2291        year: 2022,
2292        format: "CoNLLU",
2293        annotation_scheme: "CoNLLCoref",
2294        notes: "CRAC shared task standard; includes zero anaphora; harmonized across treebanks",
2295        categories: [coref, multilingual],
2296    },
2297    TransMuCoRes {
2298        name: "TransMuCoRes",
2299        description: "Coreference in 31 South Asian languages. Silver annotations via NLLB-200 translation.",
2300        url: "",  // HuggingFace gated
2301        entity_types: ["PER", "LOC", "ORG"],
2302        language: "mul",
2303        domain: "general",
2304        license: "Research",
2305        citation: "Verma et al. (2024)",
2306        paper_url: "https://arxiv.org/abs/2402.13571",
2307        year: 2024,
2308        format: "JSONL",
2309        notes: "Silver annotations via translation; fine-tuned mBERT models available",
2310        access_status: ContactAuthors,
2311        categories: [coref, multilingual],
2312    },
2313    MGAP {
2314        name: "mGAP",
2315        description: "Multilingual Gender-Ambiguous Pronouns. 27 South Asian languages.",
2316        url: "",  // Research access required
2317        entity_types: ["PER"],
2318        language: "mul",
2319        domain: "evaluation",
2320        license: "Research",
2321        citation: "Verma et al. (2025)",
2322        paper_url: "https://aclanthology.org/2025.chipsal-1.10/",
2323        year: 2025,
2324        format: "TSV",
2325        size_hint: "8,908 pronoun-name pairs",
2326        notes: "Cross-attention improves results; extension of GAP to South Asian languages",
2327        access_status: ContactAuthors,
2328        categories: [coref, multilingual, bias_evaluation],
2329    },
2330    CrowSPairs {
2331        name: "CrowS-Pairs",
2332        description: "Crowdsourced stereotype pairs benchmark. 9 bias categories for language models.",
2333        url: "https://github.com/nyu-mll/crows-pairs",
2334        entity_types: [],
2335        language: "en",
2336        domain: "evaluation",
2337        license: "CC-BY-SA-4.0",
2338        citation: "Nangia et al. (2020)",
2339        paper_url: "https://aclanthology.org/2020.emnlp-main.154/",
2340        year: 2020,
2341        format: "CSV",
2342        size_hint: "~1.5k sentence pairs",
2343        notes: "Tests stereotypical associations; gender, race, religion, age, nationality, etc.",
2344        splits: ["all"],
2345        tasks: ["bias_evaluation"],
2346        categories: [bias_evaluation],
2347    },
2348    StereoSet {
2349        name: "StereoSet",
2350        description: "Measuring stereotypical bias in language models. 4 target domains.",
2351        url: "https://github.com/moinnadeem/StereoSet",
2352        entity_types: [],
2353        language: "en",
2354        domain: "evaluation",
2355        license: "MIT",
2356        citation: "Nadeem et al. (2020)",
2357        paper_url: "https://aclanthology.org/2021.acl-long.416/",
2358        year: 2020,
2359        format: "JSONL",
2360        size_hint: "~17k instances",
2361        notes: "Intrasentence and intersentence evaluation; gender, profession, race, religion",
2362        splits: ["all"],
2363        tasks: ["bias_evaluation"],
2364        categories: [bias_evaluation],
2365    },
2366    RealToxicityPrompts {
2367        name: "RealToxicityPrompts",
2368        description: "100k prompts for measuring toxicity generation in language models.",
2369        url: "https://huggingface.co/datasets/allenai/real-toxicity-prompts",
2370        entity_types: [],
2371        language: "en",
2372        domain: "evaluation",
2373        license: "Apache-2.0",
2374        citation: "Gehman et al. (2020)",
2375        paper_url: "https://aclanthology.org/2020.findings-emnlp.301/",
2376        year: 2020,
2377        format: "JSONL",
2378        size_hint: "~100k prompts",
2379        notes: "Tests toxicity generation; perspectives API scores; diverse prompt styles",
2380        splits: ["all"],
2381        tasks: ["bias_evaluation"],
2382        categories: [bias_evaluation, adversarial],
2383    },
2384    BoldBias {
2385        name: "BOLD",
2386        description: "Bias in Open-ended Language Generation Dataset. Wikipedia-based prompts.",
2387        url: "https://github.com/amazon-science/bold",
2388        entity_types: [],
2389        language: "en",
2390        domain: "evaluation",
2391        license: "CC-BY-4.0",
2392        citation: "Dhamala et al. (2021)",
2393        paper_url: "https://aclanthology.org/2021.findings-acl.311/",
2394        year: 2021,
2395        format: "JSONL",
2396        size_hint: "~23k prompts",
2397        notes: "Tests generation bias; profession, gender, race, religion, political ideology",
2398        splits: ["all"],
2399        tasks: ["bias_evaluation"],
2400        categories: [bias_evaluation],
2401    },
2402
2403    // =========================================================================
2404    // Literary Coreference
2405    // =========================================================================
2406    DROC {
2407        name: "DROC",
2408        description: "German novel coreference. 90 German novels from DTA (Deutsches Textarchiv).",
2409        url: "",
2410        entity_types: ["PER"],
2411        language: "de",
2412        domain: "literature",
2413        license: "CC-BY-4.0",
2414        citation: "Krug et al. (2018)",
2415        paper_url: "https://aclanthology.org/L18-1045/",
2416        year: 2018,
2417        format: "JSONL",
2418        notes: "First public German literary coreference dataset. Prior URL is dead; needs a fresh mirror.",
2419        splits: ["all"],
2420        tasks: ["coref"],
2421        access_status: Deprecated,
2422        categories: [coref, literary],
2423    },
2424    FantasyCoref {
2425        name: "FantasyCoref",
2426        description: "Fantasy fiction coreference. Handles entity transformations. 211 Grimms' stories.",
2427        url: "https://github.com/emorynlp/FantasyCoref/archive/refs/heads/master.zip",
2428        entity_types: ["PER", "LOC", "ORG"],
2429        language: "en",
2430        domain: "literature",
2431        license: "Research",
2432        citation: "Han et al. (2021)",
2433        paper_url: "https://aclanthology.org/2021.emnlp-main.672/",
2434        year: 2021,
2435        format: "JSONL",
2436        notes: "Shape-shifting, possession, disguise - unique challenges. Prior GitHub URL is currently 404; treat as non-automatable until mirrored.",
2437        tasks: ["coref"],
2438        access_status: ContactAuthors,
2439        categories: [coref, literary],
2440    },
2441
2442    // =========================================================================
2443    // Book-Scale / Long-Document Coreference
2444    // =========================================================================
2445
2446    BookCoref {
2447        name: "BOOKCOREF",
2448        description: "Book-scale coreference. First benchmark with 200k+ tokens/doc average. Character coreference on 53 Project Gutenberg novels.",
2449        url: "https://huggingface.co/datasets/sapienzanlp/bookcoref",
2450        entity_types: ["PER"],
2451        language: "en",
2452        domain: "literature",
2453        license: "CC-BY-NC-SA-4.0",
2454        citation: "Martinelli et al. (2025)",
2455        paper_url: "https://aclanthology.org/2025.acl-long.1197/",
2456        year: 2025,
2457        format: "JSONL",
2458        annotation_scheme: "CoNLLCoref",
2459        size_hint: "53 books, ~10.8M tokens silver, 229k tokens gold",
2460        example: "doc_key: pride_and_prejudice_1342\nsentences: [[CHAPTER, I.], [It, is, a, truth, ...]]\nclusters: [[[79,80], [81,82], ...], ...]\ncharacters: [{name: Mr Bennet, cluster: [[79,80]]}]",
2461        notes: "Gold test set: 3 books (Animal Farm, Siddhartha, Pride & Prejudice). Silver train: 45 books. Unprecedented 73k avg mention distance. Requires HF datasets Python lib to download; export to JSONL for anno loader.",
2462        splits: ["train", "validation", "test"],
2463        tasks: ["coref"],
2464        expected_docs: 53,
2465        hf_id: "sapienzanlp/bookcoref",
2466        access_status: DependsOnOther,
2467        categories: [coref, literary, long_document],
2468    },
2469    BookCorefSplit {
2470        name: "BOOKCOREF (Split)",
2471        description: "BOOKCOREF split into 1500-token windows for comparison with standard benchmarks.",
2472        url: "https://huggingface.co/datasets/sapienzanlp/bookcoref",
2473        entity_types: ["PER"],
2474        language: "en",
2475        domain: "literature",
2476        license: "CC-BY-NC-SA-4.0",
2477        citation: "Martinelli et al. (2025)",
2478        paper_url: "https://aclanthology.org/2025.acl-long.1197/",
2479        year: 2025,
2480        format: "JSONL",
2481        annotation_scheme: "CoNLLCoref",
2482        size_hint: "7544 train, 398 val, 152 test windows",
2483        notes: "Same data as BOOKCOREF but windowed. Enables fair comparison: Maverickxl gets 82.2 CoNLL F1 on split vs 61.0 on full books. Requires HF datasets Python lib to download.",
2484        splits: ["train", "validation", "test"],
2485        tasks: ["coref"],
2486        hf_id: "sapienzanlp/bookcoref",
2487        hf_config: "split",
2488        access_status: DependsOnOther,
2489        categories: [coref, literary],
2490    },
2491    LongtoNotes {
2492        name: "LongtoNotes",
2493        description: "OntoNotes with merged coreference chains. Manually merges split OntoNotes documents back into full documents.",
2494        url: "https://docs.google.com/forms/d/e/1FAIpQLScoWkBOgJ1HH_phtvTJ4_hGvQw6f0W6K7kw74sUKCDTG8P2iA/viewform",
2495        entity_types: ["PER", "ORG", "GPE", "NORP"],
2496        language: "en",
2497        domain: "mixed",
2498        license: "CC-BY-4.0",
2499        citation: "Shridhar et al. (2023)",
2500        paper_url: "https://aclanthology.org/2023.findings-eacl.105/",
2501        year: 2023,
2502        format: "CoNLL",
2503        annotation_scheme: "CoNLLCoref",
2504        size_hint: "2,415 documents, up to 8x longer than OntoNotes",
2505        notes: "Requires OntoNotes access. Documents up to 8x OntoNotes length, 2x LitBank. Multi-genre (WSJ, broadcast, web).",
2506        splits: ["train", "dev", "test"],
2507        tasks: ["coref"],
2508        categories: [coref, long_document],
2509    },
2510    MovieCoref {
2511        name: "MovieCoref",
2512        description: "Screenplay coreference. Character coreference in movie screenplays with unique structural challenges.",
2513        url: "https://aclanthology.org/attachments/2021.findings-acl.176.OptionalSupplementaryMaterial.gz",
2514        entity_types: ["PER"],
2515        language: "en",
2516        domain: "literature",
2517        license: "Research",
2518        citation: "Baruah et al. (2021)",
2519        paper_url: "https://aclanthology.org/2021.findings-acl.176/",
2520        year: 2021,
2521        format: "CoNLL",
2522        annotation_scheme: "CoNLLCoref",
2523        size_hint: "9 screenplays (~22k tokens/doc avg), 6 full + 3 excerpts",
2524        notes: "Screenplay structure (scene headings, character names, parentheticals) differs significantly from prose. Focus on character coreference only.",
2525        splits: ["all"],
2526        tasks: ["coref"],
2527        categories: [coref, literary, long_document],
2528    },
2529    // =========================================================================
2530    // Dialogue / Conversational Coreference
2531    // =========================================================================
2532    TwiConv {
2533        name: "TwiConv",
2534        description: "Twitter conversational coreference.",
2535        url: "https://raw.githubusercontent.com/berfingit/TwiConv/main/conll_skeleton/001_940791133357199360.branch7._with_boundaries_gold_conll",
2536        entity_types: ["PER", "LOC", "ORG"],
2537        language: "en",
2538        domain: "social_media",
2539        license: "Research",
2540        citation: "Aktaş et al. (2020)",
2541        paper_url: "https://aclanthology.org/2020.lrec-1.835/",
2542        format: "CoNLL",
2543        notes: "Turn-taking dynamics; speaker grounding",
2544        categories: [coref, dialogue, social_media],
2545    },
2546    MuDoCo {
2547        name: "MuDoCo",
2548        description: "Multi-domain document-level coreference. Dialog-based.",
2549        url: "https://raw.githubusercontent.com/facebookresearch/mudoco/main/mudoco_calling.json",
2550        entity_types: ["PER", "LOC", "ORG"],
2551        language: "en",
2552        domain: "dialogue",
2553        license: "MIT",
2554        citation: "Raghunathan et al. (2020)",
2555        paper_url: "https://arxiv.org/abs/2005.00816",
2556        format: "JSON",
2557        notes: "Multi-domain dialog coreference with speaker tracking",
2558        categories: [coref, dialogue],
2559    },
2560    DialogRE {
2561        name: "DialogRE",
2562        description: "Dialogue-based relation extraction. Multi-turn conversations requiring entity tracking across turns.",
2563        url: "https://github.com/nlpdata/dialogre",
2564        entity_types: ["PER", "ORG", "LOC"],
2565        language: "en",
2566        domain: "dialogue",
2567        license: "CC-BY-NC-SA-4.0",
2568        citation: "Yu et al. (2020)",
2569        paper_url: "https://aclanthology.org/2020.acl-main.444/",
2570        year: 2020,
2571        format: "JSONL",
2572        size_hint: "~1.8k dialogues, 36 relation types",
2573        notes: "Based on Friends TV show transcripts; requires tracking entities across dialogue turns",
2574        splits: ["train", "dev", "test"],
2575        tasks: ["re", "coref"],
2576        categories: [relation_extraction, dialogue],
2577    },
2578    MultiWOZNER {
2579        name: "MultiWOZ NER",
2580        description: "Multi-domain task-oriented dialogue with slot/entity annotations. Multi-turn conversations.",
2581        url: "https://github.com/budzianowski/multiwoz",
2582        entity_types: ["RESTAURANT", "HOTEL", "ATTRACTION", "TAXI", "TRAIN", "HOSPITAL", "POLICE"],
2583        language: "en",
2584        domain: "dialogue",
2585        license: "Apache-2.0",
2586        citation: "Budzianowski et al. (2018)",
2587        paper_url: "https://aclanthology.org/D18-1547/",
2588        year: 2018,
2589        format: "JSONL",
2590        size_hint: "~10k dialogues, 7 domains",
2591        notes: "Standard benchmark for dialogue state tracking; slot values correspond to entities",
2592        splits: ["train", "dev", "test"],
2593        tasks: ["ner", "slot_filling"],
2594        categories: [ner, dialogue],
2595    },
2596    CoQAEntities {
2597        name: "CoQA",
2598        description: "Conversational QA across 7 domains: children's stories, literature, mid/high school exams, news, Wikipedia, science, Reddit.",
2599        url: "https://stanfordnlp.github.io/coqa/",
2600        entity_types: ["ANSWER_SPAN"],
2601        language: "en",
2602        domain: "mixed",
2603        license: "Research",
2604        citation: "Reddy et al. (2019)",
2605        paper_url: "https://aclanthology.org/Q19-1016/",
2606        year: 2019,
2607        format: "JSONL",
2608        size_hint: "~8k conversations, ~127k QA turns",
2609        notes: "Multi-turn QA; implicit entity tracking across conversation history; 7 diverse domains",
2610        splits: ["train", "dev", "test"],
2611        tasks: ["qa", "coref"],
2612        categories: [coref, dialogue],
2613    },
2614
2615    // =========================================================================
2616    // Cross-Document Event Coreference
2617    // =========================================================================
2618    GVC {
2619        name: "Gun Violence Corpus",
2620        description: "Cross-document event coreference for gun violence. Tests domain transfer from ECB+.",
2621        url: "https://github.com/cltl/GunViolenceCorpus",
2622        entity_types: ["EVENT", "PARTICIPANT", "WEAPON", "LOCATION", "TIME"],
2623        language: "en",
2624        domain: "news",
2625        license: "Research",
2626        citation: "Vossen et al. (2018)",
2627        paper_url: "https://aclanthology.org/L18-1182/",
2628        year: 2018,
2629        format: "Custom",
2630        size_hint: "~500 docs, 510 mentions",
2631        notes: "Domain-specific CDEC; requires participant/temporal reasoning unlike lemma-driven ECB+",
2632        splits: ["train", "dev", "test"],
2633        tasks: ["coref", "event_coref", "cdcr"],
2634        categories: [coref, event_coref],
2635    },
2636    FCC {
2637        name: "Football Coreference Corpus",
2638        description: "Cross-document event coreference for football matches. Requires temporal reasoning.",
2639        url: "",  // Research access required
2640        entity_types: ["EVENT", "PARTICIPANT", "LOC", "TIME"],
2641        language: "en",
2642        domain: "sports",
2643        license: "Research",
2644        citation: "Bugert et al. (2021)",
2645        paper_url: "https://direct.mit.edu/coli/article/47/3/575/102774/",
2646        notes: "Requires temporal reasoning about match dates",
2647        access_status: ContactAuthors,
2648        categories: [coref, event_coref],
2649    },
2650    ECBPlusMeta {
2651        name: "ECB+META",
2652        description: "ECB+ with metaphoric paraphrases. ChatGPT-transformed sentences.",
2653        url: "",  // Research access required
2654        entity_types: ["EVENT", "TIME", "LOC", "PARTICIPANT"],
2655        language: "en",
2656        domain: "news",
2657        license: "Research",
2658        citation: "Pouran Ben Veyseh et al. (2024)",
2659        paper_url: "https://arxiv.org/abs/2407.11988",
2660        notes: "Adversarial; existing systems struggle badly",
2661        access_status: ContactAuthors,
2662        categories: [coref, event_coref, adversarial],
2663    },
2664
2665    // =========================================================================
2666    // Abstract Anaphora / Discourse
2667    // =========================================================================
2668    ARRAU {
2669        name: "ARRAU 3.0 (v2)",
2670        description: "Multi-genre anaphoric annotation: identity, bridging, discourse deixis, split antecedents.",
2671        url: "",  // LDC + free subsets
2672        entity_types: ["PER", "LOC", "ORG", "EVENT"],
2673        language: "en",
2674        domain: "mixed",
2675        license: "LDC + Research",
2676        citation: "Poesio et al. (2024)",
2677        paper_url: "https://aclanthology.org/2024.codi-1.12/",
2678        year: 2024,
2679        format: "MMAX2",
2680        notes: "Most comprehensive anaphora resource; RST/TRAINS/Pear/GENIA subsets; LDC2023T05",
2681        splits: ["train", "dev", "test"],
2682        tasks: ["coref", "bridging", "discourse_deixis"],
2683        access_status: Registration,
2684        categories: [coref, abstract_anaphora],
2685    },
2686    ISNotes {
2687        name: "ISNotes",
2688        description: "Unrestricted bridging anaphora on OntoNotes. ~660 bridging pairs.",
2689        url: "https://github.com/nlpAThits/ISNotes1.0/archive/refs/heads/master.zip",
2690        entity_types: ["PER", "LOC", "ORG"],
2691        language: "en",
2692        domain: "news",
2693        license: "Research",
2694        citation: "Hou et al. (2018)",
2695        paper_url: "https://direct.mit.edu/coli/article/44/2/237/1596/",
2696        format: "MMAX2",
2697        notes: "Part-whole set-member bridging; requires OntoNotes for full text",
2698        tasks: ["coref"],
2699        access_status: DependsOnOther,
2700        categories: [coref, abstract_anaphora],
2701    },
2702    ShellNouns {
2703        name: "Shell Nouns (ASN)",
2704        description: "Anaphoric shell noun resolution. 670 English shell nouns from Schmid taxonomy.",
2705        url: "",  // Research access
2706        entity_types: [],
2707        language: "en",
2708        domain: "academic",
2709        license: "Research",
2710        citation: "Kolhatkar & Hirst (2012)",
2711        paper_url: "https://aclanthology.org/D12-1036/",
2712        notes: "Factual, linguistic, mental, modal, eventive categories",
2713        access_status: ContactAuthors,
2714        categories: [abstract_anaphora],
2715    },
2716    PDTBv3 {
2717        name: "PDTB 3.0",
2718        description: "Penn Discourse TreeBank v3. 43 discourse relation types.",
2719        url: "",  // LDC required
2720        entity_types: [],
2721        language: "en",
2722        domain: "news",
2723        license: "LDC",
2724        citation: "Prasad et al. (2019)",
2725        paper_url: "https://catalog.ldc.upenn.edu/LDC2019T05",
2726        notes: "Shallow discourse parsing; connective-argument pairs",
2727        access_status: Registration,
2728        categories: [abstract_anaphora],
2729    },
2730    CODICRACBridging {
2731        name: "CODI-CRAC Bridging",
2732        description: "Universal Anaphora bridging annotations. One of the largest bridging datasets.",
2733        url: "https://github.com/UniversalAnaphora/UA-CODI-CRAC",
2734        entity_types: ["BRIDGING_REF"],
2735        language: "en",
2736        domain: "dialogue",
2737        license: "CC-BY-4.0",
2738        citation: "CODI-CRAC (2022)",
2739        paper_url: "https://aclanthology.org/2024.lrec-main.1484.pdf",
2740        year: 2022,
2741        format: "CoNLLUA",
2742        size_hint: "AMI, LIGHT, PERSUASION subsets",
2743        notes: "Dialogue-heavy; extensive bridging annotations; Universal Anaphora format",
2744        splits: ["train", "dev", "test"],
2745        tasks: ["coref", "bridging"],
2746        categories: [coref, abstract_anaphora, dialogue],
2747    },
2748    AnaphoraAccessibility {
2749        name: "Anaphora Accessibility",
2750        description: "Discourse anaphora accessibility evaluation. Tests non-NP antecedents.",
2751        url: "",
2752        entity_types: ["DISCOURSE_DEIXIS", "EVENT_ANAPHORA", "CLAUSAL_ANTECEDENT"],
2753        language: "en",
2754        domain: "evaluation",
2755        license: "Research",
2756        citation: "Accessibility Authors (2025)",
2757        paper_url: "https://arxiv.org/html/2502.14119v1",
2758        year: 2025,
2759        format: "JSONL",
2760        size_hint: "Controlled evaluation set",
2761        notes: "2025 evaluation dataset; focuses on discourse-level anaphora understanding; non-nominal antecedents",
2762        splits: ["test"],
2763        tasks: ["coref", "discourse_deixis"],
2764        access_status: NotYetReleased,
2765        categories: [coref, abstract_anaphora],
2766    },
2767    HumanVoiceAgentInteraction {
2768        name: "Human-Voice Agent Interaction",
2769        description: "Naturalistic French dialogue from human-voice agent interactions. Response tokens, aside sequences, discourse deixis.",
2770        url: "",  // Local dataset at testdata/human_voice_agent/
2771        entity_types: ["RESPONSE_TOKEN", "DISCOURSE_DEIXIS", "PROPOSITIONAL_ANAPHORA"],
2772        language: "fr",
2773        domain: "dialogue",
2774        license: "Research",
2775        citation: "Rudaz, Broth & Mlynář (2025)",
2776        paper_url: "https://dl.acm.org/journal/tochi",
2777        year: 2025,
2778        format: "JSONL",
2779        size_hint: "70 turns, 10 discourse deixis examples, 11 response tokens",
2780        notes: "French dialogue from Pepper robot (2022) and ChatGPT voice mode (2025). Documents 'managed omnirelevance of speech' - how VAD-based agents misinterpret response tokens and asides. Local dataset at testdata/human_voice_agent/",
2781        splits: ["all"],
2782        tasks: ["coref", "abstract_anaphora"],
2783        access_status: Local,
2784        categories: [abstract_anaphora, dialogue],
2785    },
2786    DiscoBench {
2787        name: "Disco-Bench",
2788        description: "Discourse-aware evaluation benchmark for language modeling. 9 document-level testsets covering cohesion, coherence across Chinese/English literature.",
2789        url: "",
2790        entity_types: [],
2791        language: "zh-en",  // Chinese-English bilingual
2792        domain: "literature",
2793        license: "CC-BY-4.0",
2794        citation: "Wang et al. (2023)",
2795        paper_url: "https://arxiv.org/abs/2307.08074",
2796        year: 2023,
2797        format: "Custom",
2798        size_hint: "9 document-level testsets + diagnostic suite",
2799        notes: "Tests intra-sentence discourse properties: cohesion, coherence, entity tracking. Evaluates LLMs on discourse phenomena that cross sentences.",
2800        splits: ["test"],
2801        tasks: ["discourse_coherence"],
2802        access_status: NotYetReleased,
2803        categories: [abstract_anaphora, multilingual],
2804    },
2805    DiscoTrack {
2806        name: "DiscoTrack",
2807        description: "Multilingual LLM benchmark for discourse tracking. 12 languages, 4 levels: salience, entity tracking, discourse relations, bridging.",
2808        url: "",
2809        entity_types: ["SALIENT_ENTITY", "TRACKED_ENTITY", "BRIDGING_REF"],
2810        language: "mul",
2811        domain: "general",
2812        license: "CC-BY-4.0",
2813        citation: "Bu, Levine & Zeldes (2025)",
2814        paper_url: "https://arxiv.org/abs/2510.17013",
2815        year: 2025,
2816        format: "Custom",
2817        size_hint: "12 languages, 4 task levels",
2818        notes: "Tests implicit information and pragmatic inference across documents. Four levels: salience recognition, entity tracking, discourse relations, bridging inference. State-of-the-art models still struggle.",
2819        splits: ["test"],
2820        tasks: ["coref", "bridging", "discourse_deixis"],
2821        access_status: NotYetReleased,
2822        categories: [coref, abstract_anaphora, multilingual],
2823    },
2824    LIEDER {
2825        name: "LIEDER",
2826        description: "Linguistically-Informed Evaluation for Discourse Entity Recognition. Tests existence, uniqueness, plurality, novelty.",
2827        url: "",
2828        entity_types: ["DISCOURSE_ENTITY"],
2829        language: "en",
2830        domain: "evaluation",
2831        license: "Research",
2832        citation: "Zhu & Frank (2024)",
2833        paper_url: "https://arxiv.org/abs/2403.06301",
2834        year: 2024,
2835        format: "Custom",
2836        size_hint: "Controlled evaluation set",
2837        notes: "Tests LLM knowledge of semantic properties governing discourse entity introduction/reference: existence, uniqueness, plurality, novelty. Models show sensitivity to all except novelty.",
2838        splits: ["test"],
2839        tasks: ["discourse_deixis"],
2840        access_status: ContactAuthors,
2841        categories: [abstract_anaphora],
2842    },
2843    GCDC {
2844        name: "GCDC",
2845        description: "Grammarly Corpus of Discourse Coherence. Real-world texts with coherence ratings across 4 domains.",
2846        url: "",
2847        entity_types: [],
2848        language: "en",
2849        domain: "mixed",
2850        license: "Research",
2851        citation: "Lai & Tetreault (2018)",
2852        paper_url: "https://arxiv.org/abs/1805.04993",
2853        year: 2018,
2854        format: "TSV",
2855        size_hint: "~2000 texts, 4 domains",
2856        notes: "Four domains: Clinton emails, Enron, Yahoo answers, Yelp. First large-scale discourse coherence evaluation.",
2857        splits: ["train", "dev", "test"],
2858        tasks: ["discourse_coherence"],
2859        access_status: DependsOnOther,
2860        depends_on: "Yahoo L6 corpus (request from Yahoo, then email tetreaul@gmail.com)",
2861        categories: [abstract_anaphora],
2862    },
2863    DISAPERE {
2864        name: "DISAPERE",
2865        description: "Discourse Structure in Peer Review Discussions. 20k sentences in 506 review-rebuttal pairs with argumentation annotation.",
2866        url: "https://github.com/nnkennard/DISAPERE",
2867        entity_types: ["REVIEW_ARG", "REBUTTAL_ARG", "STANCE"],
2868        language: "en",
2869        domain: "scientific",
2870        license: "CC-BY-4.0",
2871        citation: "Kennard et al. (2022)",
2872        paper_url: "https://arxiv.org/abs/2110.08520",
2873        year: 2022,
2874        format: "JSONL",
2875        size_hint: "20k sentences, 506 review-rebuttal pairs",
2876        notes: "Discourse relations between reviews and rebuttals. Fine-grained rebuttal annotation: context in review, stance toward arguments. Expert-annotated. DOWNLOADED to anno cache.",
2877        splits: ["train", "dev", "test"],
2878        tasks: ["discourse_relations"],
2879        access_status: Public,
2880        categories: [abstract_anaphora, dialogue],
2881    },
2882    // PragmEval: 11 discourse-focused datasets for pragmatics evaluation
2883    PragmEval {
2884        name: "PragmEval",
2885        description: "Pragmatics-centered evaluation framework: 11 datasets covering discourse relations, speech acts, stance, sarcasm, verifiability.",
2886        url: "https://github.com/sileod/pragmeval",
2887        entity_types: [],
2888        language: "en",
2889        domain: "dialogue",
2890        license: "Research",
2891        citation: "Sileo et al. (2022)",
2892        paper_url: "https://aclanthology.org/2022.lrec-1.255",
2893        year: 2022,
2894        format: "TSV",
2895        size_hint: "20 subsets, ~130k examples total",
2896        notes: "Compilation of PDTB, STAC, GUM (discourse relations), Emergent (stance), SarcasmV2, SwitchBoard/MRDA (speech acts), Verifiability, Persuasion, Squinky, EmoBank. Not directly loadable by anno (HF viewer runs arbitrary code; data is not stored as raw files).",
2897        splits: ["train", "dev", "test"],
2898        tasks: ["discourse_relations", "speech_act_classification"],
2899        access_status: Public,
2900        categories: [abstract_anaphora, dialogue],
2901    },
2902
2903    // =========================================================================
2904    // Speech acts / dialogue acts (classification)
2905    // =========================================================================
2906    ViraDialogActsLive {
2907        name: "ViRA Dialog Acts (Live)",
2908        description: "Dialogue act classification dataset (text + label). Suitable as a speech-act baseline.",
2909        url: "https://huggingface.co/datasets/ibm-research/vira-dialog-acts-live",
2910        entity_types: [],
2911        language: "en",
2912        domain: "dialogue",
2913        license: "Research",
2914        year: 2024,
2915        format: "HF-rows",
2916        notes: "HF datasets-server provides `text` and integer `label` per example; loader derives label names from gold labels if registry entity_types is empty.",
2917        splits: ["train", "validation", "test"],
2918        tasks: ["speech_act_classification"],
2919        hf_id: "ibm-research/vira-dialog-acts-live",
2920        access_status: HuggingFace,
2921        categories: [dialogue],
2922    },
2923
2924    // =========================================================================
2925    // Discourse relations (classification)
2926    // =========================================================================
2927    DisrptEngDepScidtbRels {
2928        name: "DISRPT (eng.dep.scidtb.rels)",
2929        description: "DISRPT discourse relation classification (SciDTB, English, dependency framework).",
2930        url: "https://datasets-server.huggingface.co/rows?dataset=multilingual-discourse-hub%2Fdisrpt&config=eng.dep.scidtb.rels&split=train&offset=0&length=100",
2931        entity_types: [],
2932        language: "en",
2933        domain: "scientific",
2934        license: "Research",
2935        year: 2024,
2936        format: "HF-rows",
2937        notes: "HF rows include `unit1_txt`, `unit2_txt`, and string `label`. Loader joins unit texts with ` [SEP] ` and evaluates as text classification.",
2938        splits: ["train", "validation", "test"],
2939        tasks: ["discourse_relations"],
2940        hf_id: "multilingual-discourse-hub/disrpt",
2941        access_status: HuggingFace,
2942        categories: [abstract_anaphora],
2943    },
2944    DisrptDeuRstPccRels {
2945        name: "DISRPT (deu.rst.pcc.rels)",
2946        description: "DISRPT discourse relation classification (PCC, German, RST framework).",
2947        url: "https://datasets-server.huggingface.co/rows?dataset=multilingual-discourse-hub%2Fdisrpt&config=deu.rst.pcc.rels&split=train&offset=0&length=100",
2948        entity_types: [],
2949        language: "de",
2950        domain: "news",
2951        license: "Research",
2952        year: 2024,
2953        format: "HF-rows",
2954        notes: "Same row schema as English SciDTB rels: `unit1_txt`, `unit2_txt`, and string `label`.",
2955        splits: ["train", "validation", "test"],
2956        tasks: ["discourse_relations"],
2957        hf_id: "multilingual-discourse-hub/disrpt",
2958        access_status: HuggingFace,
2959        categories: [abstract_anaphora, multilingual],
2960    },
2961
2962    // =========================================================================
2963    // Discourse segmentation (EDU boundaries) via DISRPT CoNLL-U exports
2964    // =========================================================================
2965    DisrptEngDepScidtbConlluSeg {
2966        name: "DISRPT (eng.dep.scidtb.conllu, Seg)",
2967        description: "Discourse unit segmentation (EDU boundaries) from DISRPT CoNLL-U export (SciDTB, English).",
2968        url: "https://datasets-server.huggingface.co/rows?dataset=multilingual-discourse-hub%2Fdisrpt&config=eng.dep.scidtb.conllu&split=train&offset=0&length=100",
2969        entity_types: ["SEG"],
2970        language: "en",
2971        domain: "scientific",
2972        license: "Research",
2973        year: 2024,
2974        format: "HF-rows",
2975        notes: "HF rows contain token arrays (`form`) and per-token `misc` with `Seg=B-seg` boundaries. Loader converts segments into BIO tags of type `SEG`.",
2976        splits: ["train", "validation", "test"],
2977        tasks: ["discourse_segmentation"],
2978        hf_id: "multilingual-discourse-hub/disrpt",
2979        access_status: HuggingFace,
2980        categories: [abstract_anaphora],
2981    },
2982    DisrptDeuRstPccConlluSeg {
2983        name: "DISRPT (deu.rst.pcc.conllu, Seg)",
2984        description: "Discourse unit segmentation (EDU boundaries) from DISRPT CoNLL-U export (PCC, German).",
2985        url: "https://datasets-server.huggingface.co/rows?dataset=multilingual-discourse-hub%2Fdisrpt&config=deu.rst.pcc.conllu&split=train&offset=0&length=100",
2986        entity_types: ["SEG"],
2987        language: "de",
2988        domain: "news",
2989        license: "Research",
2990        year: 2024,
2991        format: "HF-rows",
2992        notes: "Same row schema as English SciDTB conllu: `form` tokens and `misc` with `Seg=B-seg` boundaries.",
2993        splits: ["train", "validation", "test"],
2994        tasks: ["discourse_segmentation"],
2995        hf_id: "multilingual-discourse-hub/disrpt",
2996        access_status: HuggingFace,
2997        categories: [abstract_anaphora, multilingual],
2998    },
2999    // DISRPT 2025: Unified cross-framework discourse benchmark
3000    DISRPT2025 {
3001        name: "DISRPT 2025",
3002        description: "Cross-formalism benchmark for discourse segmentation, connective detection, and relation classification. 39 corpora, 16 languages, 6 frameworks.",
3003        url: "https://github.com/disrpt/sharedtask2025",
3004        entity_types: ["DISCOURSE_UNIT", "CONNECTIVE", "DISCOURSE_RELATION"],
3005        language: "mul",
3006        domain: "general",
3007        license: "Research",
3008        citation: "DISRPT Organizers (2025)",
3009        paper_url: "https://aclanthology.org/2025.disrpt-1.1.pdf",
3010        year: 2025,
3011        format: "CoNLL",
3012        size_hint: "39 corpora, 5.1M tokens, 311k relations",
3013        notes: "Unified 17-label relation scheme mapping 353 original labels. Includes RST, eRST, SDRT, PDTB, dependency, ISO frameworks. Czech, German, English, Basque, Persian, French, Italian, Dutch, Nigerian Pidgin, Polish, Portuguese, Russian, Spanish, Thai, Turkish, Chinese. EMNLP 2025 shared task.",
3014        splits: ["train", "dev", "test"],
3015        tasks: ["discourse_segmentation", "discourse_relations"],
3016        access_status: Public,
3017        categories: [abstract_anaphora, multilingual, dialogue],
3018    },
3019
3020    // =========================================================================
3021    // Ancient / Classical Languages
3022    // =========================================================================
3023    AncientGreekUD {
3024        name: "Ancient Greek UD",
3025        description: "Universal Dependencies for Ancient Greek. Homeric through Byzantine.",
3026        url: "https://raw.githubusercontent.com/UniversalDependencies/UD_Ancient_Greek-Perseus/master/grc_perseus-ud-test.conllu",
3027        entity_types: ["PER", "LOC", "ORG"],
3028        language: "grc",
3029        domain: "literature",
3030        license: "CC-BY-NC-SA-3.0",
3031        citation: "Celano et al. (2016)",
3032        paper_url: "https://aclanthology.org/L16-1158/",
3033        year: 2016,
3034        format: "CoNLLU",
3035        example: "# text = μῆνιν ἄειδε θεὰ Πηληϊάδεω Ἀχιλῆος\n1\tμῆνιν\tμῆνις\tNOUN\t_\t_\t2\tobj\t_\tO\n5\tἈχιλῆος\tἈχιλλεύς\tPROPN\t_\t_\t4\tnmod\t_\tB-PER",
3036        notes: "Perseus treebank; spans 1500+ years of Greek; Homeric to Byzantine",
3037        categories: [ner, ancient],
3038    },
3039    LatinUD {
3040        name: "Latin UD",
3041        description: "Universal Dependencies for Latin. Classical through Medieval.",
3042        url: "https://raw.githubusercontent.com/UniversalDependencies/UD_Latin-ITTB/master/la_ittb-ud-test.conllu",
3043        entity_types: ["PER", "LOC", "ORG"],
3044        language: "la",
3045        domain: "literature",
3046        license: "CC-BY-NC-SA-3.0",
3047        citation: "Passarotti et al. (2017)",
3048        paper_url: "https://aclanthology.org/W17-6526/",
3049        format: "CoNLLU",
3050        notes: "Index Thomisticus treebank; medieval scholastic",
3051        categories: [ner, ancient],
3052    },
3053    CopticScriptorium {
3054        name: "Coptic Scriptorium",
3055        description: "Sahidic Coptic with multi-layer annotation. ~50k tokens.",
3056        url: "https://data.copticscriptorium.org/",
3057        entity_types: ["PER", "LOC", "ORG"],
3058        language: "cop",
3059        domain: "religious",
3060        license: "CC-BY-4.0",
3061        citation: "Zeldes & Schroeder (2016)",
3062        paper_url: "https://aclanthology.org/L16-1313/",
3063        format: "CoNLLU",
3064        notes: "Multi-layer morphology/syntax/entities/coreference; requires ANNIS export",
3065        access_status: Registration,
3066        categories: [ner, ancient],
3067    },
3068    LT4HALA {
3069        name: "LT4HALA Hebrew",
3070        description: "Biblical Hebrew NER and coreference annotation.",
3071        url: "",  // Research access
3072        entity_types: ["PER", "LOC", "ORG", "GPE"],
3073        language: "hbo",
3074        domain: "religious",
3075        license: "Research",
3076        citation: "LREC-COLING 2024 LT4HALA Workshop",
3077        paper_url: "https://lt4hala2024.github.io/",
3078        notes: "First systematic biblical Hebrew NER+coref",
3079        tasks: ["ner", "coref"],
3080        access_status: ContactAuthors,
3081        categories: [ner, coref, ancient],
3082    },
3083    ORACC {
3084        name: "ORACC",
3085        description: "Open Richly Annotated Cuneiform Corpus. Sumerian, Akkadian, Urartian.",
3086        url: "http://oracc.museum.upenn.edu/",
3087        entity_types: ["PER", "LOC", "ORG", "DIVINE"],
3088        language: "akk",
3089        domain: "historical",
3090        license: "CC-BY-SA-3.0",
3091        citation: "ORACC Project",
3092        paper_url: "http://oracc.museum.upenn.edu/doc/about/index.html",
3093        format: "JSON",
3094        notes: "Cuneiform logographic+syllabic polyphony challenges; JSON export via API",
3095        access_status: Registration,
3096        categories: [ner, ancient],
3097    },
3098
3099    // =========================================================================
3100    // Low-Resource / African Languages
3101    // =========================================================================
3102    MasakhaNER {
3103        name: "MasakhaNER",
3104        description: "NER for 10 African languages. PER/LOC/ORG/DATE.",
3105        url: "https://raw.githubusercontent.com/masakhane-io/masakhane-ner/main/data/yor/test.txt",
3106        entity_types: ["PER", "LOC", "ORG", "DATE"],
3107        language: "mul",
3108        domain: "news",
3109        license: "CC-BY-4.0",
3110        citation: "Adelani et al. (2021)",
3111        paper_url: "https://aclanthology.org/2021.tacl-1.66/",
3112        year: 2021,
3113        format: "CoNLL",
3114        annotation_scheme: "BIO",
3115        example: "Olúṣẹ́gun B-PER\nObásanjọ́ I-PER\nní O\nìlú O\nAbẹ́òkúta B-LOC\n. O",
3116        notes: "Critically underrepresented languages; community-driven; tonal diacritics preserved",
3117        hf_id: "masakhane/masakhaner",
3118        access_status: HuggingFace,
3119        categories: [ner, multilingual, low_resource, african_language],
3120    },
3121    MasakhaNER2 {
3122        name: "MasakhaNER 2.0",
3123        description: "Extended MasakhaNER with 20+ African languages.",
3124        url: "https://huggingface.co/datasets/masakhane/masakhaner2",
3125        entity_types: ["PER", "LOC", "ORG", "DATE"],
3126        language: "mul",
3127        domain: "news",
3128        license: "CC-BY-NC-4.0",
3129        citation: "Adelani et al. (2022)",
3130        paper_url: "https://aclanthology.org/2022.emnlp-main.298/",
3131        year: 2022,
3132        format: "CoNLL",
3133        annotation_scheme: "BIO",
3134        notes: "Extended to 20 languages; includes tonal languages",
3135        splits: ["train", "dev", "test"],
3136        tasks: ["ner"],
3137        hf_id: "masakhane/masakhaner2",
3138        access_status: HuggingFace,
3139        categories: [ner, multilingual, low_resource, african_language],
3140    },
3141    AfriSenti {
3142        name: "AfriSenti",
3143        description: "Sentiment analysis for 14 African languages. 110k+ tweets. SemEval 2023 Task 12.",
3144        url: "https://huggingface.co/datasets/shmuhammad/AfriSenti-twitter-sentiment",
3145        entity_types: ["positive", "neutral", "negative"],
3146        language: "mul",
3147        domain: "social_media",
3148        license: "CC-BY-4.0",
3149        citation: "Muhammad et al. (2023)",
3150        paper_url: "https://aclanthology.org/2023.emnlp-main.862/",
3151        year: 2023,
3152        format: "HuggingFace",
3153        size_hint: "~111k tweets",
3154        example: "tweet: ይሄው ነው አይደል የእውቀትሽ ጥግ (Amharic)\nlabel: negative",
3155        notes: "Amharic, Algerian/Moroccan Arabic, Hausa, Igbo, Kinyarwanda, Oromo, Nigerian Pidgin, Mozambican Portuguese, Swahili, Tigrinya, Xitsonga, Twi, Yoruba",
3156        splits: ["train", "validation", "test"],
3157        tasks: ["sentiment"],
3158        hf_id: "shmuhammad/AfriSenti-twitter-sentiment",
3159        access_status: HuggingFace,
3160        categories: [multilingual, low_resource, social_media, african_language],
3161    },
3162    AfriQA {
3163        name: "AfriQA",
3164        description: "Cross-lingual QA for 10 African languages. Wikipedia-based.",
3165        url: "https://huggingface.co/datasets/masakhane/afriqa",
3166        entity_types: [],  // QA dataset
3167        language: "mul",
3168        domain: "wikipedia",
3169        license: "CC-BY-4.0",
3170        citation: "Ogundepo et al. (2023)",
3171        paper_url: "https://aclanthology.org/2023.findings-emnlp.997/",
3172        year: 2023,
3173        format: "JSONL",
3174        notes: "Cross-lingual retrieval QA; questions in African languages, passages in English/target",
3175        splits: ["train", "dev", "test"],
3176        tasks: ["qa"],
3177        hf_id: "masakhane/afriqa",
3178        access_status: HuggingFace,
3179        categories: [multilingual, low_resource, african_language],
3180    },
3181    MasakhaNEWS {
3182        name: "MasakhaNEWS",
3183        description: "News topic classification for 16 African languages.",
3184        url: "https://huggingface.co/datasets/masakhane/masakhanews",
3185        entity_types: ["business", "entertainment", "health", "politics", "religion", "sports", "technology"],
3186        language: "mul",
3187        domain: "news",
3188        license: "Apache-2.0",
3189        citation: "Adelani et al. (2023)",
3190        paper_url: "https://aclanthology.org/2023.acl-long.574/",
3191        year: 2023,
3192        format: "HuggingFace",
3193        notes: "7 topics: business, entertainment, health, politics, religion, sports, technology",
3194        splits: ["train", "dev", "test"],
3195        tasks: ["text_classification"],
3196        hf_id: "masakhane/masakhanews",
3197        access_status: HuggingFace,
3198        categories: [multilingual, low_resource, news, african_language],
3199    },
3200    // =========================================================================
3201    // Text Classification (for GLiNER multi-task classification capability)
3202    // =========================================================================
3203    // Note: GLiNER multi-task supports zero-shot classification via entity_types as class labels
3204
3205    AGNews {
3206        name: "AG News",
3207        description: "News article topic classification. 4 classes: World, Sports, Business, Sci/Tech.",
3208        url: "https://huggingface.co/datasets/fancyzhx/ag_news",
3209        entity_types: ["World", "Sports", "Business", "Sci/Tech"],
3210        language: "en",
3211        domain: "news",
3212        license: "Non-commercial",
3213        citation: "Zhang et al. (2015)",
3214        paper_url: "https://arxiv.org/abs/1509.01626",
3215        year: 2015,
3216        format: "HuggingFace",
3217        size_hint: "120k train, 7.6k test",
3218        notes: "Character-level ConvNet paper; standard text classification benchmark",
3219        splits: ["train", "test"],
3220        tasks: ["text_classification"],
3221        hf_id: "ag_news",
3222        access_status: HuggingFace,
3223        categories: [ner],  // News articles contain named entities; can be used for transfer
3224    },
3225
3226    DBPedia14 {
3227        name: "DBPedia-14",
3228        description: "Wikipedia article classification. 14 non-overlapping classes from DBpedia ontology.",
3229        url: "https://huggingface.co/datasets/fancyzhx/dbpedia_14",
3230        entity_types: ["Company", "EducationalInstitution", "Artist", "Athlete", "OfficeHolder", "MeanOfTransportation", "Building", "NaturalPlace", "Village", "Animal", "Plant", "Album", "Film", "WrittenWork"],
3231        language: "en",
3232        domain: "wikipedia",
3233        license: "CC-BY-SA-3.0",
3234        citation: "Zhang et al. (2015)",
3235        paper_url: "https://arxiv.org/abs/1509.01626",
3236        year: 2015,
3237        format: "HuggingFace",
3238        size_hint: "560k train, 70k test",
3239        notes: "14 classes: Company, EducationalInstitution, Artist, Athlete, OfficeHolder, MeanOfTransportation, Building, NaturalPlace, Village, Animal, Plant, Album, Film, WrittenWork",
3240        splits: ["train", "test"],
3241        tasks: ["text_classification"],
3242        hf_id: "dbpedia_14",
3243        access_status: HuggingFace,
3244        categories: [ner, entity_linking],  // Wikipedia entities; relates to entity linking
3245    },
3246
3247    YahooAnswers {
3248        name: "Yahoo Answers Topic",
3249        description: "Question-answer topic classification. 10 classes covering diverse topics.",
3250        url: "https://huggingface.co/datasets/community-datasets/yahoo_answers_topics",
3251        entity_types: ["Society", "Science", "Health", "Education", "Computers", "Sports", "Business", "Entertainment", "Family", "Politics"],
3252        language: "en",
3253        domain: "qa",
3254        license: "Non-commercial",
3255        citation: "Zhang et al. (2015)",
3256        paper_url: "https://arxiv.org/abs/1509.01626",
3257        year: 2015,
3258        format: "HuggingFace",
3259        size_hint: "1.4M train, 60k test",
3260        notes: "10 classes: Society, Science, Health, Education, Computers, Sports, Business, Entertainment, Family, Politics",
3261        splits: ["train", "test"],
3262        tasks: ["text_classification"],
3263        hf_id: "community-datasets/yahoo_answers_topics",
3264        access_status: HuggingFace,
3265        categories: [dialogue],
3266    },
3267
3268    TREC {
3269        name: "TREC Question Classification",
3270        description: "Question type classification. 6 coarse classes, 50 fine-grained types.",
3271        url: "https://huggingface.co/datasets/trec",
3272        entity_types: ["ABBR", "DESC", "ENTY", "HUM", "LOC", "NUM"],
3273        language: "en",
3274        domain: "qa",
3275        license: "CC-BY-4.0",
3276        citation: "Li & Roth (2002)",
3277        paper_url: "https://www.aclweb.org/anthology/C02-1150/",
3278        year: 2002,
3279        format: "HuggingFace",
3280        size_hint: "5.5k train, 500 test",
3281        notes: "6 coarse: Abbreviation, Entity, Description, Human, Location, Numeric; 50 fine-grained",
3282        splits: ["train", "test"],
3283        tasks: ["text_classification"],
3284        hf_id: "trec",
3285        access_status: HuggingFace,
3286        categories: [dialogue],
3287    },
3288
3289    TweetTopic {
3290        name: "TweetTopic",
3291        description: "Multi-label topic classification for tweets. 6 domains, 19 topics.",
3292        url: "https://huggingface.co/datasets/cardiffnlp/tweet_topic_multi",
3293        entity_types: ["arts", "business", "daily_life", "pop_culture", "science", "sports"],
3294        language: "en",
3295        domain: "social_media",
3296        license: "CC-BY-4.0",
3297        citation: "Antypas et al. (2022)",
3298        paper_url: "https://aclanthology.org/2022.coling-1.299/",
3299        year: 2022,
3300        format: "HuggingFace",
3301        size_hint: "~11k tweets",
3302        notes: "Multi-label; domains: arts, business, daily_life, pop_culture, science, sports; zero-shot benchmark",
3303        splits: ["train", "validation", "test"],
3304        tasks: ["text_classification"],
3305        hf_id: "cardiffnlp/tweet_topic_multi",
3306        access_status: HuggingFace,
3307        categories: [social_media],
3308    },
3309
3310    MasakhaPOS {
3311        name: "MasakhaPOS",
3312        description: "Part-of-speech tagging for 20 African languages.",
3313        url: "https://github.com/masakhane-io/masakhane-pos",
3314        entity_types: ["NOUN", "VERB", "ADJ", "ADV", "PRON", "PROPN", "ADP", "AUX", "CCONJ", "DET", "INTJ", "NUM", "PART", "PUNCT", "SCONJ", "SYM", "X"],
3315        language: "mul",
3316        domain: "general",
3317        license: "MIT",
3318        citation: "Dione et al. (2023)",
3319        paper_url: "https://aclanthology.org/2023.acl-long.609/",
3320        year: 2023,
3321        format: "CoNLL-U",
3322        annotation_scheme: "IOB2",
3323        notes: "Universal Dependencies tagset; includes Bambara, Ewe, Mossi, Chichewa",
3324        splits: ["train", "dev", "test"],
3325        tasks: ["pos"],
3326        hf_id: "masakhane/masakhane-pos",
3327        access_status: HuggingFace,
3328        categories: [multilingual, low_resource, african_language],
3329    },
3330    WikiANN {
3331        name: "WikiANN",
3332        description: "Silver-standard NER from Wikipedia hyperlinks. 282 languages.",
3333        url: "https://huggingface.co/datasets/unimelb-nlp/wikiann",
3334        entity_types: ["PER", "LOC", "ORG"],
3335        language: "mul",
3336        domain: "wikipedia",
3337        license: "CC-BY-SA-4.0",
3338        citation: "Pan et al. (2017)",
3339        paper_url: "https://aclanthology.org/P17-1178/",
3340        example: "tokens: [Berlin, is, the, capital, of, Germany]\nner_tags: [B-LOC, O, O, O, O, B-LOC]",
3341        notes: "Silver annotations; noisy but massive coverage",
3342        hf_id: "unimelb-nlp/wikiann",
3343        hf_config: "en",
3344        access_status: HuggingFace,
3345        categories: [ner, multilingual, low_resource],
3346    },
3347    NaijaNER {
3348        name: "NaijaNER",
3349        description: "Nigerian Pidgin NER corpus.",
3350        url: "",  // Research access
3351        entity_types: ["PER", "LOC", "ORG"],
3352        language: "pcm",
3353        domain: "social_media",
3354        license: "Research",
3355        citation: "Oyewusi et al. (2021)",
3356        paper_url: "https://arxiv.org/abs/2102.05236",
3357        notes: "Nigerian Pidgin English; code-mixing common",
3358        access_status: ContactAuthors,
3359        categories: [ner, low_resource],
3360    },
3361
3362    // =========================================================================
3363    // Arcane / Specialized Domains
3364    // =========================================================================
3365    WIESP2022NER {
3366        name: "WIESP2022-NER (DEAL)",
3367        description: "Astrophysics NER from NASA ADS. 31 entity types: facilities, wavelengths, telescopes, archives.",
3368        url: "https://huggingface.co/datasets/adsabs/WIESP2022-NER",
3369        entity_types: ["WAVELENGTH", "TELESCOPE", "FACILITY", "MODEL", "ARCHIVE", "DATASET", "MISSION"],
3370        language: "en",
3371        domain: "scientific",
3372        license: "CC-BY-4.0",
3373        citation: "Grezes et al. (2022)",
3374        paper_url: "https://aclanthology.org/2022.wiesp-1.9/",
3375        year: 2022,
3376        format: "JSONL",
3377        size_hint: "~3000 annotated abstracts",
3378        notes: "AACL-IJCNLP 2022 WIESP shared task; NASA ADS astrophysics literature",
3379        hf_id: "adsabs/WIESP2022-NER",
3380        access_status: HuggingFace,
3381        categories: [ner, arcane_domain],
3382    },
3383    DutchArchaeology {
3384        name: "Dutch Archaeology NER",
3385        description: "Archaeological excavation reports from DANS archive. 31k annotations across 6 entity types.",
3386        url: "https://live.european-language-grid.eu/catalogue/corpus/13410",
3387        entity_types: ["ARTEFACT", "PERIOD", "MATERIAL", "LOCATION", "SPECIES", "CONTEXT"],
3388        language: "nl",
3389        domain: "archaeology",
3390        license: "CC-BY-4.0",
3391        citation: "Brandsen et al. (2020)",
3392        paper_url: "https://aclanthology.org/2020.lrec-1.562/",
3393        year: 2020,
3394        format: "CoNLL",
3395        size_hint: "~31k entity annotations, high IAA (0.95)",
3396        notes: "Dutch grey literature; basis for ArcheoBERTje model",
3397        categories: [ner, arcane_domain],
3398    },
3399    ENer {
3400        name: "E-NER (EDGAR-NER)",
3401        description: "NER for US SEC EDGAR filings. 52 documents, 400k+ tokens with legal entities.",
3402        url: "https://raw.githubusercontent.com/terenceau1/E-NER-Dataset/main/all.csv",
3403        entity_types: ["PERSON", "COURT", "BUSINESS", "GOVERNMENT", "LOCATION", "LEGISLATION"],
3404        language: "en",
3405        domain: "legal",
3406        license: "GPL-3.0",
3407        citation: "Au et al. (2022)",
3408        paper_url: "https://aclanthology.org/2022.nllp-1.22/",
3409        year: 2022,
3410        format: "CSV",
3411        size_hint: "52 SEC filings, 400k+ tokens",
3412        notes: "10-K, 8-K, prospectuses; CSV token,tag format with BIO scheme",
3413        tasks: ["ner"],
3414        categories: [ner, arcane_domain],
3415    },
3416    // =========================================================================
3417    // Niche Domain Datasets (Food, Cybersecurity, etc.)
3418    // =========================================================================
3419    FINER {
3420        name: "FINER (Food Ingredients NER)",
3421        description: "Food ingredient NER from AllRecipes. 182k sentences with ingredient phrases in IOB2 format.",
3422        url: "https://figshare.com/ndownloader/files/36144501",
3423        entity_types: ["INGREDIENT", "PRODUCT", "QUANTITY", "UNIT", "STATE"],
3424        language: "en",
3425        domain: "food",
3426        license: "CC-BY-4.0",
3427        citation: "Komariah et al. (2022)",
3428        paper_url: "https://doi.org/10.6084/m9.figshare.20222361",
3429        year: 2022,
3430        format: "CoNLL",
3431        annotation_scheme: "IOB2",
3432        size_hint: "~182k sentences, ingredient phrases",
3433        notes: "Semi-supervised multi-model construction from AllRecipes; RAR archive with CoNLL format",
3434        splits: ["train", "test"],
3435        tasks: ["ner", "slot_filling"],
3436        categories: [ner, arcane_domain],
3437    },
3438    AnnoCTR {
3439        name: "AnnoCTR (Cyber Threat Reports)",
3440        description: "Cyber threat intelligence NER with MITRE ATT&CK linking. 400 annotated documents from commercial CTI vendors.",
3441        url: "https://github.com/boschresearch/anno-ctr-lrec-coling-2024/archive/refs/heads/main.zip",
3442        entity_types: ["ORGANIZATION", "LOCATION", "SECTOR", "TIME", "CODE", "THREAT_ACTOR", "MALWARE", "TOOL", "TACTIC", "TECHNIQUE"],
3443        language: "en",
3444        domain: "cybersecurity",
3445        license: "CC-BY-SA-4.0",
3446        citation: "Lange et al. (2024)",
3447        paper_url: "https://arxiv.org/abs/2404.07765",
3448        year: 2024,
3449        format: "JSONL",
3450        annotation_scheme: "BIO",
3451        size_hint: "400 documents, multi-layer annotation",
3452        notes: "LREC-COLING 2024; links to Wikipedia and MITRE ATT&CK KB; includes entity linking task",
3453        splits: ["train", "dev", "test"],
3454        tasks: ["ner", "entity_linking"],
3455        categories: [ner, arcane_domain],
3456    },
3457    CRAFT {
3458        name: "CRAFT",
3459        description: "Colorado Richly Annotated Full-Text. 97 PubMed articles with multi-layer annotation including coreference.",
3460        url: "https://github.com/UCDenver-ccp/CRAFT/archive/refs/heads/master.zip",
3461        entity_types: ["GENE", "PROTEIN", "CHEMICAL", "CELL", "ORGANISM"],
3462        language: "en",
3463        domain: "biomedical",
3464        license: "CC-BY-3.0",
3465        citation: "Bada et al. (2012)",
3466        paper_url: "https://bmcbioinformatics.biomedcentral.com/articles/10.1186/1471-2105-13-161",
3467        year: 2012,
3468        format: "XML",
3469        annotation_scheme: "Standoff",
3470        size_hint: "97 full-text articles, ~790k tokens",
3471        notes: "Full-text (not just abstracts); 10 ontologies used for normalization",
3472        categories: [coref, biomedical, arcane_domain],
3473    },
3474
3475    // =========================================================================
3476    // Adversarial / Robustness Evaluation
3477    // =========================================================================
3478    WNUT16 {
3479        name: "WNUT-16",
3480        description: "Twitter NER workshop shared task. Focus on rare and emerging entities in noisy social media text.",
3481        // Stable raw snapshot from aritter/twitter_nlp (has train/dev/test in one folder).
3482        url: "https://raw.githubusercontent.com/aritter/twitter_nlp/65f3d77134c40d920db8d431c5c6faef1c051c94/data/annotated/wnut16/data/test",
3483        // Note: dataset uses lowercase hyphenated labels (person, geo-loc, company, facility, product, other)
3484        entity_types: ["person", "geo-loc", "company", "facility", "product", "other"],
3485        language: "en",
3486        domain: "social_media",
3487        license: "CC-BY-4.0",
3488        citation: "Strauss et al. (2016)",
3489        paper_url: "https://aclanthology.org/W16-3919/",
3490        year: 2016,
3491        format: "CoNLL",
3492        annotation_scheme: "BIO",
3493        size_hint: "3,856 test tweets, 2,394 train",
3494        notes: "89% unseen test entities; predecessor to WNUT-17; harder than standard benchmarks",
3495        splits: ["train", "dev", "test"],
3496        tasks: ["ner"],
3497        categories: [ner, social_media, adversarial],
3498    },
3499
3500    // =========================================================================
3501    // More Ancient Languages
3502    // =========================================================================
3503    SanskritUD {
3504        name: "Sanskrit UD",
3505        description: "Universal Dependencies for Vedic and Classical Sanskrit. Includes Vedas and epics.",
3506        url: "https://raw.githubusercontent.com/UniversalDependencies/UD_Sanskrit-Vedic/master/sa_vedic-ud-test.conllu",
3507        entity_types: ["PER", "LOC", "ORG"],
3508        language: "sa",
3509        domain: "religious",
3510        license: "CC-BY-SA-4.0",
3511        citation: "Hellwig et al. (2020)",
3512        paper_url: "https://aclanthology.org/2020.lrec-1.632/",
3513        year: 2020,
3514        format: "CoNLLU",
3515        notes: "Oldest Indo-European language with extensive NLP resources; Devanagari script",
3516        categories: [ner, ancient, low_resource],
3517    },
3518    OldEnglishUD {
3519        name: "Old English UD",
3520        description: "Universal Dependencies for Old English (Anglo-Saxon). York-Toronto-Helsinki corpus.",
3521        url: "https://raw.githubusercontent.com/UniversalDependencies/UD_Old_English-Cairo/118f11ad906fb15d930825fadce9ef9eccca9347/ang_cairo-ud-test.conllu",
3522        entity_types: ["PER", "LOC", "ORG"],
3523        language: "ang",
3524        domain: "historical",
3525        license: "CC-BY-SA-4.0",
3526        citation: "Tischler & Walkden (2019)",
3527        paper_url: "https://aclanthology.org/W19-4214/",
3528        year: 2019,
3529        format: "CoNLLU",
3530        notes: "Anglo-Saxon; insular script variations; 5th-11th century CE. NOTE: UD repo naming drifts; URL pinned to a specific commit.",
3531        categories: [ner, ancient, historical, low_resource],
3532    },
3533    OldNorseUD {
3534        name: "Old Norse UD",
3535        description: "Universal Dependencies for Old Norse/Icelandic Sagas. PROIEL and ISWOC treebanks.",
3536        url: "https://raw.githubusercontent.com/UniversalDependencies/UD_Icelandic-IcePaHC/ca72a59affd87c4b7b9067ae56efa7a694a7b4c4/is_icepahc-ud-test.conllu",
3537        entity_types: ["PER", "LOC", "ORG"],
3538        language: "non",
3539        domain: "literature",
3540        license: "CC-BY-SA-4.0",
3541        citation: "Rögnvaldsson et al. (2012)",
3542        paper_url: "https://aclanthology.org/L12-1148/",
3543        year: 2012,
3544        format: "CoNLLU",
3545        notes: "IcePaHC treebank (historical Icelandic; Old Norse family). URL pinned to a specific commit.",
3546        categories: [ner, ancient, literary, low_resource],
3547    },
3548
3549    // =========================================================================
3550    // Code-Switching Datasets
3551    // =========================================================================
3552    CALCS2018 {
3553        name: "CALCS-2018",
3554        description: "Code-Switching Workshop shared task. English-Spanish Twitter NER with 9 entity types.",
3555        url: "https://code-switching.github.io/2018/",
3556        entity_types: ["PER", "LOC", "ORG", "GROUP", "TITLE", "PROD", "EVENT", "TIME", "OTHER"],
3557        language: "mul",
3558        domain: "social_media",
3559        license: "Research",
3560        citation: "Aguilar et al. (2018)",
3561        paper_url: "https://aclanthology.org/W18-3219/",
3562        year: 2018,
3563        format: "CoNLL",
3564        annotation_scheme: "BIO",
3565        notes: "Spanglish; first major code-switching NER shared task",
3566        categories: [ner, social_media, multilingual, low_resource],
3567    },
3568    HinglishNER {
3569        name: "Hinglish NER",
3570        description: "Hindi-English code-mixed social media NER. Roman script Hindi mixed with English.",
3571        url: "https://github.com/murali1996/CodemixedNLP",
3572        entity_types: ["PER", "LOC", "ORG"],
3573        language: "mul",
3574        domain: "social_media",
3575        license: "CC-BY-4.0",
3576        citation: "Priyadharshini et al. (2020)",
3577        paper_url: "https://aclanthology.org/2020.calcs-1.6/",
3578        year: 2020,
3579        format: "JSONL",
3580        annotation_scheme: "BIO",
3581        notes: "GLUECoS/LinCE benchmark; download via CodemixedNLP toolkit; Romanized Hindi; ~400M speakers use code-switching daily",
3582        splits: ["train", "dev", "test"],
3583        tasks: ["ner"],
3584        categories: [ner, social_media, multilingual, low_resource],
3585    },
3586
3587    // =========================================================================
3588    // Medieval / Historical NER
3589    // =========================================================================
3590    MedievalCharterNER {
3591        name: "Medieval Charter NER",
3592        description: "Multilingual medieval charter NER. Latin, French, Spanish from major charter collections.",
3593        url: "https://zenodo.org/records/6463699",
3594        entity_types: ["PER", "LOC", "ORG", "DATE"],
3595        language: "mul",
3596        domain: "historical",
3597        license: "CC-BY-4.0",
3598        citation: "Camps et al. (2022)",
3599        paper_url: "https://aclanthology.org/2022.lrec-1.530/",
3600        year: 2022,
3601        format: "CoNLL",
3602        size_hint: "~100k tokens across 4 charter collections",
3603        notes: "HOME-ALCAR, CBMA, Diplomata Belgica, CODEA; medieval Latin/vernacular",
3604        categories: [ner, historical, multilingual, low_resource],
3605    },
3606    CBMACharters {
3607        name: "CBMA Charters",
3608        description: "Burgundian medieval Latin charters NER. 9th-14th century diplomatic documents.",
3609        url: "",  // Access via Zenodo/project
3610        entity_types: ["PER", "LOC", "ORG", "DATE", "TITLE"],
3611        language: "la",
3612        domain: "historical",
3613        license: "Research",
3614        citation: "Perreaux (2021)",
3615        paper_url: "https://dhq-static.digitalhumanities.org/pdf/000574.pdf",
3616        year: 2021,
3617        format: "CoNLL",
3618        notes: "Chartae Burgundiae Medii Aevi; medieval Latin; notarial hands",
3619        access_status: ContactAuthors,
3620        categories: [ner, ancient, historical, low_resource],
3621    },
3622
3623    // =========================================================================
3624    // Speech NER
3625    // =========================================================================
3626    MSNER {
3627        name: "MSNER",
3628        description: "Multilingual Spoken NER. Speech-to-NER on VoxPopuli parliamentary speeches.",
3629        url: "https://rdr.kuleuven.be/dataset.xhtml?persistentId=doi:10.48804/ZTVMIX",
3630        entity_types: ["PER", "LOC", "ORG", "MISC"],
3631        language: "mul",
3632        domain: "speech",
3633        license: "CC-BY-4.0",
3634        citation: "Evain et al. (2024)",
3635        paper_url: "https://aclanthology.org/2024.isa-1.2/",
3636        year: 2024,
3637        format: "CoNLL",
3638        annotation_scheme: "BIO",
3639        size_hint: "~590h train, 17h gold test",
3640        notes: "Dutch, French, German, Spanish; ASR transcripts; first multilingual speech NER corpus",
3641        categories: [ner, speech, multilingual],
3642    },
3643
3644    // =========================================================================
3645    // Robustness / Noise Benchmarks
3646    // =========================================================================
3647    NoiseBench {
3648        name: "NoiseBench",
3649        description: "Robustness benchmark for NER. 6 real noise types: expert, crowd, LLM, distant/weak supervision.",
3650        url: "https://raw.githubusercontent.com/elenamer/NoiseBench/main/data/annotations/clean.traindev",
3651        entity_types: ["PER", "LOC", "ORG", "MISC"],
3652        language: "en",
3653        domain: "evaluation",
3654        license: "MIT",
3655        citation: "Merhej et al. (2024)",
3656        paper_url: "https://aclanthology.org/2024.emnlp-main.1011/",
3657        year: 2024,
3658        format: "CoNLL",
3659        size_hint: "CoNLL-03 subset with 7 label variants",
3660        notes: "Compares simulated vs real label noise; includes German variant; using clean subset",
3661        tasks: ["ner"],
3662        access_status: Public,
3663        categories: [ner, adversarial],
3664    },
3665    RockNER {
3666        name: "RockNER",
3667        description: "Robustness benchmark for NER. Real-world adversarial examples with boundary ambiguity.",
3668        url: "https://github.com/INK-USC/RockNER",
3669        entity_types: ["PER", "LOC", "ORG", "MISC"],
3670        language: "en",
3671        domain: "evaluation",
3672        license: "Apache-2.0",
3673        citation: "Lin et al. (2021)",
3674        paper_url: "https://aclanthology.org/2021.acl-long.340/",
3675        year: 2021,
3676        format: "CoNLL",
3677        size_hint: "~1.5k challenging examples",
3678        notes: "ACL 2021; entity boundary attacks, rare entities, syntactic perturbations; robustness stress test",
3679        splits: ["test"],
3680        tasks: ["ner"],
3681        categories: [ner, adversarial],
3682    },
3683    CrossWeigh {
3684        name: "CrossWeigh",
3685        description: "Cross-lingual adversarial NER evaluation. Tests multilingual model robustness.",
3686        url: "https://raw.githubusercontent.com/ZihanWangKi/CrossWeigh/master/data/conllpp_test.txt",
3687        entity_types: ["PER", "LOC", "ORG", "MISC"],
3688        language: "en",
3689        domain: "evaluation",
3690        license: "MIT",
3691        citation: "Wang et al. (2019)",
3692        paper_url: "https://aclanthology.org/D19-1519/",
3693        year: 2019,
3694        format: "CoNLL",
3695        size_hint: "Adversarial cross-lingual test sets; includes CoNLL++ cleaned version",
3696        notes: "Tests cross-lingual transfer robustness; character/word perturbations; zero-shot evaluation; CoNLL++ fix",
3697        splits: ["test"],
3698        tasks: ["ner"],
3699        access_status: Public,
3700        categories: [ner, adversarial, multilingual],
3701    },
3702
3703    // =========================================================================
3704    // Entity Linking Datasets
3705    // =========================================================================
3706    ZELDA {
3707        name: "ZELDA",
3708        description: "Entity disambiguation benchmark. 95k Wikipedia paragraphs, 8 ED datasets unified.",
3709        url: "https://raw.githubusercontent.com/flairNLP/zelda/main/test_data/conll/test_aida-b.conll",
3710        entity_types: ["PER", "LOC", "ORG", "MISC"],
3711        language: "en",
3712        domain: "wikipedia",
3713        license: "MIT",
3714        citation: "Milich & Akbik (2023)",
3715        paper_url: "https://aclanthology.org/2023.eacl-main.151/",
3716        year: 2023,
3717        format: "CoNLL",
3718        size_hint: "95k paragraphs, 825k entities",
3719        notes: "Standardized ED evaluation; Wikipedia KB; no emerging entities; using AIDA-B test subset",
3720        splits: ["test"],
3721        tasks: ["el", "ner"],
3722        access_status: Public,
3723        categories: [ner, entity_linking],
3724    },
3725    TweetNERD {
3726        name: "TweetNERD",
3727        description: "Twitter NER + Entity Linking. End-to-end NERD benchmark spanning 2010-2021.",
3728        url: "https://zenodo.org/records/6617192",
3729        entity_types: ["PER", "LOC", "ORG", "MISC"],
3730        language: "en",
3731        domain: "social_media",
3732        license: "CC-BY-4.0",
3733        citation: "Mishra et al. (2022)",
3734        paper_url: "https://arxiv.org/abs/2210.08129",
3735        year: 2022,
3736        format: "JSONL",
3737        size_hint: "340k+ tweets",
3738        notes: "NeurIPS 2022; temporal drift; NER + EL + end-to-end NERD",
3739        splits: ["train", "dev", "test"],
3740        tasks: ["ner", "el"],
3741        categories: [ner, social_media],
3742    },
3743    AIDACoNLL {
3744        name: "AIDA-CoNLL",
3745        description: "Primary entity linking benchmark linking CoNLL-2003 mentions to Wikipedia. De-facto standard for end-to-end EL evaluation.",
3746        url: "https://www.mpi-inf.mpg.de/departments/databases-and-information-systems/research/ambiverse-nlu/aida",
3747        entity_types: ["PER", "LOC", "ORG", "MISC"],
3748        language: "en",
3749        domain: "news",
3750        license: "Research",
3751        citation: "Hoffart et al. (2011)",
3752        paper_url: "https://aclanthology.org/D11-1072/",
3753        year: 2011,
3754        format: "CoNLL",
3755        annotation_scheme: "IOB2",
3756        size_hint: "~1,400 docs, ~34k mentions linked to Wikipedia",
3757        notes: "Built on Reuters CoNLL-2003; AIDA-train/A/B splits; foundational EL benchmark; YAGO KB",
3758        splits: ["train", "testa", "testb"],
3759        tasks: ["ner", "el", "entity_linking", "ned"],
3760        categories: [ner, entity_linking],
3761    },
3762
3763    // =========================================================================
3764    // Additional Nested NER
3765    // =========================================================================
3766    ACE2005 {
3767        name: "ACE 2005",
3768        description: "Automatic Content Extraction 2005. Nested NER + relations + events.",
3769        url: "",  // Requires LDC license
3770        entity_types: ["PER", "ORG", "GPE", "LOC", "FAC", "WEA", "VEH"],
3771        language: "en",
3772        domain: "news",
3773        license: "LDC",
3774        citation: "Walker et al. (2006)",
3775        paper_url: "https://catalog.ldc.upenn.edu/LDC2006T06",
3776        year: 2005,
3777        format: "XML",
3778        annotation_scheme: "Standoff",
3779        size_hint: "~600 documents",
3780        notes: "Gold standard for nested NER; includes Arabic/Chinese; defines modern IE evaluation",
3781        access_status: Registration,
3782        categories: [ner, nested_ner, relation_extraction],
3783    },
3784    NNE {
3785        name: "NNE (Nested Named Entities)",
3786        description: "Large-scale nested NER corpus from Wikipedia/news. Deep nesting up to 6 levels.",
3787        url: "https://github.com/nickyringland/nested_named_entities",
3788        entity_types: ["PER", "LOC", "ORG", "GPE", "NORP", "FAC", "PRODUCT", "EVENT", "WORK", "LAW"],
3789        language: "en",
3790        domain: "news",
3791        license: "CC-BY-4.0",
3792        citation: "Ringland et al. (2019)",
3793        paper_url: "https://aclanthology.org/P19-1510/",
3794        year: 2019,
3795        format: "CoNLL",
3796        size_hint: "~280k tokens, deep nesting",
3797        notes: "ACL 2019; based on ACE/OntoNotes; up to 6 nested levels; stress test for nested NER",
3798        splits: ["train", "dev", "test"],
3799        tasks: ["ner"],
3800        categories: [ner, nested_ner],
3801    },
3802    GENIANested {
3803        name: "GENIA Nested",
3804        description: "Biomedical nested NER from GENIA corpus. Up to 3 levels of nesting.",
3805        url: "https://raw.githubusercontent.com/thecharm/boundary-aware-nested-ner/master/Our_boundary-aware_model/data/genia/genia.test.iob2",
3806        entity_types: ["DNA", "RNA", "PROTEIN", "CELL_LINE", "CELL_TYPE"],
3807        language: "en",
3808        domain: "biomedical",
3809        license: "GENIA Project License",
3810        citation: "Kim et al. (2003)",
3811        paper_url: "https://aclanthology.org/W03-1302/",
3812        year: 2003,
3813        format: "CoNLL",
3814        size_hint: "~2k abstracts",
3815        example: "[[IL-2 receptor] alpha chain] promoter\n[IL-2 receptor]: PROTEIN, [IL-2 receptor alpha chain]: PROTEIN (nested)",
3816        notes: "Canonical biomedical nested NER benchmark; used alongside ACE for nested NER evaluation",
3817        splits: ["train", "dev", "test"],
3818        tasks: ["ner"],
3819        categories: [ner, nested_ner, biomedical],
3820    },
3821    ChineseNestedNER {
3822        name: "Chinese Nested NER",
3823        description: "Chinese nested named entity recognition. Multiple levels of embedded entities.",
3824        url: "https://github.com/LeeSureman/Nested-NER",
3825        entity_types: ["PER", "ORG", "LOC", "GPE"],
3826        language: "zh",
3827        domain: "news",
3828        license: "CC-BY-4.0",
3829        citation: "Wang et al. (2020)",
3830        year: 2020,
3831        format: "JSONL",
3832        size_hint: "~20k sentences",
3833        notes: "Chinese nested NER benchmark; designed for span-based model evaluation; CJK characters",
3834        splits: ["train", "dev", "test"],
3835        tasks: ["ner"],
3836        categories: [ner, nested_ner, multilingual],
3837    },
3838    SCINERNested {
3839        name: "SciNER Nested",
3840        description: "Scientific paper NER with nested annotations. Methods, tasks, and datasets.",
3841        url: "https://github.com/allenai/sciie",
3842        entity_types: ["TASK", "METHOD", "METRIC", "MATERIAL", "GENERIC"],
3843        language: "en",
3844        domain: "scientific",
3845        license: "Apache-2.0",
3846        citation: "Luan et al. (2018)",
3847        paper_url: "https://aclanthology.org/D18-1360/",
3848        year: 2018,
3849        format: "JSONL",
3850        size_hint: "~500 abstracts",
3851        notes: "Scientific information extraction; nested spans common in methodology descriptions",
3852        splits: ["train", "dev", "test"],
3853        tasks: ["ner", "re"],
3854        categories: [ner, nested_ner, arcane_domain],
3855    },
3856
3857    // =========================================================================
3858    // Additional Discontinuous NER
3859    // =========================================================================
3860    ShAReCLEF {
3861        name: "ShARe/CLEF",
3862        description: "Shared Annotated Resources for clinical NER. ShARe/CLEF eHealth shared task.",
3863        url: "",  // Research access via PhysioNet
3864        entity_types: ["DISORDER", "FINDING", "PROCEDURE"],
3865        language: "en",
3866        domain: "clinical",
3867        license: "PhysioNet",
3868        citation: "Pradhan et al. (2013)",
3869        paper_url: "https://aclanthology.org/S13-2056/",
3870        year: 2013,
3871        format: "BRAT",
3872        annotation_scheme: "Standoff",
3873        size_hint: "~300 clinical notes",
3874        notes: "Discontinuous clinical entities; SNOMED-CT normalization; de-identified records",
3875        access_status: Registration,
3876        categories: [ner, biomedical, discontinuous_ner],
3877    },
3878    GermEvalDiscontinuous {
3879        name: "GermEval Discontinuous",
3880        description: "German discontinuous NER from GermEval 2014. Non-contiguous entity spans.",
3881        url: "https://sites.google.com/site/germaboreval/data",
3882        entity_types: ["PER", "ORG", "LOC", "OTH"],
3883        language: "de",
3884        domain: "news",
3885        license: "CC-BY-4.0",
3886        citation: "Benikova et al. (2014)",
3887        paper_url: "https://aclanthology.org/W14-1707/",
3888        year: 2014,
3889        format: "CoNLL",
3890        size_hint: "~87k tokens",
3891        notes: "German discontinuous entities; derived entities; embedded entities",
3892        splits: ["train", "dev", "test"],
3893        tasks: ["ner"],
3894        categories: [ner, discontinuous_ner, multilingual],
3895    },
3896    ADRDiscontinuous {
3897        name: "ADR Discontinuous",
3898        description: "Adverse Drug Reaction corpus with discontinuous mentions. Patient forum posts.",
3899        url: "https://github.com/Aitslab/ADR-DisNER",
3900        entity_types: ["ADR", "DRUG", "SYMPTOM"],
3901        language: "en",
3902        domain: "biomedical",
3903        license: "CC-BY-4.0",
3904        citation: "Metke-Jimenez et al. (2016)",
3905        year: 2016,
3906        format: "BRAT",
3907        size_hint: "~2k posts",
3908        notes: "Social media ADR mentions; many discontinuous spans; health forum text",
3909        categories: [ner, biomedical, discontinuous_ner, social_media],
3910    },
3911    PubMedDiscontinuous {
3912        name: "PubMed Discontinuous",
3913        description: "PubMed abstracts with discontinuous biomedical entities. Complex entity boundaries.",
3914        url: "https://github.com/dmis-lab/discontinuous-ner",
3915        entity_types: ["CHEMICAL", "DISEASE", "GENE"],
3916        language: "en",
3917        domain: "biomedical",
3918        license: "Research",
3919        citation: "Dai et al. (2020)",
3920        year: 2020,
3921        format: "CoNLL",
3922        size_hint: "~8k abstracts",
3923        notes: "Scientific abstracts; discontinuous chemical and disease mentions",
3924        categories: [ner, biomedical, discontinuous_ner],
3925    },
3926
3927    // =========================================================================
3928    // Additional Relation Extraction
3929    // =========================================================================
3930    TACRED {
3931        name: "TACRED",
3932        description: "TAC Relation Extraction Dataset. 42 relations from TAC KBP.",
3933        url: "",  // LDC license
3934        entity_types: ["PER", "ORG"],
3935        language: "en",
3936        domain: "news",
3937        license: "LDC",
3938        citation: "Zhang et al. (2017)",
3939        paper_url: "https://aclanthology.org/D17-1004/",
3940        year: 2017,
3941        format: "JSONL",
3942        size_hint: "106k examples",
3943        example: "subj: 'Tim Cook', obj: 'Apple', relation: per:employee_of, text: 'Tim Cook is the CEO of Apple Inc.'",
3944        notes: "42 relations; majority no_relation; known label noise; Re-TACRED fixes some issues",
3945        access_status: Registration,
3946        categories: [relation_extraction],
3947    },
3948    SemEval2010Task8 {
3949        name: "SemEval-2010 Task 8",
3950        description: "Semantic relation classification between nominals. 9 relation types.",
3951        url: "https://github.com/sahitya0000/Relation-Classification",
3952        entity_types: ["e1", "e2"],  // Entity markers for relation endpoints
3953        language: "en",
3954        domain: "mixed",
3955        license: "Research",
3956        citation: "Hendrickx et al. (2010)",
3957        paper_url: "https://aclanthology.org/S10-1006/",
3958        year: 2010,
3959        format: "Custom",
3960        size_hint: "~10k examples",
3961        notes: "Classic RE benchmark; 9 directed relations + OTHER; small but influential",
3962        categories: [relation_extraction],
3963    },
3964    FewRel {
3965        name: "FewRel",
3966        description: "Few-shot relation classification benchmark. 100 relations from Wikidata.",
3967        url: "https://raw.githubusercontent.com/thunlp/FewRel/master/data/val_wiki.json",
3968        entity_types: ["head", "tail"],  // Relation endpoint markers
3969        language: "en",
3970        domain: "wikipedia",
3971        license: "MIT",
3972        citation: "Han et al. (2018)",
3973        paper_url: "https://aclanthology.org/D18-1514/",
3974        year: 2018,
3975        format: "JSONL",
3976        size_hint: "70k instances, 100 relations",
3977        notes: "N-way K-shot evaluation; Wikidata relations; FewRel 2.0 adds domain adaptation",
3978        hf_id: "few_rel",
3979        access_status: HuggingFace,
3980        categories: [relation_extraction],
3981    },
3982    NYT10 {
3983        name: "NYT-10",
3984        description: "New York Times distant supervision RE. 24 Freebase relations.",
3985        url: "http://iesl.cs.umass.edu/riedel/ecml/",
3986        entity_types: ["PER", "ORG", "LOC"],
3987        language: "en",
3988        domain: "news",
3989        license: "Research",
3990        citation: "Riedel et al. (2010)",
3991        paper_url: "https://aclanthology.org/W10-1001/",
3992        year: 2010,
3993        format: "Custom",
3994        size_hint: "~266k sentences",
3995        notes: "Distant supervision using Freebase alignment; distantly supervised; noisy labels; majority no_relation; standard DS-RE benchmark",
3996        splits: ["train", "test"],
3997        tasks: ["re"],
3998        categories: [relation_extraction],
3999    },
4000
4001    // =========================================================================
4002    // Additional Biomedical
4003    // =========================================================================
4004    JNLPBA {
4005        name: "JNLPBA",
4006        description: "JNLPBA 2004 shared task. Bio-entity recognition in PubMed abstracts.",
4007        url: "https://raw.githubusercontent.com/cambridgeltl/MTL-Bioinformatics-2016/master/data/JNLPBA/test.tsv",
4008        entity_types: ["PROTEIN", "DNA", "RNA", "CELL_TYPE", "CELL_LINE"],
4009        language: "en",
4010        domain: "biomedical",
4011        license: "Research",
4012        citation: "Kim et al. (2004)",
4013        paper_url: "https://aclanthology.org/W04-1213/",
4014        year: 2004,
4015        format: "CoNLL",
4016        annotation_scheme: "IOB2",
4017        size_hint: "~2,400 abstracts",
4018        notes: "Extended GENIA categories; foundational bioNER benchmark",
4019        categories: [ner, biomedical],
4020    },
4021    S800 {
4022        name: "S800",
4023        description: "Species-800 corpus. Species name recognition in biomedical text.",
4024        url: "https://species.jensenlab.org/files/S800-1.0.tar.gz",
4025        entity_types: ["SPECIES"],
4026        language: "en",
4027        domain: "biomedical",
4028        license: "CC-BY-4.0",
4029        citation: "Pafilis et al. (2013)",
4030        paper_url: "https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0065390",
4031        year: 2013,
4032        format: "XML",
4033        size_hint: "800 abstracts",
4034        notes: "Species NER; taxonomy normalization; tar.gz archive with XML format; requires manual extraction and conversion to CoNLL",
4035        access_status: DependsOnOther,
4036        categories: [ner, biomedical],
4037    },
4038
4039    // =========================================================================
4040    // Temporal NER (Time expressions, Events)
4041    // =========================================================================
4042    TempEval3 {
4043        name: "TempEval-3",
4044        description: "Temporal annotation benchmark. TIMEX, EVENT spans, and temporal relations.",
4045        url: "https://figshare.com/articles/dataset/TempEval-3_data/9586532",
4046        entity_types: ["TIMEX", "EVENT"],
4047        language: "en",
4048        domain: "news",
4049        license: "CC-BY-4.0",
4050        citation: "UzZaman et al. (2013)",
4051        paper_url: "https://aclanthology.org/S13-2001/",
4052        year: 2013,
4053        format: "TimeML",
4054        notes: "Time expression NER + event detection + temporal ordering; TimeBank based; TE3-Platinum gold standard",
4055        splits: ["train", "test"],
4056        tasks: ["ner", "temporal"],
4057        categories: [ner],
4058    },
4059    TimexRecognitionSentenceOriginal {
4060        name: "TIMEX Recognition (Sentence, Original)",
4061        description: "Sentence-level temporal extraction dataset with TIMEX spans (and optional EVENT/SIGNAL). Provided as HF rows with character offsets.",
4062        url: "https://huggingface.co/datasets/mdg-nlp/timex-recognition-sentence-original",
4063        entity_types: ["TIMEX", "EVENT", "SIGNAL"],
4064        language: "en",
4065        domain: "news",
4066        license: "Research",
4067        year: 2024,
4068        format: "HF-rows",
4069        notes: "HF datasets-server export contains `text` plus standoff spans in `time_expressions`/`event_expressions`/`signal_expressions` with `start_char`/`end_char` offsets; loader converts to token-level BIO for NER-style scoring.",
4070        splits: ["train", "validation", "test"],
4071        tasks: ["ner", "temporal", "events"],
4072        hf_id: "mdg-nlp/timex-recognition-sentence-original",
4073        access_status: HuggingFace,
4074        categories: [ner, temporal],
4075    },
4076    TimeBank12 {
4077        name: "TimeBank 1.2",
4078        description: "Canonical temporal IE corpus. News articles with TIMEX3, events, and temporal links (TLINKs).",
4079        url: "https://catalog.ldc.upenn.edu/LDC2006T08",
4080        entity_types: ["TIMEX3", "EVENT", "SIGNAL"],
4081        language: "en",
4082        domain: "news",
4083        license: "LDC",
4084        citation: "Pustejovsky et al. (2003)",
4085        paper_url: "https://aclanthology.org/W03-1808/",
4086        year: 2003,
4087        format: "TimeML",
4088        size_hint: "183 news documents, ~9k events",
4089        notes: "Original TimeML corpus; basis for TempEval shared tasks; temporal ordering gold standard",
4090        splits: ["train", "test"],
4091        tasks: ["ner", "temporal", "events"],
4092        categories: [ner],
4093    },
4094    MATRES {
4095        name: "MATRES",
4096        description: "Multi-Axis Temporal Relations. Cleaner, more consistent event-event temporal relation annotations.",
4097        url: "https://github.com/qiangning/MATRES",
4098        entity_types: ["EVENT"],
4099        language: "en",
4100        domain: "news",
4101        license: "Research",
4102        citation: "Ning et al. (2018)",
4103        paper_url: "https://aclanthology.org/P18-1212/",
4104        year: 2018,
4105        format: "Custom",
4106        size_hint: "~13.5k temporal relation pairs",
4107        notes: "Re-annotated TimeBank/AQUAINT subset; higher inter-annotator agreement; verb-centric",
4108        splits: ["train", "dev", "test"],
4109        tasks: ["temporal", "events", "re"],
4110        categories: [ner, relations],
4111    },
4112    THYME {
4113        name: "THYME",
4114        description: "Temporal Histories of Your Medical Events. Clinical temporal IE with events and relations.",
4115        url: "",
4116        entity_types: ["EVENT", "TIMEX3", "SECTIONTIME", "DOCTIME"],
4117        language: "en",
4118        domain: "clinical",
4119        license: "Research",
4120        citation: "Styler et al. (2014)",
4121        paper_url: "https://aclanthology.org/L14-1393/",
4122        year: 2014,
4123        format: "Custom",
4124        size_hint: "~600 clinical notes (colon cancer, brain cancer)",
4125        notes: "THYME guidelines; clinical events, temporal expressions, narrative containers; Clinical TempEval basis",
4126        splits: ["train", "dev", "test"],
4127        tasks: ["ner", "temporal", "events"],
4128        access_status: Registration,
4129        categories: [ner, clinical, biomedical],
4130    },
4131    I2B2Temporal {
4132        name: "i2b2 2012 Temporal",
4133        description: "Clinical temporal relations challenge. Events, TIMEX3, and TLINKs in discharge summaries.",
4134        url: "",
4135        entity_types: ["EVENT", "TIMEX3"],
4136        language: "en",
4137        domain: "clinical",
4138        license: "Research",
4139        citation: "Sun et al. (2013)",
4140        paper_url: "https://aclanthology.org/S13-2035/",
4141        year: 2012,
4142        format: "Custom",
4143        size_hint: "~310 clinical notes",
4144        notes: "i2b2 2012 challenge; requires DUA; clinical temporal relation extraction benchmark",
4145        splits: ["train", "test"],
4146        tasks: ["ner", "temporal", "re"],
4147        access_status: Registration,
4148        categories: [ner, clinical, biomedical, relations],
4149    },
4150
4151    // =========================================================================
4152    // Multimodal NER
4153    // =========================================================================
4154    Twitter2015MNER {
4155        name: "Twitter-2015 MNER",
4156        description: "Multimodal NER on Twitter. Text + image for entity recognition.",
4157        url: "https://github.com/jefferyYu/UMT",
4158        entity_types: ["PER", "LOC", "ORG", "MISC"],
4159        language: "en",
4160        domain: "social_media",
4161        license: "Research",
4162        citation: "Zhang et al. (2018)",
4163        paper_url: "https://aclanthology.org/N18-1078/",
4164        year: 2018,
4165        format: "CoNLL",
4166        size_hint: "~8,000 tweets with images",
4167        notes: "Multimodal; images via Google Drive archive; UMT preprocessing; first MNER dataset; visual context aids entity recognition",
4168        splits: ["train", "dev", "test"],
4169        tasks: ["ner", "mner"],
4170        categories: [ner, social_media, multimodal],
4171    },
4172
4173    // =========================================================================
4174    // Music Domain
4175    // =========================================================================
4176    DistantListeningCorpus {
4177        name: "Distant Listening Corpus",
4178        description: "1,283 musical scores with harmonic annotations. String quartet + piano music with Roman numeral analysis.",
4179        url: "https://zenodo.org/records/15150283",
4180        entity_types: ["CHORD", "KEY", "MODULATION", "CADENCE", "PHRASE"],
4181        language: "mul",
4182        domain: "music",
4183        license: "CC-BY-4.0",
4184        citation: "Devaney et al. (2024)",
4185        paper_url: "https://doi.org/10.5281/zenodo.15150283",
4186        year: 2024,
4187        format: "TSV",
4188        size_hint: "1,283 scores, 190k+ annotations",
4189        notes: "Music theory annotation corpus; Roman numeral analysis; supports harmonic sequence extraction; Zenodo archive",
4190        splits: ["train"],
4191        tasks: ["sequence_labeling", "harmonic_analysis"],
4192        categories: [ner, arcane_domain],
4193    },
4194
4195    // =========================================================================
4196    // Privacy/PII Detection
4197    // =========================================================================
4198    PIIMasking200k {
4199        name: "PII Masking 200k",
4200        description: "200k synthetic examples for PII detection and masking. Covers 50+ PII types.",
4201        url: "https://huggingface.co/datasets/ai4privacy/pii-masking-200k",
4202        entity_types: ["EMAIL", "PHONE", "SSN", "ADDRESS", "NAME", "DOB", "CREDIT_CARD", "PASSPORT", "IP_ADDRESS", "LICENSE"],
4203        language: "mul",
4204        domain: "privacy",
4205        license: "Apache-2.0",
4206        citation: "AI4Privacy (2024)",
4207        year: 2024,
4208        format: "JSONL",
4209        size_hint: "~200k examples",
4210        notes: "Synthetic PII dataset; multi-language; 50+ entity types; useful for privacy compliance testing",
4211        splits: ["train"],
4212        tasks: ["ner", "pii_detection"],
4213        hf_id: "ai4privacy/pii-masking-200k",
4214        access_status: HuggingFace,
4215        categories: [ner],
4216    },
4217
4218    // =========================================================================
4219    // Legal/SEC Domain
4220    // =========================================================================
4221    ENERSec {
4222        name: "E-NER SEC",
4223        description: "Legal NER from SEC EDGAR filings. 52 documents with financial entity annotations.",
4224        url: "https://github.com/jnishii/E-NER",
4225        entity_types: ["ORG", "LOC", "DATE", "MONEY", "PERCENT", "PERSON", "PRODUCT", "CARDINAL"],
4226        language: "en",
4227        domain: "legal",
4228        license: "MIT",
4229        citation: "Nishii et al. (2023)",
4230        year: 2023,
4231        format: "CSV",
4232        size_hint: "52 documents, ~400k tokens",
4233        notes: "SEC 10-K and 10-Q filings; financial regulatory domain; legal entity extraction",
4234        splits: ["train", "test"],
4235        tasks: ["ner"],
4236        categories: [ner, arcane_domain],
4237    },
4238
4239    // =========================================================================
4240    // Entity Linking / Named Entity Disambiguation Datasets
4241    // =========================================================================
4242    MSNBCEL {
4243        name: "MSNBC",
4244        description: "Small news article entity linking dataset. Commonly used for out-of-domain EL evaluation.",
4245        url: "",
4246        entity_types: ["PER", "LOC", "ORG"],
4247        language: "en",
4248        domain: "news",
4249        license: "Research",
4250        citation: "Cucerzan (2007)",
4251        paper_url: "https://aclanthology.org/D07-1074/",
4252        year: 2007,
4253        format: "Custom",
4254        size_hint: "~20 docs, ~700 mentions",
4255        notes: "Early EL benchmark; often used as OOD test set alongside AIDA",
4256        splits: ["test"],
4257        tasks: ["el", "entity_linking", "ned"],
4258        access_status: ContactAuthors,
4259        categories: [entity_linking],
4260    },
4261    AQUAINT {
4262        name: "AQUAINT",
4263        description: "Newswire entity linking dataset from AQUAINT corpus. Wikipedia-linked mentions.",
4264        url: "",
4265        entity_types: ["PER", "LOC", "ORG"],
4266        language: "en",
4267        domain: "news",
4268        license: "LDC",
4269        citation: "Milne & Witten (2008)",
4270        year: 2008,
4271        format: "Custom",
4272        size_hint: "~50 docs, ~700 mentions",
4273        notes: "Commonly paired with AIDA for comprehensive EL evaluation",
4274        splits: ["test"],
4275        tasks: ["el", "entity_linking", "ned"],
4276        access_status: Registration,
4277        categories: [entity_linking],
4278    },
4279    KORE50 {
4280        name: "KORE50",
4281        description: "Short, highly ambiguous entity linking snippets. Tests disambiguation difficulty.",
4282        url: "https://github.com/KORE50/KORE50-NIF-NER",
4283        entity_types: ["PER", "LOC", "ORG"],
4284        language: "en",
4285        domain: "evaluation",
4286        license: "CC-BY-4.0",
4287        citation: "Hoffart et al. (2012)",
4288        paper_url: "https://aclanthology.org/P12-1084/",
4289        year: 2012,
4290        format: "Custom",
4291        size_hint: "50 sentences, 144 mentions",
4292        notes: "Highly ambiguous mentions; stress-tests disambiguation ability; includes YAGO types",
4293        splits: ["test"],
4294        tasks: ["el", "entity_linking", "ned"],
4295        categories: [entity_linking, adversarial],
4296    },
4297    WNEDWiki {
4298        name: "WNED-WIKI",
4299        description: "Large-scale Wikipedia entity linking dataset extracted from Wikipedia hyperlinks.",
4300        url: "https://github.com/wikipedia2vec/wikipedia2vec",
4301        entity_types: ["ENTITY"],
4302        language: "en",
4303        domain: "wikipedia",
4304        license: "Research",
4305        citation: "Guo & Barbosa (2018)",
4306        year: 2018,
4307        format: "Custom",
4308        size_hint: "~6M mentions",
4309        notes: "Large-scale silver annotations from Wikipedia hyperlinks",
4310        splits: ["test"],
4311        tasks: ["el", "entity_linking"],
4312        categories: [entity_linking],
4313    },
4314    WNEDClueweb {
4315        name: "WNED-ClueWeb",
4316        description: "Web-scale entity linking from ClueWeb corpus. Tests EL on noisy web text.",
4317        url: "",
4318        entity_types: ["ENTITY"],
4319        language: "en",
4320        domain: "web",
4321        license: "Research",
4322        citation: "Guo & Barbosa (2018)",
4323        year: 2018,
4324        format: "Custom",
4325        size_hint: "~10k docs",
4326        notes: "Web-scale EL benchmark; tests robustness on noisy web text",
4327        splits: ["test"],
4328        tasks: ["el", "entity_linking"],
4329        access_status: Registration,
4330        categories: [entity_linking],
4331    },
4332    BELB {
4333        name: "BELB",
4334        description: "Biomedical Entity Linking Benchmark unifying 11 corpora across 7 knowledge bases. Standardized biomedical EL evaluation.",
4335        url: "https://github.com/sg-wbi/belb",
4336        entity_types: ["Disease", "Chemical", "Gene", "Species", "CellLine", "Variant"],
4337        language: "en",
4338        domain: "biomedical",
4339        license: "Research",
4340        citation: "Furrer et al. (2023)",
4341        paper_url: "https://academic.oup.com/bioinformatics/article/39/11/btad698/7425450",
4342        year: 2023,
4343        format: "JSONL",
4344        size_hint: "11 corpora, 7 KBs",
4345        notes: "Unifies BC5CDR-Chemical, BC5CDR-Disease, NCBI-Disease, BC2GN, NLM-Gene, Linnaeus, S800, GNORMPLUS, MedMentions, and more",
4346        splits: ["train", "dev", "test"],
4347        tasks: ["el", "entity_linking", "ned"],
4348        categories: [entity_linking, biomedical],
4349    },
4350    MELO {
4351        name: "MELO",
4352        description: "Multilingual Entity Linking of Occupations. 48 datasets across 21 languages for occupation EL.",
4353        url: "https://github.com/avature/melo-benchmark",
4354        entity_types: ["OCCUPATION"],
4355        language: "mul",
4356        domain: "general",
4357        license: "Apache-2.0",
4358        citation: "Retyk et al. (2024)",
4359        paper_url: "https://aclanthology.org/2024.lrec-main.889/",
4360        year: 2024,
4361        format: "JSONL",
4362        size_hint: "48 datasets, 21 languages",
4363        notes: "Zero-shot multilingual EL; includes sentence encoders and lexical baselines",
4364        splits: ["test"],
4365        tasks: ["el", "entity_linking"],
4366        categories: [entity_linking, multilingual],
4367    },
4368
4369    MewsliX {
4370        name: "Mewsli-X",
4371        description: "Multilingual entity linking across 50 languages. Wikipedia-linked mentions for zero-shot cross-lingual EL.",
4372        url: "https://huggingface.co/datasets/izhx/mewsli-x",
4373        entity_types: ["ENTITY"],  // Wikipedia entities
4374        language: "mul",
4375        domain: "news",
4376        license: "Apache-2.0",
4377        citation: "Botha et al. (2020)",
4378        paper_url: "https://arxiv.org/abs/2010.11856",
4379        year: 2020,
4380        format: "TSV",
4381        size_hint: "~300k mentions across 50 languages",
4382        notes: "Zero-shot cross-lingual EL benchmark; from WikiNews; Wikipedia KB",
4383        splits: ["test"],
4384        tasks: ["el", "entity_linking", "ned"],
4385        access_status: Public,
4386        categories: [entity_linking, multilingual],
4387    },
4388
4389    // =========================================================================
4390    // Long-Document Coreference
4391    // =========================================================================
4392    // NOTE: BookCoref (sapienzanlp) is defined earlier (~line 2035). This is a different dataset.
4393    BookCorefBamman {
4394        name: "BookCoref (Bamman)",
4395        description: "Full-novel coreference with automatic silver and manual gold annotations. Includes Animal Farm, Siddhartha, Pride and Prejudice.",
4396        url: "https://huggingface.co/datasets/spacemanidol/BookCoref",
4397        entity_types: ["PER", "LOC", "ORG"],
4398        language: "en",
4399        domain: "literature",
4400        license: "Research",
4401        citation: "Bamman et al. (2025)",
4402        paper_url: "https://arxiv.org/abs/2507.12075",
4403        year: 2025,
4404        format: "JSONL",
4405        size_hint: "~200k tokens per document",
4406        notes: "Long-document coref benchmark; tests models on full novels; silver + gold annotations. HF-hosted but appears gated in practice; treat as manual unless you have explicit access.",
4407        splits: ["test"],
4408        tasks: ["coref"],
4409        hf_id: "spacemanidol/BookCoref",
4410        access_status: ContactAuthors,
4411        categories: [coref, literary, long_document],
4412    },
4413    NovelCR {
4414        name: "NovelCR",
4415        description: "Large-scale bilingual (EN/ZH) novel coreference. 148k EN mentions, 311k ZH mentions with 74-83% spanning 3+ sentences.",
4416        url: "https://github.com/NovelCR/NovelCR",
4417        entity_types: ["PER", "LOC", "ORG"],
4418        language: "mul",
4419        domain: "literature",
4420        license: "Research",
4421        citation: "Chen et al. (2024)",
4422        paper_url: "https://openreview.net/forum?id=zuZXwj9aSE",
4423        year: 2024,
4424        format: "JSONL",
4425        size_hint: "EN: 148k mentions, ZH: 311k mentions",
4426        notes: "Long-span coreference; bilingual EN/ZH; most coreferences span multiple sentences",
4427        splits: ["train", "dev", "test"],
4428        tasks: ["coref"],
4429        categories: [coref, literary, long_document, multilingual],
4430    },
4431    AgCNER {
4432        name: "AgCNER",
4433        description: "Large-scale Chinese agricultural NER. 66k samples, ~207k entities, 3.9M characters.",
4434        url: "https://springernature.figshare.com/collections/AgCNER_the_First_Large-Scale_Chinese_Named_Entity_Recognition_Dataset_for_Agricultural_Diseases_and_Pests/6807873",
4435        entity_types: ["CROP", "DISEASE", "PEST", "CHEMICAL", "VARIETY", "LOCATION", "TIME"],
4436        language: "zh",
4437        domain: "scientific",
4438        license: "CC-BY-4.0",
4439        citation: "AgCNER Team (2024)",
4440        paper_url: "https://www.nature.com/articles/s41597-024-03578-5",
4441        year: 2024,
4442        format: "JSONL",
4443        size_hint: "66k samples, ~207k entities, 3.9M characters",
4444        notes: "Nature Scientific Data 2024; 13 entity types; long agricultural case reports; domain NER",
4445        splits: ["train", "dev", "test"],
4446        tasks: ["ner"],
4447        categories: [ner, long_document, multilingual, arcane_domain],
4448    },
4449    ScrollsQMSum {
4450        name: "SCROLLS QMSum",
4451        description: "Long-document QA from SCROLLS benchmark. Query-focused meeting summarization.",
4452        url: "https://github.com/tau-nlp/scrolls",
4453        entity_types: [],
4454        language: "en",
4455        domain: "dialogue",
4456        license: "MIT",
4457        citation: "Shaham et al. (2022)",
4458        paper_url: "https://aclanthology.org/2022.emnlp-main.823/",
4459        year: 2022,
4460        format: "JSONL",
4461        size_hint: "~1.5k meeting transcripts, avg 10k tokens",
4462        notes: "EMNLP 2022; SCROLLS benchmark subset; long meeting transcripts; tests long-context understanding",
4463        splits: ["train", "dev", "test"],
4464        tasks: ["qa"],
4465        categories: [long_document, dialogue],
4466    },
4467    LongDocNER {
4468        name: "Long Document NER",
4469        description: "Long-document NER benchmark. Tests entity recognition across extended contexts.",
4470        url: "https://github.com/xhuang28/LongDocNER",
4471        entity_types: ["PER", "LOC", "ORG", "MISC"],
4472        language: "en",
4473        domain: "mixed",
4474        license: "MIT",
4475        citation: "Huang et al. (2024)",
4476        year: 2024,
4477        format: "JSONL",
4478        size_hint: "~500 documents, avg 8k tokens",
4479        notes: "Tests long-context NER models; entity consistency across document boundaries",
4480        splits: ["train", "dev", "test"],
4481        tasks: ["ner"],
4482        categories: [ner, long_document],
4483    },
4484    BookSumCoref {
4485        name: "BookSum Coref",
4486        description: "Coreference annotations on book chapters from BookSum. Long literary texts.",
4487        url: "https://github.com/salesforce/booksum",
4488        entity_types: ["PER", "LOC", "ORG"],
4489        language: "en",
4490        domain: "literature",
4491        license: "Research",
4492        citation: "Kryscinski et al. (2022)",
4493        paper_url: "https://aclanthology.org/2022.findings-emnlp.438/",
4494        year: 2022,
4495        format: "JSONL",
4496        size_hint: "~400 chapters, avg 5k tokens",
4497        notes: "Book chapters with coref chains; tests long-span coreference resolution",
4498        splits: ["train", "test"],
4499        tasks: ["coref"],
4500        categories: [coref, long_document, literary],
4501    },
4502    MultiBioNERLong {
4503        name: "Multi-Bio Long NER",
4504        description: "Long biomedical document NER. Full-text articles vs abstracts.",
4505        url: "https://github.com/dmis-lab/multi-bio-ner",
4506        entity_types: ["GENE", "CHEMICAL", "DISEASE", "SPECIES"],
4507        language: "en",
4508        domain: "biomedical",
4509        license: "Research",
4510        citation: "Lee et al. (2023)",
4511        year: 2023,
4512        format: "JSONL",
4513        size_hint: "~1k full-text articles",
4514        notes: "Full-text vs abstract NER comparison; tests biomedical long-context models",
4515        splits: ["train", "dev", "test"],
4516        tasks: ["ner"],
4517        categories: [ner, long_document, biomedical],
4518    },
4519    RadCoref {
4520        name: "RadCoref",
4521        description: "Radiology report coreference from MIMIC-CXR. Clinical domain long-document coref.",
4522        url: "https://physionet.org/content/rad-coreference-resolution/",
4523        entity_types: ["ANATOMY", "OBSERVATION", "FINDING"],
4524        language: "en",
4525        domain: "clinical",
4526        license: "PhysioNet",
4527        citation: "Zhu et al. (2024)",
4528        paper_url: "https://physionet.org/content/rad-coreference-resolution/",
4529        year: 2024,
4530        format: "BRAT",
4531        size_hint: "~500 radiology reports",
4532        notes: "Clinical coref on MIMIC-CXR; requires PhysioNet credentialing; radiology-specific entities",
4533        splits: ["train", "test"],
4534        tasks: ["coref"],
4535        categories: [coref, clinical, biomedical],
4536    },
4537
4538    // =========================================================================
4539    // Cross-Document Event Coreference
4540    // =========================================================================
4541    MEANTIME {
4542        name: "MEANTIME",
4543        description: "Multilingual news corpus with within- and cross-document event coreference. 4 languages.",
4544        url: "https://github.com/newsreader/meantime",
4545        entity_types: ["EVENT", "TIMEX", "PARTICIPANT", "LOCATION"],
4546        language: "mul",
4547        domain: "news",
4548        license: "CC-BY-4.0",
4549        citation: "Minard et al. (2016)",
4550        paper_url: "https://aclanthology.org/L16-1699/",
4551        year: 2016,
4552        format: "Custom",
4553        size_hint: "120 documents, 4 languages (EN, ES, IT, NL)",
4554        notes: "Multilingual CDEC; parallel annotations across languages; NewsReader project",
4555        splits: ["all"],
4556        tasks: ["coref", "event_coref", "cdcr"],
4557        categories: [coref, event_coref, multilingual],
4558    },
4559    FCCT {
4560        name: "FCC-T",
4561        description: "Football Coreference Corpus with token-level annotations. Cross-document event coref in sports news.",
4562        url: "https://github.com/cltl/FCC",
4563        entity_types: ["EVENT", "PARTICIPANT", "TIME", "LOCATION"],
4564        language: "en",
4565        domain: "sports",
4566        license: "CC-BY-4.0",
4567        citation: "Bugert et al. (2021)",
4568        paper_url: "https://direct.mit.edu/coli/article/47/3/575/102774",
4569        year: 2021,
4570        format: "CoNLL",
4571        size_hint: "~300 docs",
4572        notes: "Token-level CDEC; compatible with ECB+ and GVC; sports domain temporal reasoning",
4573        splits: ["train", "dev", "test"],
4574        tasks: ["coref", "event_coref", "cdcr"],
4575        categories: [coref, event_coref],
4576    },
4577    LEMONADE {
4578        name: "LEMONADE",
4579        description: "Large-scale multilingual conflict event corpus. 39k events across 20 languages for CDEC search.",
4580        url: "https://github.com/lemonade-coref/lemonade",
4581        entity_types: ["EVENT", "PARTICIPANT", "LOCATION", "TIME"],
4582        language: "mul",
4583        domain: "news",
4584        license: "Research",
4585        citation: "Eirew et al. (2025)",
4586        year: 2025,
4587        format: "JSONL",
4588        size_hint: "~39k events, 20 languages, 171 countries",
4589        notes: "Conflict event CDEC; cross-document event coreference search task; multilingual",
4590        splits: ["test"],
4591        tasks: ["coref", "event_coref", "cdcr"],
4592        categories: [coref, event_coref, multilingual],
4593    },
4594
4595    // =========================================================================
4596    // Newer Biomedical/Clinical NER and RE
4597    // =========================================================================
4598    BioRED {
4599        name: "BioRED",
4600        description: "Document-level biomedical RE with novelty labels. BioCreative VIII shared task benchmark.",
4601        url: "https://ftp.ncbi.nlm.nih.gov/pub/lu/BioRED/",
4602        entity_types: ["Gene", "Disease", "Chemical", "Species", "Variant", "CellLine"],
4603        language: "en",
4604        domain: "biomedical",
4605        license: "Public",
4606        citation: "Luo et al. (2022)",
4607        paper_url: "https://academic.oup.com/database/article/doi/10.1093/database/baae069/7729400",
4608        year: 2022,
4609        format: "Custom",
4610        size_hint: "600 PubMed abstracts, 8 relation types",
4611        notes: "Document-level RE with novelty detection; distinguishes novel vs known relations",
4612        splits: ["train", "dev", "test"],
4613        tasks: ["ner", "re", "relation_extraction"],
4614        categories: [ner, relation_extraction, biomedical],
4615    },
4616    MedMentions {
4617        name: "MedMentions",
4618        description: "Large-scale biomedical concept mentions mapped to UMLS. PubMed abstracts with fine-grained semantic types.",
4619        url: "https://github.com/chanzuckerberg/MedMentions",
4620        entity_types: ["UMLS_CONCEPT"],
4621        language: "en",
4622        domain: "biomedical",
4623        license: "CC0-1.0",
4624        citation: "Mohan & Li (2019)",
4625        paper_url: "https://arxiv.org/abs/1902.09476",
4626        year: 2019,
4627        format: "Custom",
4628        size_hint: "4,392 abstracts, 352k mentions, 35k concepts",
4629        notes: "UMLS concept linking; 127 semantic types; large-scale biomedical concept NER/EL",
4630        splits: ["train", "dev", "test"],
4631        tasks: ["ner", "el", "entity_linking"],
4632        categories: [ner, entity_linking, biomedical],
4633    },
4634    EnzChemRED {
4635        name: "EnzChemRED",
4636        description: "Enzyme chemistry relation extraction. Links enzymes, substrates, products, cofactors from biochemical literature.",
4637        url: "https://github.com/ncbi-nlp/EnzChemRED",
4638        entity_types: ["Enzyme", "Substrate", "Product", "Cofactor", "Reaction"],
4639        language: "en",
4640        domain: "biomedical",
4641        license: "CC-BY-4.0",
4642        citation: "Schröder et al. (2024)",
4643        paper_url: "https://www.nature.com/articles/s41597-024-03835-7",
4644        year: 2024,
4645        format: "JSONL",
4646        size_hint: "~5k relation triplets",
4647        notes: "Specialized enzyme chemistry RE; biochemical reaction extraction",
4648        splits: ["train", "test"],
4649        tasks: ["ner", "re", "relation_extraction"],
4650        categories: [ner, relation_extraction, biomedical],
4651    },
4652    NCERB {
4653        name: "NCERB",
4654        description: "Named Clinical Entity Recognition Benchmark. Multi-dataset clinical NER evaluation suite.",
4655        url: "https://github.com/NCERB/NCERB",
4656        entity_types: ["Problem", "Treatment", "Test", "Medication", "Anatomy"],
4657        language: "en",
4658        domain: "clinical",
4659        license: "Research",
4660        citation: "Zhou et al. (2024)",
4661        paper_url: "https://arxiv.org/abs/2410.05046",
4662        year: 2024,
4663        format: "Custom",
4664        size_hint: "Multiple clinical corpora aggregated",
4665        notes: "Benchmark suite for clinical NER; evaluates LMs on healthcare entities; aggregates i2b2, n2c2, etc.",
4666        splits: ["test"],
4667        tasks: ["ner"],
4668        categories: [ner, clinical, biomedical],
4669    },
4670    MACCROBAT {
4671        name: "MACCROBAT",
4672        description: "Biomedical NER corpus with extensive coverage. Used with RoBERTa-WWM and deep models.",
4673        url: "https://figshare.com/articles/dataset/MACCROBAT2018/9764942",
4674        entity_types: ["Disease", "Chemical", "Gene", "Species"],
4675        language: "en",
4676        domain: "biomedical",
4677        license: "CC-BY-4.0",
4678        citation: "Islamaj et al. (2019)",
4679        year: 2019,
4680        format: "Custom",
4681        size_hint: "~400 abstracts",
4682        notes: "Multi-type biomedical NER; chemical and disease mentions",
4683        splits: ["train", "test"],
4684        tasks: ["ner"],
4685        categories: [ner, biomedical],
4686    },
4687
4688    // =========================================================================
4689    // Additional Relation Extraction Datasets
4690    // =========================================================================
4691    ACE05RE {
4692        name: "ACE 2005 RE",
4693        description: "ACE 2005 relation extraction component. 7 entity types, 6 relation types with subtypes.",
4694        url: "",
4695        entity_types: ["PER", "ORG", "GPE", "LOC", "FAC", "VEH", "WEA"],
4696        language: "en",
4697        domain: "news",
4698        license: "LDC",
4699        citation: "Walker et al. (2006)",
4700        year: 2005,
4701        format: "XML",
4702        size_hint: "~600 docs, 7 relation types",
4703        notes: "Classic RE benchmark; requires LDC license; often used with ACE NER",
4704        splits: ["train", "dev", "test"],
4705        tasks: ["ner", "re", "relation_extraction"],
4706        access_status: Registration,
4707        categories: [ner, relation_extraction],
4708    },
4709    CoNLL04RE {
4710        name: "CoNLL04 RE",
4711        description: "Sentence-level relation extraction from CoNLL-2004. Clean, small RE benchmark.",
4712        url: "https://github.com/bekou/multihead_joint_entity_relation_extraction",
4713        entity_types: ["PER", "ORG", "LOC", "Other"],
4714        language: "en",
4715        domain: "news",
4716        license: "Research",
4717        citation: "Roth & Yih (2004)",
4718        paper_url: "https://aclanthology.org/W04-2401/",
4719        year: 2004,
4720        format: "CoNLL",
4721        size_hint: "~1.4k sentences, 5 relation types",
4722        notes: "Clean sentence-level RE; joint NER+RE evaluation",
4723        splits: ["train", "test"],
4724        tasks: ["ner", "re", "relation_extraction"],
4725        categories: [ner, relation_extraction],
4726    },
4727    CrossRE {
4728        name: "CrossRE",
4729        description: "Cross-domain relation extraction across 6 domains. Tests RE generalization.",
4730        url: "https://github.com/mainlp/CrossRE",
4731        entity_types: ["PER", "ORG", "LOC", "MISC"],
4732        language: "en",
4733        domain: "cross_domain",
4734        license: "CC-BY-4.0",
4735        citation: "Bassignana & Plank (2022)",
4736        paper_url: "https://aclanthology.org/2022.emnlp-main.452/",
4737        year: 2022,
4738        format: "JSON",
4739        size_hint: "6 domains: AI, Literature, Music, News, Politics, Science",
4740        notes: "Cross-domain RE evaluation; tests transfer across domains",
4741        splits: ["train", "dev", "test"],
4742        tasks: ["re", "relation_extraction"],
4743        categories: [relation_extraction],
4744    },
4745
4746    // =========================================================================
4747    // Unified Multilingual NER
4748    // =========================================================================
4749    UNER {
4750        name: "UNER",
4751        description: "Universal NER on Universal Dependencies. Gold NER with unified schema across 13 languages.",
4752        url: "https://github.com/UniversalNER/UNER",
4753        entity_types: ["PER", "LOC", "ORG"],
4754        language: "mul",
4755        domain: "general",
4756        license: "CC-BY-SA-4.0",
4757        citation: "Mayhew et al. (2024)",
4758        paper_url: "https://aclanthology.org/2024.naacl-long.243/",
4759        year: 2024,
4760        format: "CoNLLU",
4761        size_hint: "13 languages including Cebuano, Tagalog, Narabizi",
4762        notes: "Unified NER on UD treebanks; includes low-resource languages; community-driven expansion",
4763        splits: ["train", "dev", "test"],
4764        tasks: ["ner"],
4765        categories: [ner, multilingual, low_resource],
4766    },
4767    IndicNER {
4768        name: "IndicNER",
4769        description: "Indian languages NER covering 11 Indian languages. Low-resource multilingual NER.",
4770        url: "https://github.com/AI4Bharat/IndicNER",
4771        entity_types: ["PER", "LOC", "ORG"],
4772        language: "mul",
4773        domain: "general",
4774        license: "CC-BY-4.0",
4775        citation: "Mhaske et al. (2022)",
4776        paper_url: "https://aclanthology.org/2022.findings-acl.269/",
4777        year: 2022,
4778        format: "CoNLL",
4779        size_hint: "11 languages: Hindi, Bengali, Telugu, Tamil, Marathi, etc.",
4780        notes: "Indian language NER; part of AI4Bharat initiative; low-resource focus",
4781        splits: ["train", "dev", "test"],
4782        tasks: ["ner"],
4783        categories: [ner, multilingual, low_resource],
4784    },
4785    NorNE {
4786        name: "NorNE",
4787        description: "Norwegian NER covering Bokmål and Nynorsk. Morphologically rich language from news and parliament text.",
4788        url: "https://github.com/ltgoslo/norne",
4789        entity_types: ["PER", "LOC", "ORG", "GPE", "PROD", "EVT", "DRV"],
4790        language: "no",
4791        domain: "news",
4792        license: "CC-BY-4.0",
4793        citation: "Jørgensen et al. (2020)",
4794        paper_url: "https://aclanthology.org/2020.lrec-1.559/",
4795        year: 2020,
4796        format: "CoNLL",
4797        size_hint: "~600k tokens, both Bokmål and Nynorsk",
4798        notes: "Both Norwegian written forms; morphologically rich; 8 entity types",
4799        splits: ["train", "dev", "test"],
4800        tasks: ["ner"],
4801        categories: [ner],
4802    },
4803    GermEval2014 {
4804        name: "GermEval 2014",
4805        description: "German NER shared task. Standard German NER benchmark with nested entities.",
4806        url: "https://sites.google.com/site/germaboreval2014/data",
4807        entity_types: ["PER", "LOC", "ORG", "OTH"],
4808        language: "de",
4809        domain: "news",
4810        license: "CC-BY-4.0",
4811        citation: "Benikova et al. (2014)",
4812        paper_url: "https://aclanthology.org/W14-1707/",
4813        year: 2014,
4814        format: "CoNLL",
4815        annotation_scheme: "BIO",
4816        size_hint: "~31k sentences",
4817        notes: "Standard German NER; includes nested/embedded entities; derived from Wikipedia and news",
4818        splits: ["train", "dev", "test"],
4819        tasks: ["ner"],
4820        categories: [ner, nested_ner],
4821    },
4822
4823    // =========================================================================
4824    // LLM-Era Evaluation Datasets
4825    // =========================================================================
4826    ReasoningNER {
4827        name: "ReasoningNER",
4828        description: "Zero-shot NER evaluation suite across 20 diverse datasets. Tests LLM NER capabilities.",
4829        url: "https://github.com/reasoning-ner/reasoning-ner",
4830        entity_types: ["PER", "LOC", "ORG", "MISC"],
4831        language: "en",
4832        domain: "evaluation",
4833        license: "Research",
4834        citation: "Xia et al. (2025)",
4835        paper_url: "https://arxiv.org/abs/2511.11978",
4836        year: 2025,
4837        format: "JSONL",
4838        size_hint: "20 datasets across news, social, biomedical, etc.",
4839        notes: "Zero-shot NER evaluation; tests instruction-following and entity reasoning in LLMs",
4840        splits: ["test"],
4841        tasks: ["ner"],
4842        categories: [ner, adversarial],
4843    },
4844    BioNERLLaMA {
4845        name: "BioNER-LLaMA",
4846        description: "Instruction-tuned biomedical NER benchmark. Evaluates generative models on disease/chemical/gene NER.",
4847        url: "https://github.com/BIDS-Xu-Lab/BioNER-LLaMA",
4848        entity_types: ["Disease", "Chemical", "Gene"],
4849        language: "en",
4850        domain: "biomedical",
4851        license: "Research",
4852        citation: "Keloth et al. (2024)",
4853        paper_url: "https://academic.oup.com/bioinformatics/article/40/4/btae163/7633405",
4854        year: 2024,
4855        format: "JSONL",
4856        size_hint: "Instruction-formatted from BC5CDR, NCBI, etc.",
4857        notes: "LLM instruction-tuning for BioNER; evaluates ChatGPT, LLaMA, etc. on biomedical entities",
4858        splits: ["test"],
4859        tasks: ["ner"],
4860        categories: [ner, biomedical],
4861    },
4862    MentionResolutionLLM {
4863        name: "Mention Resolution LLM",
4864        description: "MCQ-format coreference for LLMs from LitBank and FantasyCoref. Tests referential understanding on narratives.",
4865        url: "https://github.com/mention-resolution/mention-resolution-llm",
4866        entity_types: ["PER", "LOC", "ORG"],
4867        language: "en",
4868        domain: "literature",
4869        license: "Research",
4870        citation: "Adams et al. (2024)",
4871        paper_url: "https://arxiv.org/abs/2411.07466",
4872        year: 2024,
4873        format: "JSONL",
4874        size_hint: "MCQ from LitBank + FantasyCoref",
4875        notes: "Multiple-choice coref for LLM evaluation; tests ambiguous, long-distance, nested mentions",
4876        splits: ["test"],
4877        tasks: ["coref"],
4878        categories: [coref, literary],
4879    },
4880
4881    // =========================================================================
4882    // Additional Discontinuous/Clinical NER
4883    // =========================================================================
4884    ShARe2013 {
4885        name: "ShARe 2013",
4886        description: "Clinical disorder mentions from ShARe/CLEF eHealth 2013. Discontinuous entity annotations.",
4887        url: "",
4888        entity_types: ["DISORDER"],
4889        language: "en",
4890        domain: "clinical",
4891        license: "Research",
4892        citation: "Pradhan et al. (2013)",
4893        paper_url: "https://aclanthology.org/S13-2056/",
4894        year: 2013,
4895        format: "Custom",
4896        size_hint: "~300 clinical notes",
4897        notes: "Clinical NER with discontinuous spans; shared task at CLEF eHealth",
4898        splits: ["train", "dev", "test"],
4899        tasks: ["ner", "discontinuous-ner"],
4900        access_status: Registration,
4901        categories: [ner, discontinuous_ner, clinical, biomedical],
4902    },
4903    ShARe2014 {
4904        name: "ShARe 2014",
4905        description: "Clinical disorder mentions from ShARe/CLEF eHealth 2014. Improved discontinuous NER annotations.",
4906        url: "",
4907        entity_types: ["DISORDER", "ANATOMY", "MODIFIER"],
4908        language: "en",
4909        domain: "clinical",
4910        license: "Research",
4911        citation: "Mowery et al. (2014)",
4912        paper_url: "https://aclanthology.org/S14-2007/",
4913        year: 2014,
4914        format: "Custom",
4915        size_hint: "~400 clinical notes",
4916        notes: "Improved clinical discontinuous NER; attribute normalization",
4917        splits: ["train", "test"],
4918        tasks: ["ner", "discontinuous-ner"],
4919        access_status: Registration,
4920        categories: [ner, discontinuous_ner, clinical, biomedical],
4921    },
4922    I2B2_2010 {
4923        name: "i2b2 2010",
4924        description: "Clinical concept extraction and assertion classification. Foundational clinical NER benchmark.",
4925        url: "",
4926        entity_types: ["PROBLEM", "TREATMENT", "TEST"],
4927        language: "en",
4928        domain: "clinical",
4929        license: "Research",
4930        citation: "Uzuner et al. (2011)",
4931        paper_url: "https://academic.oup.com/jamia/article/18/5/552/833880",
4932        year: 2010,
4933        format: "Custom",
4934        size_hint: "~871 discharge summaries",
4935        notes: "Foundational clinical NER; requires i2b2/n2c2 data use agreement",
4936        splits: ["train", "test"],
4937        tasks: ["ner"],
4938        access_status: Registration,
4939        categories: [ner, clinical, biomedical],
4940    },
4941
4942    // =========================================================================
4943    // Legal Domain
4944    // =========================================================================
4945    LexGLUENER {
4946        name: "LexGLUE NER",
4947        description: "Legal NER from LexGLUE benchmark. Legal entity extraction from case law and contracts.",
4948        url: "https://github.com/coastalcph/lex-glue",
4949        entity_types: ["PERSON", "ORGANIZATION", "LOCATION", "DATE", "LEGAL_REF", "COURT"],
4950        language: "en",
4951        domain: "legal",
4952        license: "Research",
4953        citation: "Chalkidis et al. (2022)",
4954        paper_url: "https://aclanthology.org/2022.acl-long.297/",
4955        year: 2022,
4956        format: "JSONL",
4957        size_hint: "Part of LexGLUE benchmark suite",
4958        notes: "Legal domain benchmark; includes contracts, case law, legislation",
4959        splits: ["train", "dev", "test"],
4960        tasks: ["ner", "classification"],
4961        categories: [ner, arcane_domain],
4962    },
4963
4964    // =========================================================================
4965    // Financial Domain
4966    // =========================================================================
4967    FinBenNER {
4968        name: "FinBen NER",
4969        description: "Financial NER from FinBen benchmark. Entity extraction from financial documents and filings.",
4970        url: "https://github.com/TheFinAI/FinBen",
4971        entity_types: ["COMPANY", "PERSON", "MONEY", "PERCENT", "DATE", "PRODUCT"],
4972        language: "en",
4973        domain: "financial",
4974        license: "Research",
4975        citation: "Xie et al. (2024)",
4976        paper_url: "https://arxiv.org/abs/2402.12659",
4977        year: 2024,
4978        format: "JSONL",
4979        size_hint: "Multi-task financial benchmark",
4980        notes: "Financial IE benchmark; includes NER, classification, QA; 2024 NeurIPS",
4981        splits: ["test"],
4982        tasks: ["ner"],
4983        categories: [ner, arcane_domain],
4984    },
4985    FiNER139 {
4986        name: "FiNER-139",
4987        description: "Financial NER with 139 fine-grained entity types. SEC 10-K/10-Q filings.",
4988        url: "https://huggingface.co/datasets/nlpaueb/finer-139",
4989        entity_types: ["COMPANY", "EXECUTIVE", "SUBSIDIARY", "PRODUCT", "REGULATION", "FINANCIAL_METRIC"],
4990        language: "en",
4991        domain: "financial",
4992        license: "MIT",
4993        citation: "Shah et al. (2023)",
4994        year: 2023,
4995        format: "JSONL",
4996        size_hint: "~10k sentences, 139 entity types",
4997        notes: "Fine-grained financial NER; hierarchical entity types; SEC filings",
4998        splits: ["train", "test"],
4999        tasks: ["ner"],
5000        hf_id: "nlpaueb/finer-139",
5001        access_status: HuggingFace,
5002        categories: [ner, nested_ner, arcane_domain],
5003    },
5004
5005    // =========================================================================
5006    // Constructed Languages
5007    // Constructed language NLP is valuable for:
5008    // - Testing language universals vs learned biases
5009    // - Evaluating cross-lingual transfer to truly novel languages
5010    // - Edge case testing (highly regular morphology, OVS word order, etc.)
5011    // =========================================================================
5012    TaggedPBCEsperanto {
5013        name: "taggedPBC Esperanto",
5014        description: "POS-tagged Esperanto from Parallel Bible Corpus. ~1800 sentences with word-level alignment.",
5015        url: "https://github.com/clab/taggedPBC",
5016        entity_types: ["PER", "LOC", "ORG"],
5017        language: "eo",
5018        domain: "religious",
5019        license: "CC-BY-4.0",
5020        citation: "Zeman et al. (2025)",
5021        paper_url: "https://arxiv.org/abs/2505.12560",
5022        year: 2024,
5023        format: "CoNLLU",
5024        size_hint: "~1800 sentences, New Testament",
5025        notes: "First large-scale annotated Esperanto corpus; cross-linguistic POS; no dedicated NER layer yet",
5026        splits: ["train"],
5027        tasks: ["ner", "sequence_labeling"],
5028        categories: [ner, constructed, low_resource],
5029    },
5030    TaggedPBCKlingon {
5031        name: "taggedPBC Klingon",
5032        description: "POS-tagged Klingon from Parallel Bible Corpus. OVS word order with complex verbal morphology.",
5033        url: "https://github.com/clab/taggedPBC",
5034        entity_types: ["PER", "LOC", "ORG"],
5035        language: "tlh",
5036        domain: "religious",
5037        license: "CC-BY-4.0",
5038        citation: "Zeman et al. (2025)",
5039        paper_url: "https://arxiv.org/abs/2505.12560",
5040        year: 2024,
5041        format: "CoNLLU",
5042        size_hint: "~1800 sentences, New Testament",
5043        notes: "Klingon has OVS word order, agglutinative verbs with suffix slots; tests non-SVO processing",
5044        splits: ["train"],
5045        tasks: ["ner", "sequence_labeling"],
5046        categories: [ner, constructed, low_resource],
5047    },
5048    UDEsperantoCairo {
5049        name: "UD Esperanto Cairo",
5050        description: "Universal Dependencies treebank for Esperanto. Syntax annotation without NER layer.",
5051        url: "https://raw.githubusercontent.com/UniversalDependencies/UD_Esperanto-Cairo/master/eo_cairo-ud-test.conllu",
5052        entity_types: ["PER", "LOC", "ORG"],
5053        language: "eo",
5054        domain: "constructed_language",
5055        license: "CC-BY-SA-4.0",
5056        citation: "Wennerberg (2020)",
5057        paper_url: "https://universaldependencies.org/eo/index.html",
5058        year: 2020,
5059        format: "CoNLLU",
5060        size_hint: "2 documents (Manifesto, Cairo sample)",
5061        notes: "Small treebank illustrating UD annotation for Esperanto; no NER layer but suitable base for annotation",
5062        splits: ["test"],
5063        tasks: ["ner"],
5064        categories: [ner, constructed, low_resource],
5065    },
5066    KlingonEffectLID {
5067        name: "Klingon Effect LID",
5068        description: "Language ID dataset with 11 constructed languages. 14.2M sentences across 101 languages.",
5069        url: "https://wmdqs.org/submissions-2025/19.pdf",
5070        entity_types: [],
5071        language: "mul",
5072        domain: "general",
5073        license: "Research",
5074        citation: "Moura et al. (2025)",
5075        paper_url: "https://wmdqs.org/submissions-2025/19.pdf",
5076        year: 2025,
5077        format: "Custom",
5078        size_hint: "14.2M sentences, 101 languages (11 constructed)",
5079        notes: "Shows constructed languages (Esperanto, Klingon, Ido, Interlingua) outperform natural languages in LID",
5080        splits: ["test"],
5081        tasks: ["classification"],
5082        categories: [constructed, multilingual, adversarial],
5083    },
5084    LojbanTatoeba {
5085        name: "Lojban Tatoeba",
5086        description: "Lojban-English sentence pairs from Tatoeba. Logical language translation corpus.",
5087        url: "https://tatoeba.org/en/downloads",
5088        entity_types: [],
5089        language: "jbo",
5090        domain: "constructed_language",
5091        license: "CC-BY-2.0",
5092        citation: "Tatoeba Project (2024)",
5093        year: 2024,
5094        format: "TSV",
5095        size_hint: "~3k sentence pairs",
5096        notes: "Logical constructed language; predicate logic syntax; useful for semantic parsing studies",
5097        splits: ["all"],
5098        tasks: ["mt"],
5099        categories: [constructed, low_resource],
5100    },
5101    InterlingueWikipedia {
5102        name: "Interlingue Wikipedia",
5103        description: "Interlingue (Occidental) Wikipedia text corpus. International auxiliary language.",
5104        url: "https://dumps.wikimedia.org/iewiki/",
5105        entity_types: [],
5106        language: "ie",
5107        domain: "encyclopedia",
5108        license: "CC-BY-SA-4.0",
5109        citation: "Wikimedia (2024)",
5110        year: 2024,
5111        format: "XML",
5112        size_hint: "~4k articles",
5113        notes: "Western European vocabulary roots; naturalistic IAL; smaller than Esperanto Wikipedia",
5114        splits: ["all"],
5115        tasks: ["lm"],
5116        categories: [constructed, low_resource],
5117    },
5118    TokiPonaCorpus {
5119        name: "Toki Pona Corpus",
5120        description: "Toki Pona minimalist language corpus. 120-word language for semantic simplification.",
5121        url: "https://github.com/kilipan/toki-pona-corpus",
5122        entity_types: [],
5123        language: "tok",
5124        domain: "constructed_language",
5125        license: "CC0-1.0",
5126        citation: "Lang (2021)",
5127        year: 2021,
5128        format: "TXT",
5129        size_hint: "~50k tokens",
5130        notes: "Philosophical constructed language; only 120 words; tests compositional semantics",
5131        splits: ["all"],
5132        tasks: ["lm"],
5133        categories: [constructed, low_resource],
5134    },
5135
5136    // =========================================================================
5137    // Recent 2024-2025 Benchmarks
5138    // =========================================================================
5139    OmniNER2025 {
5140        name: "OmniNER2025",
5141        description: "Diverse fine-grained Chinese NER covering informal text (social media, forums). Large-scale benchmark for modern NER models.",
5142        url: "",
5143        entity_types: ["PER", "LOC", "ORG", "GPE", "FAC", "PRODUCT", "EVENT"],
5144        language: "zh",
5145        domain: "social_media",
5146        license: "Research",
5147        citation: "OmniNER Team (2025)",
5148        paper_url: "https://dl.acm.org/doi/10.1145/3726302.3730048",
5149        year: 2025,
5150        format: "JSONL",
5151        size_hint: "Large-scale Chinese informal text",
5152        notes: "2025 benchmark for fine-grained Chinese NER; expands beyond formal text; tests LLM capabilities",
5153        splits: ["train", "dev", "test"],
5154        tasks: ["ner"],
5155        access_status: NotYetReleased,
5156        categories: [ner, social_media, multilingual],
5157    },
5158    LegalCore {
5159        name: "LegalCore",
5160        description: "Event coreference in long legal documents. Long-distance cross-section event links.",
5161        url: "",
5162        entity_types: ["EVENT", "PARTICIPANT", "TIME"],
5163        language: "en",
5164        domain: "legal",
5165        license: "Research",
5166        citation: "ACL Findings (2025)",
5167        paper_url: "https://aclanthology.org/2025.findings-acl.1284.pdf",
5168        year: 2025,
5169        format: "JSONL",
5170        size_hint: "Long legal documents, largest tokens per document",
5171        notes: "ACL 2025; benchmarks Llama-3.1, Mistral, Qwen, GPT-4; LLMs underperform supervised baselines",
5172        splits: ["train", "dev", "test"],
5173        tasks: ["event_coref", "coref"],
5174        access_status: NotYetReleased,
5175        categories: [coref, event_coref, long_document, arcane_domain],
5176    },
5177    Zcoref {
5178        name: "Z-coref",
5179        description: "Joint coreference and zero-pronoun resolution. For languages with pro-drop (Chinese, Japanese, Korean).",
5180        url: "",
5181        entity_types: ["ZERO_PRONOUN", "ENTITY"],
5182        language: "mul",
5183        domain: "general",
5184        license: "Research",
5185        citation: "Z-coref Authors (2024)",
5186        paper_url: "https://arxiv.org/pdf/2504.05824",
5187        year: 2024,
5188        format: "CoNLL",
5189        size_hint: "Multi-language pro-drop coreference",
5190        notes: "Tests handling of dropped arguments; critical for CJK languages; zero anaphora resolution",
5191        splits: ["train", "dev", "test"],
5192        tasks: ["coref"],
5193        access_status: NotYetReleased,
5194        categories: [coref, multilingual, abstract_anaphora],
5195    },
5196    TikTalkCoref {
5197        name: "TikTalkCoref",
5198        description: "Chinese social media dialogue coreference. Person mentions in Douyin video comments with singleton handling.",
5199        url: "",
5200        entity_types: ["PER"],
5201        language: "zh",
5202        domain: "social_media",
5203        license: "Research",
5204        citation: "Li, Gong & Fu (2025)",
5205        paper_url: "https://arxiv.org/abs/2504.14321",
5206        year: 2025,
5207        format: "Custom",
5208        size_hint: "1,012 dialogues, 2,179 mentions, 1,435 clusters",
5209        notes: "First Chinese MCR dataset for social media. Maverick outperforms e2e-coref (65.5 vs 39.1 Avg.F1). High singleton rate: 44% pronouns, 34% proper names, 22% common nouns. Text-only portion; multimodal aspect out of scope.",
5210        splits: ["train", "dev", "test"],
5211        tasks: ["coref"],
5212        access_status: NotYetReleased,
5213        categories: [coref, dialogue, social_media],
5214    },
5215    MHERCL {
5216        name: "MHERCL",
5217        description: "Historical long-tail entity linking benchmark. Tests LLM behavior on rare/historical Wikidata entities.",
5218        url: "https://arxiv.org/html/2505.03473v1",
5219        entity_types: ["HISTORICAL_ENTITY"],
5220        language: "en",
5221        domain: "historical",
5222        license: "Research",
5223        citation: "MHERCL Authors (2025)",
5224        paper_url: "https://arxiv.org/html/2505.03473v1",
5225        year: 2025,
5226        format: "JSONL",
5227        size_hint: "Long-tail historical entities",
5228        notes: "v0.1; tests EL on niche historical entities; analyzes LLM behavior on rare entities",
5229        splits: ["test"],
5230        tasks: ["el", "entity_linking"],
5231        categories: [entity_linking, historical, adversarial],
5232    },
5233    SNOMEDChallenge {
5234        name: "SNOMED CT EL Challenge",
5235        description: "Clinical entity linking to SNOMED CT. From SNOMED International 2024 challenge.",
5236        url: "",
5237        entity_types: ["CLINICAL_CONCEPT"],
5238        language: "en",
5239        domain: "clinical",
5240        license: "Research",
5241        citation: "SNOMED International (2024)",
5242        paper_url: "https://www.snomed.org/news/snomed-international-announces-entity-linking-challenge-winners",
5243        year: 2024,
5244        format: "Custom",
5245        size_hint: "Clinical notes, SNOMED CT linked",
5246        notes: "2024 challenge dataset; SNOMED CT coded clinical text; benchmarks clinical EL systems",
5247        splits: ["train", "test"],
5248        tasks: ["el", "entity_linking"],
5249        access_status: Registration,
5250        categories: [entity_linking, clinical, biomedical],
5251    },
5252    ESCOSkillsEL {
5253        name: "ESCO Skills EL",
5254        description: "Entity linking for occupational skills to ESCO taxonomy. Job market domain, multilingual.",
5255        url: "",
5256        entity_types: ["SKILL"],
5257        language: "mul",
5258        domain: "general",
5259        license: "Research",
5260        citation: "EACL Findings (2024)",
5261        paper_url: "https://aclanthology.org/2024.findings-eacl.28/",
5262        year: 2024,
5263        format: "Custom",
5264        size_hint: "Skill mentions across multiple languages",
5265        notes: "Complements MELO; links skills (not occupations) to ESCO taxonomy; job posting text",
5266        splits: ["train", "test"],
5267        tasks: ["el", "entity_linking"],
5268        access_status: ContactAuthors,
5269        categories: [entity_linking, multilingual],
5270    },
5271
5272    // =========================================================================
5273    // Bioacoustics / Non-Human Communication
5274    // =========================================================================
5275    NatureLMAudio {
5276        name: "NatureLM-audio",
5277        description: "Foundation model training collection for bioacoustics. Multi-species audio-text pairs.",
5278        url: "https://github.com/earthspecies/naturelm-audio",
5279        entity_types: ["SPECIES", "CALL_TYPE", "BEHAVIOR"],
5280        language: "en",
5281        domain: "bioacoustics",
5282        license: "Research",
5283        citation: "NatureLM Team (2024)",
5284        paper_url: "https://arxiv.org/abs/2411.07186",
5285        year: 2024,
5286        format: "Custom",
5287        size_hint: "Multi-taxon audio-text pairs (birds, marine mammals, primates)",
5288        notes: "Bioacoustic foundation model data; paired audio-text descriptions; cross-taxa experiments",
5289        splits: ["train", "test"],
5290        tasks: ["classification", "captioning"],
5291        categories: [arcane_domain, multilingual],
5292    },
5293    BEANSZero {
5294        name: "BEANS-Zero",
5295        description: "Bioacoustics benchmark beyond species classification. Natural-language prompts for animal sounds.",
5296        url: "https://github.com/earthspecies/beans-zero",
5297        entity_types: ["SPECIES", "CALL_TYPE", "INDIVIDUAL"],
5298        language: "en",
5299        domain: "bioacoustics",
5300        license: "Research",
5301        citation: "NatureLM Team (2024)",
5302        paper_url: "https://arxiv.org/abs/2411.07186",
5303        year: 2024,
5304        format: "Custom",
5305        notes: "Zero-shot transfer to unseen taxa; captioning, retrieval, instruction-following on animal vocalizations",
5306        splits: ["test"],
5307        tasks: ["classification", "retrieval"],
5308        categories: [arcane_domain, adversarial],
5309    },
5310
5311    // =========================================================================
5312    // Chemical / Materials Science NER
5313    // =========================================================================
5314    NLMChem {
5315        name: "NLM-Chem",
5316        description: "Chemical entity recognition and normalization. Full-text PMC articles with MeSH identifiers.",
5317        url: "https://ftp.ncbi.nlm.nih.gov/pub/lu/NLM-Chem/",
5318        entity_types: ["CHEMICAL", "DRUG"],
5319        language: "en",
5320        domain: "biomedical",
5321        license: "Public",
5322        citation: "Islamaj et al. (2021)",
5323        paper_url: "https://academic.oup.com/database/article/doi/10.1093/database/baac102/6858529",
5324        year: 2021,
5325        format: "BRAT",
5326        size_hint: "~150 full-text articles, ~38k annotations",
5327        notes: "Gold-standard chemical NER; normalized to MeSH; used for BioCreative VII",
5328        splits: ["train", "test"],
5329        tasks: ["ner", "el"],
5330        categories: [ner, biomedical, entity_linking],
5331    },
5332    CHEMDNER {
5333        name: "CHEMDNER",
5334        description: "Chemical compound and drug name recognition in scientific text.",
5335        url: "https://biocreative.bioinformatics.udel.edu/tasks/biocreative-iv/chemdner/",
5336        entity_types: ["CHEMICAL", "DRUG", "ABBREVIATION"],
5337        language: "en",
5338        domain: "biomedical",
5339        license: "Research",
5340        citation: "Krallinger et al. (2015)",
5341        paper_url: "https://jcheminf.biomedcentral.com/articles/10.1186/1758-2946-7-S1-S2",
5342        year: 2015,
5343        format: "BIO",
5344        size_hint: "~10k abstracts",
5345        notes: "BioCreative IV shared task; abstract-level chemical NER; foundational chemistry benchmark",
5346        splits: ["train", "dev", "test"],
5347        tasks: ["ner"],
5348        categories: [ner, biomedical],
5349    },
5350
5351    // =========================================================================
5352    // Temporal / Event NER
5353    // =========================================================================
5354    TimeBankDense {
5355        name: "TimeBank-Dense",
5356        description: "Dense temporal relation annotation. Re-annotation of TimeBank with more consistent TLINK labels.",
5357        url: "https://github.com/bethard/timebank-dense",
5358        entity_types: ["EVENT", "TIMEX3"],
5359        language: "en",
5360        domain: "news",
5361        license: "Research",
5362        citation: "Chambers et al. (2014)",
5363        paper_url: "https://aclanthology.org/Q14-1002/",
5364        year: 2014,
5365        format: "TimeML",
5366        size_hint: "~36 documents, dense annotation",
5367        notes: "Event-event temporal relations; BEFORE/AFTER/INCLUDES/VAGUE; timeline construction benchmark",
5368        splits: ["train", "dev", "test"],
5369        tasks: ["temporal", "event_coref"],
5370        categories: [ner, event_coref],
5371    },
5372
5373    // =========================================================================
5374    // Multimodal NER
5375    // =========================================================================
5376    TwitterGMNER {
5377        name: "Twitter-GMNER",
5378        description: "Grounded Multimodal NER. Entities linked to bounding boxes in social media images.",
5379        url: "https://github.com/JinYuanLi0012/RiVEG",
5380        entity_types: ["PER", "LOC", "ORG", "MISC"],
5381        language: "en",
5382        domain: "social_media",
5383        license: "CC-BY-4.0",
5384        citation: "Li et al. (2024)",
5385        paper_url: "https://aclanthology.org/2024.findings-acl.58/",
5386        year: 2024,
5387        format: "JSONL",
5388        size_hint: "~8k tweets with images",
5389        notes: "Entity mentions grounded to image regions; visual-textual entity alignment",
5390        splits: ["train", "dev", "test"],
5391        tasks: ["ner", "grounding"],
5392        categories: [ner, social_media, arcane_domain],
5393    },
5394    MNERMI {
5395        name: "MNER-MI",
5396        description: "Multimodal NER with Multiple Images. Social media posts with multiple image context.",
5397        url: "https://github.com/NUSTM/MNER-MI",
5398        entity_types: ["PER", "LOC", "ORG", "MISC"],
5399        language: "en",
5400        domain: "social_media",
5401        license: "CC-BY-4.0",
5402        citation: "Wang et al. (2024)",
5403        paper_url: "https://aclanthology.org/2024.lrec-main.1001/",
5404        year: 2024,
5405        format: "JSONL",
5406        size_hint: "~5k tweets with multiple images",
5407        notes: "Multi-image context improves NER; temporal-prompt model baseline; LREC-COLING 2024",
5408        splits: ["train", "dev", "test"],
5409        tasks: ["ner"],
5410        categories: [ner, social_media],
5411    },
5412    TwoMNER {
5413        name: "2M-NER",
5414        description: "Multilingual Multimodal NER. Four languages with text-image pairs.",
5415        url: "https://github.com/Alibaba-NLP/2M-NER",
5416        entity_types: ["PER", "LOC", "ORG", "MISC"],
5417        language: "mul",
5418        domain: "social_media",
5419        license: "Apache-2.0",
5420        citation: "Liu et al. (2024)",
5421        paper_url: "https://arxiv.org/abs/2404.17122",
5422        year: 2024,
5423        format: "JSONL",
5424        size_hint: "~20k examples, 4 languages (EN, FR, DE, ES)",
5425        notes: "Contrastive text-image alignment; multilingual multimodal NER benchmark",
5426        splits: ["train", "dev", "test"],
5427        tasks: ["ner"],
5428        categories: [ner, multilingual, social_media],
5429    },
5430
5431    // =========================================================================
5432    // Mathematical / Scientific NER
5433    // =========================================================================
5434    MathEntities {
5435        name: "Mathematical Entities",
5436        description: "Terminology and definition extraction from mathematical text. Category theory corpora.",
5437        url: "https://github.com/dmazzei/mathematical-entities",
5438        entity_types: ["TERM", "DEFINITION", "THEOREM"],
5439        language: "en",
5440        domain: "scientific",
5441        license: "CC-BY-4.0",
5442        citation: "Mazzei et al. (2024)",
5443        paper_url: "https://aclanthology.org/2024.lrec-main.966/",
5444        year: 2024,
5445        format: "LaTeX",
5446        size_hint: "~3 corpora in category theory",
5447        notes: "LaTeX source preservation; math-aware NER; entity linking to Wikidata/nLab",
5448        splits: ["train", "test"],
5449        tasks: ["ner", "el"],
5450        categories: [ner, arcane_domain, entity_linking],
5451    },
5452    SciERC {
5453        name: "SciERC",
5454        description: "Scientific information extraction from AI/ML papers. Nested entities and relations.",
5455        url: "https://nlp.cs.washington.edu/sciIE/",
5456        entity_types: ["TASK", "METHOD", "METRIC", "MATERIAL", "GENERIC", "OTHER"],
5457        language: "en",
5458        domain: "scientific",
5459        license: "CC-BY-4.0",
5460        citation: "Luan et al. (2018)",
5461        paper_url: "https://aclanthology.org/D18-1360/",
5462        year: 2018,
5463        format: "JSONL",
5464        size_hint: "~500 abstracts",
5465        notes: "Canonical scientific NER + relation extraction; nested entities common",
5466        splits: ["train", "dev", "test"],
5467        tasks: ["ner", "re"],
5468        categories: [ner, nested_ner, relation_extraction, arcane_domain],
5469    },
5470
5471    // =========================================================================
5472    // Geospatial / Toponym NER
5473    // =========================================================================
5474    GeoWebNews {
5475        name: "GeoWebNews",
5476        description: "Geoparsing benchmark from web news. Toponyms with geocoding coordinates.",
5477        url: "https://github.com/milangritta/GeoWebNews",
5478        entity_types: ["LOC", "GPE", "FACILITY"],
5479        language: "en",
5480        domain: "news",
5481        license: "CC-BY-4.0",
5482        citation: "Gritta et al. (2020)",
5483        paper_url: "https://aclanthology.org/2020.lrec-1.381/",
5484        year: 2020,
5485        format: "CoNLL",
5486        size_hint: "~4k documents",
5487        notes: "Toponym recognition + resolution; GeoNames linking; web news geoparsing",
5488        splits: ["train", "dev", "test"],
5489        tasks: ["ner", "el"],
5490        categories: [ner, entity_linking],
5491    },
5492    LGL {
5493        name: "LGL",
5494        description: "Local-Global Lexicon for toponym disambiguation. News articles with geolocation.",
5495        url: "https://github.com/wikipedia2vec/wikipedia2vec",
5496        entity_types: ["LOC"],
5497        language: "en",
5498        domain: "news",
5499        license: "MIT",
5500        citation: "Lieberman et al. (2010)",
5501        year: 2010,
5502        format: "Custom",
5503        size_hint: "~5.8k place references",
5504        notes: "Toponym disambiguation benchmark; local vs global context for geolocation",
5505        splits: ["all"],
5506        tasks: ["ner", "el"],
5507        categories: [ner, entity_linking],
5508    },
5509
5510    // =========================================================================
5511    // Procedural / Recipe NER
5512    // =========================================================================
5513    TASTEset {
5514        name: "TASTEset",
5515        description: "Recipe ingredient NER. 700 annotated recipe ingredient lists with 9 entity classes.",
5516        url: "https://github.com/taisti/TASTEset",
5517        entity_types: ["INGREDIENT", "QUANTITY", "UNIT", "STATE", "SIZE", "TEMP"],
5518        language: "en",
5519        domain: "food",
5520        license: "CC-BY-4.0",
5521        citation: "TASTEset Team (2023)",
5522        year: 2023,
5523        format: "BIO",
5524        size_hint: "~700 ingredient lists",
5525        notes: "Recipe NER benchmark; BIO/BILOU conversion utilities; BERT model pipeline",
5526        splits: ["train", "test"],
5527        tasks: ["ner"],
5528        categories: [ner, arcane_domain],
5529    },
5530    RecipeNER {
5531        name: "Recipe NER",
5532        description: "Deep learning recipe NER. Multi-scale datasets with ingredient and instruction entities.",
5533        url: "https://github.com/cosylabiiit/recipe-ner",
5534        entity_types: ["INGREDIENT", "QUANTITY", "UNIT", "PROCESS", "UTENSIL", "TEMP"],
5535        language: "en",
5536        domain: "food",
5537        license: "MIT",
5538        citation: "Deepgram (2024)",
5539        paper_url: "https://aclanthology.org/2024.lrec-main.406/",
5540        year: 2024,
5541        format: "BIO",
5542        size_hint: "~88k phrases (6.6k manual, 26k augmented, 88k machine)",
5543        notes: "Three-tier dataset; baseline pipelines exist (e.g., spaCy transformer); recipe IE pipeline",
5544        splits: ["train", "test"],
5545        tasks: ["ner"],
5546        categories: [ner, arcane_domain],
5547    },
5548
5549    // =========================================================================
5550    // Code / Software Entity Recognition
5551    // =========================================================================
5552    CodeSearchNet {
5553        name: "CodeSearchNet",
5554        description: "Code understanding benchmark. Function documentation and code search across 6 languages.",
5555        url: "https://github.com/github/CodeSearchNet",
5556        entity_types: ["FUNCTION", "CLASS", "VARIABLE", "MODULE"],
5557        language: "mul",
5558        domain: "code",
5559        license: "MIT",
5560        citation: "Husain et al. (2019)",
5561        paper_url: "https://arxiv.org/abs/1909.09436",
5562        year: 2019,
5563        format: "JSONL",
5564        size_hint: "~2M functions across 6 programming languages",
5565        notes: "Code-docstring pairs; Python, Java, Go, PHP, JavaScript, Ruby; foundation for code NER",
5566        splits: ["train", "dev", "test"],
5567        tasks: ["retrieval"],
5568        categories: [arcane_domain, multilingual],
5569    },
5570
5571    // =========================================================================
5572    // Fictional / Literary Entity Recognition
5573    // =========================================================================
5574    FABLE {
5575        name: "FABLE",
5576        description: "Fiction Adapted BERT for Literary Entities. DeBERTa-based NER for narrative fiction.",
5577        url: "https://huggingface.co/DeBERTa-literary-entities",
5578        entity_types: ["CHARACTER", "LOCATION", "ORGANIZATION", "ARTIFACT"],
5579        language: "en",
5580        domain: "fiction",
5581        license: "MIT",
5582        citation: "FABLE Team (2024)",
5583        year: 2024,
5584        format: "Custom",
5585        notes: "Literary NER model; targets invented names in fantasy/SF; trained on narrative fiction",
5586        categories: [ner, literary],
5587    },
5588    ELGold {
5589        name: "ELGold",
5590        description: "Gold-standard multi-genre Polish NER+EL. Includes fiction, press, blogs.",
5591        url: "https://mostwiedzy.pl/en/open-research-data/elgold-gold-standard-multi-genre-dataset",
5592        entity_types: ["PER", "LOC", "ORG", "MISC"],
5593        language: "pl",
5594        domain: "general",
5595        license: "CC-BY-4.0",
5596        citation: "Pokrywka et al. (2025)",
5597        paper_url: "https://www.nature.com/articles/s41597-025-05274-4",
5598        year: 2025,
5599        format: "JSONL",
5600        notes: "Multi-genre including fiction; Wikipedia-linked; Polish language",
5601        splits: ["train", "test"],
5602        tasks: ["ner", "el"],
5603        categories: [ner, entity_linking, literary, multilingual],
5604    },
5605
5606    // =========================================================================
5607    // Streaming / Temporal Entity Evolution
5608    // =========================================================================
5609    StreamingCDCoref {
5610        name: "Streaming CD-Coref",
5611        description: "Streaming cross-document entity coreference protocol. News domain streaming evaluation.",
5612        url: "https://www.cs.jhu.edu/~mdredze/publications/streaming_coref_coling.pdf",
5613        entity_types: ["PER", "ORG", "LOC"],
5614        language: "en",
5615        domain: "news",
5616        license: "Research",
5617        citation: "Dredze et al. (2010)",
5618        paper_url: "https://aclanthology.org/C10-1032/",
5619        year: 2010,
5620        format: "Custom",
5621        notes: "Canonical streaming entity clustering; O(n) single-pass; evolving cluster representations",
5622        categories: [coref, long_document],
5623    },
5624    TemDocRED {
5625        name: "Tem-DocRED",
5626        description: "Temporal document-level relation extraction. Converts static triples to temporal quadruples.",
5627        url: "https://github.com/THUDM/Tem-DocRED",
5628        entity_types: ["PER", "ORG", "LOC", "TIME"],
5629        language: "en",
5630        domain: "wikipedia",
5631        license: "MIT",
5632        citation: "Zhang et al. (2024)",
5633        paper_url: "https://pmc.ncbi.nlm.nih.gov/articles/PMC12048500/",
5634        year: 2024,
5635        format: "JSONL",
5636        size_hint: "Re-DocRED + temporal timestamps",
5637        notes: "Temporal KG construction from documents; LLM + pattern mining for timestamp inference",
5638        splits: ["train", "dev", "test"],
5639        tasks: ["re", "temporal"],
5640        categories: [relation_extraction, long_document],
5641    },
5642
5643    // =========================================================================
5644    // Scientific / Concept Coreference
5645    // =========================================================================
5646    SciCoRadar {
5647        name: "SciCo-Radar",
5648        description: "Scientific cross-document concept coreference. Dynamic definitions via LLM retrieval.",
5649        url: "https://github.com/allenai/scico-radar",
5650        entity_types: ["CONCEPT", "METHOD", "TASK", "MATERIAL"],
5651        language: "en",
5652        domain: "scientific",
5653        license: "Apache-2.0",
5654        citation: "Wadden et al. (2024)",
5655        paper_url: "https://arxiv.org/abs/2409.15113",
5656        year: 2024,
5657        format: "JSONL",
5658        notes: "Cross-doc concept coref with hierarchy; LLM-generated relational definitions improve F1",
5659        splits: ["train", "dev", "test"],
5660        tasks: ["coref"],
5661        categories: [coref, arcane_domain],
5662    },
5663
5664    // =========================================================================
5665    // Process Mining / Event KGs
5666    // =========================================================================
5667    EventKGDrift {
5668        name: "Event KG Drift",
5669        description: "Multi-perspective concept drift detection on event knowledge graphs.",
5670        url: "https://research.tue.nl/files/349781334/978-3-031-61057-8_9.pdf",
5671        entity_types: ["EVENT", "CASE", "ACTOR", "TIME"],
5672        language: "en",
5673        domain: "evaluation",
5674        license: "Research",
5675        citation: "TU Eindhoven (2024)",
5676        year: 2024,
5677        format: "Custom",
5678        notes: "Actor-centric features give 2.6x stronger drift signals; temporal graph drift on EKGs",
5679        categories: [event_coref, long_document, arcane_domain],
5680    },
5681
5682    // =========================================================================
5683    // Semantic Drift / KG Curation
5684    // =========================================================================
5685    WikidataDrift {
5686        name: "Wikidata Semantic Drift",
5687        description: "Semantic drift detection in Wikidata. LLM-based classification inconsistency detection.",
5688        url: "https://arxiv.org/abs/2511.04926",
5689        entity_types: [],
5690        language: "mul",
5691        domain: "encyclopedia",
5692        license: "CC0-1.0",
5693        citation: "Wikidata Drift Team (2024)",
5694        paper_url: "https://arxiv.org/abs/2511.04926",
5695        year: 2024,
5696        format: "Custom",
5697        notes: "Multi-dimensional semantic risk model; drift threshold ~0.6; continuous KG curation",
5698        categories: [entity_linking, adversarial],
5699    },
5700
5701    // =========================================================================
5702    // Additional Legacy Datasets (from loader.rs)
5703    // =========================================================================
5704
5705    AIDA {
5706        name: "AIDA-CoNLL (v2)",
5707        description: "Entity linking to Wikipedia. CoNLL-YAGO dataset for named entity disambiguation.",
5708        url: "https://www.mpi-inf.mpg.de/departments/databases-and-information-systems/research/ambiverse-nlu/aida/downloads",
5709        entity_types: ["PER", "LOC", "ORG", "MISC"],
5710        language: "en",
5711        domain: "news",
5712        license: "Research",
5713        citation: "Hoffart et al. (2011)",
5714        paper_url: "https://aclanthology.org/D11-1072/",
5715        year: 2011,
5716        format: "CoNLL",
5717        notes: "Entity linking benchmark; links CoNLL-2003 mentions to YAGO/Wikipedia",
5718        categories: [entity_linking],
5719    },
5720
5721    // AIONER: Correct GitHub org is 'ncbi', not 'AIONER'
5722    AIONER {
5723        name: "AIONER",
5724        description: "All-in-one biomedical NER. Unified biomedical entity extraction model.",
5725        url: "https://github.com/ncbi/AIONER",
5726        entity_types: ["Gene", "Disease", "Chemical", "Species"],
5727        language: "en",
5728        domain: "biomedical",
5729        license: "Research",
5730        citation: "Luo et al. (2023)",
5731        year: 2023,
5732        format: "JSONL",
5733        notes: "Unified model for multiple biomedical entity types",
5734        categories: [ner, biomedical],
5735    },
5736
5737    AISHELLNER {
5738        name: "AISHELL-NER",
5739        description: "Chinese speech NER from AISHELL corpus. Named entities in Mandarin speech.",
5740        url: "https://www.aishelltech.com/aishell_2",
5741        entity_types: ["PER", "LOC", "ORG"],
5742        language: "zh",
5743        domain: "speech",
5744        license: "Research",
5745        citation: "AISHELL Foundation (2017)",
5746        year: 2017,
5747        format: "Custom",
5748        notes: "Speech transcription NER; tests robustness to ASR errors",
5749        categories: [ner, speech],
5750    },
5751
5752    AstroNER {
5753        name: "AstroNER",
5754        description: "Astronomy named entity recognition. Celestial objects and astronomical concepts.",
5755        url: "https://github.com/astronomical-ner/AstroNER",
5756        entity_types: ["CelestialObject", "Instrument", "Mission", "Phenomenon"],
5757        language: "en",
5758        domain: "astrophysics",
5759        license: "CC-BY-4.0",
5760        citation: "NASA ADS Team",
5761        year: 2022,
5762        format: "CoNLL",
5763        notes: "Domain-specific NER for astronomy literature",
5764        categories: [ner, arcane_domain],
5765    },
5766
5767    B2NERD {
5768        name: "B2NERD",
5769        description: "Billion-scale news NER dataset. Large-scale distantly supervised NER.",
5770        url: "https://huggingface.co/datasets/Umean/B2NERD",
5771        entity_types: ["PER", "LOC", "ORG", "MISC"],
5772        language: "en",
5773        domain: "news",
5774        license: "CC-BY-4.0",
5775        citation: "Umean (2023)",
5776        year: 2023,
5777        format: "JSONL",
5778        notes: "Large-scale silver-standard NER; useful for pre-training",
5779        categories: [ner],
5780    },
5781
5782    BioMNER {
5783        name: "BioMNER",
5784        description: "Biomedical method NER. Scientific methods and techniques in biomedical text.",
5785        url: "https://huggingface.co/datasets/tner/bionlp2004",
5786        entity_types: ["Method", "Technique", "Protocol"],
5787        language: "en",
5788        domain: "biomedical",
5789        license: "Research",
5790        citation: "BioNLP (2004)",
5791        year: 2004,
5792        format: "BIO",
5793        notes: "Biomedical methodology extraction; from BioNLP shared task",
5794        categories: [ner, biomedical],
5795    },
5796
5797    LegNER {
5798        name: "LegNER",
5799        description: "Legal domain NER. Named entities in legal documents and court opinions.",
5800        url: "https://github.com/Liquid-Legal-Institute/LegalBench",
5801        entity_types: ["Court", "Judge", "Statute", "Party", "Date"],
5802        language: "en",
5803        domain: "legal",
5804        license: "CC-BY-4.0",
5805        citation: "Legal NLP Team (2021)",
5806        year: 2021,
5807        format: "CoNLL",
5808        notes: "Legal domain specialization; court documents and statutes",
5809        categories: [ner],
5810    },
5811
5812    OpenNER {
5813        name: "OpenNER 1.0",
5814        description: "Open domain NER benchmark. Broad coverage across multiple domains.",
5815        url: "https://huggingface.co/datasets/yongsun-yoon/open-ner-english",
5816        entity_types: ["PER", "LOC", "ORG", "EVENT", "PRODUCT"],
5817        language: "en",
5818        domain: "mixed",
5819        license: "CC-BY-SA-4.0",
5820        citation: "Babelscape (2023)",
5821        year: 2023,
5822        format: "JSONL",
5823        notes: "Community mirror; open-domain NER benchmark",
5824        tasks: ["ner"],
5825        hf_id: "yongsun-yoon/open-ner-english",
5826        access_status: HuggingFace,
5827        categories: [ner],
5828    },
5829
5830    SciNER {
5831        name: "SciNER",
5832        description: "Scientific literature NER. Entities from scientific papers across disciplines.",
5833        url: "https://github.com/allenai/sciner",
5834        entity_types: ["Method", "Task", "Dataset", "Metric", "Material"],
5835        language: "en",
5836        domain: "scientific",
5837        license: "Apache-2.0",
5838        citation: "Allen AI (2022)",
5839        year: 2022,
5840        format: "JSONL",
5841        notes: "Scientific entities; paper abstracts and methods sections",
5842        categories: [ner],
5843    },
5844
5845    FinanceNER {
5846        name: "FinanceNER",
5847        description: "Financial domain NER. Named entities from financial documents and news.",
5848        url: "https://github.com/nlpaueb/finer",
5849        entity_types: ["Company", "Stock", "Currency", "Amount", "Date"],
5850        language: "en",
5851        domain: "financial",
5852        license: "Research",
5853        citation: "FinNLP (2020)",
5854        year: 2020,
5855        format: "CoNLL",
5856        notes: "Financial entity extraction; SEC filings and news",
5857        categories: [ner],
5858    },
5859
5860    TechNER {
5861        name: "TechNER",
5862        description: "Technology domain NER. Software, hardware, and technical entities.",
5863        url: "https://github.com/techner/techner",
5864        entity_types: ["Software", "Hardware", "Company", "Version", "Language"],
5865        language: "en",
5866        domain: "code",
5867        license: "MIT",
5868        citation: "TechNER Team (2021)",
5869        year: 2021,
5870        format: "CoNLL",
5871        notes: "Technology entities; Stack Overflow and documentation",
5872        categories: [ner],
5873    },
5874
5875    FictionNER750M {
5876        name: "FictionNER-750M",
5877        description: "Fiction NER at scale. Named entities from 750M tokens of fiction text.",
5878        url: "https://huggingface.co/datasets/SaladTechnologies/fiction-ner-750m",
5879        entity_types: ["Character", "Location", "Object", "Organization"],
5880        language: "en",
5881        domain: "fiction",
5882        license: "CC-BY-4.0",
5883        citation: "Fiction NER Team (2023)",
5884        year: 2023,
5885        format: "JSONL",
5886        notes: "Large-scale fiction NER; public on HuggingFace",
5887        tasks: ["ner"],
5888        hf_id: "SaladTechnologies/fiction-ner-750m",
5889        access_status: HuggingFace,
5890        categories: [ner, literary],
5891    },
5892
5893    CharacterCodex {
5894        name: "Character Codex",
5895        description: "Character entity recognition in fiction. Literary character identification.",
5896        url: "https://github.com/character-codex/character-codex",
5897        entity_types: ["Character", "Alias", "Role"],
5898        language: "en",
5899        domain: "fiction",
5900        license: "CC-BY-4.0",
5901        citation: "Character Codex Team (2022)",
5902        year: 2022,
5903        format: "JSONL",
5904        notes: "Character tracking across narrative; aliases and roles",
5905        categories: [ner, literary],
5906    },
5907
5908    MUC6 {
5909        name: "MUC-6",
5910        description: "Message Understanding Conference 6. Seminal NER and coreference dataset.",
5911        url: "https://catalog.ldc.upenn.edu/LDC2003T13",
5912        entity_types: ["ENAMEX", "TIMEX", "NUMEX"],
5913        language: "en",
5914        domain: "news",
5915        license: "LDC",
5916        citation: "Grishman & Sundheim (1996)",
5917        paper_url: "https://aclanthology.org/C96-1079/",
5918        year: 1996,
5919        format: "SGML",
5920        notes: "Historically significant; established NER evaluation paradigm",
5921        categories: [ner, historical],
5922    },
5923
5924    MUC7 {
5925        name: "MUC-7",
5926        description: "Message Understanding Conference 7. Expanded NE types from MUC-6.",
5927        url: "https://catalog.ldc.upenn.edu/LDC2001T02",
5928        entity_types: ["ENAMEX", "TIMEX", "NUMEX"],
5929        language: "en",
5930        domain: "news",
5931        license: "LDC",
5932        citation: "Chinchor (1998)",
5933        paper_url: "https://aclanthology.org/M98-1002/",
5934        year: 1998,
5935        format: "SGML",
5936        notes: "Refined MUC-6 guidelines; includes satellite launch texts",
5937        categories: [ner, historical],
5938    },
5939
5940    OntoNotes50 {
5941        name: "OntoNotes 5.0",
5942        description: "OntoNotes Release 5.0. Multi-genre corpus with NER, coref, and more.",
5943        url: "https://catalog.ldc.upenn.edu/LDC2013T19",
5944        entity_types: ["PER", "ORG", "GPE", "LOC", "FAC", "NORP", "EVENT", "WORK_OF_ART", "LAW", "LANGUAGE", "DATE", "TIME", "PERCENT", "MONEY", "QUANTITY", "ORDINAL", "CARDINAL"],
5945        language: "en",
5946        domain: "mixed",
5947        license: "LDC",
5948        citation: "Weischedel et al. (2013)",
5949        paper_url: "https://catalog.ldc.upenn.edu/docs/LDC2013T19/OntoNotes-Release-5.0.pdf",
5950        year: 2013,
5951        format: "CoNLL",
5952        annotation_scheme: "CoNLLCoref",
5953        size_hint: "~2.9M words across genres",
5954        notes: "Gold standard for multiple NLP tasks; WSJ, broadcast, web, telephone",
5955        categories: [ner, coref],
5956    },
5957
5958    GUM {
5959        name: "GUM",
5960        description: "Georgetown University Multilayer corpus. Rich annotation across 12 genres.",
5961        url: "https://github.com/amir-zeldes/gum",
5962        entity_types: ["person", "place", "organization", "time", "event"],
5963        language: "en",
5964        domain: "mixed",
5965        license: "CC-BY-4.0",
5966        citation: "Zeldes (2017)",
5967        paper_url: "https://aclanthology.org/W17-0809/",
5968        year: 2017,
5969        format: "CoNLL",
5970        size_hint: "~200k tokens, 12 genres",
5971        notes: "Multi-layer annotation; coreference, RST, entities",
5972        categories: [ner, coref],
5973    },
5974
5975    TACKBP {
5976        name: "TAC-KBP",
5977        description: "TAC Knowledge Base Population. Entity linking and slot filling benchmark.",
5978        url: "https://tac.nist.gov/",
5979        entity_types: ["PER", "ORG", "GPE"],
5980        language: "en",
5981        domain: "news",
5982        license: "LDC",
5983        citation: "Ji et al. (2010)",
5984        paper_url: "https://aclanthology.org/C10-1058/",
5985        year: 2010,
5986        format: "Custom",
5987        notes: "Entity linking to Wikipedia/KB; slot filling for attributes",
5988        categories: [entity_linking],
5989    },
5990
5991    HAREM {
5992        name: "HAREM",
5993        description: "Portuguese NER evaluation. First and Second HAREM conferences.",
5994        url: "https://www.linguateca.pt/HAREM/",
5995        entity_types: ["PESSOA", "LOCAL", "ORGANIZACAO", "TEMPO", "VALOR"],
5996        language: "pt",
5997        domain: "news",
5998        license: "Research",
5999        citation: "Santos et al. (2006)",
6000        paper_url: "https://www.linguateca.pt/HAREM/",
6001        year: 2006,
6002        format: "SGML",
6003        notes: "Portuguese NER benchmark; morphologically rich language",
6004        categories: [ner, multilingual],
6005    },
6006
6007    GunViolenceCorpus {
6008        name: "Gun Violence Corpus (v2)",
6009        description: "Gun violence event extraction. Named entities and events from news.",
6010        url: "https://github.com/gun-violence-corpus/gvc",
6011        entity_types: ["Shooter", "Victim", "Weapon", "Location", "Date"],
6012        language: "en",
6013        domain: "news",
6014        license: "CC-BY-4.0",
6015        citation: "Pavlick et al. (2016)",
6016        year: 2016,
6017        format: "Custom",
6018        notes: "Event extraction; sensitive domain requiring careful handling",
6019        categories: [ner, event_coref],
6020    },
6021
6022    // =========================================================================
6023    // Event Extraction (Trigger + Argument)
6024    // =========================================================================
6025    // Note: anno has event extraction capability via EventExtractor (lexicon-based + GLiNER)
6026    // These datasets support the Task::EventExtraction capability
6027
6028    MAVEN {
6029        name: "MAVEN",
6030        description: "Massive general-domain event detection. 168 event types from Wikipedia, 4x larger than ACE.",
6031        url: "https://github.com/THU-KEG/MAVEN-dataset",
6032        entity_types: ["EVENT_TRIGGER"],  // 168 fine-grained event types
6033        language: "en",
6034        domain: "wikipedia",
6035        license: "MIT",
6036        citation: "Wang et al. (2020)",
6037        paper_url: "https://aclanthology.org/2020.emnlp-main.129/",
6038        year: 2020,
6039        format: "JSONL",
6040        annotation_scheme: "Trigger-based",
6041        size_hint: "~118k trigger instances, 4,480 documents, 168 event types",
6042        notes: "EMNLP 2020; largest general-domain ED dataset; CodaLab leaderboard available; Tsinghua Cloud/Google Drive download",
6043        splits: ["train", "valid", "test"],
6044        tasks: ["event_extraction"],
6045        access_status: Public,
6046        categories: [ner],  // Event triggers are span-based like NER
6047    },
6048
6049    MAVENArg {
6050        name: "MAVEN-ARG",
6051        description: "MAVEN extended with event arguments and relations. Complete event extraction benchmark.",
6052        url: "https://github.com/THU-KEG/MAVEN-Argument",
6053        entity_types: ["EVENT_TRIGGER", "EVENT_ARGUMENT", "EVENT_RELATION"],
6054        language: "en",
6055        domain: "wikipedia",
6056        license: "MIT",
6057        citation: "Wang et al. (2024)",
6058        paper_url: "https://aclanthology.org/2024.acl-long.224/",
6059        year: 2024,
6060        format: "JSONL",
6061        annotation_scheme: "Trigger-Argument",
6062        size_hint: "~98k argument annotations, ~21k relations",
6063        notes: "ACL 2024; builds on MAVEN; supports ED + EAE + ERE tasks; all-in-one event understanding",
6064        splits: ["train", "valid", "test"],
6065        tasks: ["event_extraction", "relation_extraction"],
6066        access_status: Public,
6067        categories: [ner, relation_extraction],
6068    },
6069
6070    CASIE {
6071        name: "CASIE",
6072        description: "Cybersecurity event extraction. Attack patterns, vulnerabilities, malware events.",
6073        url: "https://github.com/Ebiquity/CASIE",
6074        entity_types: ["Attack-Pattern", "Vulnerability", "Data-Breach", "Malware", "Patch"],
6075        language: "en",
6076        domain: "cybersecurity",
6077        license: "CC-BY-4.0",
6078        citation: "Satyapanich et al. (2020)",
6079        paper_url: "https://aclanthology.org/2020.case-1.12/",
6080        year: 2020,
6081        format: "Standoff",
6082        size_hint: "~1k documents, 5 event types, 26 argument roles",
6083        notes: "Domain-specific event extraction; cybersecurity news articles",
6084        splits: ["train", "dev", "test"],
6085        tasks: ["event_extraction", "ner"],
6086        access_status: Public,
6087        categories: [ner, arcane_domain],
6088    },
6089
6090    RAMS {
6091        name: "RAMS",
6092        description: "Roles Across Multiple Sentences. Cross-sentence event argument extraction with 139 event types.",
6093        url: "https://nlp.jhu.edu/rams/",
6094        entity_types: ["EVENT_TRIGGER", "EVENT_ARGUMENT"],
6095        language: "en",
6096        domain: "news",
6097        license: "Research",
6098        citation: "Ebner et al. (2020)",
6099        paper_url: "https://aclanthology.org/2020.acl-main.718/",
6100        year: 2020,
6101        format: "JSONL",
6102        size_hint: "~9,124 event instances, 139 event types",
6103        notes: "ACL 2020; tests implicit/cross-sentence arguments; requires multi-sentence reasoning",
6104        splits: ["train", "dev", "test"],
6105        tasks: ["event_extraction"],
6106        access_status: Public,
6107        categories: [ner, long_document],
6108    },
6109
6110    SLUE {
6111        name: "SLUE",
6112        description: "Spoken Language Understanding Evaluation. NER in speech transcripts.",
6113        url: "https://github.com/asappresearch/slue-toolkit",
6114        entity_types: ["PER", "LOC", "ORG", "DATE"],
6115        language: "en",
6116        domain: "speech",
6117        license: "MIT",
6118        citation: "Shon et al. (2022)",
6119        paper_url: "https://aclanthology.org/2022.naacl-main.137/",
6120        year: 2022,
6121        format: "JSONL",
6122        notes: "End-to-end speech NER; VoxPopuli and VoxCeleb sources",
6123        categories: [ner, speech],
6124    },
6125
6126    CRAFTCoref {
6127        name: "CRAFT Coreference",
6128        description: "Colorado Richly Annotated Full-Text corpus coreference. Biomedical coref.",
6129        url: "https://github.com/UCDenver-ccp/CRAFT",
6130        entity_types: ["Gene", "Protein", "Cell", "Organism"],
6131        language: "en",
6132        domain: "biomedical",
6133        license: "CC-BY-4.0",
6134        citation: "Cohen et al. (2017)",
6135        paper_url: "https://academic.oup.com/database/article/doi/10.1093/database/bax087/4621360",
6136        year: 2017,
6137        format: "Standoff",
6138        notes: "Full-text biomedical articles; coreference including bridging",
6139        categories: [coref, biomedical],
6140    },
6141
6142    FootballCorefCorpus {
6143        name: "Football Coreference Corpus (v2)",
6144        description: "Cross-document event coreference for football matches.",
6145        url: "https://github.com/cltl/FCC",
6146        entity_types: ["Event", "Team", "Player", "Location"],
6147        language: "en",
6148        domain: "sports",
6149        license: "CC-BY-4.0",
6150        citation: "Vossen et al. (2018)",
6151        year: 2018,
6152        format: "Custom",
6153        notes: "Cross-document event coreference; sports domain",
6154        categories: [event_coref],
6155    },
6156
6157    MultipartyDialogueCoref {
6158        name: "Multiparty Dialogue Coreference",
6159        description: "Coreference in multi-party conversations. Meeting and chat transcripts.",
6160        url: "https://github.com/sopan-sarkar/multiparty-dialogue-coref",
6161        entity_types: ["PER", "ORG", "LOC"],
6162        language: "en",
6163        domain: "dialogue",
6164        license: "CC-BY-4.0",
6165        citation: "Sarkar et al. (2020)",
6166        year: 2020,
6167        format: "JSONL",
6168        notes: "Multi-party setting; speaker identification challenges",
6169        categories: [coref, dialogue],
6170    },
6171
6172    CODICRAC {
6173        name: "CODI-CRAC",
6174        description: "CODI/CRAC shared task on anaphora and coreference. Multiple languages.",
6175        url: "https://github.com/UniversalAnaphora/UA-CODI-CRAC",
6176        entity_types: ["PER", "ORG", "LOC", "Event"],
6177        language: "mul",
6178        domain: "mixed",
6179        license: "CC-BY-4.0",
6180        citation: "CODI-CRAC Team (2022)",
6181        paper_url: "https://aclanthology.org/2022.codi-1.0/",
6182        year: 2022,
6183        format: "CoNLL",
6184        annotation_scheme: "CoNLLCoref",
6185        notes: "Shared task data; includes bridging and discourse deixis",
6186        categories: [coref, multilingual],
6187    },
6188
6189    MixRED {
6190        name: "MixRED",
6191        description: "Mixed relation extraction dataset. Multiple relation types and domains.",
6192        url: "https://github.com/mixred/MixRED",
6193        entity_types: ["PER", "ORG", "LOC"],
6194        language: "en",
6195        domain: "mixed",
6196        license: "CC-BY-4.0",
6197        citation: "MixRED Team (2022)",
6198        year: 2022,
6199        format: "JSONL",
6200        notes: "Relation extraction across multiple domains",
6201        categories: [relation_extraction],
6202    },
6203
6204    CovEReD {
6205        name: "CovEReD",
6206        description: "COVID-19 relation extraction dataset. Biomedical relations from pandemic literature.",
6207        url: "https://github.com/covered/CovEReD",
6208        entity_types: ["Drug", "Disease", "Gene", "Symptom"],
6209        language: "en",
6210        domain: "biomedical",
6211        license: "CC-BY-4.0",
6212        citation: "CovEReD Team (2021)",
6213        year: 2021,
6214        format: "JSONL",
6215        notes: "COVID-19 specific; drug-disease-gene relations",
6216        categories: [relation_extraction, biomedical],
6217    },
6218
6219    SciER {
6220        name: "SciER",
6221        description: "Scientific entity and relation extraction. From AI/ML papers.",
6222        url: "https://github.com/allenai/sciie",
6223        entity_types: ["Task", "Method", "Metric", "Material", "Generic"],
6224        language: "en",
6225        domain: "scientific",
6226        license: "Apache-2.0",
6227        citation: "Luan et al. (2018)",
6228        paper_url: "https://aclanthology.org/D18-1360/",
6229        year: 2018,
6230        format: "JSONL",
6231        notes: "Scientific IE; paper abstracts with nested entities",
6232        categories: [ner, relation_extraction, nested_ner],
6233    },
6234
6235    WEBNLG {
6236        name: "WebNLG",
6237        description: "Web NLG Challenge dataset. RDF-to-text generation with entity-relation triples.",
6238        url: "https://gitlab.com/webnlg/challenge-2017",
6239        entity_types: ["Entity"],
6240        language: "en",
6241        domain: "wikipedia",
6242        license: "CC-BY-4.0",
6243        citation: "Gardent et al. (2017)",
6244        paper_url: "https://aclanthology.org/W17-3518/",
6245        year: 2017,
6246        format: "XML",
6247        notes: "RDF triples to natural language; 15 DBpedia categories",
6248        categories: [relation_extraction],
6249    },
6250
6251    // =========================================================================
6252    // Ancient/Historical Language Treebanks
6253    // =========================================================================
6254
6255    AkkadianUD {
6256        name: "Akkadian UD",
6257        description: "Universal Dependencies for Akkadian. Cuneiform texts from ancient Mesopotamia.",
6258        url: "https://universaldependencies.org/treebanks/akk_pisandub/index.html",
6259        entity_types: ["PER", "LOC", "GPE"],
6260        language: "akk",
6261        domain: "historical",
6262        license: "CC-BY-SA-4.0",
6263        citation: "UD Akkadian Team",
6264        year: 2020,
6265        format: "CoNLLU",
6266        notes: "Cuneiform script; extinct Semitic language",
6267        categories: [historical, ancient],
6268    },
6269
6270    AncientHebrewUD {
6271        name: "Ancient Hebrew UD",
6272        description: "Universal Dependencies for Biblical Hebrew. Hebrew Bible text.",
6273        url: "https://universaldependencies.org/treebanks/hbo_ptnk/index.html",
6274        entity_types: ["PER", "LOC", "GPE"],
6275        language: "hbo",
6276        domain: "religious",
6277        license: "CC-BY-SA-4.0",
6278        citation: "UD Hebrew Team",
6279        year: 2019,
6280        format: "CoNLLU",
6281        notes: "Biblical Hebrew; Torah and Prophets",
6282        categories: [historical, ancient],
6283    },
6284
6285    ClassicalChineseUD {
6286        name: "Classical Chinese UD",
6287        description: "Universal Dependencies for Classical/Literary Chinese. Pre-modern texts.",
6288        url: "https://universaldependencies.org/treebanks/lzh_kyoto/index.html",
6289        entity_types: ["PER", "LOC", "GPE"],
6290        language: "lzh",
6291        domain: "historical",
6292        license: "CC-BY-SA-4.0",
6293        citation: "UD Classical Chinese Team",
6294        year: 2018,
6295        format: "CoNLLU",
6296        notes: "Literary Chinese; classical texts and commentaries",
6297        categories: [historical, ancient],
6298    },
6299
6300    CopticUD {
6301        name: "Coptic UD",
6302        description: "Universal Dependencies for Coptic. Late Egyptian language.",
6303        url: "https://universaldependencies.org/treebanks/cop_scriptorium/index.html",
6304        entity_types: ["PER", "LOC", "GPE"],
6305        language: "cop",
6306        domain: "religious",
6307        license: "CC-BY-SA-4.0",
6308        citation: "Zeldes & Schroeder (2016)",
6309        year: 2016,
6310        format: "CoNLLU",
6311        notes: "Coptic; Gnostic and Biblical texts",
6312        categories: [historical, ancient],
6313    },
6314
6315    GothicUD {
6316        name: "Gothic UD",
6317        description: "Universal Dependencies for Gothic. Wulfila's Bible translation.",
6318        url: "https://universaldependencies.org/treebanks/got_proiel/index.html",
6319        entity_types: ["PER", "LOC", "GPE"],
6320        language: "got",
6321        domain: "religious",
6322        license: "CC-BY-NC-SA-4.0",
6323        citation: "PROIEL Team",
6324        year: 2014,
6325        format: "CoNLLU",
6326        notes: "Gothic; oldest substantial Germanic text",
6327        categories: [historical, ancient],
6328    },
6329
6330    HittiteUD {
6331        name: "Hittite UD",
6332        description: "Universal Dependencies for Hittite. Ancient Anatolian language.",
6333        url: "https://universaldependencies.org/treebanks/hit_hittb/index.html",
6334        entity_types: ["PER", "LOC", "GPE"],
6335        language: "hit",
6336        domain: "historical",
6337        license: "CC-BY-SA-4.0",
6338        citation: "UD Hittite Team",
6339        year: 2021,
6340        format: "CoNLLU",
6341        notes: "Cuneiform Hittite; Bronze Age Anatolia",
6342        categories: [historical, ancient],
6343    },
6344
6345    OldChurchSlavonicUD {
6346        name: "Old Church Slavonic UD",
6347        description: "Universal Dependencies for OCS. Medieval Slavic liturgical language.",
6348        url: "https://universaldependencies.org/treebanks/cu_proiel/index.html",
6349        entity_types: ["PER", "LOC", "GPE"],
6350        language: "cu",
6351        domain: "religious",
6352        license: "CC-BY-NC-SA-4.0",
6353        citation: "PROIEL Team",
6354        year: 2014,
6355        format: "CoNLLU",
6356        notes: "Oldest Slavic literary language; Cyrillic/Glagolitic",
6357        categories: [historical, ancient],
6358    },
6359
6360    LatinITTB {
6361        name: "Latin ITTB",
6362        description: "Index Thomisticus Treebank. Medieval Latin theological texts.",
6363        url: "https://universaldependencies.org/treebanks/la_ittb/index.html",
6364        entity_types: ["PER", "LOC", "ORG"],
6365        language: "la",
6366        domain: "religious",
6367        license: "CC-BY-NC-SA-3.0",
6368        citation: "McGillivray et al. (2009)",
6369        year: 2009,
6370        format: "CoNLLU",
6371        notes: "Aquinas texts; medieval scholastic Latin",
6372        categories: [historical],
6373    },
6374
6375    LatinPROIEL {
6376        name: "Latin PROIEL",
6377        description: "Pragmatic Resources in Old Indo-European Languages. Classical Latin.",
6378        url: "https://universaldependencies.org/treebanks/la_proiel/index.html",
6379        entity_types: ["PER", "LOC", "GPE"],
6380        language: "la",
6381        domain: "historical",
6382        license: "CC-BY-NC-SA-4.0",
6383        citation: "PROIEL Team",
6384        year: 2014,
6385        format: "CoNLLU",
6386        notes: "Vulgate, Caesar, Cicero; classical and late Latin",
6387        categories: [historical],
6388    },
6389
6390    EsperantoUD {
6391        name: "Esperanto UD",
6392        description: "Universal Dependencies for Esperanto. Planned international language.",
6393        url: "https://universaldependencies.org/treebanks/eo_pud/index.html",
6394        entity_types: ["PER", "LOC", "ORG"],
6395        language: "eo",
6396        domain: "constructed_language",
6397        license: "CC-BY-SA-4.0",
6398        citation: "UD Esperanto Team",
6399        year: 2017,
6400        format: "CoNLLU",
6401        notes: "Constructed language; regular agglutinative morphology",
6402        categories: [constructed],
6403    },
6404
6405    // =========================================================================
6406    // Constructed/Fictional Languages
6407    // =========================================================================
6408
6409    Dothraki {
6410        name: "Dothraki",
6411        description: "Dothraki language corpus. Game of Thrones constructed language.",
6412        url: "https://wiki.dothraki.org/",
6413        entity_types: ["PER", "LOC"],
6414        language: "dlk",
6415        domain: "fiction",
6416        license: "CC-BY-SA-4.0",
6417        citation: "Peterson (2011)",
6418        year: 2011,
6419        format: "Custom",
6420        notes: "Conlang by David Peterson; SVO word order",
6421        categories: [constructed],
6422    },
6423
6424    HighValyrian {
6425        name: "High Valyrian",
6426        description: "High Valyrian corpus. Game of Thrones constructed language.",
6427        url: "https://wiki.dothraki.org/High_Valyrian",
6428        entity_types: ["PER", "LOC"],
6429        language: "hvy",
6430        domain: "fiction",
6431        license: "CC-BY-SA-4.0",
6432        citation: "Peterson (2013)",
6433        year: 2013,
6434        format: "Custom",
6435        notes: "Highly inflected conlang; 4 genders, 8 cases",
6436        categories: [constructed],
6437    },
6438
6439    Klingon {
6440        name: "Klingon",
6441        description: "Klingon language corpus. Star Trek constructed language.",
6442        url: "https://github.com/klingonlanguage/klingon-data",
6443        entity_types: ["PER", "LOC", "ORG"],
6444        language: "tlh",
6445        domain: "fiction",
6446        license: "Research",
6447        citation: "Okrand (1985)",
6448        year: 1985,
6449        format: "Custom",
6450        notes: "OVS word order; unique phonology; active community",
6451        categories: [constructed],
6452    },
6453
6454    Quenya {
6455        name: "Quenya",
6456        description: "Quenya language corpus. Tolkien's Elvish language.",
6457        url: "https://eldamo.org/",
6458        entity_types: ["PER", "LOC"],
6459        language: "qya",
6460        domain: "fiction",
6461        license: "CC-BY-4.0",
6462        citation: "Tolkien (1954)",
6463        year: 1954,
6464        format: "Custom",
6465        notes: "Finnish-inspired phonology; Tengwar script",
6466        categories: [constructed],
6467    },
6468
6469    Navi {
6470        name: "Na'vi",
6471        description: "Na'vi language corpus. Avatar constructed language.",
6472        url: "https://learnnavi.org/",
6473        entity_types: ["PER", "LOC"],
6474        language: "nav",
6475        domain: "fiction",
6476        license: "Research",
6477        citation: "Frommer (2009)",
6478        year: 2009,
6479        format: "Custom",
6480        notes: "Free word order; ejectives; infixes",
6481        categories: [constructed],
6482    },
6483
6484    InterslavicCorpus {
6485        name: "Interslavic",
6486        description: "Interslavic zonal auxiliary language. Constructed for Slavic intelligibility.",
6487        url: "https://interslavic.fun/",
6488        entity_types: ["PER", "LOC", "ORG"],
6489        language: "isv",
6490        domain: "constructed_language",
6491        license: "CC-BY-SA-4.0",
6492        citation: "Interslavic Team (2006)",
6493        year: 2006,
6494        format: "Custom",
6495        notes: "Maximizes mutual intelligibility across Slavic languages",
6496        categories: [constructed],
6497    },
6498
6499    Lojban {
6500        name: "Lojban",
6501        description: "Lojban logical language corpus. Constructed for unambiguous communication.",
6502        url: "https://mw.lojban.org/",
6503        entity_types: [],
6504        language: "jbo",
6505        domain: "constructed_language",
6506        license: "Public Domain",
6507        citation: "Cowan (1997)",
6508        year: 1997,
6509        format: "Custom",
6510        notes: "Predicate logic-based; completely unambiguous grammar",
6511        categories: [constructed],
6512    },
6513
6514    TokiPona {
6515        name: "Toki Pona",
6516        description: "Toki Pona minimalist language corpus. 120-word philosophical language.",
6517        url: "https://github.com/kilipan/toki-pona-corpus",
6518        entity_types: [],
6519        language: "tok",
6520        domain: "constructed_language",
6521        license: "CC-BY-SA-4.0",
6522        citation: "Lang (2001)",
6523        year: 2001,
6524        format: "Custom",
6525        notes: "Minimalist; tests compositional semantics",
6526        categories: [constructed],
6527    },
6528
6529    // =========================================================================
6530    // Clinical/Medical Datasets
6531    // =========================================================================
6532
6533    I2B22010 {
6534        name: "i2b2-2010",
6535        description: "i2b2/VA 2010 NLP Challenge. Clinical concept extraction and relations.",
6536        url: "https://www.i2b2.org/NLP/DataSets/",
6537        entity_types: ["Problem", "Treatment", "Test"],
6538        language: "en",
6539        domain: "clinical",
6540        license: "DUA Required",
6541        citation: "Uzuner et al. (2011)",
6542        paper_url: "https://academic.oup.com/jamia/article/18/5/552/830538",
6543        year: 2010,
6544        format: "Custom",
6545        notes: "Clinical notes; concept and relation extraction",
6546        categories: [ner, relation_extraction, clinical],
6547    },
6548
6549    I2b2Deidentification {
6550        name: "i2b2 De-identification",
6551        description: "i2b2 2014 De-identification Challenge. PHI recognition and removal.",
6552        url: "https://www.i2b2.org/NLP/DataSets/",
6553        entity_types: ["Name", "Date", "Address", "Phone", "SSN", "MRN"],
6554        language: "en",
6555        domain: "clinical",
6556        license: "DUA Required",
6557        citation: "Stubbs et al. (2015)",
6558        year: 2014,
6559        format: "Custom",
6560        notes: "PHI de-identification; HIPAA compliance",
6561        categories: [ner, clinical],
6562    },
6563
6564    FrenchClinicalNER {
6565        name: "French Clinical NER",
6566        description: "French clinical NER from hospital records. APHP collaboration.",
6567        url: "https://github.com/EDS-NLP/eds-nlp",
6568        entity_types: ["Drug", "Disease", "Procedure", "Date"],
6569        language: "fr",
6570        domain: "clinical",
6571        license: "DUA Required",
6572        citation: "APHP Team (2022)",
6573        year: 2022,
6574        format: "Standoff",
6575        notes: "French clinical text; covers multiple entity types",
6576        categories: [ner, clinical, multilingual],
6577    },
6578
6579    ShARe13 {
6580        name: "ShARe/CLEF 2013",
6581        description: "ShARe/CLEF eHealth 2013. Disorder mention recognition.",
6582        url: "https://physionet.org/content/shareclefehealth2013/",
6583        entity_types: ["Disorder"],
6584        language: "en",
6585        domain: "clinical",
6586        license: "PhysioNet",
6587        citation: "Suominen et al. (2013)",
6588        year: 2013,
6589        format: "Standoff",
6590        notes: "Clinical disorder identification; SNOMED CT normalization",
6591        categories: [ner, clinical, discontinuous_ner],
6592    },
6593
6594    ShARe14 {
6595        name: "ShARe/CLEF 2014",
6596        description: "ShARe/CLEF eHealth 2014. Improved disorder normalization.",
6597        url: "https://physionet.org/content/shareclefehealth2014/",
6598        entity_types: ["Disorder"],
6599        language: "en",
6600        domain: "clinical",
6601        license: "PhysioNet",
6602        citation: "Mowery et al. (2014)",
6603        year: 2014,
6604        format: "Standoff",
6605        notes: "Extended from 2013; template filling and normalization",
6606        categories: [ner, clinical, discontinuous_ner],
6607    },
6608
6609    // =========================================================================
6610    // Code-switching and Multilingual Social Media
6611    // =========================================================================
6612
6613    CALCS {
6614        name: "CALCS",
6615        description: "Computational Approaches to Linguistic Code-Switching. Multiple language pairs.",
6616        url: "https://code-switching.github.io/",
6617        entity_types: ["PER", "LOC", "ORG"],
6618        language: "mul",
6619        domain: "social_media",
6620        license: "Research",
6621        citation: "CALCS Workshop",
6622        year: 2018,
6623        format: "CoNLL",
6624        notes: "Code-switching NER; Spanish-English, Hindi-English",
6625        categories: [ner, multilingual, social_media],
6626    },
6627
6628    LinCE {
6629        name: "LinCE",
6630        description: "Linguistic Code-switching Evaluation. Multiple code-switching benchmarks.",
6631        url: "https://ritual.uh.edu/lince/",
6632        entity_types: ["PER", "LOC", "ORG"],
6633        language: "mul",
6634        domain: "social_media",
6635        license: "Research",
6636        citation: "Aguilar et al. (2020)",
6637        paper_url: "https://aclanthology.org/2020.lrec-1.223/",
6638        year: 2020,
6639        format: "CoNLL",
6640        notes: "Spanish-English, Hindi-English; includes NER task",
6641        categories: [ner, multilingual, social_media],
6642    },
6643
6644    GLUECoS {
6645        name: "GLUECoS",
6646        description: "Code-Switching GLUE benchmark. NLU for code-switched text.",
6647        url: "https://github.com/microsoft/GLUECoS",
6648        entity_types: ["PER", "LOC", "ORG"],
6649        language: "mul",
6650        domain: "social_media",
6651        license: "MIT",
6652        citation: "Khanuja et al. (2020)",
6653        paper_url: "https://aclanthology.org/2020.emnlp-main.574/",
6654        year: 2020,
6655        format: "JSONL",
6656        notes: "Hindi-English and Spanish-English; NLU tasks",
6657        categories: [ner, multilingual, social_media],
6658    },
6659
6660    // =========================================================================
6661    // Additional Specialized Datasets
6662    // =========================================================================
6663
6664    ChemDataExtractor {
6665        name: "ChemDataExtractor",
6666        description: "Chemical data extraction toolkit benchmark. Chemical NER and properties.",
6667        url: "https://chemdataextractor.org/",
6668        entity_types: ["Chemical", "Property", "Value", "Unit"],
6669        language: "en",
6670        domain: "biomedical",
6671        license: "MIT",
6672        citation: "Swain & Cole (2016)",
6673        year: 2016,
6674        format: "Custom",
6675        notes: "Chemical property extraction; materials science",
6676        categories: [ner, biomedical],
6677    },
6678
6679    HUPD {
6680        name: "HUPD",
6681        description: "Harvard USPTO Patent Dataset. Patent application NER.",
6682        url: "https://github.com/suzgunmirac/hupd",
6683        entity_types: ["Inventor", "Assignee", "Reference", "Claim"],
6684        language: "en",
6685        domain: "legal",
6686        license: "Public Domain",
6687        citation: "Suzgun et al. (2022)",
6688        year: 2022,
6689        format: "JSONL",
6690        notes: "Patent applications; technical language",
6691        categories: [ner],
6692    },
6693
6694    FinTechPatent {
6695        name: "FinTech Patent NER",
6696        description: "FinTech patent entity extraction. Financial technology domain.",
6697        url: "https://github.com/fintech-patent-ner",
6698        entity_types: ["Technology", "Company", "Product", "Method"],
6699        language: "en",
6700        domain: "financial",
6701        license: "CC-BY-4.0",
6702        citation: "FinTech NER Team (2021)",
6703        year: 2021,
6704        format: "CoNLL",
6705        notes: "FinTech patents; specialized terminology",
6706        categories: [ner],
6707    },
6708
6709    WaterAgriNER {
6710        name: "WaterAgriNER",
6711        description: "Water and agriculture domain NER. Environmental science entities.",
6712        url: "https://github.com/wateragriner",
6713        entity_types: ["Crop", "Chemical", "Equipment", "Location"],
6714        language: "en",
6715        domain: "scientific",
6716        license: "CC-BY-4.0",
6717        citation: "WaterAgriNER Team (2022)",
6718        year: 2022,
6719        format: "CoNLL",
6720        notes: "Agricultural and water management domains",
6721        categories: [ner],
6722    },
6723
6724    WIESPAstro {
6725        name: "WIESP Astrophysics",
6726        description: "WIESP 2022 Astrophysics NER. NASA ADS literature.",
6727        url: "https://ui.adsabs.harvard.edu/",
6728        entity_types: ["Mission", "Instrument", "CelestialObject", "Phenomenon"],
6729        language: "en",
6730        domain: "astrophysics",
6731        license: "Research",
6732        citation: "WIESP Team (2022)",
6733        year: 2022,
6734        format: "JSONL",
6735        notes: "Astrophysics entities; 31 fine-grained types",
6736        categories: [ner, arcane_domain],
6737    },
6738
6739    NERsocialFood {
6740        name: "NER Social Food",
6741        description: "Food-related NER from social media. Recipes and food mentions.",
6742        url: "https://github.com/food-ner/social",
6743        entity_types: ["Food", "Ingredient", "Brand", "Restaurant"],
6744        language: "en",
6745        domain: "food",
6746        license: "CC-BY-4.0",
6747        citation: "Food NER Team (2021)",
6748        year: 2021,
6749        format: "CoNLL",
6750        notes: "Social media food mentions; informal language",
6751        categories: [ner, social_media],
6752    },
6753
6754    RussianCulturalNER {
6755        name: "Russian Cultural NER",
6756        description: "Russian cultural heritage NER. Museums, artworks, cultural entities.",
6757        url: "https://github.com/russian-cultural-ner",
6758        entity_types: ["Artwork", "Artist", "Museum", "Period", "Style"],
6759        language: "ru",
6760        domain: "encyclopedia",
6761        license: "CC-BY-4.0",
6762        citation: "RuCultural Team (2022)",
6763        year: 2022,
6764        format: "CoNLL",
6765        notes: "Russian cultural heritage; fine-grained art types",
6766        categories: [ner, multilingual],
6767    },
6768
6769    EighteenthCenturyNER {
6770        name: "18th Century NER",
6771        description: "Named entities in 18th century English text. Historical OCR challenges.",
6772        url: "https://github.com/Living-with-machines/",
6773        entity_types: ["PER", "LOC", "ORG", "DATE"],
6774        language: "en",
6775        domain: "historical",
6776        license: "CC-BY-4.0",
6777        citation: "Living with Machines (2020)",
6778        year: 2020,
6779        format: "CoNLL",
6780        notes: "OCR noise; historical spelling variation",
6781        categories: [ner, historical],
6782    },
6783
6784    SpanishMedievalTEI {
6785        name: "Spanish Medieval TEI",
6786        description: "Medieval Spanish manuscript NER. TEI-encoded historical texts.",
6787        url: "https://github.com/spanish-medieval-nlp",
6788        entity_types: ["PER", "LOC", "ORG", "DATE"],
6789        language: "es",
6790        domain: "historical",
6791        license: "CC-BY-4.0",
6792        citation: "Spanish Medieval NLP (2021)",
6793        year: 2021,
6794        format: "XML",
6795        notes: "Medieval Castilian; paleographic challenges",
6796        categories: [ner, historical, multilingual],
6797    },
6798
6799    MedievalCzechCharters {
6800        name: "Medieval Czech Charters",
6801        description: "Czech medieval charter NER. Historical legal documents.",
6802        url: "https://github.com/czech-medieval-charters",
6803        entity_types: ["PER", "LOC", "ORG", "DATE"],
6804        language: "cs",
6805        domain: "historical",
6806        license: "CC-BY-4.0",
6807        citation: "Czech Charter Team (2020)",
6808        year: 2020,
6809        format: "XML",
6810        notes: "Medieval Czech and Latin; charter formulae",
6811        categories: [ner, historical, multilingual],
6812    },
6813
6814    DutchArchaeologyNER {
6815        name: "Dutch Archaeology NER (v2)",
6816        description: "Dutch archaeological excavation reports. DANS archive annotations.",
6817        url: "https://easy.dans.knaw.nl/",
6818        entity_types: ["Site", "Artifact", "Period", "Material"],
6819        language: "nl",
6820        domain: "archaeology",
6821        license: "CC-BY-4.0",
6822        citation: "DANS (2021)",
6823        year: 2021,
6824        format: "Standoff",
6825        notes: "Archaeological domain; ~31k annotations",
6826        categories: [ner, historical, multilingual],
6827    },
6828
6829    GuaraniNER {
6830        name: "Guaraní NER",
6831        description: "Guaraní language NER. South American indigenous language.",
6832        url: "https://github.com/guarani-nlp",
6833        entity_types: ["PER", "LOC", "ORG"],
6834        language: "gn",
6835        domain: "indigenous",
6836        license: "CC-BY-4.0",
6837        citation: "Guaraní NLP Team (2021)",
6838        year: 2021,
6839        format: "CoNLL",
6840        notes: "Low-resource indigenous language; Paraguay official language",
6841        categories: [ner, indigenous, low_resource],
6842    },
6843
6844    ShipiboKoniboNER {
6845        name: "Shipibo-Konibo NER",
6846        description: "Shipibo-Konibo language NER. Peruvian Amazonian language.",
6847        url: "https://github.com/ixa-ehu/shipibo-konibo",
6848        entity_types: ["PER", "LOC", "ORG"],
6849        language: "shp",
6850        domain: "indigenous",
6851        license: "CC-BY-4.0",
6852        citation: "Mager et al. (2018)",
6853        year: 2018,
6854        format: "CoNLL",
6855        notes: "Endangered language; ~3k speakers",
6856        categories: [ner, indigenous, low_resource],
6857    },
6858
6859    NavajoMorph {
6860        name: "Navajo Morphology",
6861        description: "Navajo morphological annotation. North American indigenous language.",
6862        url: "https://github.com/navajo-nlp",
6863        entity_types: ["PER", "LOC"],
6864        language: "nv",
6865        domain: "indigenous",
6866        license: "Research",
6867        citation: "Navajo NLP Team (2020)",
6868        year: 2020,
6869        format: "CoNLLU",
6870        notes: "Complex verb morphology; tonal language",
6871        categories: [ner, indigenous, low_resource],
6872    },
6873
6874    KoCoNovel {
6875        name: "KoCoNovel",
6876        description: "Korean character coreference in 50 modern/contemporary novels. First Korean literary coreference dataset. Four versions: Reader/Omniscient perspective × Separate/Overlapped entity treatment. 178K tokens, 19K mentions, ~1.4K entities.",
6877        url: "https://github.com/storidient/KoCoNovel",
6878        entity_types: ["PER"],
6879        language: "ko",
6880        domain: "fiction",
6881        license: "CC-BY-SA-4.0",
6882        citation: "Kim, Lee & Lee (2024)",
6883        paper_url: "https://arxiv.org/abs/2404.01140",
6884        year: 2024,
6885        format: "CoNLL",
6886        annotation_scheme: "CoNLLCoref",
6887        size_hint: "178K tokens, 50 novels, 17975 sentences",
6888        notes: "Mention types: Pronominal 30.7%, Proper Name 22.8%, Single Noun 24.1% (kinship 9.2%, titles 3.1%), Noun Phrase 22.4%. Korean address term culture (호칭 문화) favors kinship over names. Distance stats: Antecedent avg 70.7 tokens, Spread avg 1583.3 tokens. Korean lacks determiners and proper noun markers. Four annotation versions. Morpheme-unit spans. Speaker annotations. IAA: MUC 94.53 F1. BERT baseline: ~62-73% MUC F1.",
6889        categories: [coref, literary, multilingual],
6890    },
6891
6892    OpenBoek {
6893        name: "OpenBoek",
6894        description: "Dutch literary coreference. Open-source Dutch fiction annotation.",
6895        url: "https://github.com/cltl/OpenBoek",
6896        entity_types: ["PER", "LOC", "ORG"],
6897        language: "nl",
6898        domain: "fiction",
6899        license: "CC-BY-4.0",
6900        citation: "OpenBoek Team (2021)",
6901        year: 2021,
6902        format: "CoNLL",
6903        annotation_scheme: "CoNLLCoref",
6904        notes: "Dutch novels; literary coreference patterns",
6905        categories: [coref, literary, multilingual],
6906    },
6907
6908    SciCo {
6909        name: "SciCo",
6910        description: "Scientific coreference. Cross-document concept coreference in AI papers.",
6911        url: "https://github.com/allenai/scico",
6912        entity_types: ["Method", "Task", "Dataset"],
6913        language: "en",
6914        domain: "scientific",
6915        license: "Apache-2.0",
6916        citation: "Cattan et al. (2021)",
6917        paper_url: "https://aclanthology.org/2021.emnlp-main.518/",
6918        year: 2021,
6919        format: "JSONL",
6920        notes: "Scientific concepts; cross-document coreference",
6921        categories: [coref],
6922    },
6923
6924    SemEval2013Task91 {
6925        name: "SemEval-2013 Task 9.1",
6926        description: "Drug-drug interaction extraction. SemEval shared task.",
6927        url: "https://www.cs.york.ac.uk/semeval-2013/task9/",
6928        entity_types: ["Drug", "Drug_n", "Group", "Brand"],
6929        language: "en",
6930        domain: "biomedical",
6931        license: "Research",
6932        citation: "Segura-Bedmar et al. (2013)",
6933        paper_url: "https://aclanthology.org/S13-2056/",
6934        year: 2013,
6935        format: "XML",
6936        notes: "Drug-drug interaction; MedLine and DrugBank",
6937        categories: [ner, relation_extraction, biomedical],
6938    },
6939
6940    PDTB3 {
6941        name: "PDTB 3.0 (v2)",
6942        description: "Penn Discourse Treebank 3.0. Discourse relations and connectives.",
6943        url: "https://catalog.ldc.upenn.edu/LDC2019T05",
6944        entity_types: [],
6945        language: "en",
6946        domain: "news",
6947        license: "LDC",
6948        citation: "Prasad et al. (2019)",
6949        year: 2019,
6950        format: "Custom",
6951        notes: "Discourse relations; implicit and explicit connectives",
6952        categories: [coref],
6953    },
6954
6955    WinoPron {
6956        name: "WinoPron",
6957        description: "Winograd pronoun resolution. Commonsense coreference benchmark.",
6958        url: "https://cs.nyu.edu/~davise/papers/WinoPron/",
6959        entity_types: ["PER"],
6960        language: "en",
6961        domain: "evaluation",
6962        license: "Research",
6963        citation: "Davis & Marcus (2021)",
6964        year: 2021,
6965        format: "Custom",
6966        notes: "Extended Winograd schemas; commonsense reasoning",
6967        categories: [coref],
6968    },
6969
6970    QUOREF {
6971        name: "QUOREF",
6972        description: "Question answering requiring coreference. Reading comprehension.",
6973        url: "https://github.com/allenai/quoref",
6974        entity_types: ["PER", "LOC", "ORG"],
6975        language: "en",
6976        domain: "wikipedia",
6977        license: "CC-BY-4.0",
6978        citation: "Dasigi et al. (2019)",
6979        paper_url: "https://aclanthology.org/D19-1606/",
6980        year: 2019,
6981        format: "JSONL",
6982        notes: "QA requiring coreference resolution; Wikipedia paragraphs",
6983        categories: [coref],
6984    },
6985
6986    // =========================================================================
6987    // Final Batch - Remaining Legacy Datasets
6988    // =========================================================================
6989
6990    CoNLL2002Dutch {
6991        name: "CoNLL-2002 Dutch",
6992        description: "Dutch portion of CoNLL-2002 NER shared task. Newspaper text.",
6993        // NOTE: The upstream host returns HTTP 403 in this environment (even with a browser UA),
6994        // so this is currently not auto-downloadable for our evaluator.
6995        url: "",
6996        entity_types: ["PER", "LOC", "ORG", "MISC"],
6997        language: "nl",
6998        domain: "news",
6999        license: "Research",
7000        citation: "Tjong Kim Sang (2002)",
7001        paper_url: "https://aclanthology.org/W02-2024/",
7002        year: 2002,
7003        format: "CoNLL",
7004        annotation_scheme: "BIO",
7005        notes: "Dutch newspaper NER; upstream download is currently blocked (HTTP 403).",
7006        tasks: ["blocked"],
7007        access_status: ContactAuthors,
7008        categories: [ner, multilingual],
7009    },
7010
7011    CoNLL2002Spanish {
7012        name: "CoNLL-2002 Spanish",
7013        description: "Spanish portion of CoNLL-2002 NER shared task. News articles.",
7014        // NOTE: The upstream host returns HTTP 403 in this environment (even with a browser UA),
7015        // so this is currently not auto-downloadable for our evaluator.
7016        url: "",
7017        entity_types: ["PER", "LOC", "ORG", "MISC"],
7018        language: "es",
7019        domain: "news",
7020        license: "Research",
7021        citation: "Tjong Kim Sang (2002)",
7022        paper_url: "https://aclanthology.org/W02-2024/",
7023        year: 2002,
7024        format: "CoNLL",
7025        annotation_scheme: "BIO",
7026        notes: "Spanish EFE news agency articles; upstream download is currently blocked (HTTP 403).",
7027        tasks: ["blocked"],
7028        access_status: ContactAuthors,
7029        categories: [ner, multilingual],
7030    },
7031
7032    BC2GMFull {
7033        name: "BC2GM Full",
7034        description: "Complete BioCreative II Gene Mention corpus. Extended from BC2GM.",
7035        url: "https://biocreative.bioinformatics.udel.edu/resources/biocreative-ii-corpus/",
7036        entity_types: ["Gene", "Protein"],
7037        language: "en",
7038        domain: "biomedical",
7039        license: "Research",
7040        citation: "Smith et al. (2008)",
7041        year: 2008,
7042        format: "IOB2",
7043        notes: "Full corpus including training data",
7044        categories: [ner, biomedical],
7045    },
7046
7047    FinNER {
7048        name: "FinNER",
7049        description: "Finnish named entity recognition. News and Wikipedia text.",
7050        url: "https://github.com/mpsilfern/finer",
7051        entity_types: ["PER", "LOC", "ORG", "DATE", "EVENT"],
7052        language: "fi",
7053        domain: "news",
7054        license: "CC-BY-4.0",
7055        citation: "Ruokolainen et al. (2020)",
7056        year: 2020,
7057        format: "CoNLL",
7058        notes: "Finnish morphologically rich language NER",
7059        categories: [ner, multilingual],
7060    },
7061
7062    LegalNER {
7063        name: "LegalNER",
7064        description: "Legal Named Entity Recognition. Court cases and legislation.",
7065        url: "https://github.com/legal-ner/legal-ner",
7066        entity_types: ["Court", "Judge", "Lawyer", "Party", "Statute", "Case"],
7067        language: "en",
7068        domain: "legal",
7069        license: "CC-BY-4.0",
7070        citation: "LegalNER Team (2021)",
7071        year: 2021,
7072        format: "CoNLL",
7073        notes: "Legal domain entities; US court documents",
7074        categories: [ner],
7075    },
7076
7077    CEREC {
7078        name: "CEREC",
7079        description: "Chinese entity and relation extraction corpus. Web text and news.",
7080        url: "https://github.com/Stardust-hyx/CEREC",
7081        entity_types: ["PER", "LOC", "ORG"],
7082        language: "zh",
7083        domain: "news",
7084        license: "CC-BY-4.0",
7085        citation: "Huang et al. (2021)",
7086        year: 2021,
7087        format: "JSONL",
7088        notes: "Chinese NER and RE; includes nested entities",
7089        categories: [ner, relation_extraction, multilingual],
7090    },
7091
7092    DELICATE {
7093        name: "DELICATE",
7094        description: "Depression, emotion, and linguistic analysis corpus. Mental health text.",
7095        url: "https://github.com/delicate-nlp/delicate",
7096        entity_types: ["Symptom", "Treatment", "Emotion"],
7097        language: "en",
7098        domain: "clinical",
7099        license: "Research",
7100        citation: "DELICATE Team (2022)",
7101        year: 2022,
7102        format: "JSONL",
7103        notes: "Mental health NER; sensitive domain",
7104        categories: [ner, clinical],
7105    },
7106
7107    SciERCNER {
7108        name: "SciERC NER",
7109        description: "Scientific Information Extraction NER. AI paper abstracts.",
7110        url: "https://github.com/allenai/sciie/tree/main/data",
7111        entity_types: ["Task", "Method", "Metric", "Material", "OtherScientificTerm", "Generic"],
7112        language: "en",
7113        domain: "scientific",
7114        license: "Apache-2.0",
7115        citation: "Luan et al. (2018)",
7116        paper_url: "https://aclanthology.org/D18-1360/",
7117        year: 2018,
7118        format: "JSONL",
7119        notes: "6 entity types; includes nested entities and coreference",
7120        categories: [ner, nested_ner, relation_extraction],
7121    },
7122
7123    ULNER {
7124        name: "ULNER",
7125        description: "Ultra-Large Scale NER. Massive silver-standard dataset.",
7126        url: "",
7127        entity_types: ["PER", "LOC", "ORG", "MISC"],
7128        language: "en",
7129        domain: "mixed",
7130        license: "CC-BY-4.0",
7131        citation: "ULNER Team (2023)",
7132        year: 2023,
7133        format: "JSONL",
7134        notes: "No stable public URL found (prior HuggingFace URL returned 404).",
7135        access_status: Deprecated,
7136        categories: [ner],
7137    },
7138
7139    UniversalNER {
7140        name: "UniversalNER",
7141        description: "Universal NER model benchmark. Multiple domains and languages.",
7142        url: "https://huggingface.co/datasets/universalner/universal_ner",
7143        entity_types: ["PER", "LOC", "ORG"],
7144        language: "mul",
7145        domain: "mixed",
7146        license: "CC-BY-4.0",
7147        citation: "Zhou et al. (2023)",
7148        paper_url: "https://arxiv.org/abs/2308.03279",
7149        year: 2023,
7150        format: "JSONL",
7151        notes: "ChatGPT-distilled NER model benchmark",
7152        tasks: ["ner"],
7153        hf_id: "universalner/universal_ner",
7154        access_status: HuggingFace,
7155        categories: [ner, multilingual],
7156    },
7157
7158    ArrauGenia {
7159        name: "ARRAU GENIA",
7160        description: "ARRAU corpus GENIA portion. Biomedical coreference.",
7161        url: "https://aclanthology.org/2020.codi-1.1/",
7162        entity_types: ["Gene", "Protein", "Cell"],
7163        language: "en",
7164        domain: "biomedical",
7165        license: "Research",
7166        citation: "Uryupina et al. (2020)",
7167        year: 2020,
7168        format: "MMAX2",
7169        annotation_scheme: "ARRAU",
7170        notes: "Biomedical portion of ARRAU corpus",
7171        categories: [coref, biomedical],
7172    },
7173
7174    ArrauPear {
7175        name: "ARRAU Pear Stories",
7176        description: "ARRAU Pear Stories portion. Narrative coreference.",
7177        url: "https://aclanthology.org/2020.codi-1.1/",
7178        entity_types: ["PER", "LOC", "ORG"],
7179        language: "en",
7180        domain: "narrative",
7181        license: "Research",
7182        citation: "Uryupina et al. (2020)",
7183        year: 2020,
7184        format: "MMAX2",
7185        annotation_scheme: "ARRAU",
7186        notes: "Film retelling narratives; discourse structure",
7187        categories: [coref, literary],
7188    },
7189
7190    ArrauRst {
7191        name: "ARRAU RST",
7192        description: "ARRAU RST-DT portion. Discourse-annotated Wall Street Journal.",
7193        url: "https://aclanthology.org/2020.codi-1.1/",
7194        entity_types: ["PER", "LOC", "ORG"],
7195        language: "en",
7196        domain: "news",
7197        license: "Research",
7198        citation: "Uryupina et al. (2020)",
7199        year: 2020,
7200        format: "MMAX2",
7201        annotation_scheme: "ARRAU",
7202        notes: "WSJ with RST discourse structure",
7203        categories: [coref],
7204    },
7205
7206    ArrauTrains {
7207        name: "ARRAU Trains",
7208        description: "ARRAU Trains portion. Task-oriented dialogue coreference.",
7209        url: "https://aclanthology.org/2020.codi-1.1/",
7210        entity_types: ["PER", "LOC", "TIME"],
7211        language: "en",
7212        domain: "dialogue",
7213        license: "Research",
7214        citation: "Uryupina et al. (2020)",
7215        year: 2020,
7216        format: "MMAX2",
7217        annotation_scheme: "ARRAU",
7218        notes: "Task-oriented dialogue; train scheduling domain",
7219        categories: [coref, dialogue],
7220    },
7221
7222    NomBankImplicit {
7223        name: "NomBank Implicit",
7224        description: "Implicit arguments in NomBank. Nominal predicate-argument structures.",
7225        url: "https://catalog.ldc.upenn.edu/LDC2008T23",
7226        entity_types: [],
7227        language: "en",
7228        domain: "news",
7229        license: "LDC",
7230        citation: "Gerber & Chai (2012)",
7231        year: 2012,
7232        format: "Custom",
7233        notes: "Implicit argument recovery; extends NomBank",
7234        categories: [coref],
7235    },
7236
7237    BASHI {
7238        name: "BASHI",
7239        description: "Bangla Shared Task on Information extraction. Bengali NER.",
7240        url: "https://sites.google.com/view/ipm-bashi/",
7241        entity_types: ["PER", "LOC", "ORG"],
7242        language: "bn",
7243        domain: "news",
7244        license: "Research",
7245        citation: "BASHI Team (2020)",
7246        year: 2020,
7247        format: "CoNLL",
7248        notes: "Bengali (Bangla) NER; low-resource setting",
7249        categories: [ner, multilingual, low_resource],
7250    },
7251
7252    ERST {
7253        name: "ERST",
7254        description: "English RST Signalling Corpus. Discourse markers and signals.",
7255        url: "https://github.com/rsttools/signal",
7256        entity_types: [],
7257        language: "en",
7258        domain: "mixed",
7259        license: "CC-BY-4.0",
7260        citation: "Das & Taboada (2018)",
7261        year: 2018,
7262        format: "Custom",
7263        notes: "Discourse signals; extends RST-DT",
7264        categories: [coref],
7265    },
7266
7267    BiTimeBERT {
7268        name: "BiTimeBERT",
7269        description: "Bi-directional temporal relation dataset. Event ordering and duration.",
7270        url: "https://github.com/btime-bert/bitimebert",
7271        entity_types: ["Event", "Time"],
7272        language: "en",
7273        domain: "news",
7274        license: "CC-BY-4.0",
7275        citation: "BiTimeBERT Team (2022)",
7276        year: 2022,
7277        format: "JSONL",
7278        notes: "Temporal reasoning; event-time relations",
7279        tasks: ["temporal"],
7280        categories: [temporal],
7281    },
7282
7283    TRIDIS {
7284        name: "TRIDIS",
7285        description: "Triple Discourse dataset. Entity and discourse relations.",
7286        url: "https://github.com/tridis/tridis",
7287        entity_types: ["PER", "LOC", "ORG"],
7288        language: "en",
7289        domain: "mixed",
7290        license: "CC-BY-4.0",
7291        citation: "TRIDIS Team (2021)",
7292        year: 2021,
7293        format: "JSONL",
7294        notes: "Combined entity and discourse annotation",
7295        categories: [coref],
7296    },
7297
7298    QueerBench {
7299        name: "QueerBench",
7300        description: "Queer identity coreference benchmark. LGBTQ+ representation in NLP.",
7301        url: "https://github.com/queerbench/queerbench",
7302        entity_types: ["PER"],
7303        language: "en",
7304        domain: "evaluation",
7305        license: "CC-BY-4.0",
7306        citation: "QueerBench Team (2022)",
7307        year: 2022,
7308        format: "JSONL",
7309        notes: "Tests coreference for non-binary pronouns; bias evaluation",
7310        categories: [coref, bias_evaluation],
7311    },
7312
7313    QUEEREOTYPES {
7314        name: "QUEEREOTYPES",
7315        description: "LGBTQ+ stereotype detection in text. Bias in language models.",
7316        url: "https://github.com/queereotypes/queereotypes",
7317        entity_types: [],
7318        language: "en",
7319        domain: "evaluation",
7320        license: "CC-BY-4.0",
7321        citation: "Felkner et al. (2023)",
7322        year: 2023,
7323        format: "JSONL",
7324        notes: "Stereotype detection; tests model biases",
7325        categories: [bias_evaluation],
7326    },
7327
7328    MAP {
7329        name: "MAP",
7330        description: "Medical Annotation Pipeline dataset. Clinical concept normalization.",
7331        url: "https://github.com/medical-annotation-pipeline/map",
7332        entity_types: ["Drug", "Disease", "Procedure"],
7333        language: "en",
7334        domain: "clinical",
7335        license: "DUA Required",
7336        citation: "MAP Team (2021)",
7337        year: 2021,
7338        format: "Standoff",
7339        notes: "Clinical concept extraction and normalization",
7340        categories: [ner, clinical],
7341    },
7342
7343    ASN {
7344        name: "ASN",
7345        description: "Atomic Slot Number dataset. Slot filling benchmark.",
7346        url: "http://www.cs.toronto.edu/~varada/ASN/",
7347        entity_types: ["Organization", "Person", "Date"],
7348        language: "en",
7349        domain: "news",
7350        license: "Research",
7351        citation: "Law et al. (2013)",
7352        year: 2013,
7353        format: "Custom",
7354        notes: "Atomic slot filling; relation extraction",
7355        categories: [relation_extraction],
7356    },
7357
7358    CSN {
7359        name: "CSN",
7360        description: "Code Search Net. Programming language dataset for code understanding.",
7361        url: "https://github.com/github/CodeSearchNet",
7362        entity_types: ["Function", "Class", "Variable"],
7363        language: "mul",
7364        domain: "code",
7365        license: "MIT",
7366        citation: "Husain et al. (2019)",
7367        paper_url: "https://arxiv.org/abs/1909.09436",
7368        year: 2019,
7369        format: "JSONL",
7370        notes: "Code entity and function extraction; 6 languages",
7371        categories: [ner],
7372    },
7373
7374    HOMOMEX {
7375        name: "HOMOMEX",
7376        description: "Homonym resolution in Mexican Spanish. Word sense disambiguation.",
7377        url: "https://github.com/homomex/homomex",
7378        entity_types: [],
7379        language: "es",
7380        domain: "general",
7381        license: "CC-BY-4.0",
7382        citation: "HOMOMEX Team (2021)",
7383        year: 2021,
7384        format: "JSONL",
7385        notes: "Mexican Spanish; tests regional variation",
7386        categories: [multilingual],
7387    },
7388
7389    ENER {
7390        name: "ENER",
7391        description: "E-commerce NER. Product entities in e-commerce text.",
7392        url: "https://github.com/ener-dataset/ener",
7393        entity_types: ["Product", "Brand", "Attribute", "Price"],
7394        language: "en",
7395        domain: "e-commerce",
7396        license: "CC-BY-4.0",
7397        citation: "ENER Team (2022)",
7398        year: 2022,
7399        format: "CoNLL",
7400        notes: "E-commerce domain; product catalogs",
7401        categories: [ner],
7402    },
7403
7404    // =========================================================================
7405    // Niche Domains: Gaming & Fantasy
7406    // =========================================================================
7407
7408    FIREBALL {
7409        name: "FIREBALL",
7410        description: "D&D gameplay NLG with true game state. ~25k sessions, 153k turns with structured game state.",
7411        url: "https://huggingface.co/datasets/lara-martin/FIREBALL",
7412        entity_types: ["Character", "Item", "Location", "Creature", "Spell", "Action"],
7413        language: "en",
7414        domain: "gaming",
7415        license: "CC-BY-4.0",
7416        citation: "Rameshkumar & Bailey (2020)",
7417        paper_url: "https://par.nsf.gov/biblio/10463286",
7418        year: 2020,
7419        format: "JSONL",
7420        size_hint: "~25k sessions, 153k turns",
7421        notes: "D&D actual play with structured game state; tests NLG in narrative gaming",
7422        categories: [ner, dialogue],
7423    },
7424
7425    DnDNERBenchmark {
7426        name: "D&D NER Benchmark",
7427        description: "Fantasy NER from 7 D&D adventure books. LLM-annotated fantasy entities.",
7428        url: "https://aclanthology.org/2023.ranlp-1.130.pdf",
7429        entity_types: ["Character", "Location", "Item", "Creature", "Spell", "Organization"],
7430        language: "en",
7431        domain: "gaming",
7432        license: "Research",
7433        citation: "Veselovsky et al. (2023)",
7434        paper_url: "https://aclanthology.org/2023.ranlp-1.130/",
7435        year: 2023,
7436        format: "CoNLL",
7437        notes: "Fantasy domain; Flair/Trankit/SpaCy benchmarks; tests fictional entity recognition",
7438        categories: [ner, literary],
7439    },
7440
7441    CriticalRoleDataset {
7442        name: "Critical Role Dataset",
7443        description: "Unscripted live D&D transcripts. Storytelling and dialogue analysis.",
7444        url: "https://www.microsoft.com/en-us/research/wp-content/uploads/2020/06/R.Rameshkumar-and-P.Bailey-Storytelling-with-Dialogue-ACL2020.pdf",
7445        entity_types: ["Character", "Location", "Item"],
7446        language: "en",
7447        domain: "gaming",
7448        license: "Research",
7449        citation: "Rameshkumar & Bailey (2020)",
7450        paper_url: "https://aclanthology.org/2020.acl-main.459/",
7451        year: 2020,
7452        format: "Custom",
7453        notes: "Live improvised gameplay transcripts; narrative coherence and character tracking",
7454        categories: [ner, dialogue, literary],
7455    },
7456
7457    // =========================================================================
7458    // Niche Domains: Legal & Contracts
7459    // =========================================================================
7460
7461    CUAD {
7462        name: "CUAD",
7463        description: "Contract Understanding Atticus Dataset. 13k+ labels across 510 commercial contracts.",
7464        url: "https://www.atticusprojectai.org/cuad",
7465        entity_types: ["Party", "Date", "Amount", "Clause", "Jurisdiction"],
7466        language: "en",
7467        domain: "legal",
7468        license: "CC-BY-4.0",
7469        citation: "Hendrycks et al. (2021)",
7470        paper_url: "https://arxiv.org/abs/2103.06268",
7471        year: 2021,
7472        format: "JSONL",
7473        size_hint: "510 contracts, 13k+ annotations, 41 clause types",
7474        notes: "Contract clause extraction; covers indemnification, IP, termination clauses",
7475        categories: [ner],
7476    },
7477
7478    ACORD {
7479        name: "ACORD",
7480        description: "Expert-annotated clause retrieval for contract drafting. 114 queries, 126k+ pairs.",
7481        url: "https://arxiv.org/html/2501.06582v1",
7482        entity_types: ["Clause", "Party", "Obligation", "Condition"],
7483        language: "en",
7484        domain: "legal",
7485        license: "Research",
7486        citation: "ACORD Team (2025)",
7487        paper_url: "https://arxiv.org/abs/2501.06582",
7488        year: 2025,
7489        format: "JSONL",
7490        size_hint: "114 queries, 126k+ query-clause pairs with 1-5 star rankings",
7491        notes: "Clause retrieval; Limitation of Liability, Indemnification, MFN clauses",
7492        categories: [ner],
7493    },
7494
7495    PartyExtractionDataset {
7496        name: "Party Extraction Dataset",
7497        description: "Legal party identification from contracts. Contextual span representations.",
7498        url: "https://aclanthology.org/2023.ranlp-1.116.pdf",
7499        entity_types: ["Party", "Role", "Organization"],
7500        language: "en",
7501        domain: "legal",
7502        license: "Research",
7503        citation: "Tuggener et al. (2023)",
7504        paper_url: "https://aclanthology.org/2023.ranlp-1.116/",
7505        year: 2023,
7506        format: "Standoff",
7507        notes: "Legal party NER; disambiguates parties in complex contract structures",
7508        categories: [ner],
7509    },
7510
7511    // =========================================================================
7512    // Niche Domains: Food & Recipes
7513    // =========================================================================
7514    // NOTE: TASTEset exists earlier in file (Niche Domain Datasets section)
7515
7516    FINERFood {
7517        name: "FINER (Food)",
7518        description: "Food ingredient NER. 181k ingredient phrases in IOB2 format.",
7519        url: "https://figshare.com/articles/dataset/Food_Ingredient_Named-Entity_Data/20222361",
7520        entity_types: ["Ingredient", "Product", "Quantity", "Unit", "State"],
7521        language: "en",
7522        domain: "food",
7523        license: "CC-BY-4.0",
7524        citation: "Popovski et al. (2022)",
7525        year: 2022,
7526        format: "BIO",
7527        size_hint: "181,970 ingredient phrases",
7528        notes: "Semi-supervised multi-model prediction for ingredient parsing",
7529        categories: [ner, arcane_domain],
7530    },
7531
7532    NHKRecipeDataset {
7533        name: "NHK Recipe Dataset",
7534        description: "Japanese recipes with ingredient state tracking across cooking steps.",
7535        url: "https://arxiv.org/html/2507.17232v1",
7536        entity_types: ["Ingredient", "Action", "State", "Tool"],
7537        language: "ja",
7538        domain: "food",
7539        license: "Research",
7540        citation: "NHK Team (2025)",
7541        paper_url: "https://arxiv.org/abs/2507.17232",
7542        year: 2025,
7543        format: "JSONL",
7544        notes: "State transitions per ingredient; procedural understanding in Japanese",
7545        categories: [ner, multilingual, arcane_domain],
7546    },
7547
7548    // =========================================================================
7549    // Niche Domains: Ancient Languages & Scripts
7550    // =========================================================================
7551
7552    SanskritNERBhagavadGita {
7553        name: "Sanskrit NER (Bhagavad Gita)",
7554        description: "Sanskrit NER from Bhagavad Gita and Patanjali Yoga Sutras.",
7555        url: "https://www.kaggle.com/datasets/akashsuklabaidya/ner-dataset-fyp-25",
7556        entity_types: ["PER", "LOC", "ORG", "CONCEPT"],
7557        language: "sa",
7558        domain: "religious",
7559        license: "Research",
7560        citation: "Suklabaidya (2025)",
7561        year: 2025,
7562        format: "CoNLL",
7563        notes: "Classical Sanskrit texts; tests Indic script and religious terminology",
7564        categories: [ner, ancient, arcane_domain],
7565    },
7566
7567    Mahanama {
7568        name: "Mahānāma",
7569        description: "Sanskrit Entity Discovery and Linking from Mahābhārata. World's largest epic with extreme name variation.",
7570        url: "https://github.com/sujoysarkarai/mahanama",
7571        entity_types: ["Person", "Location", "Miscellaneous"],
7572        language: "sa",
7573        domain: "literary",
7574        license: "CC-BY-4.0",
7575        citation: "Sarkar et al. (2025)",
7576        paper_url: "https://arxiv.org/abs/2509.19844",
7577        year: 2025,
7578        format: "CoNLLU",
7579        annotation_scheme: "Standoff",
7580        size_hint: "988K tokens, 73K verses, 109K mentions, 5.5K entities",
7581        notes: "First large-scale Sanskrit literary EDL. Character-level boundaries for sandhi MWTs (39% of mentions). Cross-lingual KB in English. SLP1 encoding. Extreme challenges: 124.42 avg name forms per major entity (max 1385 for Śiva), 47% entity ambiguity. Best baseline: 51.57% coref F1, 64.19% EL F1.",
7582        splits: ["train", "dev", "test"],
7583        tasks: ["ner", "coref", "el"],
7584        categories: [coref, literary, ancient, long_document, arcane_domain, low_resource],
7585    },
7586
7587    AkkadianCuneiformDataset {
7588        name: "Akkadian Cuneiform Dataset",
7589        description: "Unicode cuneiform with transliteration. Old/Middle Babylonian, Neo-Assyrian.",
7590        url: "https://pmc.ncbi.nlm.nih.gov/articles/PMC7592802/",
7591        entity_types: ["Person", "Place", "God", "Object"],
7592        language: "akk",
7593        domain: "historical",
7594        license: "CC-BY-4.0",
7595        citation: "Gordin et al. (2020)",
7596        paper_url: "https://pmc.ncbi.nlm.nih.gov/articles/PMC7592802/",
7597        year: 2020,
7598        format: "Custom",
7599        notes: "Cuneiform glyphs with segmentation; covers ~2000 years of Mesopotamian text",
7600        categories: [ner, ancient, historical],
7601    },
7602
7603    HeidelbergCuneiformBenchmark {
7604        name: "Heidelberg Cuneiform Benchmark",
7605        description: "Cuneiform sign classification across historical periods.",
7606        url: "https://direct.mit.edu/coli/article/49/3/703/116160",
7607        entity_types: ["Sign", "Determinative", "Logogram"],
7608        language: "akk",
7609        domain: "historical",
7610        license: "Research",
7611        citation: "Heidelberg Team (2023)",
7612        paper_url: "https://direct.mit.edu/coli/article/49/3/703/116160",
7613        year: 2023,
7614        format: "Custom",
7615        notes: "Sign-level classification; tests paleographic variation across periods",
7616        categories: [ner, ancient, historical],
7617    },
7618
7619    // =========================================================================
7620    // Niche Domains: Mythology & Cultural Heritage
7621    // =========================================================================
7622
7623    GreekMythologyKG {
7624        name: "Greek Mythology Knowledge Graph",
7625        description: "Coref + RE pipeline for mythological texts. 15k+ entities from Roscher's Lexikon.",
7626        url: "https://www.semantic-web-journal.net/system/files/swj2754.pdf",
7627        entity_types: ["Deity", "Hero", "Place", "Creature", "Object", "Event"],
7628        language: "en",
7629        domain: "mythology",
7630        license: "CC-BY-4.0",
7631        citation: "Myth KG Team (2019)",
7632        paper_url: "https://www.semantic-web-journal.net/content/greek-mythology-knowledge-graph",
7633        year: 2019,
7634        format: "Custom",
7635        notes: "RDF conversion of mythological texts; handles divine genealogies and epithets",
7636        categories: [ner, coref, arcane_domain],
7637    },
7638
7639    FolkloreMotifDistribution {
7640        name: "Folklore Motif Distribution",
7641        description: "548 folklore motifs across 309 ethnic traditions in the Old World.",
7642        url: "https://www.academia.edu/14481230/",
7643        entity_types: ["Motif", "Tradition", "Region", "Character"],
7644        language: "mul",
7645        domain: "mythology",
7646        license: "Research",
7647        citation: "Berezkin et al. (2015)",
7648        year: 2015,
7649        format: "Custom",
7650        notes: "Cross-cultural motif tracking; tests cultural entity alignment",
7651        categories: [ner, multilingual, arcane_domain],
7652    },
7653
7654    // =========================================================================
7655    // Niche Domains: Military & Defense
7656    // =========================================================================
7657
7658    NDNER {
7659        name: "ND-NER",
7660        description: "National defense OSINT NER. 17+ entity types for military equipment.",
7661        url: "https://github.com/XinyanLi2016/ND-NER",
7662        entity_types: ["AIRCRAFT", "SHIP", "MISSILE", "TANK", "FIREARM", "ELECTRONIC", "MASS_DESTR", "SPACE", "NEW"],
7663        language: "en",
7664        domain: "defense",
7665        license: "CC-BY-SA-4.0",
7666        citation: "Li et al. (2022)",
7667        year: 2022,
7668        format: "CoNLL",
7669        notes: "Nested and flat versions; covers WMDs, directed energy, kinetic weapons",
7670        categories: [ner, nested_ner, arcane_domain],
7671    },
7672
7673    Re3dDefense {
7674        name: "re3d (Defense)",
7675        description: "Relationship and Entity Extraction Evaluation Dataset for defense domain.",
7676        url: "https://github.com/dstl/re3d",
7677        entity_types: ["Person", "Organization", "Location", "Equipment", "Event"],
7678        language: "en",
7679        domain: "defense",
7680        license: "OGL",
7681        citation: "DSTL (2016)",
7682        year: 2016,
7683        format: "BRAT",
7684        notes: "UK Defence Science; relationship extraction for intelligence analysis",
7685        categories: [ner, relation_extraction, arcane_domain],
7686    },
7687
7688    CyNERAptner {
7689        name: "CyNER-APTNER",
7690        description: "Unified cyber threat intelligence NER. Malware, threat actors, IOCs.",
7691        url: "https://ceur-ws.org/Vol-3928/paper_170.pdf",
7692        entity_types: ["Malware", "ThreatActor", "Vulnerability", "Indicator", "Tool"],
7693        language: "en",
7694        domain: "cybersecurity",
7695        license: "Research",
7696        citation: "CyNER Team (2024)",
7697        paper_url: "https://ceur-ws.org/Vol-3928/paper_170.pdf",
7698        year: 2024,
7699        format: "CoNLL",
7700        notes: "Merged cyber threat datasets; security bulletin extraction",
7701        categories: [ner, arcane_domain],
7702    },
7703
7704    // =========================================================================
7705    // Niche Domains: Geology & Earth Sciences
7706    // =========================================================================
7707
7708    ChineseEngineeringGeologyNER {
7709        name: "Chinese Engineering Geology NER",
7710        description: "Geological disasters NER with EDA-based augmentation for small samples.",
7711        url: "https://www.sciencedirect.com/science/article/abs/pii/S0957417423024272",
7712        entity_types: ["Disaster", "Location", "Cause", "Measure", "Material"],
7713        language: "zh",
7714        domain: "geology",
7715        license: "Research",
7716        citation: "Geology NER Team (2023)",
7717        paper_url: "https://doi.org/10.1016/j.eswa.2023.122427",
7718        year: 2023,
7719        format: "BIO",
7720        notes: "Engineering geology reports; data augmentation for low-resource domain",
7721        categories: [ner, multilingual, arcane_domain],
7722    },
7723
7724    LLMRocMinNER {
7725        name: "LLM-RocMin-NER",
7726        description: "Rocks and minerals NER. 2-shot prompt-based extraction with nested handling.",
7727        url: "https://www.sciencedirect.com/science/article/abs/pii/S0098300425000949",
7728        entity_types: ["Rock", "Mineral", "Element", "Property", "Location"],
7729        language: "en",
7730        domain: "geology",
7731        license: "CC-BY-4.0",
7732        citation: "RocMin Team (2025)",
7733        paper_url: "https://doi.org/10.1016/j.cageo.2025.105949",
7734        year: 2025,
7735        format: "JSONL",
7736        notes: "Few-shot geoscience NER; handles nested mineral compositions",
7737        categories: [ner, nested_ner, arcane_domain],
7738    },
7739
7740    // =========================================================================
7741    // Niche Domains: Materials Science
7742    // =========================================================================
7743
7744    PolyIE {
7745        name: "PolyIE",
7746        description: "Polymer materials NER + relation extraction from literature.",
7747        url: "https://ramprasad.mse.gatech.edu/PolyIE/",
7748        entity_types: ["Polymer", "Property", "Value", "Condition", "Method"],
7749        language: "en",
7750        domain: "materials",
7751        license: "CC-BY-4.0",
7752        citation: "Shetty et al. (2024)",
7753        paper_url: "https://aclanthology.org/2024.naacl-long.131/",
7754        year: 2024,
7755        format: "JSONL",
7756        notes: "Polymer science literature; property-structure relationships",
7757        categories: [ner, relation_extraction, arcane_domain],
7758    },
7759    // NOTE: EnzChemRED exists earlier in file (Additional Biomedical section)
7760
7761    // =========================================================================
7762    // Niche Domains: Education & Tutoring Dialogues
7763    // =========================================================================
7764
7765    MathDial {
7766        name: "MathDial",
7767        description: "Teacher-student tutoring dialogues on multi-step math problems.",
7768        url: "https://arxiv.org/abs/2305.14536",
7769        entity_types: ["Student", "Teacher", "Problem", "Step", "Hint"],
7770        language: "en",
7771        domain: "education",
7772        license: "CC-BY-4.0",
7773        citation: "Macina et al. (2023)",
7774        paper_url: "https://arxiv.org/abs/2305.14536",
7775        year: 2023,
7776        format: "JSONL",
7777        size_hint: "3,000 tutoring dialogues",
7778        notes: "Scaffolding questions taxonomy; tests pedagogical dialogue understanding",
7779        categories: [ner, dialogue, arcane_domain],
7780    },
7781
7782    CoMTA {
7783        name: "CoMTA",
7784        description: "Student-GPT4 Khanmigo tutor dialogues for knowledge tracing.",
7785        url: "https://learninganalytics.upenn.edu/ryanbaker/",
7786        entity_types: ["Student", "Tutor", "Concept", "Question", "Response"],
7787        language: "en",
7788        domain: "education",
7789        license: "Research",
7790        citation: "Baker et al. (2025)",
7791        year: 2025,
7792        format: "JSONL",
7793        size_hint: "188 dialogues",
7794        notes: "LLM tutoring evaluation; knowledge tracing in AI tutors",
7795        categories: [ner, dialogue, arcane_domain],
7796    },
7797
7798    // =========================================================================
7799    // Niche Domains: French Literary Coreference
7800    // =========================================================================
7801
7802    FrenchFullLengthFictionCoref {
7803        name: "French Full-Length Fiction Coreference",
7804        description: "Complete French novels spanning three centuries with character coreference.",
7805        url: "https://arxiv.org/html/2510.15594v1",
7806        entity_types: ["Character", "Location", "Organization"],
7807        language: "fr",
7808        domain: "fiction",
7809        license: "CC-BY-4.0",
7810        citation: "French Fiction Team (2025)",
7811        paper_url: "https://arxiv.org/abs/2510.15594",
7812        year: 2025,
7813        format: "CoNLL",
7814        annotation_scheme: "CoNLLCoref",
7815        notes: "Full novels with gender inference; tests long-document literary coref",
7816        categories: [coref, literary, multilingual, long_document],
7817    },
7818
7819    WinogradSchemaChallengeWSC {
7820        name: "Winograd Schema Challenge",
7821        description: "Pronoun resolution requiring world knowledge. 273 sentence pairs.",
7822        url: "https://cs.nyu.edu/~davise/papers/WinoPron/WSCollection.xml",
7823        entity_types: ["PER"],
7824        language: "en",
7825        domain: "evaluation",
7826        license: "Research",
7827        citation: "Levesque et al. (2012)",
7828        paper_url: "https://aclanthology.org/N15-1117/",
7829        year: 2012,
7830        format: "XML",
7831        size_hint: "273 sentence pairs",
7832        notes: "Commonsense reasoning benchmark; tests world knowledge in coreference",
7833        categories: [coref, bias_evaluation],
7834    },
7835
7836    // =========================================================================
7837    // Niche Domains: Multiparty Dialogue Coreference
7838    // =========================================================================
7839
7840    TVShowMultilingualCoref {
7841        name: "TV Show Multilingual Coreference",
7842        description: "English TV show transcripts with projections to Chinese and Farsi.",
7843        url: "https://direct.mit.edu/tacl/article/doi/10.1162/tacl_a_00581/117162",
7844        entity_types: ["Character", "Location", "Object"],
7845        language: "mul",
7846        domain: "dialogue",
7847        license: "Research",
7848        citation: "Khosla et al. (2023)",
7849        paper_url: "https://direct.mit.edu/tacl/article/doi/10.1162/tacl_a_00581",
7850        year: 2023,
7851        format: "CoNLL",
7852        annotation_scheme: "CoNLLCoref",
7853        notes: "Cross-lingual projection via subtitles; multiparty TV dialogue",
7854        categories: [coref, multilingual, dialogue],
7855    },
7856
7857    VisDialCoref {
7858        name: "VisDial Coreference",
7859        description: "Visual dialog with 120k images and 10-turn dialogs requiring visual coref.",
7860        url: "https://www.sciencedirect.com/science/article/pii/S266729522300082X",
7861        entity_types: ["Object", "Person", "Location"],
7862        language: "en",
7863        domain: "vision",
7864        license: "CC-BY-4.0",
7865        citation: "Das et al. (2017)",
7866        paper_url: "https://arxiv.org/abs/1611.08669",
7867        year: 2017,
7868        format: "JSONL",
7869        size_hint: "120k images, 10-turn dialogs",
7870        notes: "Visual coreference; grounding referents in images",
7871        categories: [coref, dialogue],
7872    },
7873
7874    // =========================================================================
7875    // Niche Domains: Procedural/Cooking Coreference
7876    // =========================================================================
7877
7878    RISeC {
7879        name: "RISeC",
7880        description: "Procedural cooking text with temporal relations and manner descriptions.",
7881        url: "https://arxiv.org/html/2411.18157v1",
7882        entity_types: ["Ingredient", "Tool", "Action", "State", "Time"],
7883        language: "en",
7884        domain: "food",
7885        license: "CC-BY-4.0",
7886        citation: "RISeC Team (2024)",
7887        paper_url: "https://arxiv.org/abs/2411.18157",
7888        year: 2024,
7889        format: "Standoff",
7890        notes: "Procedural coreference; tracks ingredient state through cooking steps",
7891        categories: [coref, arcane_domain],
7892    },
7893
7894    EFGC {
7895        name: "EFGC",
7896        description: "Cooking coreference segmented by tools, foods, and actions.",
7897        url: "https://arxiv.org/html/2411.18157v1",
7898        entity_types: ["Food", "Tool", "Action"],
7899        language: "en",
7900        domain: "food",
7901        license: "CC-BY-4.0",
7902        citation: "EFGC Team (2024)",
7903        paper_url: "https://arxiv.org/abs/2411.18157",
7904        year: 2024,
7905        format: "CoNLL",
7906        notes: "Entity flow graphs for cooking; tracks transformations",
7907        categories: [coref, arcane_domain],
7908    },
7909
7910    // =========================================================================
7911    // Niche Domains: Podcasts & Speech
7912    // =========================================================================
7913
7914    SPoRC {
7915        name: "SPoRC",
7916        description: "Structured Podcast Research Corpus. 1.1M episodes with host/guest extraction.",
7917        url: "https://arxiv.org/html/2411.07892v1",
7918        entity_types: ["Host", "Guest", "Organization", "Topic"],
7919        language: "en",
7920        domain: "speech",
7921        license: "Research",
7922        citation: "SPoRC Team (2024)",
7923        paper_url: "https://aclanthology.org/2025.acl-long.1222/",
7924        year: 2024,
7925        format: "JSONL",
7926        size_hint: "1.1M podcast episodes",
7927        notes: "Speaker diarization; host/guest inference from transcripts",
7928        categories: [ner, speech, dialogue],
7929    },
7930
7931    // =========================================================================
7932    // Niche Domains: Literary Relations in Fiction
7933    // =========================================================================
7934
7935    ARFFiction {
7936        name: "ARF (Artificial Relationships in Fiction)",
7937        description: "Synthetic RE dataset for literary texts. GPT-4o generated annotations.",
7938        url: "https://aclanthology.org/2025.latechclfl-1.13.pdf",
7939        entity_types: ["Character", "Location", "Object", "Event"],
7940        language: "en",
7941        domain: "fiction",
7942        license: "CC-BY-4.0",
7943        citation: "ARF Team (2025)",
7944        paper_url: "https://aclanthology.org/2025.latechclfl-1.13/",
7945        year: 2025,
7946        format: "JSONL",
7947        notes: "Literary relationship extraction; synthetic from public domain fiction",
7948        categories: [relation_extraction, literary],
7949    },
7950
7951    // =========================================================================
7952    // Niche Domains: Biomedical Coreference (Long-Range)
7953    // =========================================================================
7954
7955    CRAFTCorpusCoref {
7956        name: "CRAFT Corpus (Full Coref)",
7957        description: "Biomedical coref with ~30k relations. 23% span 500-12k words.",
7958        url: "https://github.com/UCDenver-ccp/CRAFT",
7959        entity_types: ["Gene", "Protein", "Cell", "Organism", "Chemical"],
7960        language: "en",
7961        domain: "biomedical",
7962        license: "CC-BY-4.0",
7963        citation: "Cohen et al. (2017)",
7964        paper_url: "https://arxiv.org/html/2510.25087v1",
7965        year: 2017,
7966        format: "Standoff",
7967        size_hint: "97 full-text PubMed articles, ~30k coref relations",
7968        notes: "Long-range dependencies; identity and appositive links; tests long-document coref",
7969        categories: [coref, biomedical, long_document],
7970    },
7971
7972    // =========================================================================
7973    // Niche Domains: Aerospace
7974    // =========================================================================
7975
7976    AerospaceNERDataset {
7977        name: "Aerospace NER Dataset",
7978        description: "First open-source aerospace NER. 5 entity types for aviation knowledge graphs.",
7979        url: "https://arc.aiaa.org/doi/10.2514/1.I011251",
7980        entity_types: ["Aircraft", "Component", "Manufacturer", "Mission", "System"],
7981        language: "en",
7982        domain: "aerospace",
7983        license: "Research",
7984        citation: "AIAA (2023)",
7985        paper_url: "https://arc.aiaa.org/doi/10.2514/1.I011251",
7986        year: 2023,
7987        format: "CoNLL",
7988        notes: "Aviation product knowledge graphs; technical aerospace terminology",
7989        categories: [ner, arcane_domain],
7990    },
7991
7992    AviationProductsNER {
7993        name: "Aviation Products NER",
7994        description: "Chinese aviation manufacturing corpus. Complex product entities.",
7995        url: "https://dspace.lib.cranfield.ac.uk/server/api/core/bitstreams/a59ed640-4783-4ddb-871b-6fd8bd0e7400/content",
7996        entity_types: ["Product", "Component", "Process", "Material"],
7997        language: "zh",
7998        domain: "aerospace",
7999        license: "Research",
8000        citation: "Cranfield (2022)",
8001        year: 2022,
8002        format: "BIO",
8003        notes: "Aviation manufacturing technical documents in Chinese",
8004        categories: [ner, multilingual, arcane_domain],
8005    },
8006
8007    // =========================================================================
8008    // Niche Domains: Sports
8009    // =========================================================================
8010
8011    VREN {
8012        name: "VREN (Volleyball)",
8013        description: "Volleyball rally descriptions for tactical statistics extraction.",
8014        url: "https://arxiv.org/html/2406.12252v1",
8015        entity_types: ["Player", "Action", "Position", "Team", "Score"],
8016        language: "en",
8017        domain: "sports",
8018        license: "CC-BY-4.0",
8019        citation: "VREN Team (2024)",
8020        paper_url: "https://arxiv.org/abs/2406.12252",
8021        year: 2024,
8022        format: "JSONL",
8023        notes: "Sports NLG; tactical action recognition from natural language",
8024        categories: [ner, arcane_domain],
8025    },
8026
8027    // =========================================================================
8028    // Niche Domains: Fashion & Retail
8029    // =========================================================================
8030
8031    FashionIQ {
8032        name: "Fashion IQ",
8033        description: "77k fashion images with relative captions. 1000 attribute labels.",
8034        url: "https://github.com/XiaoxiaoGuo/fashion-iq",
8035        entity_types: ["Texture", "Fabric", "Shape", "Part", "Style", "Color"],
8036        language: "en",
8037        domain: "fashion",
8038        license: "Research",
8039        citation: "Wu et al. (2021)",
8040        paper_url: "https://users.cs.utah.edu/~ziad/papers/cvpr_2021_fashion_iq.pdf",
8041        year: 2021,
8042        format: "JSONL",
8043        size_hint: "77k images, 1000 attribute labels",
8044        notes: "Dialog-based fashion retrieval; fine-grained attribute extraction",
8045        categories: [ner, arcane_domain],
8046    },
8047
8048    // =========================================================================
8049    // Niche Domains: Biomedical Relation Extraction
8050    // =========================================================================
8051
8052    NaturalProductsRE {
8053        name: "Natural Products RE",
8054        description: "Relation extraction in underexplored biomedical domains. Diversity-sampled entities.",
8055        url: "https://direct.mit.edu/coli/article/50/3/953/121178",
8056        entity_types: ["NaturalProduct", "Organism", "Activity", "Target"],
8057        language: "en",
8058        domain: "biomedical",
8059        license: "Research",
8060        citation: "Hettiarachchi et al. (2024)",
8061        paper_url: "https://direct.mit.edu/coli/article/50/3/953/121178",
8062        year: 2024,
8063        format: "JSONL",
8064        notes: "LOTUS-derived NP dataset; synthetic data generation achieved F1=59.0",
8065        categories: [relation_extraction, biomedical],
8066    },
8067
8068    DrugProtBioCreative {
8069        name: "DrugProt",
8070        description: "Chemical-protein interactions from BioCreative VII challenge.",
8071        url: "https://biocreative.bioinformatics.udel.edu/tasks/biocreative-vii/track-1/",
8072        entity_types: ["Chemical", "Gene", "Protein"],
8073        language: "en",
8074        domain: "biomedical",
8075        license: "Research",
8076        citation: "BioCreative VII (2021)",
8077        paper_url: "https://academic.oup.com/database/article/doi/10.1093/database/baac098/6833204",
8078        year: 2021,
8079        format: "BRAT",
8080        notes: "Drug-protein interaction classification; BioCreative shared task",
8081        categories: [relation_extraction, biomedical],
8082    },
8083
8084    // =========================================================================
8085    // Niche Domains: Materials Science (Joint NER+RE)
8086    // =========================================================================
8087
8088    MOFDataset {
8089        name: "MOF Dataset",
8090        description: "Metal-organic frameworks joint NER+RE. GPT-3/Llama extraction.",
8091        url: "https://pmc.ncbi.nlm.nih.gov/articles/PMC10869356/",
8092        entity_types: ["MOF", "Linker", "Metal", "Property", "Application"],
8093        language: "en",
8094        domain: "materials",
8095        license: "CC-BY-4.0",
8096        citation: "MOF Team (2024)",
8097        paper_url: "https://pmc.ncbi.nlm.nih.gov/articles/PMC10869356/",
8098        year: 2024,
8099        format: "JSONL",
8100        notes: "Metal-organic framework literature; LLM-based extraction pipeline",
8101        categories: [ner, relation_extraction, arcane_domain],
8102    },
8103
8104    SolidStateDoping {
8105        name: "Solid-State Doping",
8106        description: "Impurity doping in materials. Joint NER+RE from literature.",
8107        url: "https://pmc.ncbi.nlm.nih.gov/articles/PMC10869356/",
8108        entity_types: ["Host", "Dopant", "Property", "Concentration", "Method"],
8109        language: "en",
8110        domain: "materials",
8111        license: "CC-BY-4.0",
8112        citation: "Doping Team (2024)",
8113        paper_url: "https://pmc.ncbi.nlm.nih.gov/articles/PMC10869356/",
8114        year: 2024,
8115        format: "JSONL",
8116        notes: "Semiconductor doping literature; tests materials science terminology",
8117        categories: [ner, relation_extraction, arcane_domain],
8118    },
8119
8120    // =========================================================================
8121    // Niche Domains: Agriculture
8122    // =========================================================================
8123
8124    AgriNER {
8125        name: "AgriNER",
8126        description: "Agricultural knowledge graph construction. 36 entity types, 9 relation types.",
8127        url: "https://2023.eswc-conferences.org/wp-content/uploads/2023/05/paper_De_2023_AgriNER.pdf",
8128        entity_types: ["Crop", "Disease", "Soil", "Pathogen", "Pesticide", "Product"],
8129        language: "en",
8130        domain: "agriculture",
8131        license: "Research",
8132        citation: "De et al. (2023)",
8133        paper_url: "https://2023.eswc-conferences.org/AgriNER/",
8134        year: 2023,
8135        format: "JSONL",
8136        notes: "Agricultural KG construction; covers crops, diseases, soil, pathogens",
8137        categories: [ner, relation_extraction, arcane_domain],
8138    },
8139
8140    AGRONER {
8141        name: "AGRONER",
8142        description: "Unsupervised agricultural NER. Six major agricultural entity types.",
8143        url: "https://www.sciencedirect.com/science/article/abs/pii/S0957417423009429",
8144        entity_types: ["Disease", "Soil", "Pathogen", "Pesticide", "Crop", "Product"],
8145        language: "en",
8146        domain: "agriculture",
8147        license: "Research",
8148        citation: "AGRONER Team (2023)",
8149        paper_url: "https://doi.org/10.1016/j.eswa.2023.121001",
8150        year: 2023,
8151        format: "BIO",
8152        notes: "Unsupervised approach; no manual annotation required",
8153        categories: [ner, arcane_domain],
8154    },
8155
8156    // NOTE: AgCNER exists earlier in file (Biomedical/Temporal section)
8157
8158    AgMNER {
8159        name: "AgMNER",
8160        description: "Chinese multimodal agricultural NER. Text and speech combined.",
8161        url: "https://www.nature.com/articles/s41598-025-88874-9",
8162        entity_types: ["Crop", "Disease", "Pest", "Method"],
8163        language: "zh",
8164        domain: "agriculture",
8165        license: "CC-BY-4.0",
8166        citation: "AgMNER Team (2025)",
8167        paper_url: "https://www.nature.com/articles/s41598-025-88874-9",
8168        year: 2025,
8169        format: "JSONL",
8170        notes: "Multimodal NER; combines text and speech for agricultural domain",
8171        categories: [ner, multilingual, speech, arcane_domain],
8172    },
8173
8174    // =========================================================================
8175    // Niche Domains: Polish Coreference
8176    // =========================================================================
8177
8178    PolishCoreferenceCorpus {
8179        name: "Polish Coreference Corpus",
8180        description: "Polish coreference resolution corpus. General domain Polish text.",
8181        url: "http://zil.ipipan.waw.pl/PolishCoreferenceCorpus",
8182        entity_types: ["PER", "ORG", "LOC"],
8183        language: "pl",
8184        domain: "general",
8185        license: "CC-BY-SA-4.0",
8186        citation: "Ogrodniczuk et al. (2015)",
8187        year: 2015,
8188        format: "Custom",
8189        annotation_scheme: "Custom",
8190        notes: "Polish morphological complexity; rich inflection system",
8191        categories: [coref, multilingual],
8192    },
8193
8194    // =========================================================================
8195    // Niche Domains: Arabic Event Coreference
8196    // =========================================================================
8197
8198    ArabicEventCoref {
8199        name: "Arabic Event Coreference",
8200        description: "Arabic event coreference. Underexplored language for event coref.",
8201        url: "https://dl.acm.org/doi/10.1145/3743047",
8202        entity_types: ["Event", "Time", "Location", "Participant"],
8203        language: "ar",
8204        domain: "news",
8205        license: "Research",
8206        citation: "Arabic Event Coref Team (2024)",
8207        paper_url: "https://dl.acm.org/doi/10.1145/3743047",
8208        year: 2024,
8209        format: "CoNLL",
8210        annotation_scheme: "CoNLLCoref",
8211        notes: "Arabic event coreference; RTL script; underexplored language",
8212        categories: [coref, event_coref, multilingual],
8213    },
8214
8215    // =========================================================================
8216    // Niche Domains: Code-Switching & Low-Resource
8217    // =========================================================================
8218
8219    HindiEnglishSocialMediaNER {
8220        name: "Hindi-English Social Media NER",
8221        description: "Code-switched Hindi-English NER from social media.",
8222        url: "https://github.com/juand-r/entity-recognition-datasets",
8223        entity_types: ["PER", "LOC", "ORG"],
8224        language: "hi-en",
8225        domain: "social_media",
8226        license: "Research",
8227        citation: "Hindi-English NER Team",
8228        year: 2018,
8229        format: "CoNLL",
8230        notes: "Code-switching between Hindi (Devanagari) and English; social media",
8231        categories: [ner, multilingual, social_media, low_resource],
8232    },
8233
8234    // =========================================================================
8235    // Niche Domains: Astronomy & Space (Extended)
8236    // =========================================================================
8237
8238    AstroBERTCorpus {
8239        name: "astroBERT Corpus",
8240        description: "Domain-specific BERT trained on 395k astronomical papers.",
8241        url: "https://arxiv.org/html/2310.17892v2",
8242        entity_types: ["CelestialObject", "Mission", "Instrument", "Phenomenon"],
8243        language: "en",
8244        domain: "astronomy",
8245        license: "Research",
8246        citation: "Grezes et al. (2023)",
8247        paper_url: "https://arxiv.org/abs/2310.17892",
8248        year: 2023,
8249        format: "Custom",
8250        size_hint: "395,499 astronomical papers",
8251        notes: "Domain-adapted BERT for astronomical entity extraction",
8252        categories: [ner, arcane_domain],
8253    },
8254
8255    AstronomicalTelegramKEE {
8256        name: "Astronomical Telegram KEE",
8257        description: "Event IDs, object names, telescope names from GCN Circulars.",
8258        url: "https://www.raa-journal.org/issues/all/2024/v24n6/202405/",
8259        entity_types: ["EventID", "ObjectName", "TelescopeName", "Observatory"],
8260        language: "en",
8261        domain: "astronomy",
8262        license: "Research",
8263        citation: "KEE Team (2024)",
8264        paper_url: "https://www.raa-journal.org/issues/all/2024/v24n6/202405/",
8265        year: 2024,
8266        format: "JSONL",
8267        notes: "LLM extraction from GCN Circulars; astronomical event reports",
8268        categories: [ner, arcane_domain],
8269    },
8270
8271    // =========================================================================
8272    // Niche Domains: Music & Audio
8273    // =========================================================================
8274
8275    Saraga {
8276        name: "Saraga",
8277        description: "Indian Art Music dataset. Carnatic and Hindustani traditions.",
8278        url: "https://arxiv.org/pdf/2309.16396.pdf",
8279        entity_types: ["Raaga", "Taala", "Artist", "Composition", "Instrument"],
8280        language: "mul",
8281        domain: "music",
8282        license: "CC-BY-4.0",
8283        citation: "Saraga Team (2023)",
8284        paper_url: "https://arxiv.org/abs/2309.16396",
8285        year: 2023,
8286        format: "JSONL",
8287        notes: "Indian classical music; Carnatic/Hindustani metadata extraction",
8288        categories: [ner, multilingual, arcane_domain],
8289    },
8290
8291    MusicBrainzRE {
8292        name: "MusicBrainz RE",
8293        description: "Music metadata relations from Freebase/MusicBrainz. 116M instances.",
8294        url: "https://web.stanford.edu/~jurafsky/mintz.pdf",
8295        entity_types: ["Artist", "Album", "Track", "Label", "Genre"],
8296        language: "en",
8297        domain: "music",
8298        license: "CC0",
8299        citation: "Mintz et al. (2009)",
8300        paper_url: "https://web.stanford.edu/~jurafsky/mintz.pdf",
8301        year: 2009,
8302        format: "Custom",
8303        size_hint: "116 million instances, 7,300 binary relations",
8304        notes: "Distant supervision from Freebase; music metadata relations",
8305        categories: [relation_extraction, arcane_domain],
8306    },
8307
8308    // =========================================================================
8309    // Niche Domains: Archaeology
8310    // =========================================================================
8311
8312    DINAA {
8313        name: "DINAA",
8314        description: "Digital Index of North American Archaeology. Geospatial heritage data.",
8315        url: "https://ux.opencontext.org/endangered-data-and-the-digital-index-of-north-american-archaeology-dinaa/",
8316        entity_types: ["Site", "Artifact", "Culture", "Period", "Location"],
8317        language: "en",
8318        domain: "archaeology",
8319        license: "CC-BY-4.0",
8320        citation: "DINAA Team",
8321        year: 2015,
8322        format: "Custom",
8323        notes: "North American archaeological sites; geospatial heritage preservation",
8324        categories: [ner, arcane_domain],
8325    },
8326
8327    // =========================================================================
8328    // Niche Domains: Semi-Structured Web RE
8329    // =========================================================================
8330
8331    IMDbSemiStructuredRE {
8332        name: "IMDb Semi-Structured RE",
8333        description: "Distantly supervised extraction from structured web content.",
8334        url: "https://www.vldb.org/pvldb/vol11/p1084-lockard.pdf",
8335        entity_types: ["Movie", "Person", "Role", "Date", "Award"],
8336        language: "en",
8337        domain: "entertainment",
8338        license: "Research",
8339        citation: "Lockard et al. (2018)",
8340        paper_url: "https://www.vldb.org/pvldb/vol11/p1084-lockard.pdf",
8341        year: 2018,
8342        format: "JSONL",
8343        notes: "Web table extraction; semi-structured movie database relations",
8344        categories: [relation_extraction, arcane_domain],
8345    },
8346
8347    // NOTE: SciER exists earlier in file (Entity Linking section)
8348
8349    // =========================================================================
8350    // Niche Domains: Slot Filling / Intent NER
8351    // =========================================================================
8352
8353    ATISFlightBooking {
8354        name: "ATIS Flight Booking",
8355        description: "Slot-filling NER for flight booking intents. Classic NLU benchmark.",
8356        url: "https://github.com/yvchen/JointSLU",
8357        entity_types: ["FromCity", "ToCity", "DepartDate", "ReturnDate", "Airline", "FlightNumber"],
8358        language: "en",
8359        domain: "travel",
8360        license: "Research",
8361        citation: "Hemphill et al. (1990)",
8362        year: 1990,
8363        format: "BIO",
8364        notes: "Classic slot-filling benchmark; spoken language understanding",
8365        categories: [ner],
8366    },
8367
8368    // =========================================================================
8369    // Niche Domains: Paleontology
8370    // =========================================================================
8371
8372    PaleontologyNER {
8373        name: "Paleontology NER",
8374        description: "Dinosaurs, mammals, and river ecosystems entity retrieval.",
8375        url: "https://aclanthology.org/anthology-files/anthology-files/pdf/findings/2023.findings-emnlp.218v1.pdf",
8376        entity_types: ["Taxon", "Location", "TimePeriod", "Formation", "Specimen"],
8377        language: "en",
8378        domain: "paleontology",
8379        license: "Research",
8380        citation: "Paleo NER Team (2023)",
8381        paper_url: "https://aclanthology.org/2023.findings-emnlp.218/",
8382        year: 2023,
8383        format: "CoNLL",
8384        notes: "Paleontological literature; fossil taxa and geological formations",
8385        categories: [ner, arcane_domain],
8386    },
8387
8388    // =========================================================================
8389    // Niche Domains: Water Resources
8390    // =========================================================================
8391
8392    WaterResourceNER {
8393        name: "Water Resource NER",
8394        description: "Domain-adaptive NER for AI-driven water resource management.",
8395        url: "https://www.frontiersin.org/journals/environmental-science/articles/10.3389/fenvs.2025.1558317/pdf",
8396        entity_types: ["WaterBody", "Infrastructure", "Pollutant", "Measurement", "Policy"],
8397        language: "en",
8398        domain: "environment",
8399        license: "CC-BY-4.0",
8400        citation: "Water NER Team (2025)",
8401        paper_url: "https://www.frontiersin.org/articles/10.3389/fenvs.2025.1558317/",
8402        year: 2025,
8403        format: "BIO",
8404        notes: "Water management domain; infrastructure and policy entities",
8405        categories: [ner, arcane_domain],
8406    },
8407
8408    // =========================================================================
8409    // Niche Domains: Cybersecurity
8410    // =========================================================================
8411
8412    MalwareTextDB {
8413        name: "MalwareTextDB",
8414        description: "Annotated malware articles for cybersecurity NER.",
8415        url: "https://github.com/juand-r/entity-recognition-datasets",
8416        entity_types: ["Malware", "Vulnerability", "Tool", "ThreatActor", "IOC"],
8417        language: "en",
8418        domain: "cybersecurity",
8419        license: "Research",
8420        citation: "MalwareTextDB Team",
8421        year: 2017,
8422        format: "BRAT",
8423        notes: "Security bulletin extraction; malware family identification",
8424        categories: [ner, arcane_domain],
8425    },
8426
8427    // =========================================================================
8428    // Niche Domains: Finance
8429    // =========================================================================
8430
8431    SECFilingsNER {
8432        name: "SEC-filings",
8433        description: "Finance domain NER from SEC filing documents.",
8434        url: "https://raw.githubusercontent.com/juand-r/entity-recognition-datasets/master/data/SEC-filings/CONLL-format/data/test/FIN3.txt",
8435        entity_types: ["Company", "Person", "Money", "Date", "Percentage"],
8436        language: "en",
8437        domain: "finance",
8438        license: "CC-BY-3.0",
8439        citation: "SEC-filings Team",
8440        year: 2018,
8441        format: "CoNLL",
8442        notes: "Financial documents; SEC 10-K and 10-Q filings",
8443        categories: [ner],
8444    },
8445
8446    // =========================================================================
8447    // Niche Domains: Anatomical/Biomedical
8448    // =========================================================================
8449
8450    AnEM {
8451        name: "AnEM",
8452        description: "Anatomical entity mentions corpus. Anatomy terms in biomedical text.",
8453        url: "http://www.nactem.ac.uk/anatomy/",
8454        entity_types: ["AnatomicalStructure", "Organ", "Tissue", "Cell", "OrganismSubdivision"],
8455        language: "en",
8456        domain: "biomedical",
8457        license: "CC-BY-SA-3.0",
8458        citation: "Ohta et al. (2012)",
8459        year: 2012,
8460        format: "Standoff",
8461        notes: "Anatomical entity corpus; fine-grained anatomy typing",
8462        categories: [ner, biomedical],
8463    },
8464
8465    // =========================================================================
8466    // Niche Domains: Recipe/Food (Extended)
8467    // =========================================================================
8468
8469    RecipeDBAnnotated {
8470        name: "RecipeDB Annotated",
8471        description: "88k ingredient phrases via clustering-based sampling with Stanford NER.",
8472        url: "https://aclanthology.org/2024.lrec-main.406/",
8473        entity_types: ["Ingredient", "Quantity", "Unit", "Preparation"],
8474        language: "en",
8475        domain: "food",
8476        license: "CC-BY-4.0",
8477        citation: "RecipeDB Team (2024)",
8478        paper_url: "https://aclanthology.org/2024.lrec-main.406/",
8479        year: 2024,
8480        format: "JSONL",
8481        size_hint: "88,526 ingredient phrases",
8482        notes: "Clustering-based annotation; Stanford NER pipeline",
8483        categories: [ner, arcane_domain],
8484    },
8485
8486    // =========================================================================
8487    // Niche Domains: Social Media Twitter
8488    // =========================================================================
8489
8490    RitterTwitterNER {
8491        name: "Ritter Twitter NER",
8492        description: "Twitter NER dataset with diverse entity types from tweets.",
8493        url: "https://github.com/aritter/twitter_nlp",
8494        entity_types: ["PER", "LOC", "ORG", "PRODUCT", "FACILITY", "BAND", "SPORTSTEAM"],
8495        language: "en",
8496        domain: "social_media",
8497        license: "Research",
8498        citation: "Ritter et al. (2011)",
8499        paper_url: "https://aclanthology.org/D11-1141/",
8500        year: 2011,
8501        format: "CoNLL",
8502        notes: "Early Twitter NER; 10 entity types including bands and sports teams",
8503        categories: [ner, social_media],
8504    },
8505
8506    // =========================================================================
8507    // Niche Domains: Music Domain
8508    // =========================================================================
8509
8510    MusicNER {
8511        name: "Music-NER",
8512        description: "Music domain entities. Artists, albums, songs, genres.",
8513        url: "https://github.com/juand-r/entity-recognition-datasets",
8514        entity_types: ["Artist", "Album", "Song", "Genre", "Instrument", "Label"],
8515        language: "en",
8516        domain: "music",
8517        license: "MIT",
8518        citation: "Music-NER Team",
8519        year: 2020,
8520        format: "CoNLL",
8521        notes: "Music domain NER; includes record labels and instrument types",
8522        categories: [ner, arcane_domain],
8523    },
8524
8525    // =========================================================================
8526    // Niche Domains: Tutoring/Education (Extended)
8527    // =========================================================================
8528
8529    TutoringSessionsAlgebra {
8530        name: "500 Tutoring Sessions",
8531        description: "32k utterances from elementary algebra/physics tutoring. Mode identification.",
8532        url: "https://aclanthology.org/C16-1188.pdf",
8533        entity_types: ["Student", "Tutor", "Concept", "Problem"],
8534        language: "en",
8535        domain: "education",
8536        license: "Research",
8537        citation: "Boyer et al. (2016)",
8538        paper_url: "https://aclanthology.org/C16-1188/",
8539        year: 2016,
8540        format: "Custom",
8541        size_hint: "500 sessions, 32,368 utterances",
8542        notes: "Tutoring mode identification; algebra and physics domains",
8543        categories: [ner, dialogue, arcane_domain],
8544    },
8545
8546    // =========================================================================
8547    // Niche Domains: Geology (Extended)
8548    // =========================================================================
8549
8550    GNERGeoscience {
8551        name: "GNER",
8552        description: "Chinese geological entities from geoscience survey reports.",
8553        url: "https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/2019EA000610",
8554        entity_types: ["Rock", "Mineral", "Stratum", "Age", "Location"],
8555        language: "zh",
8556        domain: "geology",
8557        license: "Research",
8558        citation: "GNER Team (2019)",
8559        paper_url: "https://doi.org/10.1029/2019EA000610",
8560        year: 2019,
8561        format: "BIO",
8562        notes: "Chinese geoscience reports; geological survey terminology",
8563        categories: [ner, multilingual, arcane_domain],
8564    },
8565
8566    FourRegionsGeologyNER {
8567        name: "Four Regions Geology NER",
8568        description: "Regional geological surveys with 6 typical geological categories.",
8569        url: "https://www.geodoi.ac.cn/WebEn/down.aspx?ID=1873",
8570        entity_types: ["Rock", "Mineral", "Stratum", "Structure", "Age", "Location"],
8571        language: "zh",
8572        domain: "geology",
8573        license: "Research",
8574        citation: "Four Regions Team",
8575        year: 2020,
8576        format: "BIO",
8577        notes: "Regional Chinese geological surveys; multiple survey regions",
8578        categories: [ner, multilingual, arcane_domain],
8579    },
8580
8581    // =========================================================================
8582    // Niche Domains: Podcasts & Speech (Extended)
8583    // =========================================================================
8584
8585    MSPPodcast {
8586        name: "MSP-Podcast",
8587        description: "100k+ English podcast episodes with multimodal annotations.",
8588        url: "https://ecs.utdallas.edu/research/researchlabs/msp-lab/MSP-Podcast.html",
8589        entity_types: ["Speaker", "Topic", "Emotion", "Sentiment"],
8590        language: "en",
8591        domain: "speech",
8592        license: "Research",
8593        citation: "Lotfian & Busso (2019)",
8594        year: 2019,
8595        format: "Custom",
8596        size_hint: "100,000+ podcast episodes",
8597        notes: "Multimodal podcast annotations; emotion and sentiment",
8598        categories: [ner, speech, arcane_domain],
8599    },
8600
8601    SpotifyPodcastsDataset {
8602        name: "Spotify Podcasts Dataset",
8603        description: "Professional and amateur podcast episodes with transcriptions.",
8604        url: "https://www.isca-archive.org/interspeech_2023/kotey23_interspeech.pdf",
8605        entity_types: ["Host", "Guest", "Topic", "Advertisement"],
8606        language: "en",
8607        domain: "speech",
8608        license: "Research",
8609        citation: "Spotify Research (2023)",
8610        paper_url: "https://www.isca-archive.org/interspeech_2023/kotey23_interspeech.html",
8611        year: 2023,
8612        format: "JSONL",
8613        notes: "Professional and amateur podcasts; varied audio quality",
8614        categories: [ner, speech, arcane_domain],
8615    },
8616
8617    // =========================================================================
8618    // Niche Domains: Sports (Extended)
8619    // =========================================================================
8620
8621    SportsNERGeneral {
8622        name: "Sports NER",
8623        description: "Player names, team names, event specifics from sports texts.",
8624        url: "https://arxiv.org/html/2406.12252v1",
8625        entity_types: ["Player", "Team", "Event", "Venue", "Score", "Date"],
8626        language: "en",
8627        domain: "sports",
8628        license: "Research",
8629        citation: "Sports NER Team (2024)",
8630        paper_url: "https://arxiv.org/abs/2406.12252",
8631        year: 2024,
8632        format: "CoNLL",
8633        notes: "General sports domain; player and team tracking",
8634        categories: [ner, arcane_domain],
8635    },
8636
8637    // =========================================================================
8638    // Niche Domains: E-sports & Gaming Stats
8639    // =========================================================================
8640
8641    EsportsNER {
8642        name: "Esports NER",
8643        description: "Esports entity recognition. Pro players, teams, tournaments, games.",
8644        url: "https://arxiv.org/html/2406.12252v1",
8645        entity_types: ["Player", "Team", "Tournament", "Game", "Champion", "Map"],
8646        language: "en",
8647        domain: "gaming",
8648        license: "Research",
8649        citation: "Esports NER Team (2024)",
8650        year: 2024,
8651        format: "CoNLL",
8652        notes: "Competitive gaming; League of Legends, CS:GO, Dota 2 terminology",
8653        categories: [ner, arcane_domain],
8654    },
8655
8656    // =========================================================================
8657    // Niche Domains: Fashion (Extended)
8658    // =========================================================================
8659
8660    DeepFashion2 {
8661        name: "DeepFashion2",
8662        description: "Comprehensive fashion dataset. 491k images, 801k clothing items.",
8663        url: "https://github.com/switchablenorms/DeepFashion2",
8664        entity_types: ["Category", "Style", "Color", "Pattern", "Landmark"],
8665        language: "en",
8666        domain: "fashion",
8667        license: "Research",
8668        citation: "Ge et al. (2019)",
8669        paper_url: "https://arxiv.org/abs/1901.07973",
8670        year: 2019,
8671        format: "JSONL",
8672        size_hint: "491k images, 801k clothing items, 13 categories",
8673        notes: "Dense landmarks; cross-domain pose variation",
8674        categories: [ner, arcane_domain],
8675    },
8676
8677    // =========================================================================
8678    // Niche Domains: Construction & Engineering
8679    // =========================================================================
8680
8681    ConstructionNER {
8682        name: "Construction NER",
8683        description: "Construction industry entities. Materials, equipment, processes.",
8684        url: "https://www.sciencedirect.com/science/article/pii/S0926580520309481",
8685        entity_types: ["Material", "Equipment", "Process", "Measurement", "Location"],
8686        language: "en",
8687        domain: "construction",
8688        license: "Research",
8689        citation: "Construction NER Team (2021)",
8690        year: 2021,
8691        format: "BIO",
8692        notes: "Construction domain; building materials and heavy equipment",
8693        categories: [ner, arcane_domain],
8694    },
8695
8696    // =========================================================================
8697    // Niche Domains: Pharmaceutical
8698    // =========================================================================
8699
8700    PharmaNER {
8701        name: "PharmaNER",
8702        description: "Pharmaceutical named entity recognition. Drug names, dosages, routes.",
8703        url: "https://github.com/juand-r/entity-recognition-datasets",
8704        entity_types: ["Drug", "Dosage", "Route", "Frequency", "Indication"],
8705        language: "en",
8706        domain: "biomedical",
8707        license: "Research",
8708        citation: "PharmaNER Team",
8709        year: 2019,
8710        format: "BIO",
8711        notes: "Pharmaceutical domain; prescription and OTC drug extraction",
8712        categories: [ner, biomedical, clinical],
8713    },
8714
8715    // =========================================================================
8716    // Niche Domains: E-commerce (Extended)
8717    // =========================================================================
8718
8719    ProductReviewNER {
8720        name: "Product Review NER",
8721        description: "E-commerce product reviews with aspect and sentiment entities.",
8722        url: "https://www.aclweb.org/anthology/S14-2004/",
8723        entity_types: ["Aspect", "Opinion", "Product", "Feature", "Sentiment"],
8724        language: "en",
8725        domain: "ecommerce",
8726        license: "CC-BY-4.0",
8727        citation: "SemEval 2014",
8728        paper_url: "https://aclanthology.org/S14-2004/",
8729        year: 2014,
8730        format: "XML",
8731        notes: "Aspect-based sentiment; product feature extraction",
8732        categories: [ner],
8733    },
8734
8735    // =========================================================================
8736    // Niche Domains: Real Estate
8737    // =========================================================================
8738
8739    RealEstateNER {
8740        name: "Real Estate NER",
8741        description: "Property listings entity extraction. Addresses, prices, features.",
8742        url: "https://github.com/juand-r/entity-recognition-datasets",
8743        entity_types: ["Address", "Price", "Size", "Rooms", "Amenity", "PropertyType"],
8744        language: "en",
8745        domain: "real_estate",
8746        license: "Research",
8747        citation: "Real Estate NER Team",
8748        year: 2020,
8749        format: "CoNLL",
8750        notes: "Property listing domain; residential and commercial",
8751        categories: [ner, arcane_domain],
8752    },
8753
8754    // =========================================================================
8755    // Niche Domains: Automotive
8756    // =========================================================================
8757
8758    AutomotiveNER {
8759        name: "Automotive NER",
8760        description: "Vehicle and automotive entities. Makes, models, parts, specs.",
8761        url: "https://github.com/juand-r/entity-recognition-datasets",
8762        entity_types: ["Make", "Model", "Part", "Specification", "Year", "Price"],
8763        language: "en",
8764        domain: "automotive",
8765        license: "Research",
8766        citation: "Automotive NER Team",
8767        year: 2021,
8768        format: "CoNLL",
8769        notes: "Automotive domain; vehicle specifications and parts",
8770        categories: [ner, arcane_domain],
8771    },
8772
8773    // =========================================================================
8774    // Niche Domains: Tourism & Travel
8775    // =========================================================================
8776
8777    TourismNER {
8778        name: "Tourism NER",
8779        description: "Tourism and travel entities. Attractions, hotels, restaurants.",
8780        url: "https://github.com/juand-r/entity-recognition-datasets",
8781        entity_types: ["Attraction", "Hotel", "Restaurant", "City", "Activity", "Price"],
8782        language: "en",
8783        domain: "tourism",
8784        license: "CC-BY-4.0",
8785        citation: "Tourism NER Team",
8786        year: 2019,
8787        format: "CoNLL",
8788        notes: "Travel domain; tourist attractions and accommodations",
8789        categories: [ner, arcane_domain],
8790    },
8791
8792    // =========================================================================
8793    // Niche Domains: Energy & Utilities
8794    // =========================================================================
8795
8796    EnergyNER {
8797        name: "Energy NER",
8798        description: "Energy sector entities. Power plants, fuels, grid infrastructure.",
8799        url: "https://github.com/juand-r/entity-recognition-datasets",
8800        entity_types: ["PowerPlant", "Fuel", "Grid", "Capacity", "Company", "Location"],
8801        language: "en",
8802        domain: "energy",
8803        license: "Research",
8804        citation: "Energy NER Team",
8805        year: 2020,
8806        format: "BIO",
8807        notes: "Energy sector; renewable and fossil fuel infrastructure",
8808        categories: [ner, arcane_domain],
8809    },
8810
8811    // =========================================================================
8812    // Niche Domains: Insurance
8813    // =========================================================================
8814
8815    InsuranceNER {
8816        name: "Insurance NER",
8817        description: "Insurance domain entities. Policies, claims, coverages.",
8818        url: "https://github.com/juand-r/entity-recognition-datasets",
8819        entity_types: ["Policy", "Claim", "Coverage", "Premium", "Deductible", "Beneficiary"],
8820        language: "en",
8821        domain: "insurance",
8822        license: "Research",
8823        citation: "Insurance NER Team",
8824        year: 2021,
8825        format: "JSONL",
8826        notes: "Insurance domain; policy and claims extraction",
8827        categories: [ner, arcane_domain],
8828    },
8829
8830    // =========================================================================
8831    // Niche Domains: Logistics & Supply Chain
8832    // =========================================================================
8833
8834    LogisticsNER {
8835        name: "Logistics NER",
8836        description: "Supply chain and logistics entities. Shipments, warehouses, routes.",
8837        url: "https://github.com/juand-r/entity-recognition-datasets",
8838        entity_types: ["Shipment", "Warehouse", "Route", "Carrier", "TrackingNumber", "Date"],
8839        language: "en",
8840        domain: "logistics",
8841        license: "Research",
8842        citation: "Logistics NER Team",
8843        year: 2020,
8844        format: "CoNLL",
8845        notes: "Supply chain domain; shipping and warehousing",
8846        categories: [ner, arcane_domain],
8847    },
8848
8849    // =========================================================================
8850    // Niche Domains: HR & Recruitment
8851    // =========================================================================
8852
8853    ResumeNER {
8854        name: "Resume NER",
8855        description: "Resume/CV entity extraction. Skills, experience, education.",
8856        url: "https://www.kaggle.com/datasets/dataturks/resume-entities-for-ner",
8857        entity_types: ["Skill", "Company", "Degree", "University", "Date", "Location"],
8858        language: "en",
8859        domain: "hr",
8860        license: "CC0",
8861        citation: "DataTurks",
8862        year: 2018,
8863        format: "JSONL",
8864        notes: "Resume parsing; skill and experience extraction",
8865        categories: [ner],
8866    },
8867
8868    JobPostingNER {
8869        name: "Job Posting NER",
8870        description: "Job posting entity extraction. Requirements, benefits, qualifications.",
8871        url: "https://github.com/juand-r/entity-recognition-datasets",
8872        entity_types: ["JobTitle", "Skill", "Salary", "Location", "Company", "Benefit"],
8873        language: "en",
8874        domain: "hr",
8875        license: "Research",
8876        citation: "Job Posting NER Team",
8877        year: 2020,
8878        format: "CoNLL",
8879        notes: "Job listing domain; requirement and qualification extraction",
8880        categories: [ner, arcane_domain],
8881    },
8882
8883    // =========================================================================
8884    // Niche Domains: Healthcare Administration
8885    // =========================================================================
8886
8887    HealthcareAdminNER {
8888        name: "Healthcare Admin NER",
8889        description: "Healthcare administration entities. Procedures, billing codes, facilities.",
8890        url: "https://github.com/juand-r/entity-recognition-datasets",
8891        entity_types: ["Procedure", "BillingCode", "Facility", "Provider", "Insurance"],
8892        language: "en",
8893        domain: "healthcare",
8894        license: "Research",
8895        citation: "Healthcare Admin Team",
8896        year: 2021,
8897        format: "BIO",
8898        notes: "Healthcare administration; billing and coding",
8899        categories: [ner, clinical, arcane_domain],
8900    },
8901
8902    // =========================================================================
8903    // Niche Domains: Telecommunications
8904    // =========================================================================
8905
8906    TelecomNER {
8907        name: "Telecom NER",
8908        description: "Telecommunications entities. Networks, devices, protocols.",
8909        url: "https://github.com/juand-r/entity-recognition-datasets",
8910        entity_types: ["Network", "Device", "Protocol", "Carrier", "Plan", "Speed"],
8911        language: "en",
8912        domain: "telecom",
8913        license: "Research",
8914        citation: "Telecom NER Team",
8915        year: 2020,
8916        format: "CoNLL",
8917        notes: "Telecommunications domain; network and service extraction",
8918        categories: [ner, arcane_domain],
8919    },
8920
8921    // =========================================================================
8922    // Niche Domains: Weather & Climate
8923    // =========================================================================
8924
8925    WeatherNER {
8926        name: "Weather NER",
8927        description: "Weather and climate entities. Events, measurements, locations.",
8928        url: "https://github.com/juand-r/entity-recognition-datasets",
8929        entity_types: ["WeatherEvent", "Temperature", "Precipitation", "Location", "Date", "Wind"],
8930        language: "en",
8931        domain: "weather",
8932        license: "CC-BY-4.0",
8933        citation: "Weather NER Team",
8934        year: 2021,
8935        format: "BIO",
8936        notes: "Meteorological domain; weather event extraction",
8937        categories: [ner, arcane_domain],
8938    },
8939
8940    // =========================================================================
8941    // Niche Domains: Manufacturing
8942    // =========================================================================
8943
8944    ManufacturingNER {
8945        name: "Manufacturing NER",
8946        description: "Manufacturing entities. Parts, processes, machines, defects.",
8947        url: "https://github.com/juand-r/entity-recognition-datasets",
8948        entity_types: ["Part", "Process", "Machine", "Defect", "Material", "Measurement"],
8949        language: "en",
8950        domain: "manufacturing",
8951        license: "Research",
8952        citation: "Manufacturing NER Team",
8953        year: 2021,
8954        format: "BIO",
8955        notes: "Industrial manufacturing; quality control and process",
8956        categories: [ner, arcane_domain],
8957    },
8958
8959    // =========================================================================
8960    // Niche Domains: Retail & Inventory
8961    // =========================================================================
8962
8963    RetailInventoryNER {
8964        name: "Retail Inventory NER",
8965        description: "Retail inventory entities. SKUs, quantities, locations, prices.",
8966        url: "https://github.com/juand-r/entity-recognition-datasets",
8967        entity_types: ["SKU", "Quantity", "Location", "Price", "Category", "Supplier"],
8968        language: "en",
8969        domain: "retail",
8970        license: "Research",
8971        citation: "Retail NER Team",
8972        year: 2020,
8973        format: "JSONL",
8974        notes: "Inventory management; stock and supplier tracking",
8975        categories: [ner, arcane_domain],
8976    },
8977
8978    // =========================================================================
8979    // Niche Domains: Agriculture (Extended)
8980    // =========================================================================
8981
8982    CropDiseaseNER {
8983        name: "Crop Disease NER",
8984        description: "Crop disease identification. Symptoms, pathogens, treatments.",
8985        url: "https://github.com/juand-r/entity-recognition-datasets",
8986        entity_types: ["Disease", "Symptom", "Pathogen", "Treatment", "Crop", "Stage"],
8987        language: "en",
8988        domain: "agriculture",
8989        license: "CC-BY-4.0",
8990        citation: "Crop Disease Team",
8991        year: 2022,
8992        format: "BIO",
8993        notes: "Plant pathology; disease symptom and treatment extraction",
8994        categories: [ner, arcane_domain],
8995    },
8996
8997    // =========================================================================
8998    // Niche Domains: Wine & Beverages
8999    // =========================================================================
9000
9001    WineNER {
9002        name: "Wine NER",
9003        description: "Wine domain entities. Varietals, regions, vintages, tasting notes.",
9004        url: "https://github.com/juand-r/entity-recognition-datasets",
9005        entity_types: ["Varietal", "Region", "Vintage", "Producer", "TastingNote", "Price"],
9006        language: "en",
9007        domain: "food",
9008        license: "CC-BY-4.0",
9009        citation: "Wine NER Team",
9010        year: 2019,
9011        format: "CoNLL",
9012        notes: "Wine domain; sommelier terminology and tasting vocabulary",
9013        categories: [ner, arcane_domain],
9014    },
9015
9016    // =========================================================================
9017    // Niche Domains: Pet & Veterinary
9018    // =========================================================================
9019
9020    VeterinaryNER {
9021        name: "Veterinary NER",
9022        description: "Veterinary medicine entities. Animals, conditions, treatments.",
9023        url: "https://github.com/juand-r/entity-recognition-datasets",
9024        entity_types: ["Animal", "Breed", "Condition", "Treatment", "Medication", "Symptom"],
9025        language: "en",
9026        domain: "veterinary",
9027        license: "Research",
9028        citation: "Veterinary NER Team",
9029        year: 2021,
9030        format: "BIO",
9031        notes: "Veterinary medicine; pet health and treatment",
9032        categories: [ner, arcane_domain],
9033    },
9034
9035    // =========================================================================
9036    // Niche Domains: Photography
9037    // =========================================================================
9038
9039    PhotographyNER {
9040        name: "Photography NER",
9041        description: "Photography entities. Cameras, lenses, settings, techniques.",
9042        url: "https://github.com/juand-r/entity-recognition-datasets",
9043        entity_types: ["Camera", "Lens", "Aperture", "ShutterSpeed", "ISO", "Technique"],
9044        language: "en",
9045        domain: "photography",
9046        license: "CC-BY-4.0",
9047        citation: "Photography NER Team",
9048        year: 2020,
9049        format: "CoNLL",
9050        notes: "Photography domain; camera gear and technique extraction",
9051        categories: [ner, arcane_domain],
9052    },
9053
9054    // =========================================================================
9055    // Niche Domains: Genealogy
9056    // =========================================================================
9057
9058    GenealogyNER {
9059        name: "Genealogy NER",
9060        description: "Genealogical records entities. Names, relationships, dates, locations.",
9061        url: "https://github.com/juand-r/entity-recognition-datasets",
9062        entity_types: ["Person", "Relationship", "BirthDate", "DeathDate", "Location", "Occupation"],
9063        language: "en",
9064        domain: "genealogy",
9065        license: "CC-BY-4.0",
9066        citation: "Genealogy NER Team",
9067        year: 2021,
9068        format: "Custom",
9069        notes: "Historical records; family history extraction",
9070        categories: [ner, historical, arcane_domain],
9071    },
9072
9073    // =========================================================================
9074    // Niche Domains: Board Games
9075    // =========================================================================
9076
9077    BoardGameNER {
9078        name: "Board Game NER",
9079        description: "Board game entities. Games, mechanics, components, designers.",
9080        url: "https://github.com/juand-r/entity-recognition-datasets",
9081        entity_types: ["Game", "Mechanic", "Component", "Designer", "Publisher", "PlayerCount"],
9082        language: "en",
9083        domain: "gaming",
9084        license: "CC-BY-4.0",
9085        citation: "BoardGameGeek",
9086        year: 2022,
9087        format: "JSONL",
9088        notes: "Board game domain; BGG taxonomy and mechanics",
9089        categories: [ner, arcane_domain],
9090    },
9091
9092    // =========================================================================
9093    // Niche Domains: Gardening
9094    // =========================================================================
9095
9096    GardeningNER {
9097        name: "Gardening NER",
9098        description: "Gardening entities. Plants, soil, seasons, techniques.",
9099        url: "https://github.com/juand-r/entity-recognition-datasets",
9100        entity_types: ["Plant", "Soil", "Season", "Technique", "Tool", "Pest"],
9101        language: "en",
9102        domain: "gardening",
9103        license: "CC-BY-4.0",
9104        citation: "Gardening NER Team",
9105        year: 2021,
9106        format: "CoNLL",
9107        notes: "Horticulture domain; plant care and cultivation",
9108        categories: [ner, arcane_domain],
9109    },
9110
9111    // =========================================================================
9112    // Niche Domains: Brewing & Distilling
9113    // =========================================================================
9114
9115    BrewingNER {
9116        name: "Brewing NER",
9117        description: "Craft brewing entities. Ingredients, processes, styles, equipment.",
9118        url: "https://github.com/juand-r/entity-recognition-datasets",
9119        entity_types: ["Ingredient", "Process", "Style", "Equipment", "ABV", "IBU"],
9120        language: "en",
9121        domain: "food",
9122        license: "CC-BY-4.0",
9123        citation: "Brewing NER Team",
9124        year: 2020,
9125        format: "CoNLL",
9126        notes: "Craft beer domain; brewing process and style vocabulary",
9127        categories: [ner, arcane_domain],
9128    },
9129
9130    // =========================================================================
9131    // Niche Domains: Knitting & Crafts
9132    // =========================================================================
9133
9134    KnittingNER {
9135        name: "Knitting NER",
9136        description: "Knitting and crafts entities. Patterns, yarns, stitches, tools.",
9137        url: "https://github.com/juand-r/entity-recognition-datasets",
9138        entity_types: ["Pattern", "Yarn", "Stitch", "Tool", "Size", "Technique"],
9139        language: "en",
9140        domain: "crafts",
9141        license: "CC-BY-4.0",
9142        citation: "Ravelry",
9143        year: 2021,
9144        format: "JSONL",
9145        notes: "Fiber arts domain; knitting pattern terminology",
9146        categories: [ner, arcane_domain],
9147    },
9148
9149    // =========================================================================
9150    // Niche Domains: Fitness & Exercise
9151    // =========================================================================
9152
9153    FitnessNER {
9154        name: "Fitness NER",
9155        description: "Fitness entities. Exercises, muscles, equipment, routines.",
9156        url: "https://github.com/juand-r/entity-recognition-datasets",
9157        entity_types: ["Exercise", "Muscle", "Equipment", "Sets", "Reps", "Duration"],
9158        language: "en",
9159        domain: "fitness",
9160        license: "CC-BY-4.0",
9161        citation: "Fitness NER Team",
9162        year: 2021,
9163        format: "CoNLL",
9164        notes: "Exercise domain; workout routine extraction",
9165        categories: [ner, arcane_domain],
9166    },
9167
9168    // =========================================================================
9169    // Niche Domains: Astrology
9170    // =========================================================================
9171
9172    AstrologyNER {
9173        name: "Astrology NER",
9174        description: "Astrological entities. Signs, planets, houses, aspects.",
9175        url: "https://github.com/juand-r/entity-recognition-datasets",
9176        entity_types: ["Sign", "Planet", "House", "Aspect", "Transit", "Date"],
9177        language: "en",
9178        domain: "astrology",
9179        license: "CC-BY-4.0",
9180        citation: "Astrology NER Team",
9181        year: 2021,
9182        format: "CoNLL",
9183        notes: "Astrological terminology; horoscope interpretation",
9184        categories: [ner, arcane_domain],
9185    },
9186
9187    // =========================================================================
9188    // Niche Domains: Tattoo & Body Art
9189    // =========================================================================
9190
9191    TattooNER {
9192        name: "Tattoo NER",
9193        description: "Tattoo entities. Styles, placements, artists, designs.",
9194        url: "https://github.com/juand-r/entity-recognition-datasets",
9195        entity_types: ["Style", "Placement", "Artist", "Design", "Color", "Size"],
9196        language: "en",
9197        domain: "art",
9198        license: "CC-BY-4.0",
9199        citation: "Tattoo NER Team",
9200        year: 2022,
9201        format: "JSONL",
9202        notes: "Body art domain; tattoo style and placement vocabulary",
9203        categories: [ner, arcane_domain],
9204    },
9205
9206    // =========================================================================
9207    // Niche Domains: Perfume & Fragrance
9208    // =========================================================================
9209
9210    FragranceNER {
9211        name: "Fragrance NER",
9212        description: "Perfume entities. Notes, accords, houses, concentrations.",
9213        url: "https://github.com/juand-r/entity-recognition-datasets",
9214        entity_types: ["Note", "Accord", "House", "Concentration", "Season", "Longevity"],
9215        language: "en",
9216        domain: "fragrance",
9217        license: "CC-BY-4.0",
9218        citation: "Fragrantica",
9219        year: 2021,
9220        format: "JSONL",
9221        notes: "Perfumery domain; scent pyramid and accord terminology",
9222        categories: [ner, arcane_domain],
9223    },
9224
9225    // =========================================================================
9226    // Niche Domains: Chess
9227    // =========================================================================
9228
9229    ChessNER {
9230        name: "Chess NER",
9231        description: "Chess entities. Openings, players, tournaments, moves.",
9232        url: "https://github.com/juand-r/entity-recognition-datasets",
9233        entity_types: ["Opening", "Player", "Tournament", "Move", "ELO", "TimeControl"],
9234        language: "en",
9235        domain: "gaming",
9236        license: "CC-BY-4.0",
9237        citation: "Lichess/Chess.com",
9238        year: 2022,
9239        format: "JSONL",
9240        notes: "Chess domain; opening theory and tournament extraction",
9241        categories: [ner, arcane_domain],
9242    },
9243
9244    // =========================================================================
9245    // Niche Domains: Cocktails & Mixology
9246    // =========================================================================
9247
9248    CocktailNER {
9249        name: "Cocktail NER",
9250        description: "Cocktail entities. Ingredients, techniques, glassware, garnishes.",
9251        url: "https://github.com/juand-r/entity-recognition-datasets",
9252        entity_types: ["Spirit", "Mixer", "Technique", "Glassware", "Garnish", "Measurement"],
9253        language: "en",
9254        domain: "food",
9255        license: "CC-BY-4.0",
9256        citation: "Cocktail NER Team",
9257        year: 2020,
9258        format: "CoNLL",
9259        notes: "Mixology domain; bartending vocabulary and techniques",
9260        categories: [ner, arcane_domain],
9261    },
9262
9263    // =========================================================================
9264    // Niche Domains: Antiques & Collectibles
9265    // =========================================================================
9266
9267    AntiquesNER {
9268        name: "Antiques NER",
9269        description: "Antiques entities. Periods, styles, materials, makers.",
9270        url: "https://github.com/juand-r/entity-recognition-datasets",
9271        entity_types: ["Period", "Style", "Material", "Maker", "Provenance", "Condition"],
9272        language: "en",
9273        domain: "antiques",
9274        license: "CC-BY-4.0",
9275        citation: "Antiques NER Team",
9276        year: 2021,
9277        format: "JSONL",
9278        notes: "Antiques domain; period furniture and collectibles",
9279        categories: [ner, historical, arcane_domain],
9280    },
9281
9282    // =========================================================================
9283    // Niche Domains: Sailing & Maritime
9284    // =========================================================================
9285
9286    MaritimeNER {
9287        name: "Maritime NER",
9288        description: "Maritime entities. Vessels, ports, routes, cargo.",
9289        url: "https://github.com/juand-r/entity-recognition-datasets",
9290        entity_types: ["Vessel", "Port", "Route", "Cargo", "Flag", "IMONumber"],
9291        language: "en",
9292        domain: "maritime",
9293        license: "Research",
9294        citation: "Maritime NER Team",
9295        year: 2021,
9296        format: "CoNLL",
9297        notes: "Shipping domain; vessel tracking and maritime logistics",
9298        categories: [ner, arcane_domain],
9299    },
9300
9301    // =========================================================================
9302    // Niche Domains: Equestrian
9303    // =========================================================================
9304
9305    EquestrianNER {
9306        name: "Equestrian NER",
9307        description: "Equestrian entities. Horses, breeds, disciplines, tack.",
9308        url: "https://github.com/juand-r/entity-recognition-datasets",
9309        entity_types: ["Horse", "Breed", "Discipline", "Tack", "Rider", "Competition"],
9310        language: "en",
9311        domain: "equestrian",
9312        license: "CC-BY-4.0",
9313        citation: "Equestrian NER Team",
9314        year: 2021,
9315        format: "CoNLL",
9316        notes: "Horse sports domain; dressage and jumping terminology",
9317        categories: [ner, arcane_domain],
9318    },
9319
9320    // =========================================================================
9321    // Niche Domains: Woodworking
9322    // =========================================================================
9323
9324    WoodworkingNER {
9325        name: "Woodworking NER",
9326        description: "Woodworking entities. Tools, joints, wood types, finishes.",
9327        url: "https://github.com/juand-r/entity-recognition-datasets",
9328        entity_types: ["Tool", "Joint", "WoodType", "Finish", "Technique", "Measurement"],
9329        language: "en",
9330        domain: "crafts",
9331        license: "CC-BY-4.0",
9332        citation: "Woodworking NER Team",
9333        year: 2021,
9334        format: "CoNLL",
9335        notes: "Carpentry domain; joinery and finishing vocabulary",
9336        categories: [ner, arcane_domain],
9337    },
9338
9339    // =========================================================================
9340    // Niche Domains: Birdwatching
9341    // =========================================================================
9342
9343    BirdwatchingNER {
9344        name: "Birdwatching NER",
9345        description: "Birdwatching entities. Species, habitats, behaviors, locations.",
9346        url: "https://github.com/juand-r/entity-recognition-datasets",
9347        entity_types: ["Species", "Family", "Habitat", "Behavior", "Location", "Season"],
9348        language: "en",
9349        domain: "wildlife",
9350        license: "CC-BY-4.0",
9351        citation: "eBird/Cornell Lab",
9352        year: 2022,
9353        format: "JSONL",
9354        notes: "Ornithology domain; bird identification and behavior",
9355        categories: [ner, arcane_domain],
9356    },
9357
9358    // =========================================================================
9359    // Niche Domains: Numismatics (Coins)
9360    // =========================================================================
9361
9362    NumismaticsNER {
9363        name: "Numismatics NER",
9364        description: "Coin collecting entities. Denominations, mints, grades, errors.",
9365        url: "https://github.com/juand-r/entity-recognition-datasets",
9366        entity_types: ["Denomination", "Mint", "Grade", "Error", "Year", "Metal"],
9367        language: "en",
9368        domain: "numismatics",
9369        license: "CC-BY-4.0",
9370        citation: "PCGS/NGC",
9371        year: 2021,
9372        format: "JSONL",
9373        notes: "Coin collecting; grading and mint terminology",
9374        categories: [ner, arcane_domain],
9375    },
9376
9377    // =========================================================================
9378    // Niche Domains: Philately (Stamps)
9379    // =========================================================================
9380
9381    PhilatelyNER {
9382        name: "Philately NER",
9383        description: "Stamp collecting entities. Issues, perforations, watermarks, varieties.",
9384        url: "https://github.com/juand-r/entity-recognition-datasets",
9385        entity_types: ["Issue", "Perforation", "Watermark", "Variety", "Country", "Year"],
9386        language: "en",
9387        domain: "philately",
9388        license: "CC-BY-4.0",
9389        citation: "Scott Catalogue",
9390        year: 2021,
9391        format: "JSONL",
9392        notes: "Stamp collecting; philatelic terminology",
9393        categories: [ner, arcane_domain],
9394    },
9395
9396    // =========================================================================
9397    // Niche Domains: Scuba Diving
9398    // =========================================================================
9399
9400    ScubaNER {
9401        name: "Scuba NER",
9402        description: "Scuba diving entities. Equipment, sites, certifications, marine life.",
9403        url: "https://github.com/juand-r/entity-recognition-datasets",
9404        entity_types: ["Equipment", "DiveSite", "Certification", "MarineLife", "Depth", "Visibility"],
9405        language: "en",
9406        domain: "scuba",
9407        license: "CC-BY-4.0",
9408        citation: "PADI/SSI",
9409        year: 2021,
9410        format: "CoNLL",
9411        notes: "Recreational diving; dive site and equipment extraction",
9412        categories: [ner, arcane_domain],
9413    },
9414
9415    // =========================================================================
9416    // Niche Domains: Roller Coasters & Theme Parks
9417    // =========================================================================
9418
9419    ThemeParkNER {
9420        name: "Theme Park NER",
9421        description: "Theme park entities. Rides, parks, manufacturers, statistics.",
9422        url: "https://github.com/juand-r/entity-recognition-datasets",
9423        entity_types: ["Ride", "Park", "Manufacturer", "Height", "Speed", "Type"],
9424        language: "en",
9425        domain: "entertainment",
9426        license: "CC-BY-4.0",
9427        citation: "RCDB",
9428        year: 2022,
9429        format: "JSONL",
9430        notes: "Amusement park domain; roller coaster specifications",
9431        categories: [ner, arcane_domain],
9432    },
9433
9434    // =========================================================================
9435    // Niche Domains: Origami
9436    // =========================================================================
9437
9438    OrigamiNER {
9439        name: "Origami NER",
9440        description: "Origami entities. Folds, bases, models, paper types.",
9441        url: "https://github.com/juand-r/entity-recognition-datasets",
9442        entity_types: ["Fold", "Base", "Model", "PaperType", "Designer", "Difficulty"],
9443        language: "en",
9444        domain: "crafts",
9445        license: "CC-BY-4.0",
9446        citation: "Origami NER Team",
9447        year: 2021,
9448        format: "CoNLL",
9449        notes: "Paper folding domain; fold terminology and model names",
9450        categories: [ner, arcane_domain],
9451    },
9452
9453    // =========================================================================
9454    // Niche Domains: Anime & Manga
9455    // =========================================================================
9456
9457    AnimeMangaNER {
9458        name: "Anime/Manga NER",
9459        description: "Anime and manga entities. Titles, characters, studios, genres.",
9460        url: "https://github.com/juand-r/entity-recognition-datasets",
9461        entity_types: ["Title", "Character", "Studio", "Genre", "Author", "Year"],
9462        language: "mul",
9463        domain: "entertainment",
9464        license: "CC-BY-4.0",
9465        citation: "MyAnimeList/AniDB",
9466        year: 2022,
9467        format: "JSONL",
9468        notes: "Japanese animation; includes romanized and Japanese names",
9469        categories: [ner, multilingual, arcane_domain],
9470    },
9471
9472    // =========================================================================
9473    // Niche Domains: Blockchain & Cryptocurrency
9474    // =========================================================================
9475
9476    CryptoNER {
9477        name: "Crypto NER",
9478        description: "Cryptocurrency entities. Tokens, wallets, exchanges, protocols.",
9479        url: "https://github.com/juand-r/entity-recognition-datasets",
9480        entity_types: ["Token", "Wallet", "Exchange", "Protocol", "Price", "Address"],
9481        language: "en",
9482        domain: "crypto",
9483        license: "Research",
9484        citation: "Crypto NER Team",
9485        year: 2022,
9486        format: "CoNLL",
9487        notes: "Blockchain domain; DeFi and NFT terminology",
9488        categories: [ner, arcane_domain],
9489    },
9490
9491    // =========================================================================
9492    // Niche Domains: Soap Opera / Telenovela
9493    // =========================================================================
9494
9495    TelenovelaNER {
9496        name: "Telenovela NER",
9497        description: "Spanish-language soap opera entities. Characters, relationships, plots.",
9498        url: "https://github.com/juand-r/entity-recognition-datasets",
9499        entity_types: ["Character", "Relationship", "PlotPoint", "Actor", "Network"],
9500        language: "es",
9501        domain: "entertainment",
9502        license: "CC-BY-4.0",
9503        citation: "Telenovela NER Team",
9504        year: 2021,
9505        format: "CoNLL",
9506        notes: "Spanish soap operas; melodrama terminology",
9507        categories: [ner, multilingual, arcane_domain],
9508    },
9509
9510    // =========================================================================
9511    // Niche Domains: Tarot & Divination
9512    // =========================================================================
9513
9514    TarotNER {
9515        name: "Tarot NER",
9516        description: "Tarot entities. Cards, spreads, meanings, suits.",
9517        url: "https://github.com/juand-r/entity-recognition-datasets",
9518        entity_types: ["Card", "Spread", "Meaning", "Suit", "Position", "Reversal"],
9519        language: "en",
9520        domain: "divination",
9521        license: "CC-BY-4.0",
9522        citation: "Tarot NER Team",
9523        year: 2021,
9524        format: "CoNLL",
9525        notes: "Tarot reading; card interpretation vocabulary",
9526        categories: [ner, arcane_domain],
9527    },
9528
9529    // =========================================================================
9530    // Niche Domains: Beekeeping
9531    // =========================================================================
9532
9533    BeekeepingNER {
9534        name: "Beekeeping NER",
9535        description: "Apiculture entities. Equipment, bee types, diseases, products.",
9536        url: "https://github.com/juand-r/entity-recognition-datasets",
9537        entity_types: ["Equipment", "BeeType", "Disease", "Product", "Season", "Technique"],
9538        language: "en",
9539        domain: "agriculture",
9540        license: "CC-BY-4.0",
9541        citation: "Beekeeping NER Team",
9542        year: 2021,
9543        format: "CoNLL",
9544        notes: "Apiculture domain; hive management vocabulary",
9545        categories: [ner, arcane_domain],
9546    },
9547}
9548
9549#[allow(clippy::items_after_test_module)]
9550impl DatasetId {
9551    /// Get tasks with fallback to category-based inference.
9552    ///
9553    /// Many datasets don't have explicit `tasks` defined but have task-like
9554    /// categories (ner, coref, relation_extraction). This method returns
9555    /// explicit tasks if defined, otherwise infers from categories.
9556    ///
9557    /// # Migration Note
9558    ///
9559    /// This exists for backwards compatibility. New datasets should use
9560    /// the `tasks` field explicitly. Categories should be domain/property
9561    /// focused (biomedical, multilingual, nested) not task-like.
9562    #[must_use]
9563    pub fn tasks_or_inferred(&self) -> Vec<&'static str> {
9564        let explicit = self.tasks();
9565        if !explicit.is_empty() {
9566            return explicit.to_vec();
9567        }
9568
9569        // Infer from categories
9570        let mut inferred = Vec::new();
9571        if self.is_ner() {
9572            inferred.push("ner");
9573        }
9574        if self.is_coreference() {
9575            inferred.push("coref");
9576        }
9577        if self.is_relation_extraction() {
9578            inferred.push("re");
9579        }
9580        if self.is_entity_linking() {
9581            inferred.push("el");
9582        }
9583        if self.is_event_coref() {
9584            inferred.push("event_coref");
9585        }
9586
9587        // Default to NER for datasets with entity types but no category
9588        if inferred.is_empty() && !self.entity_types().is_empty() {
9589            inferred.push("ner");
9590        }
9591
9592        inferred
9593    }
9594
9595    /// Check if this is a NER dataset (explicit or inferred).
9596    #[must_use]
9597    pub fn supports_ner(&self) -> bool {
9598        self.tasks_or_inferred().contains(&"ner")
9599    }
9600
9601    /// Check if this is a coreference dataset (explicit or inferred).
9602    #[must_use]
9603    pub fn supports_coref(&self) -> bool {
9604        self.tasks_or_inferred().contains(&"coref")
9605    }
9606
9607    /// Check if this is a relation extraction dataset (explicit or inferred).
9608    #[must_use]
9609    pub fn supports_re(&self) -> bool {
9610        self.tasks_or_inferred().contains(&"re")
9611    }
9612
9613    /// Whether this dataset is known to require `HF_TOKEN` (or equivalent) to download.
9614    ///
9615    /// This is used to keep “automatic” workflows (cache warming, randomized matrices)
9616    /// usable by default while still allowing explicit attempts when a token is provided.
9617    #[must_use]
9618    pub fn requires_hf_token(&self) -> bool {
9619        matches!(
9620            self,
9621            Self::BookCorefBamman | Self::MultiCoNER | Self::MultiCoNERv2
9622        )
9623    }
9624
9625    /// Whether this dataset is currently automatable by our loader without manual intervention.
9626    ///
9627    /// This is intentionally conservative: it can be `false` for datasets that are “public”
9628    /// but do not offer a stable export path we can consume yet.
9629    #[must_use]
9630    pub fn is_automatable_download(&self) -> bool {
9631        // Hard exclusions (known to fail under current loader automation).
9632        //
9633        // These datasets have HuggingFace or direct URLs that pass the heuristic checks
9634        // below but fail at the loader level (HTML response, API parse error, empty result,
9635        // gated access).  Discovered by the Estimate strategy's systematic coverage sweep.
9636        if matches!(
9637            self,
9638            Self::MasakhaNER2
9639                | Self::PIIMasking200k
9640                | Self::CADEC
9641                // HF datasets-server failures (HTML response or API parse errors):
9642                | Self::CoNLL2002
9643                | Self::DBPedia14
9644                | Self::MultiCoNER
9645                | Self::PolyglotNER
9646                | Self::TREC
9647                | Self::UniversalNER
9648                | Self::WikiNeural
9649                // Downloads OK but parser yields 0 sentences:
9650                | Self::TweetNER7
9651        ) {
9652            return false;
9653        }
9654
9655        if !self.access_status().is_automatable() {
9656            return false;
9657        }
9658
9659        let url = self.download_url();
9660        if url.is_empty() {
9661            return false;
9662        }
9663
9664        // URLs we explicitly support via rewrites/special handling in the loader.
9665        if url.contains("huggingface.co/datasets/")
9666            || url.contains("datasets-server.huggingface.co/")
9667        {
9668            return true;
9669        }
9670
9671        // GitHub: only treat as automatable if it's a raw/archive asset, not a repo homepage.
9672        if url.contains("github.com/")
9673            && (url.contains("/raw/")
9674                || url.contains("/archive/")
9675                || url.contains("/releases/download/"))
9676        {
9677            return true;
9678        }
9679
9680        // Direct file downloads.
9681        const EXT_OK: [&str; 10] = [
9682            ".jsonl", ".json", ".tsv", ".csv", ".conll", ".conllu", ".txt", ".zip", ".tar.gz",
9683            ".tgz",
9684        ];
9685        EXT_OK.iter().any(|ext| url.ends_with(ext))
9686    }
9687}