Skip to content
intermediatetext

Commonsense Inference (ATOMIC 2020)

Annotate commonsense inferences about events, mental states, and social interactions. Modeled on the ATOMIC and ATOMIC 2020 commonsense knowledge graphs (Sap et al., 2019; Hwang et al., 2021). Generate if-then knowledge about causes, effects, intents, and reactions.

About this dataset

This is an if-then commonsense inference task: given a short event involving PersonX (and sometimes PersonY), an annotator records likely inferences about intents, reactions, and follow-on wants. The design is a template modeled on ATOMIC (Sap et al., AAAI 2019) and its successor ATOMIC 2020 (Hwang et al., AAAI 2021), which formalized commonsense knowledge as typed if-then relations between everyday events. It does not reproduce a specific released dataset; the events and label options in the config are illustrative rather than drawn from ATOMIC's published tuples.

In the original ATOMIC work, crowd workers wrote free-text inferences for base events across nine if-then relation types (for example xIntent, xReact, oReact, xWant). This Potato config adapts that framework into a fixed multiple-choice format, which changes the annotation from open-ended text generation to single-choice selection. The sample data is ten PersonX-style template events such as "PersonX finishes a marathon" and "PersonX apologizes to PersonY."

For scale reference from the source datasets: the original ATOMIC contains about 877K if-then triples over roughly 300K event nodes across 9 relation types, and ATOMIC 2020 contains about 1.33M tuples across 23 relation types. The config exposes 4 of the ATOMIC inference dimensions as radio schemes and ships 10 example events, so its numbers are representative of the template rather than a dataset release.

The Potato config below reproduces this task with four radio schemes covering xIntent (motivation), xReact (PersonX's feeling), oReact (others' feeling), and xWant (what PersonX wants next), each with a curated set of categorical options and tooltips. It is useful as a starting point for collecting structured commonsense judgments, and can be extended toward the full ATOMIC relation set or switched to free-text fields to more closely match the original datasets.

Task type
If-then commonsense inference over events
Conceptual basis
ATOMIC (2019) / ATOMIC 2020
Config inference dimensions
4 (xIntent, xReact, oReact, xWant)
ATOMIC if-then relation types
9 (original ATOMIC)
Annotation format
Single-choice radio (adapted from free text)
Sample events
10 template PersonX events
Submit

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
# Commonsense Inference (ATOMIC-style)
# Based on ATOMIC (Sap et al., AAAI 2019) and ATOMIC 2020 (Hwang et al.)
# Paper: https://arxiv.org/abs/2010.05953
#
# ATOMIC captures inferential knowledge as if-then relations.
# Given an event, annotators provide commonsense inferences about
# mental states, causes, effects, and attributes.
#
# Inference Dimensions:
# - xIntent: Why did PersonX do this? (motivation/intent)
# - xNeed: What did PersonX need to do before this?
# - xWant: What will PersonX want to do after?
# - xEffect: What effect does this have on PersonX?
# - xReact: How does PersonX feel after?
# - oReact: How do others feel about this?
# - oWant: What will others want to do after?
# - oEffect: What effect does this have on others?
# - xAttr: How would PersonX be described? (attribute)
#
# Annotation Guidelines:
# 1. Read the event carefully
# 2. For each dimension, provide plausible inferences
# 3. "none" is acceptable if no inference applies
# 4. Be specific - "happy" is less useful than "relieved"
# 5. Consider typical/common scenarios, not edge cases
# 6. Multiple valid inferences may exist for each dimension

annotation_task_name: "Commonsense Inference"
task_dir: "."

data_files:
  - sample-data.json
item_properties:
  id_key: "id"
  text_key: "event"

output_annotation_dir: "annotation_output/"
output_annotation_format: "json"

annotation_schemes:
  # Step 1: PersonX's intent
  - annotation_type: radio
    name: xIntent
    description: "Why did PersonX do this? What was their motivation?"
    labels:
      - "To be helpful"
      - "To achieve a goal"
      - "To express emotions"
      - "To fulfill an obligation"
      - "To satisfy a need"
      - "For enjoyment"
      - "Other/unclear"
    tooltips:
      "To be helpful": "PersonX wanted to help someone or make things easier"
      "To achieve a goal": "PersonX wanted to accomplish something specific"
      "To express emotions": "PersonX wanted to show how they feel"
      "To fulfill an obligation": "PersonX had to do this (duty, promise, expectation)"
      "To satisfy a need": "PersonX needed something (hunger, comfort, etc.)"
      "For enjoyment": "PersonX did this for fun or pleasure"
      "Other/unclear": "The motivation doesn't fit other categories or is unclear"

  # Step 2: PersonX's reaction
  - annotation_type: radio
    name: xReact
    description: "How does PersonX feel as a result of this event?"
    labels:
      - "Happy/satisfied"
      - "Relieved"
      - "Proud"
      - "Anxious/worried"
      - "Tired/exhausted"
      - "Frustrated"
      - "Neutral"
    tooltips:
      "Happy/satisfied": "PersonX feels good about what happened"
      "Relieved": "PersonX feels relief that something is done/resolved"
      "Proud": "PersonX feels accomplished"
      "Anxious/worried": "PersonX feels nervous or concerned"
      "Tired/exhausted": "PersonX feels drained of energy"
      "Frustrated": "PersonX feels annoyed or disappointed"
      "Neutral": "No strong emotional reaction"

  # Step 3: Others' reaction
  - annotation_type: radio
    name: oReact
    description: "How do OTHER people (not PersonX) feel about this?"
    labels:
      - "Grateful/appreciative"
      - "Happy for PersonX"
      - "Impressed"
      - "Indifferent"
      - "Annoyed"
      - "Concerned"
      - "Other"
    tooltips:
      "Grateful/appreciative": "Others are thankful for what PersonX did"
      "Happy for PersonX": "Others feel joy on PersonX's behalf"
      "Impressed": "Others admire what PersonX did"
      "Indifferent": "Others don't have strong feelings about it"
      "Annoyed": "Others are bothered by what PersonX did"
      "Concerned": "Others are worried about PersonX or the situation"
      "Other": "Other reaction not listed"

  # Step 4: What PersonX wants next
  - annotation_type: radio
    name: xWant
    description: "What will PersonX likely want to do next?"
    labels:
      - "Relax/rest"
      - "Continue with related activity"
      - "Celebrate/reward themselves"
      - "Move on to something else"
      - "Get feedback/validation"
      - "Fix a problem"
      - "Nothing specific"
    tooltips:
      "Relax/rest": "PersonX wants to take a break"
      "Continue with related activity": "PersonX wants to keep doing similar things"
      "Celebrate/reward themselves": "PersonX wants to enjoy their success"
      "Move on to something else": "PersonX wants to do something different"
      "Get feedback/validation": "PersonX wants others' opinions or approval"
      "Fix a problem": "PersonX needs to address an issue"
      "Nothing specific": "No clear next desire"

allow_all_users: true
instances_per_annotator: 100
annotation_per_instance: 3
allow_skip: true
skip_reason_required: false

Sample Datasample-data.json

json
[
  {
    "id": "cs_001",
    "event": "PersonX gives PersonY a gift"
  },
  {
    "id": "cs_002",
    "event": "PersonX finishes a marathon"
  }
]

// ... and 8 more items

Try it live — no install

Boot the real Potato server in your browser (WebAssembly) and annotate with this exact config. Nothing leaves your machine.

▶ Run live in your browser

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/commonsense-ethics/commonsense-inference
potato start config.yaml

Dataset & paper

Hwang et al., AAAI 2021

Citation (BibTeX)

bibtex
@inproceedings{hwang2021comet,
    title = "{COMET-ATOMIC} 2020: On Symbolic and Neural Commonsense Knowledge Graphs",
    author = "Hwang, Jena D.  and Bhagavatula, Chandra  and Le Bras, Ronan  and Da, Jeff  and Sakaguchi, Keisuke  and Bosselut, Antoine  and Choi, Yejin",
    booktitle = "Proceedings of the AAAI Conference on Artificial Intelligence",
    volume = "35",
    number = "7",
    pages = "6384--6392",
    year = "2021",
    url = "https://ojs.aaai.org/index.php/AAAI/article/view/16792"
}

Details

Annotation Types

radio

Domain

NLPCommonsenseKnowledge Graphs

Use Cases

Commonsense ReasoningKnowledge Base ConstructionQA

Tags

commonsenseatomicknowledge-graphmental-statesinferenceaaai2021

Found an issue or want to improve this design?

Open an Issue