なぜXBRLはこうできているのか #3|一つの「現金」に五つの地図を重ねる――タクソノミが普通のスキーマより複雑な理由
議論参加:レン (初学者の視点で確認する読者) / コウ (XML・JSON・データベース設計者) / ユウ (XBRLタクソノミ設計者) / サキ (財務報告の作成実務を知る担当者) / ミユ (AIとデータ基盤を扱う技術者) / ナオ (企業開示を検証するリサーチャー) / テツオ (一般読者向けの記事を点検する編集者)
「現金及び現金同等物」という項目を、データベースへ一列だけ作る。値を入れるだけなら、それで済みそうに見える。
しかし財務報告で使い始めると、すぐに質問が増える。
- 画面では「現金及び現金同等物」と表示するのか、短く「現金」とするのか。
- 英語では何と表示するのか。
- 貸借対照表では、どの項目の下へ並べるのか。
- 合計値へ足し込むときの親は何か。
- 定義の根拠となる会計基準はどこか。
- 別の表でも同じ項目を使うとき、同じ定義だとどう示すのか。
ここで一つの「親」列を追加すると、表示上の親と計算上の親が衝突する。presentation_parent と calculation_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にも title や description などのannotationがある。データベースなら、項目マスター、ラベル表、親子関係表を自分で設計できる。
コウ(XML・JSON・データベース設計者)は、議論の冒頭でそこを譲らなかった。
コウ(XML・JSON・データベース設計者)
type: presentationとtype: calculationを持つJSON配列でも、多対多の関係を置くデータベース表でも、同じ情報は保存できます。「XBRLにしかできない」は誇張です。
違いは、表現能力より、交換相手との約束にある。
| 仕組み | 主な役割 | 財務報告向けの関係を扱うには |
|---|---|---|
| XML Schema | XML文書の要素・型・構造・値を定義し検証する | annotationや別仕様を含め、用途ごとの設計が必要 |
| JSON Schema | JSONの構造・型・制約を記述し、説明も添える | 独自の語彙や関係データの設計が必要 |
| データベーススキーマ | 列、型、キー、制約、表同士の関係を管理する | 関係表と、その意味を読むアプリ側の約束が必要 |
| 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を追加した。
上から下へ読む:箱はコンセプト、箱の間は関係の意味を示すarcrole
allこの項目に、次のHypercubeを適用する↓hypercube-dimensionこのHypercubeに、次のDimensionを含める↓dimension-domainこのDimensionで使う値の集合を指定する↓domain-memberこの値がDomainに属することを示す↓これは仕組みを示すための編集部による模式例で、実在する特定タクソノミの定義ではない。Dimensions仕様ではほかに、適用しない組合せを示すnotAllや、既定メンバーを示すdimension-defaultもdefinitionArcで使われる。
したがって、definition linkbaseを見つけても、「これはDimensionの表だ」とはまだ判断できない。確認すべきなのはdefinitionArcという入れ物の名前ではなく、arcroleがgeneral-specialなのか、requires-elementなのか、hypercube-dimensionやdomain-memberなのかである。definitionは「その他を全部入れる箱」ではなく、arcroleによって異なる意味を持つ関係ネットワークの集合なのだ。
「親」という一語では、意味を落とす
レン(初学者の視点で確認する読者)は、議論で「親列を二つ作れば済むのでは」と問いかけた。
レン(初学者の視点で確認する読者)
表示上の親と計算上の親が違うなら、
presentation_parentとcalculation_parentの二列に分ければよいのではないでしょうか。
一つずつしか親を持たないなら、それでもよい。しかし、同じコンセプトは複数の表、複数の用途、複数のネットワークに現れ得る。一枚の木に固定せず、「どのネットワークで」「どの種類の関係として」結ばれるかを持たせる必要がある。
XBRLでは、arcroleが関係そのものの意味を示し、roleが関係を別々のネットワークへ分ける。初心者向けには、arcroleを「矢印の意味」、roleを「どの地図の上に描いた矢印か」と考えるとよい。
「親子」だけで保存すると、どの地図の矢印か分からなくなる
↓
現金及び現金同等物
↓
現金及び現金同等物
+1
現金及び現金同等物
これはグラフ構造を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を利用し、all、notAll、hypercube-dimension、dimension-domain、domain-member、dimension-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が検証だけでなく、
title、description、default、examplesなど説明用annotationも持つことを確認した。
この記事は特定の投資判断を勧めるものではありません。
出典
- https://www.xbrl.org/Specification/XBRL-2.1/REC-2003-12-31/XBRL-2.1-REC-2003-12-31%2Bcorrected-errata-2013-02-20.html
- https://www.xbrl.org/specification/dimensions/per-2011-11-20/dimensions-per-2011-11-20.html
- https://specifications.xbrl.org/reporting-requirements.html
- https://specifications.xbrl.org/presentation.html
- https://specifications.xbrl.org/validation.html
- https://www.xbrl.org/guidance/label-roles/
- https://www.w3.org/TR/xmlschema11-1/structures.html
- https://json-schema.org/understanding-json-schema/reference/annotations