Skip to content
Skillv1.0.0

allen-cacm1983

Temporal interval algebra for reasoning about time relationships in planning and knowledge representation

by curiositech(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from curiositech/windags-skills (skills/allen-cacm1983/SKILL.md). Install upstream with npx skills add curiositech/windags-skills --skill allen-cacm1983. Copyright stays with the author (Apache-2.0).

SKILL.md: Temporal Interval Reasoning (Allen 1983)

When to Use This Skill

Load this skill when you encounter:

Trigger Situation Why Allen Applies
"Does task A finish before task B starts?" Requires interval relation classification (before, meets, overlaps…)
"I don't know exactly when X happened, only that it was during Y" Disjunctive uncertainty over the 13 relations
"If we add this constraint, does the schedule still work?" Constraint propagation + inconsistency detection
"Event A happens daily; event B happens yearly — how do they interact?" Reference interval hierarchy for scope management

Do not use if you only need to compare two absolute timestamps with no uncertainty — plain arithmetic suffices.


Decision Points

New Temporal Assertion Added

IF assertion conflicts with existing constraints:
    → Detect empty arc label during propagation
    → HALT immediately, report inconsistent interval pair
    → Do NOT continue with inconsistent state

IF assertion is consistent:
    → Run constraint propagation from affected arcs
    → Update labels by intersecting transitivity consequences
    → Continue until no more refinements possible

Handling Temporal Uncertainty

IF evidence only supports multiple relations:
    → Maintain full disjunctive label {before, meets, overlaps}
    → Never collapse to single relation without evidence
    → Log when/why constraint set narrows

IF forced to act under uncertainty:
    → Use disjunctive label as-is for planning
    → Tag any assumptions as defeasible
    → Avoid premature commitment

Scoping Temporal Reasoning

IF dealing with events at vastly different timescales:
    → Identify reference interval hierarchy (year→month→day)
    → Reason within each cluster separately
    → Create explicit bridge constraints at boundaries
    → Avoid flattening everything into one global graph

IF local reasoning feels sufficient:
    → Verify query scope matches reference interval level
    → Propagate only within relevant cluster
    → Escalate cross-cluster only when dependency detected

State Persistence

IF state continues with no explicit end bound:
    → Apply persistence default AND mark as defeasible
    → Any future end-bound assertion overrides default
    → Never treat persistence assumption as hard constraint

IF explicit temporal bound provided:
    → Override any existing persistence defaults
    → Propagate new constraint normally

Failure Modes

Anti-Pattern Symptom Diagnosis Fix
Point-ification Reducing events to timestamps, losing overlap/containment info Using time=14:30 instead of [14:30, 14:45] intervals Model every event as interval with start/end, even if duration unknown
Premature Commitment Picking single relation when evidence supports multiple Asserting "before" when you only know "not during" Maintain full disjunctive label until evidence forces narrowing
Global Propagation Bomb O(N²) cost per update, performance degrades with KB size Running constraint propagation across entire graph for local query Use reference interval hierarchy to limit propagation scope
Empty Label Denial Continuing reasoning after inconsistency detected Getting nonsense results because conflicting constraints ignored Treat empty arc label as SUCCESS (inconsistency caught early), halt immediately
Persistence Rigidity Cannot override "continues until changed" assumptions New temporal bounds rejected because they conflict with persistence Tag all persistence defaults as defeasible, allow override by explicit assertions

Detection Rules:

  • If you see timestamps without duration → Point-ification
  • If you see single relation chosen arbitrarily → Premature Commitment
  • If propagation cost grows with total KB size → Global Propagation Bomb
  • If reasoning continues after empty label → Empty Label Denial
  • If new temporal facts get rejected → Persistence Rigidity

Worked Examples

Example 1: Meeting Schedule Conflict Detection

Scenario: Adding "Team Review" to calendar that already has "Client Call" and "Engineering Standup"

Initial State:

Client Call (I₁): [10:00, 11:00]
Engineering Standup (I₂): [11:30, 12:00]
Known: I₁ {before} I₂

New Assertion: Team Review (I₃): [10:45, 11:15]

Expert Reasoning Trace:

  1. Classify new relations:

    • I₃ vs I₁: starts at 10:45, I₁ ends at 11:00 → {overlaps}
    • I₃ vs I₂: ends at 11:15, I₂ starts at 11:30 → {before}
  2. Constraint propagation:

    • From I₁ {before} I₂ and I₃ {overlaps} I₁
    • Transitivity: overlaps ∘ before = {before, overlaps, meets, starts, during}
    • New constraint: I₃ {before, overlaps, meets, starts, during} I₂
    • Intersect with I₃ {before} I₂: label becomes {before}
  3. Consistency check: All labels non-empty → Schedule is feasible but has overlap

Novice Would Miss:

  • Might not check I₃ overlap with I₁ creates resource conflict
  • Might not verify transitivity maintains consistency
  • Might not distinguish "feasible ordering" from "no resource conflicts"

Expert Catches:

  • Overlap detection flagged immediately via relation classification
  • Propagation verifies global consistency maintained
  • Clear distinction between temporal feasibility and resource availability

Example 2: Process Phase Dependencies

Scenario: Deployment pipeline with uncertain task completion times

Initial State:

Build Phase (B): duration unknown, must finish before Deploy
Test Phase (T): overlaps with end of Build, duration uncertain  
Deploy Phase (D): starts after both B and T complete

Constraint Network:

T {overlaps, finishes} B  (Test can finish with or before Build)
B {before, meets} D       (Build must complete before Deploy)
T {before, meets} D       (Test must complete before Deploy)

New Information: "Test found critical bug, extending by 2 hours"

Expert Reasoning:

  1. Update affects scope: Test extension pushes T endpoint later
  2. Propagation: If T {finishes} B originally, now T {overlaps} B (extends past Build end)
  3. Check consistency: T {overlaps} B still allows B {before, meets} D and T {before, meets} D
  4. Result: Deployment delayed but pipeline logic intact

Novice Would Miss:

  • Might assume Test completion doesn't affect Build-Deploy dependency
  • Might not propagate Test extension through to Deploy timing
  • Might treat "Test extends" as isolated fact rather than constraint network update

Expert Catches:

  • Recognizes Test-Build relation must be re-evaluated
  • Propagates timing implications through full constraint network
  • Maintains uncertainty appropriately (Deploy could start immediately after Build OR after extended Test)

Quality Gates

Temporal reasoning task is complete when:

  • All intervals represented with explicit start/end bounds (no point events)
  • Every interval pair has non-empty arc label from the 13-relation vocabulary
  • Constraint propagation run to completion (no pending transitivity updates)
  • All disjunctive labels honestly reflect current evidence (no arbitrary commitments)
  • Reference interval hierarchy established for multi-scale reasoning
  • Persistence defaults tagged as defeasible where applicable
  • Inconsistency detection verified (empty labels caught and reported)
  • Cross-reference scope bridges explicitly defined
  • All temporal assertions traced to evidence source
  • Query scope matches reasoning granularity level

NOT-FOR Boundaries

Do NOT use Allen's interval algebra for:

  • Simple timestamp comparison → Use arithmetic: if (t1 < t2)
  • Metric duration calculation → Use calendar arithmetic: end_date - start_date
  • Real-time scheduling optimization → Use constraint satisfaction with numeric domains
  • Probabilistic temporal inference → Use temporal probabilistic networks
  • Continuous time dynamics → Use differential equations
  • High-frequency event streams → Use stream processing frameworks

Delegate instead:

  • For metric constraints: Use constraint-satisfaction-with-numeric-domains
  • For probabilistic temporal reasoning: Use bayesian-temporal-networks
  • For real-time systems: Use rate-monotonic-scheduling
  • For continuous dynamics: Use temporal-logic-model-checking
  • For event stream processing: Use complex-event-processing

Allen excels at: Qualitative temporal reasoning under uncertainty with incremental knowledge updates and hierarchical scope management.

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/curiositech-windags-skills-allen-cacm1983/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

curiositech-windags-skills-allen-cacm1983.ocm.jsonjson
{
  "ocm": "1",
  "id": "curiositech-windags-skills-allen-cacm1983",
  "kind": "skill",
  "name": "allen-cacm1983",
  "description": "Temporal interval algebra for reasoning about time relationships in planning and knowledge representation",
  "publisher": "curiositech",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "math"
    ],
    "tags": [
      "skill-md",
      "temporal-reasoning",
      "interval-algebra",
      "knowledge-representation",
      "ai",
      "planning",
      "github"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "Temporal interval algebra for reasoning about time relationships in planning and knowledge representation"
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "github",
      "repository": "https://github.com/curiositech/windags-skills",
      "path": "skills/allen-cacm1983/SKILL.md",
      "ref": "9e2fed3bb42ad027284c5a3342e5487be45bf05e",
      "url": "https://github.com/curiositech/windags-skills/blob/9e2fed3bb42ad027284c5a3342e5487be45bf05e/skills/allen-cacm1983/SKILL.md",
      "key": "curiositech/windags-skills/skills/allen-cacm1983/SKILL.md"
    },
    "license": "Apache-2.0"
  },
  "instructions": "# SKILL.md: Temporal Interval Reasoning (Allen 1983)\n\n## When to Use This Skill\n\nLoad this skill when you encounter:\n\n| Trigger Situation | Why Allen Applies |\n|---|---|\n| \"Does task A finish before task B starts?\" | Requires interval relation classification (before, meets, overlaps…) |\n| \"I don't know exactly when X happened, only that it was during Y\" | Disjunctive uncertainty over the 13 relations |\n| \"If we add this constraint, does the schedule still work?\" | Constraint propagation + inconsistency detection |\n| \"Event A happens daily; event B happens yearly — how do they interact?\" | Refe",
  "cost": {
    "context_tokens": 2168
  }
}

Fetch it by URL: GET /api/v1/registry/curiositech-windags-skills-allen-cacm1983/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.