26
2004/2/20 CS専専専専専専専専専 1 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 専専専専 XBRL 専専専専専専専専専専専 専専 専専専専専専専専専専専専専専専専専 専専専専専 専専 専専

記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

  • Upload
    awen

  • View
    80

  • Download
    1

Embed Size (px)

DESCRIPTION

記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現. 井上研究室 高尾 祐治. 投資家. 会計士. 企業・法人. 証券・銀行. 投資. 作成. 監査. 分析. 財務諸表とは. 財務諸表とは,企業が財務情報を公表するために使う表 貸借対照表 (資金の調達先,資金の使用先) 損益計算書 (売上高,経常利益,純利益) キャッシュフロー計算書 (資金の運用先). 財務諸表を分析し,   資金が供給される 経済の要. ある項目がサブ項目から構成されるとき, 項目間に 親子関係 があるという. 貸借対照表の例. - PowerPoint PPT Presentation

Citation preview

Page 1: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

2004/2/20 CS専攻修士論文発表会

1Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

記述言語 XBRLで定義された財務諸表を計算・書式変換する言語処理系の提案と実

井上研究室高尾 祐治

Page 2: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

2004/2/20 CS専攻修士論文発表会

2Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

財務諸表とは 財務諸表とは,企業が財務情報を公表するために使う表貸借対照表 (資金の調達先,資金の使用先)損益計算書 (売上高,経常利益,純利益)キャッシュフロー計算書 (資金の運用先)

作成

企業・法人

監査

会計士

分析

証券・銀行

投資

投資家

財務諸表を分析し,  資金が供給される経済の要

Page 3: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

2004/2/20 CS専攻修士論文発表会

3Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

貸借対照表の例

ある項目がサブ項目から構成されるとき,

項目間に親子関係があるという

Page 4: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

2004/2/20 CS専攻修士論文発表会

4Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

財務諸表記述言語  XBRL 財務諸表をインターネットを通じて流通されるよ

うになったPDF 形式や HTML 形式など,形式が各社ばらばら手作業で再入力の必要

統一されたフォーマットが必要となった

財務諸表を記述するための, XML の構文を使った言語 XBRL ( eXtensible Business Reporting Language )が,米国公認会計士協会を中心に策定された 2000 年 7 月 XBRL 1.0 2001 年 12 月 XBRL 2.0

Page 5: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

2004/2/20 CS専攻修士論文発表会

5Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

XBRLのメリット 従来は,紙の授受や,再入力が必要     

XBRLは徐々に普及している

東京証券取引所への財務情報の登録が

XBRLに対応

2003年 4月上場企業の

XBRL化した財務情報を

インターネットで提供

2003年 10月国税庁の電子申告に

XBRLを採用

2004年 2月

共通のフォーマットで情報を受け取れるため,業務の短期化とコスト削減を実現

Page 6: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

2004/2/20 CS専攻修士論文発表会

6Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

XBRL文書処理における問題点 XBRL文書の計算・変換のニーズは非常に高い

XBRL文書に記述された値の計算処理XBRLから,他の形式の文書への書式変換

既存の XML処理系を使った XBRL文書操作は困難複雑な財務情報を表現するため, XBRLの仕様は複雑

既存の XML処理系を使うと, XBRLの解析処理を大量に記述する必要がある

財務情報を扱う人全てが, XMLの深い知識を持っているわけではない

Page 7: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

2004/2/20 CS専攻修士論文発表会

7Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

研究の目的 XML技術の細部に精通していなくても, XBRL文書の計算・書式変換を簡単に行うことができる,操作環境の実現

扱いやすい XBRL文書のモデル容易に習得可能な,簡単なプログラミング言語

Page 8: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

2004/2/20 CS専攻修士論文発表会

8Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

XBRL文書の構成 インスタンス文書

財務情報を記述した XML 文書

タクソノミインスタンス文書で使う語

彙 ( 要素名 , 属性など ) を定義した XML Schema

リンクベース要素間の関係や,各要素に

対する追加情報を定義したXLink

定義リンク 財務諸表で現れる項目間の関係 (例,親子関係)

計算リンク 値の計算方法(重み付き加算式)

表示リンク 項目の表示順名称リンク 項目の表示名称参照リンク 項目の参考文献

タクソノミ

インスタンス文書

XBRL文書

語彙を定義

要素間の関係を定義

リンクベースリンクベースリンクベースリンクベースリンクベース

Page 9: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

2004/2/20 CS専攻修士論文発表会

9Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

インスタンス文書の構成グループ要素  (ルートノード,必須)項目要素(財務情報,必須)

コンテキスト要素 (項目要素の補足情報,必須)

タプル要素(任意)脚注要素(任意)

インスタンス文書

項目要素<Assets …>6000</Assets>

コンテキスト要素<numericContext> …</numericContext>

グループ要素<group …>

</group>

Page 10: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

2004/2/20 CS専攻修士論文発表会

10Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

インスタンス文書の例

<xbrli:group>

<jp-bs:Assets numericContext="c1">6000</jp-bs:Assets> <jp-bs:CurrentAssets numericContext="c1">5000</jp-bs:CurrentAssets> <jp-bs:FixedAssets numericContext="c1">1000</jp-bs:FixedAssets> <jp-bs:LiabilitiesStockholdersEquity numericContext="c1">6000 </jp-bs:LiabilitiesStockholdersEquity> <jp-bs:Liabilities numericContext="c1">2500</jp-bs:Liabilities> <jp-bs:Equity numericContext="c1">3500</jp-bs:Equity>

<xbrli:numericContext id="c1" precision="18" cwa="true">   … </xbrli:numericContext>

</xbrli:group>

•要素が連続して並ぶ•コンテキスト属性で,コンテキスト要素を指定

Page 11: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

2004/2/20 CS専攻修士論文発表会

11Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

XBRL文書のモデル XBRL文書の計算,書式変換を簡単に扱うことのできる,理解しやすいモデルを提案する

XML文書のモデルとしては, DOM( Document Object Model)が広く使われている

XBRL文書の特徴を利用し, DOMを簡略化したモデルを考える

Page 12: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

2004/2/20 CS専攻修士論文発表会

12Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

DOM ( Document Object Model)

DOM は XMLを木構造で表すモデル

○ あらゆる XML文書を正確に表現できる× 要素や,その値を木構造の頂点として同じように表す 操作が煩雑

<group> <Assets>6000</Assets> <CurrentAssets>5000</CurrentAssets> …

document

group

Assets

CurrentAssets

“6000”

“5000”

Page 13: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

2004/2/20 CS専攻修士論文発表会

13Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

XBRL文書の特徴 財務事実を表現する項目要素と, その値をまとめて扱うことができる

入れ子による親子関係以外の関係が存在するリンクベースで定義された項目要素の親子関係項目要素がコンテキスト要素を参照する関係

Page 14: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

2004/2/20 CS専攻修士論文発表会

14Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

XBRL文書のモデル 有向グラフを XBRL文書のモデルとする

頂点:要素に項目要素の値(財務情報)を付加辺 :要素間の関係

XMLの親子関係

リンクベースによる親子関係

コンテキスト要素への参照関係

Assets値: 6000

CurrentAssets値: 5000

group値:

numericContext値:

<group> <Assets>6000</Assets> <CurrentAssets>5000</CurrentAssets> <numericContext> …

Page 15: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

2004/2/20 CS専攻修士論文発表会

15Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

メリット XBRL文書が持つ構造を使って,頂点にアクセスできる

頂点が値を持つので,値の読み書きの際に解析しなくてよい

Assets値: 6000

CurrentAssets値: 5000

group値:

numericContext値:

<group> <Assets>6000</Assets> <CurrentAssets>5000</CurrentAssets> <numericContext> …

XBRL文書に記された値の読み書きにかかる手間を軽減することができる

Page 16: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

2004/2/20 CS専攻修士論文発表会

16Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

プログラミング言語 有向グラフのモデルに基づいた, XBRL 文書操作を行うた

めの言語 LMX (A Tiny Language for Manipulating XBRL Documents ) を設計した

特徴 構造化プログラミング

利用者層,プログラムの規模を考慮すると妥当 宣言無しで使える変数 C 言語に似た,演算子,制御構造

加減乗除,文字列処理 if-then-else , for , while

XBRL 文書解析,入出力のためのライブラリ関数を提供

Page 17: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

2004/2/20 CS専攻修士論文発表会

17Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

XBRL文書の操作方法 有向グラフの頂点を構造体で表現

構造体は,要素の値,他の構造体への参照を持つ

構造体のメンバを変更することで,値の操作,文書構造の変更を実現

LMXでは,有向グラフのモデルを DOM ツリーを元に実現

DOMのノードを構造体で表すことで DOM ツリーの操作による,汎用の XML文書処理も可能

名前 意味name 要素名localname ローカル名uri 名前空間 URI

value 要素の値attribute 属性parent 親要素children 子要素の配列

メンバ一覧

Page 18: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

2004/2/20 CS専攻修士論文発表会

18Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

実装 LMX のインタープリタ XBRL 解析ライブラリ 開発環境 (GUI)

実装を行った環境・ライブラリJava 2 SDK (version 1.4.2)コンパイラ・コンパイラ:  JavaCCXML パーサ:       JAXP

Page 19: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

2004/2/20 CS専攻修士論文発表会

19Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

事例研究

全ての項目を 1000 倍する 金融機関でしばしば行われる処理 既存の言語 ECMAScript ( JavaScript ) と比較

XML 解析には DOM を利用DOM を利用する言語で,手軽に扱える

ECMAScript 版のプログラムでも, XBRL 文書解析関数が利用できることを仮定

100万円単位で値が記述されたXBRL文書を, 1000円単位に直す事例

Page 20: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

インスタンス文書の例<xbrli:group>

<jp-bs:Assets numericContext="c1">6000</jp-bs:Assets> <jp-bs:CurrentAssets numericContext="c1">5000</jp-bs:CurrentAssets> <jp-bs:FixedAssets numericContext="c1">1000</jp-bs:FixedAssets> <jp-bs:LiabilitiesStockholdersEquity numericContext="c1">6000 </jp-bs:LiabilitiesStockholdersEquity> <jp-bs:Liabilities numericContext="c1">2500</jp-bs:Liabilities> <jp-bs:Equity numericContext="c1">3500</jp-bs:Equity>

<xbrli:numericContext id="c1" precision="18" cwa="true">   … </xbrli:numericContext>

</xbrli:group>

Page 21: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

2004/2/20 CS専攻修士論文発表会

21Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

有向グラフによる表現

Assets値: 6000

CurrentAssets値: 5000

FixedAssets値: 1000

group値:

numericContext値:

処理対象の項目要素

・・・・・・・

Page 22: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

2004/2/20 CS専攻修士論文発表会

22Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

LMXによる記述balanceSheet = openInstance("A2003BS.xml");itemnodes = balanceSheet.children;

for (i=0; i<length(itemnodes); i++) { if (getItemElementType(itemnodes[i]) == MONETARY_TYPE) { itemnodes[i].value *= 1000; }}

save("output.xml");

ルート要素の子要素を取得

子要素の数だけ繰り返す

項目要素ならば,値の計算を行う

Page 23: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

2004/2/20 CS専攻修士論文発表会

23Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

DOMによる表現

document

group

Assets

CurrentAssets

“6000”

“5000”

処理対象の値

FixedAssets “1000”

・・・・・・・

Page 24: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

2004/2/20 CS専攻修士論文発表会

24Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

ECMAScript による記述objXML = WScript.CreateObject("MSXML.DOMDocument");objXML.load("A2003BS.xml");

groupnode = objXML.getElementsByTagName("xbrli:group");itemnodes = groupnode[0].childNodes;

for (i=0; i<itemnodes.length; i++) { if (itemnodes[i].nodeType == 1) { // Node.ELEMENT_NODE if (getItemElementType(itemnodes[i]) != MONETARY_ITEM_TYPE) { continue }

itemchildren = itemnodes[i].childNodes; for (j=0; j<itemchildren.length; j++) { if (itemchildren[j].nodeType == 3) { // Node.TEXT_NODE itemchildren[j].nodeValue *= 1000; break; } } }}

objXML.save("output.xml");

ルート要素の子要素を取得

要素ノードを探す

要素ノードの子ノードを取得

テキストノードを探す

値の計算

Page 25: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

2004/2/20 CS専攻修士論文発表会

25Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

考察 for文, if文の数に大きな差が現れた DOMと有向グラフのモデルの差 DOMでは要素ノード,テキストノードが子ノードとして現れるノードの種類の判定作業が必要

LMXでは,この作業が必要ではないため,平易なプログラムを書くことができる

論文では, XSLTとの比較検討も行った その結果,多くの前提知識を必要とする XSLT よりも,言語習得にかかるコストが小さい

Page 26: 記述言語 XBRL で定義された財務諸表を 計算・書式変換する言語処理系の提案と実現

2004/2/20 CS専攻修士論文発表会

26Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

まとめと今後の課題 まとめ

XBRL文書を表現するための扱いやすいモデルを提案した

モデルに基づいた, XBRL文書変換を行うためのプログラミング言語 LMX を設計した

LMXのインタープリタを実装し, LMXを使うと,既存の処理系よりもプログラムが簡単になることを確かめた

今後の課題XBRL文書のデータ型を利用した,検証機能