(57)【要約】【課題】複雑なデータ構造の素材ファイルを効率的に再利用させる編集支援手段を提供すること。【解決手段】ファイル生成装置１は、素材オブジェクトの記述内容を挿入する位置に、素材オブジェクトの識別情報がリンクとして記載された新規JSONテンプレートを読み込み、新規JSONテンプレート内のリンクから読み取った素材オブジェクトの識別情報を検索キーとして、素材データベース１３から素材オブジェクトの記述内容を取得し、その取得した素材オブジェクトの記述内容を新規JSONテンプレートのリンクに置き換えて挿入することで、新規JSONファイルを作成する新規ファイル作成部１５を有する。【選択図】図６
2019032679.tif 000002
【特許請求の範囲】
【請求項１】
新規生成ファイルの一部として使用される素材オブジェクトが格納される素材データベースと、
素材オブジェクトの記述内容を挿入する位置に、素材オブジェクトの識別情報がリンクとして記載された新規中間データを読み込み、前記新規中間データ内のリンクから読み取った素材オブジェクトの識別情報を検索キーとして、前記素材データベースから素材オブジェクトの記述内容を取得し、その取得した素材オブジェクトの記述内容を前記新規中間データのリンクに置き換えて挿入することで、前記新規生成ファイルを作成する新規ファイル作成部と、を有することを特徴とする
ファイル生成装置。
【請求項２】
入力された素材用ファイルから素材オブジェクトを抽出して、その抽出結果の素材オブジェクトを前記素材データベースに登録する素材登録部を有し、
前記素材登録部は、前記素材用ファイルに記載されたオブジェクトを１つずつ別々の素材オブジェクトとして抽出することを特徴とする
請求項１に記載のファイル生成装置。
【請求項３】
前記素材登録部は、前記素材用ファイルに記載された素材オブジェクトに含まれるオブジェクトをさらに別の素材オブジェクトとして抽出することを特徴とする
請求項２に記載のファイル生成装置。
【請求項４】
入力された素材用ファイルから選択された一部の記述を抽出して、その抽出結果を含む素材オブジェクトを前記素材データベースに登録する素材登録部を有することを特徴とする
請求項１に記載のファイル生成装置。
【請求項５】
前記素材データベースに登録されている素材オブジェクトごとのアイコンを画面表示し、そのアイコンを前記新規中間データ内の所定位置にドラッグ＆ドロップする操作を受け付け、
ドラッグされたアイコンに対応する素材オブジェクトのリンクを、ドロップされた所定位置に追加することで、前記新規ファイル作成部に入力する前記新規中間データを作成させるファイル編集部を有することを特徴とする
請求項１に記載のファイル生成装置。
【請求項６】
前記ファイル編集部は、素材オブジェクトごとのアイコンを画面表示するときに、第１の素材オブジェクトの内部に第２の素材オブジェクトが含まれているときには、前記第１の素材オブジェクトのアイコンを画面表示するとともに、前記第１の素材オブジェクトのアイコンがダブルクリックされたときには、前記第１の素材オブジェクトのアイコンからツリー表示される前記第２の素材オブジェクトのアイコンも画面表示することを特徴とする
請求項５に記載のファイル生成装置。
【請求項７】
ファイル生成装置は、素材データベースと、新規ファイル作成部とを有しており、
前記素材データベースには、新規生成ファイルの一部として使用される素材オブジェクトが格納され、
前記新規ファイル作成部は、素材オブジェクトの記述内容を挿入する位置に、素材オブジェクトの識別情報がリンクとして記載された新規中間データを読み込み、前記新規中間データ内のリンクから読み取った素材オブジェクトの識別情報を検索キーとして、前記素材データベースから素材オブジェクトの記述内容を取得し、その取得した素材オブジェクトの記述内容を前記新規中間データのリンクに置き換えて挿入することで、前記新規生成ファイルを作成することを特徴とする
ファイル生成方法。
【請求項８】
新規生成ファイルの一部として使用される素材オブジェクトが格納される素材データベースを記憶するファイル生成装置としてのコンピュータを、
素材オブジェクトの記述内容を挿入する位置に、素材オブジェクトの識別情報がリンクとして記載された新規中間データを読み込み、前記新規中間データ内のリンクから読み取った素材オブジェクトの識別情報を検索キーとして、前記素材データベースから素材オブジェクトの記述内容を取得し、その取得した素材オブジェクトの記述内容を前記新規中間データのリンクに置き換えて挿入することで、前記新規生成ファイルを作成する新規ファイル作成手段として機能させるための
ファイル生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイル生成装置、ファイル生成方法、および、ファイル生成プログラムの技術に関する。
【背景技術】
【０００２】
軽量のデータ交換フォーマットであるＪＳＯＮ（JavaScript（登録商標） Object Notation）が、柔軟なデータ記述ができるデータ形式として、Open API Initiativeなどの標準化団体で標準フォーマットとして採用されている。複数のデータを順序をつけてグループ化するリスト形式や、複数のデータをｍ行ｎ列のセルに格納するデータテーブル形式と比べて、JSONファイルは、親オブジェクトを含め、さらにその親オブジェクト内に子オブジェクトを含めるような複雑な記述も可能である。
【０００３】
非特許文献１のサイトには、テキストファイルであるJSONファイルをプログラマが編集しやすいように、オブジェクトの追加などができるweb上のエディタが公開されている。このエディタでは、オブジェクトに含まれるvalueに着色したり、テキストファイルの各行に行番号を併記したりする編集画面により、JSONファイルの可読性が向上する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】「JSON Editor Online」、［online］、［2017年7月26日検索］、インターネット〈URL：http://jsoneditoronline.org/〉
【発明の概要】
【発明が解決しようとする課題】
【０００５】
プログラマは、既存のプログラムのソースコードの一部を切り取って、新たなソースコードに貼り付ける転記型のコーディングを行いたいことがある。そのときには、既存ファイルの一部は、素材として参照される。以下、JSONファイルを素材として再利用する場合を考える。
【０００６】
JSONファイルはテキストファイルであるので、プログラマは、先頭から１行ずつJSONファイルの内容を読み込み、必要な部分だけを新規ファイルへと転記する。しかし、JSONファイルは前記したようにオブジェクトの階層関係（親子関係）などを含むような複雑なデータ構造である。よって、非特許文献１のエディタなどによりいくら画面上で読みやすい状態にしたとしても、手作業で転記をする作業では、作業時間が長くなる上に、作業ミスも発生しがちになる。
【０００７】
図１４は、転記元の素材JSONファイルから転記先の新規JSONファイルを手作業で作成する工程の具体例を示す説明図である。JSONファイルはテキストファイルであるので、本明細書で説明しやすいように、テキストファイルの各行の左側に行ＩＤ（A01,A02,A03…）を付記する。
素材JSONファイルには、再利用可能な箇所として、「転記元A03行〜A06行→転記先B03行〜B06行」と、「転記元A07行,A08行→転記先B13行,B14行」と、「転記元A15行〜A20行→転記先B19行〜B24行」とがある。
しかし、作業ミスとして、例えば、オブジェクトの前半部（A03行,A04行）だけを切り取って後半部（A05行,A06行）を忘れてしまうこともある。そのときには、新規JSONファイルには前半部だけの不充分なオブジェクト（B05行,B06行が無いオブジェクト）が記載されてしまう。
【０００８】
そこで、本発明は、複雑なデータ構造の素材ファイルを効率的に再利用させる編集支援手段を提供することを、主な課題とする。
【課題を解決するための手段】
【０００９】
前記課題を解決するために、本発明のファイル生成装置は、以下の特徴を有する。
本発明は、新規生成ファイルの一部として使用される素材オブジェクトが格納される素材データベースと、
素材オブジェクトの記述内容を挿入する位置に、素材オブジェクトの識別情報がリンクとして記載された新規中間データを読み込み、前記新規中間データ内のリンクから読み取った素材オブジェクトの識別情報を検索キーとして、前記素材データベースから素材オブジェクトの記述内容を取得し、その取得した素材オブジェクトの記述内容を前記新規中間データのリンクに置き換えて挿入することで、前記新規生成ファイルを作成する新規ファイル作成部と、を有することを特徴とする。
【００１０】
これにより、素材オブジェクトの記述内容を１つのリンクを埋め込むだけで再利用する仕組みにより、複雑なデータ構造の素材ファイルを効率的に作成できる。
【００１１】
本発明は、入力された素材用ファイルから素材オブジェクトを抽出して、その抽出結果の素材オブジェクトを前記素材データベースに登録する素材登録部を有し、
前記素材登録部が、前記素材用ファイルに記載されたオブジェクトを１つずつ別々の素材オブジェクトとして抽出することを特徴とする。
【００１２】
これにより、素材用ファイル内に列挙されたオブジェクトを、そのまま１つずつ別々の素材オブジェクトとして自動抽出できる。
【００１３】
本発明は、前記素材登録部が、前記素材用ファイルに記載された素材オブジェクトに含まれるオブジェクトをさらに別の素材オブジェクトとして抽出することを特徴とする。
【００１４】
これにより、親オブジェクトだけではなく、その親オブジェクトに含まれる子オブジェクトを、新たに素材オブジェクトとして自動抽出できる。
【００１５】
本発明は、入力された素材用ファイルから選択された一部の記述を抽出して、その抽出結果を含む素材オブジェクトを前記素材データベースに登録する素材登録部を有することを特徴とする。
【００１６】
これにより、オブジェクトの一部を再利用するような場合でも、その再利用する箇所だけを素材オブジェクトとして抽出できる。
【００１７】
本発明は、前記素材データベースに登録されている素材オブジェクトごとのアイコンを画面表示し、そのアイコンを前記新規中間データ内の所定位置にドラッグ＆ドロップする操作を受け付け、
ドラッグされたアイコンに対応する素材オブジェクトのリンクを、ドロップされた所定位置に追加することで、前記新規ファイル作成部に入力する前記新規中間データを作成させるファイル編集部を有することを特徴とする。
【００１８】
これにより、新規中間データにリンクを埋め込む編集作業を、直観的かつ効率的に実現できる。
【００１９】
本発明は、前記ファイル編集部が、素材オブジェクトごとのアイコンを画面表示するときに、第１の素材オブジェクトの内部に第２の素材オブジェクトが含まれているときには、前記第１の素材オブジェクトのアイコンを画面表示するとともに、前記第１の素材オブジェクトのアイコンがダブルクリックされたときには、前記第１の素材オブジェクトのアイコンからツリー表示される前記第２の素材オブジェクトのアイコンも画面表示することを特徴とする。
【００２０】
これにより、親子関係のあるオブジェクト集合を一括に表示することで、多数の素材オブジェクトが素材データベースに登録されている場合でも、所望の素材オブジェクトを効率的に見つけることができる。
【発明の効果】
【００２１】
本発明によれば、複雑なデータ構造の素材ファイルを効率的に再利用させる編集支援手段を提供することができる。
【図面の簡単な説明】
【００２２】
【図１】本実施形態に係わる素材JSONファイルから素材オブジェクトを抽出する工程を示す説明図である。
【図２】本実施形態に係わる素材オブジェクトおよび新規JSONテンプレートから新規JSONファイルを作成する工程を示す説明図である。
【図３】本実施形態に係わる図１で示した素材JSONファイルから素材オブジェクトを抽出する工程の具体例を示す説明図である。
【図４】本実施形態に係わる図３とは別の具体例を示す説明図である。
【図５】本実施形態に係わる素材オブジェクトおよび新規JSONテンプレートから新規JSONファイルを作成する工程の具体例を示す説明図である。
【図６】本実施形態に係わるファイル生成装置の構成図である。
【図７】本実施形態に係わる素材データベースの一例を示すデータテーブルである。
【図８】本実施形態に係わるファイル編集部が新規JSONテンプレートの入力工程でユーザに提示するポータル画面の画面図である。
【図９】本実施形態に係わる図８のポータル画面から、ドラッグ＆ドロップ操作が行われた後の画面図である。
【図１０】本実施形態に係わる新規ファイル作成部のメインルーチンである。
【図１１】本実施形態に係わるファイル編集部のサブルーチンである。
【図１２】本実施形態に係わる図１１で説明した類似関係にあるオブジェクトＸ、オブジェクトＹの具体例を示す説明図である。
【図１３】本実施形態に係わる類似関係にあるオブジェクトＸ、オブジェクトＹをもとに、新規JSONファイルを生成した結果を示す説明図である。
【図１４】転記元の素材JSONファイルから転記先の新規JSONファイルを手作業で作成する工程の具体例を示す説明図である。
【発明を実施するための形態】
【００２３】
以下、本発明の一実施形態について、図面を参照して詳細に説明する。まず、図１〜図５を参照して、本実施形態の処理の概要を説明する。これらの各処理は、図６に示すファイル生成装置１の各処理部により実行される。
【００２４】
図１は、素材JSONファイル９１（素材用ファイル）から素材オブジェクト９２を抽出する工程を示す説明図である。
素材JSONファイル９１として、３つのオブジェクト「Obj1,Obj2,Obj3」を含む第１ファイルと、３つのオブジェクト「Obj4,Obj5,Obj6」を含む第２ファイルとを例示する。
各オブジェクトは、それぞれ独立に今後再利用される素材オブジェクト９２として抽出される。例えば、第１ファイルからは「Obj1,Obj2」が抽出され、第２ファイルからは「Obj4,Obj5」が抽出される。一方、残りのオブジェクト「Obj3,Obj6」は再利用性が低いため、抽出されなかった。
【００２５】
図２は、素材オブジェクト９２および新規JSONテンプレート９３（新規中間データ）から新規JSONファイル９４（新規生成ファイル）を作成する工程を示す説明図である。
素材オブジェクト９２として、図１で抽出された４つのオブジェクト「Obj1,Obj2,Obj4,Obj5」が登録されている。
新規JSONテンプレート９３は、新規JSONファイル９４を生成する台紙となるデータであり、オブジェクトなどのJSONファイルの要素に加えて、素材オブジェクト９２へのリンクも記述可能である。ここでは、新規JSONテンプレート９３として、新規に記述した３つのオブジェクト「Obj7,Obj8,Obj9」に加え、素材オブジェクト９２へのリンク「Obj1,Obj4」が記述される。
【００２６】
新規JSONテンプレート９３の記述が完了すると、新規JSONテンプレート内の素材オブジェクト９２へのリンク「Obj1,Obj4」を、素材オブジェクト９２の記述内容に展開する（置き換える）ことにより、新規JSONファイル９４が作成される。換言すると、新規JSONファイル９４のうちの３つのオブジェクト「Obj7,Obj8,Obj9」は手動で生成し、新規JSONファイル９４のうちの２つのオブジェクト「Obj1,Obj4」は自動で生成される。
【００２７】
図３は、図１で示した素材JSONファイル９１から素材オブジェクト９２を抽出する工程の具体例を示す説明図である。
まず、素材JSONファイル９１や素材オブジェクト９２などはテキストファイルであるので、本明細書で説明しやすいように、テキストファイルの各行の左側に行ＩＤ（A01,A02,A03…）を付記する。
素材JSONファイル９１には上から順に３つのオブジェクト「A02行から始まるobject1、A12行から始まるobject2、A22行から始まるobject3」が記載されている。この３つのオブジェクトは、１つずつ走査順に構文解析することで、それぞれ別々の素材オブジェクト９２−１、９２−２、９２−３として抽出することができる。
【００２８】
図４は、図３とは別の具体例を示す説明図である。抽出された３つの素材オブジェクト９２について、その抽出方法の詳細を順に説明する。
素材オブジェクト９２−４「object1 ref」は、ユーザから範囲指定された素材JSONファイル９１の部分が新たに１つの素材オブジェクト９２として抽出されたものである。
素材登録部１２（図６）は、素材JSONファイル９１内のA07行とA08行との範囲指定データと、その範囲指定データに名付ける素材オブジェクト９２の名称データ「object1 ref」との入力をユーザから受け付ける。そして、素材登録部１２は、範囲指定データの部分（A07行、A08行）をJSONのオブジェクト形式に変換する。この変換処理では、範囲指定された部分（A07行、A08行）の前後にオブジェクトとして囲む部分（a01行〜a03行、a04行〜a06行）を補完し、その結果に入力された名称「object1 ref」を割り当てる。
【００２９】
素材オブジェクト９２−５「object2-1」は、素材JSONファイル９１のA12行〜A21行に記載される「object2」の一部として含まれる、A15行〜A20行のオブジェクトである。素材オブジェクト「object2-1」は、親オブジェクト「object2」に対する子オブジェクトとして、object2とは別に１つのオブジェクトとして抽出されたものである。
このように、素材JSONファイル９１に含まれる親オブジェクト（第１階層）だけでなく、その親オブジェクトに含まれる子オブジェクトや（第２階層）、その子オブジェクトに含まれる孫オブジェクト（第３階層）など、複数階層のオブジェクトをそれぞれ別々に素材オブジェクト９２として抽出してもよい。
【００３０】
素材オブジェクト９２−６「object3 ref」は、範囲指定された箇所（A07行、A08行）とは別の箇所（A27行、A28行）にも、範囲指定されたとみなして抽出されたものである。
まず、素材オブジェクト「object1 ref」として範囲指定された箇所（A07行、A08行）のkey（ここではkey1-1,key1-2の順）を抽出ルールとして登録しておく。そして、範囲指定された箇所（A07行、A08行）の抽出ルールを、別の類似箇所（A27行、A28行）にも適用する。
ここで、範囲指定された箇所（A07行、A08行）と別の箇所（A27行、A28行）とは、オブジェクトのvalueは互いに異なるものの、key（key1-1,key1-2の順）は互いに同じであるので、抽出ルールに合致する。よって、類似箇所の素材オブジェクト化も範囲指定される手間をかけさせずに、事前に提案することができる。
【００３１】
図５は、素材オブジェクト９２および新規JSONテンプレート９３から新規JSONファイル９４を作成する工程の具体例を示す説明図である。
新規JSONテンプレート９３として、新規に記述した要素をB01,B02のようにBから始まる行ＩＤで示し、素材オブジェクト９２へのリンクが記述される行をL（Linkの意味）から始まる行ＩＤで示す。つまり、図示した新規JSONテンプレート９３には、３つのリンク（L01行のobject1-1、L02行のobject1-ref、L03行のobject2-1）が埋め込まれている。なお、本明細書では、JSONファイルの規格とは関係なく説明のために、リンク行には、オブジェクト名を特別な記号（%%）で囲むことで、リンク行とその他の行とを区別することにした。
【００３２】
次に、新規JSONテンプレート９３のリンク行を、そのリンク元である素材オブジェクト９２の記述内容へと展開する工程により、リンク行L01が素材オブジェクト９２の記述内容（B03行〜B06行）に展開される。同様に、リンク行L02が素材オブジェクト９２の記述内容（B11行〜B15行）に展開され、リンク行L03が素材オブジェクト９２の記述内容（B19行〜B24行）に展開される。
これにより、３つの素材オブジェクト９２を再利用して１つの新規JSONファイル９４が生成される。つまり、図１４と同じ新規JSONファイル９４について、実際にユーザにJSONファイルの転記作業を行わせること無く、効率的に新規JSONファイル９４を自動生成することができる。
【００３３】
図６は、ファイル生成装置１の構成図である。
ファイル生成装置１は、ＣＰＵ（Central Processing Unit）と、メモリと、ハードディスクなどの記憶手段（記憶部）と、ネットワークインタフェースとを有するコンピュータとして構成される。
このコンピュータは、ＣＰＵが、メモリ上に読み込んだプログラム（アプリケーションや、その略のアプリとも呼ばれる）を実行することにより、各処理部により構成される制御部（制御手段）を動作させる。つまり、本発明では、一般的なコンピュータのハードウェア資源を、ファイル生成装置１の各手段として動作させるファイル生成プログラムによって実現することができる。また、このプログラムは、通信回線を介して配布したり、ＣＤ−ＲＯＭ等の記録媒体に記録して配布したりすることも可能である。
【００３４】
ファイル生成装置１は、ファイル編集部１１と、素材登録部１２と、素材データベース１３と、素材提示部１４と、新規ファイル作成部１５とを有する。
以下、ファイル生成装置１の各構成要素間の信号の流れを示すステップ（図６のＳ１１〜Ｓ２５）を用いて、各構成要素の詳細を説明する。
【００３５】
ファイル編集部１１は、新規JSONファイル９４を生成するためのポータル画面を、ユーザに提供する。ポータル画面を介して、ファイル編集部１１は、図１で示した素材JSONファイル９１の入力をユーザから受け付ける（Ｓ１１）。さらに、ユーザの入力によりファイル編集部１１は、その素材JSONファイル９１から素材オブジェクト９２を抽出させるための追加入力を受け付ける。追加入力とは、例えば、抽出対象の素材オブジェクト９２を指定する情報の入力や、抽出対象の素材オブジェクト９２となる素材JSONファイル９１の一部を範囲指定する情報の入力である。
【００３６】
素材登録部１２は、Ｓ１１で入力された素材JSONファイル９１を読み込み（Ｓ１２）、その中から素材オブジェクト９２を抽出し、その抽出結果を素材データベース１３に登録する（Ｓ１３）。素材登録部１２による素材オブジェクト９２の抽出対象は、例えば、以下に示すように分類される。
（抽出対象１）元々オブジェクトとして定義されているオブジェクト。例えば、図３のオブジェクト「object1、object2、object3」。
（抽出対象２）オブジェクト内のオブジェクト。例えば、図４のオブジェクト「object2」の内のオブジェクト「object2-1」。
（抽出対象３）オブジェクト内の記述内容の一部を抽出したオブジェクト。例えば、図４の範囲指定されたオブジェクト「object1 ref」や、その範囲指定の抽出ルールが適用された「object3 ref」。
【００３７】
図７は、素材データベース１３の一例を示すデータテーブルである。
素材データベース１３には、素材オブジェクト９２のオブジェクト名ごとに、その素材オブジェクト９２の記述内容が登録される。素材オブジェクト９２は、JSONファイルの形式で指定されるように、項目名（key）とその項目値（value）との組み合わせが、１組以上登録される連想配列の形式である。また、オブジェクト名「3-1-1」で示すように、素材オブジェクト９２は、他の素材オブジェクト｛1-1-1｝と｛2-1-1｝とを含めたリスト形式で記載してもよい。
【００３８】
図６に戻り、素材提示部１４は、素材データベース１３内に登録された素材オブジェクト９２を読み込み（Ｓ１４）、再利用可能なアイコンとして、ファイル編集部１１（ポータル画面）を介してユーザに提示する（Ｓ１５）。
ファイル編集部１１は、素材オブジェクト９２のアイコンをユーザに選択（ドラッグ）させ、新規JSONテンプレート内に挿入（ドロップ）させることで、素材オブジェクト９２へのリンク（図５ではリンク行L01,L02,L03）が記載された新規JSONテンプレート９３（図５の左側）を入力させる（Ｓ２１）。
新規ファイル作成部１５は、入力された新規JSONテンプレート９３に含まれるリンクに対応するオブジェクト名を素材提示部１４から取得し（Ｓ２３）、そのオブジェクト名に対応する記述内容を素材データベース１３から読み込む（Ｓ２４）。そして、新規ファイル作成部１５は、読み込んだ素材オブジェクト９２の記述内容を、新規JSONテンプレート９３のリンクの位置に展開することで、新規JSONファイル９４を作成する（Ｓ２５）。
【００３９】
図８は、ファイル編集部１１が新規JSONテンプレート９３の入力工程（Ｓ２１）でユーザに提示するポータル画面の画面図である。
ポータル画面の左側には、素材オブジェクト９２のアイコン（ドラッグ元）が列挙される。なお、素材オブジェクト間に親子関係（階層関係）がある場合、親オブジェクト（3-1-1）をダブルクリックすると、その子オブジェクト（1-1-1,2-1-1）がツリー表示される。つまり、ツリー表示では、親オブジェクトだけが表示されている折りたたみ状態と、親子オブジェクトの両方が表示されている展開状態とを、ダブルクリックで切り換えることができる。
ポータル画面の右側には、編集中の新規JSONテンプレート９３の記述内容（ドロップ先）と、編集完了後に新規JSONテンプレート９３から新規JSONファイル９４を作成させるためのファイル作成ボタンとが表示される。新規JSONテンプレート９３は、編集位置を大まかに決めるためのオブジェクト領域Ｒ１が規定され、その領域Ｒ１内にオブジェクト（2-1-2,3-1-2）を配置可能である。
【００４０】
図９は、図８のポータル画面から、ドラッグ＆ドロップ操作が行われた後の画面図である。
まず、ユーザは新規JSONテンプレート内に新たにオブジェクト領域Ｒ２を生成する。
次に、ユーザは素材オブジェクト９２のアイコン（1-1-1）をドラッグし、そのまま領域Ｒ２へとドロップする（矢印で図示）。これにより、新規JSONテンプレート９３の領域Ｒ２内に素材オブジェクト９２（1-1-1）へのリンクが埋め込まれる（リンクを示すために破線で1-1-1を囲む図示）。
同様にして、ユーザは新規JSONテンプレート９３の領域Ｒ２内に素材オブジェクト９２（1-1-2）へのリンクを追加する。
【００４１】
図１０は、新規ファイル作成部１５のメインルーチンである。このメインルーチンは、図９のポータル画面からファイル作成ボタンが押されたときに実行される。
Ｓ１０１〜Ｓ１０７として、新規ファイル作成部１５は、新規JSONテンプレート９３に含まれるオブジェクト領域を順に選択する（図９ではＲ２→Ｒ１）ループを実行する。
Ｓ１０２として、ファイル編集部１１は、ループで選択された領域内にアイコンを追加するサブルーチン（図１１）を実行する。
Ｓ１０３〜Ｓ１０６として、新規ファイル作成部１５は、Ｓ１０２で追加された領域内のアイコンを順に選択する（図９では1-1-1→1-1-2）ループを実行する。
Ｓ１０４として、新規ファイル作成部１５は、ループで選択されたアイコンに対応するオブジェクト名を素材提示部１４から取得する。
Ｓ１０５として、新規ファイル作成部１５は、Ｓ１０４で取得したオブジェクト名に対応する素材オブジェクト９２の記述内容を素材データベース１３から取得し、その取得した記述内容を新規JSONファイル９４に追記する。
Ｓ１０８として、新規ファイル作成部１５は、ループ内で繰り返し実装されたＳ１０５の追記結果を、新規JSONファイル９４として出力する。
【００４２】
図１１は、ファイル編集部１１のサブルーチンである。このサブルーチンは、Ｓ１０１からのループで現在選択されているオブジェクト領域ごとに、Ｓ１０２から呼び出される。
Ｓ２０１として、新規ファイル作成部１５は、選択中のオブジェクト領域に含まれるオブジェクトと類似するオブジェクトが素材データベース１３に登録済みの素材オブジェクト９２に存在するか否かを判定する。類似するオブジェクトとは、オブジェクトＸとオブジェクトＹとで、それぞれ同じkeyの集合を共通して含むときに、オブジェクトＸとオブジェクトＹとは類似関係とする。Ｓ２０１でＹｅｓならＳ２０２へ進み、ＮｏならＳ２０３へ進む。
Ｓ２０２として、ファイル編集部１１は、新規JSONテンプレート９３に入力済みのオブジェクトに類似する、新規JSONテンプレート９３に入力前の素材オブジェクト９２のアイコンを入力候補として提示する。これにより、ユーザは、類似するオブジェクトを一括で入力することができ、類似するオブジェクトの入力忘れも予防できる。
Ｓ２０３として、ファイル編集部１１は、新規JSONテンプレート９３に入力済みのオブジェクトについて、図９の領域Ｒ２などに例示するように、選択中のオブジェクト領域にアイコンを追加する。
【００４３】
Ｓ２０４として、ファイル編集部１１は、選択中のオブジェクト領域に含まれるオブジェクト集合の中に、重複するオブジェクトが存在するか否かを判定する。重複するオブジェクトとは、オブジェクトＸとオブジェクトＹとで、それぞれ同じkeyかつ同じvalueの集合を共通して含むときに、オブジェクトＸとオブジェクトＹとは同一（重複関係）とする。つまり、類似関係とは異なり、keyだけでなくvalueも複数のオブジェクト間で同じになるケースである。Ｓ２０４でＹｅｓならＳ２０５へ進み、ＮｏならＳ２０６へ進む。
Ｓ２０５として、ファイル編集部１１は、Ｓ２０４で検出した重複するオブジェクトについてのアイコンの操作を無効化する。つまり、同一関係にあるオブジェクトＸとオブジェクトＹとが同じ１つの領域内で存在していても無駄なので、片方のオブジェクトＸは有効化しつつ、もう片方のオブジェクトＹは無効化する。オブジェクトＹは無効化されたので、その後のＳ１０４，Ｓ１０５のリンク展開処理の対象外となる。
【００４４】
Ｓ２０６として、ファイル編集部１１は、Ｓ２０１で定義した類似関係にあるオブジェクトＸとオブジェクトＹとが同じ１つの領域内に登録されているか否かを判定する。Ｓ２０６でＹｅｓならＳ２０７へ進み、ＮｏならＳ２０８へ進む。
Ｓ２０７として、ファイル編集部１１は、同じ領域内に登録された複数の類似関係にあるオブジェクトそれぞれに、類似関係を示すメタ情報を付与する。なお、Ｓ２０４の重複関係とは異なり、同じ領域内に複数の類似関係にあるオブジェクトは、ともに有効である。
【００４５】
Ｓ２０８として、ファイル編集部１１は、選択中のオブジェクト領域に追加されたアイコンをポータル画面に表示する。ここで、Ｓ２０７で付与されたメタ情報をアイコンごとに表示することで、ユーザは、類似関係にあるオブジェクト集合がまとめて入力されたことを容易に把握できる。
Ｓ２０９として、ファイル編集部１１は、選択中のオブジェクト領域に対して、さらに追加したいオブジェクトがあるか否かを判定する。Ｓ２０９でＹｅｓならＳ２０１に戻り、Ｎｏなら図１１（Ｓ１０２）のサブルーチンを終了して、図１０のメインルーチン（Ｓ１０３）に処理を進める。
【００４６】
図１２は、図１１で説明した類似関係にあるオブジェクトＸ（図１２上側、C01行から始まる素材オブジェクト９２−７）、オブジェクトＹ（図１２下側、D01行から始まる素材オブジェクト９２−８）の具体例を示す説明図である。このオブジェクトＸに含まれるkey集合は、上から順に、「description、href、id、isRoot、lastUpdate、lifecycleStatus、name、version、validFor、endDateTime、startDateTime」である。
また、オブジェクトＹに含まれるkey集合も、上から順に、「description、href、id、isRoot、lastUpdate、lifecycleStatus、name、version、validFor、endDateTime、startDateTime」となり、オブジェクトＸに含まれるkey集合と同じである。しかし、それぞれのkeyに対応するvalueは、オブジェクトＸとオブジェクトＹとで異なる。
【００４７】
図１３は、類似関係にあるオブジェクトＸ、オブジェクトＹをもとに、新規JSONファイル９４を生成した結果を示す説明図である。行E04からは、図１２に示すオブジェクトＸの一部（素材オブジェクト９２−７１）のkey「href、id、name、version」がリンク展開されるとともに、行E10からは、オブジェクトＹの一部（素材オブジェクト９２−８１）のkey「href、id、name、version」がリンク展開される。このように、類似する素材オブジェクト９２を一括で新規JSONテンプレート９３に入力することで、新規JSONファイル９４を効率的に作成できる。
【００４８】
以上説明した本実施形態では、事前に素材データベース１３に登録しておいた素材オブジェクト９２を、新たに新規JSONテンプレート内にドラッグ＆ドロップする簡易的な編集操作を受け付けるファイル生成装置１を説明した。これにより、その編集操作で生成されたリンクから素材オブジェクト９２の記述内容を含む新規JSONファイル９４を効率的に作成できる。
【００４９】
なお、比較例として、JSONファイルとは別のデータ形式で記載された変換元ファイルを、JSONファイルにデータ変換するようなシステムも考えられる。変換元ファイルは、例えば、オブジェクトＡのアイコンと、オブジェクトＢのアイコンと、オブジェクト間を接続する矢印とを含む図形ファイルである。しかし、この比較例では、素材オブジェクト９２の記述内容を再利用する仕組みは備えていないため、新規JSONファイル９４の編集作業を効率化することはできない。
【００５０】
一方、このように新規JSONファイル９４のテキスト内容を効率的に自動生成する本実施形態のファイル生成装置１は、素材オブジェクト９２の記述内容を再利用する仕組みにより、新規JSONファイル９４の編集作業の効率化に役立つものである。
【符号の説明】
【００５１】
１      ファイル生成装置
１１    ファイル編集部
１２    素材登録部
１３    素材データベース
１４    素材提示部
１５    新規ファイル作成部
９１    素材JSONファイル
９２    素材オブジェクト
９３    新規JSONテンプレート
９４    新規JSONファイル
【図１】
2019032679.tif 000003
【図２】
2019032679.tif 000004
【図３】
2019032679.tif 000005
【図４】
2019032679.tif 000006
【図５】
2019032679.tif 000007
【図６】
2019032679.tif 000008
【図７】
2019032679.tif 000009
【図８】
2019032679.tif 000010
【図９】
2019032679.tif 000011
【図１０】
2019032679.tif 000012
【図１１】
2019032679.tif 000013
【図１２】
2019032679.tif 000014
【図１３】
2019032679.tif 000015
【図１４】
2019032679.tif 000016