IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7163966変換方法、変換装置および変換プログラム
<>
  • 特許-変換方法、変換装置および変換プログラム 図1
  • 特許-変換方法、変換装置および変換プログラム 図2
  • 特許-変換方法、変換装置および変換プログラム 図3
  • 特許-変換方法、変換装置および変換プログラム 図4
  • 特許-変換方法、変換装置および変換プログラム 図5
  • 特許-変換方法、変換装置および変換プログラム 図6
  • 特許-変換方法、変換装置および変換プログラム 図7
  • 特許-変換方法、変換装置および変換プログラム 図8
  • 特許-変換方法、変換装置および変換プログラム 図9
  • 特許-変換方法、変換装置および変換プログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-24
(45)【発行日】2022-11-01
(54)【発明の名称】変換方法、変換装置および変換プログラム
(51)【国際特許分類】
   G06F 40/157 20200101AFI20221025BHJP
   G06F 16/84 20190101ALI20221025BHJP
【FI】
G06F40/157
G06F16/84
【請求項の数】 5
(21)【出願番号】P 2020549915
(86)(22)【出願日】2018-10-11
(86)【国際出願番号】 JP2018038004
(87)【国際公開番号】W WO2020075282
(87)【国際公開日】2020-04-16
【審査請求日】2021-04-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】村本 貴英
【審査官】成瀬 博之
(56)【参考文献】
【文献】特開2005-352774(JP,A)
【文献】米国特許出願公開第2014/0013204(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00-40/197
G06F 16/00-16/958
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
ファイルに含まれる複数のデータの形式を変換する変換方法において、
前記ファイルに含まれる複数のデータをそれぞれ読み出したタイミングで、形式変換前のデータに該データの識別情報が対応付けられている場合、形式変換後のデータに該識別情報をそのまま対応付け、該識別情報が対応付けられていない場合、予め定められた生成規則に基づき生成された新たな識別情報を前記形式変換後のデータに対応付けるアルゴリズムを適用して、前記形式変換後のデータを前記他のファイルに追加し、前記形式変換後のデータに対応付けられた識別情報と、該データの前記他のファイル内の位置との関係を関係情報に追加し、
記関係情報を参照して、前記他のファイルに含まれる複数のデータの内何れかのデータに対応付けられた識別情報が前記他のファイル内の複数の位置に対応付けられているか否かを判定し、
前記何れかのデータに対応付けられた識別情報が前記他のファイル内の複数の位置に対応付けられている場合、前記他のファイルに含まれる複数のデータの内、前記複数の位置の何れかのデータに対応付けられた識別情報を前記生成規則に基づき変更する、
処理をコンピュータが実行することを特徴とする変換方法。
【請求項2】
前記変更する処理は、前記複数の位置に記述された複数のデータにそれぞれ対応付けられた識別情報の内、新たに生成された前記識別情報を変更する、
ことを特徴とする請求項1に記載の変換方法。
【請求項3】
前記ファイルはXBRL形式であり、前記他のファイルはJSON形式である、
ことを特徴とする請求項1に記載の変換方法。
【請求項4】
ファイルに含まれる複数のデータの形式を変換する変換装置において、
前記ファイルに含まれる複数のデータをそれぞれ読み出したタイミングで、形式変換前のデータに該データの識別情報が対応付けられている場合、形式変換後のデータに該識別情報をそのまま対応付け、該識別情報が対応付けられていない場合、予め定められた生成規則に基づき生成された新たな識別情報を前記形式変換後のデータに対応付けるアルゴリズムを適用して、前記形式変換後のデータを前記他のファイルに追加し、前記形式変換後のデータに対応付けられた識別情報と、該データの前記他のファイル内の位置との関係を関係情報に追加する生成部と、
記関係情報を参照して、前記他のファイルに含まれる複数のデータの内何れかのデータに対応付けられた識別情報が前記他のファイル内の複数の位置に対応付けられているか否かを判定する判定部と、
前記何れかのデータに対応付けられた識別情報が前記他のファイル内の複数の位置に対応付けられている場合、前記他のファイルに含まれる複数のデータの内、前記複数の位置の何れかのデータに対応付けられた識別情報を前記生成規則に基づき変更する変更部と、
を有することを特徴とする変換装置。
【請求項5】
ファイルに含まれる複数のデータの形式を変換する際に、前記ファイルに含まれる複数のデータをそれぞれ読み出したタイミングで、形式変換前のデータに該データの識別情報が対応付けられている場合、形式変換後のデータに該識別情報をそのまま対応付け、該識別情報が対応付けられていない場合、予め定められた生成規則に基づき生成された新たな識別情報を前記形式変換後のデータに対応付けるアルゴリズムを適用して、前記形式変換後のデータを前記他のファイルに追加し、前記形式変換後のデータに対応付けられた識別情報と、該データの前記他のファイル内の位置との関係を関係情報に追加し、
記関係情報を参照して、前記他のファイルに含まれる複数のデータの内何れかのデータに対応付けられた識別情報が前記他のファイル内の複数の位置に対応付けられているか否かを判定し、
前記何れかのデータに対応付けられた識別情報が前記他のファイル内の複数の位置に対応付けられている場合、前記他のファイルに含まれる複数のデータの内、前記複数の位置の何れかのデータに対応付けられた識別情報を前記生成規則に基づき変更する、
処理をコンピュータに実行させることを特徴とする変換プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、変換方法等に関する。
【背景技術】
【0002】
XBRL(eXtensible Business Reporting Language)による財務諸表を金融庁へ提出することが義務付けられている。XBRLとは、ビジネス報告の作成、流通および利用を容易にするためのデータ記述言語として、XML(eXtensible Markup Language)をベースに開発された言語である。
【0003】
XBRLのデータ形式の財務諸表のデータを他のデータ形式のデータに変換することが行われている。他のデータ形式には、例えば、JSON(JavaScript(登録商標) Object Notation)データ形式、XMLデータ形式やCSV(Comma-Separated Values)データ形式が挙げられる。
【0004】
XBRLからJSONへのデータ形式の変換の標準仕様では、JSON形式のデータのファクトは、必ずid(identifier)を持つことが義務付けられている。したがって、XBRL形式のデータのファクトにidが省略されていた場合には、新規のidが、JSON形式のデータのファクトに、idの生成規則に基づいて振られる。新規のidは、既存のidに重複しないように振られる。
【0005】
XBRLからJSONへのデータ形式の変換では、変換する情報処理装置は、XBRL形式のデータを全てモデルツリーとしてメモリ上に展開する。そして、情報処理装置は、メモリ上に展開したモデルツリーをルートから子孫へ順番に辿りながら、ファクトを検索し、ファクトを見つけたら、idの有無を判定する。そして、情報処理装置は、idが存在すれば、ファクトをJSON形式に変換する。一方、情報処理装置は、idが存在しなければ、新規のidを生成し、メモリ上に展開したモデルツリーをルートから子孫へ順番に辿りながら、新規のidの重複を判定する。そして、情報処理装置は、新規のidが重複していれば、新規のidを修正し、修正後の新規のidの重複を判定する。そして、情報処理装置は、新規のidが重複していなければ、ファクトをJSON形式に変換する。情報処理装置は、全てのファクトの変換が終わるまで、ファクトの検索から変換までの処理を繰り返す。
【先行技術文献】
【特許文献】
【0006】
【文献】国際公開第2011/089683号
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、従来のXBRLからJSONへのデータ形式の変換では、新規のidの重複チェックにメモリ容量を要するという問題がある。例えば、XBRLからJSONへのデータ形式の変換では、情報処理装置が、XBRL形式のデータを全てモデルツリーとしてメモリ上に展開し、ルートから順番にファクトを検索し、ファクトのidの重複チェックをして、ファクトをJSON形式に変換する。かかるidの重複チェックには、XBRL形式のデータサイズの約5倍弱のメモリ容量が必要となる。したがって、XBRLからJSONへのデータ形式の変換では、新規のidの重複チェックにメモリ容量を要してしまう。
【0008】
なお、上記課題は、XBRLからJSONへのデータ形式の変換の場合だけではなく、XBRLからXMLへのデータ形式の変換やXBRLからCSVへのデータ形式の変換等の電子データのフォーマット変換の場合等にも同様に生じる課題である。
【0009】
1つの側面では、本発明は、データの形式変換において、形式変換後のデータに対応付けられる識別情報の重複チェックに要するメモリ容量を抑制することを目的とする。
【課題を解決するための手段】
【0010】
一態様の、ファイルに含まれる複数のデータの形式を変換する変換方法において、形式変換前のデータに該データの識別情報が対応付けられている場合、形式変換後のデータに該識別情報を対応付け、該識別情報が対応付けられていない場合、前記形式変換後のデータに、新たに生成した識別情報を対応付けるアルゴリズムを、前記ファイルに含まれる複数のデータに適用して、前記複数のデータに対応した形式変換後の複数のデータを含む他のファイルを生成し、前記他のファイルに含まれる複数のデータそれぞれに対応付けられた識別情報と、該複数のデータそれぞれの前記他のファイル内の位置との関係情報を参照して、何れかの識別情報が前記他のファイル内の複数の位置に対応付けられているか否かを判定し、前記何れかの識別情報が前記他のファイル内の複数の位置に対応付けられている場合、前記他のファイルに含まれる複数のデータの内、前記複数の位置の何れかのデータに対応付けられた識別情報を変更する、処理をコンピュータが実行する。
【発明の効果】
【0011】
一つの態様によれば、形式変換後のデータに対応付けられる識別情報の重複チェックに要するメモリ容量を抑制することができる。
【図面の簡単な説明】
【0012】
図1図1は、実施例に係る変換装置の構成を示す機能ブロック図である。
図2図2は、変換前ファイルの一例を示す図である。
図3図3は、変換後ファイルの一例を示す図である。
図4図4は、実施例に係る変換情報リストのデータ構造の一例を示す図である。
図5図5は、実施例に係る形式変換処理の流れの一例を示す図である。
図6図6は、実施例に係るid重複判定処理およびid変換処理の流れの一例を示す図である。
図7図7は、実施例に係る形式変換処理のフローチャートの一例を示す図である。
図8図8は、実施例に係るid重複判定処理およびid変更処理のフローチャートの一例を示す図である。
図9図9は、実施例に係る変換処理の効果を説明する図である。
図10図10は、変換プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【0013】
以下に、本願の開示する変換方法、変換装置および変換プログラムの実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
【実施例
【0014】
[実施例に係る変換装置の構成]
図1は、実施例に係る変換装置の構成を示す機能ブロック図である。図1に示すように、変換装置1は、XBRL形式データのファイルに含まれる複数のデータの形式を変換する。例えば、変換装置1は、XBRL形式データのファイルに含まれる各データを形式変換し、変換後の各データにデータのid(identifier)を対応付けた他のファイルを生成する。変換後のデータのidは、XBRL形式データに対応付けられている場合には、このidを変換後のデータに対応付ける。変換後のデータのidは、XBRL形式データに対応付けられていない場合には、新たに生成したidを変換後のデータに対応付ける。そして、変換装置1は、他のファイルに含まれる複数のデータそれぞれに対応付けられたidと、該複数のデータそれぞれの他のファイル内の位置との関係情報を参照し、他のファイルに含まれる複数のデータのidを重複判定する。変換装置1は、idが重複している場合には、重複しているidを変更する。XBRL形式データのファイルは、例えば、財務諸表のファイルを示す。他のファイルは、例えば、JSON形式データのファイル、XML形式データのファイルやCSV形式データのファイルを含む。なお、以降では、財務諸表のXBRL形式データのファイルを、他のファイルとしてのJSON形式データのファイルに変換する場合を一例として説明する。
【0015】
変換装置1は、制御部10と、記憶部20とを有する。
【0016】
制御部10は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。そして、制御部10は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路に対応する。さらに、制御部10は、形式変換部11と、id重複判定部12と、id変更部13とを有する。なお、形式変換部11は、生成部の一例である。id重複判定部12は、判定部の一例である。id変更部13は、変更部の一例である。
【0017】
記憶部20は、例えばフラッシュメモリ(Flash Memory)やFRAM(登録商標)(Ferroelectric Random Access Memory)等の不揮発性の半導体メモリ素子等の記憶装置に対応する。そして、記憶部20は、変換前ファイル21と、変換後ファイル22と、変換情報リスト23とを有する。
【0018】
変換前ファイル21は、財務諸表のファイルであり、実施例では、XBRL形式データのファイルである。ここで、変換前ファイル21の一例を、図2を参照して説明する。図2は、変換前ファイルの一例である。図2に示すように、変換前ファイル21は、XBRLフォーマットで記述されているファイルである。変換前ファイル21には、複数のデータが記述されている。かかるデータは、「ファクト」と同義である。ファクトは、変換前ファイル21から読み込んだり後述する変換後ファイル22に書き込んだりするデータの単位である。
【0019】
一例として、符号F1で示されるファクトには、要素名として「e1」、要素の値として「test1」が記述されている。このファクトには、idが存在し、idとして“i1”が記述されている。符号F2で示されるファクトには、要素名として「e2」、要素の値として「test2」が記述されている。このファクトには、idが省略されている。
【0020】
図1に戻って、変換後ファイル22は、変換前ファイル21の形式(フォーマット)を変換した後のファイルであり、実施例では、JSON形式データのファイルである。XBRL形式からJSON形式への変換の標準仕様では、JSON形式のファクトは、必ずidを持つことが義務付けられている。したがって、XBRL形式のファクトにidが省略されている場合には、JSON形式のファクトに、新規のidが、生成規則に基づいて生成される。JSON形式のファクトのidは、JSON形式のファクトに対応するXBRL形式のファクトをトレースするために使用される。言い換えれば、JSON形式のファクトのidは、JSON形式データのファイルに、ファクトの欠損がないか、正しく変換されているか等をチェックするために使用される。
【0021】
ここでいうidの生成規則は、以下の<1>および<2>のように、定義されている。<1>新規のidは、「fnn_mm」とする。“f”は、接頭辞である。nnは、ファクトの通し番号であり、mmは、ファクトの通し番号が重複する場合に用いられる補助の通し番号である。<2>新規のidは、既存のidに重複しない。既存のidとは、変換前ファイル21に既に記述されているidのことをいう。なお、変換後ファイル22は、例えば、形式変換部11によって生成される。
【0022】
ここで、変換後ファイル22の一例を、図3を参照して説明する。図3は、変換後ファイルの一例である。図3に示すように、変換後ファイル22は、JSONフォーマットで記述されているファイルである。変換後ファイル22には、複数のファクトが記述されている。例えば、符号F1´で示されるファクトは、図2の符号F1で示したファクトに対応する。すなわち、符号F1´で示したファクトは、符号F1で示したXBRL形式のファクトをJSON形式に変換して得られたファクトである。idには、XBRL形式のファクトのidが反映されている。符号F2´で示されるファクトは、図2の符号F2で示したファクトに対応する。すなわち、符号F2´で示したファクトは、符号F2で示したXBRL形式のファクトをJSON形式に変換して得られたファクトである。idには、新規のidが生成されている。
【0023】
図1に戻って、変換情報リスト23は、変換後ファイル22に含まれる複数のデータそれぞれに対応付けられたidと、該複数のデータそれぞれの変換後ファイル22内の位置との関係情報である。なお、変換情報リスト23は、例えば、形式変換部11によって生成される。
【0024】
ここで、変換情報リスト23のデータ構造の一例を、図4を参照して説明する。図4は、実施例に係る変換情報リストのデータ構造の一例を示す図である。図4に示すように、変換情報リスト23は、id23a、オフセット23bおよびフラグ23cを対応付けたリストである。id23aは、変換後ファイル22内のデータごとに対応付けられた識別情報である。オフセット23bは、変換後ファイル22の先頭からidまでの相対位置を示す。オフセット23bは、変換後ファイル22の先頭からidまでの相対位置を示すと説明したが、これに限定されず、変換後ファイル22の先頭以外の特定の位置からidまでの相対位置であっても良い。オフセット23bは、変換後ファイル22内のidの位置を見つけるために用いられる。フラグ23cは、id23aが変換前ファイル21に記述された既存のidであるか、id23aが変換前ファイル21に存在しておらず、新規に生成されたidであるかを識別するフラグである。既存のidである場合には、フラグ23cに、例えば「0」が設定される。新規に生成されたidである場合には、フラグ23cに、例えば「1」が設定される。
【0025】
一例として、id23aが「i1」である場合には、オフセット23bとして「10」、フラグ23cとして「0」が設定されている。id23aが「f2」である場合には、オフセット23bとして「20」、フラグ23cとして「1」が設定されている。
【0026】
図1に戻って、形式変換部11は、変換前ファイル21のデータを形式変換して変換後ファイル22を生成する。例えば、形式変換部11は、変換前ファイル21からデータ(ファクト)を取得する。形式変換部11は、取得したデータに該データのidが対応付けられている場合、形式変換後のデータに該idを対応付ける。形式変換部11は、取得したデータに該データのidが対応付けられていない場合、新規のidを生成し、形式変換後のデータに、新規に生成したidを対応付ける。新規のidは、前述したidの生成規則<1>に基づいて生成される。すなわち、形式変換部11は、直前のデータのidに割り振られている通し番号の次の通し番号を含む「fnn」(“f”は接頭辞,“nn”はファクトの通し番号)を新規のidとして生成する。形式変換部11は、id付きのデータを変換後ファイル22に追加する。そして、形式変換部11は、idと、変換後ファイル22の先頭から形式変換後のデータのidまでのオフセットと、idに対応するフラグとを対応付けて変換情報リスト23に登録する。形式変換部11は、変換前ファイル21から次のデータを取得すると、取得したデータに対する形式変換処理を実行し、次のデータが取得できなくなるまで繰り返す。
【0027】
id重複判定部12は、変換情報リスト23を参照して、idの重複を判定する。例えば、id重複判定部12は、変換情報リスト23から新規のidとオフセットとを取得する。一例として、id重複判定部12は、変換情報リスト23の先頭から終端に向かって、フラグ23cが新規のidであることを示す「1」に対応するidおよびオフセットを取得する。id重複判定部12は、変換情報リスト23を参照して、取得した新規のidに重複する既存のidがあるか否かを判定する。また、id重複判定部12は、後述するid変更部13によって新規のidが変更された場合、さらに、変換情報リスト23を参照して、変更された新規のidに重複する既存のidがあるか否かを判定する。
【0028】
id変更部13は、idの重複がある場合には、当該idを重複しないidに変更する。例えば、id変更部13は、id重複判定部12によって新規のidに重複する既存のidがあると判定された場合には、新規のidを既存のidと重複しないidに変更する。idは、前述したidの生成規則<1>に基づいて変更される。すなわち、id変更部13は、新規のidに補助の通し番号「_mm」(mmは補助の通し番号)をつけて、新規のidを変更する。
【0029】
また、id変更部13は、変更したidを変換後ファイル22および変換情報リスト23に反映する。例えば、id変更部13は、id重複判定部12によって変更された新規のidに重複する既存のidがないと判定された場合には、変換後ファイル22内の、変換情報リスト23から取得されたオフセットの位置にある新規のidを、変更された新規のidに修正する。加えて、id変更部13は、変換情報リスト23について、取得した対象のidを、変更した新規のidに修正するとともに、取得した対象のid以降のidに対応付けられたオフセットを、変更された新規のidの文字数に合わせて修正する。一例として、新規のidが「f3」であった場合に、新規のidが「f3_1」に変更されると、id変更部13は、新規のid以降のid23aに対応付けられたオフセット23bを、つけ加えられた「_1」の2文字数分加算して得られる値に修正すれば良い。
【0030】
[形式変換処理の流れの一例]
図5は、実施例に係る形式変換処理の流れの一例を示す図である。なお、図5では、変換前ファイル21は、XBRLフォーマットのファイルであり、変換後ファイル22は、JSONフォーマットのファイルである。
【0031】
形式変換部11は、変換前ファイル21からファクトを取得し、取得したファクトにidが対応付けられているか否かを判定する。形式変換部11は、取得したファクトにidが対応付けられている場合には、形式変換後のファクトに該idを対応付ける。形式変換部11は、取得したファクトにidが対応付けられていない場合、新規のidを生成し、形式変換後のファクトに、生成した新規のidを対応付ける。そして、形式変換部11は、idと、変換後ファイル22の先頭からidまでのオフセットと、フラグとを対応付けて変換情報リスト23に登録する。
【0032】
ここでは、形式変換部11は、変換前ファイル21から、先頭の要素名が「e1」を示すファクトを読み込む。かかるファクトには、「id=“i1”」が記述されているので、idが対応付けられている。したがって、形式変換部11は、形式変換後のファクトにidとして“i1”を対応付ける。形式変換部11は、変換後ファイル22にid付きのファクトを書き込む(S100)。そして、形式変換部11は、変換情報リスト23に対して、id23aとして“i1”、オフセット23bとして「10」、フラグ23cとして「0」を対応付けて登録する(S105)。なお、オフセット23bの値は、一例である。
【0033】
次に、形式変換部11は、変換前ファイル21から、先頭の要素名が「e2」を示すファクトを読み込む。かかるファクトには、idが記述されていない。したがって、形式変換部11は、idの生成規則に従って新規のid“f2”を生成する。すなわち、形式変換部11は、直前のid“i1”に割り振られている通し番号「1」の次の通し番号「2」を含む「f2」を新規のidとして生成する。そして、形式変換部11は、形式変換後のファクトに、生成したid“f2”を対応付ける。形式変換部11は、変換後ファイル22にid付きのファクトを書き込む(S110)。そして、形式変換部11は、変換情報リスト23に対して、id23aとして“f2”、オフセット23bとして「20」、フラグ23cとして新規のidであることを示す「1」を対応付けて登録する(S115)。なお、オフセット23bの値は、一例である。
【0034】
次に、形式変換部11は、変換前ファイル21から、先頭の要素名が「e3」を示すファクトを読み込む。かかるファクトには、idが記述されていない。したがって、形式変換部11は、idの生成規則に従って新規のid“f3”を生成する。すなわち、形式変換部11は、直前のid“f2”に割り振られている通し番号「2」の次の通し番号「3」を含む「f3」を新規のidとして生成する。そして、形式変換部11は、形式変換後のファクトに、生成したid“f3”を対応付ける。形式変換部11は、変換後ファイル22にid付きのファクトを書き込む(S120)。そして、形式変換部11は、変換情報リスト23に対して、id23aとして“f3”、オフセット23bとして「35」、フラグ23cとして新規のidであることを示す「1」を対応付けて登録する(S125)。なお、オフセット23bの値は、一例である。
【0035】
次に、形式変換部11は、変換前ファイル21から、先頭の要素名が「e10」を示すファクトを読み込む。かかるファクトには、「id=“f3”」が記述されているので、idが対応付けられている。したがって、形式変換部11は、形式変換後のファクトにidとして“f3”を対応付ける。形式変換部11は、変換後ファイル22にid付きのファクトを書き込む(S130)。そして、形式変換部11は、変換情報リスト23に対して、id23aとして“f3”、オフセット23bとして「45」、フラグ23cとして「0」を対応付けて登録する(S135)。なお、オフセット23bの値は、一例である。
【0036】
次に、形式変換部11は、変換前ファイル21から、先頭の要素名が「e20」を示すファクトを読み込む。かかるファクトには、「id=“f3_1”」が記述されているので、idが対応付けられている。したがって、形式変換部11は、形式変換後のファクトにidとして“f3_1”を対応付ける。形式変換部11は、変換後ファイル22にid付きのファクトを書き込む(S140)。そして、形式変換部11は、変換情報リスト23に対して、id23aとして“f3_1”、オフセット23bとして「60」、フラグ23cとして「0」を対応付けて登録する(S145)。なお、オフセット23bの値は、一例である。
【0037】
[id重複判定処理およびid変更処理の流れの一例]
図6は、実施例に係るid重複判定処理およびid変更処理の流れの一例を示す図である。なお、図6では、図5で示した変換後ファイル22のid重複判定処理およびid変換処理について説明する。
【0038】
id重複判定部12は、変換情報リスト23の先頭から終端に向かって、フラグ23cが新規のidであることを示す「1」に対応するidおよびオフセットを取得する。id重複判定部12は、変換情報リスト23を参照して、取得した新規のidの重複を判定する。そして、id変更部13は、新規のidの重複がある場合には、当該idを重複しないidに変更する。そして、id変更部13は、変更したidを変換後ファイル22および変換情報リスト23に反映する。
【0039】
ここでは、id重複判定部12は、変換情報リスト23の先頭から終端に向かって、フラグ23cが「1」に対応する新規のid「f2」およびオフセット「20」を取得する。id重複判定部12は、変換情報リスト23を参照して、新規のid「f2」に重複する既存のidがあるか否かを判定する(S200)。変換情報リスト23には、新規のid「f2」に重複する既存のidが存在しない。
【0040】
次に、id重複判定部12は、変換情報リスト23の新規のid「f2」から終端に向かって、フラグ23cが「1」に対応する新規のid「f3」およびオフセット「35」を取得する。id重複判定部12は、変換情報リスト23を参照して、新規のid「f3」に重複する既存のidがあるか否かを判定する(S210)。変換情報リスト23には、新規のid「f3」に重複する既存のidが他のレコードに存在する。そこで、id変更部13は、新規のid「f3」の重複があるので、idの生成規則に従って新規のid“f3”を“f3_1”に変更する。すなわち、id変更部13は、新規のid“f3”に補助の通し番号「_1」をつけた“f3_1”にidを変更する。
【0041】
そして、id重複判定部12は、変換情報リスト23を参照して、変更された新規のid「f3_1」に重複する既存のidがあるか否かを判定する(S220)。変換情報リスト23には、変更された新規のid「f3_1」に重複する既存のidが他のレコードに存在する。そこで、id変更部13は、新規のid「f3_1」の重複があるので、idの生成規則に従って変更された新規のid“f3_1”を“f3_2”に変更する。すなわち、id変更部13は、新規のid“f3_1”に補助の通し番号「_2」を変えた“f3_2”にidを変更する。
【0042】
そして、id重複判定部12は、変換情報リスト23を参照して、変更された新規のid「f3_2」に重複する既存のidがあるか否かを判定する(S230)。変換情報リスト23には、変更された新規のid「f3_2」に重複する既存のidが他のレコードに存在しない。
【0043】
そして、id変更部13は、変換後ファイル22内の、変換情報リスト23から取得されたオフセット「35」の位置にある新規のid「f3」を、変更された新規のid「f3_2」に修正する(S240)。加えて、id変更部13は、変換情報リスト23について、id23aを、「f3」から「f3_2」に修正する(S250)。id23aが「f3」から「f3_2」に修正されたので、id変更部13は、新規のid「f3_2」以降のid23aに対応付けられたオフセット23bを、2文字数分加算して得られる値に修正する(S260)。id23aとしての「f3」に対応付けられたオフセット23bは、「45」から「47」に修正される。id23aとしての「f3_1」に対応付けられたオフセット23bは、「60」から「62」に修正される。そして、引き続き、id重複判定部12は、変更された新規のid「f3_2」以降の新規のidの重複判定を繰り返せば良い。
【0044】
これにより、変換装置1は、形式変換後のファクトに対応付けられるidの重複チェックに要するメモリ容量を抑制できる。すなわち、変換装置1は、メモリ上にXBRLフォーマットの全てのファクトを展開しないで、変換情報リスト23を利用してidの重複を判定することで、形式変換後のファクトに対応付けられるidの重複チェックに要するメモリ容量を抑制できる。
【0045】
なお、id重複判定部12は、変換情報リスト23の先頭から終端に向かってidの重複判定を行うと説明した。しかしながら、id重複判定部12は、これに限定されず、変換情報リスト23の終端から先頭に向かってidの重複判定を行っても良い。かかる場合には、id重複判定部12は、変換情報リスト23を参照して、新規のidに重複する既存のidがあるか否かを判定する。id変更部13は、idの重複がある場合には、当該idを重複しないidに変更し、変更したidを変換後ファイル22および変換情報リスト23に反映する。この際、id変更部13は、変換情報リスト23の、変更されるid以降のidに対応するオフセット23bを修正しなくても良い。これは、変更されるid以降のidは重複判定済みであり、オフセットが使用されないからである。これにより、id変更部13は、idを変更する場合であっても、オフセットを修正しないことで、id変更処理を高速に行うことができる。
【0046】
[形式変換処理のフローチャート]
ここで、形式変換部11が実施する形式変換処理のフローチャートの一例を、図7を参照して説明する。図7は、実施例に係る形式変換処理のフローチャートの一例を示す図である。なお、図7では、変換前ファイル21をXBRL形式データのファイルとし、変換後ファイル22をJSON形式データのファイルとする。まず、形式変換部11は、XBRL形式データのファイルからファクトを取得する(ステップS10)。
【0047】
形式変換部11は、ファクトがあるか否かを判定する(ステップS11)。ファクトがあると判定した場合には(ステップS11;Yes)、形式変換部11は、ファクトに該ファクトのidがあるか否かを判定する(ステップS12)。ファクトに該ファクトのidがあると判定した場合には(ステップS12;Yes)、形式変換部11は、ステップS14に移行する。
【0048】
一方、ファクトに該ファクトのidがないと判定した場合には(ステップS12;No)、形式変換部11は、idの生成規則に従って、新規のidを生成する(ステップS13)。すなわち、形式変換部11は、“f”に出現番号(通し番号)を付加した新規のidを生成する。通し番号は、直前のidに割り振られている通し番号の次の通し番号を示す。そして、形式変換部11は、ステップS14に移行する。ステップS14において、形式変換部11は、JSON形式データにid付きのファクトをJSON形式データのファイルにセットする(ステップS14)。
【0049】
そして、形式変換部11は、変換情報リスト23に、idとオフセットとフラグを登録する(ステップS15)。例えば、オフセットには、JSON形式データのファイルの先頭から対象のファクトのidまでの相対位置が設定される。フラグには、新規に生成されたidである場合には、新規に生成されたことを示すフラグ値(例えば「1」)が設定され、既存のidである場合には、既存であることを示すフラグ値(例えば「0」)が設定される。そして、形式変換部11は、次のファクトの処理をすべく、ステップS11に移行する。ステップS11において、ファクトがないと判定した場合には(ステップS11;No)、形式変換部11は、形式変換処理を終了する。
【0050】
[形式変換処理のフローチャート]
ここで、id重複判定部12が実施するid重複判定処理およびid変更部13が実施するid変更処理のフローチャートの一例を、図8を参照して説明する。図8は、実施例に係るid重複判定処理およびid変更処理のフローチャートの一例を示す図である。なお、図8では、変換前ファイル21をXBRL形式データのファイルとし、変換後ファイル22をJSON形式データのファイルとする。
【0051】
まず、id重複判定部12は、変換情報リスト23から新規のidとオフセットを取得する(ステップS20)。例えば、id重複判定部12は、変換情報リスト23の先頭から終端に向かって、フラグ23cが新規のidであることを示すフラグ値(例えば「1」)に対応するidおよびオフセットを取得する。
【0052】
id重複判定部12は、未処理の新規のidがあるか否かを判定する(ステップS21)。未処理の新規のidがあると判定した場合には(ステップS21;Yes)、id重複判定部12は、変換情報リスト23を参照して、新規のidに完全一致の既存idがあるか否かを判定する(ステップS22)。新規のidに完全一致の既存idがないと判定した場合には(ステップS22;No)、id重複判定部12は、次の新規のidを判定すべく、ステップS21に移行する。
【0053】
一方、新規のidに完全一致の既存idがあると判定した場合には(ステップS22;Yes)、id変更部13は、このidに対する補助の通し番号(初期値「1」)をカウントアップする(ステップS23)。そして、id変更部13は、idの生成規則に従って、新規のidに“_補助の通し番号”をつけて、新規のidを変更する(ステップS24)。
【0054】
さらに、id重複判定部12は、変換情報リスト23を参照して、変更された新規のidに完全一致の既存idがあるか否かを判定する(ステップS25)。変更された新規のidに完全一致の既存idがあると判定した場合には(ステップS25;Yes)、id重複判定部12は、id変更部13に新規のidを変更させるべく、ステップS23に移行する。
【0055】
一方、変更された新規のidに完全一致の既存idがないと判定した場合には(ステップS25;No)、id変更部13は、JSON形式データのファイルのファクトのidを修正する(ステップS26)。例えば、id変更部13は、JSON形式データのファイル内の、変換情報リスト23から取得されたオフセットの位置にあるidを、変更した新規のidに修正する。
【0056】
そして、id変更部13は、変換情報リスト23のidとオフセットを修正する(ステップS27)。例えば、id変更部13は、変換情報リスト23について、対象の新規のidを、変更した新規のidに修正するとともに、対象の新規のid以降のidに対応付けられたオフセットを、変更した新規のidの文字数に合わせて修正する。そして、id変更部13は、id重複判定部12に次の新規のidを判定させるべく、ステップS21に移行する。ステップS21において、未処理の新規のidがないと判定した場合には(ステップS21;No)、id重複判定部12は、id重複判定処理を終了する。
【0057】
[実施例の効果]
上記実施例によれば、変換装置1は、ファイルに含まれる複数のデータの形式を変換する。変換装置1は、変換前ファイル21のデータに該データの識別情報が対応付けられている場合、形式変換後のデータに該識別情報を対応付け、該識別情報が対応付けられていない場合、形式変換後のデータに、新たに生成した識別情報を対応付けるアルゴリズムを、変換前ファイル21に含まれる複数のデータに適用する。変換装置1は、適用した複数のデータに対応する形式変換後の複数のデータを含む他のファイル(変換後ファイル22)を生成する。変換装置1は、他のファイルに含まれる複数のデータそれぞれに対応付けられた識別情報と、該複数のデータそれぞれの他のファイル内の位置との関係情報(変換情報リスト23)を参照して、何れかの識別情報が他のファイル内の複数の位置に対応付けられているか否かを判定する。そして、変換装置1は、何れかの識別情報が他のファイル内の複数の位置に対応付けられている場合、他のファイルに含まれる複数のデータの内、複数の位置の何れかのデータに対応付けられた識別情報を変更する。かかる構成によれば、変換装置1は、形式変換後のデータに対応付けられる識別情報の重複チェックに要するメモリ容量を抑制できる。
【0058】
ここで、変換装置1が実施する変換処理の効果を、図9を参照して説明する。図9は、実施例に係る変換処理の効果を説明する図である。図9に示すように、変換装置1は、変換前ファイル21のデータに該データの識別情報(id)が対応付けられている場合、形式変換後のデータに該idを対応付け、該idが対応付けられていない場合、形式変換後のデータに、新たに生成したidを対応付ける。変換装置は、かかるアルゴリズムを変換前ファイル21に含まれる複数のデータに適用して、複数のデータに対応した形式変換後の複数のデータを含む変換後ファイル22を生成する(S300)。そして、変換装置1は、変換後ファイル22に含まれる複数のデータそれぞれに対応付けられたidと、該複数のデータそれぞれの変換後ファイル22内の位置(オフセット)との関係情報(変換情報リスト23)を参照して、何れかのidが変換後ファイル22内の複数のオフセットに対応付けられているか否かを判定する(S310)。そして、変換装置1は、何れかのidが変換後ファイル22内の複数のオフセットに対応付けられている場合、変換後ファイル22に含まれる複数のデータの内、複数のオフセットの何れかのデータに対応付けられたidを変更する(S320)。
【0059】
すなわち、変換装置1は、変換前ファイル21から変換後ファイル22を生成してから、変換情報リスト23を参照して、変換後ファイル22内のidの重複チェックを行い、重複している場合に変換後ファイル22内の重複しているidを更新する。これにより、変換装置1は、メモリ上に変換前ファイル21の全てのデータを展開しないで、変換情報リスト23を利用してidの重複を判定することで、変換後ファイル22内のデータに対応付けられるidの重複チェックに要するメモリ容量を抑制できる。
【0060】
また、上記実施例によれば、変換装置1は、複数の位置に記述された複数のデータにそれぞれ対応付けられた識別情報の内、新たに生成された識別情報を変更する。かかる構成によれば、変換装置1は、新たに生成された識別情報を変更することで、変換後ファイル22から変換前ファイル21に対してデータをトレースする際に、識別情報を用いて正しくトレースすることができる。すなわち、変換装置1は、変換後ファイル22から変換前ファイル21に対して、データの欠損がないか、正しく変換されているか等を、識別情報を用いて正しくトレースすることができる。
【0061】
また、上記実施例によれば、変換装置1は、変換前ファイル21に含まれる複数のデータをそれぞれ読み出したタイミングでアルゴリズムを適用して、形式変換後のデータを変換後ファイル22に追加する。そして、変換装置1は、形式変換後のデータに対応付けられた識別情報と、該データの変換後ファイル22内の位置との関係を、関係情報(変換情報リスト23)に追加する。かかる構成によれば、変換装置1は、変換前ファイル21からデータを読み出したタイミングで、形式変換後のデータに対応付けられた識別情報と、該データの変換後ファイル22内の位置との関係を変換情報リスト23に追加する。この結果、変換装置1は、変換前ファイル21に代えて変換情報リスト23をメモリに展開することで、変換後ファイル22内のデータに対応付けられた識別情報の重複チェックを正しく行うことができる。また、変換装置1は、変換後ファイル22内のデータに対応付けられた識別情報の重複チェックに要するメモリ容量を抑制できる。
【0062】
[プログラム等]
なお、実施例では、変換装置1が、財務諸表のXBRL形式データのファイルをJSON形式データのファイルに変換する際に、JSON形式データのidの重複チェックをする場合について説明した。しかしながら、変換装置1は、これに限定されず、財務諸表のXBRL形式データのファイルをCSV形式データのファイルに変換する際に、CSV形式データのidの重複チェックをする場合であっても良い。また、変換装置1は、財務諸表のXBRL形式データのファイルをXML形式データのファイルに変換する際に、XML形式データのidの重複チェックをする場合であっても良い。
【0063】
また、実施例では、変換装置1が、財務諸表の変換前ファイル21を変換後ファイル22に変換する際に、変換後ファイル22内のデータのidの重複チェックをする場合について説明した。しかしながら、変換装置1は、財務諸表に限定されず、電子データのidつきの形式変換をする際に、形式変換後のファイル内のデータのidの重複チェックをする場合であっても良い。
【0064】
また、変換装置1は、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置に、上記した制御部10と、記憶部20等の各機能を搭載することによって実現することができる。
【0065】
また、図示した変換装置1の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、変換装置1の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、id重複判定部12とid変更部13とを1個の部として統合しても良い。一方、形式変換部11を、データを形式変換する変換部と、変換情報リスト23を作成する作成部とに分散しても良い。また、変換前ファイル21、変換後ファイル22および変換情報リスト23等の記憶部20を変換装置1の外部装置としてネットワーク経由で接続するようにしても良い。
【0066】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図1に示した変換装置1と同様の機能を実現する特定プログラムを実行するコンピュータの一例を説明する。図10は、変換プログラムを実行するコンピュータの一例を示す図である。
【0067】
図10に示すように、コンピュータ200は、各種演算処理を実行するCPU(Central Processing Unit)203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209を制御する表示制御部207を有する。また、コンピュータ200は、記憶媒体からプログラム等を読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD(Hard Disk Drive)205を有する。そして、メモリ201、CPU203、HDD205、表示制御部207、ドライブ装置213、入力装置215、通信制御部217は、バス219で接続されている。
【0068】
ドライブ装置213は、例えばリムーバブルディスク211用の装置である。HDD205は、変換プログラム205aおよび変換処理関連情報205bを記憶する。CPU203は、変換プログラム205aを読み出して、メモリ201に展開する。変換プログラム205aは、変換プロセスとして機能する。
【0069】
例えば、変換プロセスは、制御部10の各機能部に対応する。変換処理関連情報205bは、変換前ファイル21、変換後ファイル22および変換情報リスト23に対応する。
【0070】
なお、変換プログラム205aについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD-ROM(Compact Disk Read Only Memory)、DVD(Digital Versatile Disk)、光磁気ディスク、IC(Integrated Circuit)カード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらから変換プログラム205aを読み出して実行するようにしても良い。
【符号の説明】
【0071】
1 変換装置
10 制御部
11 形式変換部
12 id重複判定部
13 id変更部
20 記憶部
21 変換前ファイル
22 変換後ファイル
23 変換情報リスト
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10