Skip to content
Showcase/Media Frames Corpus: News Framing Annotation
intermediatetext

Media Frames Corpus: News Framing Annotation

The Media Frames Corpus (Card et al., ACL 2015) labels U.S. news articles on immigration, smoking, and same-sex marriage with 15 general framing dimensions. This Potato config reproduces that frame-coding task.

About this dataset

The Media Frames Corpus was built by Dallas Card, Amber E. Boydstun, Justin H. Gross, Philip Resnik, and Noah A. Smith, and published at ACL-IJCNLP 2015. It pairs news framing theory from political science with computational annotation so frames can be compared across unrelated policy debates.

Version 1 of the corpus covers three policy issues chosen for their range of framing: immigration, smoking, and same-sex marriage. The articles were drawn from 13 national U.S. newspapers via Lexis-Nexis, mostly published between 1990 and 2012, and Table 1 of the paper reports 20,037 annotated articles across the three issues.

Annotators worked from 15 general framing dimensions defined by Boydstun et al. (2014): Economic; Capacity and resources; Morality; Fairness and equality; Legality, constitutionality and jurisprudence; Policy prescription and evaluation; Crime and punishment; Security and defense; Health and safety; Quality of life; Cultural identity; Public opinion; Political; External regulation and reputation; and Other. For each article they marked which dimensions appeared, highlighted the text spans that cued them, and chose a primary frame for the headline and the whole article. Annotators identified between 2.0 and 3.7 frames per article on average.

The Potato config below reproduces the per-article task: a multiselect for the framing dimensions present, a radio for the primary frame, and a text field for span-level justification, matching the multi-frame coding workflow from the original study.

Framing dimensions
15 general-purpose
Policy issues
Immigration, smoking, same-sex marriage
Annotated articles
20,037
Newspapers
13 national U.S.
Annotators
19 undergraduates
Venue
ACL-IJCNLP 2015
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
# Media Frames Analysis
# Based on Card et al., ACL 2015
# Paper: https://aclanthology.org/P15-1061/
# Dataset: https://github.com/dallascard/media_frames_corpus
#
# This task asks annotators to identify how news articles frame policy
# issues. Media framing refers to the way information is presented to
# influence how audiences interpret issues. The frame taxonomy covers
# 14 dimensions commonly used in political communication research.
#
# Frame Dimensions:
# - Economic: Costs, benefits, financial impact
# - Capacity and Resources: Availability of resources, infrastructure
# - Morality: Religious, ethical, or moral perspective
# - Fairness and Equality: Equal treatment, discrimination, rights
# - Legality: Legal aspects, constitutionality, court rulings
# - Policy: Specific policies, regulations, legislative proposals
# - Crime and Punishment: Criminal activity, enforcement, penalties
# - Security: National security, public safety, threats
# - Health: Public health, medical, wellness perspectives
# - Quality of Life: Well-being, lifestyle, community impact
# - Cultural Identity: Cultural values, heritage, national identity
# - Public Opinion: Polls, public sentiment, popularity
# - Political: Political strategy, partisanship, elections
# - External Regulation: International bodies, foreign policy, treaties
#
# Annotation Guidelines:
# 1. Read the news paragraph and note the topic and source
# 2. Select all applicable framing dimensions
# 3. Classify the overall stance toward the issue
# 4. Provide a brief justification for your frame selections

annotation_task_name: "Media Frames Analysis"
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:
  # Step 1: Select applicable framing dimensions
  - annotation_type: multiselect
    name: frame_dimensions
    description: "Which framing dimensions are present in this text? (select all that apply)"
    labels:
      - "Economic"
      - "Capacity and Resources"
      - "Morality"
      - "Fairness and Equality"
      - "Legality"
      - "Policy"
      - "Crime and Punishment"
      - "Security"
      - "Health"
      - "Quality of Life"
      - "Cultural Identity"
      - "Public Opinion"
      - "Political"
      - "External Regulation"
    tooltips:
      "Economic": "Discusses costs, benefits, economic impact, or financial considerations"
      "Capacity and Resources": "Focuses on availability of resources, infrastructure, or logistical capacity"
      "Morality": "Frames the issue in religious, ethical, or moral terms"
      "Fairness and Equality": "Discusses equal treatment, discrimination, rights, or justice"
      "Legality": "Addresses legal aspects, constitutionality, court decisions, or law enforcement"
      "Policy": "Discusses specific policies, regulations, or legislative proposals"
      "Crime and Punishment": "Frames the issue around criminal activity, enforcement, or penalties"
      "Security": "Focuses on national security, public safety, or threats"
      "Health": "Discusses public health, medical impact, or wellness"
      "Quality of Life": "Addresses well-being, lifestyle, or community impact"
      "Cultural Identity": "Discusses cultural values, heritage, or national identity"
      "Public Opinion": "References polls, public sentiment, or popular support"
      "Political": "Focuses on political strategy, partisanship, or electoral implications"
      "External Regulation": "Discusses international bodies, foreign policy, or treaties"

  # Step 2: Classify the stance
  - annotation_type: radio
    name: stance
    description: "What is the overall stance of this text toward the issue?"
    labels:
      - "Pro-Issue"
      - "Anti-Issue"
      - "Neutral"
    keyboard_shortcuts:
      "Pro-Issue": "1"
      "Anti-Issue": "2"
      "Neutral": "3"
    tooltips:
      "Pro-Issue": "The text supports or advocates for the issue, policy, or position being discussed"
      "Anti-Issue": "The text opposes or argues against the issue, policy, or position being discussed"
      "Neutral": "The text presents the issue without clear advocacy for or against"

  # Step 3: Provide frame justification
  - annotation_type: text
    name: frame_justification
    description: "Briefly explain why you selected the frame dimensions above"

annotation_instructions: |
  You will be shown paragraphs from news articles about policy issues. Your task is to:
  1. Identify which framing dimensions are present. Multiple frames can co-occur.
  2. Classify whether the text is pro-issue, anti-issue, or neutral.
  3. Provide a brief justification for your frame selections.

  Media frames shape how readers interpret issues. Look for the underlying perspective
  or emphasis the article uses, not just the topic itself.

html_layout: |
  <div style="padding: 15px; max-width: 800px; margin: auto;">
    <div style="display: flex; gap: 8px; margin-bottom: 12px;">
      <span style="background: #e0e7ff; color: #3730a3; padding: 3px 10px; border-radius: 12px; font-size: 13px;">Topic: {{topic}}</span>
      <span style="background: #f3e8ff; color: #7e22ce; padding: 3px 10px; border-radius: 12px; font-size: 13px;">Source: {{source}}</span>
    </div>
    <div style="background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; padding: 16px; margin-bottom: 16px;">
      <p style="font-size: 16px; line-height: 1.7; margin: 0;">{{text}}</p>
    </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": "frames_001",
    "text": "The proposed immigration reform would cost taxpayers an estimated $50 billion over the next decade, according to the Congressional Budget Office, though proponents argue it would generate $80 billion in economic activity through increased labor force participation.",
    "topic": "immigration",
    "source": "Reuters"
  },
  {
    "id": "frames_002",
    "text": "Gun control advocates gathered at the state capitol, demanding universal background checks after a series of mass shootings. They argued that common-sense regulations are needed to protect public safety without infringing on constitutional rights.",
    "topic": "gun control",
    "source": "Associated Press"
  }
]

// ... 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/text/computational-social-science/media-frames-analysis
potato start config.yaml

Dataset & paper

Card et al., ACL 2015

Citation (BibTeX)

bibtex
@inproceedings{card-etal-2015-media,
    title = "The Media Frames Corpus: Annotations of Frames Across Issues",
    author = "Card, Dallas  and Boydstun, Amber E.  and Gross, Justin H.  and Resnik, Philip  and Smith, Noah A.",
    booktitle = "Proceedings of the 53rd Annual Meeting of the Association for Computational Linguistics and the 7th International Joint Conference on Natural Language Processing (Volume 2: Short Papers)",
    month = jul,
    year = "2015",
    address = "Beijing, China",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/P15-2072",
    pages = "438--444"
}

Details

Annotation Types

multiselectradiotext

Domain

NLPComputational Social ScienceMedia Studies

Use Cases

Media FramingPolitical CommunicationDiscourse Analysis

Tags

media-framesframingnews-analysispolicyacl2015

Found an issue or want to improve this design?

Open an Issue