S9 · REPORT2026-07-16 — export 재고 · SEM 재정초 후속

표준이 아니라 자기 구조로 — 오래 사는 기록의 주어·시제·겹

기록의 수명을 표준 어휘까지 밀어 넣는 문제로 봤던 export 매핑 부록(2026-07-13, 이 문서로 대체·삭제됨)을 뒤집습니다. 물음을 다시 놓으면 — 표준 정합이 아니라 우리 서비스에 맞는 자기 구조가 오래 살고 훗날 다른 사람과 교차해 볼 수 있게 하려면, 지금 무엇을 열어 둘 것인가. 세 가지가 자리를 옮깁니다: 주어(모델엔 상존, 표현에선 숨김)·시제(모델 밖, 수신자가 파생)·(가지 않은 길도 내보낸다).

이건 지금 만드는 기능이 아닙니다. 당장 짓지 않되 먼 미래에 마주칠 요소를 미리 이름 붙여, 프리즈 전 seam으로 열어 두려는 설계 노트입니다. 정본 대조: 데이터 모델·개념 모델. 자매 문서 SEM 재정초(§3·§5·§10)·다화자 단일 모델·프리즈전 리포트의 후속 — 세 문서가 유예한 '기록의 수명·교환'을 이 각도에서 정리한다.

요 약

판정 먼저

기록의 수명을 표준으로 밀어야 하나, 아니면 자기 구조로 세워야 하나?
  1. 물음을 다시 놓는다 — 표준까지 밀기가 아니라 자기 구조로 오래 살기. 삭제된 부록은 "어느 표준 어휘로 내보내며 무엇을 잃는가"를 물었다. 진짜 물음은 "우리 구조가 그 자체로 오래 살고, 훗날 다른 사람과 교차해 볼 수 있게 하려면 지금 무엇을 열어 두는가"다. 정본 교환 경로 = 자기 구조의 자기기술(무손실, 백업 zip이 이미 그 씨앗)이고, 표준(schema.org/CIDOC)은 좁은 목적의 손실 편의 투영으로 강등된다.
  2. 부록이 꼽은 '다섯 손실'은 데이터의 손실이 아니라 번역의 실패였다. 돈·겹·추상 대상·암묵 주어가 '빠진' 것은 우리 데이터가 빈약해서가 아니라 남의 표준 어휘에 없어서다. 표준을 향하기를 그만두면 그 손실은 사라진다 — 우리 자기 구조에선 넷 다 1급 엔티티로 native하게 실린다. 남는 것은 손실이 아니라 세 가지 진짜 설계다.
  3. 그 셋을 자기 구조로 다시 놓는다. ① 주어 — '나'는 소유(user_id)와 귀속(Involvement.attributedTo)으로 모델에 상존하고, 표시할 때만 접는다. 단독 자서전 렌즈는 숨기고 교차뷰·export 렌즈는 편다. ② 시제 — 저장하지 않는다. 넘기는 건 리터럴 앵커뿐, 시제는 수신 서비스가 자기 now로 파생한다(내 것이든 남의 것이든). ③ 겹 — 가지 않은 길도 내보낸다. "A·B·C를 세웠고 결국 B를 골라 여기 왔다"는 숙고·결정의 서사가 export의 재료다.
왜 SEM이었나 — 상호운용 표준이라서가 아니라, 같은 사건을 화자 A·B가 다르게 기술해도 같이 볼 수 있는 유연함 때문이었다. 그 영감의 착지점은 'SEM 채택'이 아니라, 그 유연함을 가능케 하는 얇은 seam(귀속·목소리·저자 라벨·병존 겹·무소유 병치 투영)을 프리즈 전에 열어 두는 것 → §6. 강형(Claim·accordingTo)은 자서전→공존 연대기 피벗 시로 유예한다(SEM §10).

§1은 물음의 재설정, §2는 다섯 손실의 해소, §3–§5는 남는 세 설계(주어·시제·겹)를 자기 구조로 다시 놓기, §6은 SEM의 진짜 영감과 이미 열린 seam, §7은 지금/미룸의 경계.

전제 — 물음을 바꾼다

1 · 물음의 재설정 — '표준까지 밀기'에서 '자기 구조로 오래 살기'로

삭제된 부록의 전제는 "기록의 수명을 상호운용 수준까지 미는 것"이었고, 그래서 대상이 schema.org/Event(웹)·CIDOC-CRM(아카이브)이었다. 그 전제 자체를 내려놓는다.

기록이 이 서비스보다 오래 살아야 한다는 요구(부검 원인 ⑦ — 기록이 도구의 수명에 묶이면 안 된다)는 옳다. 그러나 그 수명을 외부 표준의 수명에 얹는 것이 유일한 길은 아니다. 오히려 우리 데이터의 결(돈·시나리오 겹·암묵 주어·추상 대상)은 어느 표준에도 깨끗이 앉지 않으므로, 표준에 얹는 순간 수명을 얻는 대신 정체성을 잃는다. 다른 길이 있다 — 기록이 자기 자신을 온전히 기술하는 구조로 오래 사는 것.

정본 교환 경로는 이미 있다 — 자기 구조의 자기기술. 백업 zip(md·csv·미디어 전량 직렬화)은 Event·Involvement(attributedTo 포함)·Scenario·돈 4역을 전부 담는 무손실 직렬화다. 이건 '표준 export의 열등한 대체'가 아니라 반대다 — 우리 구조를 남의 어휘로 번역하지 않고 그대로 보존하므로, 오래 사는 기록의 정본 경로다. 이 문서가 말하는 '자기 구조 교환'은 이 백업을 (a) 주어를 펴서 보여주고 (b) 겹까지 서사로 싣는 방향으로 넓힌 것일 뿐, 새 저장 엔티티가 아니다.
삭제된 부록 (표준까지 밀기)이 문서 (자기 구조로 오래 살기)
수명의 담지자외부 표준의 수명(schema.org·CIDOC)자기 자신을 기술하는 우리 구조
정본 경로표준 어휘 매핑(손실 왕복)자기 구조 직렬화(무손실 — 백업 zip의 상위집합)
표준의 지위목표 — 기록을 상호운용까지 민다좁은 목적의 손실 편의 투영(웹 발견성·아카이브 기탁)
'무엇을 잃나'돈·겹·주어·시제가 빠지는 게 설계의 핵심표준을 안 향하면 넷 다 안 빠진다 — 남는 건 세 설계뿐

그래서 표준 export를 버리지는 않는다 — 단일 공개 사건의 웹 발견성, 유산 기관 기탁 같은 좁은 목적엔 여전히 쓸모 있는 손실 투영이다(DB 패러다임 §RDF의 진짜 값: 트리플 저장 없이 관계형 정본 위 JSON-LD 투영으로 interop 수확). 다만 정본에서 편의로 강등한다. 기록의 수명은 표준이 아니라 우리 구조가 진다.

해소 — 손실의 출처

2 · 다섯 '손실'은 번역의 실패였다 — 자기 구조에선 사라진다

삭제된 부록은 매핑에서 잃는 것 다섯을 꼽았다(①암묵 주어 물질화 ②시제 스냅샷 고정 ③겹 소실 ④돈 DROP ⑤추상 대상 눌림). 하나씩 다시 보면, 넷은 우리 데이터의 손실이 아니라 남의 어휘에 없어서 생긴 번역 손실이고, 표준을 안 향하면 사라진다. 남는 셋(주어·시제·겹)만 진짜 설계라 §3–§5로 넘긴다.

부록이 꼽은 '손실'손실의 진짜 출처자기 구조에선
④ 돈 4역 DROP표준 사건 어휘에 개인 재무의 집이 없음(schema offers=입장료, CIDOC E97=거래 활동 금액)Pocket·Flow·Allocation·Goal가 1급 엔티티 — 그대로 실린다
⑤ Subject 추상 눌림표준 about→Thing/E70은 구체물엔 맞고 '비상금'·'책 원고' 같은 추상엔 미스핏Subject는 구체물·범주를 함께 담게 설계됨 — 눌릴 이유 없음
③ 겹(가능세계) 소실표준엔 분기 의미 없음(eventStatus는 예정/취소일 뿐)§5. 자기 구조는 가능세계를 담는다 — 이게 자서전의 재료
① 암묵 주어 → 3인칭 물질화표준은 subject-explicit이라 암묵 '나'가 명시 Person으로 굳는다§3. '나'는 이미 저장돼 있다 — 물질화가 아니라 표시 전환
② 시제 → 스냅샷 고정표준은 절대 타임스탬프, "지금 대비"가 export 시점에 굳는다§4. 굳을 시제가 애초에 저장돼 있지 않다
한 줄. 부록은 "그 손실이 곧 우리 정체성"이라 했다 — 반은 맞다. 손실이 드러낸 것(우리는 표준이 아니라 자서전이다)은 옳지만, 그 손실을 겪을 이유는 없다. 정체성은 표준 앞에서 무언가를 잃어야 드러나는 게 아니라, 애초에 표준을 향하지 않음으로써 온전히 보존된다.
설계 ① — 주어

3 · 주어(主語) — 모델엔 상존, 표현에선 은현(隱現)한다

"암묵 주어 '나'를 모델상에서는 가지고 있는데, 서비스에서 표현할 때만 보여주지 않으면 좋겠다 — 그래야 나중에 다른 사람과 교차해 볼 때 구분할 수 있으니까." 이 요구를 데이터로 옮기면, 주어는 저장의 문제가 아니라 렌더의 문제가 된다.

'나'는 이미 두 겹으로 모델에 상존한다 — 지울 수 없이:

  • 소유로서의 나 — 모든 최상위 레코드는 정확히 한 User에 귀속된다(user_id+RLS). 그러니 "이 자서전은 누구 것인가"는 언제나 결정돼 있다. 누구의 관점인가는 user_id에서 파생한다(강형 Authority를 물화하지 않아도 됨 — 프리즈전 §3, 소유 ≠ 귀속).
  • 귀속으로서의 나 — 사실(성분)마다 Involvement.attributedTo가 "이 사실을 누구의 증언·관점으로 귀속하나"를 담는다. null = 암묵 '나', 값 있음 = 타인의 증언(고인·재회불가 인연 포함). 서사 태그로는 Reflection.voice, 미래를 그린 저자는 Scenario.authorLabel이 같은 자리를 맡는다.

따라서 표시(렌더)만 두 갈래로 갈린다 — 저장은 하나인 채로:

단독 자서전 렌즈 — 주어를 접는다

  • attributedTo == null(나)인 사실은 주어 없이 렌더한다 — "제주로 이사했다"(내가, 는 암묵).
  • 값 있는 귀속만 드러난다 — "아버지 말로는, 그해 겨울 눈이 유난했다".
  • 1인칭 자서전의 자연스러운 목소리. 매 문장 '나는'을 반복하지 않는다.

교차뷰 · export 렌즈 — 주어를 편다

  • 모든 사실의 주어를 드러낸다null이던 나도 소유자(user_id)로 명시된다.
  • 내 판본과 아버지의 판본을 나란히 놓아도 누구의 진술인지 구분된다.
  • 이것이 사용자가 원한 '교차해서 볼 때 구분'을 데이터로 보장한다.
그래서 부록의 ①은 틀렸다. "export하면 '나'를 3인칭 Person으로 물질화해야 하고, 자서전이 3인칭으로 번역되는 손실"이라 했지만 — 물질화될 것은 export 시점에 새로 만들어지지 않는다. 주어는 처음부터 저장돼 있었고(소유+귀속), 단독 렌즈가 그걸 접어 보여주지 않았을 뿐이다. export/교차뷰는 손실 변환이 아니라 접힌 것을 펴는 렌즈 전환이다. 잃는 것이 없다.
대칭 — 시제와 정반대의 처방. 주어와 시제는 둘 다 '관점'의 문제지만 정반대로 다룬다. 시제저장하지 않고 관측자가 파생한다(§4) — 옳은 저장값이 없기 때문(시제는 읽는 이의 지금에 상대적). 주어저장하되 조건부로 표시한다 — 옳은 저장값이 있기 때문(누구의 진술인가는 보존해야 교차구분이 가능하다). '나중에 구분할 수 있으려면' 주어는 반드시 저장돼 있어야 하고, '지금 자서전으로 읽으려면' 표시는 접혀야 한다. 두 요구가 저장은 하되 표시는 렌즈로 화해한다.

경계. 표시의 은현은 서사 편의이지 프라이버시가 아니다. 타인이 등장하는 기록을 실제로 공유·교차뷰할 때의 실명 마스킹·의미 스크럽은 별개의 하드 게이트다(다화자 §5·§다화자 하드 블로커). 주어를 '펴는' 것과 타인 정보를 '내보내도 되는가'는 다른 결정이다.

설계 ② — 시제

4 · 시제(時制) — 데이터 모델 밖, 수신자가 자기 now로 파생한다

"선 대비 파생하는 것은 그때그때 해석하는 거라, 내 서비스에 있던 외부 다른 서비스에 전달하던 각각의 서비스가 알아서 판단할 일 같다. 데이터 모델에서 고려할 필요는 없는 듯." — 이 통찰을 그대로 굳힌다.

모델은 리터럴 앵커(start/end)만 저장하고, 있었다/있다/갈 것이다라는 시제는 사건 시간이 '지금 선(now)'의 어느 편에 있느냐로 파생한다(시제 비저장 원리, 원칙 7). export도 이 원리를 그대로 따른다 — 넘기는 것은 앵커뿐이고, 시제는 받는 쪽이 자기 now로 다시 계산한다. 그 수신자가 내 서비스의 다른 렌즈든, 몇 년 뒤의 나든, 외부 서비스든 상관없다.

그래서 부록의 ②도 틀렸다. "export는 '지금 대비'라는 파생 의미를 export 시점에 고정하고, 다시 열면 '그때의 지금'으로 읽혀 now 축이 정지한다"고 했지만 — 고정될 시제가 애초에 데이터에 없다. 우리는 시제를 저장하지 않으므로 export가 굳힐 값 자체가 없다. 앵커만 넘어가면 어느 시점에 다시 읽어도 '그때의 지금'이 아니라 읽는 이의 지금으로 살아난다. now 축은 정지하는 게 아니라 수신자마다 새로 선다.
시제 (時制)주어 (主語)
모델에 저장?아니오 — 파생예 — 소유+귀속
관점의 소재읽는 이의 '지금'(관측자 상대)기록에 붙박인 사실(누구의 진술)
export가 싣는 것리터럴 앵커만 → 수신자가 파생주어 전부 → 수신자가 그대로 읽음
표준(schema.org)과절대 타임스탬프 요구해도 앵커라 손실 0. 파생 필드(eventStatus 예정/취소)는 안 채움subject-explicit이라 오히려 잘 받음 — 단 우리 귀속의 결(null=나)은 못 담음

결론. 시제는 데이터 모델에도, export 포맷에도 넣지 않는다. 사건의 절대 시각만이 사실이고, 상대 시제는 언제나 읽는 순간의 계산이다 — 각 서비스가 알아서 판단할 일이라는 사용자의 판단이 정확하다.

설계 ③ — 겹

5 · 겹(scenario overlay) — 가지 않은 길도 내보낸다

"export할 때 시나리오 겹도 같이 내보낼 수 있으면 좋겠다. 그가 과거에 A·B·C 계획을 세웠는데 결국 B를 선택해서 지금에 이르렀다 — 이런 식으로." 이 서사는 숙고와 결정의 기록이고, 자서전의 핵심 재료다.

필요한 데이터는 이미 전부 있다 — 새로 만들 것이 없다:

서사 조각담는 데이터
세운 안들 (A·B·C)Scenario 여럿 + 소속 3필드(scenarioId·baseId·removed)로 그린 미래 델타
고른 것 (B)Scenario.status = chosen · 승격된 델타가 확정 세계로 합류 · decidedAt
가지 않은 길 (A·C)status = discarded/shelved기각돼도 데이터는 이력으로 보존(하드 삭제 아님)
결정이라는 사건결정 milestone(Event) + Link(milestone ↔ scenario) — 갈림길이 타임라인의 결절로 남는다
무엇을 전제로 그렸나Scenario.asOf — 그때의 현실 · note — 저울질의 기록

자기 구조 export = 이 Scenario들 + 소속 델타 + 결정 Link + 기각 가지까지 그대로 싣는 것이다. 표준(schema.org/CIDOC)에는 가능세계·분기가 없어 확정 세계만 나가고 겹은 DROP됐다 — 그래서 표준을 향하지 않는다. 우리 구조는 가지 않은 길을 담고, 그것이 책자 출력·성찰의 재료가 된다("worldview: 여러 버전 검토 → 결정 → 승격 → 이력"의 삶 버전).

겹 export의 결 — modal만, 관점축은 아직 아니다. 소속 3필드(baseId·removed)는 modal(양상적 미래) 전용이라, 겹 export가 담는 것은 '내가 그려 본 여러 미래'다. 여기에 다저자 대등 증언(같은 과거를 아버지와 내가 다르게)을 오버로드하지 않는다 — 그건 3필드가 아니라 유예된 L4 View의 몫(프리즈전 §2). 다만 Scenario.status = coexisting(비붕괴 병존 — 결정 없이 대안을 병렬 유지)까지 실으면, '아버지가 그리는 내 미래와 내가 그리는 내 미래가 공존'하는 교차뷰의 씨앗이 export에도 담긴다.

왕복. 자기 구조끼리(백업 zip과 동류)는 겹·주어·돈을 다 실으므로 무손실 왕복이다. 표준으로 나갈 때만 손실 왕복이 된다(무손실 경계 = 자기 구조 직렬화 — 프리즈전 §마이그레이션 계약의 최후 방어선과 같은 선).

영감의 착지 — 왜 SEM이었나

6 · SEM의 진짜 영감 — 상호운용이 아니라 다화자 유연 공존

"SEM을 고려했던 것은, 같은 사건에 대해 화자 A·B가 각각 다르게 기술해도 같이 볼 수 있는 유연한 방법이라 택하고 싶었던 것." — 그러니 SEM의 영감은 표준 정합이 아니라 유연한 공존이었다. 그 영감의 착지점은 표준 채택이 아니라, 그 유연함을 가능케 하는 seam을 열어 두는 것이다.

이 서비스의 데이터 모델에는 그 seam이 이미 얇게 열려 있다(A2 프리즈전 검토가 심어 둔 것) — 지금 강형을 짓지 않고도, 훗날 '같은 사건, 다른 기술, 같이 보기'로 자랄 자리다:

seam (이미 열림)여는 미래
Involvement.attributedTo record-grain사실별로 '누구의 증언인가'를 갈라 붙임 — 같은 사건을 두 사람이 다르게 증언해도 각 사실이 자기 저자를 안다
Reflection.voice · Scenario.authorLabel서사·미래를 '누구의 목소리/손'으로 태그 — 고인·타저자의 자리
Link(relationType='co-narrates') 교차소유여러 화자가 같은 사건을 연계 증언(양자 동의) — 약형 상관 엣지(다화자 §4)
Scenario.status = coexisting결정 없이 대안을 병렬 유지 — 관점파생 미래의 '비붕괴' 절반
무소유 CQRS 병치 투영두 사람의 판본을 나란히(co-narrate) — 저장 엔티티가 아니라 계산이라 '한 User 귀속' 불변식을 문자 그대로 지킴(프리즈전 §3)
이 문서의 기여. 위 seam들은 프리즈전 리포트마이그레이션 안전의 관점에서 심었다. 이 문서는 같은 seam을 기록의 수명·교환의 관점에서 다시 정당화한다 — 주어를 저장하는(§3) 것도, 겹을 내보내는(§5) 것도, 결국 이 seam들이 있어야 '훗날 교차해 볼 때 구분'이 성립하기 때문이다. 두 관점이 같은 얇은 seam으로 수렴한다.

강형은 유예 — 자서전에서 공존 연대기로 피벗할 때만

속성 입도의 공동증언(Claim = property-grain accordingTo + 시변 마스터 유효구간 + 1급 부정 negates), Authority 물화는 짓지 않고 이름만 남긴다. 이것들이 진짜 필요해지는 건 제품이 단독 자서전에서 여러 화자가 같은 과거를 다르게 증언하고 해소하지 않는 공존 연대기로 피벗할 때다(SEM §10). 그때 SEM의 View/accordingTo는 '먼 친척'이 아니라 바로 그 저장 기제가 된다. 지금 우리는 그 제품이 아니므로 유예하되, 착지점을 명명해 둔다.

경계 — 지금 / 미룸

7 · 지금 할 일 · 미룰 일

사용자의 말대로 "당장은 만들지 않지만 먼 미래에 고려하게 될 요소를 미리 말해 둔" 것이다. 그 경계를 정직하게 긋는다.

지금 — 새로 만들 것 0

  • 정본 정정: 데이터 모델의 export 절을 '표준까지 밀기'에서 '자기 구조로 오래 살기'로 재기술(이 문서 반영).
  • 표준 export 강등: schema.org/CIDOC 매핑은 정본이 아니라 좁은 목적의 손실 편의 투영으로 남긴다(삭제하지 않되 격하).
  • seam 유지: attributedTo·voice·authorLabel·co-narrates·coexisting는 이미 열려 있으니 프리즈 전까지 닫지 않는다.

미룸 — 먼 미래 고려요소

  • 주어 은현 렌즈 토글 — 단독 자서전 ↔ 교차뷰의 주어 접기/펴기(§3)를 UI로 노출.
  • 겹까지 싣는 자기기술 교환 포맷 — 백업 zip의 상위집합(주어 펴기 + 겹 서사, §5).
  • 강형 착지Claim·Authority는 공존 연대기 피벗 시(§6).
  • 교차뷰 병치 — 두 사람 판본의 무소유 CQRS 투영(다화자 로드맵 Phase).
프리즈 규율. 위 '미룸'이 훗날 들어올 때, 확장 가드레일의 프리즈 가드(Q8)로 비-additive 변경을 먼저 거른다. 어떤 변경이 와도 무손실 자기기술 직렬화 → 새 스키마 재적재가 최후 방어선이다 — 표준 export가 아니라 자기 구조가 그 안전망을 진다. 기록의 수명은, 표준의 수명이 아니라 우리 구조가 스스로를 온전히 적을 수 있는 능력에서 온다.
한 줄 요약. 표준까지 밀지 않는다 — 자기 구조로 오래 산다. 주어는 저장하되 표시는 렌즈로 접고, 시제는 저장하지 않고 수신자가 파생하며, 겹은 가지 않은 길까지 내보낸다. SEM의 영감(같은 사건, 다른 기술, 같이 보기)은 표준 채택이 아니라 얇은 seam으로 이미 착지해 있다. 지금 만들 것은 없고, 열어 둘 것은 이미 열려 있다.