(57)【要約】【課題】各サンプル、すなわち個票データの各行のデータ提供者がみだりに知られたくない情報と、他人でも容易に知ることができる情報の設定を必要とせず、プライバシーに配慮した、属性間の関係を分析できる一般化を行う。【解決手段】複数のサンプルのそれぞれに対する複数の属性の値を含む関係モデルと、前記属性ごとに階層と前記階層のそれぞれに対応する一般化値とが定義された一般化情報とを用いて、前記階層の一つに対応する前記複数のサンプルの前記一般化値の組み合わせであって、前記複数の属性のうち一つの属性に対応する前記一般化値に対して前記複数の属性の他の属性に対応する前記一般化値が多様性を有する前記一般化値の組み合わせを抽出する処理をコンピュータに実行させることを特徴とするデータ編集プログラムが提供される。【選択図】図１５
2015138302.tif 000002
【特許請求の範囲】
【請求項１】
複数のサンプルのそれぞれに対する複数の属性の値を含む関係モデルと、前記属性ごとに階層と前記階層のそれぞれに対応する一般化値とが定義された一般化情報を用いて、前記階層の一つに対応する前記複数のサンプルの前記一般化値の組み合わせであって、前記複数の属性のうち一つの属性に対応する前記一般化値に対して前記複数の属性の他の属性に対応する前記一般化値が多様性を有する前記一般化値の組み合わせを抽出する
処理をコンピュータに実行させることを特徴とするデータ編集プログラム。
【請求項２】
さらに、前記階層の一つに対応する前記複数のサンプルの前記一般化値の組み合わせにおいて、前記複数の属性の一つの値に対して、前記複数の属性の他の全てに対する前記一般化値が、前記複数の属性の他の属性および前記他の属性に対応する階層によって定義される多様性定義を満足するために、関係モデルに含まれる複数の属性の値のうち、所定の数のサンプルに関する複数の属性の値を削除する処理をコンピュータに実行させることを特徴とする、請求項１に記載のデータ編集プログラム。
【請求項３】
前記多様性定義は、前記複数の属性の一つａと前記階層をｌの組から前記多様性定義への写像Ｄ：（ａ、ｌ）→ｄによって得られる写像ｄは、前記前記複数の属性の一つａに対する度数分布をＦとして論理値への写像ｄ：Ｆ→１／０であり、Ｆ１＋Ｆ２は前記度数分布Ｆ１及びＦ２の和、∧を論理積演算として、
（ｄ１）単調性：（ｄ（Ｆ１）＝１）∧（ｄ（Ｆ２）＝１）⇒ｄ（Ｆ１＋Ｆ２）＝１、
（ｄ２）階層単調性：ｄ（Ｆ）＝１⇒ｄ’（Ｆ’）＝１、
を満たす、請求項２に記載のデータ編集プログラム。
【請求項４】
前記階層の一つに対応する前記複数のサンプルの前記一般化値の組み合わせであって、前記複数の属性のうち一つの属性に対応する前記一般化値に対して前記複数の属性の他の全ての属性に対応する前記一般化値が多様性を有する前記一般化値の組み合わせを抽出する処理をコンピュータに実行させることを特徴とする、請求項１乃至３のいずれか一項に記載の編集プログラム。
【請求項５】
さらに、前記一般化情報一般化木で表したとき、前記一般化木の根に相当する前記階層を含む前記属性を最大１つだけ含むように前記一般化を行う処理をコンピュータに実行させることを特徴とする、付記１乃至４のいずれか一項に記載のデータ編集プログラム。
【請求項６】
コンピュータによって実行されるデータ編集方法であって、複数のサンプルのそれぞれに対する複数の属性の値を含む関係モデルと、前記属性ごとに階層と前記階層のそれぞれに対応する一般化値とが定義された一般化情報を用いて、前記階層の一つに対応する前記複数のサンプルの前記一般化値の組み合わせであって、前記複数の属性のうち一つの属性に対応する前記一般化値に対して前記複数の属性の他の属性に対応する前記一般化値が多様性を有する前記一般化値の組み合わせを抽出すること、
を含むデータ編集方法。
【請求項７】
複数のサンプルのそれぞれに対する複数の属性の値を含む関係モデルと、前記属性ごとに階層と前記階層のそれぞれに対応する一般化値とが定義された一般化情報を用いて、前記階層の一つに対応する前記複数のサンプルの前記一般化値の組み合わせであって、前記複数の属性のうち一つの属性に対応する前記一般化値に対して前記複数の属性の他の属性に対応する前記一般化値が多様性を有する前記一般化値の組み合わせを抽出する一般化部、
を含むことを特徴とするデータ編集装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ編集プログラム、データ編集方法およびデータ編集装置に関するものである。
【背景技術】
【０００２】
個票データは２次元の表で表される関係モデルであって、各行にサンプルの情報が格納されているものである。サンプルは人であっても、他の動物であっても、装置であっても良いが、以下では、サンプルは人であるとする。情報としては、たとえば、個票データの各行に、「識別子」（サンプルが人の場合は「氏名」等であり得る）、「生年月日」、「郵便番号」、「趣味」などが含まれる。このような個票データから、各サンプルのプライバシーに配慮しつつ多くの情報が残るよう、データを一般化（変換）したい場合がある。
【０００３】
個票データを一般化したい場合として、データの２次活用が考えられる。たとえば、Ａ社が顧客から図１のような個票データを集め、そのデータをＢ社に販売し、Ｂ社が個票データを分析した知識を市場分析等に役立てる、といった状況である。このとき、Ａ社は顧客に配慮し、顧客のプライバシーが侵害されうるデータはＢ社等の他社に提供したくないとする。一方、Ｂ社はＡ社の一人一人の情報には興味がないが、全体的な情報はできるだけ正確に得たいとする。
【０００４】
一般化の方法の一つとして、属性毎の統計化が知られている。たとえば、個票データに、氏名、生年月日、郵便番号、趣味が記載されている場合、「趣味」について度数分布の情報に変換する方法である。たとえば、ゴルフを趣味とする人が２人、水泳を趣味とする人が２人、読書を趣味とする人が２人、料理を趣味とする人が２人であるとすると、趣味=｛ゴルフ：２、水泳：２、読書：２、料理：２｝のように度数分布の情報に変換する。この情報を見てもどれが誰の趣味かわからないが、全体的な趣味の傾向を知ることができる。
【０００５】
このように属性毎の統計化は要求に応える方法の一つといえる。しかし、この方法は属性間の関係がわからないという欠点がある。たとえば、上の例の場合、Ｂ社は「生年」と「趣味」との相関を分析したいと考えているとき、「生年」や「趣味」の統計データを別々に入手しても、それを実現できない。
【０００６】
属性間の関係を分析できる一般化の方法の一つとして、無名化が知られている。つまり、個票データの各行の「識別子」かそれに近い属性（サンプルが人の場合は「氏名」であり得る）を削除した後の関係モデルである。これを見たＢ社は（「識別子」以外の）各属性の関係を分析することができる。
【０００７】
属性間の関係を分析できる一般化の方法の一つとして、ｌ−多様化が知られている（たとえば、非特許文献１）。ｌ−多様化は、Ｑｕａｓｉ−Ｉｄｅｎｔｉｆｉｅｒ（ＱＩ）とＳｅｎｓｉｔｉｖｅ−Ａｔｔｒｉｂｕｔｅ（ＳＡ）などを入力として受け、ＱＩの値が近い行同士をグループ化し、各グループのＳＡの値が多様性を持つようにする。ＳＡは各サンプル、すなわち個票データの各行のデータ提供者がみだりに知られたくない情報の列であり、ＱＩは他人でも容易に知ることができる情報の集合である。ＱＩは個票データでは、１つ以上の列に記載されているデータに対応し得る。ここで、多様性とは、ＳＡ値の度数分布について判定できる性質で、普通は度数分布の偏りが小さいことを判定する性質である。
【０００８】
また、コンピュータを介して商品及びサービスを売買することに関連して、その商品及びサービスに関する知識を表現する方法として、少なくとも１つのエンティティ及び各エンティティと関連した少なくとも１つの特性を含む機能的分類を行う方法が知られている（たとえば、特許文献１）。たとえば、制約満足化技法と共にオブジェクト指向原理を組み込んだオブジェクト中心の制約方法に依存する方法が知られている。オブジェクト指向原理は、識別、分類、多相性、および継承を含み、制約満足化方法は、属性の間のインタ・コンセプト間或いはイントラ・コンセプトの関係を表す方法である。このような方法を採用することによって、複数の売り手が、種々の環境でカスタマイズ、統合、相互交換、及び再使用することができる画一的な方法でそれぞれの製品を説明することができる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平１０−１４９２８８号公報
【非特許文献】
【００１０】
【非特許文献１】Ａｓｈｗｉｎ  Ｍａｃｈａｎａｖａｊｊｈａｌａ、Ｄａｎｉｅｌ  Ｋｉｆｅｒ、Ｊｏｈａｎｎｅｓ  Ｇｅｈｒｋｅ、ａｎｄ  Ｍｕｔｈｕｒａｍａｋｒｉｓｈｎａｎ Ｖｅｎｋｉｔａｓｕｂｒａｍａｎｉａｍ、Ｌ−ｄｉｖｅｒｓｉｔｙ： Ｐｒｉｖａｃｙ ｂｅｙｏｎｄ  ｋ−ａｎｏｎｙｍｉｔｙ、ＡＣＭ Ｔｒａｎｓ．Ｋｎｏｗｌ．Ｄｉｓｃｏｖ．Ｄａｔａ、Ｖｏｌ．１、Ｍａｒｃｈ  ２００７
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、実際には、人によってどの属性を知られたくないと思うかが違う場合があり、各サンプル、すなわち個票データの各行のデータ提供者がみだりに知られたくない情報（たとえばｌ−多様化による一般化を用いる場合では、ＳＡ）と、他人でも容易に知ることができる情報（たとえばｌ−多様化による一般化を用いる場合では、ＱＩ）を適切に設定することが難しく、プライバシーに配慮した一般化ができないという問題がある。
【００１２】
よって、一つの側面として、本発明は、サンプルのプライバシーに配慮して属性間の関係を分析することができるデータ編集プログラム、データ編集方法およびデータ編集装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
複数のサンプルのそれぞれに対する複数の属性の値を含む関係モデルと、前記属性ごとに階層と前記階層のそれぞれに対応する一般化値とが定義された一般化情報とを用いて、前記階層の一つに対応する前記複数のサンプルの前記一般化値の組み合わせであって、前記複数の属性のうち一つの属性に対応する前記一般化値に対して前記複数の属性の他の属性に対応する前記一般化値が多様性を有する前記一般化値の組み合わせを抽出する処理をコンピュータに実行させることを特徴とするデータ編集プログラムが提供される。
【発明の効果】
【００１４】
サンプルのプライバシーに配慮して属性間の関係を分析することができる。
【図面の簡単な説明】
【００１５】
【図１】個票データの例を示す図である。
【図２】無名化後の関係モデルの例を示す図である。
【図３】ｌ−多様化後の関係モデルの例を示す図である。
【図４】データ編集装置の機能ブロックの例を示す図である。
【図５】「生年」の一般化木の例を示す図である。
【図６】「郵便番号」の一般化木の例を示す図である。
【図７】「趣味」の一般化木の例を示す図である。
【図８】各一般化木の各階層の多様性定義の例を示す図である。
【図９】図２に一般化情報を適用した例を示す図である。
【図１０】一般化情報の集合の例を示す図である。
【図１１】一般化した結果の例を示す図である。
【図１２】一般化した結果の例を示す図である。
【図１３】一般化した結果の例を示す図である。
【図１４】データ編集装置の構成の例を示す図である。
【図１５】処理の流れの例を示す図である。
【図１６】Ｐに対する集合Ｏを作る処理の流れの例を示す図である。
【図１７】Ｐに対する集合Ｉを作る処理の流れの例を示す図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照して、実施形態のデータ編集プログラム、データ編集方法およびデータ編集装置について説明する。実施形態のデータ編集プログラム、データ編集方法およびデータ編集装置は、個票データ、すなわち各行に各人の情報を格納した関係モデル（２次元表）を、各人のプライバシーに配慮しつつ多くの情報が残るよう、データを一般化（変換）する。
【００１７】
図１は、個票データの例を示す図である。
個票データを一般化したい場合として、データの２次活用が考えられる。たとえば、Ａ社が顧客から図１のような個票データを集め、そのデータをＢ社に販売し、Ｂ社が個票データを分析した知識を市場分析等に役立てる、といった状況である。このとき、Ａ社は顧客に配慮し、顧客のプライバシーが侵害されうるデータはＢ社等の他社に提供したくないとする。一方、Ｂ社はＡ社の一人一人の情報には興味がないが、全体的な情報はできるだけ正確に得たいとする。
【００１８】
一般化の方法として、属性毎の統計化がある。たとえば、図１の場合、「趣味」について、 趣味＝｛ゴルフ：２、水泳：２、読書：２、料理：２｝などと度数分布の情報に変換する方法である。Ｂ社はこの情報を見てもどれが誰の趣味かわからないが、全体的な趣味の傾向はわかる。
【００１９】
このように属性毎の統計化は要求に応える方法の一つといえる。しかし、この方法は属性間の関係がわからないという欠点がある。たとえば、図１の場合、Ｂ社は「生年」と「趣味」との相関を分析したいと考えているとき、「生年」や「趣味」の統計データを別々に入手しても、それを実現できない。以下では、そのように、属性間の関係を分析できるような一般化を対象とする。
【００２０】
属性間の関係を分析できる一般化の方法として、無名化がある。
図２は、無名化後の関係モデルの例を示す図である。図２には、図１を無名化、つまり行の識別子かそれに近い属性、例えば図１の「氏名」を削除した後の関係モデルである。
【００２１】
これを見たＢ社は（「氏名」以外の）各属性の関係を分析することができる。しかし、無名化だけではプライバシー保護が不十分な場合がある。たとえば、次の状況を考える。
（１）「八条  八郎」は自分の趣味がダンスであることをＢ社に知られたくないと思っている。
（２）Ｂ社は「八条  八郎」の「生年」が１９８９年で「郵便番号」が１２２と知っている。
（３）Ｂ社は図２に示されている個票データに「八条  八郎」の行があることを知っている。
【００２２】
これらの状況が全て成立した場合、図２はプライバシー保護が十分とはいえない。なぜなら、Ｂ社は生年と郵便番号から、「八条  八郎」の行が図２の８行目、すなわち、（生年, 郵便番号）＝（１９８９、１２２）であることを知ることができる。よって、「八条  八郎」の「趣味」が「ダンス」だとわかる。しかし、これは「八条 八郎」が望まないことだからである。
【００２３】
実施形態のデータ編集装置、データ編集方法およびデータ編集プログラムでは、一般化後の関係モデルを見る者は、そこに含まれるある一人について詳細な情報を持っている場合を対象とする。その場合、上記例のように、無名化だけではプライバシー保護が不十分である。
【００２４】
図３は、ｌ−多様化後の関係モデルの例を示す図である。ｌ−多様化は、属性間の関係を分析できる一般化の方法の一つである。
【００２５】
ｌ−多様化は、ｌ−多様化は、Ｑｕａｓｉ−Ｉｄｅｎｔｉｆｉｅｒ（ＱＩ）とＳｅｎｓｉｔｉｖｅ−Ａｔｔｒｉｂｕｔｅ（ＳＡ）などを入力として受け、ＱＩ値（ＱＩの値）が近い行同士をグループ化し（たとえば同じ値に一般化し）、各グループのＳＡ値（ＳＡの値）が多様性を持つようにする。ＳＡは各人（行データ提供者）がみだりに知られたくない情報の列であり、ＱＩは他人でも容易に知ることができる情報の列集合（１つ以上の列）である。
【００２６】
ｌ−多様化における多様性とは、ＳＡの値の度数分布について判定できる性質で、普通は度数分布の偏りが小さいことを判定する性質である。
【００２７】
ｌ−多様化の例として、たとえば、ＱＩ＝｛生年、郵便番号｝、ＳＡ＝趣味とし、多様性を「趣味の値が２種類以上あること」としてｌ−多様化することが考えられる。たとえば、１９７０年生まれ、郵便番号が１２１の場所に住み、水泳を趣味とするｋさんと、１９７２年生まれ、郵便番号が１２２の場所に住み、読書を趣味とするｍさんがいるとする。ここで、「１９７？年」生まれ、郵便番号が「１２？」をＱＩとすると、ＳＡ＝｛水泳、読書｝と２種類のＳＡ値が存在するので、「趣味の値が２種類以上あること」という多様性の条件を満たす。このように、ｌ−多様化は、属性間の関係を分析できる上、プライバシーにも配慮した一般化方法として知られている。
【００２８】
図３に示されている例は、図２に示されている例に対し、ＱＩ＝｛生年、郵便番号｝、ＳＡ＝｛趣味｝とし、多様性を「趣味の値が２種類以上あること」としてｌ−多様化した例である。図３中で、「？」は任意の数字を表し、グループのＱＩ値を同じ値に一般化するのに使用されている。ＱＩ値が互いに近い、｛１、３｝行目、｛２、４｝行目、｛５、６｝行目、｛７、８｝行目がグループ化されている。また、ＱＩ値が近い行がない９行目は墨塗りされている。各グループのＳＡ値は多様性を満たしている。すなわち、どのグループのＳＡ値の度数分布も、２種類以上のＳＡ値がある。
【００２９】
図３に示されている例では、属性間の関係を分析できる上、プライバシーにも配慮されている。たとえば、前述の例で考えると、Ｂ社は「八条  八郎」の行を｛７、８｝行目のいずれかに絞り込めず、従ってその「趣味」も｛読書, ダンス｝のいずれかに絞り込めない。なお、「八条  八郎」が図３の９行目でないことは、ｌ−多様化のアルゴリズムを知っていればわかる。９行目はＱＩ値が近い行がなかったため墨塗りされたのであり、７行目や８行目のＱＩ値と近ければ墨塗りされなかったはずなので、｛７、８｝行目のＱＩ値に相当する「八条  八郎」は９行目でないことがわかる。
【００３０】
このように、ｌ−多様化は、属性間の関係を分析できる上、プライバシーにも配慮することができる。
【００３１】
しかし、ｌ−多様化はＱＩとＳＡを利用者（たとえば、Ａ社等）が適切に決めなければならないという問題がある。
【００３２】
たとえば、先と違い、「八条  八郎」は自分の生年や郵便番号をＢ社に知られたくないと思っていて、Ｂ社は「八条  八郎」の「趣味」がダンスだと知っている状況を考える。ただし、Ａ社はそのことを知らず、先と同じくＱＩとＳＡを設定したとする。この状況でＢ社が図３の関係モデルを見ると、「八条  八郎」の行は８行目で、その「生年」と「郵便番号」はそれぞれ“１９８９”と“１２？”である可能性が高いことがわかってしまう。つまり、「八条  八郎」にとってプライバシー保護が不十分となる。なお、「八条  八郎」の行が９行目の可能性もあるが、たとえば「趣味」がダンスの人が稀なことや、各人の趣味の度数分布がわかっている場合などには、「八条  八郎」は８行目である可能性が高まることがある。
【００３３】
また、実際には、人によってどの属性を知られたくないと思うかが違う場合があり、その場合にはＱＩとＳＡを適切に設定しようがないことがあり得る。
【００３４】
以下で説明する実施形態のデータ編集装置、データ編集方法およびデータ編集プログラムでは、一般化対象の関係モデルがｎ列ある場合、任意のｎ−１列について、それらの値が一緒の行について残りの列の値に多様性を持たせるように一般化する。各列についての多様性定義を入力として受け、それらで各列の多様性を判定しながら一般化することで、どの列も多様性を達成している関係モデルに変換する。すなわち、以下で説明する実施形態のデータ編集装置、データ編集方法およびデータ編集プログラムでは、ＱＩとＳＡの設定を必要とせず、プライバシーに配慮した、属性間の関係を分析できる一般化を行う。一般化後の関係モデルは、サンプルのプライバシーに配慮して属性間の関係を分析することができる。たとえば、個票データに含まれている誰か一人について、ｎ列のうちｎ−１列までの情報を知っている者が見ても、残りの１列の情報が多様化されているため、高いプライバシーの保護を実現することができる。
【００３５】
＜データ編集装置＞
図４は、データ編集装置１００の機能ブロックの例を示す図である。
【００３６】
データ編集装置１００は、入力部１０２、一般化部１０４、出力部１０６を含む。一般化部１０４は、匿名化部１０４とも呼ばれることがある。
【００３７】
データ編集装置１００の入力部１０２は、以下を入力として受ける。
（Ｉ１）一般化対象の関係モデルＲ
（Ｉ２）関係モデルＲの各列の一般化木Ｔ
（Ｉ３）各一般化木の各階層の多様性定義Ｄ
（Ｉ４）最大墨塗り行数ｓ
関係モデルＲは、各列にサンプルに対する情報が格納されている２次元の表で、たとえば、図２に示されているものである。もちろん、関係モデルＲは、図２のように、サンプルは人である必要はなく、他の動物であっても、装置であってもよく、一般には任意である。
【００３８】
関係モデルＲの各列の一般化木Ｔは、各値の分類関係を示した木構造データである。一般化木Ｔには、階層と、各階層における値（一般化値とも呼ばれる）が定義され、階層０を任意値"*"とし、階層数が大きくなるにつれ、一般化の程度が低くなる。つまり階層数が大きくなるにつれ、抽象から具象に移行する。一般化木は、一般化情報と呼ばれることもある。
【００３９】
図５は「生年」の一般化木の例である。図５では、図２に出現している値に関する部分だけを表現しているが、それ以外の値に関する部分があっても良い。図５は深さ３までの３階層がある。木の根の方向にエッジを辿るにつれ、数字が一般化されている。根まで一般化することは墨塗りに相当するが、便宜上これを階層０と呼ぶ。たとえば、値１９８９は、階層３では１９８９であり、階層２に一般化すると“１９８？”であり、階層１に一般化すると“１９？？”である。さらに、階層０に一般化すると“＊”である。ここで“？”は任意の１桁の数字であり、“＊”は任意の桁数の任意の数である。
【００４０】
図６は「郵便番号」の一般化木の例を示す図であり、図７は「趣味」の一般化木の例を示す図である。
【００４１】
関係モデルＲは図２に示されているものとする。このとき、一般化木Ｔとして、図２の「生年」から図５に示されているものへ、図２の「郵便番号」から図６に示されているものへ、図２の「趣味」から図７へ、の関係を有する写像を以下の説明で用いる。
【００４２】
各一般化木の各階層の多様性定義Ｄは、列名ａと階層ｌの組から多様性定義への写像Ｄ：（ａ、ｌ）→ｄとする。多様性定義ｄは、度数分布から性質を満たすか否かの論理値への写像ｄ：Ｆ→１／０とする。さらに、写像ｄは、次の性質を持つ写像とする。
（ｄ１）単調性：（ｄ（Ｆ１）＝１）∧（ｄ（Ｆ２）＝１）⇒ｄ（Ｆ１＋Ｆ２）＝１。ただし、Ｆ１＋Ｆ２ は度数分布同士の和である。
（ｄ２）階層単調性：ｄ（Ｆ）＝１⇒ｄ’（Ｆ’）＝１。ただし、ｄ’はｄより１つだけ小さい階層での多様性定義で、Ｆ’はｄ’の階層での度数分布、すなわちＦをｄ’の階層に一般化したものである。
【００４３】
図８は、各一般化木の各階層の多様性定義の例を示す図である。図８は上記の一般化木Ｔに対応する写像Ｄの例である。
【００４４】
たとえば、ｄを生年：３の多様性定義とする。このときｄはＦに１０の位が異なる値があるときにのみ真（“１”）となるので、たとえば、Ｆ＝｛“１９７０”：１、“１９８９”：２｝⇒ ｄ（Ｆ）＝１、Ｆ＝｛“１９７０”：２、“１９７８”：２｝⇒ｄ（Ｆ）＝０などが成り立つ。また、多様性定義ｄをはじめ、図８の各多様性は単調性および階層単調性を満たす。たとえば、Ｆ＝｛“１９７０”：１、“１９８９”：２｝⇒ｄ（Ｆ１）＝１、Ｆ２＝｛“１９７０”：２、“１９８９”：１｝⇒ｄ（Ｆ２）＝１ であり、ｄ（Ｆ１＋Ｆ２）＝ｄ（｛“１９７０”：３、“１９８９”：３｝）＝１であるため、確かに単調性に矛盾しない。また、Ｆ１＝｛“１９７０”：１、 “１９８９”：２｝⇒ｄ（Ｆ１）＝１であり、ｄ’(Ｆ１’)＝ｄ’(“１９７？”：１、“１９８？”：２）＝１であるため、確かに階層単調性に矛盾しない。なお、各列の階層０の多様性定義は常に真（“１”）を返す写像とする。このような写像Ｄを以下の説明で用いる。
【００４５】
最大墨塗り行数ｓは、関係モデルＲの行数未満の非負整数とする。以下の説明ではｓ＝２とする。
【００４６】
データ編集装置１００の出力部１０６は、一般化部１０４の結果として、一般化情報の集合、およびその要素の１つである一般化情報Ｇにより一般化した後の関係モデルを出力する。
【００４７】
一般化情報Ｇは、｛列名：階層｝の集合と、墨塗りすべき行番号集合の組とする。｛列名：階層｝は各列のものが高々１つずつあるものとする。階層＝０の列名のデータはなくても良い。以下では、行番号は１行目から順番に０、１、・・・によってインデックスされるものとする。一般化情報Ｇは、たとえばＧ＝（｛生年：２、郵便番号：１、趣味：１｝、｛８｝）などとなり得る。これは「生年」を階層２に一般化、「郵便番号」を階層１に一般化、「趣味」を階層１に一般化、９行目を墨塗り、という意味であるとする。
【００４８】
図９は図２に一般化情報を適用した例を示す図である。より詳細には、図９は、図２に示されている関係モデルを一般化情報Ｇ＝（｛生年：２、郵便番号：１、趣味：１｝、｛８｝）に従い一般化した後の関係モデルである。「八条  八郎」についての一部の情報を知っているＢ社が図９を見た場合、「生年」と「郵便番号」を知っていても「趣味」はわからず、「郵便番号」と「趣味」を知っていても「生年」は詳しくはわからず、「生年」と「趣味」を知っていても「郵便番号」は詳しくはわからない。なお、墨塗りの代わりに、行を削除しても良い。
【００４９】
データ編集装置１００の出力部１０６は、一般化情報の集合を図１０のように表形式で出力しても良い。図１０の１行目が一般化情報Ｇである。データ編集装置１００の出力部１０６から出力される集合は、一般化された関係モデルと呼ばれることもある。
【００５０】
多様性定義Ｄの単調性および階層単調性により、ある一般化情報Ｇが多様性定義Ｄを達成するとき、ある一般化情報Ｇ以下の｛列名：階層｝集合を持つ一般化情報Ｇは全て多様性定義Ｄを達成する。それにより、一般化情報Ｇを求めやすくなる利点がある。なお、列名：階層集合の大小は、各列の階層の大小で判定する。たとえば、Ｐ１＝｛生年：２、郵便番号：１｝、Ｐ２＝｛生年：１、郵便番号：１｝、Ｐ３＝｛生年：１、郵便番号：２｝とすると、Ｐ１>Ｐ２、Ｐ３>Ｐ２であり、Ｐ１とＰ３の大小は決められない。
【００５１】
データ編集装置１００の一般化部１０４では、入力部１０２で受けた関係モデルＲがｎ列ある場合、任意のｎ−１列について、それらの値が一緒の行について残りの列の値に多様性があるように一般化する。一般化部１０は、列の冪集合による束構造について、小さい集合から順に、多様性を達成するよう一般化を試みてもよい。この一般化は、ｌ−多様化と類似しているが、各列で多様性判定が異なるという点で、ｌ−多様化とは異なっている。
【００５２】
またデータ編集装置１００の一般化部１０４は、各変換後の関係モデル（２次元の表）で、最大墨塗り行数ｓ以下を削除すれば達成しないか繰り返し検証する機能を有する。出力部１０６は、最大墨塗り行数ｓ以上の数の行を削除した場合は、結果を出力しなくても良い。
【００５３】
データ編集装置１００の入力部１０２で、関係モデルＲとして図２に示されているもの、一般化木Ｔとして図５〜図７に示されているもの、多様性定義Ｄとして図８に示されているもの、最大墨塗り行数ｓ＝２、を入力として受け入れたときの、データ編集装置１００の一般化部１０４の機能について説明する。
【００５４】
データ編集装置１００の入力部１０２は、関係モデルＲの各列名の｛列名：最大階層｝を要素とする集合Ｃを用意する機能を有する。関係モデルＲの列名は｛生年、郵便番号、趣味｝であり、それぞれの最大階層は一般化木Ｔより｛生年：３、郵便番号：２、趣味：２｝なので、Ｃ＝｛｛生年：３｝、｛郵便番号：２｝、 ｛趣味：２｝｝である。
【００５５】
データ編集装置１００の一般化部１０４は、集合Ｃの各要素Ｐに対し、多様性定義Ｄを満たす最大の階層を要素とする集合Ｏを用意する機能を有する。たとえば、要素Ｐ＝｛生年：３｝の場合、多様性を満たす最大の階層は｛生年：３｝で墨塗りは不要である。また、要素Ｐ＝｛郵便番号：２｝の場合、多様性を満たす最大の階層は｛郵便番号：２｝であり、墨塗り不要である。さらに、要素Ｐ＝｛趣味：２}の場合、多様性を満たす最大の階層は｛趣味：２｝で墨塗りは不要である。よって、集合Ｏ＝｛（｛生年：３｝、｛｝）、（｛郵便番号：２｝、｛｝）、（｛趣味：２｝、｛｝）｝となる。
【００５６】
ここで、「多様性を満たす」、「多様性を達成する」という言葉は、「多様性定義Ｄを満足する」と同義で用いられ得る。
【００５７】
データ編集装置１００の一般化部１０４は、列名集合の異なる全ての２つの一般化情報Ｇ∈Ｏの｛列名：階層｝の組み合わせについて、重複列名について階層を２つの最小値として融合した｛列名：階層｝をそれぞれ求め、それらを集合Ｃとし、集合Ｃから階層が極大でない要素を削除する機能を有する。
【００５８】
また、データ編集装置１００の一般化部１０４は、集合Ｏを空にし、集合Ｃの各要素Ｐにつき、多様性定義Ｄを満たす全ての極大の階層を集合Ｏに追加する機能を有する。
【００５９】
また、データ編集装置１００の一般化部１０４は、集合Ｏの要素のうち、階層が正値である列名が１つ以下のものを削除する機能を有する。階層が正値である列名が１つ以下の一般化情報が算出できなくなるが、全体の処理量を減らせるという効果がある。この機能を除いても、一般化情報は算出できるが、そのときには、階層が正値である列名が１つ以下の一般化情報による一般化は統計化で代用することができる。
【００６０】
さらに、データ編集装置１００の一般化部１０４は、（関係モデルＲの列数−１）回だけ、上記の処理を繰り返す機能を有している。
【００６１】
図２の例では、列名集合の異なる２つのＧ∈Ｏの｛列名：階層｝の組み合わせは、次の３通りとなる。
（１）｛生年：３｝、｛郵便番号：２｝
（２）｛生年：３｝、｛趣味：２｝
（３）｛郵便番号：２｝、｛趣味：２｝
いずれも重複列名がないためそのまま融合し、集合Ｃ＝｛｛生年：３、郵便番号：２｝、｛生年：３、趣味：２｝、｛郵便番号：２、趣味：２｝｝となる。集合Ｃの要素は全て極大である。
【００６２】
たとえば、集合Ｃの各要素Ｐ＝｛生年：３、郵便番号：２｝の場合、多様性を満たす極大の階層は、｛生年：３、郵便番号：０｝で墨塗り不要と、｛生年：２、郵便番号：２｝で墨塗り｛８｝である。同様に、Ｐ＝｛生年：３、趣味：２｝の場合は（｛生年：２、趣味：１｝、｛８｝）と（｛生年：１、趣味：２｝、｛８｝）であり、Ｐ＝｛郵便番号：２、趣味：２｝の場合は（｛郵便番号：２、趣味：１｝、｛８｝）と（｛郵便番号：０、趣味：２｝、｛｝）である。よって、Ｏ＝｛（｛生年：３、郵便番号：０｝、｛｝）、（｛生年：２、郵便番号：２｝、｛８｝）、（｛生年：２、趣味：１｝、｛８｝）、（｛生年：１、趣味：２｝、｛８｝）、（｛郵便番号：２、趣味：１｝、｛８｝）、（｛郵便番号：０、趣味：２｝、｛｝）｝である。
【００６３】
図２の例では、集合Ｏの要素のうち、（｛生年：３、郵便番号：０｝、｛｝）と（｛郵便番号：０、趣味：２｝、｛｝）｝はいずれも階層が正値である列名が１つしかないため、これらを削除し、Ｏ＝｛（｛生年：２、郵便番号：２｝、｛８｝）、（｛生年：２、趣味：１｝、｛８｝）、（｛生年：１、趣味：２｝、｛８｝）、（｛郵便番号：２、趣味：１｝、｛８｝）｝となる。
【００６４】
２回目の繰り返しの処理で、列名集合の異なる２つのＧ∈Ｏの｛列名：階層｝の組み合わせは、次の５通りとなる。
（１’）｛生年：２、郵便番号：２｝、｛生年：２、趣味：１｝
（２’）｛生年：２、郵便番号：２｝、｛生年：１、趣味：２｝
（３’）｛生年：２、郵便番号：２｝、｛生年：２、趣味：１｝
（４’）｛生年：２、趣味：１｝、｛郵便番号：２、趣味：１｝
（５’）｛生年：１、趣味：２｝、｛郵便番号：２、趣味：１｝
ここで、データ編集装置１００の一般化部１０４は、重複列名の階層は互いの最小値として融合する機能を有する。この機能を用いると、上記（１’）〜（５’）は、それぞれは次のようになる。
（１）｛生年：２、郵便番号：２、趣味：１｝
（２）｛生年：１、郵便番号：２、趣味：２｝
（３）｛生年：２、郵便番号：２、趣味：１｝
（４）｛生年：２、郵便番号：２、趣味：１｝
（５）｛生年：１、郵便番号：２、趣味：１｝
これらの項目のうち、項目（３）＜項目（１）、項目（４）＜項目（１）、項目５＜項目（２）なので、これら極大でない項目を除いて項目（１）、（２）を残し、集合Ｃ＝｛｛生年：２、郵便番号：２、趣味：１｝、｛生年：１、郵便番号：２、趣味:２｝｝となる。
【００６５】
次に、データ編集装置１００の一般化部１０４は、再び、集合Ｏを空にし、集合Ｃの各要素Ｐにつき、多様性定義Ｄを満たす全ての極大の階層を集合Ｏに追加する。集合Ｃの各要素Ｐ＝｛生年：２、郵便番号：２、趣味：１｝の場合多様性を満たす極大の階層は（｛生年：２、郵便番号：１、趣味：１｝、｛８｝）と（｛生年：１、郵便番号：２、趣味：１｝、｛８｝）であり、Ｐ＝｛生年：１、郵便番号：２、趣味：２｝の場合多様性を満たす極大の階層は（｛生年：１、郵便番号：２、趣味：１｝、｛８｝）と（｛生年：１、郵便番号：０、趣味：２｝、｛８｝）である。よって、Ｏ＝｛（｛生年：２、郵便番号：１、趣味：１｝、｛８｝、（｛生年：１、郵便番号：２、趣味：１｝、｛８｝）、（｛生年：１、郵便番号：０、趣味：２｝、｛８｝）｝である。この場合、データ編集装置１００の一般化部１０４は、集合Ｏに削除対象となる要素はなく、何もしない。
【００６６】
図１０は一般化情報の集合の例を示す図である。ただし、図１０では階層の値が０の列に関する情報は省略している。
【００６７】
図１０が得られたら、そこから一般化情報を一つ適当に選び、関係モデルＲを一般化する。選び方は、たとえば、階層の和が最大のもの、それが複数ある場合階層の値が正値である列数がより多いもの、それが複数ある場合は文字列表現してソートしたときの最初のもの、などとする。一般的には、一般化情報を入力とし評価値を出力とする評価関数を予め用意しておき、その値が最小あるいは最大のものを選ぶ。
【００６８】
一般化は、関係モデルの各列ａにつき、一般化木ｔをＴから取得し、一般化情報から階層を取得し、各行の値をｔのその階層の値に置換し、さらに一般化情報の墨塗りすべき行番号集合にあたる行を全て墨塗りすることでおこなう。図９は図１０の最初の要素で一般化した結果である。
【００６９】
データ編集装置１００の出力部１０６は、一般化情報か、変更後の関係モデルの、どちらかだけを出力しても良い。
【００７０】
データ編集装置１００の一般化部１０４の集合Ｃの各要素Ｐに対し多様性定義Ｄを満たす最大の階層を要素とする集合Ｏを用意する機能について、より詳細に説明する。
【００７１】
データ編集装置１００の一般化部１０４は、集合Ｃの各要素Ｐの列集合は｛生年、郵便番号｝なので、関係モデルＲの複写をこの列範囲でＰによって一般化する。
【００７２】
図１１は、Ｐ’＝｛生年：３、郵便番号：２｝で一般化した結果を示す図である。多様性定義Ｄを達成するために、墨塗りすべき行集合Ｉ＝｛０、１、・・・、８｝となる。つまり、全行を墨塗りする必要がある。Ｉの要素数｜Ｉ｜＝９、最大墨塗り行数ｓ＝２なので条件は成立しない。ここで、集合Ｃ＝｛Ｐ｝＝｛｛生年：３、郵便番号：２｝｝である。
【００７３】
データ編集装置１００の一般化部１０４は、集合Ｃから要素を１つ削除し、Ｐとする。たとえば、Ｐ←｛生年：３、郵便番号：２｝、Ｃ←｛｝である。
【００７４】
そして、データ編集装置１００の一般化部１０４は、Ｐの各列名ａで且つａの階層が０より大きい列名ａに対し、まず、集合Ｃの要素Ｐを要素Ｐ’に複写し、要素Ｐ’のａの階層を１だけ減じる。たとえば、Ｐ’←｛生年：２、郵便番号：２｝となる。
【００７５】
データ編集装置１００の一般化部１０４は、まず、列名ａ←生年とし、要素Ｐ’の列範囲で、Ｐ’による一般化で関係モデルＲが多様性を達成するために必要な黒塗り行集合Ｉを算出する。たとえば、Ｐの生年の階層は３であるため、合Ｃの要素Ｐを要素Ｐ’に複写しに複写し、要素Ｐ’のａの階層を１だけ減じる。すると、Ｐ’←｛生年：２、郵便番号：２｝となる。要素Ｐ’の列集合は ｛生年、郵便番号｝なので、関係モデルＲの複写をこの列範囲でＰ’によって一般化する。
【００７６】
図１２は、Ｐ’＝｛生年：２、郵便番号：２｝で一般化した結果の例を示す図である。多様性定義Ｄを達成するために、墨塗りすべき行集合Ｉ＝｛８｝となる。図１２に示されている例では、墨塗りすべき行集合Ｉの要素数｜Ｉ｜＝１、最大墨塗り行数ｓ＝２なので条件が成立する。
【００７７】
するとデータ編集装置１００の一般化部１０４は、集合Ｏに（Ｐ’、Ｉ）を追加する。結果、Ｏ＝｛（｛生年：２、郵便番号：２｝、｛８｝）｝となる。
【００７８】
次にデータ編集装置１００の一般化部１０４は、ａ←郵便番号とする。Ｐの郵便番号の階層は２であるため、ＰをＰ’に複写し、Ｐ’のａの階層を１だけ減じる。すると、Ｐ’←｛生年：３、郵便番号：１｝となる。
【００７９】
次にデータ編集装置１００の一般化部１０４は、Ｐ’の列集合は｛生年、郵便番号｝なので、Ｒの複写をこの列範囲でＰ’によって一般化する。
【００８０】
図１３は、Ｐ’＝｛生年：３、郵便番号：１｝で一般化した結果の例を示す図である。多様性定義Ｄを達成するために、墨塗りすべき行集合Ｉ＝｛０、１、・・・、８｝となる。つまり、全行を墨塗りする必要がある。墨塗りすべき行集合Ｉの要素数｜Ｉ｜＝９、最大墨塗り行数ｓ＝２なので条件は成立しない。そこで、ＣにＰ’を追加し、集合Ｃ＝｛Ｐ｝＝｛｛生年：３、郵便番号：１｝｝である。Ｃは空でないので、データ編集装置１００の一般化部１０４は、集合Ｃから要素を１つ削除し、Ｐとする。データ編集装置１００の一般化部１０４は、この集合Ｃが空になるまで、上でａを生年とした場合について説明したことを繰り返す機能を有する。結果、Ｃが空になった時点で、Ｏ＝｛（｛生年：２、郵便番号：２｝、｛８｝）、（｛生年：２、郵便番号：１}、｛８｝）、（｛生年：３、郵便番号：０｝、｛｝）｝を得る。
【００８１】
データ編集装置１００の一般化部１０４は、集合Ｏの３要素のうち（｛生年：２、郵便番号:１｝、｛８｝）は極大でない（他の要素（｛生年：２、郵便番号：２｝、｛８｝）よりＰ’の部分が小さい）ので、これを削除する。結果、集合Ｏ＝｛（｛生年：２、郵便番号：２｝、｛８｝）、（｛生年：３、郵便番号：０｝、｛｝）｝となる。
【００８２】
上記の例でデータ編集装置１００の一般化部１０４は、極大にならない結果に対しても計算をおこなっているが、できるだけ極大にならない結果に対して計算をおこなわないようにしても良い。そのためには、たとえば計算不要な｛列名：階層｝を記憶しても良い。たとえばデータ編集装置１００の一般化部１０４は、集合Ｏに要素を追加するとき、そのＰ’以下の｛列名：階層｝は全て計算不要集合に追加し、Ｐ’が計算不要集合に含まれているか検査する機能を有してもよい。
【００８３】
データ編集装置１００の一般化部１０４の、Ｐに対する集合Ｉを作る機能について、より詳細に説明する。
【００８４】
データ編集装置１００の一般化部１０４は、Ｐの要素ｐについて、以下のような処理を行う機能を有する。
【００８５】
データ編集装置１００の一般化部１０４は、Ｐの要素ｐに対する多様性定義ｄを多様性定義Ｄから抽出する。たとえば、多様性定義ｄは、｛生年：３｝の多様性定義であり、図８に示されているように、１０の位の値が２種類以上のとき１、さもなくば０を返す写像であっても良い。
【００８６】
データ編集装置１００の一般化部１０４は、関係モデルＲ’のＩ以外の行から、ｐの列名以外の値が等しい行番号の集合をグループＪとし、Ｊの集合Ｕを算出する。図１１では、Ｒ’のＩ以外の行は、図１１の全ての行であり、ｐの列名以外の列は｛郵便番号｝なので、図１１の「郵便番号」の値が等しいグループを作り、Ｕ＝｛｛０、２、６、７｝、｛１、３、４、５｝、｛８｝｝となる。なお、たとえばＪ＝｛８｝は（郵便番号）＝（１３？）のグループである。また、ｐの列名以外の列が｛｝であった場合は、Ｒ’のＩ以外の全行を１つのグループをＪとし、Ｕ＝｛Ｊ｝とする。
【００８７】
データ編集装置１００の一般化部１０４は、Ｒ’から、ｐの列且つＪの値の度数分布を算出する。ｐの列は生年、Ｊ＝｛０、２、６、７｝なので、図１１よりＦ＝｛“１９７０”：１、“１９７２”：１、“１９８９”：２｝となる。
【００８８】
データ編集装置１００の一般化部１０４は、ｄ（Ｆ）＝１であるかを判定する機能を有する。上の例では、Ｆには１０の位の値が７と８の２種類あるため、ｄ（Ｆ）＝１となる。
【００８９】
データ編集装置１００の一般化部１０４は、全てのＪの要素について、上記の機能を繰り返し適用する機能を有する。
【００９０】
最後の繰り返しＪ←｛８｝になったとする。ｐの列は「生年」、Ｊ＝｛８｝なので、図１１よりＦ＝｛“２０００”：１｝となる。Ｆには１０の位の値が０の１種類しかないため、ｄ（Ｆ）＝０となり、ＩにＪの全要素を追加する。上の例では、Ｉ＝｛８｝、ｃ＝１となる。
【００９１】
データ編集装置１００の一般化部１０４は、次に、ｐ←郵便番号：２とし、ｐに対する多様性定義ｄをＤから抽出する機能を有する。Ｒ’のＩ以外の行は図１１の行｛０、１、・・・、７｝であり、ｐの列名以外の列は｛生年｝なので、図１１の行｛０、１、・・・、７｝の「生年」の値が等しいグループを作り、Ｕ＝｛｛０、 １｝、｛２｝、｛３｝、｛４｝、｛５｝、｛６、７｝｝ となる。Ｊ←｛０、 １｝ となり、Ｆ＝｛“１２？”：１、 “１４？”：１｝となる。Ｆには１０の位の値が２と４の２種類あるため、ｄ（Ｆ）＝１である。
【００９２】
全てのＵの要素について繰り返し終了時には、Ｉ＝｛２、３、４、５、６、７、８｝となる。
【００９３】
データ編集装置１００の一般化部１０４は、全てのｐの要素について、上記の機能を繰り返し適用する機能を有する。
【００９４】
データ編集装置１００の一般化部１０４は、ｃ＝０であるかどうかを判定し、ｃ＝０である場合には、Ｉを出力部１０６に渡す機能を有する。
【００９５】
データ編集装置１００の一般化部１０４は、上記のｃを用いることで、Ｉに変更があったら多様性定義Ｄが達成できているか再度調べる、といった機能を有している。
【００９６】
以上の機能によりデータ編集装置１００は、関係モデルＲを、ｓ行以下で墨塗りし、多様性定義を満たすよう一般化木Ｔで一般化するための一般化情報の集合を得ることができる。
【００９７】
したがって、データ編集装置１００は、各サンプル、すなわち個票データの各行のデータ提供者がみだりに知られたくない情報（たとえばｌ−多様化による一般化を用いる場合では、ＳＡ）と、他人でも容易に知ることができる情報（たとえばｌ−多様化による一般化を用いる場合では、ＱＩ）の設定を必要とせず、プライバシーに配慮した、属性間の関係を分析できる一般化を行うことができる。
【００９８】
図１４は実施形態のデータ編集装置１００の構成の例を示す図である。
このコンピュータ２００は、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）２０２、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）２０４、及びＲａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）２０６を備えている。コンピュータ５００は、さらに、ハードディスク装置２０８、入力装置２１０、表示装置２１２、インターフェース装置２１４、及び記録媒体駆動装置２１６を備えている。なお、これらの構成要素はバスライン２２０を介して接続されており、ＣＰＵ２０２の管理の下で各種のデータを相互に授受することができる。
【００９９】
Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）２０２は、このコンピュータ２００全体の動作を制御する演算処理装置であり、コンピュータ２００の制御処理部として機能する。
【０１００】
Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）２０４は、所定の基本制御プログラムが予め記録されている読み出し専用半導体メモリである。ＣＰＵ２０２は、この基本制御プログラムをコンピュータ１００の起動時に読み出して実行することにより、このコンピュータ２００の各構成要素の動作制御が可能になる。
【０１０１】
Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）２０６は、ＣＰＵ２０２が各種の制御プログラムを実行する際に、必要に応じて作業用記憶領域として使用する、随時書き込み読み出し可能な半導体メモリである。
【０１０２】
ハードディスク装置２０８は、ＣＰＵ２０２によって実行される各種の制御プログラムや各種のデータを記憶しておく記憶装置である。ＣＰＵ２０２は、ハードディスク装置２０８に記憶されている所定の制御プログラムを読み出して実行することにより、後述する各種の制御処理を行えるようになる。
【０１０３】
入力装置２１０は、例えばマウス装置やキーボード装置であり、情報処理装置のユーザにより操作されると、その操作内容に対応付けられている各種情報の入力を取得し、取得した入力情報をＣＰＵ２０２に送付する。
【０１０４】
表示装置２１２は例えば液晶ディスプレイであり、ＣＰＵ２０２から送付される表示データに応じて各種のテキストや画像を表示する。
【０１０５】
インターフェース装置２１４は、このコンピュータ２００に接続される各種機器との間での各種情報の授受の管理を行う。
【０１０６】
記録媒体駆動装置２１６は、可搬型記録媒体２１８に記録されている各種の制御プログラムやデータの読み出しを行う装置である。ＣＰＵ２０２は、可搬型記録媒体２１８に記録されている所定の制御プログラムを、記録媒体駆動装置２１６を介して読み出して実行することによって、後述する各種の制御処理を行うようにすることもできる。なお、可搬型記録媒体２１８としては、例えばＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）規格のコネクタが備えられているフラッシュメモリ、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ−ＲＯＭ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などがある。
【０１０７】
このようなコンピュータ２００を用いてデータ編集装置１００を構成するには、例えば、上述の各処理部における処理をＣＰＵ２０２に行わせるための制御プログラムを作成する。作成された制御プログラムはハードディスク装置２０８若しくは可搬型記録媒体２１８に予め格納しておく。そして、ＣＰＵ２０２に所定の指示を与えてこの制御プログラムを読み出させて実行させる。こうすることで、情報処理装置が備えている機能がＣＰＵ２０２により提供される。
【０１０８】
＜データ編集処理＞
図１５〜１７を参照して、データ編集処理について説明する。
【０１０９】
また、データ編集装置１００が図１４に示されているような汎用コンピュータ２００である場合には、下記の説明は、そのような処理を行う制御プログラムを定義する。すなわち、以下では、下記に説明する処理を汎用コンピュータに行わせる制御プログラムの説明でもある。
【０１１０】
すなわち、以下では、複数のサンプルのそれぞれに対する複数の属性の値を含む関係モデルＲと、属性ごとに階層と階層のそれぞれに対応する一般化値とが定義された一般化情報Ｔとを用いて、階層の一つに対応する複数のサンプルの一般化値の組み合わせであって、複数の属性のうち一つの属性に対応する一般化値に対して複数の属性の他の属性に対応する一般化値が多様性を有する一般化値の組み合わせを抽出する処理をコンピュータ２００に実行させることを特徴とするデータ編集プログラムが提供される。
【０１１１】
さらに、階層の一つに対応する複数のサンプルの一般化値の組み合わせにおいて、複数の属性の一つの値に対して、複数の属性の他の全てに対する前記一般化値が、複数の属性の他の属性および前記他の属性に対応する階層によって定義される多様性定義Ｄを満足するために、関係モデルに含まれる複数の属性の値のうち、所定の数のサンプルに関する複数の属性の値を削除する処理をコンピュータ２００に実行させても良い。
【０１１２】
複数の属性の一つａと階層をｌの組から多様性定義への写像Ｄ：（ａ、ｌ）→ｄによって得られる写像ｄは、複数の属性の一つａに対する度数分布をＦとして論理値への写像ｄ：Ｆ→１／０であり、Ｆ１＋Ｆ２は前記度数分布Ｆ１及びＦ２の和、∧を論理積演算として、
（ｄ１）単調性：（ｄ（Ｆ１）＝１）∧（ｄ（Ｆ２）＝１）⇒ｄ（Ｆ１＋Ｆ２）＝１、
（ｄ２）階層単調性：ｄ（Ｆ）＝１⇒ｄ’（Ｆ’）＝１、
を満たす。
【０１１３】
階層の一つに対応する複数のサンプルの一般化値の組み合わせであって、複数の属性のうち一つの属性に対応する一般化値に対して複数の属性の他の全ての属性に対応する一般化値が多様性を有する一般化値の組み合わせを抽出しても良い。
【０１１４】
さらに、一般化情報Ｔを一般化木で表したとき、一般化木の根に相当する階層を含む属性を最大１つだけ含むように一般化を行っても良い。
【０１１５】
図１５は、処理の流れの例を示す図である。
処理が開始されると、Ｓ１００で、データ編集装置１００の入力部１０２は、関係モデルＲ、関係モデルの各列の一般化木Ｔ、各一般化木の各階層の多様性定義Ｄ、最大墨塗り行数ｓを入力として受入れる。
【０１１６】
次のＳ１０２でデータ編集装置１００の一般化部１０４は、関係モデルＲの各列名の列名；最大階層を要素とする集合Ｃを用意する。関係モデルＲの列名は｛生年、郵便番号、趣味｝であり、それぞれの最大階層は一般化木Ｔより｛生年：３、郵便番号：２、趣味：２｝なので、Ｃ＝｛｛生年：３｝、｛郵便番号：２｝、 ｛趣味：２｝｝である。本ステップの処理が終わると、処理はＳ１０４に進む。
【０１１７】
Ｓ１０４でデータ編集装置１００の一般化部１０４は、集合Ｃの各要素Ｐにつき、多様性を達成する（多様性定義Ｄを満たす）最大の階層を要素とする集合Ｏを用意する。たとえば、要素Ｐ＝｛生年：３｝の場合、多様性を満たす最大の階層は｛生年：３｝で墨塗りは不要である。また、要素Ｐ＝｛郵便番号：２｝の場合、多様性を満たす最大の階層は｛郵便番号：２｝であり、墨塗り不要である。さらに、要素Ｐ＝｛趣味：２}の場合、多様性を満たす最大の階層は｛趣味：２｝で墨塗りは不要である。よって、集合Ｏ＝｛（｛生年：３｝、｛｝）、（｛郵便番号：２｝、｛｝）、（｛趣味：２｝、｛｝）｝となる。
【０１１８】
Ｓ１０４の処理について、図１６を参照しながら説明する。
処理が開始されると、Ｓ２００でデータ編集装置１００の一般化部１０４は、関係モデルＲ、関係モデルの各列の一般化木Ｔ、各一般化木の各階層の多様性定義Ｄ、最大墨塗り行数ｓ、｛列名：階層｝の組Ｐ、を入力として受入れる。
【０１１９】
次のＳ２０２でデータ編集装置１００の一般化部１０４は、空集合Ｏを用意する。本ステップの処理が終わると、処理はＳ２０４に進む。
【０１２０】
Ｓ２０４でデータ編集装置１００の一般化部１０４は、Ｐの列範囲で、Ｐによる一般化で関係モデルＲが多様性を達成する（多様性定義Ｄを満たす）ために必要な墨塗り行集合Ｉを算出する。たとえば、集合Ｃの各要素Ｐの列集合は｛生年、郵便番号｝なので、関係モデルＲの複写をこの列範囲でＰによって一般化する。図１１は、Ｐ’＝｛生年：３、郵便番号：２｝で一般化した結果を示す図である。多様性定義Ｄを達成するために、墨塗りすべき行集合Ｉ＝｛０、１、・・・、８｝となる。つまり、全行を墨塗りする必要がある。
【０１２１】
Ｓ２０４の処理について、図１７を参照しながら説明する。
処理が開始されると、Ｓ３００でデータ編集装置１００の一般化部１０４は、関係モデルＲ、関係モデルの各列の一般化木Ｔ、各一般化木の各階層の多様性定義Ｄ、最大墨塗り行数ｓ、｛列名：階層｝の組Ｐ、を入力として受入れる。
【０１２２】
次のＳ３０２でデータ編集装置１００の一般化部１０４は、関係モデルＲを関係モデルＲ’に複写し、関係モデルＲ’を集合Ｃの要素Ｐによって一般化木Ｔに従って一般化する。本ステップの処理が終わると、処理はＳ３０４に進む。
【０１２３】
Ｓ３０４でデータ編集装置１００の一般化部１０４は、空集合Ｉを用意する。本ステップの処理が終わると、処理はＳ３０６に進む。
【０１２４】
Ｓ３０６でデータ編集装置１００の一般化部１０４は、論理値ｃを用意し、論理値ｃに初期値０を代入する。すなわち、ｃ＝０となる。本ステップの処理が終わると、処理はＳ３０８に進む。
【０１２５】
Ｓ３０８でデータ編集装置１００の一般化部１０４は、集合Ｃの要素Ｐの要素ｐを特定する変数ｌをリセットする。たとえば、ｌ＝０としても良い。本ステップの処理が終わると、処理はＳ３１０に進む。
【０１２６】
Ｓ３１０でデータ編集装置１００の一般化部１０４は、ｌを更新し、ｌを使って集合Ｃの要素Ｐから要素ｐを得る。たとえば、ｌの値を１だけ増やし、それに対応する要素ｐを得ても良い。まず、ｐ←｛生年：３｝とする。本ステップの処理が終わると、処理はＳ３１２に進む。
【０１２７】
Ｓ３１２でデータ編集装置１００の一般化部１０４は、要素ｐ∈Ｐに対応する多様性定義ｄを多様性定義Ｄから抽出する。たとえば、｛生年：３｝の多様性定義は、「１０の位の値が２種類以上のとき１、さもなくば０を返す」写像となる。本ステップの処理が終わると、処理はＳ３１４に進む。
【０１２８】
Ｓ３１４でデータ編集装置１００の一般化部１０４は、関係モデルＲ’の墨塗り行集合Ｉ以外の行から、要素ｐの列名以外の値が等しい行番号の集合をグループＪとし、Ｊの集合Ｕを算出する。図１１では、Ｒ’のＩ以外の行は、図１１の全ての行であり、ｐの列名以外の列は｛郵便番号｝なので、図１１の「郵便番号」の値が等しいグループを作り、Ｕ＝｛｛０、２、６、７｝、｛１、３、４、５｝、｛８｝｝となる。なお、たとえばＪ＝｛８｝は（郵便番号）＝（１３？）のグループである。また、ｐの列名以外の列が｛｝であった場合は、Ｒ’のＩ以外の全行を１つのグループをＪとし、Ｕ＝｛Ｊ｝とする。本ステップの処理が終わると、処理はＳ３１６に進む。
【０１２９】
Ｓ３１６でデータ編集装置１００の一般化部１０４は、集合Ｕの要素を特定する変数ｍをリセットする。たとえば、ｍ＝０としても良い。本ステップの処理が終わると、処理はＳ３１８に進む。以下では、Ｕの各要素について、Ｓ３２２〜Ｓ３２８を繰り返す。
【０１３０】
Ｓ３１８でデータ編集装置１００の一般化部１０４は、ｍの更新を行う。たとえば、ｍの値を１だけ増やしても良い。本ステップの処理が終わると、処理はＳ３２０に進む。
【０１３１】
Ｓ３２０でデータ編集装置１００の一般化部１０４は、現在のｍに対応する集合Ｕの要素Ｊを取得する。たとえば、Ｊ←｛０、２、６、７｝とする。本ステップの処理が終わると、処理はＳ３２２に進む。
【０１３２】
Ｓ３２２でデータ編集装置１００の一般化部１０４は、関係モデルＲ’から、要素ｐの列且つＪの値の度数分布Ｆを算出する。たとえば、ｐの列は生年、Ｊ＝｛０、２、６、７｝なので、図１１よりＦ＝｛“１９７０”：１、“１９７２”：１、“１９８９”：２｝となる。本ステップの処理が終わると、処理はＳ３２４に進む。
【０１３３】
Ｓ３２４でデータ編集装置１００の一般化部１０４は、ｄ（Ｆ）＝０かどうかを判定する。もし、この判定の結果が“ＹＥＳ”、すなわちｄ（Ｆ）＝０である場合、処理はＳ３２６に進む。もし、この判定の結果が“ＮＯ”、すなわちｄ（Ｆ）≠０である場合、処理はＳ３２８に進む。たとえばＦ＝｛“１９７０”：１、“１９７２”：１、“１９８９”：２｝の場合、Ｆには１０の位の値が７と８の２種類あるため、ｄ（Ｆ）＝１となる。この場合、処理はＳ３２６に進む。
【０１３４】
Ｓ３２６でデータ編集装置１００の一般化部１０４は、墨塗り行集合Ｉにｍに対応する集合Ｕの要素Ｊの全要素を追加し、論理値ｃに１を代入（ｃ←１）する。本ステップの処理が終わると、処理はＳ３２８に進む。
【０１３５】
Ｓ３２８でデータ編集装置１００の一般化部１０４は、集合Ｕの全ての要素について処理したかどうかを判定する。もし、この判定の結果が“ＹＥＳ”、すなわち、集合Ｕの全ての要素について処理した場合、処理はＳ３３０に進む。もし、この判定の結果が“ＮＯ”、すなわち集合Ｕの全ての要素について処理していない場合、処理はＳ３１８に戻る。
【０１３６】
最後の繰り返しでＪ←｛８｝になったとする。Ｓ３２２で、ｐの列は「生年」、Ｊ＝｛８｝なので、図１１よりＦ＝｛“２０００”：１｝となる。すると、Ｓ３２４でＦには１０の位の値が０の１種類しかないため、ｄ（Ｆ）＝０となり、Ｓ３２６でＩにＪの全要素を追加し、たとえば、Ｉ＝｛８｝、ｃ＝１となる。
【０１３７】
Ｓ３３０でデータ編集装置１００の一般化部１０４は、集合Ｃの要素Ｐの全ての要素について処理したかどうかを判定する。もし、この判定の結果が“ＹＥＳ”、すなわち、集合Ｕの全ての要素について処理した場合、処理はＳ３３２に進む。もし、この判定の結果が“ＮＯ”、すなわち、集合Ｕの全ての要素について処理していない場合、処理はＳ３１０に戻る。
【０１３８】
２回目のＳ３１０で、ｐ←郵便番号：２としても良い。
２回目のＳ３１２では、｛郵便番号：２｝の多様性定義は、図８より「１０の位の値が２種類以上のとき１、さもなくば０を返す」写像となる。
【０１３９】
２回目のＳ３１４で、Ｒ’のＩ以外の行は図１１の行｛０、１、・・・、７｝であり、ｐの列名以外の列は｛生年｝なので、図１１の行｛０、１、・・・、７｝の「生年」の値が等しいグループを作り、Ｕ＝｛｛０、 １｝、｛２｝、｛３｝、｛４｝、｛５｝、｛６、７｝｝ となる。
【０１４０】
２回目のＳ３２０では、Ｊ←｛０、 １｝ となり、次のＳ３２２でＦ＝｛“１２？”：１、 “１４？”：１｝となる。
【０１４１】
２回目のＳ３２４では、Ｆには１０の位の値が２と４の２種類あるため、ｄ（Ｆ）＝１である。
【０１４２】
Ｓ３１８〜Ｓ３２８の処理を繰り返し、全てのＵの要素について繰り返し終了時には、Ｉ＝｛２、３、４、５、６、７、８｝となる。
【０１４３】
Ｓ３３２でデータ編集装置１００の一般化部１０４は、論理値ｃの値が０かどうかを判定する。もし、この判定の結果が“ＹＥＳ”、すなわち、ｃ＝０の場合、処理はＳ３３４に進む。もし、この判定の結果が“ＮＯ”、すなわち、ｃ≠０の場合、処理はＳ３０６に戻る。
【０１４４】
同様に処理をすると、次にＳ３２２に処理が移った時にはＩ＝｛０、１、２、３、４、５、６、７、８｝、ｃ＝１になっているため、再度Ｓ３０６に戻る。その次にＳ３２２に処理が移った時にはＩ＝｛０、１、２、３、４、５、６、７、８｝、ｃ＝０になっている。
【０１４５】
Ｓ３３４でデータ編集装置１００の出力部１０６は、墨塗り行集合Ｉを出力する。本ステップの処理が終わると、処理は図１６のＳ２０６に進む。
【０１４６】
図１７のＳ３３０により、墨塗り行集合Ｉに変更があった場合、多様性が達成できている（多様性定義Ｄが満たされている）か再度調べる、といった処理を実現している。上記例のように、最初にＳ３３０に制御が移ったときは行｛０、１｝は多様性が達成されていると扱われているが、墨塗り行集合Ｉが増えたことで結局行｛０、１｝も多様性が達成されていないという結果が算出されている。これは、複数列で多様性定義を同時に達成するように要求するために必要な特徴的な処理である。
【０１４７】
Ｓ２０６でデータ編集装置１００の一般化部１０４は、墨塗り行集合Ｉの要素数｜Ｉ｜が最大墨塗り行数ｓ以下であるかどうか、すなわち｜Ｉ｜≦ｓであるかどうかを判定する。もし、この判定の結果が“ＹＥＳ”、すなわち、墨塗り行集合Ｉの要素数｜Ｉ｜が最大墨塗り行数ｓ以下（｜Ｉ｜≦ｓ）の場合、処理はＳ２０８に進む。もし、この判定の結果が“ＮＯ”、すなわち、墨塗り行集合Ｉの要素数｜Ｉ｜が最大墨塗り行数ｓより大きい（｜Ｉ｜＞ｓ）場合、処理はＳ２１０に進む。たとえば、Ｉの要素数｜Ｉ｜＝９、最大墨塗り行数ｓ＝２の場合は、条件は成立しない。よって、処理はＳ２１０に進む。もし、条件が成立していた場合は、Ｓ２０８に進む。
【０１４８】
Ｓ２０８でデータ編集装置１００の一般化部１０４は、集合Ｃの要素Ｐと墨塗り行集合Ｉの組を要素として集合Ｏに追加する。たとえば、Ｏ＝｛（Ｐ、Ｉ）｝となる。本ステップの処理が終わると、処理はＳ２４２に進む。
【０１４９】
Ｓ２１０でデータ編集装置１００の一般化部１０４は、空集合Ｃを用意し、集合Ｃの要素Ｐを集合Ｃの要素に追加する。たとえば、集合Ｃ＝｛Ｐ｝＝｛｛生年：３、郵便番号：２｝｝である。本ステップの処理が終わると、処理はＳ２１２に進む。
【０１５０】
Ｓ２１２でデータ編集装置１００の一般化部１０４は、Ｃの要素が空になるまで、Ｓ２１２からＳ２３２までの繰り返しを開始する。本ステップの処理が終わると、処理はＳ２１４に進む。
【０１５１】
Ｓ２１４でデータ編集装置１００の一般化部１０４は、集合Ｃから要素を１つ削除し、Ｐとする。たとえば、Ｐ←｛生年：３、郵便番号：２｝、Ｃ←｛｝とする。本ステップの処理が終わると、処理はＳ２１６に進む。
【０１５２】
Ｓ２１６でデータ編集装置１００の一般化部１０４は、Ｐの列名ａのそれぞれについて、Ｓ２１６からＳ２３０までの繰り返しを開始する。本ステップの処理が終わると、処理はＳ２１８に進む。
【０１５３】
Ｓ２１８でデータ編集装置１００の一般化部１０４は、集合Ｃの要素Ｐの一つの列名ａを取得する。たとえば、ａ←生年とする。本ステップの処理が終わると、処理はＳ２２４に進む。
【０１５４】
Ｓ２１８でデータ編集装置１００の一般化部１０４は、集合Ｃの要素Ｐの列名ａの階層が０より大きいかどうかを判定する。もし、この判定の結果が“ＹＥＳ”、すなわち、集合Ｃの要素Ｐの列名ａの階層が０より大きい場合、処理はＳ２２０に進む。もし、この判定の結果が“ＮＯ”、すなわち、集合Ｃの要素Ｐの列名ａの階層が０より大きくない場合、処理はＳ２３０に進む。たとえば、Ｐの生年の階層は３であるので、処理はＳ２２０に進む。
【０１５５】
Ｓ２２０でデータ編集装置１００の一般化部１０４は、要素Ｐを要素Ｐ’に複写し、要素Ｐ’のａの階層を１だけ減じる。たとえば、Ｐ’←｛生年：２、郵便番号：２｝とする。本ステップの処理が終わると、処理はＳ２２２に進む。
【０１５６】
Ｓ２２２でデータ編集装置１００の一般化部１０４は、Ｐ’の列範囲で、Ｐ’による一般化で関係モデルＲが多様性を達成する（多様性定義Ｄを満たす）ために必要な墨塗り行集合Ｉを算出する。たとえば、要素Ｐ’の列集合は ｛生年、郵便番号｝なので、関係モデルＲの複写をこの列範囲でＰ’によって一般化する。図１２は、Ｐ’＝｛生年：２、郵便番号：２｝で一般化した結果の例を示す図である。多様性定義Ｄを達成するために、墨塗りすべき行集合Ｉ＝｛８｝となる。図１２に示されている例では、墨塗りすべき行集合Ｉの要素数｜Ｉ｜＝１、最大墨塗り行数ｓ＝２なので条件が成立する。
【０１５７】
Ｓ２２２の処理は、Ｓ２０４の処理と同様であり、図１７に示されているので、繰り返しの説明は省略する。本ステップの処理が終わると、処理はＳ２２４に進む。
【０１５８】
Ｓ２２４でデータ編集装置１００の一般化部１０４は、墨塗り行集合Ｉの要素数｜Ｉ｜が最大墨塗り行数ｓ以下であるかどうか、すなわち｜Ｉ｜≦ｓであるかどうかを判定する。もし、この判定の結果が“ＹＥＳ”、すなわち、墨塗り行集合Ｉの要素数｜Ｉ｜が最大墨塗り行数ｓ以下（｜Ｉ｜≦ｓ）の場合、処理はＳ２２６に進む。もし、この判定の結果が“ＮＯ”、すなわち、墨塗り行集合Ｉの要素数｜Ｉ｜が最大墨塗り行数ｓより大きい（｜Ｉ｜＞ｓ）場合、処理はＳ２３４に進む。｜Ｉ｜＝１、 ｓ＝２の場合は条件が成立し、Ｓ２２８に進む。
【０１５９】
Ｓ２２６でデータ編集装置１００の一般化部１０４は、集合Ｃの要素Ｐ’と墨塗り行集合Ｉの組を要素として集合Ｏに追加する。たとえば集合Ｏに（Ｐ’、Ｉ）を追加する。結果、Ｏ＝｛（｛生年：２、郵便番号：２｝、｛８｝）｝となる。本ステップの処理が終わると、処理はＳ２３０に進む。
【０１６０】
Ｓ２２８でデータ編集装置１００の一般化部１０４は、集合Ｃに要素Ｐ’を追加する。本ステップの処理が終わると、処理はＳ２３０に進む。
【０１６１】
Ｓ２３０でデータ編集装置１００の一般化部１０４は、要素Ｐの全ての列について、Ｓ２１６〜Ｓ２２８の処理を行ったかどうかを判定する。もし、この判定の結果が“ＹＥＳ”、すなわち、要素Ｐの全ての列について、Ｓ２１６〜Ｓ２２８の処理を行った場合、処理はＳ２３２に進む。もし、この判定の結果が“ＮＯ”、すなわち、要素Ｐの全ての列について、Ｓ２１６〜Ｓ２２８の処理を行っていない場合、処理はＳ２１６に戻る。たとえば、ａ←郵便番号とし、Ｓ２２４に戻る。
【０１６２】
２回目のＳ２１８では、Ｐの郵便番号の階層は２であるため、処理はＳ２２０に進む。
２回目のＳ２２０でＰをＰ’に複写し、Ｐ’のａの階層を１だけ減じる。すると、Ｐ’←｛生年：３、郵便番号：１｝となる。
【０１６３】
２回目のＳ２２２では、Ｐ’の列集合は｛生年、郵便番号｝なので、Ｒの複写をこの列範囲でＰ’によって一般化する。図１３は、Ｐ’＝｛生年：３、郵便番号：１｝で一般化した結果の例を示す図である。多様性定義Ｄを達成するために、墨塗りすべき行集合Ｉ＝｛０、１、・・・、８｝となる。つまり、全行を墨塗りする必要がある。
【０１６４】
２回目のＳ２２４では、墨塗りすべき行集合Ｉの要素数｜Ｉ｜＝９、最大墨塗り行数ｓ＝２なので条件は成立しない。よって、処理はＳ２２８に進む。
【０１６５】
Ｓ２２８でデータ編集装置１００の一般化部１０４は、ＣにＰ’を追加し、集合Ｃ＝｛Ｐ｝＝｛｛生年：３、郵便番号：１｝｝である。
【０１６６】
Ｓ２３２でデータ編集装置１００の一般化部１０４は、集合Ｃの全ての要素Ｐについて、Ｓ２１２〜Ｓ２３０の処理を行ったかどうかを判定する。もし、この判定の結果が“ＹＥＳ”、すなわち、集合Ｃの全ての要素Ｐについて、Ｓ２１２〜Ｓ２３０の処理を行った場合、処理はＳ２３４に進む。もし、この判定の結果が“ＮＯ”、すなわち、集合Ｃの全ての要素Ｐについて、Ｓ２１２〜Ｓ２３０の処理を行っていない場合、処理はＳ２１２に戻る。
【０１６７】
たとえば、Ｃは空でない場合、データ編集装置１００の一般化部１０４は、集合Ｃから要素を１つ削除し、Ｐとする。つまり、データ編集装置１００の一般化部１０４は、この集合Ｃが空になるまで、Ｓ２１４〜Ｓ２３２の処理を繰り返す。結果、Ｃが空になった時点で、Ｏ＝｛（｛生年：２、郵便番号：２｝、｛８｝）、（｛生年：２、郵便番号：１｝、｛８｝）、（｛生年：３、郵便番号：０｝、｛｝）｝を得る。
【０１６８】
Ｓ２３４でデータ編集装置１００の一般化部１０４は、集合Ｏから、極大でない要素Ｐ’を持つ要素を削除する。たておば、集合Ｏの３要素のうち（｛生年：２、郵便番号:１｝、｛８｝）は極大でない（他の要素（｛生年：２、郵便番号：２｝、｛８｝）よりＰ’の部分が小さい）ので、これを削除する。結果、集合Ｏ＝｛（｛生年：２、郵便番号：２｝、｛８｝）、（｛生年：３、郵便番号：０｝、｛｝）｝となる。本ステップの処理が終わると、処理はＳ２３６に進む。
【０１６９】
Ｓ２３６でデータ編集装置１００の出力部１０６は、集合Ｏを出力する。本ステップの処理が終わると、処理は図１５のＳ１０６に進む。
【０１７０】
図１６では、｜Ｉ｜＞ｓの場合はその墨塗り行集合Ｉは使用しないため、図１７のＳ３２６の後などで｜Ｉ｜＞ｓとなった場合に、データ編集装置１００の出力部１０６は、すぐに墨塗り行集合Ｉを出力して図１７に示されている処理を終了しても良い。そうすることで、処理量を減らす効果がある。
【０１７１】
Ｓ１０６でデータ編集装置１００の一般化部１０４は、関係モデルの列を指定する変数ｉを０に設定する。
【０１７２】
次のＳ１０８でデータ編集装置１００の一般化部１０４は、ｉの値を１だけ増やす。本ステップの処理が終わると、処理はＳ１１０に進む。
【０１７３】
Ｓ１１０でデータ編集装置１００の一般化部１０４は、列名集合の異なる全ての２つのＧ∈Ｏの｛列名：階層｝の組み合わせについて、重複列名について階層を２つの最小値として融合した｛列名：階層｝をそれぞれ求め、それらを集合Ｃとし、集合Ｃから階層が極大でない要素を削除する。図２の例では、列名集合の異なる２つのＧ∈Ｏの｛列名：階層｝の組み合わせは、（１）｛生年：３｝、｛郵便番号：２｝、（２）｛生年：３｝、｛趣味：２｝、（３）｛郵便番号：２｝、｛趣味：２｝の３通りとなる。いずれも重複列名がないためそのまま融合し、集合Ｃ＝｛｛生年：３、郵便番号：２｝、｛生年：３、趣味：２｝、｛郵便番号：２、趣味：２｝｝となる。集合Ｃの要素は全て極大である。重複列名があった場合や、極大でない要素があった場合の例は、後の2回目の繰り返しの時に処理をする。本ステップの処理が終わると、処理はＳ１１２に進む。
【０１７４】
Ｓ１１２でデータ編集装置１００の一般化部１０４は、集合Ｏを空にし、各要素Ｐ∈Ｃにつき、多様性を満たす（多様性定義Ｄを満たす）全ての極大の階層を集合Ｏに追加する。本ステップの処理は、図１６に示されている処理と同様である。よって、繰り返しの説明は省略する。たとえば、集合Ｃの各要素Ｐ＝｛生年：３、郵便番号：２｝の場合、多様性を満たす極大の階層は、｛生年：３、郵便番号：０｝で墨塗り不要と、｛生年：２、郵便番号：２｝で墨塗り｛８｝である。同様に、Ｐ＝｛生年：３、趣味：２｝の場合は（｛生年：２、趣味：１｝、｛８｝）と（｛生年：１、趣味：２｝、｛８｝）であり、Ｐ＝｛郵便番号：２、趣味：２｝の場合は（｛郵便番号：２、趣味：１｝、｛８｝）と（｛郵便番号：０、趣味：２｝、｛｝）である。よって、Ｏ＝｛（｛生年：３、郵便番号：０｝、｛｝）、（｛生年：２、郵便番号：２｝、｛８｝）、（｛生年：２、趣味：１｝、｛８｝）、（｛生年：１、趣味：２｝、｛８｝）、（｛郵便番号：２、趣味：１｝、｛８｝）、（｛郵便番号：０、趣味：２｝、｛｝）｝である。図２の例では、集合Ｏの要素のうち、（｛生年：３、郵便番号：０｝、｛｝）と（｛郵便番号：０、趣味：２｝、｛｝）｝はいずれも階層が正値である列名が１つしかないため、これらを削除し、Ｏ＝｛（｛生年：２、郵便番号：２｝、｛８｝）、（｛生年：２、趣味：１｝、｛８｝）、（｛生年：１、趣味：２｝、｛８｝）、（｛郵便番号：２、趣味：１｝、｛８｝）｝となる。本ステップの処理が終わると、処理はＳ１１４に進む。
【０１７５】
Ｓ１１４でデータ編集装置１００の一般化部１０４は、集合Ｏの要素のうち、階層が正値である列名が１つ以下のものを削除する。本ステップの処理が終わると、処理はＳ１１６に進む。
【０１７６】
Ｓ１１６でデータ編集装置１００の一般化部１０４は、ｉの値が（関係モデルＲの列数−１）以上であるかどうかを判定する。もし、この判定の結果が“ＹＥＳ”、すなわち、ｉの値が（関係モデルＲの列数−１）以上である場合、処理はＳ１１８に進む。もし、この判定の結果が“ＮＯ”、すなわち、ｉの値が（関係モデルＲの列数−１）以上でない場合、処理はＳ１０８に戻る。
【０１７７】
２回目のＳ１１０の処理では、列名集合の異なる２つのＧ∈Ｏの｛列名：階層｝の組み合わせは、（１’）｛生年：２、郵便番号：２｝、｛生年：２、趣味：１｝、（２’）｛生年：２、郵便番号：２｝、｛生年：１、趣味：２｝、（３’）｛生年：２、郵便番号：２｝、｛生年：２、趣味：１｝、（４’）｛生年：２、趣味：１｝、｛郵便番号：２、趣味：１｝、（５’）｛生年：１、趣味：２｝、｛郵便番号：２、趣味：１｝の５通りとなる。
【０１７８】
ここで、データ編集装置１００の一般化部１０４は、重複列名の階層は互いの最小値として融合する。すると、上記（１’）〜（５’）は、それぞれ（１）｛生年：２、郵便番号：２、趣味：１｝、（２）｛生年：１、郵便番号：２、趣味：２｝、（３）｛生年：２、郵便番号：２、趣味：１｝、（４）｛生年：２、郵便番号：２、趣味：１｝、（５）｛生年：１、郵便番号：２、趣味：１｝となる。これらの項目のうち、項目（３）＜項目（１）、項目（４）＜項目（１）、項目５＜項目（２）なので、これら極大でない項目を除いて項目（１）、（２）を残し、集合Ｃ＝｛｛生年：２、郵便番号：２、趣味：１｝、｛生年：１、郵便番号：２、趣味:２｝｝となる。
【０１７９】
２回目のＳ１１２の処理では、集合Ｃの各要素Ｐ＝｛生年：２、郵便番号：２、趣味：１｝の場合多様性を満たす極大の階層は（｛生年：２、郵便番号：１、趣味：１｝、｛８｝）と（｛生年：１、郵便番号：２、趣味：１｝、｛８｝）であり、Ｐ＝｛生年：１、郵便番号：２、趣味：２｝の場合多様性を満たす極大の階層は（｛生年：１、郵便番号：２、趣味：１｝、｛８｝）と（｛生年：１、郵便番号：０、趣味：２｝、｛８｝）である。よって、Ｏ＝｛（｛生年：２、郵便番号：１、趣味：１｝、｛８｝、（｛生年：１、郵便番号：２、趣味：１｝、｛８｝）、（｛生年：１、郵便番号：０、趣味：２｝、｛８｝）｝である。
【０１８０】
２回目のＳ１１４でデータ編集装置１００の一般化部１０４は、集合Ｏに削除対象となる要素はなく、何もしない。
【０１８１】
Ｓ１１８でデータ編集装置１００の出力部１０６は、集合Ｏを出力する。Ｓ１１８でデータ編集装置１００の出力部１０６から出力される集合Ｏは、一般化された関係モデルと呼ばれることもある。出力の例は図９に示されている。
【０１８２】
図１５のＳ１１０の処理は、これまでのＣの要素の列数より１列多い列集合について、Ｓ１１２で集合Ｏに含まれる可能性のある極大の｛列名：階層｝をＣとして算出することが目的である。Ｓ１１０では簡単に算出しているが、Ｓ１１２で集合Ｏに含まれる可能性のない｛列名：階層｝をより詳細に算出しても良い。
【０１８３】
図１５のＳ１１４での処理は、階層が正値である列名が１つ以下の一般化情報が算出できなくなるが、全体の処理量を減らせるという効果がある。この処理をスキップしても一般化情報を算出できるが、階層が正値である列名が１つ以下の一般化情報による一般化は統計化で代用できる。
【０１８４】
以上の処理例により、関係モデルＲを、最大墨塗り行数ｓ以下で墨塗りし、多様性定義Ｄを満たすよう一般化木Ｔで一般化するための一般化情報の集合が得られる。また、いずれかの一般化情報で関係モデルＲを一般化した結果を得られる。これにより、個票データを、２次活用のため、プライバシー保護度合いの高い関係モデルに変換することができる。
【０１８５】
以上の実施形態に関し、さらに以下の付記を開示する。
（付記１）
複数のサンプルのそれぞれに対する複数の属性の値を含む関係モデルと、前記属性ごとに階層と前記階層のそれぞれに対応する一般化値とが定義された一般化情報を用いて、前記階層の一つに対応する前記複数のサンプルの前記一般化値の組み合わせであって、前記複数の属性のうち一つの属性に対応する前記一般化値に対して前記複数の属性の他の属性に対応する前記一般化値が多様性を有する前記一般化値の組み合わせを抽出する
処理をコンピュータに実行させることを特徴とするデータ編集プログラム。
（付記２）
さらに、前記階層の一つに対応する前記複数のサンプルの前記一般化値の組み合わせにおいて、前記複数の属性の一つの値に対して、前記複数の属性の他の全てに対する前記一般化値が、前記複数の属性の他の属性および前記他の属性に対応する階層によって定義される多様性定義Ｄを満足するために、関係モデルに含まれる複数の属性の値のうち、所定の数のサンプルに関する複数の属性の値を削除するする処理をコンピュータに実行させることを特徴とする、付記１に記載のデータ編集プログラム。
（付記３）
前記複数の属性の一つａと前記階層をｌの組から前記多様性定義への写像Ｄ：（ａ、ｌ）→ｄによって得られる写像ｄは、前記前記複数の属性の一つａに対する度数分布をＦとして論理値への写像ｄ：Ｆ→１／０であり、Ｆ１＋Ｆ２は前記度数分布Ｆ１及びＦ２の和、∧を論理積演算として、
（ｄ１）単調性：（ｄ（Ｆ１）＝１）∧（ｄ（Ｆ２）＝１）⇒ｄ（Ｆ１＋Ｆ２）＝１、
（ｄ２）階層単調性：ｄ（Ｆ）＝１⇒ｄ’（Ｆ’）＝１、
を満たす、付記２に記載のデータ編集プログラム。
（付記４）
前記階層の一つに対応する前記複数のサンプルの前記一般化値の組み合わせであって、前記複数の属性のうち一つの属性に対応する前記一般化値に対して前記複数の属性の他の全ての属性に対応する前記一般化値が多様性を有する前記一般化値の組み合わせを抽出する処理をコンピュータに実行させることを特徴とする、付記１乃至３のいずれか一項に記載の編集プログラム。
（付記５）
さらに、前記一般化情報一般化木で表したとき、前記一般化木の根に相当する前記階層を含む前記属性を最大１つだけ含むように前記一般化を行う処理をコンピュータに実行させることを特徴とする、付記１乃至４のいずれか一項に記載のデータ編集プログラム。
（付記６）
コンピュータによって実行されるデータ編集方法であって、複数のサンプルのそれぞれに対する複数の属性の値を含む関係モデルと、前記属性ごとに階層と前記階層のそれぞれに対応する一般化値とが定義された一般化情報を用いて、前記階層の一つに対応する前記複数のサンプルの前記一般化値の組み合わせであって、前記複数の属性のうち一つの属性に対応する前記一般化値に対して前記複数の属性の他の属性に対応する前記一般化値が多様性を有する前記一般化値の組み合わせを抽出すること、
を含むデータ編集方法。
（付記７）
さらに、前記階層の一つに対応する前記複数のサンプルの前記一般化値の組み合わせにおいて、前記複数の属性の一つの値に対して、前記複数の属性の他の全てに対する前記一般化値が、前記複数の属性の他の属性および前記他の属性に対応する階層によって定義される多様性定義Ｄを満足するために、関係モデルに含まれる複数の属性の値のうち、所定の数のサンプルに関する複数の属性の値を削除することを含む、付記６に記載のデータ編集方法。
（付記８）
前記多様性定義は、前記複数の属性の一つａと前記階層をｌの組から前記多様性定義への写像Ｄ：（ａ、ｌ）→ｄによって得られる写像ｄは、前記前記複数の属性の一つａに対する度数分布をＦとして論理値への写像ｄ：Ｆ→１／０であり、Ｆ１＋Ｆ２は前記度数分布Ｆ１及びＦ２の和、∧を論理積演算として、
（ｄ１）単調性：（ｄ（Ｆ１）＝１）∧（ｄ（Ｆ２）＝１）⇒ｄ（Ｆ１＋Ｆ２）＝１、
（ｄ２）階層単調性：ｄ（Ｆ）＝１⇒ｄ’（Ｆ’）＝１、
を満たす、付記７に記載のデータ編集方法。
（付記９）
前記階層の一つに対応する前記複数のサンプルの前記一般化値の組み合わせであって、前記複数の属性のうち一つの属性に対応する前記一般化値に対して前記複数の属性の他の全ての属性に対応する前記一般化値が多様性を有する前記一般化値の組み合わせを抽出すること、を含む付記６乃至８のいずれか一項に記載のデータ編集方法。
（付記１０）
さらに、前記一般化情報一般化木で表したとき、前記一般化木の根に相当する前記階層を含む前記属性を最大１つだけ含むように前記一般化を行うことを含む、付記６乃至９のいずれか一項に記載のデータ編集方法。
（付記１１）
複数のサンプルのそれぞれに対する複数の属性の値を含む関係モデルと、前記属性ごとに階層と前記階層のそれぞれに対応する一般化値とが定義された一般化情報を用いて、前記階層の一つに対応する前記複数のサンプルの前記一般化値の組み合わせであって、前記複数の属性のうち一つの属性に対応する前記一般化値に対して前記複数の属性の他の属性に対応する前記一般化値が多様性を有する前記一般化値の組み合わせを抽出する一般化部、
を含むことを特徴とするデータ編集装置。
（付記１２）
前記一般化部は、さらに、前記階層の一つに対応する前記複数のサンプルの前記一般化値の組み合わせにおいて、前記複数の属性の一つの値に対して、前記複数の属性の他の全てに対する前記一般化値が、前記複数の属性の他の属性および前記他の属性に対応する階層によって定義される多様性定義Ｄを満足するために、関係モデルに含まれる複数の属性の値のうち、所定の数のサンプルに関する複数の属性の値を削除する、付記１１に記載のデータ編集装置。
（付記１３）
前記多様性定義は、前記複数の属性の一つａと前記階層をｌの組から前記多様性定義への写像Ｄ：（ａ、ｌ）→ｄによって得られる写像ｄは、前記前記複数の属性の一つａに対する度数分布をＦとして論理値への写像ｄ：Ｆ→１／０であり、Ｆ１＋Ｆ２は前記度数分布Ｆ１及びＦ２の和、∧を論理積演算として、
（ｄ１）単調性：（ｄ（Ｆ１）＝１）∧（ｄ（Ｆ２）＝１）⇒ｄ（Ｆ１＋Ｆ２）＝１、
（ｄ２）階層単調性：ｄ（Ｆ）＝１⇒ｄ’（Ｆ’）＝１、
を満たす、付記１１に記載のデータ編集装置。
（付記１４）
前記一般化部は、前記階層の一つに対応する前記複数のサンプルの前記一般化値の組み合わせであって、前記複数の属性のうち一つの属性に対応する前記一般化値に対して前記複数の属性の他の全ての属性に対応する前記一般化値が多様性を有する前記一般化値の組み合わせを抽出する、付記１１乃至１３のいずれか一項に記載のデータ編集装置。
（付記１５）
前記一般化部は、前記一般化情報一般化木で表したとき、前記一般化木の根に相当する前記階層を含む前記属性を最大１つだけ含むように前記一般化を行う、付記１１乃至１４のいずれか一項に記載のデータ編集装置。
【符号の説明】
【０１８６】
１００  データ編集装置
１０２  入力部
１０４  一般化部
１０６  出力部
【図４】
2015138302.tif 000003
【図５】
2015138302.tif 000004
【図６】
2015138302.tif 000005
【図７】
2015138302.tif 000006
【図１４】
2015138302.tif 000007
【図１５】
2015138302.tif 000008
【図１６】
2015138302.tif 000009
【図１７】
2015138302.tif 000010
【図１】
2015138302.tif 000011
【図２】
2015138302.tif 000012
【図３】
2015138302.tif 000013
【図８】
2015138302.tif 000014
【図９】
2015138302.tif 000015
【図１０】
2015138302.tif 000016
【図１１】
2015138302.tif 000017
【図１２】
2015138302.tif 000018
【図１３】
2015138302.tif 000019