SKILL.md: 시간 구간 추론 (Allen, 1983)
이 스킬을 사용해야 하는 경우
다음 상황을 마주했을 때 이 스킬을 로드하세요:
| 트리거 상황 | Allen이 적용되는 이유 |
|---|---|
| "작업 A가 작업 B가 시작되기 전에 끝나는가?" | 구간 관계 분류 필요 (before, meets, overlaps…) |
| "X가 정확히 언제 발생했는지는 모르지만, Y 기간 동안 발생했다는 것만 안다" | 13가지 관계에 대한 선언적 불확실성 |
| "이 제약 조건을 추가해도 일정이 여전히 유효한가?" | 제약 조건 전파 + 불일치 탐지 |
| "이벤트 A는 매일 발생하고, 이벤트 B는 매년 발생합니다. 어떻게 상호작용하나요?" | 범위 관리를 위한 참조 구간 계층 구조 |
사용하지 마세요 불확실성 없이 두 개의 절대 타임스탬프만 비교하면 되는 경우 — 일반 산술 연산으로 충분합니다.
결정 포인트
새로운 시간 주장 추가됨
IF 주장이 기존 제약 조건과 충돌함:
→ 전파 중 빈 아크 레이블 감지
→ 즉시 중단(HALT), 일관성 없는 구간 쌍 보고
→ 일관성 없는 상태로 계속 진행하지 않음
IF 주장이 일관성 있음:
→ 영향을 받은 아크에서 제약 조건 전파 실행
→ 전이성 결과를 교차하여 레이블 업데이트
→ 더 이상 개선이 없을 때까지 계속
시간적 불확실성 처리
IF 증거가 여러 관계만을 지지함:
→ 완전한 선언적 레이블 {before, meets, overlaps} 유지
→ 증거 없이 단일 관계로 축소하지 않음
→ 제약 조건 집합이 좁혀지는 시기/이유 기록
IF 불확실성 속에서 행동해야 함:
→ 계획 수립을 위해 선언적 레이블을 그대로 사용
→ 모든 가정을 취소 가능한 것으로 태그 지정
→ 조기 확정 피하기
시간 추론 범위 설정
IF 매우 다른 시간 척도의 이벤트를 다루는 경우:
→ 참조 구간 계층 구조 식별 (년→월→일)
→ 각 클러스터 내에서 별도로 추론
→ 경계에 명시적 브리지 제약 조건 생성
→ 모든 것을 하나의 전역 그래프로 평탄화하지 않음
IF 지역적 추론만으로 충분하다고 느껴지는 경우:
→ 쿼리 범위가 참조 구간 수준과 일치하는지 확인
→ 관련 클러스터 내에서만 전파
→ 종속성이 감지된 경우에만 교차 클러스터로 확장
상태 지속성
IF 명시적 종료 경계 없이 상태가 계속됨:
→ 지속성 기본값 적용 AND 취소 가능으로 표시
→ 향후 종료 경계 주장이 기본값을 재정의함
→ 지속성 가정을 하드 제약 조건으로 취급하지 않음
IF 명시적 시간 경계가 제공됨:
→ 기존 지속성 기본값 재정의
→ 새 제약 조건을 정상적으로 전파
실패 모드
| 안티패턴 | 증상 | 진단 | 수정 |
|---|---|---|---|
| 점-화(Point-ification) | 이벤트를 타임스탬프로 축소하여 중복/포함 정보 손실 | time=14:30 대신 [14:30, 14:45] 구간 사용 | 모든 이벤트를 시작/종료가 있는 구간으로 모델링 (지속 시간을 몰라도) |
| 조기 확정(Premature Commitment) | 증거가 여러 관계를 지지할 때 단일 관계 선택 | "~하는 동안이 아님"만 알면서 "before" 주장 | 증거가 강제로 좁힐 때까지 완전한 선언적 레이블 유지 |
| 전역 전파 폭탄(Global Propagation Bomb) | 업데이트당 O(N²) 비용, KB 크기에 따라 성능 저하 | 지역 쿼리를 위해 전체 그래프에 걸쳐 제약 조건 전파 실행 | 참조 구간 계층 구조를 사용하여 전파 범위 제한 |
| 빈 레이블 부인(Empty Label Denial) | 불일치 감지 후 추론 계속 | 충돌하는 제약 조건을 무시하여 무의미한 결과 얻음 | 빈 아크 레이블을 SUCCESS(불일치 조기 발견)로 처리, 즉시 중단 |
| 지속성 경직성(Persistence Rigidity) | "변경될 때까지 계속" 가정을 재정의할 수 없음 | 새로운 시간 경계가 지속성과 충돌하여 거부됨 | 모든 지속성 기본값을 취소 가능으로 태그 지정, 명시적 주장에 의한 재정의 허용 |
탐지 규칙:
- 지속 시간 없는 타임스탬프를 보는 경우 → 점-화
- 단일 관계가 임의로 선택된 경우 → 조기 확정
- 전파 비용이 전체 KB 크기에 따라 증가하는 경우 → 전역 전파 폭탄
- 빈 레이블 이후에도 추론이 계속되는 경우 → 빈 레이블 부인
- 새로운 시간 사실이 거부되는 경우 → 지속성 경직성
작업 예제
예제 1: 회의 일정 충돌 탐지
시나리오: "팀 리뷰"를 이미 "고객 전화"와 "엔지니어링 스탠드업"이 있는 캘린더에 추가
초기 상태:
고객 전화 (I₁): [10:00, 11:00]
엔지니어링 스탠드업 (I₂): [11:30, 12:00]
알려짐: I₁ {before} I₂
새로운 주장: 팀 리뷰 (I₃): [10:45, 11:15]
전문가 추론 과정:
-
새로운 관계 분류:
- I₃ vs I₁: 10:45에 시작, I₁은 11:00에 종료 → {overlaps}
- I₃ vs I₂: 11:15에 종료, I₂는 11:30에 시작 → {before}
-
제약 조건 전파:
- I₁ {before} I₂ 및 I₃ {overlaps} I₁로부터
- 전이성: overlaps ∘ before = {before, overlaps, meets, starts, during}
- 새로운 제약 조건: I₃ {before, overlaps, meets, starts, during} I₂
- I₃ {before} I₂와 교차: 레이블이 {before}가 됨
-
일관성 확인: 모든 레이블이 비어 있지 않음 → 일정은 가능하지만 중복 있음
초보자가 놓칠 수 있는 점:
- I₃가 I₁과 중복되어 리소스 충돌이 발생하는지 확인하지 않을 수 있음
- 전이성이 일관성을 유지하는지 확인하지 않을 수 있음
- "가능한 순서"와 "리소스 충돌 없음"을 구분하지 않을 수 있음
전문가가 잡아내는 점:
- 중복 탐지가 관계 분류를 통해 즉시 플래그 지정됨
- 전파가 전역 일관성 유지를 확인함
- 시간적 가능성과 리소스 가용성을 명확히 구분함
예제 2: 프로세스 단계 종속성
시나리오: 작업 완료 시간이 불확실한 배포 파이프라인
초기 상태:
빌드 단계 (B): 지속 시간 불명, 배포 전에 완료되어야 함
테스트 단계 (T): 빌드 종료와 중복되며, 지속 시간 불확실
배포 단계 (D): B와 T가 모두 완료된 후에 시작
제약 조건 네트워크:
T {overlaps, finishes} B (테스트는 빌드와 함께 또는 그 전에 완료될 수 있음)
B {before, meets} D (빌드는 배포 전에 완료되어야 함)
T {before, meets} D (테스트는 배포 전에 완료되어야 함)
새로운 정보: "테스트에서 치명적인 버그 발견, 2시간 연장"
전문가 추론:
- 영향 범위 업데이트: 테스트 연장으로 T 종료 시점이 늦어짐
- 전파: 원래 T {finishes} B였다면, 이제 T {overlaps} B (빌드 종료 이후까지 연장)
- 일관성 확인: T {overlaps} B는 여전히 B {before, meets} D 및 T {before, meets} D를 허용함
- 결과: 배포는 지연되지만 파이프라인 로직은 손상되지 않음
초보자가 놓칠 수 있는 점:
- 테스트 완료가 빌드-배포 종속성에 영향을 미치지 않는다고 가정할 수 있음
- 테스트 연장을 배포 시점까지 전파하지 않을 수 있음
- "테스트 연장"을 제약 조건 네트워크 업데이트가 아닌 고립된 사실로 처리할 수 있음
전문가가 잡아내는 점:
- 테스트-빌드 관계를 재평가해야 함을 인식
- 전체 제약 조건 네트워크를 통해 시간적 영향을 전파
- 불확실성을 적절히 유지 (배포는 빌드 직후 또는 연장된 테스트 후에 시작될 수 있음)
품질 게이트
시간 추론 작업은 다음 조건을 모두 충족할 때 완료됩니다:
- 모든 구간이 명시적 시작/종료 경계로 표현됨 (점 이벤트 없음)
- 모든 구간 쌍이 13가지 관계 어휘에서 비어 있지 않은 아크 레이블을 가짐
- 제약 조건 전파가 완료될 때까지 실행됨 (보류 중인 전이성 업데이트 없음)
- 모든 선언적 레이블이 현재 증거를 정직하게 반영함 (임의 확정 없음)
- 다중 척도 추론을 위해 참조 구간 계층 구조가 수립됨
- 지속성 기본값이 해당되는 경우 취소 가능으로 태그 지정됨
- 불일치 탐지가 확인됨 (빈 레이블이 포착되어 보고됨)
- 교차 참조 범위 브리지가 명시적으로 정의됨
- 모든 시간 주장이 증거 출처로 추적됨
- 쿼리 범위가 추론 세분성 수준과 일치함
적용 불가 경계
다음 경우에는 Allen의 구간 대수를 사용하지 마세요:
- 단순 타임스탬프 비교 → 산술 연산 사용:
if (t1 < t2) - 메트릭 지속 시간 계산 → 달력 산술 사용:
end_date - start_date - 실시간 일정 최적화 → 수치 도메인을 사용한 제약 조건 만족 사용
- 확률적 시간 추론 → 시간적 확률 네트워크 사용
- 연속 시간 동역학 → 미분 방정식 사용
- 고빈도 이벤트 스트림 → 스트림 처리 프레임워크 사용
대신 위임하세요:
- 메트릭 제약 조건: 수치 도메인을 사용한 제약 조건 만족
- 확률적 시간 추론: 베이지안 시간 네트워크
- 실시간 시스템: 율-단조 스케줄링
- 연속 동역학: 시간 논리 모델 검증
- 이벤트 스트림 처리: 복합 이벤트 처리
Allen이 탁월한 분야: 지식의 점진적 업데이트와 계층적 범위 관리를 통한 불확실성 하의 질적 시간 추론.