"어떨 땐 디스크의 파일이 곧 글이야. 어떨 땐 글이 파일 안에 갇혀 있어서, 먼저 꺼내줘야 해."
ground truth 두 종류
모든 소스가 동등하진 않아. 마크다운 에세이는 곧 그 파일이야 — 디스크의 바이트가 정확히 글이야. 근데 PDF, Word 문서, HTML 태그에 묻힌 웹페이지는 달라: 글이 파일 안에 있고, 깔끔하게 색인하기 전에 벗겨내야 하는 포맷에 싸여 있어. Lantern 은 이 갈림을 두 코퍼스 클래스로 이름 붙여: referenced 와 captured.
Referenced: 파일이 곧 문서
referenced 코퍼스는 바이트가 ground truth 인 텍스트 파일을 가리켜. 마크다운, 일반 텍스트 — 읽고, chunk 하고, 색인하고, 끝. doc_sha256 은 파일 자체의 해시야. 파일을 잃으면, 잃은 거야. Lantern 은 그걸 보존한다고 주장한 적 없고, 색인만 한다고 했어. 원본이 권위 있고 제자리에 남아. 이게 단순하고 흔한 경우야.
Captured: 변환이 곧 문서
captured 코퍼스는 adapter — 소스를 깨끗한 텍스트로 바꾸는 변환기 — 를 선언해. PDF 나 DOCX 는 문서-to-마크다운 변환기를 거치고, HTML 오염 콘텐츠는 태그를 벗기는 prose 추출기를 거쳐. 변환된 텍스트가 chunk 되고 색인되는 것이고 — 결정적으로 — 스냅샷 저장소에 보존돼. 여기선 doc_sha256 이 스냅샷의 해시고(그래서 offset 이 변환된 텍스트를 가리켜), 별도의 source_sha256 이 원본 바이트를 기록해서 엔진이 안 바뀐 소스를 다시 변환 안 하고 건너뛸 수 있어.
같은 인덱스, 다른 진실
하류에선 두 클래스가 똑같아 보여: 둘 다 chunk 를 만들고, 둘 다 검색되고, 둘 다 같은 provenance 모양의 인용 가능한 결과를 돌려줘. 오직 뭐가 ground truth 로 카운트되는지 만 달라 — 파일이냐, 변환의 스냅샷이냐. 그 한 결정이, 사라진 소스가 내용을 무덤까지 가져갈지 보존된 복사본을 남길지 정해.