JP4972866B2 - 変換プログラム - Google Patents

変換プログラム Download PDF

Info

Publication number
JP4972866B2
JP4972866B2 JP2005068137A JP2005068137A JP4972866B2 JP 4972866 B2 JP4972866 B2 JP 4972866B2 JP 2005068137 A JP2005068137 A JP 2005068137A JP 2005068137 A JP2005068137 A JP 2005068137A JP 4972866 B2 JP4972866 B2 JP 4972866B2
Authority
JP
Japan
Prior art keywords
source code
calculation formula
name
variable
element name
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005068137A
Other languages
English (en)
Other versions
JP2006252201A (ja
Inventor
勝 内田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2005068137A priority Critical patent/JP4972866B2/ja
Priority to US11/167,766 priority patent/US8332814B2/en
Publication of JP2006252201A publication Critical patent/JP2006252201A/ja
Application granted granted Critical
Publication of JP4972866B2 publication Critical patent/JP4972866B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation

Description

この発明は、ソースコードに記述された計算式を所定の言語に変換するソースコード解析プログラムに関する。
近年の経済活動を支える中心となっているのは企業であり、その企業の状態を知るためには、企業の財務情報が重要な手がかりとなる。株式会社では財務情報の公開が法律によって義務付けられており、その公開された財務情報によって企業の状態を知ることができる。そのため、詳細な財務情報の公開が望まれる。
また、財務情報をインターネットなど情報技術を用いて公開する方法としてXML技術をベースとしたXBRL(eXtensible Business Reporting Language)が注目を集めている。XBRLは、損益決算書や、賃貸対照表などの財務情報に関する報告書などを電子化して記述するために使用される言語である。
財務情報の管理には、主に財務情報を管理するアプリケーションを用いておこなっているのが一般的である。これらのアプリケーションは、たとえば、いくつかの項目に対して数値などの入力をおこなうと、入力された数値を計算した結果が出力される。しかし、コンピュータ内部において、どのような計算あるいは処理をおこなって出力されたかを詳細に調べるために、プログラムの内容を参照する必要性が生じる。
一般に、プログラム言語によって記述されたソースコードの内容の理解を助けるために、ソースコード中にはコメント文が含まれている。このコメント文には、プログラムの処理の内容についての説明が記述されており、ソースコード中に含まれるコメント文を抽出することによって、プログラムの処理の内容についての説明を得ることができる。
そこで、ソースコード中に含まれるコメント文を抽出することにより、プログラムの仕様書を作成することができる。そのため、ソースコード中に含まれるコメント文が多いほど、ユーザにとってわかり易い仕様書が作成される。
従来技術では、ソースコード中にコメント文が不足している箇所に対して、コメントキーワードを含んだコメント文を挿入することができ、このコメント文を挿入した上で、ソースコード中からコメント文を抽出して仕様書を作成する技術が知られている(たとえば、下記特許文献1参照。)。
また、プログラム仕様書やその他のドキュメントを生成することができ、さらにプログラムに変更が生じた場合にプログラムの変更理由、システム構成あるいはプログラムの変更箇所などからなるソースプログラムの変更情報を変更後のプログラム仕様書として作成する技術が知られている(たとえば、下記特許文献2参照。)。
特開2002−169692号公報 特開2002−366354号公報
しかしながら、上述した従来技術では、ソースコードはXBRLという特殊なプログラム言語により記述されている。したがって、財務情報に精通している専門家であっても、このプログラム言語に長けていない場合は、ソースコードの記述から具体的な財務内容を理解することができないという問題があった。これにより、財務情報が実質的に開示されず、依然として企業の経営実態が不透明なままであるという問題があった。
また、上述した財務情報に精通している専門家が、XBRLに関する知識をある程度有していても、ソースコードの記述の量が膨大である。したがって、膨大なソースコードの記述から具体的な財務内容を理解するには多大な労力が必要となり、財務内容の理解に困難が生じるという問題があった。
この発明は、上述した従来技術による問題点を解消するため、ソースコードの内容を簡単かつ容易に理解することができるソースコード解析プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するため、この発明にかかるソースコード解析プログラムは、ソースコードに記述されている計算式から当該計算式を構成する変数を検出させ、検出された変数を定義する要素名を前記ソースコードの中から抽出させ、抽出された要素名を、所定の言語において当該要素名が意味する名称に変換させ、変換された名称を出力させることをコンピュータに実行させることを特徴とする。
また、上記発明において、抽出された要素名に関するコンテキストを前記ソースコードの中から抽出させ、抽出されたコンテキストを、前記所定の言語において当該コンテキストが意味する名称に変換させることをコンピュータに実行させることとしてもよい。
また、上記発明において、抽出された要素名に関するコンテキストが前記ソースコードに記述されているか否かを判断させ、判断された判断結果に基づいて、前記要素名抽出工程によって抽出された要素名に関するコンテキストを前記ソースコードの中から抽出させることをコンピュータに実行させることとしてもよい。
また、上記発明において、変換された名称を、当該名称の変換元となる要素名に定義されている変数と関連付けて出力させることをコンピュータに実行させることとしてもよい。
また、上記発明において、前記計算式を構成する変数を、当該変数を定義している要素名から前記変換工程によって変換された名称に置換させ、置換された計算式を出力させることをコンピュータに実行させることとしてもよい。
また、上記発明において、前記計算式を構成する演算子を検出させ、検出された演算子を、前記所定の言語において当該演算子が意味する用語に変換させることをコンピュータに実行させることとしてもよい。
また、上記発明において、前記計算式から任意の2つの変数間の演算子がすべて同一となる箇所を検出させ、検出された箇所を、前記所定の言語において当該箇所が意味する文章に変換させることをコンピュータに実行させることとしてもよい。
これらの発明によれば、ソースコードの中に記述された計算式の中の変数、演算子を所定の言語に変換することができる。
また、この発明にかかるソースコード解析プログラムは、ソースコードで定義される任意の変数を所定の言語であらわした文字列を含む計算式の入力を受け付けさせ、入力された計算式の中から、前記文字列を抽出させ、抽出された文字列を、当該文字列が意味する要素名に変換させることをコンピュータに実行させることを特徴とする。
また、上記発明において、前記計算式の中から、前記計算式の演算子を所定の言語であらわした前記演算子に関する文字列を抽出させ、抽出された前記演算子に関する文字列を、当該文字列が意味する演算子に変換させることをコンピュータに実行させることとしてもよい。
これらの発明によれば、ソースコードに記述されている計算式を編集する際に、所定の言語を用いて編集することができる。
本発明にかかるソースコード解析プログラムによれば、ソースコードの内容を簡単かつ容易に理解することができるという効果を奏する。
以下に添付図面を参照して、この発明にかかるソースコード解析プログラムの好適な実施の形態を詳細に説明する。
(実施の形態1)
(ソースコード解析装置のハードウェア構成)
まず、この発明の実施の形態1にかかるソースコード解析装置のハードウェア構成について説明する。図1は、この発明の実施の形態にかかるソースコード解析装置のハードウェア構成を示すブロック図である。
図1において、ソースコード解析装置は、CPU101と、ROM102と、RAM103と、HDD(ハードディスクドライブ)104と、HD(ハードディスク)105と、FDD(フレキシブルディスクドライブ)106と、着脱可能な記録媒体の一例としてのFD(フレキシブルディスク)107と、ディスプレイ108と、I/F(インターフェース)109と、キーボード110と、マウス111と、スキャナ112と、プリンタ113と、を備えている。また、各構成部はバス100によってそれぞれ接続されている。
ここで、CPU101は、ソースコード解析装置の全体の制御を司る。ROM102は、ブートプログラムなどのプログラムを記憶している。RAM103は、CPU101のワークエリアとして使用される。HDD104は、CPU101の制御にしたがってHD105に対するデータのリード/ライトを制御する。HD105は、HDD104の制御で書き込まれたデータを記憶する。
FDD106は、CPU101の制御にしたがってFD107に対するデータのリード/ライトを制御する。FD107は、FDD106の制御で書き込まれたデータを記憶したり、FD107に記憶されたデータをソースコード解析装置に読み取らせたりする。
また、着脱可能な記録媒体として、FD107のほか、CD−ROM(CD−R、CD−RW)、MO、DVD(Digital Versatile Disk)、メモリーカードなどであってもよい。ディスプレイ108は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ108は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
I/F109は、通信回線を通じてインターネットなどのネットワーク114に接続され、このネットワーク114を介して他の装置に接続される。そして、I/F109は、ネットワーク114と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F109には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード110は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス111は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ112は、画像を光学的に読み取り、ソースコード解析装置内に画像データを取り込む。なお、スキャナ112は、OCR機能を持たせてもよい。また、プリンタ113は、画像データや文書データを印刷する。プリンタ113には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
つぎに、この発明の実施の形態にかかるソースコード解析装置が解析するソースコードについて説明する。図2は、この発明の実施の形態1にかかるソースコード解析装置が解析するソースコードの一例を示す説明図である。図2において、ソースコード200とは、プログラム言語を用いて記述したソフトウェアのプログラムであり、たとえば、C言語あるいはJava(登録商標)などのプログラム言語によって記述される。
また、ソースコード200中の符号201に示される行には、計算式が記述されている。具体的には、たとえば、「$A−$B=$C」が、このプログラムによって計算される計算式を示している。この計算式を定義するための仕様としてFormula Linkbaseという仕様が規定されている。Formula Linkbaseという仕様では、計算式は変数を用いた式であらわされる。また、図中の符号202〜204に示す行には、それぞれ計算式の変数と、その変数を定義する要素名が記述されている。
具体的には、たとえば、行202には、変数「A」と、その変数「A」を定義する要素名「Sales」が示されている。また、行203には、変数「B」と、その変数「B」を定義する要素名「CostOfSales」が示されている。また、行204には、変数「C」と、その変数「C」を定義する要素名「GrossProfit」が示されている。これらの要素名は、後述するタクソノミによってその要素名が意味する名称(ラベル名)と対応している。
つぎに、この発明の実施の形態にかかるソースコード解析装置が解析するコンテキストを含むソースコードについて説明する。図3は、この発明の実施の形態1にかかるソースコード解析装置が解析するコンテキストを含むソースコードを示す説明図である。図3において、ソースコード300中の計算式、変数および要素名については、上述した説明と重複するため省略する。符号301に示される行には、変数「E」と、その変数「E」に対して指定されたコンテキストの制限情報が記述されている。このコンテキストの制限情報は、変数をラベル名に変換する際にラベル名に対してコンテキストの制限情報を付加して変換される。
つぎに、この発明の実施の形態にかかる、財務情報に含まれる科目を定義したタクソノミについて説明する。図4は、この発明の実施の形態1にかかる、財務情報に含まれる科目を定義したタクソノミを示す説明図である。タクソノミとは、一般的には「分類法」と言う意味であるが、ここでは、XBRLという仕様で記述された文書の項目や構成などを定義する。
また、科目とは「売上高」あるいは「売上総利益」などの計算の対象となる情報のことをいう。図4では、ソースコードに含まれている要素名401に対応する名称(ラベル名)402を示している。具体的には、たとえば、要素名「Sales」に対しては、名称(ラベル名)「売上高」が定義されている。また、図4では、各名称(ラベル名)は日本語により定義されているが、定義される言語は日本語以外の言語であってもよい。
(ソースコード解析装置の機能的構成)
つぎに、この発明の実施の形態1にかかるソースコード解析装置の機能的構成について説明する。図5は、この発明の実施の形態1にかかるソースコード解析装置の機能的構成を示すブロック図である。図5において、ソースコード解析装置500は、検出部501と、抽出部502と、判断部503と、変換部504と、置換部505と、出力部506とを備えている。また、抽出部502は、要素名抽出部521と、コンテキスト抽出部522により構成されている。また、ソースコード解析装置500は、ソースコード510およびテーブル511を参照する。なお、ソースコード510は、上述したソースコード200であってもよく、またソースコード300であってもよい。
まず、検出部501は、ソースコード510に記述されている計算式からその計算式を構成する変数および演算子を検出する。ここで、演算子とは、計算式中において演算処理をするための記号のことであり、具体的には、たとえば、「+」、「−」、「×」、「÷」、「=」、「≦」などが該当する。
ここで、ソースコード200から変数および演算子を検出した結果について説明する。図6は、図2に示したソースコード200から変数および演算子を検出した検出結果を示す説明図である。図6において、図2に示したソースコード200に記述されている計算式から、計算式601の全体を検出し、その計算式601を構成している変数および要素を検出する。具体的には、たとえば、計算式601から、変数「A」、演算子「−」、変数「B」、演算子「=」および変数「C」を検出する。
また、図7は、図3に示したソースコード300から変数および演算子を検出した検出結果を示す説明図である。図7において、計算式701を構成している変数および要素を検出する。具体的には、たとえば、計算式701から、変数「D」、演算子「>=(≧)」、および変数「E」を検出する。
また、図5において、検出部501は、任意の2つの変数間の演算子がすべて同一の箇所を検出することもできる。たとえば、ここで、説明に用いる計算式として「A+B+C−D×E−F+G+H=I」を例として説明する。この計算式は、アルファベットA〜Iの9つの変数によって構成されており、「=」によって左辺と右辺に分けられている。また、変数に演算子が付されていない場合には、その変数に付されている演算子(その変数の符号)は「+」である。具体的には、たとえば、変数「A」および変数「I」の演算子(符号)は「+」である。
また、この場合の判別は、その同一の箇所の先頭の変数に付されている演算子(その変数の符号)も考慮される。具体的には、たとえば、アルファベットA〜Hによって構成されている左辺では、2つの変数A〜C間およびF〜H間の演算子がすべて「+」を示している。変数「A」の符号は「+」なので、変数A〜C間は「任意の2つの変数間の演算子がすべて同一の箇所」に該当する。
なお、変数「F」の演算子は「−」であるため、変数F〜H間は「任意の2つの変数間の演算子がすべて同一の箇所」に該当しない。また、検出部501は、具体的には、たとえば、図1に示したROM102、RAM103、HD105、FD107などの記録媒体に記録されているプログラムを、CPU101に実行させることによってその機能を実現する。
また、要素名抽出部521は、検出部501によって検出された変数を定義する要素名をソースコード510の中から抽出する。ここで、要素名抽出部521による抽出結果について説明する。図8は、要素名抽出部による抽出結果を示す説明図である。この図8に示した抽出結果をテーブル800は、コンテキストを含まないソースコード510の中から要素名を抽出した結果を示している。具体的には、たとえば、図2に示した変数「A」、それを定義する要素名「Sales」、変数「B」、それを定義する要素名「CostOfSales」、変数「C」、それを定義する要素名「GrossProfit」を抽出する。
判断部503は、要素名抽出部521によって抽出された要素名に関するコンテキストがソースコード510に記述されているか否かを判断する。具体的には、たとえば、図3に示したソースコード300中に、行301に示す「relativeContext=」が含まれている場合に、要素名に関するコンテキストが含まれていると判断する。
コンテキスト抽出部522は、要素名抽出部521によって抽出された要素名に関するコンテキストをソースコード510の中から抽出する。また、コンテキスト抽出部522は、判断部503によって判断された判断結果に基づいて、要素名抽出部521によって抽出された要素名に関するコンテキストをソースコード510の中から抽出する。
具体的には、たとえば、図3のソースコード300に示す行301において、変数「E」を定義する要素名「Sales」に関するコンテキストを抽出する。このコンテキスト抽出部522は、具体的には、たとえば、図1に示したROM102、RAM103、HD105、FD107などの記録媒体に記録されているプログラムを、CPU101に実行させることによってその機能を実現する。
ここで、コンテキストを含むソースコード510の中から要素名およびコンテキストを抽出した結果を示す。図9は、コンテキストを含むソースコード510の中から要素名およびコンテキストを抽出した結果を示す説明図である。ソースコード510の中にコンテキストを含んでいる場合には、そのコンテキストも抽出する。具体的には、たとえば、図3に示した変数「D」を定義する要素名「Sales」、変数「E」を定義する「Sales」および変数「E」に関するコンテキストを抽出する。このコンテキストは、「Dの3ヶ月前」という情報を含んでいる。
図5の説明に戻り、変換部504は、要素名抽出部521によって抽出された要素名を、所定の言語においてその要素名が意味する名称に変換する。ここで、要素名が意味する名称とは、テーブル511に記述されている要素名に対応している名称(ラベル名)をいう。具体的には、たとえば、図4において要素名「Sales」は名称(ラベル名)「売上高」のことをいう。
また、変換部504は、コンテキスト抽出部522によって抽出されたコンテキストを、所定の言語において、それらの要素名およびコンテキストが意味する名称に変換する。コンテキストが含まれている場合には、そのコンテキストが指定する変数の前にそのコンテキストが意味する「名称」をその要素名が意味する名称の前に付加する。
具体的には、たとえば、任意の変数を定義する要素名を意味する名称が「売上高」であり、その任意の変数にコンテキストが指定されている場合に、そのコンテキストが意味する名称が「3ヶ月前」であるとすると、その「3ヶ月前」を「売上高」の前に付けて、「3ヶ月前売上高」あるいは「3ヶ月前の売上高」に変換される。
また、変換部504は、検出部501によって検出された演算子を所定の言語において、その演算子が意味する用語に変換する。ここで、演算子が意味する用語について説明する。図10は、計算式と生成される文章の関係を示す説明図である。図10に示すテーブル1000を参照して変換を実行する。
具体的には、たとえば、「A+B」は、「A足すB」に変換される。演算子を文章に変換する場合に、四則演算の変換に関しては、上述したようにテーブルを参照して式自体を文章に変換してもよく、また、単に「+」は「足す」のように、演算子のみを変換しても同じ結果が得られる。
つぎに、等号「=」あるいは不等号(たとえば、「≦」)の変換の方法について説明する。図11は、等号の変換方法の一例を示す説明図である。図11において、計算式1100は、変数「A」、「B」、「C」および「D」、演算子「+」、「−」、「=」によって構成されている。計算式1100のように等号を含む場合には、まず計算式1100を左辺1101および右辺1102に分ける。また、ここでは、説明の便宜上左辺1101を「X」、右辺1102を「Y」とおき、X=Yとしておく。
そして、まず左辺(X)1101について解析をおこない、左辺(X)1101の式中の演算子を、その演算子の意味する用語に置き換えた文章を生成する。具体的には、たとえば、左辺(X)は、「A足すB引くC」という文章が生成される。つぎに、右辺(Y)について解析をおこなうが、右辺(Y)は変数「D」のみのため、文章は生成されない。
両辺に対して文章の生成をしたら、つぎに、生成された文章の変換をおこなう。まず、図10のテーブルを参照してX=Yを「XとYは等しい」と変換する。そして左辺(X)1101および右辺(Y)1102について生成した文章をそれぞれ置換する。具体的には、たとえば、「A足すB引くCとDは等しい」という文章に変換される。ここでは、等号の変換方法を例にとって説明したが、不等号を式に含む場合も同様の方法で変換することができる。
また、変換部504は、検出部501によって検出された任意の2つの変数間の演算子がすべて同一の箇所の計算式を所定の言語においてその箇所に記載された計算式が意味する文章に変換する。
ここで、任意の2つの変数間の演算子がすべて同一の箇所を計算式が意味する文章に変換する方法について説明する。図12および図13は、任意の2つの変数間の演算子がすべて同一の箇所を計算式が意味する文章に変換する方法の一例を示す説明図である。「任意の2つの変数間の演算子がすべて同一の箇所」とは、上述した「A+B+C」が該当する。この箇所を図10のテーブルを用いて変換すると図12に示すように「+」はそれぞれ「足す」に変換され、「A足すB足すC」となる。
また、このような3つ以上の連続した加算に対しては図13に示すように「AとBとCの合計」あるいは「A、BおよびCの合計」という表現に変換することもできる。変換の方法は、具体的には、たとえば、計算式に含まれる「+」を文字「と」に変換する。そして、最後の変数(項目)の後ろに「の合計」を追加する。
図5の説明に戻り、所定の言語とは、日本語には限定されずテーブルによって要素名に対応させて定義されている言語を意味する。変換部504は、具体的には、たとえば、図1に示したROM102、RAM103、HD105、FD107などの記録媒体に記録されているプログラムを、CPU101に実行させることによってその機能を実現する。
置換部505は、計算式を構成する変数を、その変数が定義している要素名から変換部504によって変換された名称に置換する。具体的には、たとえば、計算式が変数を用いて「$A−$B=$C」記述されており、変数Aが「売上高」、変数Bが「売上原価」、変数Cが「売上総利益」に変換された場合に、「売上高−売上原価=売上総利益」と置換する。
出力部506は、変換部504によって変換された名称を出力する。また、出力部50506は、変換部504によって変換名称を、その名称の変換元となる要素名に定義されている変数と関連付けて出力する。また、出力部506は、置換部505によって名称に置換された計算式を出力する。出力される名称、変数、計算式などは、図1に示したディスプレイ101に表示出力してもよく、音声出力してもよい。出力部506は、具体的には、たとえば、図1に示したROM102、RAM103、HD105、FD107などの記録媒体に記録されているプログラムを、CPU101に実行させることによってその機能を実現する。
つぎに、上述したラベル名と、そのラベル名に対応する変数に関する情報に基づいて、ソースコードの計算式に変更が生じた場合にソースコードを変更する例について述べる。図14は、計算式に変更が生じた場合にソースコードを変更する例を示す説明図である。
図14において、テーブル1401は、ラベル名と、そのラベル名に対応する変数の関係を示している。テーブル1402は、説明情報1403と、その説明情報1403の構成要素を示している。ここでは、説明情報1403のラベル名「売上高」が「売上原価」という文字列に変更された場合を例として説明する。
ラベル名「売上高」が「売上原価」という文字列に変更されると、図4に示したタクソノミを参照して、「売上原価」というラベル名は要素「CostOfSales」に対応していることが分かる。そして、テーブル1401により、ラベル名「売上高」に対応する変数は「A」であることが分かるので、変数Aを定義する要素名「Sales」を要素名「CostOfSales」に変換する。
(ソースコード解析処理手順)
つぎに、この発明の実施の形態にかかるソースコード解析処理手順(その1)について説明する。図15は、この発明の実施の形態1にかかるソースコード解析処理手順(その1)を示すフローチャートである。
図15において、まず、ソースコード510を取得する(ステップS1501)。そして、取得したソースコード510に計算式が記述されているかを判断する(ステップS1502)。計算式が記述されていない場合には(ステップS1502:No)、変換する対象が存在しないため、一連の処理を終了する。一方、計算式が記述されている場合には(ステップS1502:Yes)、ソースコード510に含まれている変数を検出する(ステップS1503)。
そして、ステップS1503で検出された変数を定義する要素名を、ソースコード510から抽出する(ステップS1504)。そして、要素名にコンテキストが含まれているかを判断する(ステップS1505)。コンテキストが含まれていない場合には(ステップS1505:No)、ステップS1507に移行する。一方、コンテキストが含まれている場合には(ステップS1505:Yes)、要素名に含まれているコンテキストを、ソースコード510から抽出する(ステップS1506)。
そして、ステップS1504、ステップS1506で抽出された要素名およびコンテキストを、それらが意味する名称に変換する(ステップS1507)。つぎに、未検出の変数があるかどうかを判断する(ステップS1508)。未検出の変数がある場合には(ステップS1508:Yes)、ステップS1503に移行して、未検出の変数を検出する。未検出の変数がない場合には(ステップS1508:No)、ステップS1507で変換された名称を出力する(ステップS1509)。これにより、一連の処理を終了する。
この図15に示したソースコード解析処理手順によれば、ソースコードの中に記述された計算式の中の変数を所定の言語に変換することができる。そのため、ソースコードの内容を簡単かつ容易に理解することができる。
つぎに、この発明の実施の形態にかかるソースコード解析処理手順(その2)について説明する。図16は、この発明の実施の形態1にかかるソースコード解析処理手順(その2)を示すフローチャートである。その1では要素名とコンテキストを変換する場合であったが、その2では要素名、コンテキスト、および演算子も変換する場合である。
図16において、まず、ソースコード510を取得する(ステップS1601)。そして、取得したソースコード510に計算式が記述されているかを判断する(ステップS1602)。計算式が記述されていない場合には(ステップS1602:No)、変換する対象が存在しないため、一連の処理を終了する。一方、計算式が記述されている場合には(ステップS1602:Yes)、ソースコード510に含まれている変数と演算子を検出する(ステップS1603)。
ステップS1603で検出された変数と演算子を、その変数を定義する要素名を抽出する(ステップS1604)。そして、ソースコード510に記載されている計算式の左辺に演算子が含まれているかを判断する(ステップS1605)。左辺に演算子が含まれていない場合には(ステップS1605:No)、ステップS1609に移行する。一方、演算子が含まれている場合には(ステップS1605:Yes)、左辺を解析する(ステップS1606)。
そして、ステップ1606で解析された結果に基づいて、同一演算子が3つ以上連続する箇所があるかを判断する(ステップS1607)。その箇所がない場合には(ステップS1607:No)、ステップS1609に移行する。一方、同一演算子が3つ以上連続する箇所がある場合には(ステップS1607:Yes)、その箇所に記載された計算式が意味する文章に変換する(ステップS1608)。
つぎに、右辺に対して左辺についておこなった処理と同様の処理をおこなう。ソースコード510に記載されている計算式の右辺に演算子が含まれているかを判断する(ステップS1609)。右辺に演算子が含まれていない場合には(ステップS1609:No)、ステップS1613に移行する。一方、演算子が含まれている場合には(ステップS1609:Yes)、右辺を解析する(ステップS1610)。
そして、ステップS1610で右辺を解析した結果に基づいて、同一演算子が3つ以上連続する箇所があるかを判断する(ステップS1611)。その箇所がない場合には(ステップS1611:No)、ステップS1613に移行する。一方、同一演算子が3つ以上連続する箇所がある場合には(ステップS1611:Yes)、その箇所に記載された計算式が意味する文章に変換する(ステップS1612)。
そして、抽出した要素名、上述した各ステップで処理されずに残っている演算子などをその要素名あるいは演算しなどが意味する名称、文章に変換し(ステップS1613)、変換された説明文を出力する(ステップS1614)。これにより、一連の処理を終了する。
以上説明したように実施の形態1によれば、ソースコードの中に記述された計算式の中の変数、演算子を所定の言語に変換することができる。そのため、ソースコードの内容を簡単かつ容易に理解することができる。
(実施の形態2)
つぎに、この発明の実施の形態2にかかるソースコード解析装置について説明する。実施の形態1ではソースコードに記述された計算式の変数、演算子を所定の言語に記述するものであったが、実施の形態2では、計算式を説明する文字列を変数、演算子に変換して計算式を編集することができる。なお、この発明の実施の形態2にかかるソースコード解析装置のハードウェア構成は実施の形態1と同一であるため、その説明を省略する。
(ソースコード解析装置の機能的構成)
まず、この発明の実施の形態2にかかるソースコード解析装置の機能的構成について説明する。図17は、この発明の実施の形態2にかかるソースコード解析装置の機能的構成を示すブロック図である。図17において、ソースコード解析装置1700は、入力部1701と、抽出部1702と、変換部1703と、を備えている。また、抽出部1702は、テーブル1704を参照する。
入力部1701は、ソースコードで定義される任意の変数を所定の言語であらわした文字列を含む計算式の入力を受け付ける。具体的には、たとえば、「売上高−売上原価=売上総利益」のように単語と演算子を、また、「売上高引く売上原価は、売上総利益に等しい」のように演算子の部分をその演算子が意味する用語に置き換えた文章を入力してもよい。この入力部1701は、具体的には、たとえば、図1に示したキーボード110、マウス111などによりその機能を実現する。
抽出部1702は、入力部1701によって入力された計算式の中から、文字列を抽出する。具体的には、図4で示したタクソノミを定義したテーブルを参照して、名称(ラベル名)と同一の単語を抽出する。たとえば、「売上高−売上原価=売上総利益」という文字列が入力された場合には、図4に示すテーブルを参照して「売上高」、「売上原価」、「売上総利益」という単語を抽出する。
また、抽出部1702は、計算式の中から、その計算式の演算子を所定の言語であらわした演算子に関する文字列を抽出する。入力された文字列に演算子が含まれていない場合には、図10に示すテーブル1000を参照して、その演算子に対応する単語を抽出する。具体的には、たとえば、「売上高引く売上原価は、売り上げ総利益に等しい」が入力された場合には、まず、図4のテーブルを参照して「売上高」、「売上原価」、「売上総利益」が抽出される。
さらに、図10のテーブル1000を参照して、「引く」、「は、に等しい」が抽出される。この抽出部1702は、具体的には、たとえば、図1に示したROM102、RAM103、HD105、FD107などの記録媒体に記録されているプログラムを、CPU101に実行させることによってその機能を実現する。
変換部1703は、抽出部1702によって抽出された文字列を、その文字列が意味する要素名に変換する。具体的には、抽出部1702よって抽出された文字列を図4に示すテーブルを参照して変換する。たとえば、抽出部1702によって抽出された名称(ラベル名)「売上高」は、図4を参照して、「売上高」が意味している要素名「Sales」に変換される。
また、変換部1703は、さらに、抽出部1702によって抽出された演算子に関する文字列を、その文字列が意味する演算子に変換する。具体的には、たとえば、「引く」、「は、に等しい」のような演算子に対応する単文字列が抽出された場合には、図10に示すテーブル1000を参照して「引く」は演算子「−」に、「は、に等しい」は演算子「=」に変換される。この変換部1703は、ROM102、RAM103、HD105、FD107などの記録媒体に記録されているプログラムを、CPU101に実行させることによってその機能を実現する。
(ソースコード解析処理手順)
つぎに、この発明の実施の形態2にかかるソースコード解析処理手順について説明する。図18は、この発明の実施の形態2にかかるソースコード解析処理手順を示すフローチャートである。
図18において、まず、計算式に関する文字列の入力を受け付ける(ステップS1801)。そして、入力された文字列の中にテーブル1704に記述されている文字列を含むかを判断する(ステップS1802)。テーブル1704に記述されている文字列を含まない場合には(ステップS1802:No)、変換する対象がないとして、一連の処理を終了する。一方、テーブル1704に記述されている文字列を含む場合には(ステップS1802:Yes)、入力された計算式の中から、文字列を抽出する(ステップS1803)。
そして、計算式の中に演算子を含んでいるかを判断する(ステップS1804)。計算式の中に文字列を含んでいる場合には(ステップS1804:Yes)、ステップS1806に移行する。一方演算子を含んでいない場合には(ステップS1804:No)、文字列から演算子を所定の言語で記述した文字列を抽出する(ステップS1805)。そして、抽出した文字列をその文字列が意味する要素名、演算子に変換する(ステップS1806)。これにより、一連の処理を終了する。
以上説明したように実施の形態2によれば、計算式を説明する文字列を変数、演算子に変換して計算式を編集することができる。そのため、計算式に変更が生じた場合でも、所定の言語を用いて変更をおこなうことができる。
以上説明したように、ソースコード解析プログラムによれば、ソースコードに記述された計算式を所定の言語に変換することができる。そのため、複雑な計算式であっても理解しやすい表現にすることができる。
また、実施の形態1および2では、各名称(ラベル名)は日本語により定義されている例を用いて説明をしたが、定義される言語は日本語に限らず、英語、フランス語その他言語で記述しておくことも有用である。上述したソースコード中の要素名は、英語に基づいて、たとえば、英単語そのままか、あるいは用語の省略形によって記述されているため、実際の英単語と、要素名は異なる場合がある。
具体的には、ラベル名が長いために同じような意味を持つ短い文字列で表現されている場合がある。たとえば、ラベル名が「Increase in Accrued Interest Income」は、ソースコード中では要素名「ChangeInterestReceivable」と記述される。このように要素名をそのまま計算式に用いた場合には、同じ英語で記述されていても容易に理解できない場合も生じる。そのため、ラベル名を英語で記述しておく場合にも有用である。
なお、本実施の形態で説明したソースコード解析方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
(付記1)ソースコードに記述されている計算式から当該計算式を構成する変数を検出させる検出工程と、
前記検出工程によって検出された変数を定義する要素名を前記ソースコードの中から抽出させる要素名抽出工程と、
前記要素名抽出工程によって抽出された要素名を、所定の言語において当該要素名が意味する名称に変換させる変換工程と、
前記変換工程によって変換された名称を出力させる出力工程と、
をコンピュータに実行させることを特徴とするソースコード解析プログラム。
(付記2)さらに、前記要素名抽出工程によって抽出された要素名に関するコンテキストを前記ソースコードの中から抽出させるコンテキスト抽出工程をコンピュータに実行させ、
前記変換工程は、
さらに、前記コンテキスト抽出工程によって抽出されたコンテキストを、前記所定の言語において当該コンテキストが意味する名称に変換させることをコンピュータに実行させることを特徴とする付記1に記載のソースコード解析プログラム。
(付記3)前記要素名抽出工程によって抽出された要素名に関するコンテキストが前記ソースコードに記述されているか否かを判断させる判断工程をコンピュータに実行させ、
前記コンテキスト抽出工程は、
前記判断工程によって判断された判断結果に基づいて、前記要素名抽出工程によって抽出された要素名に関するコンテキストを前記ソースコードの中から抽出させることをコンピュータに実行させることを特徴とする付記1または2に記載のソースコード解析プログラム。
(付記4)前記出力工程は、
前記変換工程によって変換された名称を、当該名称の変換元となる要素名に定義されている変数と関連付けて出力させることをコンピュータに実行させることを特徴とする付記1〜3のいずれか一つに記載のソースコード解析プログラム。
(付記5)前記計算式を構成する変数を、当該変数を定義している要素名から前記変換工程によって変換された名称に置換させる置換工程をコンピュータに実行させ、
前記出力工程は、
前記置換工程によって名称に置換された計算式を出力させることをコンピュータに実行させることを特徴とする付記1〜4のいずれか一つに記載のソースコード解析プログラム。
(付記6)前記検出工程は、
さらに、前記計算式を構成する演算子を検出させ、
前記変換工程は、
さらに、前記検出工程によって検出された演算子を、前記所定の言語において当該演算子が意味する用語に変換させることをコンピュータに実行させることを特徴とする付記1〜5のいずれか一つに記載のソースコード解析プログラム。
(付記7)前記検出工程は、
さらに、前記計算式から任意の2つの変数間の演算子がすべて同一となる箇所を検出させ、
前記変換工程は、
さらに、前記検出工程によって検出された箇所を、前記所定の言語において当該箇所が意味する文章に変換させることをコンピュータに実行させることを特徴とする付記1〜6のいずれか一つに記載のソースコード解析プログラム。
(付記8)ソースコードで定義される任意の変数を所定の言語であらわした文字列を含む計算式の入力を受け付けさせる入力工程と、
前記入力工程によって入力された計算式の中から、前記文字列を抽出させる抽出工程と、
前記抽出工程によって抽出された文字列を、当該文字列が意味する要素名に変換させる変換工程と、
をコンピュータに実行させることを特徴とするソースコード解析プログラム。
(付記9)前記抽出工程は、
前記計算式の中から、前記計算式の演算子を所定の言語であらわした前記演算子に関する文字列を抽出させ、
前記変換工程は、
前記抽出工程によって抽出された前記演算子に関する文字列を、当該文字列が意味する演算子に変換させることをコンピュータに実行させることを特徴とする付記8に記載のソースコード解析プログラム。
(付記10)付記1から付記9に記載のソースコード解析プログラムのいずれか一つを記録したコンピュータに読み取り可能な記録媒体。
(付記11)ソースコードに記述されている計算式から当該計算式を構成する変数を検出する検出手段と、
前記検出手段によって検出された変数を定義する要素名を前記ソースコードの中から抽出する要素名抽出手段と、
前記要素名抽出手段によって抽出された要素名を、所定の言語において当該要素名が意味する名称に変換する変換手段と、
前記変換手段によって変換された名称を出力する出力手段と、
を備えることを特徴とするソースコード解析装置。
(付記12)ソースコードで定義される任意の変数を所定の言語であらわした文字列を含む計算式の入力を受け付ける入力手段と、
前記入力手段によって入力された計算式の中から、前記文字列を抽出する抽出手段と、
前記抽出手段によって抽出された文字列を、当該文字列が意味する要素名に変換する変換手段と、
を備えることを特徴とするソースコード解析装置。
(付記13)ソースコードに記述されている計算式から当該計算式を構成する変数を検出する検出工程と、
前記検出工程によって検出された変数を定義する要素名を前記ソースコードの中から抽出する要素名抽出工程と、
前記要素名抽出工程によって抽出された要素名を、所定の言語において当該要素名が意味する名称に変換する変換工程と、
前記変換工程によって変換された名称を出力する出力工程と、
を含んだことを特徴とするソースコード解析方法。
(付記14)ソースコードで定義される任意の変数を所定の言語であらわした文字列を含む計算式の入力を受け付ける入力工程と、
前記入力工程によって入力された計算式の中から、前記文字列を抽出する抽出工程と、
前記抽出工程によって抽出された文字列を、当該文字列が意味する要素名に変換する変換工程と、
を含んだことを特徴とするソースコード解析方法。
以上のように、本発明にかかるソースコード解析プログラムは、ソースコードの解析に有用であり、特に、財務情報に関する、XBRLで記述された財務情報に適している。
この発明の実施の形態(1および2)にかかるソースコード解析装置のハードウェア構成を示すブロック図である。 この発明の実施の形態1にかかるソースコード解析装置が解析するソースコードの一例を示す説明図である。 この発明の実施の形態1にかかるソースコード解析装置が解析するコンテキストを含むソースコードを示す説明図である。 この発明の実施の形態1にかかる、財務情報に含まれる科目を定義したタクソノミを示す説明図である。 この発明の実施の形態1にかかるソースコード解析装置の機能的構成を示すブロック図である。 図2に示したソースコードから変数および演算子を検出した検出結果を示す説明図である。 図3に示したソースコードから変数および演算子を検出した検出結果を示す説明図である。 要素名抽出部による抽出結果を示す説明図である。 コンテキストを含むソースコードの中から要素名およびコンテキストを抽出した結果を示す説明図である。 計算式と生成される文章の関係を示す説明図である。 等号の変換方法の一例を示す説明図である。 任意の2つの変数間の演算子がすべて同一の箇所を計算式が意味する文章に変換する方法の一例を示す説明図(その1)である。 任意の2つの変数間の演算子がすべて同一の箇所を計算式が意味する文章に変換する方法の一例を示す説明図(その2)である。 計算式に変更が生じた場合にソースコードを変更する例を示す説明図である。 この発明の実施の形態1にかかるソースコード解析処理手順(その1)を示すフローチャートである。 この発明の実施の形態1にかかるソースコード解析処理手順(その2)を示すフローチャートである。 この発明の実施の形態2にかかるソースコード解析装置の機能的構成を示すブロック図である。 この発明の実施の形態2にかかるソースコード解析処理手順を示すフローチャートである。
符号の説明
500 ソースコード解析装置
501 検出部
502 抽出部
503 判断部
504 変換部
505 置換部
506 出力部
510 ソースコード
511 テーブル
521 要素名抽出部
522 コンテキスト抽出部

Claims (1)

  1. ソースコードを記述する所定の記述言語の仕様に基づいて記述される要素名と、所定の自然言語で記述されるラベル名と、を関連付けて記憶する記憶部にアクセス可能なコンピュータに、
    前記ソースコードに含まれる計算式から検出された変数を、前記ソースコードに含まれる計算式から抽出された前記変数を定義する要素名を用いて、抽出された前記要素名に関連付けて前記記憶部に記憶されたラベル名に変換させ
    変換後の計算式に含まれるラベル名が異なるラベル名に変更される場合、変更後の計算式に含まれるラベル名を前記ラベル名と関連付けて前記記憶部に記憶された要素名に変換させ、当該変換後の計算式を出力させる、
    ことを特徴とする変換プログラム。
JP2005068137A 2005-03-10 2005-03-10 変換プログラム Expired - Fee Related JP4972866B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005068137A JP4972866B2 (ja) 2005-03-10 2005-03-10 変換プログラム
US11/167,766 US8332814B2 (en) 2005-03-10 2005-06-27 Method and apparatus for converting formula included in a computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005068137A JP4972866B2 (ja) 2005-03-10 2005-03-10 変換プログラム

Publications (2)

Publication Number Publication Date
JP2006252201A JP2006252201A (ja) 2006-09-21
JP4972866B2 true JP4972866B2 (ja) 2012-07-11

Family

ID=36972499

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005068137A Expired - Fee Related JP4972866B2 (ja) 2005-03-10 2005-03-10 変換プログラム

Country Status (2)

Country Link
US (1) US8332814B2 (ja)
JP (1) JP4972866B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2876474B1 (fr) * 2004-10-12 2006-12-29 Progilys Sarl Dispositif de traitement de donnees a definition formelle
US20070074112A1 (en) * 2005-09-23 2007-03-29 Business Objects Apparatus and method for consolidating reporting formulas
JP5499803B2 (ja) * 2010-03-18 2014-05-21 富士通株式会社 影響検出装置、影響検出プログラム、及び影響検出方法
US8990183B2 (en) * 2012-06-06 2015-03-24 Microsoft Technology Licensing, Llc Deep application crawling
US8849843B1 (en) * 2012-06-18 2014-09-30 Ez-XBRL Solutions, Inc. System and method for facilitating associating semantic labels with content
US9135327B1 (en) 2012-08-30 2015-09-15 Ez-XBRL Solutions, Inc. System and method to facilitate the association of structured content in a structured document with unstructured content in an unstructured document
JP6394516B2 (ja) * 2015-07-01 2018-09-26 株式会社安川電機 開発支援プログラム、記録媒体、開発支援方法、及び開発支援装置
CN105224514A (zh) * 2015-09-24 2016-01-06 四川长虹电器股份有限公司 基于Flex扩展XBRL分类标准的方法
US10127205B2 (en) * 2016-05-25 2018-11-13 Workiva Inc. Methods and computing device for generating markup language to represent a calculation relationship
JP6993573B2 (ja) * 2018-02-06 2022-01-13 富士通株式会社 プログラム解析方法、プログラム解析装置およびプログラム解析プログラム
US11010143B2 (en) * 2018-09-28 2021-05-18 Salesforce.Com, Inc. Executing formulas written using formula language
US11003427B2 (en) 2018-09-28 2021-05-11 Salesforce.Com, Inc. Interface for generating and testing formulas using a formula language

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1063492A (ja) * 1996-08-23 1998-03-06 Kawasaki Steel Corp ソフトウェアの仕様書生成装置
US6353839B1 (en) * 1998-04-30 2002-03-05 Openwave Systems Inc. Method for inline variables management in a hypermedia display language
JP3933892B2 (ja) 2000-09-19 2007-06-20 富士通株式会社 仕様書作成プログラム及び仕様書作成プログラムを格納したコンピュータ可読媒体
JP2002366354A (ja) 2001-06-05 2002-12-20 Fujitsu Ltd プログラム仕様書作成装置及びプログラム仕様書作成方法並びにプログラム仕様書作成プログラム
US20020188638A1 (en) * 2001-06-08 2002-12-12 Walter Hamscher Document negotiation
US6947947B2 (en) * 2001-08-17 2005-09-20 Universal Business Matrix Llc Method for adding metadata to data
US7155670B2 (en) * 2002-01-18 2006-12-26 Internet Disclosure Co., Ltd. Document authoring system and authoring management program
US20050144166A1 (en) * 2003-11-26 2005-06-30 Frederic Chapus Method for assisting in automated conversion of data and associated metadata
US20050183002A1 (en) * 2002-03-04 2005-08-18 Frederic Chapus Data and metadata linking form mechanism and method
JP2003316765A (ja) * 2002-04-23 2003-11-07 Hitachi Ltd 階層化文書マッピング装置
US7174507B2 (en) * 2003-02-10 2007-02-06 Kaidara S.A. System method and computer program product for obtaining structured data from text
US7543224B2 (en) * 2003-05-21 2009-06-02 International Business Machines Corporation Architecture for managing research information
US7870046B2 (en) * 2004-03-04 2011-01-11 Cae Solutions Corporation System, apparatus and method for standardized financial reporting
US7519962B2 (en) * 2004-10-07 2009-04-14 Thomson Financial Llc Command script parsing using local and extended storage for command lookup
US7472346B2 (en) * 2005-04-08 2008-12-30 International Business Machines Corporation Multidimensional XBRL engine
US20060242624A1 (en) * 2005-04-22 2006-10-26 Business Objects Apparatus and method for constructing a semantic layer based on XBRL data
US8230332B2 (en) * 2006-08-30 2012-07-24 Compsci Resources, Llc Interactive user interface for converting unstructured documents

Also Published As

Publication number Publication date
US8332814B2 (en) 2012-12-11
US20060206878A1 (en) 2006-09-14
JP2006252201A (ja) 2006-09-21

Similar Documents

Publication Publication Date Title
JP4972866B2 (ja) 変換プログラム
US11263390B2 (en) Systems and methods for informational document review, display and validation
CN101263490B (zh) 用于提供直接样式表编辑的方法和系统
Tanner et al. Measuring mass text digitization quality and usefulness
US7720809B2 (en) Application integration using XML
US20110295864A1 (en) Iterative fact-extraction
CN102257487A (zh) 分析事件
US20110154288A1 (en) Automation Support For Domain Modeling
WO2013002938A2 (en) Method and apparatus for displaying component documents of a composite document
US20060156264A1 (en) Method and apparatus for supporting verification of system, and computer product
JP5576570B2 (ja) 業務仕様からワークフローを生成する方法、プログラム及びシステム
JP2001216311A (ja) イベント分析装置、及びイベント分析プログラムが格納されたプログラム装置
US9146913B2 (en) Specifications automation system and method
JPH11265368A (ja) 作業手順管理システム
JP4012047B2 (ja) 電子文書作成装置、電子文書作成方法およびその方法をコンピュータに実行させるプログラム
WO2021018016A1 (zh) 一种专利信息展示方法、装置、设备及存储介质
JP6388756B2 (ja) 電子マニュアル出力システム及び電子マニュアル出力方法並びに電子マニュアル出力プログラム
JP2000076226A (ja) 文書データの編集システム
JP2002366354A (ja) プログラム仕様書作成装置及びプログラム仕様書作成方法並びにプログラム仕様書作成プログラム
JP2005258825A (ja) Faq情報管理装置、faq情報管理方法、およびfaq情報管理プログラム
Javed et al. Palmyra: A platform independent dependency annotation tool for morphologically rich languages
JP2012118822A (ja) ドキュメント作成支援方法とドキュメント作成支援装置とドキュメント作成支援プログラム
Setiyanto et al. Data science with excel
JP4119413B2 (ja) 知識情報収集システム、知識検索システム及び知識情報収集方法
JP4805491B2 (ja) 辞書管理プログラム及びコンピュータシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110719

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110816

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111017

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120208

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120215

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120313

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120326

R150 Certificate of patent or registration of utility model

Ref document number: 4972866

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150420

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees