Skip to content
advancedvideo

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.

Frame 847 / 3200Running01:12 - 01:28Segments:WalkRunStandActionWalkRunStandWalkSceneOutdoorIndoorDrag to create and label temporal segments

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
# 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

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 items

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/semeval/2018/task06-time-normalization
potato start config.yaml

Dataset & paper

Laparra et al., SemEval 2018

Citation (BibTeX)

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

spantext

Domain

SemEvalNLPTemporal ProcessingInformation Extraction

Use Cases

Time NormalizationTemporal ExtractionInformation Extraction

Tags

semevalsemeval-2018shared-tasktime-normalizationtemporalparsinginformation-extraction

Found an issue or want to improve this design?

Open an Issue