# Unstructured／Document ETL

CURRENT_STATUS: CURRENT
OBSERVATION: SPEC_ONLY
FRESHNESS: CURRENT
PAGE_TYPE: reference
CANONICAL_URL: /tools/ea-213-unstructured-document-etl
CLAIM_IDS: none
EVIDENCE_IDS: EVD-EA-213-URL-A95526C94AA2, EVD-EA-213-URL-08C303DF3891, EVD-EA-213-URL-DA52A7987661, EVD-EA-213-URL-3A0EEE232863, EVD-EA-213-URL-CDC07FB5D028, EA-213-R11-RESEARCH, EA-213-R11-WEB-READBACK
UNKNOWN_IDS: EA-213-UNKNOWN-01
OPS_IDS: none

## Summary
Unstructuredは文書を要素へ分解し、その要素からRAG向けchunkを構成するOSS部品を提供する。抽出方式や依存によって読み順・表・来歴の結果が変わるため、元素材に照合した評価と権限継承を経てindexへ投入する。変換の成功だけで正確性や無通信性を判断しない。

## Current judgment
1. partitionは元素材を意味要素へ変換する入口、chunkingはその後の加工である。抽出前のサイズ分割と同じ工程ではない。[U1,U2]
2. PDFのstrategyは形式・native text・layout・OCR依存で選択が変わる。指定strategy名だけでは実際の処理経路を証明できず、fallbackを観測する必要がある。[U1]
3. 文字列が取得できても段組み順序や表構造が正しいとは限らない。公式の複数段制約と歴史的報告は、読み順fixtureを必要とする反証である。[U1,U5]
4. chunkのorig_elementsを保持すると抽出要素への逆参照を設計できる。ただし引用ページ・座標・権限の正しさが自動保証されるわけではない。[U2,U3]
5. repoのanalytics説明は文書本文を含めないと述べるが、ローカル実行を無通信と同義にできない。opt-out、モデル取得、遠隔推論、依存通信を個別確認する。[U4]

## Scope
EA_MASTER行214はLUNA_PRESEARCH_NOT_LOCATED。退避Doc 1Vd0BP7G2UyPDRQs_-8dPvTgQ78Tk6kcVGuMJjqNdr84、tab t.0、827–1322を直接取得した。内容は先行成果の所在未確認、NOT_REVIEWED、通常調査をせず次へ進むという記録であり、研究完成本文ではない。ARTIFACT_INDEXの共通827以前から3595までのRUN参照を、EA別研究Packetの証拠と扱わない。今回のユーザー指示により正式調査を実施する。旧Luna成果が存在しないとは断定しない。Drive EA-213検索で既知の台帳・退避・原案のみ、Library完全一致タイトル検索で該当固有成果なし。検索は非網羅的。

## Confirmed
- partitionは元素材を意味要素へ変換する入口、chunkingはその後の加工である。抽出前のサイズ分割と同じ工程ではない。[U1,U2]
- PDFのstrategyは形式・native text・layout・OCR依存で選択が変わる。指定strategy名だけでは実際の処理経路を証明できず、fallbackを観測する必要がある。[U1]
- 文字列が取得できても段組み順序や表構造が正しいとは限らない。公式の複数段制約と歴史的報告は、読み順fixtureを必要とする反証である。[U1,U5]
- chunkのorig_elementsを保持すると抽出要素への逆参照を設計できる。ただし引用ページ・座標・権限の正しさが自動保証されるわけではない。[U2,U3]
- repoのanalytics説明は文書本文を含めないと述べるが、ローカル実行を無通信と同義にできない。opt-out、モデル取得、遠隔推論、依存通信を個別確認する。[U4]

## UNKNOWN
- EA-213-UNKNOWN-01: 旧Luna成果の一意locator、導入packageの固定version/モデルhash、日本語縦書き・複雑表の組織素材精度、独立本番性能、通信実測、承認済み閾値、有料契約条件はUNKNOWN。今回のbounded gateは一次資料・失敗境界・安全表現・未実測表示・全文candidate・保存readbackの成立を条件とする。独立監査PASSや公開を意味しない。

## Evidence
- EVD-EA-213-URL-A95526C94AA2 (RESEARCH): |U1|Unstructured公式 Partitioning — https://docs.unstructured.io/open-source/core-functionality/partitioning
- EVD-EA-213-URL-08C303DF3891 (RESEARCH): |U2|公式 Chunking — https://docs.unstructured.io/open-source/core-functionality/chunking
- EVD-EA-213-URL-DA52A7987661 (RESEARCH): |U3|公式 Elements — https://docs.unstructured.io/open-source/concepts/document-elements
- EVD-EA-213-URL-3A0EEE232863 (RESEARCH): |U4|作者repo README — https://github.com/Unstructured-IO/unstructured
- EVD-EA-213-URL-CDC07FB5D028 (RESEARCH): |U5|一次障害報告 — https://github.com/Unstructured-IO/unstructured/issues/1336
- EA-213-R11-RESEARCH (RESEARCH): EA-213 監査済みresearch / canonical revision binding
- EA-213-R11-WEB-READBACK (IMPL): EA-213 Web body identity / canonical readback

## Failure / limits
scan、混合native text、段組み、横断表、copy-protection、壊れたOffice、巨大・暗号化・画像爆弾、言語pack欠落、OCR数字・単位誤り、rendererのページ情報欠落、chunkの見出し誤判定、fallback無記録を対象とする。U1の古いbackend名をそのまま最新packageの保証としない。導入versionでeffective routeを実測する。表HTML生成はセル意味の正しさの証明ではない。OCR品質改善がRAG回答改善を必ずもたらすとも言わない。
## Failure / limits
旧Luna成果の一意locator、導入packageの固定version/モデルhash、日本語縦書き・複雑表の組織素材精度、独立本番性能、通信実測、承認済み閾値、有料契約条件はUNKNOWN。今回のbounded gateは一次資料・失敗境界・安全表現・未実測表示・全文candidate・保存readbackの成立を条件とする。独立監査PASSや公開を意味しない。
## Practice
DOCUMENT_ETL_RECORD_V1を組織側の受入契約として提案する。source_id/input_sha256/MIME/page_count、parser/package/inference/model/OCR version、requested/effective strategy、fallback_reason、element IDs/page/bbox、chunk ID→元要素ID、table structure、ACLとtenant、warnings、elapsed/max_RSS、egress evidence、output_sha256を保存する。これはUnstructured標準schemaや実装済み制御ではない。

運用経路は許可素材→入力hash・形式判定→固定依存の隔離parser→空出力・fallback・来歴検査→golden照合→ACL付きindex候補→人または決定論的品質gateとする。原文の命令をtool実行権限へ昇格させない。素材が空の場合とparserが空を返した場合を別dispositionにする。
## Practice
実parserの比較評価は未実施。今回は文書に基づく運用設計と合成recordの受入gateのみを検証する。実測値・速度・精度の主張はゼロ。
導入fixtureはborn-digital/scan/mixed PDF、二段読み順、結合セル/複数ページ表、日英・縦書き、Office/HTML、empty/encrypted/oversizedを含める。人が確定したgolden text、順序edge、表cellとrow/col span、ページ・引用元をoracleにする。CER/WER、reading-order違反、cell precision/recall、来歴欠落率、空出力率、fallback率、ACL漏洩、latency/RSSを素材層別で測る。閾値は組織が定める。公開benchmarkの数字を本番へ転用しない。
添付gate_fixture.pyは正常recordを通し、空出力・source差替え・ACL混在・順序反転・数値セル変更・chunk来歴欠落・未承認通信・未固定version・未記録fallbackを拒否する。OCR/Unstructuredを実行したテストではない。
## Practice
parserを低権限、時間・メモリ・ページ数上限、egress制限付きで隔離する。取得権限とchunk ACLを継承し、原文hashと抽出出力hashを別管理。ログに不要な本文・画像・PIIを残さない。モデルdownloadとtelemetryは更新手順に含める。OSSライセンスとモデル・依存ライセンスを個別確認する。有料サービス契約は別審査。
## Practice
EA-214はDocling個別、EA-215は専用Parsing API、EA-216はOCR横断比較。優劣を未測定で決めない。content/staging/EA-213.mdの全文をPATH_GUARDED createとして提出。監査は入力hash・manifest hash・payload hash・引用対応・合成テストの限界を確認し、承認時だけREADYを作成する。
## 要点と前提
REVISION_ID: EA-213-GAP-FIRST-20261004
REVISION_KIND: FIRST_FORMAL_RESEARCH_AFTER_LOCATION_ONLY_RECORD
EVIDENCE_AS_OF: 2026-10-04 JST
OWNER: Work gap recovery

## 既存記録の検証と調査範囲
EA_MASTER行214はLUNA_PRESEARCH_NOT_LOCATED。退避Doc 1Vd0BP7G2UyPDRQs_-8dPvTgQ78Tk6kcVGuMJjqNdr84、tab t.0、827–1322を直接取得した。内容は先行成果の所在未確認、NOT_REVIEWED、通常調査をせず次へ進むという記録であり、研究完成本文ではない。ARTIFACT_INDEXの共通827以前から3595までのRUN参照を、EA別研究Packetの証拠と扱わない。今回のユーザー指示により正式調査を実施する。旧Luna成果が存在しないとは断定しない。Drive EA-213検索で既知の台帳・退避・原案のみ、Library完全一致タイトル検索で該当固有成果なし。検索は非網羅的。

本調査はOSS unstructuredの文書要素抽出、chunking、来歴、ローカル実行の境界を扱う。有料Pipelines、Transform MCP、APIの品質・契約・保持・SLAは別製品としてUNKNOWN。本番採用や優位性の判断は含めない。

## 一次証拠とclaim対応
すべて2026-10-04に原ページ本文を取得。公開ドキュメントは可変のため、導入時にpackage・inference・OCR・モデルを固定する。

|ID|一次資料・URL|確認事項と証拠の範囲|
|---|---|---|
|U1|Unstructured公式 Partitioning https://docs.unstructured.io/open-source/core-functionality/partitioning |Title/NarrativeText等への要素分解。PDFのauto/fast/hi_res/ocr_only、依存欠落時fallback、複数段の順序制約。各形式の表対応は共通ではない。現行docsの記述であり全releaseの実測ではない。|
|U2|公式 Chunking https://docs.unstructured.io/open-source/core-functionality/chunking |partition後の要素結合と過大要素の文字分割。Table/TableChunk、orig_elementsの来歴と圧縮シリアライズを区別。|
|U3|公式 Elements https://docs.unstructured.io/open-source/concepts/document-elements |要素とmetadataの定義。ページ・座標等の存在は形式・抽出経路に依存する。|
|U4|作者repo README https://github.com/Unstructured-IO/unstructured |OSSと有料製品を分離。依存パッケージ、既定analyticsとimport前のopt-outを確認。main可変であり導入packageで要再検証。|
|U5|一次障害報告 https://github.com/Unstructured-IO/unstructured/issues/1336 |0.10.5で複数段の順序不正が報告された。過去の当該環境の報告のみ。現行全versionの不具合や発生率の証明ではない。|

## ESTABLISHED / FINDINGS
1. partitionは元素材を意味要素へ変換する入口、chunkingはその後の加工である。抽出前のサイズ分割と同じ工程ではない。[U1,U2]
2. PDFのstrategyは形式・native text・layout・OCR依存で選択が変わる。指定strategy名だけでは実際の処理経路を証明できず、fallbackを観測する必要がある。[U1]
3. 文字列が取得できても段組み順序や表構造が正しいとは限らない。公式の複数段制約と歴史的報告は、読み順fixtureを必要とする反証である。[U1,U5]
4. chunkのorig_elementsを保持すると抽出要素への逆参照を設計できる。ただし引用ページ・座標・権限の正しさが自動保証されるわけではない。[U2,U3]
5. repoのanalytics説明は文書本文を含めないと述べるが、ローカル実行を無通信と同義にできない。opt-out、モデル取得、遠隔推論、依存通信を個別確認する。[U4]

## INFERENCE / 提案
DOCUMENT_ETL_RECORD_V1を組織側の受入契約として提案する。source_id/input_sha256/MIME/page_count、parser/package/inference/model/OCR version、requested/effective strategy、fallback_reason、element IDs/page/bbox、chunk ID→元要素ID、table structure、ACLとtenant、warnings、elapsed/max_RSS、egress evidence、output_sha256を保存する。これはUnstructured標準schemaや実装済み制御ではない。

運用経路は許可素材→入力hash・形式判定→固定依存の隔離parser→空出力・fallback・来歴検査→golden照合→ACL付きindex候補→人または決定論的品質gateとする。原文の命令をtool実行権限へ昇格させない。素材が空の場合とparserが空を返した場合を別dispositionにする。

## FAILURE_ENVELOPE / COUNTEREVIDENCE
scan、混合native text、段組み、横断表、copy-protection、壊れたOffice、巨大・暗号化・画像爆弾、言語pack欠落、OCR数字・単位誤り、rendererのページ情報欠落、chunkの見出し誤判定、fallback無記録を対象とする。U1の古いbackend名をそのまま最新packageの保証としない。導入versionでeffective routeを実測する。表HTML生成はセル意味の正しさの証明ではない。OCR品質改善がRAG回答改善を必ずもたらすとも言わない。

## BENCHMARK_OR_EVAL / TEST_PROFILE
実parserの比較評価は未実施。今回は文書に基づく運用設計と合成recordの受入gateのみを検証する。実測値・速度・精度の主張はゼロ。
導入fixtureはborn-digital/scan/mixed PDF、二段読み順、結合セル/複数ページ表、日英・縦書き、Office/HTML、empty/encrypted/oversizedを含める。人が確定したgolden text、順序edge、表cellとrow/col span、ページ・引用元をoracleにする。CER/WER、reading-order違反、cell precision/recall、来歴欠落率、空出力率、fallback率、ACL漏洩、latency/RSSを素材層別で測る。閾値は組織が定める。公開benchmarkの数字を本番へ転用しない。
添付gate_fixture.pyは正常recordを通し、空出力・source差替え・ACL混在・順序反転・数値セル変更・chunk来歴欠落・未承認通信・未固定version・未記録fallbackを拒否する。OCR/Unstructuredを実行したテストではない。

## SECURITY_PRIVACY_AUDIT_OPERABILITY
parserを低権限、時間・メモリ・ページ数上限、egress制限付きで隔離する。取得権限とchunk ACLを継承し、原文hashと抽出出力hashを別管理。ログに不要な本文・画像・PIIを残さない。モデルdownloadとtelemetryは更新手順に含める。OSSライセンスとモデル・依存ライセンスを個別確認する。有料サービス契約は別審査。

## SAFE_WORDING_FOR_FUTURE_BOOK
Unstructuredは文書を要素へ分解し、その要素からRAG向けchunkを構成するOSS部品を提供する。抽出方式や依存によって読み順・表・来歴の結果が変わるため、元素材に照合した評価と権限継承を経てindexへ投入する。変換の成功だけで正確性や無通信性を判断しない。

## OPEN_UNKNOWN / STOP_CONDITION
旧Luna成果の一意locator、導入packageの固定version/モデルhash、日本語縦書き・複雑表の組織素材精度、独立本番性能、通信実測、承認済み閾値、有料契約条件はUNKNOWN。今回のbounded gateは一次資料・失敗境界・安全表現・未実測表示・全文candidate・保存readbackの成立を条件とする。独立監査PASSや公開を意味しない。

## UPDATE_WORK_HANDOFF
EA-214はDocling個別、EA-215は専用Parsing API、EA-216はOCR横断比較。優劣を未測定で決めない。content/staging/EA-213.mdの全文をPATH_GUARDED createとして提出。監査は入力hash・manifest hash・payload hash・引用対応・合成テストの限界を確認し、承認時だけREADYを作成する。

NEXT: /agent/start.json
STOP: This is a knowledge projection, not an execution order.