Moral Stories Annotation
Annotate moral reasoning in situated narratives. Based on Emelin et al., EMNLP 2021. Evaluate whether actions adhere to or diverge from social norms given situations and intentions.
Archivo de configuraciónconfig.yaml
# Moral Stories Annotation
# Based on Emelin et al., EMNLP 2021
# Paper: https://aclanthology.org/2021.emnlp-main.54/
# Dataset: https://huggingface.co/datasets/demelin/moral_stories
#
# Moral Stories contains structured narratives for moral reasoning.
# Each story has seven components:
# 1. Norm: A social guideline (e.g., "It's good to help others")
# 2. Situation: The context and setting
# 3. Intention: What the actor wants to achieve
# 4. Moral action: An action that follows the norm
# 5. Moral consequence: Positive outcome of moral action
# 6. Immoral action: An action that violates the norm
# 7. Immoral consequence: Negative outcome of immoral action
#
# Annotation Guidelines:
# 1. Consider the NORM as the ethical standard
# 2. Evaluate actions against this norm
# 3. A moral action achieves the intention while respecting the norm
# 4. An immoral action achieves the intention but violates the norm
# 5. Consider both intent and method when evaluating
#
# Key Questions:
# - Does the action respect the stated norm?
# - Would most people consider this action acceptable?
# - Does the actor consider others' well-being?
annotation_task_name: "Moral Stories Annotation"
task_dir: "."
data_files:
- sample-data.json
item_properties:
id_key: "id"
text_key: "scenario"
output_annotation_dir: "annotation_output/"
output_annotation_format: "json"
annotation_schemes:
# Step 1: Action classification
- annotation_type: radio
name: action_morality
description: "Does the described ACTION adhere to or violate the NORM?"
labels:
- "Moral (follows norm)"
- "Immoral (violates norm)"
- "Neutral/unclear"
tooltips:
"Moral (follows norm)": "The action achieves the goal while respecting the ethical norm"
"Immoral (violates norm)": "The action achieves the goal but violates the ethical norm"
"Neutral/unclear": "The action's morality is ambiguous or doesn't clearly relate to the norm"
# Step 2: Consequence prediction
- annotation_type: radio
name: likely_consequence
description: "What is the likely consequence of this action?"
labels:
- "Positive for all"
- "Positive for actor, negative for others"
- "Negative for actor"
- "Negative for all"
- "Neutral/mixed"
tooltips:
"Positive for all": "The action benefits everyone involved"
"Positive for actor, negative for others": "The actor gains but others suffer"
"Negative for actor": "The action backfires on the actor"
"Negative for all": "Everyone is worse off"
"Neutral/mixed": "Consequences are mixed or unclear"
# Step 3: Norm applicability
- annotation_type: radio
name: norm_applicability
description: "How applicable is the stated norm to this situation?"
labels:
- "Highly applicable"
- "Somewhat applicable"
- "Not very applicable"
- "Not applicable"
tooltips:
"Highly applicable": "The norm directly addresses this situation"
"Somewhat applicable": "The norm is relevant but not perfectly matched"
"Not very applicable": "The norm only loosely relates to the situation"
"Not applicable": "The norm doesn't really apply here"
# Step 4: Agreement with norm
- annotation_type: likert
name: norm_agreement
description: "Do you personally agree that this norm is a good ethical guideline?"
min_value: 1
max_value: 5
labels:
1: "Strongly disagree"
2: "Disagree"
3: "Neutral"
4: "Agree"
5: "Strongly agree"
allow_all_users: true
instances_per_annotator: 50
annotation_per_instance: 3
allow_skip: true
skip_reason_required: false
Datos de ejemplosample-data.json
[
{
"id": "mor_001",
"norm": "It's wrong to take credit for someone else's work.",
"situation": "Alex's coworker spent weeks developing a brilliant marketing strategy.",
"intention": "Alex wants to impress the boss and get a promotion.",
"scenario": "NORM: It's wrong to take credit for someone else's work.\nSITUATION: Alex's coworker spent weeks developing a brilliant marketing strategy.\nINTENTION: Alex wants to impress the boss and get a promotion.\nACTION: Alex presents the strategy to the boss as their own idea without mentioning the coworker."
},
{
"id": "mor_002",
"norm": "It's good to help those in need.",
"situation": "Jordan sees an elderly person struggling to carry groceries.",
"intention": "Jordan wants to get home quickly after a long day.",
"scenario": "NORM: It's good to help those in need.\nSITUATION: Jordan sees an elderly person struggling to carry groceries.\nINTENTION: Jordan wants to get home quickly after a long day.\nACTION: Jordan stops to help carry the groceries to the person's car, even though it will delay getting home."
}
]
// ... and 4 more itemsObtener este diseño
Clone or download from the repository
Inicio rápido:
git clone https://github.com/davidjurgens/potato-showcase.git cd potato-showcase/text/commonsense-ethics/moral-stories potato start config.yaml
Detalles
Tipos de anotación
Dominio
Casos de uso
Etiquetas
¿Encontró un problema o desea mejorar este diseño?
Abrir un issueDiseños relacionados
Social Chemistry 101 (Social Norms)
Annotate rules-of-thumb for social and moral norms. Based on Forbes et al., EMNLP 2020. Capture 12 dimensions of social judgment including cultural pressure, moral foundations, and legality.
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.
SafeRLHF Dual-Dimension Preference
Safety-aware preference annotation with separate judgments for helpfulness and harmlessness. Includes safety category labeling across 19 harm types for constrained AI alignment.