Skip to content
advancedtext

Multilingual Characterization and Extraction of Narratives

Multilingual narrative analysis over online news, adapted from SemEval-2025 Task 10. Covers the task's three subtasks: (1) entity framing, labeling the role each named entity plays (protagonist, antagonist, innocent); (2) narrative classification, assigning topic-specific narrative labels to the article; and (3) narrative extraction, writing a short justification for the article's dominant narrative. Original data spans the Ukraine-Russia War and Climate Change domains in Bulgarian, English, Hindi, Portuguese, and Russian.

Q1: Rate your experience12345Q2: Primary use case?ResearchIndustryEducationQ3: Additional feedback

Configuration Fileconfig.yaml

This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.

yaml
# Multilingual Characterization and Extraction of Narratives
# Based on Piskorski et al. (2025), SemEval-2025 Task 10
# Paper: https://aclanthology.org/2025.semeval-1.331/
# Dataset: https://propaganda.math.unipd.it/semeval2025task10/ (access via registration)
#
# Honest single-page adaptation of SemEval-2025 Task 10, which is organized
# into three subtasks over online news articles (Ukraine-Russia War and
# Climate Change domains; Bulgarian, English, Hindi, Portuguese, Russian):
#   ST1 Entity Framing        - label the role each named entity plays
#                               (protagonist / antagonist / innocent).
#   ST2 Narrative Classification - assign topic-specific narrative labels.
#   ST3 Narrative Extraction  - write a short justification (<= 80 words)
#                               for the article's dominant narrative.

annotation_task_name: "Multilingual Characterization and Extraction of Narratives"
task_dir: "."

data_files:
  - sample-data.json

item_properties:
  id_key: "id"
  text_key: "text"

output_annotation_dir: "annotation_output/"
output_annotation_format: "json"

port: 8000
server_name: localhost

annotation_schemes:
  # Subtask 1: Entity Framing - highlight each named entity and assign the
  # role it plays. SemEval-2025 Task 10 uses a fine-grained taxonomy nested
  # under three main roles; this adaptation exposes the three main roles.
  - annotation_type: span
    name: entity_framing
    description: "Highlight each key named entity and label the role it plays in the narrative."
    labels:
      - "Protagonist"
      - "Antagonist"
      - "Innocent"
    tooltips:
      "Protagonist": "A positively framed actor: e.g. guardian, martyr, peacemaker, rebel, underdog, virtuous"
      "Antagonist": "A negatively framed actor: e.g. instigator, conspirator, tyrant, foreign adversary, traitor, terrorist, deceiver, corrupt, incompetent"
      "Innocent": "A party framed as harmed or blameless: e.g. victim, exploited, scapegoat, forgotten"

  # Subtask 2: Narrative Classification - assign topic-specific narrative
  # labels to the whole document.
  - annotation_type: multiselect
    name: narrative_classification
    description: "Select all narrative categories present in this article."
    labels:
      - "Blaming the West / NATO"
      - "Discrediting Ukraine"
      - "Praising / justifying Russia"
      - "Amplifying war consequences"
      - "Climate change is not real / not urgent"
      - "Criticism of climate policies"
      - "Criticism of climate movement"
      - "Green technology is unreliable"
      - "Other narrative"
    tooltips:
      "Blaming the West / NATO": "Ukraine-Russia domain: narratives attributing the conflict to Western actors"
      "Discrediting Ukraine": "Ukraine-Russia domain: narratives undermining Ukraine or its leadership"
      "Praising / justifying Russia": "Ukraine-Russia domain: narratives defending Russian actions"
      "Amplifying war consequences": "Ukraine-Russia domain: narratives emphasizing costs or threats of the war"
      "Climate change is not real / not urgent": "Climate domain: denial or downplaying narratives"
      "Criticism of climate policies": "Climate domain: narratives attacking climate regulations or measures"
      "Criticism of climate movement": "Climate domain: narratives attacking activists or institutions"
      "Green technology is unreliable": "Climate domain: narratives casting doubt on renewable/green technology"
      "Other narrative": "A dominant narrative not captured by the categories above"

  # Subtask 3: Narrative Extraction - free-text justification of the
  # dominant narrative (SemEval limits responses to ~80 words).
  - annotation_type: text
    name: narrative_extraction
    description: "In up to 80 words, describe and justify the dominant narrative of the article, grounded in its text."

annotation_instructions: |
  You will be shown a news article passage. Your task follows the three
  subtasks of SemEval-2025 Task 10:
  1. Entity Framing: highlight each key named entity and label it as
     Protagonist, Antagonist, or Innocent based on how the article frames it.
  2. Narrative Classification: select all narrative categories that the
     article promotes.
  3. Narrative Extraction: write a short justification (up to 80 words) for
     the article's dominant narrative, grounded in the text.

html_layout: |
  <div style="padding: 15px; max-width: 800px; margin: auto;">
    <div style="background: #f0f9ff; border: 1px solid #bae6fd; border-radius: 8px; padding: 16px; margin-bottom: 16px;">
      <strong style="color: #0369a1;">News Text:</strong>
      <p style="font-size: 16px; line-height: 1.7; margin: 8px 0 0 0;">{{text}}</p>
    </div>
    <div style="background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 8px; padding: 12px; margin-bottom: 8px;">
      <strong style="color: #166534;">Source:</strong> <span>{{source}}</span>
      &nbsp; | &nbsp;
      <strong style="color: #166534;">Language:</strong> <span>{{language}}</span>
    </div>
  </div>

allow_all_users: true
instances_per_annotator: 50
annotation_per_instance: 2
allow_skip: true
skip_reason_required: false

Sample Datasample-data.json

json
[
  {
    "id": "narr_001",
    "text": "The European Union announced new sanctions against Russia on Monday, targeting energy exports and financial institutions. The measures were prompted by the escalation of military operations in eastern Ukraine. EU foreign ministers met in Brussels to finalize the package, which is expected to reduce Russian oil revenues by 15 percent.",
    "source": "Reuters",
    "language": "English"
  },
  {
    "id": "narr_002",
    "text": "Devastating floods swept through southern Brazil in May 2024, displacing over 600,000 residents and causing billions in damages. Climate scientists linked the extreme rainfall to shifting weather patterns exacerbated by El Nino and rising global temperatures. The federal government declared a state of emergency and deployed military rescue teams.",
    "source": "BBC News",
    "language": "English"
  }
]

// ... and 8 more items

Get This Design

View on GitHub

Clone or download from the repository

Quick start:

git clone https://github.com/davidjurgens/potato-showcase.git
cd potato-showcase/semeval/2025/task10-narrative-extraction
potato start config.yaml

Dataset & paper

Piskorski et al. (2025). SemEval 2025 Task 10: Multilingual Characterization and Extraction of Narratives from Online News. Proceedings of the 19th International Workshop on Semantic Evaluation (SemEval-2025), pages 2610-2643.

Citation (BibTeX)

bibtex
@inproceedings{piskorski-etal-2025-semeval,
    title = "{S}em{E}val 2025 Task 10: Multilingual Characterization and Extraction of Narratives from Online News",
    author = "Piskorski, Jakub and Mahmoud, Tarek and Nikolaidis, Nikolaos and Campos, Ricardo and Mario Jorge, Alipio and Dimitrov, Dimitar and Silvano, Purifica{\c{c}}{\~a}o and Yangarber, Roman and Sharma, Shivam and Chakraborty, Tanmoy and Guimaraes, Nuno and Sartori, Elisa and Stefanovitch, Nicolas and Xie, Zhuohan and Nakov, Preslav and Da San Martino, Giovanni",
    booktitle = "Proceedings of the 19th International Workshop on Semantic Evaluation (SemEval-2025)",
    month = jul,
    year = "2025",
    address = "Vienna, Austria",
    publisher = "Association for Computational Linguistics",
    pages = "2610--2643"
}

Details

Annotation Types

spanmultiselecttext

Domain

SemEvalNLPNarrative AnalysisMultilingual

Use Cases

Entity FramingNarrative ClassificationNarrative ExtractionDiscourse Analysis

Tags

semevalsemeval-2025shared-tasknarrativeevent-extractionmultilingual

Found an issue or want to improve this design?

Open an Issue