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

Slides:



Advertisements
Similar presentations
XML ゼミ 独習 XML ~ 第 6 章 XHTML~ 6.1 XHTML の概要 6.2 XHTML の構造 谷津 哲平.
Advertisements

プログラミング言語論 第10回(演習) 情報工学科 木村昌臣   篠埜 功.
XBRLを使って, 財務分析(2015) 専修大学商学部 高萩栄一郎.
Webサービスに関する基本用語 Masatoshi Ohishi / NAOJ & Sokendai
XHTML構文検証手法における スクリプト要素の静的解析アルゴリズム
記述言語XBRLで定義された財務諸表を 計算・書式変換する言語処理系の提案と実現
プログラミング言語としてのR 情報知能学科 白井 英俊.
背景 我々の研究室で開発しているJavaプログラム解析フレ ームワークでは,解析情報はメモリ上に保持される 問題点
持 分 法 会 計 桝岡源一郎.
HTMLの記述と WWWにおける情報公開 遠藤
実行時のメモリ構造(1) Jasminの基礎とフレーム内動作
第1回 HTML5入門.
伺か with なでしこ 発表者:しらたま /05/05 うかべん大阪#3.
項目間の対応関係を用いた XBRL財務報告書自動変換手法の提案
WagbyR6.5 Update 12 PPT版 更新情報
XMLゼミ 2.3 XMLのプロローグ 2.4 XMLのタグ 高橋 辰裕.
オペレーティングシステムJ/K 2004年11月4日
フレームワークを用いた 情報システムの継続的開発に関する研究
条件式 (Conditional Expressions)
プログラミング演習II 2004年12月 21日(第8回) 理学部数学科・木村巌.
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
XMLゼミ 5.1 XML文書と表示 5.2 CSS 5.3 XMLとXSL 高橋 辰裕.
アスペクト指向プログラミングを用いたIDSオフロード
川口真司 松下誠 井上克郎 大阪大学大学院情報科学研究科
プログラム実行履歴を用いたトランザクションファンクション抽出手法
概要 Boxed Economy Simulation Platform(BESP)とその基本構造 BESPの設計・実装におけるポイント!
企業の財務諸表 (ゼミ講義用) 経済学部 吉田裕司.
9.1 DOMの概要 9.2 DOMプログラミングの基礎 9.3 DOMのプログラミング例
第10回 2007年6月29日 応用Java (Java/XML).
暗黙的に型付けされる構造体の Java言語への導入
動的依存グラフの3-gramを用いた 実行トレースの比較手法
独習XML 第2章 XML文書の構成要素 2.1 XMLの文字と文字列 2.2 コメント
インラインスクリプトに対するデータフロー 解析を用いた XHTML 文書の構文検証
コードクローン検出ツールを用いた ソースコード分析システムの試作と プログラミング演習への適用
第13回 XBRL.
動的データ依存関係解析を用いた Javaプログラムスライス手法
独習XML ~第3章 文書と構造~ 3.3 スキーマ 3.3 XML Schema
タイトル A社とB社の経営分析 学籍番号 氏名
記述言語XBRLで書かれた財務諸表を対象とした分析支援ツールの試作
言語XBRLで記述された 財務諸表の分析支援ツールの試作
第3章 『法人企業統計』で経済指標を 計算する
第1章 実世界のモデル化と形式化 3.地物インスタンスの表現
Cプログラムの理解を 支援するナビゲーション機能
XML Schema (1) ソフトウェア特論 第3回 /
XMLゼミ 3.5 DTD M2 正木 裕一.
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
1-3 UMLの図(ダイアグラム) コンポーネント図 システムの物理的な構成を表現 ソフトウェアコンポーネントの依存性を表現
項目間の対応関係を用いた XBRL財務報告書自動変換ツールの試作
第4章 データ構造 p.82 [誤] ハミルトニアン経路問題  [正] ハミルトン閉路問題 p.82,83 [誤] セールスパーソン問題
JavaScriptを含んだHTML文書に対する データフロー解析を用いた構文検証手法の提案
保守請負時を対象とした 労力見積のためのメトリクスの提案
独習XML ~第1章 XMLの基礎~ 1.1 XML文書の基礎 1.2 XMLとHTML
図書系職員のための アプリケーション開発講習会
プログラムの差分記述を 容易に行うための レイヤー機構付きIDEの提案
オペレーティングシステムJ/K (管理のためのデータ構造)
第13回 XBRL.
アルゴリズムとデータ構造1 2009年6月15日
ドキュメントジェネレータ 詳細仕様 長谷川啓
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
コンパイラ 2012年10月11日
プログラミング 4 文字列.
アルゴリズムとデータ構造 2010年6月17日
PROGRAMMING IN HASKELL
プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
識別子の読解を目的とした名詞辞書の作成方法の一試案
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
応用Java(Java/XML) 第8回 2005年6月23日 植田龍男.
Presentation transcript:

XBRLで記述された財務データを扱う言語処理系の提案 高尾 祐治†,松下 誠†,井上 克郎†,湯浦 克彦‡ †大阪大学 大学院情報科学研究科 ‡株式会社日立製作所 ビジネスソリューション事業部

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

財務データ 財務データとは,企業が公表する資本や借金の額などの財務活動のデータ 財務データが記述された表は財務諸表と呼ばれる 貸借対照表 (資金の調達先,資金の使用先) 損益計算書 (売上高,経常利益,純利益) キャッシュフロー計算書 (資金の運用先) 紙ベースの財務諸表をインターネットを通じて流通,利用するため,統一されたフォーマットが必要となった

財務データ記述言語 XBRL 2000年7月,米国公認会計士協会を中心に,財務データを記述するためのXMLベースの言語XBRL(eXtensible Business Reporting Language)が策定された 普及するXBRL 東京証券取引所への財務データの登録が,XBRLに対応 上場企業のXBRL化した財務データをインターネットで提供 XBRL文書の変換,分析のニーズは高い XBRL文書に書かれた値を変更し,新しい文書を作成 大量のXBRL文書から値を読み出して指標を計算 タイトル

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

研究の目的 XML技術の細部に精通していなくても,XBRL文書を簡単に操作することのできる,XBRL文書の操作環境の実現 大量の文書を扱うことのできる,簡単なプログラミング言語 8分25秒

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

XBRL文書の構成 インスタンス文書 タクソノミ リンクベース 財務データを記述したXML文書 語彙を定義 要素間の関係を 定義 リンクベース インスタンス文書 財務データを記述したXML文書 タクソノミ インスタンス文書で使う語彙(要素名, 属性など)を定義したXML Schema リンクベース 要素間の関係や,各要素に対する追加情報を定義したXLink 定義リンク 財務諸表で現れる項目間の関係 (例,親子関係) 計算リンク 値の計算方法(重み付き加算式) プレゼンテーションリンク 項目の表示順 ラベルリンク 項目の表示名称 リファレンスリンク 項目の参考文献

項目要素を補足する,企業コード,単位を記述 インスタンス文書 インスタンス文書の構成 グループ要素   (ルートノード,必須) 項目要素(財務データ,必須) コンテキスト要素  (項目要素の補足情報,必須) タプル要素(任意) 脚注要素(任意) グループ要素 <group …> <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> 項目要素を補足する,企業コード,単位を記述 <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"> インスタンス文書全体に関わる記述 (タクソノミ,名前空間の指定) 項目要素 <assets …>100</assets> コンテキスト要素 <numericContext> … </numericContext> </group>

XBRL文書の特徴 財務諸表に現れる,項目とその内訳といった親子構造は,リンクベースで定義する 財務事実を表現する項目要素は,入れ子で記述しない データと構造を別々に記述することで,利用場面によって表示方法や,計算式を変えるといった,柔軟な表現が可能 逆に,XBRL文書の解析を難しくしている インスタンス文書を解析するために,タクソノミとリンクベースの解析もする必要がある

XBRL文書のモデル インスタンス文書に記述された項目要素への読み書きを簡単に行うためのモデル インスタンス文書に記された要素間の関係に注目 入れ子による親子関係 リンクベースで定義された項目要素の親子関係 項目要素がコンテキスト要素を参照する関係 この関係を元にXBRL文書を有向グラフで表す 頂点:要素 辺 :要素間の関係(親子) 頂点に,項目要素の値(財務データ)を付加する XBRL文書に記された要素間の関係に注目 関係を使うと,有向グラフを書ける

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

assets currentAssets group liabilities noncurrentAssets numericContext liabilitiesAnd StockholdersEquity liabilities stockholdersEquity group numericContext (子要素は省略) 入れ子構造による 親子関係 リンクベースによる id属性による 参照関係 まじめにやると,こうなる

インスタンス文書に記述された値の変更を実現可能 有向グラフを使った操作 頂点間の矢印(項目要素間の関係)を使って,操作対象の項目要素を見つける 頂点に付加された,項目要素の値を読み書きすることで,XBRL文書の操作を行う 有向グラフのモデルに対する操作で インスタンス文書に記述された値の変更を実現可能

項目要素以外の操作 有向グラフのモデルは,項目要素への読み書きを簡単に行うためのモデル 有向グラフのモデルでは表現できない構造もある インスタンス文書の詳細な操作を行う場合は,有向グラフでは不足 <P> text1 <IMG src="image.jpg"/> text2 </P> P IMG text1text2 Src=“image.jpg” DOMを利用することを考える

Document Object Model (DOM) DOM はXMLを木構造で表すモデル DOMツリーを使えば,どのような操作もできる しかし,DOMは 要素の値を木構造の頂点として表すので,操作が煩雑 コメントや,処理命令も扱う(XBRL操作では不要) DOMをそのまま提供すると,面倒な操作を強いられたり,XBRL操作には不要なものまで考えないといけない

DOMツリーを含んだモデル 有向グラフの頂点と,DOMツリーの要素ノードを結合させたモデルを,インスタンス文書のモデルとする 値:6000 <xbrli:group> <sample:assets numericContext="c1">6000</sample:assets> </xbrli:group> 値:6000 numericContext=“c1” ルート xbrli:group sample:assets 6000 numericContext=“c1” DOMのノード 有向グラフの頂点

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

プログラミング言語 構文 XBRL文書処理機能 提供する関数 習得が容易 XBRL文書のモデルを言語機能に組み込む 入出力 XML汎用処理 提案するプログラミング言語は, 容易に習得できることを目指して設計した構文, XBRL文書のモデルを言語機能に組み込むことで実現するXBRL処理機能を持っています さらに,これらの処理機能を持つ関数を提供します.

構文 構造化プログラミング 宣言無しで使える変数 演算子,制御構造 関数の定義,呼び出し 利用者層,プログラムの規模を考慮すると妥当 加減乗除,文字列処理 if-then-else,for,while 関数の定義,呼び出し

XBRL文書の操作方法 有向グラフの頂点を構造体で表す 構造体には,要素の値,他の構造体へのリンクが含まれる 構造体のメンバを変更することで,値の操作,属性の変更を実現 提供する関数を使うことで,構造の操作を実現 XBRL文書操作を簡単に行うことができる

提供する関数 XML汎用 XBRL専用 XML操作 要素取得 入出力 リンクベースで定義された関係の参照 項目要素コンテキスト要素への参照 insertBefore, replaceNode, removeNode, … 要素取得 getElementByTagName, getElementById 入出力 open, save, saveAs XBRL専用 リンクベースで定義された関係の参照 xbrl_getParentNode, xbrl_getChildNodes 項目要素コンテキスト要素への参照 xbrl_getContext XBRL特有の計算 xbrl_calculateNode, xbrl_calculateAllNodes

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

プログラムの例 貸借対照表に記述された「資産(assets)」の内訳に対して,計算処理を行う 内訳は,リンクベースで定義された親子関係 既存の処理系では,リンクベースを解析して親子関係にある要素を取得する必要がある 本言語では,関数を使って要素を取得できる

プログラムの例 // ファイルを開く 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);

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