{
  "format": "agent-article-v0",
  "article_id": "EA-213",
  "canonical_url": "/tools/ea-213-unstructured-document-etl",
  "page_type": "reference",
  "claim_ids": [],
  "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"
  ],
  "operational_object_ids": [],
  "provider": [],
  "models": [],
  "plans": [],
  "surfaces": [],
  "regions": [],
  "current_status": "CURRENT",
  "observation_status": "SPEC_ONLY",
  "freshness": "CURRENT",
  "last_verified": "2026-10-04",
  "supersedes": [],
  "superseded_by": [],
  "provenance": [
    "EA-213-GAP-FIRST-20261004",
    "SRC-EA-213-URL-A95526C94AA2",
    "SRC-EA-213-URL-08C303DF3891",
    "SRC-EA-213-URL-DA52A7987661",
    "SRC-EA-213-URL-3A0EEE232863",
    "SRC-EA-213-URL-CDC07FB5D028",
    "WEBBODY-EA0213-R8-A952F847"
  ],
  "article_sources": [
    {
      "id": "EVD-EA-213-URL-A95526C94AA2",
      "evidence_class": "RESEARCH",
      "title": "|U1|Unstructured公式 Partitioning",
      "href": "https://docs.unstructured.io/open-source/core-functionality/partitioning",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-213-URL-A95526C94AA2"
      ],
      "supporting_locators": [
        "一次証拠とclaim対応",
        "|U1|Unstructured公式 Partitioning https://docs.unstructured.io/open-source/core-functionality/partitioning"
      ],
      "scope": "一次証拠とclaim対応",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EVD-EA-213-URL-08C303DF3891",
      "evidence_class": "RESEARCH",
      "title": "|U2|公式 Chunking",
      "href": "https://docs.unstructured.io/open-source/core-functionality/chunking",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-213-URL-08C303DF3891"
      ],
      "supporting_locators": [
        "一次証拠とclaim対応",
        "|U2|公式 Chunking https://docs.unstructured.io/open-source/core-functionality/chunking"
      ],
      "scope": "一次証拠とclaim対応",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EVD-EA-213-URL-DA52A7987661",
      "evidence_class": "RESEARCH",
      "title": "|U3|公式 Elements",
      "href": "https://docs.unstructured.io/open-source/concepts/document-elements",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-213-URL-DA52A7987661"
      ],
      "supporting_locators": [
        "一次証拠とclaim対応",
        "|U3|公式 Elements https://docs.unstructured.io/open-source/concepts/document-elements"
      ],
      "scope": "一次証拠とclaim対応",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EVD-EA-213-URL-3A0EEE232863",
      "evidence_class": "RESEARCH",
      "title": "|U4|作者repo README",
      "href": "https://github.com/Unstructured-IO/unstructured",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-213-URL-3A0EEE232863"
      ],
      "supporting_locators": [
        "一次証拠とclaim対応",
        "|U4|作者repo README https://github.com/Unstructured-IO/unstructured"
      ],
      "scope": "一次証拠とclaim対応",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EVD-EA-213-URL-CDC07FB5D028",
      "evidence_class": "RESEARCH",
      "title": "|U5|一次障害報告",
      "href": "https://github.com/Unstructured-IO/unstructured/issues/1336",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-213-URL-CDC07FB5D028"
      ],
      "supporting_locators": [
        "一次証拠とclaim対応",
        "|U5|一次障害報告 https://github.com/Unstructured-IO/unstructured/issues/1336"
      ],
      "scope": "一次証拠とclaim対応",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EA-213-R11-RESEARCH",
      "evidence_class": "RESEARCH",
      "title": "EA-213 監査済みresearch / canonical revision binding",
      "supports": [
        "1. partitionは元素材を意味要素へ変換する入口、chunkingはその後の加工である。抽出前のサイズ分割と同じ工程ではない。[U1,U2]\n2. PDFのstrategyは形式・native text・layout・OCR依存で選択が変わる。指定strategy名だけでは実際の処理経路を証明できず、fallbackを観測する必要がある。[U1]\n3. 文字列が取得できても段組み順序や表構造が正しいとは限らない。公式の複数段制約と歴史的報告は、読み順fixtureを必要とする反証である。[U1,U5]\n4. chunkのorig_elementsを保持すると抽出要素への逆参照を設計できる。ただし引用ページ・座標・権限の正しさが自動保証されるわけではない。[U2,U3]\n5. repoのanalytics説明は文書本文を含めないと述べるが、ローカル実行を無通信と同義にできない。opt-out、モデル取得、遠隔推論、依存通信を個別確認する。[U4]"
      ],
      "limit": "canonical監査・revision bindingの存在を示す。外部ソースcurrentnessが本文またはcontrol-planeで確定していない場合は、currentnessをUNKNOWNのまま保持する。",
      "checked_at": "2026-10-04",
      "origin_class": "AUDITED_CANONICAL_RESEARCH_PACKET",
      "source_or_experiment_ids": [
        "EA-213-GAP-FIRST-20261004"
      ],
      "supporting_locators": [
        "EA-213-GAP-FIRST-20261004",
        "content/staging/EA-213.md"
      ],
      "scope": "監査済みEA本文・canonical revision・既存Source Graph relationの範囲。欠損currentnessは推測で閉じない。",
      "provenance_status": "AUDIT_PASS_CANONICAL_BINDING"
    },
    {
      "id": "EA-213-R11-WEB-READBACK",
      "evidence_class": "IMPL",
      "title": "EA-213 Web body identity / canonical readback",
      "supports": [
        "canonical staging bodyのSHA-256一致とR9 canonical ledger readbackをProduction projectionの入力として検証する。"
      ],
      "limit": "body identity/readbackは本文claim自体の真偽や外部ソースの最新性を追加保証しない。",
      "checked_at": "2026-10-04",
      "origin_class": "IMPLEMENTATION_READBACK",
      "source_or_experiment_ids": [
        "WEBBODY-EA0213-R8-A952F847"
      ],
      "supporting_locators": [
        "WEBBODY-EA0213-R8-A952F847",
        "content/staging/EA-213.md",
        "EA-213-GAP-FIRST-20261004"
      ],
      "scope": "R9/R10 canonical readback後のProduction生成時body identity。",
      "provenance_status": "CANONICAL_READBACK_BODY_HASH_MATCH"
    }
  ],
  "research_sections": [
    {
      "heading": "要点と前提",
      "text": "REVISION_ID: EA-213-GAP-FIRST-20261004\nREVISION_KIND: FIRST_FORMAL_RESEARCH_AFTER_LOCATION_ONLY_RECORD\nEVIDENCE_AS_OF: 2026-10-04 JST\nOWNER: Work gap recovery"
    },
    {
      "heading": "既存記録の検証と調査範囲",
      "text": "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完全一致タイトル検索で該当固有成果なし。検索は非網羅的。\n\n本調査はOSS unstructuredの文書要素抽出、chunking、来歴、ローカル実行の境界を扱う。有料Pipelines、Transform MCP、APIの品質・契約・保持・SLAは別製品としてUNKNOWN。本番採用や優位性の判断は含めない。"
    },
    {
      "heading": "一次証拠とclaim対応",
      "text": "すべて2026-10-04に原ページ本文を取得。公開ドキュメントは可変のため、導入時にpackage・inference・OCR・モデルを固定する。\n\n|ID|一次資料・URL|確認事項と証拠の範囲|\n|---|---|---|\n|U1|Unstructured公式 Partitioning https://docs.unstructured.io/open-source/core-functionality/partitioning |Title/NarrativeText等への要素分解。PDFのauto/fast/hi_res/ocr_only、依存欠落時fallback、複数段の順序制約。各形式の表対応は共通ではない。現行docsの記述であり全releaseの実測ではない。|\n|U2|公式 Chunking https://docs.unstructured.io/open-source/core-functionality/chunking |partition後の要素結合と過大要素の文字分割。Table/TableChunk、orig_elementsの来歴と圧縮シリアライズを区別。|\n|U3|公式 Elements https://docs.unstructured.io/open-source/concepts/document-elements |要素とmetadataの定義。ページ・座標等の存在は形式・抽出経路に依存する。|\n|U4|作者repo README https://github.com/Unstructured-IO/unstructured |OSSと有料製品を分離。依存パッケージ、既定analyticsとimport前のopt-outを確認。main可変であり導入packageで要再検証。|\n|U5|一次障害報告 https://github.com/Unstructured-IO/unstructured/issues/1336 |0.10.5で複数段の順序不正が報告された。過去の当該環境の報告のみ。現行全versionの不具合や発生率の証明ではない。|"
    },
    {
      "heading": "ESTABLISHED / FINDINGS",
      "text": "1. partitionは元素材を意味要素へ変換する入口、chunkingはその後の加工である。抽出前のサイズ分割と同じ工程ではない。[U1,U2]\n2. PDFのstrategyは形式・native text・layout・OCR依存で選択が変わる。指定strategy名だけでは実際の処理経路を証明できず、fallbackを観測する必要がある。[U1]\n3. 文字列が取得できても段組み順序や表構造が正しいとは限らない。公式の複数段制約と歴史的報告は、読み順fixtureを必要とする反証である。[U1,U5]\n4. chunkのorig_elementsを保持すると抽出要素への逆参照を設計できる。ただし引用ページ・座標・権限の正しさが自動保証されるわけではない。[U2,U3]\n5. repoのanalytics説明は文書本文を含めないと述べるが、ローカル実行を無通信と同義にできない。opt-out、モデル取得、遠隔推論、依存通信を個別確認する。[U4]"
    },
    {
      "heading": "INFERENCE / 提案",
      "text": "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や実装済み制御ではない。\n\n運用経路は許可素材→入力hash・形式判定→固定依存の隔離parser→空出力・fallback・来歴検査→golden照合→ACL付きindex候補→人または決定論的品質gateとする。原文の命令をtool実行権限へ昇格させない。素材が空の場合とparserが空を返した場合を別dispositionにする。"
    },
    {
      "heading": "FAILURE_ENVELOPE / COUNTEREVIDENCE",
      "text": "scan、混合native text、段組み、横断表、copy-protection、壊れたOffice、巨大・暗号化・画像爆弾、言語pack欠落、OCR数字・単位誤り、rendererのページ情報欠落、chunkの見出し誤判定、fallback無記録を対象とする。U1の古いbackend名をそのまま最新packageの保証としない。導入versionでeffective routeを実測する。表HTML生成はセル意味の正しさの証明ではない。OCR品質改善がRAG回答改善を必ずもたらすとも言わない。"
    },
    {
      "heading": "BENCHMARK_OR_EVAL / TEST_PROFILE",
      "text": "実parserの比較評価は未実施。今回は文書に基づく運用設計と合成recordの受入gateのみを検証する。実測値・速度・精度の主張はゼロ。\n導入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の数字を本番へ転用しない。\n添付gate_fixture.pyは正常recordを通し、空出力・source差替え・ACL混在・順序反転・数値セル変更・chunk来歴欠落・未承認通信・未固定version・未記録fallbackを拒否する。OCR/Unstructuredを実行したテストではない。"
    },
    {
      "heading": "SECURITY_PRIVACY_AUDIT_OPERABILITY",
      "text": "parserを低権限、時間・メモリ・ページ数上限、egress制限付きで隔離する。取得権限とchunk ACLを継承し、原文hashと抽出出力hashを別管理。ログに不要な本文・画像・PIIを残さない。モデルdownloadとtelemetryは更新手順に含める。OSSライセンスとモデル・依存ライセンスを個別確認する。有料サービス契約は別審査。"
    },
    {
      "heading": "SAFE_WORDING_FOR_FUTURE_BOOK",
      "text": "Unstructuredは文書を要素へ分解し、その要素からRAG向けchunkを構成するOSS部品を提供する。抽出方式や依存によって読み順・表・来歴の結果が変わるため、元素材に照合した評価と権限継承を経てindexへ投入する。変換の成功だけで正確性や無通信性を判断しない。"
    },
    {
      "heading": "OPEN_UNKNOWN / STOP_CONDITION",
      "text": "旧Luna成果の一意locator、導入packageの固定version/モデルhash、日本語縦書き・複雑表の組織素材精度、独立本番性能、通信実測、承認済み閾値、有料契約条件はUNKNOWN。今回のbounded gateは一次資料・失敗境界・安全表現・未実測表示・全文candidate・保存readbackの成立を条件とする。独立監査PASSや公開を意味しない。"
    },
    {
      "heading": "UPDATE_WORK_HANDOFF",
      "text": "EA-214はDocling個別、EA-215は専用Parsing API、EA-216はOCR横断比較。優劣を未測定で決めない。content/staging/EA-213.mdの全文をPATH_GUARDED createとして提出。監査は入力hash・manifest hash・payload hash・引用対応・合成テストの限界を確認し、承認時だけREADYを作成する。"
    }
  ],
  "human_url": "/tools/ea-213-unstructured-document-etl",
  "markdown_url": "/agent/article.md?path=%2Ftools%2Fea-213-unstructured-document-etl",
  "json_url": "/agent/article.json?path=%2Ftools%2Fea-213-unstructured-document-etl"
}