Parsing Time Normalizations
Parsing time expressions in text using the SCATE (Semantically Compositional Annotation of Time Expressions) schema, marking typed time entities and operators (e.g., Year, Month-Of-Year, Day-Of-Month, Last, Next, This, Between) that compose into interval semantics. Based on SemEval-2018 Task 6.
Configuration Fileconfig.yaml
This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.
# Parsing Time Normalizations
# Based on Laparra et al., SemEval 2018
# Paper: https://aclanthology.org/S18-1011/
# Dataset: https://github.com/bethard/anafora-annotations
#
# This task follows the SCATE (Semantically Compositional Annotation of
# Time Expressions) schema used in SemEval-2018 Task 6. Annotators mark
# the sub-spans of each time expression and label them with SCATE entity
# and operator types that compose into interval semantics on the timeline.
#
# Entity types (non-operators): Year, Month-Of-Year, Day-Of-Month,
# Day-Of-Week, Hour-Of-Day, Minute-Of-Hour, Part-Of-Day, Season-Of-Year,
# Calendar-Interval, Period.
# Operator types: Last, Next, This, Before, After, Between.
#
# The document date is provided so relative operators (Last/Next/This)
# can be anchored to the correct interval.
annotation_task_name: "Parsing Time Normalizations"
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:
- annotation_type: span
name: scate_time_entities
description: "Highlight each sub-span of a time expression and label it with its SCATE type."
labels:
- name: "Year"
tooltip: "A calendar year, e.g. 2018."
- name: "Month-Of-Year"
tooltip: "A named or numbered month, e.g. January."
- name: "Day-Of-Month"
tooltip: "A numbered day within a month, e.g. the 15th."
- name: "Day-Of-Week"
tooltip: "A named weekday, e.g. Tuesday."
- name: "Hour-Of-Day"
tooltip: "An hour value, e.g. 3 (PM)."
- name: "Minute-Of-Hour"
tooltip: "A minute value, e.g. 30."
- name: "Part-Of-Day"
tooltip: "A named part of the day, e.g. afternoon, morning, night."
- name: "Season-Of-Year"
tooltip: "A season, e.g. spring, fall."
- name: "Calendar-Interval"
tooltip: "A calendar unit used as an interval, e.g. week, month, year."
- name: "Period"
tooltip: "An explicit duration, e.g. 90 minutes, three weeks."
- name: "Last"
tooltip: "Operator selecting the most recent preceding interval, e.g. last Monday."
- name: "Next"
tooltip: "Operator selecting the nearest following interval, e.g. next Tuesday."
- name: "This"
tooltip: "Operator selecting the interval containing the anchor time, e.g. this November."
- name: "Before"
tooltip: "Operator shifting to an interval before the anchor, e.g. two hours before."
- name: "After"
tooltip: "Operator shifting to an interval after the anchor, e.g. within twenty minutes."
- name: "Between"
tooltip: "Operator bounding an interval between two endpoints, e.g. from June to September."
- annotation_type: text
name: entity_properties
description: "Optional: record the entity value or its link to a parent/sub-interval entity (e.g. Value=2018, Sub-Interval->Month-Of-Year)."
annotation_instructions: |
You will be shown a text passage along with the document date for reference.
This task uses the SCATE schema, which decomposes each time expression into
smaller typed entities that compose into an interval on the timeline.
Your task is to:
1. Highlight each sub-span of every time expression (do not merge a whole
phrase into one span) and label it with its SCATE type from the list.
For example, in "January 15, 2005", mark "January" as Month-Of-Year,
"15" as Day-Of-Month, and "2005" as Year.
2. Label operator words such as "last", "next", "this", "before", "after",
and range markers ("from ... to ...") with the matching operator type.
3. Optionally record each entity's value or its link to a parent or
sub-interval entity in the properties field.
Use the document date to anchor relative operators like Last, Next, and This.
html_layout: |
<div style="padding: 15px; max-width: 800px; margin: auto;">
<div style="background: #fefce8; border: 1px solid #fde68a; border-radius: 8px; padding: 12px; margin-bottom: 12px;">
<strong style="color: #a16207;">Document Date:</strong>
<span style="font-size: 15px;">{{document_date}}</span>
</div>
<div style="background: #f0f9ff; border: 1px solid #bae6fd; border-radius: 8px; padding: 16px; margin-bottom: 16px;">
<strong style="color: #0369a1;">Text:</strong>
<p style="font-size: 16px; line-height: 1.7; margin: 8px 0 0 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
[
{
"id": "timenorm_001",
"text": "The meeting is scheduled for next Tuesday at 3:30 PM. Please arrive 15 minutes early to set up the conference room.",
"document_date": "2018-03-12"
},
{
"id": "timenorm_002",
"text": "The company was founded on January 15, 2005, and has been operating for over thirteen years. The annual review will take place in December.",
"document_date": "2018-06-20"
}
]
// ... 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/semeval/2018/task06-time-normalization potato start config.yaml
Dataset & paper
Laparra et al., SemEval 2018
Citation (BibTeX)
@inproceedings{laparra-etal-2018-semeval,
title = "{S}em{E}val 2018 Task 6: Parsing Time Normalizations",
author = "Laparra, Egoitz and Xu, Dongfang and Elsayed, Ahmed and Bethard, Steven and Palmer, Martha",
booktitle = "Proceedings of the 12th International Workshop on Semantic Evaluation",
month = jun,
year = "2018",
address = "New Orleans, Louisiana",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/S18-1011/",
doi = "10.18653/v1/S18-1011",
pages = "88--96"
}Details
Annotation Types
Domain
Use Cases
Tags
Found an issue or want to improve this design?
Open an IssueRelated Designs
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.).
Clinical TempEval - Temporal Information Extraction from Clinical Notes
Extraction of temporal information from clinical text, identifying time expressions, event mentions, and their temporal relations. Based on SemEval-2016 Task 12 (Clinical TempEval).
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.