なぜXBRLはこうできているのか

なぜXBRLはこうできているのか #3|一つの「現金」に五つの地図を重ねる――タクソノミが普通のスキーマより複雑な理由

議論参加:レン (初学者の視点で確認する読者) / コウ (XML・JSON・データベース設計者) / ユウ (XBRLタクソノミ設計者) / サキ (財務報告の作成実務を知る担当者) / ミユ (AIとデータ基盤を扱う技術者) / ナオ (企業開示を検証するリサーチャー) / テツオ (一般読者向けの記事を点検する編集者)

「現金及び現金同等物」という項目を、データベースへ一列だけ作る。値を入れるだけなら、それで済みそうに見える。

しかし財務報告で使い始めると、すぐに質問が増える。

  • 画面では「現金及び現金同等物」と表示するのか、短く「現金」とするのか。
  • 英語では何と表示するのか。
  • 貸借対照表では、どの項目の下へ並べるのか。
  • 合計値へ足し込むときの親は何か。
  • 定義の根拠となる会計基準はどこか。
  • 別の表でも同じ項目を使うとき、同じ定義だとどう示すのか。

ここで一つの「親」列を追加すると、表示上の親と計算上の親が衝突する。presentation_parentcalculation_parent に分けても、表示の種類が増えれば、また列や別テーブルが必要になる。

XBRLタクソノミが普通の項目定義より複雑に見える理由は、この場面にある。リンクベースは、コンセプト同士、またはコンセプトとラベル・根拠資料との関係をまとめたものだ。XBRL 2.1は、definition、calculation、presentation、label、referenceという5種類を標準化した。

XBRLタクソノミは、大きな列定義ではない。

一つのコンセプトへ、種類の違う複数の関係を重ねるための共通グラフである。

この記事は、XBRL 2.1 Recommendationを5種類のリンクベースの根拠とし、後から別仕様として加わったXBRL Dimensions 1.0との関係も確認した。さらにXBRL Internationalの報告要件・表示・検証の解説、W3CのXML Schema仕様、JSON Schemaの公式解説を比較材料にした。資料が裏付ける範囲は末尾で整理している。

まず、スキーマに書けることを過小評価しない

「XML Schemaは構造しか扱えず、XBRLだけが意味を扱える」と説明すると、分かりやすいが正確ではない。

W3CのXML Schema 1.1は、XML文書の要素、属性、データ型、値、構造を制約し、その意味や用途を文書化する仕組みも持つ。JSON Schemaにも titledescription などのannotationがある。データベースなら、項目マスター、ラベル表、親子関係表を自分で設計できる。

コウ(XML・JSON・データベース設計者)は、議論の冒頭でそこを譲らなかった。

コウ(XML・JSON・データベース設計者)

type: presentationtype: calculation を持つJSON配列でも、多対多の関係を置くデータベース表でも、同じ情報は保存できます。「XBRLにしかできない」は誇張です。

違いは、表現能力より、交換相手との約束にある。

仕組み主な役割財務報告向けの関係を扱うには
XML SchemaXML文書の要素・型・構造・値を定義し検証するannotationや別仕様を含め、用途ごとの設計が必要
JSON SchemaJSONの構造・型・制約を記述し、説明も添える独自の語彙や関係データの設計が必要
データベーススキーマ列、型、キー、制約、表同士の関係を管理する関係表と、その意味を読むアプリ側の約束が必要
XBRLタクソノミ報告コンセプトと、報告向けの関係ネットワークを定義する関係の種類と交換方法がXBRL仕様として共有される

この比較は、どれが技術的に優れているかを決める表ではない。閉じた社内システムなら、JSONやデータベースの方が単純で扱いやすいことも多い。XBRLは、作成者、規制当局、監査人、情報会社、投資家のソフトウェアが、組織をまたいで同じ関係を読めることへ重心を置いた。

一つのコンセプトへ、五つの地図を重ねる

ここからは説明用の模式例として、「現金及び現金同等物」というコンセプトを考える。実在する特定タクソノミの構造を再現したものではない。

XBRLでいうコンセプトは、報告項目の機械的な識別単位である。名称、型、一定期間の項目か時点の項目か、といった基本情報はtaxonomy schemaで宣言される。その同じコンセプトへ、リンクベースが別の情報を結び付ける。

XBRL 2.1は、definition、calculation、presentationをコンセプト間の関係、label、referenceをコンセプトと文書情報の関係として整理する。リンクベースは、これらの関係をまとめたXML文書で、taxonomy schema内へ埋め込むことも、別ファイルにすることもできる。

5種類の役割を初心者向けに言い換えると、次のようになる。

ここで重要なのは、5種類の「ファイル」を暗記することではない。リンクベースは別ファイルにも埋め込みにもできるからだ。覚えるべきなのは、同じ二つのコンセプトが結ばれていても、関係の種類が違えば意味も違うという点である。

definition linkbaseは、Dimension専用ではない

definition linkbaseは「Dimensionを定義する場所」と説明されることがある。実務でDimensionの関係を目にする機会が多いためだが、それだけではない。

まずXBRL 2.1は、definitionArcで使う標準arcroleとして、次の四つを定めていた。

XBRL 2.1の標準arcrole関係の意味具体例
general-special一般的なコンセプトから、より限定されたコンセプトへ結ぶ仕様書の例では、一般的な「郵便番号」から米国の「ZIPコード」へ結ぶ
essence-alias本質となるコンセプトと、別名として扱うコンセプトを結ぶ別のタクソノミにある二つの項目を、本質と別名の関係として扱う
similar-tuples構造が似たtupleコンセプト同士を結ぶ別々に定義された、同種の明細グループを関係付ける
requires-element矢印の元のファクトがあれば、先のファクトも必要だと示す電子フォーム本体を表す項目から、そのフォームの必須項目へ結ぶ

このうちrequires-elementは、単なる分類ではなく検証にも使われる。元のコンセプトのファクトがインスタンスに現れたのに、先のコンセプトのファクトがなければ、XBRL 2.1準拠のプロセッサは違反を検出する。つまりdefinition linkbaseには、Dimensionとは無関係な「一般と特殊」「本質と別名」「一緒に必要」といった関係も入る。

一方、XBRL DimensionsはXBRL 2.1とは別に後から加わった仕様である。新しい専用リンク要素を一から作るのではなく、既存のdefinitionArcへDimension用のarcroleを追加した。

これは仕組みを示すための編集部による模式例で、実在する特定タクソノミの定義ではない。Dimensions仕様ではほかに、適用しない組合せを示すnotAllや、既定メンバーを示すdimension-defaultdefinitionArcで使われる。

したがって、definition linkbaseを見つけても、「これはDimensionの表だ」とはまだ判断できない。確認すべきなのはdefinitionArcという入れ物の名前ではなく、arcroleがgeneral-specialなのか、requires-elementなのか、hypercube-dimensiondomain-memberなのかである。definitionは「その他を全部入れる箱」ではなく、arcroleによって異なる意味を持つ関係ネットワークの集合なのだ。

「親」という一語では、意味を落とす

レン(初学者の視点で確認する読者)は、議論で「親列を二つ作れば済むのでは」と問いかけた。

レン(初学者の視点で確認する読者)

表示上の親と計算上の親が違うなら、presentation_parentcalculation_parent の二列に分ければよいのではないでしょうか。

一つずつしか親を持たないなら、それでもよい。しかし、同じコンセプトは複数の表、複数の用途、複数のネットワークに現れ得る。一枚の木に固定せず、「どのネットワークで」「どの種類の関係として」結ばれるかを持たせる必要がある。

XBRLでは、arcroleが関係そのものの意味を示し、roleが関係を別々のネットワークへ分ける。初心者向けには、arcroleを「矢印の意味」、roleを「どの地図の上に描いた矢印か」と考えるとよい。

これはグラフ構造をJSONやデータベースで作れない、という話ではない。自作するなら、関係種別、ネットワーク識別子、順序、重みなどを定義し、作成側と利用側の全ソフトウェアへ同じ約束を実装すればよい。XBRLは、その約束の土台を報告分野の共通仕様として持ち込んだ。

presentationは、最終画面の「プレゼン」ではない

最も誤解しやすい名前がpresentation linkbaseである。

XBRL Internationalの公式解説は、presentation relationshipsの主目的を、タクソノミ内のコンセプトを整理することだと説明する。そこからインスタンスを一定の順序で表示する助けにはできるが、会社が公開した有報のページをそのまま再現する設計ではない。

作成者が選んだ見た目を人間にも見せる場合は、XBRLタグをHTMLへ埋め込むInline XBRLが使われる。報告項目と表の形を厳密に指定する用途には、Table Linkbaseという別仕様もある。

ナオ(企業開示を検証するリサーチャー)は、この名前が保証範囲を広く見せる危険を指摘した。

ナオ(企業開示を検証するリサーチャー)

presentationを見つけたからといって、提出書類の見た目を確認したことにはなりません。「どの関係を確認したか」と「何がまだ確認できていないか」を分ける必要があります。

したがって、presentation relationshipから読み取れるのは、そのネットワークでタクソノミ作成者がどう整理したかである。それを会計上の定義、表示が義務付けられた唯一の順序、提出HTMLの実際の配置と同一視してはいけない。

calculationがあっても、「正しい決算」の証明にはならない

もう一つの誤解は、calculation linkbaseがあれば決算書の正しさを検証できる、という期待である。

XBRLの公式解説は、calculation relationshipsを「一定の算術関係」、検証ページでは「基本的な加算関係」と表現している。XBRL 2.1の標準的なcalculationだけで、条件分岐を含む業務ルール、期間をまたぐ複雑な関係、会計方針の適切性まで確認できるわけではない。より複雑な制約にはFormulaなど別の仕組みが使われることがある。

テツオ(一般読者向けの記事を点検する編集者)は、5種類という多さ自体が安心感を生むと警戒した。

テツオ(一般読者向けの記事を点検する編集者)

リンクベースが五つもあると、「全部の正しさを確認できる」と思い込みやすい。実際には、五つは保証項目の一覧ではなく、関係を混ぜないための分類です。

XBRLで機械検証を通った、という事実だけでは足りない。少なくとも、どの仕様・タクソノミ・提出ルールで、何を検証したかを確認しなければならない。

複雑さは、どこで回収されるのか

5種類のリンクベース、role、arcrole、複数のネットワークを人が直接追うのは簡単ではない。小さな社内データなら、ここまでの共通化は過剰設計になり得る。

では、この複雑さに見合う利益はどこにあるのか。

複雑さの原因代わりに得るもの
同じコンセプトに複数のラベルを結ぶ識別子を変えずに言語・用途別の表示ができる
関係を種類別に分ける表示上の親と計算上の親を混同しにくい
roleで複数ネットワークを分ける同じコンセプトを複数の表・用途へ再利用できる
referenceを別資源として結ぶ項目から定義の根拠を機械的にたどれる
共通のarcrole・リンク構造を使う別組織のソフトウェア同士が同じ関係種別を交換できる

サキ(財務報告の作成実務を知る担当者)は、議論を「一つの項目をコピーしないための複雑さ」と捉えた。

サキ(財務報告の作成実務を知る担当者)

表ごと、言語ごと、用途ごとに別の項目を作れば、最初は簡単です。しかし同じ意味の項目が増え、どれを直せばよいか分からなくなる。XBRLは、項目を一つに保ったまま、周囲の関係を増やす方を選んだのだと思います。

これが、単純な表ではなくグラフが必要になる理由である。

AIには「親子関係を出して」だけでは足りない

AIは、複数ファイルのリンクベースをたどり、人には読みにくいグラフを要約できる。だが、AIへすべての関係を渡すだけでは危ない。

ミユ(AIとデータ基盤を扱う技術者)は、presentationの親子とcalculationの親子を同じ「関連項目」として平坦化する危険を挙げた。

ミユ(AIとデータ基盤を扱う技術者)

AIが矢印の種類を落とせば、表示上の配置を会計上の定義と説明したり、計算関係を単なる並び順として扱ったりします。グラフを読めることと、関係の意味を保てることは別です。

AIへタクソノミを説明させるなら、次のように関係種別と限界を出力させたい。

指定したコンセプトについて、関係を次の種類に分けて列挙してください。
1. label(言語とlabel roleを含む)
2. reference
3. presentation(extended link roleごと)
4. calculation(extended link roleとweightを含む)
5. definition(arcroleとextended link roleを含む)

異なる関係を「親子」や「関連項目」の一語にまとめないでください。
presentationは提出HTMLの最終レイアウト、calculationは会計上の完全な正しさを
保証するものではないと明記してください。

AIの役割は、複雑なグラフを消すことではない。関係の種類を保ったまま、人が確認できる形へ翻訳することである。

結論:XBRLの複雑さは、「同じ項目」を守るためにある

XML Schema、JSON Schema、データベースでも、ラベル、根拠、表示順、計算、意味関係を保存する仕組みは作れる。XBRLだけに可能なデータ構造ではない。

XBRLタクソノミの特徴は、それらを財務・事業報告向けの異なる関係として分け、組織をまたいで交換するための共通仕様にしたことにある。一つのコンセプトを用途ごとに複製せず、同じ識別子の周囲へ複数の地図を重ねられる。

その代償として、タクソノミは一枚の項目表ではなく、複数のネットワークを持つグラフになった。利用者がroleやarcroleを落とせば、表示、計算、意味の違いも落ちる。

そして、リンクベースが多いことは、報告の正しさを広く保証することと同じではない。presentationは最終ページの見た目ではなく、calculationはすべての会計判断を検証しない。

XBRLは、JSONやDBでは作れないものを作ったのではない。

別々の組織が、同じコンセプトへ同じ種類の関係を結び、同じ方法で読み合う約束を作った。

タクソノミの複雑さは、その約束の価格である。

出典を読むときのポイント

  • XBRL 2.1 Recommendation:definition、calculation、presentation、label、referenceという5種類の標準リンク、roleによるネットワークの区分、arcroleによる関係の意味、リンクベースの配置方法を確認した。
  • XBRL Dimensions 1.0:Dimensionが既存のdefinitionArcを利用し、allnotAllhypercube-dimensiondimension-domaindomain-memberdimension-defaultという関係でPrimary Item、Hypercube、Dimension、Domain、Memberを結ぶことを確認した。
  • XBRL International「Defining Reporting Requirements」:タクソノミが複数言語・複数用途のラベル、根拠資料への参照、表示・計算の階層、ディメンションなどを構造化メタデータとして持てることを確認した。
  • XBRL International「Presentation」:presentation relationshipsの主目的がタクソノミ内のコンセプト整理であること、作成者の表示を保つInline XBRL、定型表を定義するTable Linkbaseとの役割の違いを確認した。
  • XBRL International「Validation」:XBRL 2.1のcalculationが基本的な加算関係を扱い、より複雑な制約にはFormulaなどが使われるという保証範囲を確認した。
  • XBRL International「When to use multiple label roles or types」:同じコンセプトに複数の用途別ラベルを結び付ける理由と、表示文脈に応じたlabel roleの使い分けを確認した。
  • W3C「XML Schema 1.1 Part 1: Structures」:XML文書の構造・型・値を制約し、意味や用途を文書化するXSDの目的を確認した。XSDに関係表現能力がない、という比較には使っていない。
  • JSON Schema「Annotations」:JSON Schemaが検証だけでなく、titledescriptiondefaultexamplesなど説明用annotationも持つことを確認した。

この記事は特定の投資判断を勧めるものではありません。

キーワード:#XBRL#タクソノミ

出典