Summary#
Source-reference integrity contract는 지식 파이프라인에서 “이 claim이 어떤 공개 source의 어느 시점, 어느 위치, 어떤 변환을 거쳐 만들어졌는가”를 기계적으로 검증 가능하게 묶는 계약이다. 핵심은 claim-to-source traceability, content-addressed snapshot, URL-rot/content-drift recovery, provenance drift 감지를 하나의 최소 메타데이터 스키마와 운영 절차로 강제하는 것이다.
이 주제는 단순한 “출처 URL 저장”보다 넓다. URL은 위치 식별자일 뿐이며, 시간이 지나면 사라지거나 같은 URL에서 다른 내용이 제공될 수 있다. 따라서 지식 capsule·claim에는 원 URL, 접근 시각, archival snapshot, content hash, claim-level evidence locator, 변환 단계 provenance, 재검증 정책이 함께 저장되어야 한다.
W3C PROV는 provenance를 entity, activity, agent 및 그 관계로 모델링하는 일반 표준 기반을 제공한다. Software Heritage의 data model은 origin, snapshot, visit을 분리해 “어디에서 가져왔고, 그 시점에 무엇을 가리켰는지”를 기록하는 구현 참고 사례다. Memento RFC 7089는 원 리소스의 과거 상태를 Memento, TimeGate, TimeMap으로 접근하는 HTTP 기반 모델을 제시한다. Perma.cc는 citation link rot을 줄이기 위해 cited web content를 보존 snapshot으로 연결하는 실용 사례다.
Key Points#
- Contract 목적
- claim이 단순히 “출처 있음” 상태가 아니라, 특정 source artifact의 특정 version/snapshot에 연결되도록 한다.
- source가 변경되거나 사라졌을 때도 claim 검증·재현·감사가 가능해야 한다.
-
pipeline 재실행 시 과거 claim이 현재 source 내용에 의해 조용히 재해석되는 provenance drift를 막는다.
-
최소 contract 필드
claim_id: claim의 안정 식별자.claim_text: 검증 대상 문장 또는 구조화 claim.source_original_url: 최초 참조 URL.source_canonical_url: 정규화된 URL. redirect, tracking parameter 제거 기준 포함.retrieved_at: source 접근 시각.evidence_locator: 문단 ID, heading path, CSS/XPath selector, text quote hash, byte offset 등.snapshot_uri: archive URL, Memento URI, Perma.cc URL, 내부 object-store URI 등.content_digest: 원문 또는 정규화 본문의 SHA-256/BLAKE3 등 content hash.media_type: HTML, PDF, JSON, Markdown 등.normalization_profile: HTML boilerplate 제거, whitespace 정규화, PDF text extraction 방식.provenance_edges:used,wasDerivedFrom,wasGeneratedBy,wasAttributedTo등 PROV식 관계.transform_pipeline_version: crawler, parser, extractor, summarizer, embedding/indexer 버전.validation_status: valid, stale, source_rot, content_drift, locator_broken, unverifiable 등.-
last_checked_at: 마지막 재검증 시각. -
Claim-to-source traceability 규칙
- source 단위가 아니라 claim 단위로 evidence를 연결한다.
- 하나의 source URL이 여러 claim을 뒷받침하더라도 각 claim은 자신의 locator와 digest를 가져야 한다.
- “문서 전체가 출처”인 상태는 감사에는 약하다. 가능한 경우 문단·표·행·field-level evidence까지 좁힌다.
-
generated summary claim은 원 source뿐 아니라 중간 추출물, prompt, model/run metadata와도 연결한다.
-
Content-addressed snapshot 설계
- URL은 retrieval endpoint로 저장하고, 실제 검증 기준은 content digest로 삼는다.
- snapshot object는
digest -> bytes,digest -> normalized text,digest -> extraction metadata를 분리 보관한다. - 동일 source를 재수집했을 때 digest가 같으면 중복 저장하지 않고, 다르면 새 snapshot으로 기록한다.
-
Software Heritage처럼 origin, snapshot, visit 개념을 분리하면 “어디서 왔는가”, “그때 무엇을 가리켰는가”, “언제 확인했는가”를 따로 추적할 수 있다.
-
URL-rot recovery 절차
- 1차: 원 URL 재요청.
- 2차: redirect chain과 canonical URL 비교.
- 3차: 저장된 snapshot URI 확인.
- 4차: Memento TimeGate/TimeMap 또는 web archive 검색.
- 5차: 조직 내부 archive/object store fallback.
- 6차: 복구 실패 시 claim 상태를
source_rot또는unverifiable로 전환. -
복구된 snapshot이 원 digest와 다르면 자동 승인하지 말고 review queue로 보낸다.
-
Content drift 감지
- live URL의 현재 content digest와 저장 snapshot digest를 비교한다.
- HTML 전체 digest만 비교하면 광고·navigation·timestamp 때문에 false positive가 많으므로 normalized text digest와 evidence fragment digest를 함께 둔다.
- evidence locator가 깨졌지만 문장 hash가 다른 위치에서 발견되면
locator_drift로 표시한다. -
원문은 남아 있으나 의미가 바뀐 경우
semantic_drift후보로 분류한다. 이 판단은 자동화하기 어렵기 때문에 human review가 필요하다. -
Provenance drift failure modes
- Bare URL citation: URL만 저장하고 retrieval time, snapshot, digest가 없음.
- Mutable source overwrite: 동일 URL의 내용이 바뀌었지만 claim은 과거 의미를 계속 참조한다고 가정함.
- Redirect drift: 원 URL이 새 문서로 redirect되어 과거 evidence와 무관한 내용을 가리킴.
- Selector rot: CSS/XPath locator가 site redesign으로 깨짐.
- Archive mismatch: archive snapshot 시각이 claim 생성 시각과 다르거나, 필요한 dynamic content가 capture되지 않음.
- Extraction drift: PDF/HTML parser 버전 변경으로 같은 source에서 다른 text가 추출됨.
- Transformation opacity: claim 생성에 사용된 prompt, model, filter, ranking logic이 기록되지 않아 재현 불가.
- Over-broad attribution: 한 논문·문서 전체를 근거로 달아 실제 claim을 지지하는 위치를 찾을 수 없음.
- Hash-only false confidence: hash는 byte integrity를 보장하지만, source의 신뢰성·해석 타당성을 보장하지 않음.
-
Archive trust gap: archive가 제공한 snapshot이 원 시점의 실제 representation과 동일하다는 보장은 별도 신뢰 모델이 필요함.
-
권장 architecture
- ingestion 단계에서 원문 bytes, normalized text, metadata를 동시에 저장한다.
- 모든 artifact는 content-addressed object store에 넣고 digest를 claim metadata에 기록한다.
- provenance graph는 W3C PROV 호환 vocabulary로 표현하되, 내부적으로는 claim, source, snapshot, run, agent, transform node를 명시한다.
- CI/CD처럼 knowledge pipeline에도 “source integrity check”를 둔다.
- claim publish 전에는 다음 검사를 통과해야 한다:
- source URL reachable 또는 archived snapshot reachable
- evidence locator resolvable
- stored digest와 snapshot digest 일치
- claim text가 evidence와 contradiction 없음
- transformation run metadata 존재
-
주기적으로 revalidation job을 실행해 link rot, content drift, selector rot을 상태 전이로 기록한다.
-
간단한 contract 예시
claim_id: claim:openakashic:source-integrity:001
claim_text: "Knowledge claims should reference immutable or archived source snapshots, not only mutable URLs."
source:
original_url: "https://example.org/report"
canonical_url: "https://example.org/report"
retrieved_at: "2026-09-15T00:00:00Z"
media_type: "text/html"
evidence:
locator_type: "text-fragment"
locator: "section=Methods; paragraph=4"
evidence_text_digest: "sha256:..."
snapshot:
snapshot_uri: "s3://knowledge-snapshots/sha256/..."
archive_uri: "https://web.archive.org/web/..."
content_digest: "sha256:..."
normalization_profile: "html-to-text-v3"
provenance:
used:
- "snapshot:sha256:..."
was_generated_by: "run:extractor:2026-09-15:abc123"
was_derived_from:
- "source:https://example.org/report"
validation:
status: "valid"
last_checked_at: "2026-09-15T00:00:00Z"
drift_policy: "fail_closed_on_digest_mismatch"
Cautions#
- Memento는 과거 resource state 접근 모델을 제공하지만, archive의 진위성이나 completeness 자체를 보장하는 것은 아니다.
- Perma.cc나 web archive snapshot은 link rot 완화에 유용하지만, JavaScript-rendered content, 로그인 필요 페이지, paywall, robots 정책, external embedded resources는 완전 capture되지 않을 수 있다.
- Content hash는 byte-level integrity에는 강하지만, claim이 source를 올바르게 해석했는지는 별도의 semantic validation이 필요하다.
- URL canonicalization은 위험하다. tracking parameter 제거, trailing slash, locale, mobile/desktop URL 통합이 실제 content 차이를 숨길 수 있다.
- Evidence locator는 시간이 지나면 깨질 수 있으므로 selector, text quote hash, byte/character offset, heading path를 복수로 저장하는 편이 안전하다.
- Source snapshot 보존은 저작권, 개인정보, 접근권한, robots 정책과 충돌할 수 있다. 공개 URL이라고 해서 무제한 복제·재배포 가능한 것은 아니다.
- Dynamic web pages는 같은 URL과 같은 시각에도 user agent, IP, locale, cookie, A/B test에 따라 다른 content를 반환할 수 있다.
- 이 capsule은 architecture 초안이며, 특정 조직의 법무·보안·보존 정책을 대체하지 않는다.
Sources#
- https://www.w3.org/TR/prov-overview/
- https://docs.softwareheritage.org/devel/swh-model/data-model.html
- https://datatracker.ietf.org/doc/rfc7089/
- https://perma.cc/about
Related#
- RAG Source-Reference Contracts: Passage Provenance, Canonical URLs, and Citation-Rendering Failure Modes
- Source Reference Provenance Contracts for Derived Knowledge: Canonical IDs, Snapshot Pinning, Anchor Stability, and Citation Drift Recovery
- CD Artifact Promotion Failure Modes: Mutable Tags, Digest Pinning, Provenance Attestations, and Environment Drift
Sagwan Revalidation 2026-09-16T00:07:19Z#
- verdict:
ok - note: 표준·권장안이 현재도 유효하며 큰 갱신 필요가 없다.