(57)【要約】【課題】個々の開発者の名付け傾向にばらつきがあっても、整合性のとれた名称設計を支援すること。【解決手段】名称設計装置２は、入力データ１１の文字列から要素分割ルール３３に規定される複数の要素を抽出し、その抽出した要素ごとに要素分割ルール３３に従って変換後の文字列を作成する要素分割部２３と、要素分割部２３が抽出した要素ごとに要素分割ルール３３から対応するタグ情報を取得し、優先度ルール３４に規定されるタグ情報間の順序情報に従って、要素分割部２３による変換後の文字列を並び替えた後に、それらの変換後の文字列を連結して出力データ１２の文字列とする要素順序決定部２４と、を有する。【選択図】図１
2018142126.tif 000002
【特許請求の範囲】
【請求項１】
入力データの文字列の少なくとも一部である要素について、要素ごとに変換後の文字列とタグ情報とを規定する要素抽出ルール、および、タグ情報間の順序情報を規定する順序ルールが記憶されている記憶部と、
前記入力データの文字列から前記要素抽出ルールに規定される複数の要素を抽出し、その抽出した要素ごとに前記要素抽出ルールに従って前記変換後の文字列を作成する要素抽出部と、
前記要素抽出部が抽出した要素ごとに前記要素抽出ルールから対応するタグ情報を取得し、前記順序ルールに規定されるタグ情報間の順序情報に従って、前記要素抽出部による前記変換後の文字列を並び替えた後に、それらの前記変換後の文字列を連結して名称設計の出力データとする要素順序決定部と、を有することを特徴とする
名称設計装置。
【請求項２】
前記要素抽出ルールには、要素ごとのタグ情報として、要素の品詞が対応付けられており、
前記要素順序決定部は、前記順序ルールに規定される品詞間の順序情報に従って、前記変換後の文字列を並び替えることを特徴とする
請求項１に記載の名称設計装置。
【請求項３】
前記名称設計装置は、さらに、ルール適用部を有しており、
前記ルール適用部は、前記記憶部に記憶される前記要素抽出ルール、および、前記順序ルールのうちの少なくとも１つのルールを前記名称設計装置の外部から読み書き可能に構成することを特徴とする
請求項１または請求項２に記載の名称設計装置。
【請求項４】
入力データの文字列の少なくとも一部である要素について、要素ごとに変換後の文字列とタグ情報とを規定する要素抽出ルール、および、階層化を行う対象であるタグ情報を規定する階層化ルールが記憶されている記憶部と、
前記入力データの文字列から前記要素抽出ルールに規定される複数の要素を抽出し、その抽出した要素ごとに前記要素抽出ルールに従って前記変換後の文字列を作成する要素抽出部と、
前記要素抽出部が抽出した要素ごとに前記要素抽出ルールから対応するタグ情報を取得し、取得したタグ情報が前記階層化ルールにおいて階層化を行う対象であるときに、前記要素抽出部による前記変換後の文字列を連結した連結文字列を階層化した名称設計の出力データとする階層化部と、を有することを特徴とする
名称設計装置。
【請求項５】
名称設計装置は、記憶部と、要素抽出部と、要素順序決定部とを有しており、
前記記憶部には、入力データの文字列の少なくとも一部である要素について、要素ごとに変換後の文字列とタグ情報とを規定する要素抽出ルール、および、タグ情報間の順序情報を規定する順序ルールが記憶されており、
前記要素抽出部は、前記入力データの文字列から前記要素抽出ルールに規定される複数の要素を抽出し、その抽出した要素ごとに前記要素抽出ルールに従って前記変換後の文字列を作成し、
前記要素順序決定部は、前記要素抽出部が抽出した要素ごとに前記要素抽出ルールから対応するタグ情報を取得し、前記順序ルールに規定されるタグ情報間の順序情報に従って、前記要素抽出部による前記変換後の文字列を並び替えた後に、それらの前記変換後の文字列を連結して名称設計の出力データとすることを特徴とする
名称設計方法。
【請求項６】
名称設計装置は、記憶部と、要素抽出部と、階層化部とを有しており、
前記記憶部には、入力データの文字列の少なくとも一部である要素について、要素ごとに変換後の文字列とタグ情報とを規定する要素抽出ルール、および、階層化を行う対象であるタグ情報を規定する階層化ルールが記憶されており、
前記要素抽出部は、前記入力データの文字列から前記要素抽出ルールに規定される複数の要素を抽出し、その抽出した要素ごとに前記要素抽出ルールに従って前記変換後の文字列を作成し、
前記階層化部は、前記要素抽出部が抽出した要素ごとに前記要素抽出ルールから対応するタグ情報を取得し、取得したタグ情報が前記階層化ルールにおいて階層化を行う対象であるときに、前記要素抽出部による前記変換後の文字列を連結した連結文字列を階層化した名称設計の出力データとすることを特徴とする
名称設計方法。
【請求項７】
請求項５または請求項６に記載の名称設計方法を、コンピュータである前記名称設計装置に実行させるための名称設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、名称設計装置、名称設計方法、および、名称設計プログラムの技術に関する。
【背景技術】
【０００２】
地図検索などの処理システムをＷｅｂサービスとしてウェブ上に提供し、そのＷｅｂサービスを実行させる事業者が増えている。プログラミングをする開発者は、自社のサービスを実行する際に外部のＷｅｂサービスに処理を依頼し、そのＷｅｂサービスからの処理結果を得る。これにより、他事業者が提供するＷｅｂサービスを取り込んで、自社のサービスを構築し、運用することができる。
【０００３】
Ｗｅｂサービスに処理を依頼するときには、そのＷｅｂサービスが公開しているＡＰＩ（Application Programming Interface）に沿って、依頼する処理内容を記述する必要がある。ＡＰＩとは、呼び出すプログラムの関数名（メソッド名）、その関数で使用される変数名（パラメータ名）、Ｗｅｂサービスの位置をネットワーク内で特定するためのＵＲＬ（Uniform Resource Locator）などの集合である。よって、Ｗｅｂサービスを呼び出しやすくするためには、わかりやすいＡＰＩの名称を心がける必要がある。
【０００４】
多くのプログラミング言語の名称定義では、英語などのアルファベット文字が使用される。しかし、英語に不慣れな日本人の開発者がアルファベット文字の変数名を名付けることは、難しい。
そこで、非特許文献１には、日本語で表記した変数名を入力すると、その変数名を英語表記に翻訳した結果を返すネーミングツールが提供されている。例えば、「お客様氏名」をネーミングツールに入力すると、「customerName」という結果が出力される。このネーミングツールにより、ＡＰＩの名称を設計する負担を軽減することができる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】codic project team、"ネーミングはニガテですか？ VER.3"、［online］、［平成29年2月20日検索］、インターネット〈URL：https://codic.jp/〉
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＡＰＩの名称を設計するプログラマは、実装経験や得意な言語などの違いにより、名称設計の結果にも個々人のばらつき（クセ）が存在する。例えば、既に存在しているＷｅｂサービスの開発を開発者Ａから開発者Ｂが引き継いだとする。このＷｅｂサービスでは、顧客の電話番号をパラメータとして使用する。
【０００７】
開発者Ａは「TelNumberOfCustomer」というパラメータを設計し、顧客の電話番号として用いていた。しかし、引き継いだ開発者Ｂは「UserTelNumber」というパラメータを追加し、顧客の電話番号として用いることにした。
ここで、同じ顧客の電話番号を示す「TelNumberOfCustomer」と「UserTelNumber」とが不整合（表記揺れ）となってしまう。つまり、開発者Ａは「電話番号」という要素を「顧客」という要素よりも先の順序とするクセがある。一方、開発者Ｂは「電話番号」という要素を「顧客」という要素よりも後の順序とするクセがある。
従来では、このようなパラメータ名の不整合を人手でチェックする必要があったため、新規パラメータを追加するときの整合性チェックが大きな負担となっていた。
【０００８】
そこで、本発明は、個々の開発者の名付け傾向にばらつきがあっても、整合性のとれた名称設計を支援することを、主な課題とする。
【課題を解決するための手段】
【０００９】
前記課題を解決するために、本発明の名称設計装置は、以下の特徴を有する。
本発明は、入力データの文字列の少なくとも一部である要素について、要素ごとに変換後の文字列とタグ情報とを規定する要素抽出ルール、および、タグ情報間の順序情報を規定する順序ルールが記憶されている記憶部と、
前記入力データの文字列から前記要素抽出ルールに規定される複数の要素を抽出し、その抽出した要素ごとに前記要素抽出ルールに従って前記変換後の文字列を作成する要素抽出部と、
前記要素抽出部が抽出した要素ごとに前記要素抽出ルールから対応するタグ情報を取得し、前記順序ルールに規定されるタグ情報間の順序情報に従って、前記要素抽出部による前記変換後の文字列を並び替えた後に、それらの前記変換後の文字列を連結して名称設計の出力データとする要素順序決定部と、を有することを特徴とする。
【００１０】
これにより、入力データの文字列の出現順序について個々の開発者の名付け傾向にばらつきがあっても、順序ルールを適用することで、整合性のとれた名称設計を支援することができる。
【００１１】
本発明は、前記要素抽出ルールには、要素ごとのタグ情報として、要素の品詞が対応付けられており、
前記要素順序決定部が、前記順序ルールに規定される品詞間の順序情報に従って、前記変換後の文字列を並び替えることを特徴とする。
【００１２】
これにより、名詞や形容詞などの種類が少なく汎用性の高い品詞を用いてルールを記述することで、事前に用意するルールの数を減らすことができる。
【００１３】
本発明は、前記名称設計装置が、さらに、ルール適用部を有しており、
前記ルール適用部が、前記記憶部に記憶される前記要素抽出ルール、および、前記順序ルールのうちの少なくとも１つのルールを前記名称設計装置の外部から読み書き可能に構成することを特徴とする。
【００１４】
これにより、複数台の名称設計装置で同じルールを流用しやすくできるので、異なる事業者間の名称設計であっても整合性のとれた名称設計が期待される。
【００１５】
本発明は、入力データの文字列の少なくとも一部である要素について、要素ごとに変換後の文字列とタグ情報とを規定する要素抽出ルール、および、階層化を行う対象であるタグ情報を規定する階層化ルールが記憶されている記憶部と、
前記入力データの文字列から前記要素抽出ルールに規定される複数の要素を抽出し、その抽出した要素ごとに前記要素抽出ルールに従って前記変換後の文字列を作成する要素抽出部と、
前記要素抽出部が抽出した要素ごとに前記要素抽出ルールから対応するタグ情報を取得し、取得したタグ情報が前記階層化ルールにおいて階層化を行う対象であるときに、前記要素抽出部による前記変換後の文字列を連結した連結文字列を階層化した名称設計の出力データとする階層化部と、を有することを特徴とする。
【００１６】
これにより、入力データの文字列の階層構造の設計思想について個々の開発者にばらつきがあっても、階層化ルールを適用することで、整合性のとれた名称設計を支援することができる。
【発明の効果】
【００１７】
本発明によれば、個々の開発者の名付け傾向にばらつきがあっても、整合性のとれた名称設計を支援することができる。
【図面の簡単な説明】
【００１８】
【図１】本実施形態に係わる名称設計装置の構成図である。
【図２】本実施形態に係わる図１の名称設計装置に対して、外部のカスタマイズ機能を付加した構成である。
【図３】本実施形態に係わる各ルールの詳細を示すテーブルデータである。
【図４】本実施形態に係わる名称設計装置の実行結果を示す第１例である。
【図５】本実施形態に係わる名称設計装置の実行結果を示す第２例である。
【図６】本実施形態に係わる名称設計装置の実行結果を示す第３例である
【発明を実施するための形態】
【００１９】
以下、本発明の一実施形態について、図面を参照して詳細に説明する。
【００２０】
図１は、名称設計装置２の構成図である。この名称設計装置２は、ＣＰＵ（Central Processing Unit）と、メモリと、ハードディスクなどの記憶手段（記憶部）と、ネットワークインタフェースとを有するコンピュータとして構成される。
このコンピュータは、ＣＰＵが、メモリ上に読み込んだプログラム（アプリケーションや、その略のアプリとも呼ばれる）を実行することにより、各処理部により構成される制御部（制御手段）を動作させる。
【００２１】
名称設計装置２は、処理部として、入力部２２と、要素分割部（要素抽出部）２３と、要素順序決定部２４と、階層化部２５とを有している。
名称設計装置２の記憶部には、要素分割ルール（要素抽出ルール）３３と、優先度ルール（順序ルール）３４と、階層化ルール３５とが格納される。さらに、記憶部には、入力データ１１と、出力データ１２と、入力データ１１から出力データ１２に加工される過程の中間データとがそれぞれ格納される。
【００２２】
以下、名称設計装置２の各処理部の概要を説明する。この各処理部の詳細は、図３以降の具体例を用いた説明にて、明らかにする。
入力部２２は、例えば、「お客様氏名」を「customerName」に変換するときには、「お客様氏名」を入力データ１１として受け付ける。
要素分割部２３は、要素分割ルール３３を参照して、入力データ１１を最小単位である要素として分割する。
要素順序決定部２４は、優先度ルール３４を参照して、要素分割部２３が分割した各要素の順序を決定する。さらに、要素順序決定部２４は、決定された順序に従って、入力データ１１の各要素を連結することにより、１つの名称を作成する。例えば、「customerName」は、名称の作成結果の一例である。
階層化部２５は、要素順序決定部２４が作成した名称に対して、階層化ルール３５に従って、１つ以上の名称を１つの階層（グループ）に束ねる。この階層構造は、例えば、３つのメンバ変数を含む１つのクラス（オブジェクト）としてＡＰＩ設計に具現化される。そして、階層化部２５は、階層化されたデータを出力データ１２とする。
【００２３】
図２は、図１の名称設計装置２に対して、外部のカスタマイズ機能を付加した構成である。図２の名称設計装置２は、ルール適用部２１が追加されている。
ルール適用部２１は、ユーザから入力されたルール指定データ１３を、各ルールに反映させることで、各処理部の名称設計処理をユーザの要望に沿うようにカスタマイズする。ルール指定データ１３は、要素分割ルール３３、優先度ルール３４、および、階層化ルール３５のうちの少なくとも１つのルールである。
【００２４】
また、ルール指定データ１３は、あらかじめ用意された共通ルールをそのままルール指定データ１３で置き換える（全部指定）こととしてもよい。一方、あらかじめ用意された共通ルールの一部をルール指定データ１３が上書きし、上書きしない残りの部分は共通ルールを用いる（一部指定）こととしてもよい。共通ルールの一部をローカルルールとして書き換えることで、ＡＰＩ設計の共通化方針とは別に、各事業者・組織の文化に沿ったＡＰＩ設計が実現できる。
さらに、ルール適用部２１は、ルール指定データ１３を名称設計装置２内に入力（インポート）するだけでなく、名称設計装置２内の各ルールをルール指定データ１３として出力（エクスポート）することで、複数のユーザで同じルール指定データ１３を共用させてもよい。
【００２５】
このように、ルール適用部２１を介してルール指定データ１３を入出力可能にする構成は、複数の事業者それぞれで異なるＡＰＩを設計するときに、とくに有益である。
例えば、Ｃ社が設計したユーザシステムでは、Ａ社の提供するＷｅｂサービスＳＡと、Ｂ社の提供するＷｅｂサービスＳＢとの両方を呼び出すとする。もし、Ａ社の開発者と、Ｂ社の開発者とで同じルール指定データ１３を共用してパラメータ名を設計していれば、ＷｅｂサービスＳＡと、ＷｅｂサービスＳＢとで、使用されるパラメータ名に整合が取れている。よって、Ｃ社の開発者は、少ない学習コストで、ＷｅｂサービスＳＡと、ＷｅｂサービスＳＢとの両方を呼び出すシステムを構築できる。
一方、Ａ社の開発者と、Ｂ社の開発者とが別々のルールに従ってパラメータ名を設計した場合、Ｃ社の開発者は、不整合のパラメータ群をそれぞれ把握した上で、システムを構築しなくてはいけない。
【００２６】
図３は、各ルールの詳細を示すテーブルデータである。
要素分割ルール３３は、変換前の入力データ１１の要素と、変換後の要素と、要素に付される１つ以上のタグとを対応付けている。要素分割ルール３３として、例えば、変換前の要素を形態素とし、その形態素ごとの品詞をタグとした形態素解析の辞書を用いることができる。さらに、要素分割ルール３３として、変換前の要素を示す第１言語の単語と、変換後の要素を示す第２言語の単語とを対応付ける翻訳用辞典を用いてもよい。
ここで、要素分割ルール３３のタグには、前記した品詞の他に、要素の意味内容を示す情報（顧客など）や、変換を行わない「禁止」を示す情報も含めてもよい。
【００２７】
要素分割部２３は、例えば、「お客様氏名」という入力データ１１に対して、要素分割ルール３３の変換前「お客様」のレコードと、変換前「氏名」のレコードとを参照することで、「お客様」という第１要素と、「氏名」という第２要素とに分割する。
ここで、要素分割ルール３３の変換前→変換後の対応データは、１：１に限定されず、Ｍ：１の対応付けをしてもよい。例えば、図３の要素分割ルール３３では、変換前「顧客」と、変換前「お客様」と、変換前「user」とが同じ変換後「customer」に対応付けられる３：１データである。これにより、異なる事業者で「顧客」と入力しても、「お客様」と入力しても、同じ「customer」に変換されるため、表記ゆれに起因するＡＰＩ名称の違いを防止できる。
【００２８】
優先度ルール３４は、要素順序決定部２４が要素を並び替えた後の各順序（第１順序、第２順序、第３順序、…）の要素の特徴（タグ）を列挙したデータである。
例えば、要素順序決定部２４は、「お客様」という第１要素と、「氏名」という第２要素とについては、優先度ルール３４には該当するレコードが存在しないので、そのままの順序とする。
さらに、図示は省略したが、優先度ルール３４は、要素を並び替えた後の各要素の変換後文字列を連結するときの連結ルールも併せて含めてもよい。例えば、要素「customer」の後に要素「name」を連結するときに、連結ルール「スネークケース」が指定されていたときは「customer_name」となり、連結ルール「キャメルケース」が指定されていたときは「CustomerName」となる。
【００２９】
階層化ルール３５は、各要素のタグについて、そのタグが属する階層名を対応付けるデータである。
例えば、階層化部２５は、「お客様」という第１要素と、「氏名」という第２要素とについては、どのタグ「契約、保守、運用」にも該当しないので、「お客様氏名」は階層化の対象外とする。
なお、階層化ルール３５では、タグと階層とは１：１に限定されない。保守と運用という異なる２つのタグであっても、同じ１つの階層（operator（保守担当））に対応付けてもよい。
【００３０】
図４は、名称設計装置２の実行結果を示す第１例である。
入力部２２は、文字列「顧客電話番号」を、入力データ１１として受け付ける（符号１０１の処理）。
要素分割部２３は、文字列「顧客電話番号」の少なくとも一部を検索キーとして要素分割ルール３３の変換前列から検索することで、「顧客」と「電話番号」という２つの要素を得る。よって、要素分割部２３は、分割前の「顧客電話番号」から、「顧客」の変換後文字列「customer」と、「電話番号」の変換後文字列「ContactTel」という２つの要素に分割する（符号１０２の処理）。
【００３１】
なお、要素分割ルール３３の変換前列には、「電話番号」という要素だけでなく「電話」という要素と、「番号」という要素も存在する。このように候補が複数存在するときには、要素分割部２３は、要素分割ルール３３の上の行（先頭の行）に近いエントリを優先して採用してもよい。または、要素分割部２３は、入力データ１１の文字列と、要素分割ルール３３の変換前列記載の文字列とで一致する文字列長が長い要素ほど優先して採用してもよい。
【００３２】
要素順序決定部２４は、分割された複数の要素間の順序を優先度ルール３４に従って決定する。例えば、要素分割ルール３３には、要素ごとのタグが規定されており、要素「顧客」のタグ「名詞、顧客」と、要素「電話番号」のタグ「名詞、一般」とを取得できる。
要素順序決定部２４は、優先度ルール３４において要素分割ルール３３に規定されたタグごとの順序情報から、符号１０２の処理で分割された今回のタグ情報に該当する順序情報を検索する。ここでは、２つの要素がともに「名詞」であり、優先度ルール３４の第２行「第１順序＝部署名（名詞）、第２順序＝担当名（名詞）」にも該当しないので、今回のタグ情報に該当する順序情報は存在しない。よって、要素順序決定部２４は、「顧客」と「電話番号」という２つの要素の順序を変更せず、そのまま「CustomerContactTel」として連結する（符号１０３の処理）。
【００３３】
階層化部２５は、符号１０３の処理で連結された「CustomerContactTel」をどの階層に属するようにするかを、階層化ルール３５に従って決定する。しかし、今回の要素「顧客」のタグ「名詞、顧客」と、要素「電話番号」のタグ「名詞、一般」とは、階層化ルール３５のどのタグ「契約、保守、運用」にも該当しない。よって、階層化部２５は、「CustomerContactTel」を階層外とし、そのまま出力データ１２として出力する（符号１０４の処理）。
以上、図４を参照して、優先度ルール３４による順序変更を行わず、階層化ルール３５による階層化も行わない第１例を説明した。
【００３４】
図５は、名称設計装置２の実行結果を示す第２例である。図４の第１例と比較すると、図５の第２例は、優先度ルール３４による順序変更を行い、かつ、階層化ルール３５による階層化も行う例である。
入力部２２は、文字列「連絡先緊急時」を、入力データ１１として受け付ける（符号２０１の処理）。
要素分割部２３は、文字列「連絡先緊急時」を要素分割ルール３３の変換前列から検索することで、「連絡先」の変換後文字列「ContactTel」と、「緊急」の変換後文字列「emergency」という２つの要素を得る（符号２０２の処理）。
【００３５】
要素順序決定部２４は、要素分割ルール３３から取得した要素「連絡先」のタグ「名詞、一般」と、要素「緊急」のタグ「形容詞、契約」とをもとに、要素間の順序を優先度ルール３４に従って決定する。ここでは、１つの「名詞」要素と、１つの「形容詞」要素とが存在するので、今回のタグ情報には優先度ルール３４の第１行「第１順序＝形容詞、第２順序＝名詞」が該当する。
よって、タグ「形容詞」の要素「緊急」を第１順序（先頭）とし、タグ「名詞」の要素「連絡先」を第２順序となるように順序を変更する。その変更後の順序に従って、要素順序決定部２４は、２つの要素の変換後の文字列を連結することで「EmergencyContactTel」を生成する（符号２０３の処理）。
【００３６】
階層化部２５は、符号２０３の処理で連結された「EmergencyContactTel」の構成要素のタグ集合「名詞、一般、形容詞、契約」を階層化ルール３５のタグ列から検索する。今回は階層化ルール３５の第１行のタグ「契約」に該当する。よって、階層化部２５は、文字列「EmergencyContactTel」を階層化ルール３５の第１行の階層名「contractor(契約担当）」に階層化（グループ化）する（符号２０４の処理）。ここでは、階層化の表記として、ＪＳＯＮ（JavaScript Object Notation）形式を用いている。このように、文字列「連絡先緊急時」を「EmergencyContactTel」として階層「contractor(契約担当）」に追加した。
さらに、符号２０４の処理で階層化された「EmergencyContactTel」には、「03xxxxxxxx」というサンプル値が対応付けられている。このサンプル値は、要素分割ルール３３として、要素「連絡先」に対応付けられているものを、階層化部２５が読み出して利用した（図示省略）。
【００３７】
なお、階層「contractor(契約担当）」には以前に別の文字列として、「通常連絡先」を示す「weekdayContactTel」のエントリも存在していた。名称設計装置２は、入力データ１１の処理が終わった段階で、階層化された各データを出力データ１２とする（符号２０５の処理）。
以上、図５では、要素分割ルール３３→優先度ルール３４→階層化ルール３５の順にルールを適用した。一方、要素分割ルール３３→優先度ルール３４だけ適用してもよいし、要素分割ルール３３→階層化ルール３５だけ適用してもよい。
【００３８】
図６は、名称設計装置２の実行結果を示す第３例である。この第３例は、階層化部２５による処理結果をもとに、階層化ルール３５を用いたときの整合性のとれた名称設計の効果を説明するものである。
まず、入力データ１１として、符号３０１に示す４つの文字列（パラメータ）をＡＰＩ設計に組み込む旨の依頼を開発者Ａ，Ｂがそれぞれ受けたとする。
開発者Ａは、「顧客」、「トラブル問合わせ先」という人物に着目した階層化の出力データ１２を作成した（符号３０２）。一方、開発者Ｂは、「電話番号」、「メールアドレス」というデータ形式に着目した階層化の出力データ１２を作成した（符号３０３）。このように、同じデータを扱う場合でも、開発者の個人差により、ＡＰＩの設計結果にばらつきが生じてしまう。
【００３９】
そこで、符号３０４に示す階層化ルール３５をあらかじめ用意しておいた名称設計装置２を、開発者Ａ，Ｂに使用させる。この階層化ルール３５は、もし、入力データ１１に階層化ルール３５の第１列の要素が含まれている場合、その入力データ１１を第２列の階層名が示す階層にグループ化するとともに、第１列の要素を示す文字列を削除する（第３列の削除フラグが○の場合）ことを示す。
例えば、符号３０１の「顧客電話番号」には、「顧客」という要素が含まれているので、階層化部２５は、「顧客電話番号」から「顧客」を削除した「電話番号」を、階層「顧客」の下に配置する。
これにより、データ形式に着目した階層化をするクセがある開発者Ｂであっても、名称設計装置２を用いることで、符号３０２に示す開発者Ａの階層化結果と整合が取れたものを得ることができる。
【００４０】
以上説明した本実施形態では、各種ルール（要素分割ルール３３、優先度ルール３４、階層化ルール３５）に沿って、入力データ１１から出力データ１２を名称設計装置２に作成させる。これにより、開発者のクセが入力データ１１に含まれていたとしても、各種ルールを適用する段階で整合性の取れた出力データ１２を作成することができる。
さらに、名称設計装置２の各種ルールに用いるタグとして、形容詞、動詞などの品詞や、時間、場所などの抽象的な定義を用いることにより、各種ルールの定義数（テーブルのレコード数）を削減でき、名称設計装置２を動作させるときの事前の負担を減らすことができる。
一方、非特許文献１などの従来の技術では、単に要素を日本語から英語に変換するだけなので、要素の順序などの開発者のクセが変換後もそのまま残ってしまう。
【符号の説明】
【００４１】
２      名称設計装置
１１    入力データ
１２    出力データ
１３    ルール指定データ
２１    ルール適用部
２２    入力部
２３    要素分割部（要素抽出部）
２４    要素順序決定部
２５    階層化部
３３    要素分割ルール（要素抽出ルール）
３４    優先度ルール（順序ルール）
３５    階層化ルール
【図１】
2018142126.tif 000003
【図２】
2018142126.tif 000004
【図３】
2018142126.tif 000005
【図４】
2018142126.tif 000006
【図５】
2018142126.tif 000007
【図６】
2018142126.tif 000008