traindown / spec

It's spectacular!
BSD 3-Clause "New" or "Revised" License
3 stars 0 forks source link

`TIME` Notation and Metadata for Compact Time Recording #5

Open evelyn opened 3 months ago

evelyn commented 3 months ago

This proposal introduces a new TIME notation for recording the duration of a performance in Traindown, along with additional metadata keys for capturing overall session duration and other time-based training details. The TIME token and related metadata keys are designed to be compact, clear, and consistent with existing Traindown conventions, enhancing the language's expressiveness and utility while keeping notes succinct and portable.

Rationale

The current Traindown specification provides a flexible method for recording training sessions but lacks standardized ways to succinctly record performance durations and overall session timing. This proposal introduces the TIME token for individual performance durations and additional metadata keys like Duration, Rest, Warmup, Cooldown, Interval, Pace, Recovery, and Pause to capture important details relevant to time-based training. The focus remains on keeping the notes portable and concise, aligning with Traindown’s core philosophy.

TIME Notation Specification

Syntax

LOAD [REPS] [SETS] [TIME] [FAILS]

TIME Token Format

TIME @Hh:Mm:Ss

Compact and Context-Aware Notation

Contextual Use of @ Symbol

Existing Usage:

Proposed Usage:

How TIME is Interpreted

In the example:

Squat:
  225 5r 3s @2:00

This structure keeps the core components of the workout (load, reps, sets) together before introducing the performance-specific details like duration, making the overall entry more readable and logically consistent.

Ensuring Clarity and Avoiding Conflicts

  1. Contextual Clarity:

    • The @ symbol at the session level is always used at the start of a session, whereas the TIME token using @ appears within performance entries. The contextual difference ensures that the two usages are not confused.
  2. No Overlap:

    • The session-level @ symbol is placed at the top of the session, while the TIME token with @ is embedded within performance entries. There should be no scenario where these two uses conflict.
  3. Documentation and Specification:

    • The specification should clearly define the dual-purpose use of the @ symbol:
      • Session-Level: Used to mark the start of a session and timestamp it.
      • Performance-Level: Used within the TIME token to record the duration of a specific performance.
    • Example:
      The `@` symbol is utilized in two distinct contexts within Traindown:
      - **Session-Level**: Placed at the start of a session to record the date and/or time.
      - **Performance-Level**: Embedded within the `TIME` token, following `SETS`, to record the duration of a performance.

Additional Metadata for Time-Based Training

Duration Metadata Key

Rest Metadata Key

Warmup Metadata Key

Cooldown Metadata Key

Interval Metadata Key

Pace Metadata Key

Usage Examples:

  1. Running Pace (per mile):

    # Pace: @8:00 per mile
    • Explanation: Indicates a pace of 8 minutes per mile.
  2. Cycling Pace:

    # Pace: @1:15:00 per 20 miles
    • Explanation: Indicates a pace of 1 hour and 15 minutes to cover 20 miles.
  3. Swimming Pace (per 100 meters):

    # Pace: @2:30 per 100 meters
    • Explanation: Indicates a pace of 2 minutes and 30 seconds per 100 meters.

Recovery Metadata Key

Pause Metadata Key

Expanded Usage Examples

Example 1: Strength Training with Exercise-Specific Metadata

@ 2024-08-19 06:00am

Squat:
  225 5r 3s @2:00
  # Rest: @1:30
  # Depth: below parallel
  # Bar Position: high bar

Bench:
  185 5r 3s @1:30
  # Rest: @2:00
  # Grip: medium
  # Tempo: @2 down, @1 pause, @1 up

Deadlift:
  315 5r 1s @3:00
  # Rest: @3:00
  # Stance: shoulder-width
  # Grip: overhand
  # Tempo: @2 lift, @2 lower

Example 2: Running Session with Sparse Session Metadata

@ 2024-08-20 07:00am

# Duration: @1:00:00
# Rest: @45

Warmup:
  bw @10:00
  # Activity: dynamic stretches

Jog:
  bw 3mi @25:00
  # Pace: @8:20 per mile
  # Terrain: hilly

Intervals:
  bw 5r @1:00
  # Pace: @6:00 per mile
  # Rest: @1:30

Cooldown:
  bw @5:00
  # Activity: light jog and stretches

Example 3: Swimming Session with Interval Training

@ 2024-08-21 06:30am

# Duration: @45:00

Warmup:
  bw @5:00
  # Activity: freestyle easy pace

Swim:
  100m 5r 4s @2:30
  # Stroke: freestyle
  # Rest: @1:00

Intervals:
  50m 10r @1:00
  # Stroke: butterfly
  # Rest: @0:45

Cooldown:
  bw @5:00
  # Activity: backstroke easy pace

Example 4: Circuit Training with Varied Exercises and Time Notations

@ 2024-08-22 06:45am

# Duration: @1:15:00

Warmup:
  bw @15:00
  # Activity: jump rope, dynamic stretches

Circuit:
  Push-ups:
    bw 20r 3s @30
    # Tempo: @2 down, @1 hold, @1 up

  Kettlebell Swings:
    24kg 15r 3s @45
    # Rest: @1:00
    # Tempo: @1 swing, @2 down

  Plank:
    bw 3s @1:00
    # Rest: @0:30
    # Form: elbows on mat, straight body line

Cooldown:
  bw @10:00
  # Activity: walking and static stretches

Example 5: Military Fitness Test

@ 2024-08-23 05:00am

# Duration: @45:57

Warmup:
  bw @10:00
  # Activity: dynamic stretches, light jogging

Hand-Release Push-Ups:
  bw 56 @2:00
  # Tempo: @1 down, @1 up
  # Form: hands fully released at bottom

Cross Leg Reverse Crunches:
  bw 46 @2:00
  # Tempo: @2 up, @2 down
  # Form: cross legs, engage core, slow and controlled

Run:
  bw 1.5mi @12:31
  # Pace: @8:20 per mile
  # Terrain: flat

Benefits of the Duration, Rest, Pace, Pause, and Other Time-Based Metadata Keys:

  1. Comprehensive Tracking:

    • These keys allow users to log every phase of their workout, from warm-up to cooldown, and everything in between, providing a complete picture of the session.
  2. Flexibility:

    • Users can choose which keys are relevant to their specific training regimen, making the system adaptable to various types of workouts.
  3. Consistency and Succinctness:

    • The use of a consistent @Hh:Mm:Ss format across different time-related keys ensures clarity, while the correct application of time entries supports portability and succinctness.

Conclusion

The introduction of the TIME token and related metadata keys like Duration, Rest, Warmup, Cooldown, Interval, Pace, Recovery, and Pause enhances the Traindown language by providing a clear, concise, and consistent method for recording various time-related aspects of training sessions. This proposal maintains the minimalist ethos of Traindown while offering users additional flexibility and precision in documenting their training sessions.

scottt2 commented 3 months ago

@evelyn Holy cow this is such a well thought out proposal! I am so grateful for the time you put into this. I think this would be a great addition to Traindown especially for the "density" use case--i.e., weight over time, etc. I want to digest a bit more and then figure out what an implementation may look like.