(57)【特許請求の範囲】
【請求項１】
親階層のオブジェクトである１以上の親オブジェクトと、各親オブジェクトを識別する親識別子と、各親オブジェクトに対する子の階層のオブジェクトである複数の子オブジェクトと、一の子オブジェクトを識別する子識別子であり、基準となる子識別子である基準子識別子とが記憶される識別子記憶部と、
前記基準子識別子と、当該基準子識別子に対応する親階層の親識別子との共通する部分である共通部を特定する共通部特定部と、
子識別子における前記共通部以外の部分であり、変化する部分である変化部を、前記基準子識別子から規則的に変化するように生成する変化部生成部と、
前記共通部特定部が特定した共通部と、前記変化部生成部が生成した変化部とを有する識別子であり、前記基準子識別子によって識別される子オブジェクトと同じ親オブジェクトを有する子オブジェクトの識別子である子識別子を前記識別子記憶部に蓄積する蓄積部と、を備えた識別子生成装置。
【請求項２】
前記識別子記憶部では、複数の親オブジェクトと、当該複数の親オブジェクトにそれぞれ対応する複数の親識別子と、各親オブジェクトにそれぞれ対応する複数の子オブジェクトと、一の子オブジェクトを識別する基準子識別子とが記憶されており、
前記共通部特定部は、基準子識別子に対応する親識別子については、当該基準子識別子と、当該親識別子との共通する部分である共通部を特定し、基準子識別子に対応しない親識別子については、基準子識別子と親識別子とを用いて特定した共通部に対応する親識別子の部分である共通部を特定し、
前記変化部生成部は、各親識別子に対応する子識別子の変化部を、前記基準子識別子から規則的に変化するように生成し、
前記蓄積部は、親識別子ごとに、共通部及び変化部を有する子識別子を蓄積する、請求項１記載の識別子生成装置。
【請求項３】
前記蓄積部は、前記識別子記憶部で記憶されている親識別子と子識別子との共通する部分が存在しなかった場合に、前記変化部生成部が生成した変化部である子識別子を前記識別子記憶部に蓄積する、請求項１または請求項２記載の識別子生成装置。
【請求項４】
前記共通部特定部は、前記親識別子と前記子識別子との共通する部分であって、あらかじめ決められた文字でない部分である共通部を特定する、請求項１から請求項３のいずれか記載の識別子生成装置。
【請求項５】
前記識別子記憶部で記憶される基準子識別子は、二以上の文字種から構成されるものであり、
前記変化部生成部は、前記二以上の文字種のうち、一の文字種に対応する部分のみを変化させた変化部を生成する、請求項１から請求項４のいずれか記載の識別子生成装置。
【請求項６】
前記変化部生成部は、あらかじめ決められた文字でない部分を変化させた変化部を生成する、請求項１から請求項５のいずれか記載の識別子生成装置。
【請求項７】
子識別子を受け付け、当該子識別子を前記識別子記憶部に蓄積する受付部をさらに備え、
前記変化部生成部は、前記受付部による基準子識別子の受け付けに応じたタイミングで、当該基準子識別子から規則的に変化するように変化部を生成する、請求項１から請求項６のいずれか記載の識別子生成装置。
【請求項８】
前記識別子記憶部では、子オブジェクトに対する子の階層のオブジェクトである複数の孫オブジェクトも記憶されており、
同じ親オブジェクトに対応する複数の子識別子の変化部において、前記変化部生成部が規則的に変化させる部分である第１部分を特定する第１部分特定部と、
前記変化部における前記第１部分以外の部分である第２部分を、子識別子の当該第２部分から規則的に変化するように生成する第２部分生成部と、をさらに備え、
前記蓄積部は、各孫オブジェクトを識別する識別子であり、当該孫オブジェクトに対応する子識別子の共通部と、当該孫オブジェクトに対応する子識別子の第１部分と、当該孫オブジェクトに対応する子識別子から生成された第２部分とを有する識別子である孫識別子を前記識別子記憶部に蓄積する、請求項１から請求項７のいずれか記載の識別子生成装置。
【請求項９】
前記オブジェクトは、組織における階層化された部署名である、請求項１から請求項８のいずれか記載の識別子生成装置。
【請求項１０】
親階層のオブジェクトである１以上の親オブジェクトと、各親オブジェクトを識別する親識別子と、各親オブジェクトに対する子の階層のオブジェクトである複数の子オブジェクトと、一の子オブジェクトを識別する子識別子であり、基準となる子識別子である基準子識別子とが記憶される識別子記憶部と、共通部特定部と、変化部生成部と、蓄積部とを用いて処理される識別子生成方法であって、
前記共通部特定部が、前記基準子識別子と、当該基準子識別子に対応する親階層の親識別子との共通する部分である共通部を特定する共通部特定ステップと、
前記変化部生成部が、子識別子における前記共通部以外の部分であり、変化する部分である変化部を、前記基準子識別子から規則的に変化するように生成する変化部生成ステップと、
前記蓄積部が、前記共通部特定ステップで特定した共通部と、前記変化部生成ステップで生成した変化部とを有する識別子であり、前記基準子識別子によって識別される子オブジェクトと同じ親オブジェクトを有する子オブジェクトの識別子である子識別子を前記識別子記憶部に蓄積する蓄積ステップと、を備えた識別子生成方法。
【請求項１１】
親階層のオブジェクトである１以上の親オブジェクトと、各親オブジェクトを識別する親識別子と、各親オブジェクトに対する子の階層のオブジェクトである複数の子オブジェクトと、一の子オブジェクトを識別する子識別子であり、基準となる子識別子である基準子識別子とが記憶される識別子記憶部にアクセス可能なコンピュータを、
前記基準子識別子と、当該基準子識別子に対応する親階層の親識別子との共通する部分である共通部を特定する共通部特定部、
子識別子における前記共通部以外の部分であり、変化する部分である変化部を、前記基準子識別子から規則的に変化するように生成する変化部生成部、
前記共通部特定部が特定した共通部と、前記変化部生成部が生成した変化部とを有する識別子であり、前記基準子識別子によって識別される子オブジェクトと同じ親オブジェクトを有する子オブジェクトの識別子である子識別子を前記識別子記憶部に蓄積する蓄積部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、識別子を自動生成する識別子生成装置等に関する。
【背景技術】
【０００２】
従来、数値データの分析や編集等のために表計算ソフトが使用されている（例えば、特許文献１参照）。その表計算ソフトでは、自動的に連続した番号を生成することができた。例えば、１０１と１０２を入力すると、それに続く連続した番号である１０３，１０４，…が自動的に生成される機能があった。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】「表計算ソフト」、［ｏｎｌｉｎｅ］、２０１１年５月２２日、［２０１１年６月２９日検索］、ウィキペディア、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｊａ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ／ｗｉｋｉ／％Ｅ８％Ａ１％Ａ８％Ｅ８％Ａ８％８８％Ｅ７％ＡＥ％９７％Ｅ３％８２％ＢＤ％Ｅ３％８３％９５％Ｅ３％８３％８８＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、表計算ソフトでは、単に連番を生成することができるだけであり、階層関係を考慮した規則的な識別子の生成を行うことはできなかった。
【０００５】
本発明は、上記課題を解決するためになされたものであり、階層関係も考慮して、規則的な識別子の生成を行うことができる識別子生成装置等を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明による識別子生成装置は、親階層のオブジェクトである１以上の親オブジェクトと、各親オブジェクトを識別する親識別子と、各親オブジェクトに対する子の階層のオブジェクトである複数の子オブジェクトと、一の子オブジェクトを識別する子識別子であり、基準となる子識別子である基準子識別子とが記憶される識別子記憶部と、基準子識別子と、基準子識別子に対応する親階層の親識別子との共通する部分である共通部を特定する共通部特定部と、子識別子における共通部以外の部分であり、変化する部分である変化部を、基準子識別子から規則的に変化するように生成する変化部生成部と、共通部特定部が特定した共通部と、変化部生成部が生成した変化部とを有する識別子であり、基準子識別子によって識別される子オブジェクトと同じ親オブジェクトを有する子オブジェクトの識別子である子識別子を識別子記憶部に蓄積する蓄積部と、を備えたものである。
このような構成により、親識別子から共通部を継承すると共に、変化部を基準子識別子から変化させることによって、子オブジェクトに対応する子識別子を自動的に生成することができる。したがって、階層関係を考慮した子識別子の生成が可能となる。
【０００７】
また、本発明による識別子生成装置では、識別子記憶部では、複数の親オブジェクトと、複数の親オブジェクトにそれぞれ対応する複数の親識別子と、各親オブジェクトにそれぞれ対応する複数の子オブジェクトと、一の子オブジェクトを識別する基準子識別子とが記憶されており、共通部特定部は、基準子識別子に対応する親識別子については、基準子識別子と、親識別子との共通する部分である共通部を特定し、基準子識別子に対応しない親識別子については、基準子識別子と親識別子とを用いて特定した共通部に対応する親識別子の部分である共通部を特定し、変化部生成部は、各親識別子に対応する子識別子の変化部を、基準子識別子から規則的に変化するように生成し、蓄積部は、親識別子ごとに、共通部及び変化部を有する子識別子を蓄積してもよい。
このような構成により、基準子識別子に対応しない親識別子に対応する子識別子をも自動的に生成することができるようになる。そして、その際にも、親識別子の共通部が、その親識別子に対応する子識別子に継承されることになる。
【０００８】
また、本発明による識別子生成装置では、蓄積部は、識別子記憶部で記憶されている親識別子と子識別子との共通する部分が存在しなかった場合に、変化部生成部が生成した変化部である子識別子を識別子記憶部に蓄積してもよい。
このような構成により、親識別子と子識別子とに共通する部分が存在しなかった場合には、親識別子から継承する部分のない子識別子を生成することができるようになる。
【０００９】
また、本発明による識別子生成装置では、共通部特定部は、親識別子と子識別子との共通する部分であって、あらかじめ決められた文字でない部分である共通部を特定してもよい。
このような構成により、共通部に含まれない文字をあらかじめ特定することができるようになる。その結果、ある文字については、親識別子から子識別子に継承されないようにすることができる。
【００１０】
また、本発明による識別子生成装置では、識別子記憶部で記憶される基準子識別子は、二以上の文字種から構成されるものであり、変化部生成部は、二以上の文字種のうち、一の文字種に対応する部分のみを変化させた変化部を生成してもよい。
このような構成により、例えば、変化部において、アルファベットの部分は変化させずに、数字だけを変化させるようにすることができうる。
【００１１】
また、本発明による識別子生成装置では、変化部生成部は、あらかじめ決められた文字でない部分を変化させた変化部を生成してもよい。
このような構成により、例えば、変化部において、「０」の部分は変化させずに、その他の部分だけを変化させるようにすることができうる。
【００１２】
また、本発明による識別子生成装置では、子識別子を受け付け、子識別子を識別子記憶部に蓄積する受付部をさらに備え、変化部生成部は、受付部による基準子識別子の受け付けに応じたタイミングで、基準子識別子から規則的に変化するように変化部を生成してもよい。
このような構成により、基準子識別子が入力されると、それに応じて自動的に他の子識別子が生成されるようにすることができる。
【００１３】
また、本発明による識別子生成装置では、識別子記憶部では、子オブジェクトに対する子の階層のオブジェクトである複数の孫オブジェクトも記憶されており、同じ親オブジェクトに対応する複数の子識別子の変化部において、変化部生成部が規則的に変化させる部分である第１部分を特定する第１部分特定部と、変化部における第１部分以外の部分である第２部分を、子識別子の第２部分から規則的に変化するように生成する第２部分生成部と、をさらに備え、蓄積部は、各孫オブジェクトを識別する識別子であり、孫オブジェクトに対応する子識別子の共通部と、孫オブジェクトに対応する子識別子の第１部分と、孫オブジェクトに対応する子識別子から生成された第２部分とを有する識別子である孫識別子を識別子記憶部に蓄積してもよい。
このような構成により、孫オブジェクトに対応する孫識別子をも自動的に生成することができる。
【００１４】
また、本発明による識別子生成装置では、オブジェクトは、組織における階層化された部署名であってもよい。
このような構成により、組織の部署名、例えば、部や課、グループ等に対応する識別子を自動的に生成することができるようになる。
【発明の効果】
【００１５】
本発明による識別子生成装置等によれば、階層関係も考慮して、規則的な識別子の生成を行うことができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態１による識別子生成装置の構成を示すブロック図
【図２】同実施の形態による識別子生成装置の動作を示すフローチャート
【図３】同実施の形態による識別子生成装置の動作を示すフローチャート
【図４】同実施の形態における識別子の生成の一例について説明するための図
【図５】同実施の形態における識別子の生成の一例について説明するための図
【図６】同実施の形態における識別子の生成の一例について説明するための図
【図７】同実施の形態における識別子の生成の一例について説明するための図
【図８】同実施の形態における識別子の生成の一例について説明するための図
【図９】同実施の形態における識別子の生成の一例について説明するための図
【図１０】同実施の形態における識別子の生成の一例について説明するための図
【図１１】同実施の形態における識別子の生成の一例について説明するための図
【図１２】同実施の形態における識別子の生成の一例について説明するための図
【図１３】同実施の形態における識別子記憶部で記憶されている情報の一例を示す図
【図１４】同実施の形態における識別子記憶部で記憶されている情報の一例を示す図
【図１５】同実施の形態における識別子記憶部で記憶されている情報の一例を示す図
【図１６】同実施の形態における識別子記憶部で記憶されている情報の一例を示す図
【図１７】同実施の形態における識別子記憶部で記憶されている情報の一例を示す図
【図１８】同実施の形態における識別子記憶部で記憶されている情報の一例を示す図
【図１９】同実施の形態における識別子の生成の一例について説明するための図
【図２０】同実施の形態における識別子の生成の一例について説明するための図
【図２１】同実施の形態における識別子記憶部で記憶されている情報の一例を示す図
【図２２】同実施の形態におけるコンピュータシステムの外観一例を示す模式図
【図２３】同実施の形態におけるコンピュータシステムの構成の一例を示す図
【発明を実施するための形態】
【００１７】
以下、本発明による識別子生成装置について、実施の形態を用いて説明する。なお、以下の実施の形態において、同じ符号を付した構成要素及びステップは同一または相当するものであり、再度の説明を省略することがある。
【００１８】
（実施の形態１）
本発明の実施の形態１による識別子生成装置について、図面を参照しながら説明する。本実施の形態による識別子生成装置は、階層化されたオブジェクトに対応する子階層の識別子を自動的に生成することができるものである。
【００１９】
図１は、本実施の形態による識別子生成装置１の構成を示すブロック図である。本実施の形態による識別子生成装置１は、識別子記憶部１１と、受付部１２と、表示部１３と、共通部特定部１４と、変化部生成部１５と、第１部分特定部１６と、第２部分生成部１７と、蓄積部１８とを備える。
【００２０】
識別子記憶部１１では、親階層のオブジェクトである１以上の親オブジェクトと、各親オブジェクトを識別する親識別子と、各親オブジェクトに対する子の階層のオブジェクトである複数の子オブジェクトと、一の子オブジェクトを識別する子識別子であり、基準となる子識別子である基準子識別子とが記憶される。一の親オブジェクトには、１以上の子オブジェクトが対応付けられているものとする。なお、通常は、一の親オブジェクトに２以上の子オブジェクトが対応付けられているものとする。また、子オブジェクトには、一の親オブジェクトが対応付けられているものとする。すなわち、親オブジェクトと子オブジェクトとは、木構造における親子の関係にあることになる。また、親オブジェクトには、その親オブジェクトに対する親の階層のオブジェクトである祖父オブジェクトが存在してもよい。さらに、それよりも階層が上である（階層が親側である）オブジェクトが存在してもよい。また、子オブジェクトには、その子オブジェクトに対する子の階層のオブジェクトである孫オブジェクトが存在してもよい。さらに、それよりも階層が下である（階層が子側である）オブジェクトが存在してもよい。なお、本実施の形態では、主に親子関係のオブジェクト、または親子孫関係のオブジェクトについて説明する。そのオブジェクトは、全体の木構造における部分木構造を形成するものであってもよい。識別子記憶部１１で記憶されている親オブジェクトは、複数であってもよい。すなわち、識別子記憶部１１では、複数の親オブジェクトと、その複数の親オブジェクトにそれぞれ対応する複数の親識別子と、その各親オブジェクトにそれぞれ対応する複数の子オブジェクトと、一の子オブジェクトを識別する基準子識別子とが記憶されてもよい。オブジェクトは、階層関係を有するもの、あるいは、木構造の各ノードとなるものの名称であってもよい。例えば、オブジェクトは、組織における階層化された部署名であってもよく、その部や課、グループ等を構成する構成員名であってもよく、その組織名であってもよい。例えば、親オブジェクトが部の名称であり、子オブジェクトが課の名称であり、孫オブジェクトが構成員名であってもよい。また、例えば、親オブジェクトが組織の名称であり、子オブジェクトが部の名称であってもよい。また、例えば、親オブジェクトが課の名称であり、子オブジェクトがグループの名称であってもよい。また、例えば、親オブジェクトがグループの名称であり、子オブジェクトが構成員名であってもよい。また、各階層のオブジェクトは、順序を持っているものであってもよい。その順序は、例えば、テーブル（表）における上下の順序であってもよい。なお、親識別子、子識別子、後述する孫識別子等のオブジェクトを識別する識別子は、通常、文字（キャラクタ）の並びである。文字は、数字を含んでもよく、アルファベットを含んでもよく、カタカナや平仮名を含んでもよく、漢字を含んでもよく、記号を含んでもよく、その他の文字を含んでもよい。本実施の形態では、識別子が数字とアルファベットから構成される場合について主に説明する。なお、後述するように、蓄積部１８が、基準子識別子以外の子識別子や、孫オブジェクトを識別する識別子である孫識別子を識別子記憶部１１に蓄積する。したがって、その蓄積の後には、識別子記憶部１１において、親オブジェクトと、その親オブジェクトを識別する親識別子と、親オブジェクトに対応する複数の子オブジェクトと、その子オブジェクトを識別する子識別子とが記憶されるようになる。さらに、孫オブジェクトも存在する場合には、蓄積部１８による蓄積の後には、識別子記憶部１１において、子オブジェクトに対応する複数の孫オブジェクト、及び、その孫オブジェクトを識別する孫識別子も記憶されるようになる。なお、識別子記憶部１１では、オブジェクトの親子関係（木構造）を示す情報も記憶されているものとする。その情報は、例えば、各オブジェクト（ノード）の識別子と、そのオブジェクトの親のオブジェクトの識別子とを対応付ける情報であってもよい。その対応付けは、例えば、同じレコードに含まれることによって示されてもよく、ポインタ等を用いて示されてもよく、その他の方法によって示されてもよい。また、ある親オブジェクトの子（子ノード）である子オブジェクトをそれぞれ識別する複数の子識別子を、兄弟の子識別子と呼ぶこともある。ある子オブジェクトの子（子ノード）である孫オブジェクトをそれぞれ識別する複数の孫識別子についても、兄弟の孫識別子と呼ぶこともある。また、識別子記憶部１１において、ある親識別子に対応する子識別子が１個だけ記憶されている場合には、その子識別子を基準子識別子と考えてもよい。一方、ある親識別子に対応する２以上の子識別子が記憶されている場合には、そのいずれかを基準子識別子と考えてもよい。その場合に、例えば、子識別子によって識別される子オブジェクトが順序を持っているのであれば、順序が後である子オブジェクトに対応する子識別子を基準子識別子と考えてもよく、あるいは、ランダムに選択した子識別子を基準子識別子と考えてもよく、その他の方法によって複数の子識別子から基準子識別子を選んでもよい。
【００２１】
識別子記憶部１１にオブジェクトや識別子が記憶される過程は問わない。例えば、記録媒体を介してオブジェクトや識別子が識別子記憶部１１で記憶されるようになってもよく、通信回線等を介して送信されたオブジェクトや識別子が識別子記憶部１１で記憶されるようになってもよく、受付部１２が受け付けたオブジェクトや識別子が識別子記憶部１１で記憶されるようになってもよく、あるいは、蓄積部１８が蓄積した識別子が識別子記憶部１１で記憶されるようになってもよい。識別子記憶部１１での記憶は、ＲＡＭ等における一時的な記憶でもよく、あるいは、長期的な記憶でもよい。識別子記憶部１１は、所定の記録媒体（例えば、半導体メモリや磁気ディスク、光ディスクなど）によって実現されうる。また、オブジェクトや識別子は、それらの情報の格納されている位置を示すポインタやアドレスの情報であってもよい。
【００２２】
受付部１２は、子識別子を受け付ける。そして、受付部１２は、受け付けた子識別子を識別子記憶部１１に蓄積する。その蓄積の際に、受付部１２は、受け付けた子識別子が識別する子オブジェクトに対応付けて蓄積してもよい。受付部１２が受け付ける子識別子は、基準子識別子であってもよい。なお、受付部１２は、基準子識別子以外の子識別子をも受け付けてもよい。また、受付部１２は、子識別子以外の情報を受け付けてもよい。受付部１２は、例えば、親識別子を受け付けてもよく、親オブジェクトを受け付けてもよく、子オブジェクトを受け付けてもよく、孫オブジェクトを受け付けてもよく、その他のオブジェクトや識別子を受け付けてもよく、あるいは、その他の情報を受け付けてもよい。また、受付部１２は、子識別子以外の情報を受け付けた場合に、その受け付けた情報を識別子記憶部１１に蓄積してもよい。その蓄積の際に、受付部１２は、受け付けた情報が対応する識別子やオブジェクト等に対応付けて蓄積してもよい。
【００２３】
受付部１２は、例えば、入力デバイス（例えば、キーボードやマウス、タッチパネルなど）から入力された子識別子等を受け付けてもよく、有線もしくは無線の通信回線を介して送信された子識別子等を受信してもよく、所定の記録媒体（例えば、光ディスクや磁気ディスク、半導体メモリなど）から読み出された子識別子等を受け付けてもよい。なお、受付部１２は、受け付けを行うためのデバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい。また、受付部１２は、ハードウェアによって実現されてもよく、あるいは所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００２４】
表示部１３は、識別子記憶部１１で記憶されているオブジェクトや識別子を表示する。そのオブジェクトや識別子を表示する際に、表示部１３は、それらの親子関係（木構造）が分かるように表示することが好適である。例えば、表示部１３は、オブジェクトや識別子を木構造で表示してもよく、テーブル形式で表示してもよく、あるいは、その他の親子関係が分かる方法で表示してもよい。なお、表示部１３は、それらの表示を行う表示デバイス（例えば、ＣＲＴや液晶ディスプレイなど）を含んでもよく、あるいは含まなくてもよい。また、表示対象の表示は、別の装置においてなされてもよい。その場合には、表示部１３は、装置の外部に対して表示対象の情報を送信するものであってもよい。また、表示部１３は、ハードウェアによって実現されてもよく、あるいは表示デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００２５】
共通部特定部１４は、識別子記憶部１１で記憶されている基準子識別子と、その基準子識別子に対応する親階層の親識別子との共通する部分である共通部を特定する。この共通部は、後述する処理から明らかなように、親識別子から子識別子に継承される部分となる。なお、基準子識別子に対応する親識別子とは、基準子識別子によって識別される子オブジェクトの親（親ノード）である親オブジェクトを識別する親識別子のことである。通常、子識別子と親識別子とは、同じ文字数であるとする。そして、共通部特定部１４は、各文字の位置（桁）ごとに両識別子を比較し、両識別子で共通する１以上の文字である共通部を取得する。なお、共通部は、通常、隣接する１以上の文字の並びである。したがって、共通部特定部１４は、両識別子を先頭側から比較し、先頭の文字から、一致しなくなる文字の直前の文字までの文字の並びを共通部として取得してもよく、または、両識別子を後端側から比較し、後端の文字から、一致しなくなる文字の直前の文字までの文字の並びを共通部として取得してもよい。先頭の文字とは、文字が数字である場合には最上位の桁となる文字であり、日本語や英語の場合には、最も左側の文字となる。後端の文字とは、文字が数字である場合には最下位の桁となる文字であり、日本語や英語の場合には、最も右側の文字となる。本実施の形態では、共通部が、両識別子の先頭側の一致した文字の連続した並びである場合について主に説明する。例えば、親識別子が「Ａ１２３００」であり、基準子識別子が「Ａ１２３４５」である場合には、共通部特定部１４は、先頭の文字から４文字目までの文字の並びである共通部「Ａ１２３」を特定する。ここで、共通部を特定するとは、その特定された共通部を図示しない記録媒体に蓄積することであってもよく、その特定された共通部を構成する各文字に対応付けてフラグ等を設定することであってもよく、あるいは、特定対象の文字の位置（桁の位置）を示す情報（例えば、先頭から４文字等）を図示しない記録媒体に蓄積することであってもよい。他の情報が特定される場合にも同様であるとする。ここで、基準子識別子と、それに対応する親識別子とを用いて共通部が特定されるため、一の親識別子に対して一の共通部が特定されることになる。なお、共通部特定部１４は、あらかじめ決められた文字を含まない共通部を特定してもよく、あるいは、そうでなくてもよい。すなわち、共通部特定部１４は、親識別子と子識別子との共通する部分であって、あらかじめ決められた文字でない部分である共通部を特定してもよく、そうでなくてもよい。そのあらかじめ決められた文字は、図示しない記録媒体で記憶されており、共通部特定部１４は、そのあらかじめ決められた文字を読み出し、その文字を含まない共通部を特定してもよい。例えば、そのあらかじめ決められた文字は、「０」であってもよい。その場合には、例えば、親識別子が「１０００」であり、基準子識別子が「１０１０」であるとすると、共通部特定部１４は、先頭の文字から１文字目までの文字の並びである共通部「１」を特定してもよい。
【００２６】
また、識別子記憶部１１で複数の親識別子が記憶されており、基準子識別子に対応しない親識別子が存在する場合には、共通部特定部１４は、基準子識別子に対応する親識別子については、その基準子識別子と、その親識別子との共通する部分である共通部を特定し、基準子識別子に対応しない親識別子については、基準子識別子と親識別子とを用いて特定した共通部に対応する親識別子の部分である共通部を特定してもよい。具体的には、識別子記憶部１１において、親識別子「１００」、「２００」と、親識別子「１００」に対応する基準子識別子「１１０」とが記憶されていたとする。その場合には、例えば、共通部特定部１４は、基準子識別子「１１０」に対応する親識別子「１００」については、先頭の共通部「１」を特定し、基準子識別子「１１０」に対応しない親識別子「２００」については、その共通部「１」に対応する位置の文字である共通部「２」を特定する。なお、識別子記憶部１１で複数の親識別子が記憶されており、各親識別子に対応する基準子識別子も記憶されている場合には、親識別子ごとに、その親識別子に対応する共通部を、その親識別子と、その親識別子に対応する基準子識別子とを用いて生成してもよい。
【００２７】
変化部生成部１５は、子識別子における共通部以外の部分であり、変化する部分である変化部を、基準子識別子から規則的に変化するように生成する。例えば、共通部が先頭側（後端側）の文字列である場合には、変化部は、識別子の先頭（後端）から共通部に対応する文字の並びを除いた部分となる。また、変化部を、基準子識別子から規則的に変化するように生成するとは、基準子識別子における変化部に対応する部分の文字列から、規則的に変化するように、変化部を生成することである。例えば、基準子識別子における変化部に対応する部分の文字列が数字である場合には、規則的な変化は、Ｎごとのインクリメントであってもよく、Ｎごとのデクリメントであってもよい。ここで、Ｎは１以上の整数である。また、例えば、基準子識別子における変化部に対応する部分の文字列がアルファベットやカタカナ、平仮名である場合には、規則的な変化は、アルファベット順や五十音順にＭ個だけ後のアルファベット等に変えることであってもよく、アルファベット順や五十音順にＭ個だけ前のアルファベット等に変えることであってもよい。ここで、Ｍは１以上の整数である。また、例えば、基準子識別子における変化部に対応する部分の文字列が漢字や記号である場合には、規則的な変化は、その漢字等に対応する文字コードにおける数字やアルファベット等を数字順やアルファベット順にＬずつ変化させることであってもよく、その逆順にＬずつ変化させることであってもよい。本実施の形態では、数字に対する規則的な変化が、１ごとのインクリメントである場合について主に説明する。なお、変化部が複数の文字の並びである場合には、後端側（最下位の桁側）から順番に変化させてもよく、先頭側（最上位の桁側）から順番に変化させてもよい。本実施の形態では、前者の場合について主に説明する。また、基準子識別子が二以上の文字種から構成されるものであり、変化部に、その二以上の文字種が含まれる場合に、変化部生成部１５は、一の文字種に対応する部分のみを変化させてもよい。文字種とは、文字の種類であって、例えば、数字、アルファベット、カタカナ、平仮名、漢字、記号等である。その一の文字種を示す情報が図示しない記録媒体で記憶されており、変化部生成部１５は、その情報を参照し、その一の文字種に対応する部分のみを変化させることによって変化部を生成してもよい。本実施の形態では、変化部生成部１５が、数字に対応する部分のみを変化させて変化部を生成する場合について主に説明する。例えば、基準子識別子の変化部に対応する部分が「ａ１２」や、「１２ａ」、「１ａ２」である場合に、変化部生成部１５は、それらを基準として、変化部「ａ１３」、「ａ１４」…や、変化部「１３ａ」、「１４ａ」…、変化部「１ａ３」、「１ａ４」…等を生成してもよい。また、変化部生成部１５は、あらかじめ決められた文字でない部分を変化させた変化部を生成してもよい。そのあらかじめ決められた文字は、図示しない記録媒体で記憶されており、変化部生成部１５は、そのあらかじめ決められた文字を読み出し、その文字でない部分を変化させた変化部を生成してもよい。例えば、そのあらかじめ決められた文字は、「０」であってもよい。その場合には、例えば、基準子識別子の変化部に対応する部分が「１０」である場合に、変化部生成部１５は、それを基準として、変化部「２０」、「３０」…を生成してもよい。変化部生成部１５は、基準子識別子を用いて、その基準子識別子と兄弟関係にある子識別子の変化部を生成する。より具体的には、変化部生成部１５は、基準子識別子を用いて、その基準子識別子で識別される子オブジェクトと兄弟関係にある子オブジェクトのうち、対応する子識別子が識別子記憶部１１で記憶されていない子オブジェクトの数だけの変化部を生成する。なお、規則的な変化によって、変化部の生成対象となる子オブジェクトの数だけの変化部を生成することができない場合には、変化部生成部１５は、規則的な変化によって生成できる個数の変化部だけを生成してもよい。例えば、変化部の生成対象となる子オブジェクトの数が５個であり、変化部生成部１５が変化部「６０」、「７０」、「８０」、「９０」を作成した場合には、それ以上の変化部を生成することはできない。「９０」の「９」を１だけインクリメントすると、桁上がりが発生するからである。したがって、その場合には、変化部生成部１５は変化部を４個生成するだけであってもよい。変化部生成部１５は、生成した変化部を図示しない記録媒体に蓄積してもよい。ここで、基準子識別子を用いて、兄弟関係にある複数の子識別子における変化部が生成されるため、一の親識別子に対して、その親識別子と親子関係にある子識別子に関する一以上の変化部が生成されることになる。
【００２８】
なお、識別子記憶部１１において、複数の親識別子と、一の基準子識別子とが記憶されている場合に、変化部生成部１５は、各親識別子に対応する子識別子の変化部を、その基準子識別子から規則的に変化するように生成してもよい。具体的には、基準子識別子と兄弟関係にある子識別子については、変化部生成部１５は、前述のように変化部を生成する。一方、基準子識別子と兄弟関係にない子識別子については、変化部生成部１５は、基準子識別子における変化部に対応する部分を１個目の変化部として生成し、その１個目の変化部から規則的に変化する２個目以降の変化部を生成してもよい。例えば、基準子識別子における変化部に対応する部分が「１２」である場合に、変化部生成部１５は、その基準子識別子と兄弟関係にない子識別子の変化部「１２」、「１３」、「１４」…を生成してもよい。この場合にも、一の親識別子に対して、その親識別子と親子関係にある子識別子に関する一以上の変化部が生成されることになる。
【００２９】
なお、変化部生成部１５は、受付部１２による基準子識別子の受け付けに応じたタイミングで、その基準子識別子から規則的に変化するように変化部を生成してもよい。すなわち、ある基準子識別子が受け付けられた場合に、その基準子識別子を用いた変化部の生成が行われてもよい。受付部１２による基準子識別子の受け付けに応じたタイミングとは、受付部１２が基準子識別子を受け付けたタイミングであってもよく、その受け付けに応じた基準子識別子の蓄積が行われたタイミングであってもよく、あるいは、その受け付けに応じたその他のタイミングであってもよい。
【００３０】
次の第１部分特定部１６及び第２部分生成部１７は、孫識別子を生成する場合に用いられる構成要素である。したがって、孫識別子を生成する必要がない場合には、識別子生成装置１は、第１部分特定部１６及び第２部分生成部１７を備えていなくてもよい。
【００３１】
第１部分特定部１６は、同じ親オブジェクトに対応する複数の子識別子の変化部において、変化部生成部１５が規則的に変化させる部分である第１部分を特定する。例えば、変化部生成部１５が変化部「１２」、「１３」、「１４」、「１５」を生成した場合には、後端の１文字「２」、「３」、「４」、「５」が各変化部に対応する第１部分となる。したがって、一の子識別子に対して一の第１部分が特定されることになる。
【００３２】
第２部分生成部１７は、変化部における第１部分以外の部分である第２部分を、子識別子の第２部分から規則的に変化するように生成する。なお、規則的な変化は、変化部生成部１５について説明した規則的な変化と同様であるとする。例えば、前述のように、変化部生成部１５が変化部「１２」、「１３」、「１４」、「１５」を生成した場合には、先頭の１文字「１」が各変化部における第２部分となる。したがって、第２部分生成部１７は、第２部分「２」、「３」、「４」…を生成する。第２部分生成部１７は、生成した第２部分を図示しない記録媒体に蓄積してもよい。なお、通常、一の子識別子に対して一以上の第２部分が生成される。また、個数を別にすると、兄弟関係にある子識別子に対して生成される第２部分は同じとなる。
【００３３】
蓄積部１８は、共通部特定部１４が特定した共通部と、変化部生成部１５が生成した変化部とを有する識別子であり、基準子識別子によって識別される子オブジェクトと同じ親オブジェクトを有する子オブジェクトの識別子である子識別子を識別子記憶部１１に蓄積する。その結果、基準子識別子と兄弟関係にある子識別子が生成され、蓄積されたことになる。なお、その子識別子を蓄積する際に、蓄積部１８は、その子識別子で識別される子オブジェクトに対応付けて蓄積してもよい。子オブジェクトが順序を有する場合には、その順序と変化部の変化の順（例えば、増加の順等）とが同じになるようにしてもよい。一の親識別子に対して、一の共通部が特定され、一以上の変化部が生成される。したがって、蓄積部１８は、ある親識別子に対応する共通部と、その親識別子に対応する変化部とを組み合わせて蓄積することになる。したがって、識別子記憶部１１において複数の親識別子が記憶されている場合には、蓄積部１８は、親識別子ごとに、その親識別子に対応する共通部及び変化部を有する子識別子を蓄積することになる。この場合には、基準子識別子と兄弟関係にない子識別子も蓄積されうることになる。なお、蓄積部１８は、識別子記憶部１１で記憶されている親識別子と子識別子との共通する部分が存在しなかった場合、すなわち、共通部がヌル（Ｎｕｌｌ）である場合に、変化部生成部１５が生成した変化部である子識別子を識別子記憶部１１に蓄積してもよい。この場合には、変化部がそのまま生成された子識別子となる。
【００３４】
識別子記憶部１１において孫オブジェクトも記憶されている場合に、蓄積部１８は、各孫オブジェクトを識別する識別子である孫識別子をも識別子記憶部１１に蓄積してもよい。すなわち、蓄積部１８は、ある孫オブジェクトに対応する子識別子の共通部と、その孫オブジェクトに対応する子識別子の第１部分と、その孫オブジェクトに対応する子識別子から生成された第２部分とを有する識別子である孫識別子（これによって、その孫オブジェクトが識別されることになる）を識別子記憶部１１に蓄積してもよい。孫オブジェクトに対応する子識別子とは、孫オブジェクトの親（親ノード）のオブジェクトである子オブジェクトを識別する子識別子である。なお、その孫識別子を蓄積する際に、蓄積部１８は、その孫識別子で識別される孫オブジェクトに対応付けて蓄積してもよい。
なお、上述した説明において、第２部分がヌルである場合もあるが、その場合には、孫識別子の生成ができないことになる。兄弟関係にある孫識別子がすべて同じになってしまうからである。
【００３５】
次に、識別子生成装置１の動作について図２のフローチャートを用いて説明する。
（ステップＳ１０１）表示部１３は、識別子記憶部１１で記憶されている識別子やオブジェクトを表示する。その表示の際に、識別子やオブジェクトの親子関係が分かるように表示することが好適である。また、識別子と、その識別子によって識別されるオブジェクトとの対応も分かるように表示することが好適である。
【００３６】
（ステップＳ１０２）受付部１２は、識別子やオブジェクト等を受け付けたかどうか判断する。そして、受け付けた場合には、ステップＳ１０３に進み、そうでない場合には、ステップＳ１０４に進む。
【００３７】
（ステップＳ１０３）受付部１２は、受け付けた識別子やオブジェクト等を識別子記憶部１１に蓄積する。そして、ステップＳ１０１に戻る。
【００３８】
（ステップＳ１０４）蓄積部１８は、識別子の生成を行うタイミングであるかどうか判断する。そして、識別子の生成を行うタイミングである場合には、ステップＳ１０５に進み、そうでない場合には、ステップＳ１０２に戻る。なお、蓄積部１８は、例えば、識別子生成装置１が識別子の生成の指示を受け付けた場合に、識別子の生成を行うタイミングであると判断してもよく、基準子識別子が受け付けられ、蓄積された場合に、識別子の生成を行うタイミングであると判断してもよく、あるいは、その他のタイミングで識別子の生成を行うタイミングであると判断してもよい。また、ここでは蓄積部１８がこの判断を行う場合について説明するが、それ以外の構成要素がこの判断を行ってもよいことは言うまでもない。
【００３９】
（ステップＳ１０５）蓄積部１８は、カウンタｉを１に設定する。
【００４０】
（ステップＳ１０６）共通部特定部１４は、識別子記憶部１１で記憶されているｉ番目の親識別子に対応する共通部を特定する。
【００４１】
（ステップＳ１０７）変化部生成部１５は、識別子記憶部１１で記憶されているｉ番目の親識別子に対応する変化部を生成する。その変化部の個数は、ｉ番目の親識別子に対応する子オブジェクトのうち、子識別子が対応付けられていない子オブジェクトの個数である。なお、前述のように、規則的な変化によって、その個数だけの生成を行うことができない場合には、変化部生成部１５は、生成できる範囲の個数だけ変化部を生成してもよい。また、その生成された変化部は、図示しない記録媒体で記憶されてもよい。
【００４２】
（ステップＳ１０８）蓄積部１８は、識別子記憶部１１で記憶されているｉ番目の親識別子に対応する子識別子を識別子記憶部１１に蓄積する。その子識別子は、ステップＳ１０６で特定された共通部と、ステップＳ１０７で生成された変化部とから構成される識別子である。
【００４３】
（ステップＳ１０９）蓄積部１８は、識別子記憶部１１で記憶されているｉ番目の親識別子に対応する孫オブジェクトが存在するかどうか判断する。そして、孫オブジェクトが存在する場合には、ステップＳ１１０に進み、そうでない場合には、ステップＳ１１１に進む。
【００４４】
（ステップＳ１１０）蓄積部１８等は、孫識別子を生成する処理を行う。この処理の詳細については、図３のフローチャートを用いて後述する。
【００４５】
（ステップＳ１１１）蓄積部１８は、カウンタｉを１だけインクリメントする。
【００４６】
（ステップＳ１１２）蓄積部１８は、識別子記憶部１１でｉ番目の親識別子が記憶されているかどうか判断する。そして、ｉ番目の親識別子が記憶されている場合には、ステップＳ１０６に戻り、そうでない場合には、ステップＳ１０１に戻る。
なお、図２のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【００４７】
図３は、図２のフローチャートにおける孫識別子の生成の処理（ステップＳ１１０）の詳細を示すフローチャートである。
（ステップＳ２０１）蓄積部１８は、カウンタｊを１に設定する。
【００４８】
（ステップＳ２０２）第１部分特定部１６は、識別子記憶部１１で記憶されているｉ番目の親識別子に対応するｊ番目の子識別子における第１部分を特定する。
【００４９】
（ステップＳ２０３）第２部分生成部１７は、識別子記憶部１１で記憶されているｉ番目の親識別子に対応するｊ番目の子識別子に応じた第２部分を生成する。その第２部分の個数は、ｉ番目の親識別子に対応するｊ番目の子識別子に応じた孫オブジェクトの個数である。なお、規則的な変化によって、その個数だけの生成を行うことができない場合には、第２部分生成部１７は、生成できる範囲の個数だけ第２部分を生成してもよい。また、その生成された第２部分は、図示しない記録媒体で記憶されてもよい。
【００５０】
（ステップＳ２０４）蓄積部１８は、ｉ番目の親識別子に対応するｊ番目の子識別子に応じた孫識別子を識別子記憶部１１に蓄積する。その孫識別子は、ステップＳ１０６で特定された共通部と、ステップＳ２０２で特定された第１部分と、ステップＳ２０３で生成された第２部分とから構成される識別子である。
【００５１】
（ステップＳ２０５）蓄積部１８は、カウンタｊを１だけインクリメントする。
【００５２】
（ステップＳ２０６）蓄積部１８は、識別子記憶部１１において、ｉ番目の親識別子に対応するｊ番目の子識別子が存在するかどうか判断する。そして、存在する場合には、ステップＳ２０２に戻り、そうでない場合には、図２のフローチャートに戻る。
【００５３】
ここで、子識別子や孫識別子の生成方法について、具体的に説明する。この具体例において、共通部は、文字の並びの先頭側の共通部分であるとする。また、規則的な変化は、１ごとのインクリメントであるとする。また、数字「０」は、変化部において変化させない文字にあらかじめ決められているものとする。また、変化部において、アルファベットや数字のうち、数字が変化対象となる一の文字種にあらかじめ決められているものとする。
【００５４】
例えば、図４のように、親識別子「１００」と、それに対応する基準子識別子「１０１」とが記憶されていたとする。その場合には、共通部特定部１４は、先頭からの２文字である共通部「１０」を特定する。また、変化部生成部１５は、基準子識別子の変化部「１」を基準として、変化部「２」、「３」、「４」、「５」を生成する。その結果、新たな４個の子識別子「１０２」、「１０３」、「１０４」、「１０５」が生成され、蓄積されることになる。なお、この具体例では、親識別子「１００」に対応する子オブジェクトが５個であるものとする（以下の具体例でも同様とする）。
【００５５】
また、例えば、図５のように、親識別子「１００」と、それに対応する基準子識別子「５１２」とが記憶されていたとする。その場合には、共通部特定部１４は、ヌルの共通部を特定することになる。すなわち、共通部はないことになる。したがって、変化部生成部１５は、基準子識別子の変化部「５１２」を基準として、変化部「５１３」、「５１４」、「５１５」、「５１６」を生成する。その変化部がそのまま、生成された子識別子となり、蓄積されることになる。
【００５６】
また、例えば、図６のように、親識別子「１００」と、それに対応する基準子識別子「１１０」とが記憶されていたとする。その場合には、共通部特定部１４は、先頭からの１文字である共通部「１」を特定する。また、変化部生成部１５は、基準子識別子の変化部「１０」を基準として、変化部「２０」、「３０」、「４０」、「５０」を生成する。数字「０」は変化させない文字に設定されているため、変化部生成部１５は、変化部「１１」、「１２」…を生成するのではなく、変化部「２０」、「３０」…を生成することになる。その結果、新たな４個の子識別子「１２０」、「１３０」、「１４０」、「１５０」が生成され、蓄積されることになる。
【００５７】
また、例えば、図７のように、親識別子「１００」と、それに対応する基準子識別子「１１ａ」とが記憶されていたとする。その場合には、共通部特定部１４は、先頭からの１文字である共通部「１」を特定する。また、変化部生成部１５は、基準子識別子の変化部「１ａ」を基準として、変化部「２ａ」、「３ａ」、「４ａ」、「５ａ」を生成する。アルファベットは変化対象の文字種ではなく、数字が変化対象の文字種に設定されているため、変化部生成部１５は、変化部「１ｂ」、「１ｃ」…を生成するのではなく、変化部「２ａ」、「３ａ」…を生成することになる。その結果、新たな４個の子識別子「１２ａ」、「１３ａ」、「１４ａ」、「１５ａ」が生成され、蓄積されることになる。
【００５８】
また、例えば、図８のように、親識別子「１００」と、それに対応する基準子識別子「１ａ１」とが記憶されていたとする。その場合も、前述の図７の例と同様に、共通部「１」が特定され、変化部「ａ２」、「ａ３」、「ａ４」、「ａ５」が生成される。その結果、新たな４個の子識別子「１ａ２」、「１ａ３」、「１ａ４」、「１ａ５」が生成され、蓄積されることになる。
【００５９】
また、例えば、図９のように、親識別子「１００」と、それに対応する基準子識別子「１０６」とが記憶されていたとする。その場合には、共通部特定部１４は、先頭からの２文字である共通部「１０」を特定する。また、変化部生成部１５は、基準子識別子の変化部「６」を基準として、変化部「７」、「８」、「９」を生成する。親識別子「１００」に対応する子オブジェクトが５個存在するため、本来であれば、変化部生成部１５は、４個の変化部を生成しなくてはならないが、文字数を増やすことなく（すなわち、桁上げをすることなく）変化部「９」をさらに１だけインクリメントすることはできないため、それ以上の変化部は生成されないことになる。その結果、新たな３個の子識別子「１０７」、「１０８」、「１０９」が生成され、蓄積されることになる。この場合には、１個の子オブジェクトに対応する子識別子は、生成されないことになる。
【００６０】
また、例えば、図１０のように、親識別子「１００」と、それに対応する基準子識別子「１０１」とが記憶されており、さらに親識別子「２００」が記憶されていたとする。なお、親識別子「２００」に対応する子識別子は記憶されておらず、その親識別子「２００」に対応する子オブジェクトの個数も５個であるとする。その場合には、親識別子「１００」については、図４の例と同様に、共通部特定部１４は、共通部「１０」を特定する。また、変化部生成部１５は、変化部「２」、「３」、「４」、「５」を生成する。その結果、親識別子「１００」に対応する新たな４個の子識別子「１０２」、「１０３」、「１０４」、「１０５」が生成され、蓄積されることになる。また、親識別子「２００」については、対応する基準子識別子が存在しないため、共通部特定部１４は、親識別子「１００」の共通部「１０」に対応する部分である先頭からの２文字である共通部「２０」を特定する。また、変化部生成部１５は、基準子識別子の変化部「１」を基準として、その基準子識別子の変化部「１」を含めた５個の変化部「１」、「２」、「３」、「４」、「５」を生成する。その結果、親識別子「２００」に対応する新たな５個の子識別子「２０１」、「２０２」、「２０３」、「２０４」、「２０５」が生成され、蓄積されることになる。
【００６１】
最後に、図１１，図１２を用いて、孫識別子の生成について説明する。例えば、図１１のように、親識別子「１００」と、それに対応する基準子識別子「１１０」とが記憶されていたとする。その場合には、図６の例と同様に、共通部「１」が特定され、変化部「２０」、「３０」、「４０」、「５０」が生成される。その結果、図１１で示されるように、新たな４個の子識別子「１２０」、「１３０」、「１４０」、「１５０」が生成され、蓄積されることになる。その後、第１部分特定部１６は、変化部「１０」、「２０」、「３０」、「４０」、「５０」において、規則的に変化させる部分である第１部分を特定する。その第１部分は、変化部の先頭の１文字であり、変化部「１０」に対しては「１」、変化部「２０」に対しては「２」、変化部「３０」に対しては「３」、変化部「４０」に対しては「４」、変化部「５０」に対しては「５」となる。また、第２部分生成部１７は、子識別子「１１０」の変化部「１０」における第１部分以外の部分である第２部分「０」を基準として、第２部分「１」、「２」、「３」、「４」、「５」を生成する。その結果、図１２で示されるように、子識別子「１１０」に対応する新たな孫識別子「１１１」、「１１２」、「１１３」、「１１４」、「１１５」が生成され、蓄積されることになる。他の子識別子「１２０」等についても同様にして、新たな孫識別子が生成され、蓄積されることになる。
【００６２】
次に、本実施の形態による識別子生成装置１の動作について、具体例を用いて説明する。この具体例では、識別子記憶部１１において、図１３で示されるオブジェクトや識別子が記憶されているものとする。図１３において、親オブジェクト「東日本営業課」、「西日本営業課」等が記憶されている。親オブジェクト「東日本営業課」を識別する識別子である親識別子「ＳＤ１００」も記憶されている。また、親オブジェクト「西日本営業課」を識別する識別子である親識別子「ＳＤ２００」も記憶されている。また、親オブジェクト「東日本営業課」の子ノードである３個の子オブジェクト「営業第１グループ」、「営業第２グループ」、「営業第３グループ」も記憶されている。その３個の子オブジェクトを識別する識別子である子識別子は記憶されていない。また、親オブジェクト「西日本営業課」の子ノードである３個の子オブジェクト「営業第１グループ」、「営業第２グループ」、「営業第３グループ」も記憶されている。その３個の子オブジェクトを識別する識別子である子識別子も記憶されていない。
【００６３】
まず、ユーザが識別子生成装置１を操作し、識別子を生成する処理を開始させたとする。すると、表示部１３は、図１３で示されるオブジェクトや識別子をディスプレイに表示する（ステップＳ１０１）。その結果、そのユーザは、図１３に対応する表示を見ることができ、オブジェクトの親子関係や、親識別子等を確認することができる。その状況において、ユーザが、ポインティングデバイスやキーボードを操作し、東日本営業課の営業第１グループに対応する子識別子「ＳＤ１１０」を入力したとする。すると、その子識別子「ＳＤ１１０」は受付部１２で受け付けられ（ステップＳ１０２）、東日本営業課の営業第１グループを識別する子識別子として識別子記憶部１１に蓄積される（ステップＳ１０３）。その結果、識別子記憶部１１で記憶されている情報は、図１４で示されるようになる。新たに蓄積された子識別子「ＳＤ１１０」が基準子識別子となる。
【００６４】
基準子識別子である新たな子識別子が蓄積されたため、蓄積部１８は、識別子の生成を行うタイミングであると判断する（ステップＳ１０４）。そして、蓄積部１８は、１番目の親識別子「ＳＤ１００」に対応する共通部を特定する旨の指示を共通部特定部１４に渡し、１番目の親識別子「ＳＤ１００」に対応する変化部を生成する旨の指示を変化部生成部１５に渡す（ステップＳ１０５）。その指示に応じて、共通部特定部１４は、親識別子「ＳＤ１００」と、その親識別子に対応する基準子識別子「ＳＤ１１０」との先頭側の共通部「ＳＤ１」を特定し、その共通部を特定するための先頭からの文字数「３」を、親識別子「ＳＤ１００」に対応付けて図示しない記録媒体に蓄積する（ステップＳ１０６）。また、共通部特定部１４は、その文字数「３」を変化部生成部１５に渡す。変化部生成部１５は、その文字数を受け取ると、蓄積部１８からの指示に応じて、親識別子「ＳＤ１００」に対応する基準子識別子「ＳＤ１１０」における文字数「３」に対応する共通部「ＳＤ１」以外の部分である後端側の変化部「１０」を特定する。また、変化部生成部１５は、親識別子「ＳＤ１００」に対応する子オブジェクトのうち、子識別子の対応付けられていない子オブジェクト「営業第２グループ」、「営業第３グループ」を特定する。そして、変化部生成部１５は、その特定した２個の子オブジェクトに対応する変化部「２０」、「３０」を生成し、親識別子「ＳＤ１００」に対応付けて図示しない記録媒体に蓄積する（ステップＳ１０７）。その後、蓄積部１８は、図示しない記録媒体から、親識別子「ＳＤ１００」に対応する共通部を特定するための文字数「３」と、親識別子「ＳＤ１００」に対応する変化部「２０」、「３０」とを読み出し、親識別子「ＳＤ１００」から、その文字数に応じた共通部「ＳＤ１」を取得する。そして、蓄積部１８は、その共通部が先頭側、読み出した変化部が後端側となる新たな子識別子「ＳＤ１２０」、「ＳＤ１３０」を生成する。そして、その新たな子識別子を、親識別子「ＳＤ１００」に対応する子オブジェクトのうち、子識別子の対応付けられていない子オブジェクト「営業第２グループ」、「営業第３グループ」をそれぞれ識別する子識別子として識別子記憶部１１に蓄積する（ステップＳ１０８）。その結果、識別子記憶部１１で記憶されている情報が図１５で示されるようになる。
【００６５】
この具体例の場合には、孫オブジェクトが存在しないため、蓄積部１８は、孫オブジェクトが存在しないと判断し（ステップＳ１０９）、２番目の親識別子「ＳＤ２００」に対応する共通部を特定する旨の指示を共通部特定部１４に渡し、２番目の親識別子「ＳＤ２００」に対応する変化部を生成する旨の指示を変化部生成部１５に渡す（ステップＳ１１１，Ｓ１１２）。この場合には親識別子「ＳＤ２００」に対応する基準子識別子が存在しないため、共通部特定部１４は、受け取った指示に応じて、１番目の親識別子「ＳＤ１００」に対応する共通部を特定するための文字数「３」を図示しない記録媒体から読み出し、その共通部を特定するための文字数「３」を、親識別子「ＳＤ２００」に対応付けて図示しない記録媒体に蓄積する（ステップＳ１０６）。また、共通部特定部１４は、その文字数「３」を変化部生成部１５に渡す。この場合には親識別子「ＳＤ２００」に対応する基準子識別子が存在しないため、変化部生成部１５は、その文字数を受け取ると、蓄積部１８からの指示に応じて、基準子識別子「ＳＤ１１０」における文字数「３」に対応する共通部「ＳＤ１」以外の部分である後端側の変化部「１０」を特定する。また、変化部生成部１５は、親識別子「ＳＤ２００」に対応する子オブジェクトのうち、子識別子の対応付けられていない子オブジェクト「営業第１グループ」、「営業第２グループ」、「営業第３グループ」を特定する。そして、変化部生成部１５は、その特定した３個の子オブジェクトに対応する変化部「１０」、「２０」、「３０」を生成する。前述のように、基準子識別子と兄弟関係にない子識別子の変化部を生成する場合には、生成された変化部に基準子識別子の変化部も含まれることになる。そして、変化部生成部１５は、その生成した変化部を、親識別子「ＳＤ２００」に対応付けて図示しない記録媒体に蓄積する（ステップＳ１０７）。その後、蓄積部１８は、図示しない記録媒体から、親識別子「ＳＤ２００」に対応する共通部を特定するための文字数「３」と、親識別子「ＳＤ２００」に対応する変化部「１０」、「２０」、「３０」とを読み出し、親識別子「ＳＤ２００」から、その文字数に応じた共通部「ＳＤ２」を取得する。そして、蓄積部１８は、その共通部が先頭側、読み出した変化部が後端側となる新たな子識別子「ＳＤ２１０」、「ＳＤ２２０」、「ＳＤ２３０」を生成する。そして、その新たな子識別子を、親識別子「ＳＤ２００」に対応する子オブジェクトのうち、子識別子の対応付けられていない子オブジェクト「営業第１グループ」、「営業第２グループ」、「営業第３グループ」をそれぞれ識別する子識別子として識別子記憶部１１に蓄積する（ステップＳ１０８）。その結果、識別子記憶部１１で記憶されている情報が図１６で示されるようになる。このようにして、順次、子オブジェクトに対応する子識別子が生成され、蓄積されていくことになる。そして、子識別子の蓄積がすべて終了すると、子識別子を含む表示が行われることになる（ステップＳ１１２，Ｓ１０１）。その結果、ユーザは、生成された子識別子を知ることができるようになる。なお、識別子生成装置１は、識別子記憶部１１で記憶されている子識別子等を出力する図示しない出力部を備えており、その出力部が出力した子識別子等が、例えば、外部の装置等において用いられてもよい。その出力部による出力は、例えば、表示デバイス（例えば、ＣＲＴや液晶ディスプレイなど）への表示でもよく、所定の機器への通信回線を介した送信でもよく、プリンタによる印刷でもよく、記録媒体への蓄積でもよい。なお、その図示しない出力部は、出力を行うデバイス（例えば、表示デバイスやプリンタなど）を含んでもよく、あるいは含まなくてもよい。また、その出力部は、ハードウェアによって実現されてもよく、あるいは、それらのデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００６６】
次に、孫識別子も生成する場合の具体例について簡単に説明する。この具体例の場合には、識別子記憶部１１において、図１７で示されるオブジェクトや識別子が記憶されているものとする。図１７において、親オブジェクト、親識別子、子オブジェクト、子識別子については、図１３と同様であり、その説明を省略する。図１７の場合には、親オブジェクト「東日本営業課」の子オブジェクト「営業第１グループ」の子ノードである３個の孫オブジェクト「ＡＡＢＢ」、「ＣＣＤＤ」「ＥＥＦＦ」も記憶されている。その３個の孫オブジェクトを識別する識別子である孫識別子は記憶されていない。また、親オブジェクト「東日本営業課」の子オブジェクト「営業第２グループ」の子ノードである３個の孫オブジェクト「ＧＧＨＨ」、「ＪＪＫＫ」「ＬＬＭＭ」も記憶されている。その３個の孫オブジェクトを識別する識別子である孫識別子は記憶されていない。さらに、親オブジェクト「東日本営業課」の子オブジェクト「営業第３グループ」の子ノードである孫オブジェクト「ＮＮＰＰ」等も記憶されている。その孫オブジェクトを識別する識別子である孫識別子は記憶されていない。なお、「ＡＡＢＢ」等は、グループの構成員の氏名であるとする。
【００６７】
上述の具体例と同様に、ユーザが識別子生成装置１を操作し、東日本営業課の営業第１グループに対応する子識別子「ＳＤ１１０」を入力したとする。すると、それに応じて基準子識別子「ＳＤ１１０」が受け付けられ、識別子記憶部１１に蓄積される（ステップＳ１０１〜Ｓ１０３）。また、その入力された子識別子を含む表示がなされ、親識別子「ＳＤ１００」に対応する子識別子の生成、蓄積が行われる（ステップＳ１０１，Ｓ１０４〜Ｓ１０８）。その後、蓄積部１８は、孫オブジェクトが存在すると判断し（ステップＳ１０９）、孫オブジェクトに対応する孫識別子を生成する処理を行う（ステップＳ１１０）。
【００６８】
具体的には、第１部分特定部１６は、１番目の親識別子「ＳＤ１００」に対応する共通部を特定するための文字数「３」を図示しない記録媒体から読み出し、それを用いて、第１の親識別子「ＳＤ１００」に対応する子識別子「ＳＤ１１０」、「ＳＤ１２０」、「ＳＤ１３０」の変化部「１０」、「２０」、「３０」を特定する。また、第１部分特定部１６は、それらの変化部を用いて、各変化部で変化している先頭側の１文字が第１部分であると判断し、１番目の親識別子「ＳＤ１００」に対応する１番目の子識別子「ＳＤ１１０」の第１部分「１」を特定する。そして、その第１部分の位置は、子識別子の全体としては、先頭から４文字目から４文字目までとなるため、第１部分特定部１６は、子識別子「ＳＤ１１０」に対応付けて、第１部分の位置を示す情報「４，４」を図示しない記録媒体に蓄積する（ステップＳ２０１，Ｓ２０２）。その「４，４」は、先頭から４文字目から４文字目までの意味である。また、第１部分特定部１６は、その「４，４」を第２部分生成部１７に渡す。第２部分生成部１７は、その「４，４」を受け取ると、１番目の親識別子「ＳＤ１００」に対応する共通部を特定するための文字数「３」を図示しない記録媒体から読み出す。また、第２部分生成部１７は、１番目の親識別子「ＳＤ１００」に対応する１番目の子識別子「ＳＤ１１０」において、先頭側の３文字である共通部「ＳＤ１」と、先頭から４文字目から４文字目までである第１部分「１」とを特定する。そして、第２部分生成部１７は、共通部でもなく、第１部分でもない部分、すなわち、子識別子「ＳＤ１１０」の第２部分「０」を特定する。また、第２部分生成部１７は、子識別子「ＳＤ１１０」に対応する孫オブジェクトの数「３」を特定し、その特定した第２部分「０」から規則的に変化させた３個の第２部分「１」、「２」、「３」を生成し、子識別子「ＳＤ１１０」に対応付けて図示しない記録媒体に蓄積する（ステップＳ２０３）。その後、蓄積部１８は、図示しない記録媒体から、親識別子「ＳＤ１００」に対応する共通部を特定するための文字数「３」と、子識別子「ＳＤ１１０」に対応する第１部分の位置を示す情報「４，４」と、子識別子「ＳＤ１１０」に対応する第２部分「１」、「２」、「３」とを読み出し、子識別子「ＳＤ１１０」から、共通部「ＳＤ１」と、第１部分「１」とを特定する。そして、蓄積部１８は、先頭側の共通部と、「４，４」の位置の第１部分と、残りの部分の第２部分とから構成された新たな孫識別子「ＳＤ１１１」、「ＳＤ１１２」、「ＳＤ１１３」を生成し、それらを３個の孫オブジェクトにそれぞれ対応付けて識別子記憶部１１に蓄積する（ステップＳ２０４）。また、同様にして、子識別子「ＳＤ１２０」、「ＳＤ１３０」に対しても、蓄積部１８等は、孫識別子を生成し、蓄積する処理を行う（ステップＳ２０５，Ｓ２０６，Ｓ２０２〜Ｓ２０４）。その結果、識別子記憶部１１で記憶されている情報は、図１８で示されるようになる。さらに、他の子識別子の生成や蓄積、その生成された子識別子に対応する孫識別子の生成や蓄積が順次、行われることになる。このようにして、孫識別子についても自動的に生成することができる。
【００６９】
以上のように、本実施の形態による識別子生成装置１によれば、親識別子から共通部を継承すると共に、変化部を基準子識別子から変化させることによって、子オブジェクトに対応する子識別子を自動的に生成することができる。したがって、階層関係を考慮した子識別子の生成が可能となる。また、孫オブジェクトが存在する場合には、その孫オブジェクトに対応する孫識別子をも生成することができる。
【００７０】
なお、本実施の形態では、子識別子の生成を開始する際に、識別子記憶部１１に一の子識別子のみが記憶されており、その一の子識別子が基準子識別子である場合について説明したが、識別子記憶部１１に二以上の子識別子が記憶されていてもよい。その場合であっても、一の親識別子に対応する子識別子が１個である場合には、その一の子識別子が基準子識別子であるとする。一方、一の親識別子に対応する子識別子が２個以上である場合には、最後の子識別子を基準子識別子としてもよい。例えば、図１９で示されるように２個の子識別子が入力されている場合には、図中の下側（最後側）の子識別子「１０３」を基準子識別子として、子識別子の生成を行ってもよい。この場合における子識別子の生成方法は前述の通りであり、その説明を省略する。なお、入力された複数の子識別子の増減が、変化部生成部１５が変化部を生成する増減の規則と異なる場合には、子識別子を生成しないようにしてもよい。例えば、変化部の生成の規則が１ずつのインクリメント（すなわち増加）である場合に、図２０で示されるように、入力された２個の子識別子が、減少するように入力された場合には、蓄積部１８は、入力された子識別子と兄弟関係にある子識別子を生成しないようにしてもよい。また、他の親識別子に対応する子識別子の生成も行わないようにしてもよい。
【００７１】
また、本実施の形態において、識別子記憶部１１で記憶されるオブジェクトや識別子のデータ構造を問わないことは言うまでもない。例えば、図１６で示される情報に代えて、図２１（ａ）で示される情報と、図２１（ｂ）で示される情報とが識別子記憶部１１で記憶されてもよい。図２１（ａ）は、親オブジェクトと、その親オブジェクトを識別する親識別子とを対応付ける情報である。また、図２１（ｂ）は、子オブジェクトと、その子オブジェクトを識別する子識別子と、その子オブジェクトの親ノードである親オブジェクトを識別する親ノード識別子とを対応付ける情報である。したがって、例えば、子識別子「ＳＤ１１０」に対応する親識別子は、「ＳＤ１００」であることが図２１（ｂ）の１番目のレコードから分かる。また、子識別子「ＳＤ１１０」に対応する親オブジェクトが、その子識別子「ＳＤ１１０」に対応する親ノード識別子「ＳＤ１００」で識別される親オブジェクト「東日本営業課」であることが、図２１（ｂ）の１番目のレコードと、図２１（ａ）の１番目のレコードとから分かる。また、識別子記憶部１１で記憶されるオブジェクトや識別子の階層関係（木構造）を示すデータ構造がこれら以外であってもよいことは言うまでもない。
【００７２】
また、本実施の形態では、第１部分特定部１６と、第２部分生成部１７とを用いて孫識別子を生成する場合について説明したが、そうでなくてもよい。親識別子と、基準子識別子とを用いて子識別子を生成した方法と同様にして、子識別子と、基準孫識別子とを用いて孫識別子を生成してもよい。その場合には、子識別子が親識別子であると考え、孫識別子が子識別子であると考えれば、共通部特定部１４と、変化部生成部１５と、蓄積部１８とを用いて、上述の子識別子を生成した方法により、孫識別子をも生成することができる。したがって、その場合や、孫識別子を生成する必要がない場合には、識別子生成装置１は、第１部分特定部１６や第２部分生成部１７を備えていなくてもよい。
【００７３】
また、本実施の形態では、識別子等を受け付けて蓄積する受付部１２が存在する場合について説明したが、そうでなくてもよい。受付部１２が存在しない場合には、受付部１２を介する以外の方法によって識別子記憶部１１で記憶されたオブジェクトや識別子を用いて、子識別子等の生成が行われてもよい。また、その子識別子等を生成するタイミングは、例えば、識別子生成装置１が、その生成の指示を受け付けたことであってもよい。
【００７４】
また、本実施の形態では、変化部において、あらかじめ決められた文字（例えば、「０」など）でない部分を変化させる場合について主に説明したが、そうでなくてもよい。変化部において、すべての文字が変化されてもよい。
【００７５】
また、本実施の形態では、変化部において、二以上の文字種のうち、あらかじめ決められた一の文字種（例えば、数字など）に対応する部分のみを変化させる場合について主に説明したが、そうでなくてもよい。変化部において、すべての文字種を変化させてもよい。
【００７６】
また、本実施の形態では、基準子識別子に対応しない親識別子についても、他の親識別子に対応する基準子識別子を用いて子識別子の生成を行う場合について主に説明したが、そうでなくてもよい。基準子識別子に対応する親識別子についてのみ、その親識別子に対応する子識別子の生成を行ってもよい。
【００７７】
また、本実施の形態では、オブジェクトが組織における部署名等である場合について説明したが、オブジェクトはどのようなものであってもよいことは言うまでもない。例えば、スプレッドシートのデータにおける各セルがオブジェクトであると考えてもよい。例えば、セル「Ａ１」に数値「１００」が入力されている場合に、その数値の入力されているセル「Ａ１」がオブジェクトであり、数値「１００」がその識別子であると考えてもよい。また、カラム（列）Ａのセルが親オブジェクトであり、カラム（列）Ｂのセルが子オブジェクトであると考えてもよい。そして、蓄積部１８は、上述した方法と同様にして、子オブジェクトのセルに対して、生成した子識別子（数値）を入力してもよい。
【００７８】
また、本実施の形態では、識別子記憶部１１で記憶されているオブジェクトや識別子をユーザが見ることができるように表示部１３を備えた場合について説明したが、そうでなくてもよい。識別子記憶部１１で記憶されているオブジェクトや識別子をユーザが見る必要がない場合には、識別子生成装置１は、表示部１３を備えていなくてもよい。
【００７９】
また、本実施の形態では、共通部が、隣接した１以上の文字の並びである場合について主に説明したが、そうでなくてもよい。共通部は、離散した文字の並びの集合であってもよい。例えば、親識別子が「ＡＢ１００ＸＹ」であり、基準子識別子が「ＡＢ１１１ＸＹ」である場合に、先頭側の「ＡＢ１」と後端側の「ＸＹ」との集合である「ＡＢ１＿＿ＸＹ」が共通部であってもよい。なお、アンダーバーの位置は、共通部に含まれないものとする。
【００８０】
また、上記実施の形態では、識別子生成装置１がスタンドアロンである場合について説明したが、識別子生成装置１は、スタンドアロンの装置であってもよく、サーバ・クライアントシステムにおけるサーバ装置であってもよい。後者の場合には、表示部や受付部は、通信回線を介して入力を受け付けたり、情報を出力したりしてもよい。
【００８１】
また、上記実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、あるいは、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
【００８２】
また、上記実施の形態において、各構成要素間で行われる情報の受け渡しは、例えば、その情報の受け渡しを行う２個の構成要素が物理的に異なるものである場合には、一方の構成要素による情報の出力と、他方の構成要素による情報の受け付けとによって行われてもよく、あるいは、その情報の受け渡しを行う２個の構成要素が物理的に同じものである場合には、一方の構成要素に対応する処理のフェーズから、他方の構成要素に対応する処理のフェーズに移ることによって行われてもよい。
【００８３】
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりした情報や、各構成要素が処理で用いるしきい値や数式、アドレス等の情報等は、上記説明で明記していない場合であっても、図示しない記録媒体において、一時的に、あるいは長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、あるいは、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、あるいは、図示しない読み出し部が行ってもよい。
【００８４】
また、上記実施の形態において、各構成要素等で用いられる情報、例えば、各構成要素が処理で用いるしきい値やアドレス、各種の設定値等の情報がユーザによって変更されてもよい場合には、上記説明で明記していない場合であっても、ユーザが適宜、それらの情報を変更できるようにしてもよく、あるいは、そうでなくてもよい。それらの情報をユーザが変更可能な場合には、その変更は、例えば、ユーザからの変更指示を受け付ける図示しない受付部と、その変更指示に応じて情報を変更する図示しない変更部とによって実現されてもよい。その図示しない受付部による変更指示の受け付けは、例えば、入力デバイスからの受け付けでもよく、通信回線を介して送信された情報の受信でもよく、所定の記録媒体から読み出された情報の受け付けでもよい。
【００８５】
また、上記実施の形態において、識別子生成装置１に含まれる２以上の構成要素が通信デバイスや入力デバイス等を有する場合に、２以上の構成要素が物理的に単一のデバイスを有してもよく、あるいは、別々のデバイスを有してもよい。
【００８６】
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをＣＰＵ等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。なお、上記実施の形態における識別子生成装置１を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、親階層のオブジェクトである１以上の親オブジェクトと、各親オブジェクトを識別する親識別子と、各親オブジェクトに対する子の階層のオブジェクトである複数の子オブジェクトと、一の子オブジェクトを識別する子識別子であり、基準となる子識別子である基準子識別子とが記憶される識別子記憶部にアクセス可能なコンピュータを、基準子識別子と、基準子識別子に対応する親階層の親識別子との共通する部分である共通部を特定する共通部特定部、子識別子における共通部以外の部分であり、変化する部分である変化部を、基準子識別子から規則的に変化するように生成する変化部生成部、共通部特定部が特定した共通部と、変化部生成部が生成した変化部とを有する識別子であり、基準子識別子によって識別される子オブジェクトと同じ親オブジェクトを有する子オブジェクトの識別子である子識別子を識別子記憶部に蓄積する蓄積部として機能させるためのプログラムである。
【００８７】
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を特定する特定部や、情報を蓄積する蓄積部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には少なくとも含まれない。
【００８８】
また、このプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体（例えば、ＣＤ−ＲＯＭなどの光ディスクや磁気ディスク、半導体メモリなど）に記録されたプログラムが読み出されることによって実行されてもよい。また、このプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。
【００８９】
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【００９０】
図２２は、上記プログラムを実行して、上記実施の形態による識別子生成装置１を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
【００９１】
図２２において、コンピュータシステム９００は、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ドライブ９０５、ＦＤ（Ｆｌｏｐｐｙ（登録商標）  Ｄｉｓｋ）ドライブ９０６を含むコンピュータ９０１と、キーボード９０２と、マウス９０３と、モニタ９０４とを備える。
【００９２】
図２３は、コンピュータシステム９００の内部構成を示す図である。図２３において、コンピュータ９０１は、ＣＤ−ＲＯＭドライブ９０５、ＦＤドライブ９０６に加えて、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９１１と、ブートアッププログラム等のプログラムを記憶するためのＲＯＭ９１２と、ＭＰＵ９１１に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１３と、アプリケーションプログラム、システムプログラム、及びデータを記憶するハードディスク９１４と、ＭＰＵ９１１、ＲＯＭ９１２等を相互に接続するバス９１５とを備える。なお、コンピュータ９０１は、ＬＡＮやＷＡＮ等への接続を提供する図示しないネットワークカードを含んでいてもよい。
【００９３】
コンピュータシステム９００に、上記実施の形態による識別子生成装置１の機能を実行させるプログラムは、ＣＤ−ＲＯＭ９２１、またはＦＤ９２２に記憶されて、ＣＤ−ＲＯＭドライブ９０５、またはＦＤドライブ９０６に挿入され、ハードディスク９１４に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ９０１に送信され、ハードディスク９１４に記憶されてもよい。プログラムは実行の際にＲＡＭ９１３にロードされる。なお、プログラムは、ＣＤ−ＲＯＭ９２１やＦＤ９２２、またはネットワークから直接、ロードされてもよい。
【００９４】
プログラムは、コンピュータ９０１に、上記実施の形態による識別子生成装置１の機能を実行させるオペレーティングシステム（ＯＳ）、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能（モジュール）を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム９００がどのように動作するのかについては周知であり、詳細な説明は省略する。
【００９５】
また、本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【００９６】
以上より、本発明による識別子生成装置等によれば、階層関係を考慮して自動的に識別子を生成できるという効果が得られ、例えば、会計業務ソフトウェア等で自動的に識別子を生成する場合などにおいて有用である。
【符号の説明】
【００９７】
１  識別子生成装置
１１  識別子記憶部
１２  受付部
１３  表示部
１４  共通部特定部
１５  変化部生成部
１６  第１部分特定部
１７  第２部分生成部
１８  蓄積部
【図１】
0005590737.tif 000002
【図２】
0005590737.tif 000003
【図３】
0005590737.tif 000004
【図４】
0005590737.tif 000005
【図５】
0005590737.tif 000006
【図６】
0005590737.tif 000007
【図７】
0005590737.tif 000008
【図８】
0005590737.tif 000009
【図９】
0005590737.tif 000010
【図１０】
0005590737.tif 000011
【図１１】
0005590737.tif 000012
【図１２】
0005590737.tif 000013
【図１３】
0005590737.tif 000014
【図１４】
0005590737.tif 000015
【図１５】
0005590737.tif 000016
【図１６】
0005590737.tif 000017
【図１７】
0005590737.tif 000018
【図１８】
0005590737.tif 000019
【図１９】
0005590737.tif 000020
【図２０】
0005590737.tif 000021
【図２１】
0005590737.tif 000022
【図２２】
0005590737.tif 000023
【図２３】
0005590737.tif 000024