Interlinear Glossing of Endangered Languages
Morpheme-level interlinear glossing, the annotation design behind the SIGMORPHON 2023 Shared Task on Interlinear Glossing (Ginn et al., 2023), which covers endangered and Indigenous languages including Arapaho, Gitksan, Lezgi, Natugu, Tsez and Uspanteko. For each word the annotator segments it into morphemes, labels each morpheme's position (root vs. affix/clitic), writes the Leipzig-style gloss line, and provides a free translation - the core workflow of language documentation. The showcase sample items use pedagogically reliable, fully verifiable stand-in languages (Swahili and Turkish) so the target gloss is correct; the real shared task uses the endangered languages named above.
Configuration Fileconfig.yaml
This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.
# Interlinear Glossing of Endangered Languages
# Based on Ginn et al., SIGMORPHON 2023 Shared Task on Interlinear Glossing
# Paper: https://aclanthology.org/2023.sigmorphon-1.20/
# Dataset: https://github.com/sigmorphon/2023glossingST
#
# Interlinear Glossed Text (IGT) is the backbone of language documentation.
# For each word, a linguist produces four aligned lines:
# 1. the surface word,
# 2. a segmentation into morphemes,
# 3. a gloss for each morpheme (Leipzig Glossing Rules), and
# 4. a free translation.
# The SIGMORPHON 2023 shared task targets endangered and Indigenous languages
# (Arapaho, Gitksan, Lezgi, Natugu, Tsez, Uspanteko).
#
# NOTE ON THE SAMPLE DATA: to keep the target glosses fully verifiable, the
# showcase items use Swahili and Turkish - agglutinative languages that are
# standard glossing teaching examples - rather than fabricating morphology in
# languages the author cannot verify. The annotation DESIGN is identical to
# the endangered-language task.
#
# Annotation workflow (three schemes):
# 1. Segment & label morphemes: highlight each morpheme and mark whether it
# is the ROOT/STEM or an AFFIX (prefix/suffix/infix) or a CLITIC.
# 2. Gloss line: type the aligned Leipzig gloss, hyphen-separated, using
# lowercase for lexical glosses and SMALL-CAPS-style UPPERCASE for
# grammatical categories (e.g. "1SG-PRS-play-FV").
# 3. Free translation: type an idiomatic English translation.
#
# Leipzig conventions reminder: separate morphemes with "-", use "." to join
# a single morpheme's multiple category labels (e.g. "1SG"), and glosses of
# grammatical morphemes are UPPERCASE (PST, PL, LOC, ABL, PROG, AOR, FV...).
annotation_task_name: "Interlinear Glossing"
task_dir: "."
data_files:
- sample-data.json
item_properties:
id_key: "id"
text_key: "word"
output_annotation_dir: "annotation_output/"
output_annotation_format: "json"
port: 8000
server_name: localhost
annotation_schemes:
# Step 1: segment the word and label each morpheme's role
- annotation_type: span
name: morphemes
description: "Highlight each morpheme and label its role"
labels:
- "Root / Stem"
- "Prefix"
- "Suffix"
- "Infix"
- "Clitic"
label_colors:
"Root / Stem": "#22c55e"
"Prefix": "#3b82f6"
"Suffix": "#f59e0b"
"Infix": "#8b5cf6"
"Clitic": "#ef4444"
keyboard_shortcuts:
"Root / Stem": "1"
"Prefix": "2"
"Suffix": "3"
"Infix": "4"
"Clitic": "5"
# Step 2: the gloss line
- annotation_type: text
name: gloss_line
description: "Type the aligned Leipzig gloss (hyphen-separated, e.g. 1SG-PRS-play-FV)"
# Step 3: free translation
- annotation_type: text
name: free_translation
description: "Type an idiomatic English translation of the word/phrase"
annotation_instructions: |
You will see a single word from a morphologically rich language, with its
language identifier and (for this showcase) a reference gloss and
translation. Produce an interlinear gloss in three steps:
1. Highlight each morpheme in the word and label it Root/Stem, Prefix,
Suffix, Infix, or Clitic.
2. Write the gloss line: one gloss per morpheme, hyphen-separated, in the
same order as the morphemes. Use lowercase for lexical meanings and
UPPERCASE for grammatical categories (PST, PL, 1SG, LOC, PROG, ...).
3. Write an idiomatic English translation.
html_layout: |
<div style="padding: 15px; max-width: 800px; margin: auto;">
<div style="background: #ecfdf5; border: 1px solid #a7f3d0; border-radius: 8px; padding: 12px; margin-bottom: 12px;">
<strong style="color: #065f46;">Language:</strong>
<span style="font-size: 15px; margin-left: 8px;">{{language}}</span>
</div>
<div style="background: #f0f9ff; border: 1px solid #bae6fd; border-radius: 8px; padding: 16px; margin-bottom: 8px;">
<strong style="color: #0369a1;">Word:</strong>
<p style="font-size: 22px; letter-spacing: 1px; line-height: 1.6; margin: 8px 0 0 0;">{{word}}</p>
</div>
<div style="color: #6b7280; font-size: 13px; font-style: italic; margin-bottom: 16px;">
Reference gloss (showcase only): {{reference_gloss}} | Translation: {{reference_translation}}
</div>
</div>
allow_all_users: true
instances_per_annotator: 40
annotation_per_instance: 2
allow_skip: true
skip_reason_required: false
Sample Datasample-data.json
[
{
"id": "gloss_001",
"language": "Swahili (swa)",
"word": "anacheza",
"reference_gloss": "a-na-chez-a (3SG-PRS-play-FV)",
"reference_translation": "s/he is playing"
},
{
"id": "gloss_002",
"language": "Swahili (swa)",
"word": "ninakupenda",
"reference_gloss": "ni-na-ku-pend-a (1SG-PRS-2SG.OBJ-love-FV)",
"reference_translation": "I love you"
}
]
// ... and 8 more itemsGet This Design
Clone or download from the repository
Quick start:
git clone https://github.com/davidjurgens/potato-showcase.git cd potato-showcase/text/parsing/sigmorphon-interlinear-glossing potato start config.yaml
Dataset & paper
Ginn et al., SIGMORPHON 2023
Citation (BibTeX)
@inproceedings{ginn-etal-2023-findings,
title = "Findings of the {SIGMORPHON} 2023 Shared Task on Interlinear Glossing",
author = "Ginn, Michael and Moeller, Sarah and Palmer, Alexis and Stacey, Anna and Nicolai, Garrett and Hulden, Mans and Silfverberg, Miikka",
booktitle = "Proceedings of the 20th SIGMORPHON workshop on Computational Research in Phonetics, Phonology, and Morphology",
month = jul,
year = "2023",
address = "Toronto, Canada",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2023.sigmorphon-1.20"
}Details
Annotation Types
Domain
Use Cases
Tags
Found an issue or want to improve this design?
Open an IssueRelated Designs
Check-COVID: Fact-Checking COVID-19 News Claims
Fact-checking COVID-19 news claims. Annotators verify claims against evidence, identify supporting/refuting spans, and provide verdicts with explanations. Based on the Check-COVID dataset targeting misinformation during the pandemic.
Clickbait Spoiling
Classification and extraction of spoilers for clickbait posts, including spoiler type identification and span-level spoiler detection. Based on SemEval-2023 Task 5 (Fröbe et al.).
CrossRE: Cross-Domain Relation Extraction
Cross-domain relation extraction across 6 domains (news, politics, science, music, literature, AI). Annotators identify entities and label 17 relation types between entity pairs, enabling study of domain transfer in relation extraction.