xbrl で記述された財務データを扱う言語処理系の提案

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

Upload: martena-richardson

Post on 03-Jan-2016

44 views

Category:

Documents


0 download

DESCRIPTION

XBRL で記述された財務データを扱う言語処理系の提案. 高尾 祐治 † ,松下 誠 † ,井上 克郎 † ,湯浦 克彦 ‡ † 大阪大学 大学院情報科学研究科 ‡ 株式会社日立製作所 ビジネスソリューション事業部. 発表の流れ. 財務データと XBRL 問題点と研究の目的 XBRL 文書の構成と,そのモデル プログラミング言語 サンプルプログラム まとめ. 財務データ. 財務データとは,企業が公表する資本や借金の額などの財務活動のデータ 財務データが記述された表は財務諸表と呼ばれる 貸借対照表 (資金の調達先,資金の使用先) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: XBRL で記述された財務データを扱う言語処理系の提案

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

XBRLで記述された財務データを扱う言語処理系の提案

高尾 祐治†,松下 誠†,井上 克郎†,湯浦 克彦‡

†大阪大学 大学院情報科学研究科‡ 株式会社日立製作所 ビジネスソリューション事業部

Page 2: XBRL で記述された財務データを扱う言語処理系の提案

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

発表の流れ財務データと XBRL問題点と研究の目的 XBRL文書の構成と,そのモデルプログラミング言語サンプルプログラムまとめ

Page 3: XBRL で記述された財務データを扱う言語処理系の提案

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

財務データ 財務データとは,企業が公表する資本や借金の額などの財務活動のデータ

財務データが記述された表は財務諸表と呼ばれる貸借対照表 (資金の調達先,資金の使用先)損益計算書 (売上高,経常利益,純利益)キャッシュフロー計算書 (資金の運用先)

紙ベースの財務諸表をインターネットを通じて流通,利用するため,統一されたフォーマットが必要となった

Page 4: XBRL で記述された財務データを扱う言語処理系の提案

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

財務データ記述言語  XBRL 2000 年 7 月,米国公認会計士協会を中心に,財務

データを記述するための XML ベースの言語 XBRL ( eXtensible Business Reporting Language )が策定された

普及する XBRL東京証券取引所への財務データの登録が, XBRL に対応上場企業の XBRL 化した財務データをインターネット

で提供

XBRL 文書の変換,分析のニーズは高いXBRL 文書に書かれた値を変更し,新しい文書を作成大量の XBRL 文書から値を読み出して指標を計算

Page 5: XBRL で記述された財務データを扱う言語処理系の提案

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

XBRLの問題点 既存の XML処理系を使った XBRL文書操作は困難

複雑な財務データを表現するため, XBRLの仕様は複雑

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

財務データを扱う全ての人が, XMLの深い知識を持ってない

Page 6: XBRL で記述された財務データを扱う言語処理系の提案

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

研究の目的 XML技術の細部に精通していなくても, XBRL文書を簡単に操作することのできる, XBRL文書の操作環境の実現

XMLの初心者にも分かりやすい, XBRL文書のモデル

大量の文書を扱うことのできる,簡単なプログラミング言語

Page 7: XBRL で記述された財務データを扱う言語処理系の提案

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

発表の流れ財務データと XBRL問題点と研究の目的 XBRL文書の構成と,そのモデルプログラミング言語サンプルプログラムまとめ

Page 8: XBRL で記述された財務データを扱う言語処理系の提案

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 で記述された財務データを扱う言語処理系の提案

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

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

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

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

インスタンス文書

項目要素<assets …>100</assets>

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

グループ要素<group …>

</group>

<xbrli:group xmlns:xbrli="http://www.xbrl.org/2001/instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:iso4217="http://www.iso.org/4217" xmlns:sample="http://sample" xsi:schemaLocation="http://sample sample.xsd">

インスタンス文書全体に関わる記述(タクソノミ,名前空間の指定)

<sample:assets numericContext="c1">6000</sample:assets>

<sample:currentAssets numericContext="c1">5000</sample:currentAssets>

<sample:noncurrentAssets numericContext="c1">1000</sample:noncurrentAssets>

要素とその値が連続して並ぶ(入れ子構造にならない)コンテキスト属性で,コンテキスト要素を指定

<xbrli:numericContext id="c1" precision="18" cwa="true"> <xbrli:entity> <xbrli:identifier schema="www.nasdaq.com">SAMP</xbrli:identifier> <xbrli:segmant/> </xbrli:entity> <xbrli:unit> <xbrli:operator id="divide"> <xbrli:measure>ISO4217:EUR</xbrli:measure> <xbrli:measure>xbrli:shares</xbrli:measure> </xbrli:operator> </xbrli:unit> </xbrli:numericContext>

項目要素を補足する,企業コード,単位を記述

Page 10: XBRL で記述された財務データを扱う言語処理系の提案

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

XBRL文書の特徴 財務諸表に現れる,項目とその内訳といった親子構造は,リンクベースで定義する

財務事実を表現する項目要素は,入れ子で記述しない

データと構造を別々に記述することで,利用場面によって表示方法や,計算式を変えるといった,柔軟な表現が可能

逆に, XBRL文書の解析を難しくしているインスタンス文書を解析するために,タクソノミとリンクベースの解析もする必要がある

Page 11: XBRL で記述された財務データを扱う言語処理系の提案

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

XBRL文書のモデル インスタンス文書に記述された項目要素への読み書きを簡単に行うためのモデル

インスタンス文書に記された要素間の関係に注目入れ子による親子関係リンクベースで定義された項目要素の親子関係項目要素がコンテキスト要素を参照する関係

この関係を元に XBRL文書を有向グラフで表す頂点:要素辺 :要素間の関係(親子)頂点に,項目要素の値(財務データ)を付加する

Page 12: XBRL で記述された財務データを扱う言語処理系の提案

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

XBRL文書の例 配付資料のインスタンス文書の例を参照 リンクベースで次の関係(貸借対照表の関係)を定義assets (資産の部)は   currentAsset (流動資産)と,   noncurrentAssets (固定資産)の親

liabilitiesAndStockholdersEquity (負債の部)は   liabilities (負債)と   stockholdersEquity (資本)の親

Page 13: XBRL で記述された財務データを扱う言語処理系の提案

13

assets

currentAssets

noncurrentAssets

liabilitiesAndStockholdersEquity

liabilities

stockholdersEquity

group

numericContext( 子要素は省略 )

入れ子構造による親子関係

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

id属性による参照関係

Page 14: XBRL で記述された財務データを扱う言語処理系の提案

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

有向グラフを使った操作 頂点間の矢印(項目要素間の関係)を使って,操作対象の項目要素を見つける

頂点に付加された,項目要素の値を読み書きすることで, XBRL文書の操作を行う

有向グラフのモデルに対する操作でインスタンス文書に記述された値の変更を実現可能

Page 15: XBRL で記述された財務データを扱う言語処理系の提案

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

項目要素以外の操作 有向グラフのモデルは,項目要素への読み書きを簡単に行うためのモデル

有向グラフのモデルでは表現できない構造もある インスタンス文書の詳細な操作を行う場合は,有向グラフでは不足

<P> text1 <IMG src="image.jpg"/> text2</P>

P IMG

text1text2 Src=“image.jpg”

DOMを利用することを考える

Page 16: XBRL で記述された財務データを扱う言語処理系の提案

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

Document Object Model (DOM)

DOM は XMLを木構造で表すモデルDOMツリーを使えば,どのような操作もできる

しかし, DOMは要素の値を木構造の頂点として表すので,操作が煩雑コメントや,処理命令も扱う( XBRL操作では不要)

DOMをそのまま提供すると,面倒な操作を強いられたり, XBRL操作には不要なものまで考えないといけない

Page 17: XBRL で記述された財務データを扱う言語処理系の提案

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

DOMツリーを含んだモデル 有向グラフの頂点と, DOMツリーの要素ノードを結合させたモデルを,インスタンス文書のモデルとする

<xbrli:group> <sample:assets numericContext="c1">6000</sample:assets> </xbrli:group>

ルート xbrli:group sample:assets

numericContext=“c1”

6000

値: 6000numericContext=“c1”

DOMのノード有向グラフの頂点

Page 18: XBRL で記述された財務データを扱う言語処理系の提案

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

発表の流れ財務データと XBRL問題点と研究の目的 XBRL文書の構成と,そのモデルプログラミング言語サンプルプログラムまとめ

Page 19: XBRL で記述された財務データを扱う言語処理系の提案

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

プログラミング言語 構文

習得が容易 XBRL文書処理機能

XBRL文書のモデルを言語機能に組み込む 提供する関数

入出力XML汎用処理XBRL専用処理

Page 20: XBRL で記述された財務データを扱う言語処理系の提案

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

構文 構造化プログラミング

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

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

関数の定義,呼び出し

Page 21: XBRL で記述された財務データを扱う言語処理系の提案

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

XBRL文書の操作方法 有向グラフの頂点を構造体で表す 構造体には,要素の値,他の構造体へのリンクが含まれる

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

提供する関数を使うことで,構造の操作を実現

XBRL文書操作を簡単に行うことができる

Page 22: XBRL で記述された財務データを扱う言語処理系の提案

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

提供する関数 XML 汎用

XML 操作 insertBefore, replaceNode, removeNode, …

要素取得getElementByTagName, getElementById

入出力open, save, saveAs

XBRL 専用 リンクベースで定義された関係の参照

xbrl_getParentNode, xbrl_getChildNodes 項目要素コンテキスト要素への参照

xbrl_getContext XBRL 特有の計算

xbrl_calculateNode, xbrl_calculateAllNodes

Page 23: XBRL で記述された財務データを扱う言語処理系の提案

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

発表の流れ財務データと XBRL問題点と研究の目的 XBRL文書の構成と,そのモデルプログラミング言語サンプルプログラムまとめ

Page 24: XBRL で記述された財務データを扱う言語処理系の提案

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

プログラムの例 貸借対照表に記述された「資産( assets)」の内訳に対して,計算処理を行う

内訳は,リンクベースで定義された親子関係 既存の処理系では,リンクベースを解析して親子関係にある要素を取得する必要がある

本言語では,関数を使って要素を取得できる

Page 25: XBRL で記述された財務データを扱う言語処理系の提案

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

プログラムの例// ファイルを開くrootnode = open("sample_xbrl.xml");

// 要素の取得assets = getElementByTagName(rootnode, "sample:assets");// 子要素の配列を取得assets_child = xbrl_getChildNodes(assets[0]);

// 子要素全てに対して,計算をするfor (i=0; i<length(assets_child); i++) { assets_child[i].value *= rate;}

// 同一ファイルに保存するsave(rootnode);

Page 26: XBRL で記述された財務データを扱う言語処理系の提案

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

まとめ 有向グラフを使った XBRL文書のモデルを導入した モデル通して XBRL文書の操作をするためのプログラミング言語を提案した

XBRL文書の無駄な解析を行うことなく,行いたい処理のみを端的に記述できるため, XBRL文書処理の大幅な省力化が期待できる