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
Configuration Fileconfig.yaml
This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.
# 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
[
{
"id": "cs_001",
"event": "PersonX gives PersonY a gift"
},
{
"id": "cs_002",
"event": "PersonX finishes a marathon"
}
]
// ... and 8 more itemsTry 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 browserGet This Design
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)
@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
Domain
Use Cases
Tags
Found an issue or want to improve this design?
Open an IssueRelated Designs
KG-BERT Knowledge Graph Triple Validation
Validate knowledge graph triples for correctness and annotate relation types based on the KG-BERT framework. Annotators assess whether entity-relation-entity triples are valid, classify the relation type, and provide entity descriptions.
Named Entity Disambiguation (AIDA-CoNLL)
Named entity disambiguation and linking to Wikidata knowledge base based on the AIDA-CoNLL dataset. Annotators identify named entity mentions in news text, classify them by type (PER, ORG, LOC, MISC), and link them to their corresponding Wikidata entities using QIDs, handling ambiguous references and NIL entities.
Commonsense QA Explanation (ECQA)
Annotate explanations for commonsense QA with positive and negative properties. Based on ECQA (Aggarwal et al., ACL 2021). Explain why an answer is correct and why others are wrong.