(57)【特許請求の範囲】
【請求項１】
識別子と、順序を持つ因子の列として複数の識別子を結合する積演算子と、識別子および因子の列として結合された複数の識別子のいずれかまたは両方から項の組み合わせを構成する和演算子と、によって記述される対象情報を記憶する記憶部と、
前記対象情報中のそれぞれの着目する識別子について、前記それぞれの着目する識別子が含まれている着目項の前記対象情報内での位置と前記それぞれの着目する識別子の前記着目項内での位置とを含む位置表現式を算出する位置情報算出部と、を備え、
前記いずれかの項が因子の列を含み、前記因子の列に含まれるいずれかの因子がさらに項の組み合わせの順序を維持しないで前記項の組み合わせを関係付ける集合因子構成演算子によって形成される集合因子を含む場合に、前記位置情報算出部は、前記着目項中の集合因子の位置に加えて、前記集合因子中の項の組み合わせ中でのそれぞれの着目する識別子が含まれる因子内着目項の位置と前記因子内着目項中での前記それぞれの着目する識別子の位置を算出する情報処理装置。
【請求項２】
前記いずれかの項が因子の列を含み、前記因子の列に含まれるいずれかの因子がさらに項の組み合わせの順序を維持して前記項の組み合わせを関係付ける順序因子構成演算子によって形成される順序因子を含む場合に、前記位置情報算出部は、前記着目項中の順序因子の位置に加えて、前記順序因子中の項の順序中でのそれぞれの着目する識別子が含まれる因子内着目項の位置と前記因子内着目項中での前記それぞれの着目する識別子の位置をさらに算出する請求項１に記載の情報処理装置。
【請求項３】
識別子と、順序を持つ因子の列として複数の識別子を結合する積演算子と、識別子および因子の列として結合された複数の識別子のいずれかまたは両方から項の組み合わせを構成する和演算子と、によって記述される対象情報を記憶する記憶部と、
前記対象情報中のそれぞれの着目する識別子について、前記それぞれの着目する識別子
が含まれている着目項の前記対象情報内での位置と前記それぞれの着目する識別子の前記着目項内での位置とを含む位置表現式を算出する位置情報算出部と、を備え、
前記いずれかの項が因子の列を含み、前記因子の列に含まれるいずれかの因子がさらに項の組み合わせの順序を維持して前記項の組み合わせを関係付ける順序因子構成演算子によって形成される順序因子を含む場合に、前記位置情報算出部は、前記着目項中の順序因子の位置に加えて、前記順序因子中の項の順序中でのそれぞれの着目する識別子が含まれる因子内着目項の位置と前記因子内着目項中での前記それぞれの着目する識別子の位置をさらに算出する情報処理装置。
【請求項４】
前記因子の列に含まれるいずれかの因子がさらに項の組み合わせの順序を維持しないで前記項の組み合わせを関係付ける集合因子構成演算子によって形成される集合因子、または、前記因子の列に含まれるいずれかの因子がさらに項の組み合わせの順序を維持して前記項の組み合わせを関係付ける順序因子構成演算子によって形成される順序因子を含み、前記和演算子、積演算子、集合因子構成演算子、および順序因子構成演算子の組み合わせによって前記集合因子中または順序因子中のいずれかの項がさらに集合因子中の項または順序因子中の項を含む、階層構造が複数階層に渡って形成されている場合に、前記位置情報算出部は、前記それぞれの階層において、前記それぞれの着目する識別子が含まれている着目項の位置と、前記着目項中でのそれぞれの着目する識別子の位置とを含む位置表現式を算出する請求項１から３のいずれか１項に記載の情報処理装置。
【請求項５】
前記それぞれの着目する識別子についての位置表現式を基に、前記対象情報を形成する復元部をさらに備える請求項１から４のいずれか１項に記載の情報処理装置。
【請求項６】
前記式表現中の識別子の指定を受け付ける手段と、
前記指定を受け付けた指定識別子の位置表現式を取得する手段と、
前記指定識別子の位置表現式から前記指定識別子に関連する関連識別子を取得する手段と、をさらに備える請求項１から５のいずれか１項に記載の情報処理装置。
【請求項７】
コンピュータが、識別子と、順序を持つ因子の列として複数の識別子を結合する積演算子と、識別子および因子の列として結合された複数の識別子のいずれかまたは両方から項の組み合わせを構成する和演算子と、によって記述される対象情報を記憶する記憶部から前記対象情報を読み出すステップと、
前記対象情報中のそれぞれの着目する識別子について、前記それぞれの着目する識別子が含まれている着目項の前記対象情報内での位置と前記それぞれの着目する識別子の前記着目項内での位置とを含む位置表現式を算出する位置情報算出ステップと、
前記いずれかの項が因子の列を含み、前記因子の列に含まれるいずれかの因子がさらに項の組み合わせの順序を維持しないで前記項の組み合わせを関係付ける集合因子構成演算子によって形成される集合因子を含む場合に、前記着目項中の集合因子の位置に加えて、前記集合因子中の項の組み合わせ中でのそれぞれの着目する識別子が含まれる因子内着目項の位置と前記因子内着目項中での前記それぞれの着目する識別子の位置を算出するステップと、を実行する情報処理方法。
【請求項８】
前記いずれかの項が因子の列を含み、前記因子の列に含まれるいずれかの因子がさらに項の組み合わせの順序を維持して前記項の組み合わせを関係付ける順序因子構成演算子によって形成される順序因子を含む場合に、
前記コンピュータは、前記着目項中の順序因子の位置に加えて、前記順序因子中の項の順序中でのそれぞれの着目する識別子が含まれる因子内着目項の位置と前記因子内着目項中での前記それぞれの着目する識別子の位置をさらに算出するステップを実行する請求項７に記載の情報処理方法。
【請求項９】
コンピュータが、識別子と、順序を持つ因子の列として複数の識別子を結合する積演算子と、識別子および因子の列として結合された複数の識別子のいずれかまたは両方から項の組み合わせを構成する和演算子と、によって記述される対象情報を記憶する記憶部から前記対象情報を読み出すステップと、
前記対象情報中のそれぞれの着目する識別子について、前記それぞれの着目する識別子が含まれている着目項の前記対象情報内での位置と前記それぞれの着目する識別子の前記着目項内での位置とを含む位置表現式を算出する位置情報算出ステップと、
前記いずれかの項が因子の列を含み、前記因子の列に含まれるいずれかの因子がさらに項の組み合わせの順序を維持して前記項の組み合わせを関係付ける順序因子構成演算子によって形成される順序因子を含む場合に、前記着目項中の順序因子の位置に加えて、前記順序因子中の項の順序中でのそれぞれの着目する識別子が含まれる因子内着目項の位置と前記因子内着目項中での前記それぞれの着目する識別子の位置を算出するステップと、を実行する情報処理方法。
【請求項１０】
前記因子の列に含まれるいずれかの因子がさらに項の組み合わせの順序を維持しないで前記項の組み合わせを関係付ける集合因子構成演算子によって形成される集合因子、または、項の組み合わせの順序を維持して前記項の組み合わせを関係付ける順序因子構成演算子によって形成される順序因子を含み、前記和演算子、積演算子、集合因子構成演算子、および順序因子構成演算子の組み合わせによって前記集合因子中または順序因子中のいずれかの項がさらに集合因子中の項または順序因子中の項を含む、階層構造が複数階層に渡って形成されている場合に、
前記コンピュータは、前記それぞれの階層において、前記それぞれの着目する識別子が含まれている着目項の位置と、前記着目項中でのそれぞれの着目する識別子の位置とを含む位置表現式を算出するステップを実行する請求項７から９のいずれか１項に記載の情報処理方法。
【請求項１１】
前記それぞれの着目する識別子についての位置表現式を基に、前記対象情報を形成するステップをさらに実行する請求項７から１０のいずれか１項に記載の情報処理方法。
【請求項１２】
前記式表現中の識別子の指定を受け付けるステップと、
前記指定を受け付けた指定識別子の位置表現式を取得するステップと、
前記指定識別子の位置表現式から前記指定識別子に関連する関連識別子を取得するステップと、をさらに実行する請求項７から１１のいずれか１項に記載の情報処理方法。
【請求項１３】
コンピュータに、識別子と、順序を持つ因子の列として複数の識別子を結合する積演算子と、識別子および因子の列として結合された複数の識別子のいずれかまたは両方から項の組み合わせを構成する和演算子と、によって記述される対象情報を記憶する記憶部から前記対象情報を読み出すステップと、
前記対象情報中のそれぞれの着目する識別子について、前記それぞれの着目する識別子が含まれている着目項の前記対象情報内での位置と前記それぞれの着目する識別子の前記着目項内での位置とを含む位置表現式を算出する位置情報算出ステップと、
前記いずれかの項が因子の列を含み、前記因子の列に含まれるいずれかの因子がさらに項の組み合わせの順序を維持しないで前記項の組み合わせを関係付ける集合因子構成演算子によって形成される集合因子を含む場合に、前記着目項中の集合因子の位置に加えて、前記集合因子中の項の組み合わせ中でのそれぞれの着目する識別子が含まれる因子内着目項の位置と前記因子内着目項中での前記それぞれの着目する識別子の位置を算出するステップと、を実行させるためのプログラム。
【請求項１４】
前記いずれかの項が因子の列を含み、前記因子の列に含まれるいずれかの因子がさらに項の組み合わせの順序を維持して前記項の組み合わせを関係付ける順序因子構成演算子に
よって形成される順序因子を含む場合に、
前記コンピュータに、前記着目項中の順序因子の位置に加えて、前記順序因子中の項の順序中でのそれぞれの着目する識別子が含まれる因子内着目項の位置と前記因子内着目項中での前記それぞれの着目する識別子の位置を算出するステップを実行する請求項１３に記載のプログラム。
【請求項１５】
コンピュータに、識別子と、順序を持つ因子の列として複数の識別子を結合する積演算子と、識別子および因子の列として結合された複数の識別子のいずれかまたは両方から項の組み合わせを構成する和演算子と、によって記述される対象情報を記憶する記憶部から前記対象情報を読み出すステップと、
前記対象情報中のそれぞれの着目する識別子について、前記それぞれの着目する識別子が含まれている着目項の前記対象情報内での位置と前記それぞれの着目する識別子の前記着目項内での位置とを含む位置表現式を算出する位置情報算出ステップと、
前記いずれかの項が因子の列を含み、前記因子の列に含まれるいずれかの因子がさらに項の組み合わせの順序を維持して前記項の組み合わせを関係付ける順序因子構成演算子によって形成される順序因子を含む場合に、前記着目項中の順序因子の位置に加えて、前記順序因子中の項の順序中でのそれぞれの着目する識別子が含まれる因子内着目項の位置と前記因子内着目項中での前記それぞれの着目する識別子の位置を算出するステップと、を実行させるためのプログラム。
【請求項１６】
前記因子の列に含まれるいずれかの因子がさらに項の組み合わせの順序を維持しないで前記項の組み合わせを関係付ける集合因子構成演算子によって形成される集合因子、または、項の組み合わせの順序を維持して前記項の組み合わせを関係付ける順序因子構成演算子によって形成される順序因子を含み、前記和演算子、積演算子、集合因子構成演算子、および順序因子構成演算子の組み合わせによって前記集合因子中または順序因子中のいずれかの項がさらに集合因子中の項または順序因子中の項を含む、階層構造が複数階層に渡って形成されている場合に、
前記コンピュータに、前記それぞれの階層において、前記それぞれの着目する識別子が含まれている着目項の位置と、前記着目項中でのそれぞれの着目する識別子の位置とを含む位置表現式を算出するステップを実行させる請求項１３から１５のいずれか１項に記載のプログラム。
【請求項１７】
前記それぞれの着目する識別子についての位置表現式を基に、前記対象情報を形成するステップをさらに実行させる請求項１３から１６のいずれか１項に記載のプログラム。
【請求項１８】
前記式表現中の識別子の指定を受け付けるステップと、
前記指定を受け付けた指定識別子の位置表現式を取得するステップと、
前記指定識別子の位置表現式から前記指定識別子に関連する関連識別子を取得するステップと、をさらに実行する請求項１３から１７のいずれか１項に記載のプログラム。
【請求項１９】
コンピュータに、識別子と、順序を持つ因子の列として複数の識別子を結合する積演算子と、識別子および因子の列として結合された複数の識別子のいずれかまたは両方から項の組み合わせを構成する和演算子と、によって記述される対象情報を記憶する記憶部から前記対象情報を読み出すステップと、
前記対象情報中のそれぞれの着目する識別子について、前記それぞれの着目する識別子が含まれている着目項の前記対象情報内での位置と前記それぞれの着目する識別子の前記着目項内での位置とを含む位置表現式を算出する位置情報算出ステップと、
前記いずれかの項が因子の列を含み、前記因子の列に含まれるいずれかの因子がさらに項の組み合わせの順序を維持しないで前記項の組み合わせを関係付ける集合因子構成演算子によって形成される集合因子を含む場合に、前記着目項中の集合因子の位置に加えて
、前記集合因子中の項の組み合わせ中でのそれぞれの着目する識別子が含まれる因子内着目項の位置と前記因子内着目項中での前記それぞれの着目する識別子の位置を算出するステップと、を実行させるためのプログラムを記憶したコンピュータが読みとり可能な記憶媒体。
【請求項２０】
コンピュータに、識別子と、順序を持つ因子の列として複数の識別子を結合する積演算子と、識別子および因子の列として結合された複数の識別子のいずれかまたは両方から項の組み合わせを構成する和演算子と、によって記述される対象情報を記憶する記憶部から前記対象情報を読み出すステップと、
前記対象情報中のそれぞれの着目する識別子について、前記それぞれの着目する識別子が含まれている着目項の前記対象情報内での位置と前記それぞれの着目する識別子の前記着目項内での位置とを含む位置表現式を算出する位置情報算出ステップと、
前記いずれかの項が因子の列を含み、前記因子の列に含まれるいずれかの因子がさらに項の組み合わせの順序を維持して前記項の組み合わせを関係付ける順序因子構成演算子によって形成される順序因子を含む場合に、前記着目項中の順序因子の位置に加えて、前記順序因子中の項の順序中でのそれぞれの着目する識別子が含まれる因子内着目項の位置と前記因子内着目項中での前記それぞれの着目する識別子の位置を算出するステップと、を実行させるためのプログラムを記憶したコンピュータが読みとり可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理技術に関するものである。
【背景技術】
【０００２】
従来、コンピュータが取り扱うデータ構造としては、例えば、リレーショナルデータベースの表形式の構造、オブジェクト指向データベースのオブジェクト、知識データベースのフレームあるいはルール等が知られている。【０００３】
しかし、従来、提案されていたデータベースは、定義済みのデータ構造に、新たな構造を追加することができないという、変更に対する柔軟性の点で問題があった。例えば、リレーショナルデータベースの運用を開始後、１つの表に新たな属性を追加する場合には、既存のデータ構造と、データ構造を処理するアプリケーションプログラムの改造とが伴い、改造の工数は、コンピュータの利用者、管理者、あるいはアプリケーションプログラムの開発者には負担であった。また、従来のリレーショナルデータベースでは、情報を階層的に記述すること、例えば、１つの表の１つの属性中に、さらに表を定義することはできなかった。一方、オブジェクト指向のデータベース、あるいは、フレームでは、オブジェクト間の関係、あるいはフレーム間の関係にいわゆる親子関係を定義できるが、逆に、属性と属性値との関係を単純に処理したいという要請には不向きである場合があった。【０００４】
そこで、本出願人は、利用者が取り扱う事物、組織、人などに関する現実世界の情報、あるいは利用者が取り扱う概念などを情報処理装置が取り扱うために、情報を記述する新たなデータ構造と、そのデータ構造で記憶された情報を処理する手順とを提案した（特許文献１参照）。この提案では、情報を式表現、例えば、識別子と識別子の和、識別子と識別子の積、識別子と識別子の積の和などで表現する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４３４３９８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記特許文献１の技術では、現実世界の情報あるいは人が取り扱う概念などが極めて柔軟な式表現で記述される。しかしながら、式表現によって記述された情報を効率的するための手順については、改善の余地があった。本発明は、情報を式表現で記述するとともに、効率的に式表現で記述された情報を処理する処理技術を提案する。
【課題を解決するための手段】
【０００７】
本発明の一側面は、情報処理装置として例示できる。本情報処理装置は、識別子と、順序を持つ因子の列として複数の識別子を結合する積演算子と、識別子および因子の列として結合された複数の識別子のいずれかまたは両方から項の組み合わせを構成する和演算子と、によって記述される対象情報を記憶する記憶部と、対象情報中のそれぞれの着目する識別子について、それぞれの着目する識別子が含まれている着目項の対象情報内での位置とそれぞれの着目する識別子の着目項内での位置と含む位置表現式を算出する位置情報算出部と、を備える。
【発明の効果】
【０００８】
本発明によれば、効率的に式表現で記述された情報を処理することができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係る情報処理装置の構成を例示すブロック図である。
【図２】セル空間情報の第一のデータ構造例を示す図である。
【図３】セル空間情報の第二のデータ構造例を示す図である。
【図４】第三のデータ構造例を示す図である。
【図５】式表現から得られる位置表現式と、識別子との関係をリレーショナルデータベースの表に格納した例を示す図である。
【図６】式表現を位置表現式に変換する変換関数のフローチャートを例示する図である。
【図７】式表現を位置表現式に変換する変換関数の処理例を示す図である。
【図８】位置表現式を式表現に変換する変換関数のフローチャートを例示する図である。
【図９】位置表現式を式表現に変換する変換関数の処理例である。
【図１０】データベースの例である。
【図１１】式表現をリレーショナルデータベースに格納したときの表を例示する図である。
【図１２】絶対位置情報と値（社員）の組を含むＲＤＢのレコード例である。
【図１３】社員で特定されるセルＩＤと、社員コードで例示されるキー属性と、社員名を含む属性の因子と、属性に対応する値の因子とを含む位置表現式の関係を例示する図である。
【図１４】絶対位置情報と値（社員Ａ）の組を含むＲＤＢのレコード例である。
【図１５】社員名＝社員Ａの指定から得られた関連情報を例示する図である。
【図１６】アプリケーションプログラムの処理例である。
【図１７】識別子”土木”から取得される位置表現式を例示する図である。
【図１８】社員Ｂの関連情報を例示する図である。
【図１９】社員Ｂの属性”所属”に対応する値である識別子”建築”と、識別子”建築”の位置表現式を含むデータベースのレコードを例示する図である。
【図２０】識別子”建築”と、識別子”営業”に変更したデータベースのレコードを例示する図である。
【図２１Ａ】商演算処理（サブルーチン１）を実行する処理のフローを例示する図である。
【図２１Ｂ】商演算処理（サブルーチン１）の処理例である。
【図２１Ｃ】商演算処理（サブルーチン１）の処理例である。
【図２２Ａ】商演算のうち、剰余を求める処理（サブルーチン２）を例示する図である。
【図２２Ｂ】剰余を求める処理（サブルーチン２）の処理例である。
【図２２Ｃ】剰余を求める処理（サブルーチン２）の処理例である。
【図２３】ツリー構造を例示する図である。
【図２４】ツリー構造の式表現を位置表現式と識別子との関係に変換し、データベースに格納した例である。
【図２５】位置表現式と識別子との関係を示すレコードの例である。
【図２６】位置表現式と識別子との関係を示すレコードの例である。
【図２７】位置表現式と識別子との関係を示すレコードの例である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して本発明を実施するための最良の形態（以下、実施形態という）に係る情報処理装置について説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成には限定されない。
【００１１】
本実施形態では、利用者が取り扱う事物、組織、人などに関する現実世界の情報を情報処理装置が取り扱うために、情報を記述するデータ構造と、そのデータ構造で記憶された情報を処理する手順とが提案される。本実施形態で提案するデータ構造で記述される情報を対象情報と呼ぶ。
【実施例１】
【００１２】
（装置構成）
図１は、第１の実施形態（実施例１ともいう）に係る情報処理装置１００の構成を例示すブロック図である。同図に示すように、第１の実施形態に係る情報処理装置１００は、対象情報を入力するキーボード、ポインティングデバイス等の入力手段１１と、入力された対象情報を格納するメモリ１２（本発明の記憶部に相当）と、対象情報を所定のプログラムに基づいて処理するＣＰＵ１３と、入力された対象情報や処理後の対象情報を出力するディスプレイ等の出力手段１４と、ＣＰＵ１３と入力手段１１との間を接続するインターフェース１５と、ＣＰＵ１３と出力手段１４との間を接続するインターフェース１６とを備える。【００１３】
インターフェース１５は、例えば、ＵＳＢ（Universal Serial Bus）等のシリアルインターフェースである。また、インターフェース１６は、例えば、ＲＧＢ（赤、緑、青）の画像信号および同期クロックの出力インターフェースである。【００１４】
ただし、図１では、点線で例示されているように、情報処理装置１００は、インターフェースを介して、外部記憶装置、着脱可能な記憶媒体の駆動装置、通信部等と接続されるようにしてもよい。ここで、外部記憶装置は、例えば、ハードディスク駆動装置、ＳＳＤ（Solid State Drive）等である。また、着脱可能な記憶媒体は、例えば、ＣＤ（Compact disc）、ＤＶＤ（Digital Versatile Disk）、ブルーレイディスク、フラッシュメモリカード等である。また、通信部は、ネットワークにアクセスし他の情報処理装置と通信する装置であり、例えば、ＮＩＣ（Network Interface Card）等である。【００１５】
情報処理装置１００は、典型的には、パーソナルコンピュータ、サーバ等のコンピュータである。ただし、情報処理装置１００は、そのようなコンピュータに限定されるものではなく、例えば、携帯情報端末、携帯電話、ＰＨＳ（Personal Handyphone System）、デジタルテレビ、デジタルテレビのチューナあるいはセットトップボックス、ハードディスクを含むテレビジョンの録画装置、車載用の端末等として実現できる。また、メモリ１２は、揮発性のＤＲＡＭ（Dynamic Random Access Memory）、不揮発性のＥＰＲＯＭ（Erasable Programmable Read Only Memory）、ＥＥＰＲＯＭ（Electronically Erasable and Programmable Read Only Memory）、フラッシュメモリ等を含む。【００１６】
情報処理装置１００の機能は、ＣＰＵ１３がプログラムを実行することで実現される。このプログラムは、メモリ１２あるいは不図示の外部記憶装置にインストールされる。プログラムは、通信インターフェースを通じてネットワークから、あるいは、着脱可能な記憶媒体からインストールされる。したがって、このプログラムは、ネットワークあるいは着脱可能な記憶媒体等を通じて流通される。【００１７】
また、メモリ１２あるいは不図示の外部記憶装置に格納された対象情報は、ＣＰＵ１３が所定のプログラムを実行することによって各レベルを移行する。なお、各レベルとは、前記対象情報の抽象度が最も高く表現される集合レベル２２と、前記集合レベル２２よりも前記対象情報の抽象度が低く表現され、該対象情報が部分集合を要素として表現されるトポロジー空間レベル２３と、前記トポロジー空間レベルよりも前記対象情報の抽象度が低く表現され、該トポロジー空間レベルにおける前記対象情報同士が接着される接着空間レベル２４と、前記トポロジー空間における前記対象情報が所定の属性をもって表現されるセル空間レベル２５と、によって例示される。【００１８】
（データ構造）
次に、第１の実施形態に係る情報処理装置１００のメモリ１２に格納される対象情報の構造、すなわちデータ構造について説明する。なお、本実施形態の情報処理装置１００は、以下のデータ構造によって、処理対象のデータを記述し、記憶し、演算処理を行う。【００１９】
（１）対象情報の構成要素
情報処理装置１００は、対象情報を式の形式で表現する。式は、和演算子“＋”、積演算子“×”、第１の括弧“（”“）”、および第２の括弧“｛”“｝”によって記述される。第１の括弧が本発明の集合因子構成演算子に相当する。また、第２の括弧が本発明の順序構成演算子に相当する。このような対象情報の表現形式を式表現とも呼ぶ。【００２０】
式は、１以上の識別子を含む。識別子は、記号または記号列で表現される。本実施形態では、記号として、英数字、および特殊文字（ただし、和演算子“＋”、積演算子“×”、第１の括弧“（”“）”、および第２の括弧“｛”“｝”を除外する）を用いることとする。ただし、記号は、一般的にアルファベットとも呼ばれ、必ずしも、これらの文字には限定されない。【００２１】
本実施形態では、特殊な識別子として、Φおよびεを用いる。Φは、値ゼロ、和演算子において演算結果を変化させない値、または空集合を示す識別子である。本実施形態では、Φを零元と呼ぶ。また、εは、値１、あるいは、積演算子において演算結果を変化させない値である。本実施形態では、εを単位元と呼ぶ。なお、Φを和演算の単位元と呼ぶ場合もあるが、本実施形態では、Φを零元と呼ぶことにする。【００２２】
本実施形態では、以下の規則によって対象情報、すなわち、識別子、因子、項（要素ともいう）、集合情報、接着空間の情報、およびセル空間の情報を記述する式表現が生成される。
（ａ）識別子、単位元、および零元はいずれも式表現、すなわち、対象情報を記述する表現である。
（ｂ）ｒとｓとがともに、式表現である場合、ｒ＋ｓも式表現である。
（ｃ）ｒとｓとがともに、式表現である場合、ｒ×ｓも式表現である。この場合、演算の結合の強さは、通常の代数と同様に、ｒ×ｓの方が、ｒ＋ｓよりも強い。
（ｄ）ｒが式表現である場合、（ｒ）、｛ｓ｝も式表現である。【００２３】
（２）式表現の代数的構造
本実施形態において、式表現ｒ、ｓ、ｔ、ｙは、次の代数の性質を有する。
（ａ）結合律
ｒ＋（ｓ＋ｔ）＝（ｒ＋ｓ）＋ｔ；ｒ×（ｓ×ｔ）＝（ｒ×ｓ）×ｔ；
（ｂ）可換律
ｒ＋ｓ＝ｓ＋ｒ；
なお、本実施形態の式表現では、積演算子の可換律は成立しない。したがって、積演算子で複数の因子が結合されている場合に、個々の因子位置が情報（あるいは意味）を持つ。すなわち、因子は、いわゆる位置を指定してされた位置パラメータとしての機能を有する。「積演算子の可換律は成立しない」ことは、本発明の積演算子が「順序を持つ因子の列として複数の識別子を結合する」ことに相当する。
（ｃ）積演算の単位元
ｒ×ε＝ε×ｒ＝ｒ；
（ｄ）積演算、和演算の零元
ｒ×Φ＝Φ×ｒ＝Φ；ｒ＋Φ＝ｒ；
（ｅ）分配率
ｒ×（ｓ＋ｔ）＝ｒ×ｓ＋ｒ×ｔ；（ｒ＋ｓ）×ｔ＝ｒ×ｔ＋ｓ×ｔ；
（ｆ）
｛ｒ＋ｓ｝×｛ｔ＋ｕ｝＝｛ｒ×ｔ＋ｓ×ｕ｝；【００２４】
（３）集合情報
集合情報は、項の組み合わせ、あるいは、項の和として、定義される。ここで、それぞれの項は集合ＩＤ（本発明の第１の識別因子に相当）となる識別子と値となる識別子の積、すなわち、集合ＩＤ×値として定義される。ただし、値は、複数の識別子の積であってもよい。集合の情報の式表現は、典型的には、集合ＩＤ×値１＋集合ＩＤ×値２＋・・・である。【００２５】
上述のように、本実施形態のデータ構造では、和演算子に可換律が成立することから、集合情報は、順序のない項の組み合わせということができる。一方、項を構成する因子間の位置関係は維持されることになる。【００２６】
このような因子間の位置関係の維持機能は、コンピュータ上で事物、あるいは、概念を表現する場合に、極めて大きな効果を発揮する。すなわち、一般的に、事物、あるいは概念を記述する修飾関係には、可換律が成立しない。例えば、”児玉の机”は、”机の児玉”と意味が異なる。【００２７】
本実施形態の因子と積演算子によれば、このような修飾関係を極めて単純化して、記述することができる。さらに、そのような修飾関係で記述された項を和演算子によって組み合わせることで事物の集合、あるいは、概念の集合を記述し、極めて単純な形式のデータベースを構築できる。【００２８】
さらにまた、管理対象の事物あるいは概念を項の集合として管理する場合に、項における因子の位置関係に意味を付与することもできる。また、項を構成する因子は、それぞれ、いわゆる位置パラメータとしての意義を有するということもできる。【００２９】
例えば、集合情報が、果物×任意形状×任意色×バナナ＋果物×任意形状×任意色×りんご＋果物×細長×黄色×バナナ＋果物×丸×赤×リンゴという集合情報を考える。この場合、項の第１因子は、集合ＩＤである果物であり、第２因子は形状を示し、第３因子は色を示し、第４因子は名称を示す。このように、それぞれの因子の位置に意味上の制限を加えて使用することで、属性と属性値との関係を集合レベルでも処理できる。情報処理装置１００では、集合情報は、このような順序が維持された因子によって事物の属性を自在に定義することができる。また、そのような因子を含む項の組み合わせによって、事物、人の集合など、現実世界の情報がコンピュータ上に表現される。【００３０】
（例）
Ａ×ａ１＋Ａ×ａ２＋Ａ×ａ３、ｂ１×Ｂ＋ｂ２×Ｂ×Ｂ、果物×リンゴ＋果物×バナナ＋果物×ミカン、野菜×キャベツ＋野菜×キュウリ＋野菜×ゴボウ、社員×Ａ＋社員×Ｂ＋社員×Ｃ
すなわち、集合情報は、集合ＩＤで識別される集合に所属する項の組み合わせを記述し、メモリ１２に記憶される。この場合、社員Ｃが退職し、社員Ｄと社員Ｅが入社した場合には、社員×Ａ＋社員×Ｂ＋社員×Ｃのようにメモリ１２に格納される。【００３１】
（４）トポロジー空間情報
トポロジー空間情報は、トポロジーＩＤとなる識別子と部分集合の和との積によって以下のように記述される。すなわち、トポロジーＩＤ×（部分集合の和）である。ここで、部分集合は、部分集合を識別する部分集合ＩＤと、その部分集合に含まれる項の和との積で表現される。すなわち、部分集合ＩＤ×（項の和）である。ただし、項には、さらに項の和を第１の括弧“（）”または第２の括弧”｛｝”で組み合わせたもの、およびそれらの積が含まれてもよい。【００３２】
（例）トポロジー空間情報の例は、
Ｔ×（ＡＢＣ×（ａｂ１＋ａｃ２＋ｂｃ３）＋Ａ×（ａｂ１＋ａｃ２）＋Ｂ×（ａｂ１＋ｂｃ３）＋Ｃ（ａｃ２＋ｂｃ３））、
果物×（全種×（リンゴ＋バナナ＋ミカン）＋赤×リンゴ＋黄×（バナナ＋ミカン））、果物×（全種×（リンゴ＋バナナ＋ミカン）＋丸×（リンゴ＋ミカン）＋細長×バナナ）、
野菜×（全種×（大根＋キュウリ＋ゴボウ）＋太×大根＋細×（キュウリ＋ゴボウ））、会社×（社員×（社員１＋社員２＋社員３＋社員４）＋営業×（社員１＋社員２）＋経理×（社員３＋社員４））、等である（この例で、読点“、”は、式の構成要素ではなく、例の区切りである）。この場合に、最後の例について、例えば、総務が新設され、社員５が採用され、総務に配属された場合には、情報処理装置１００は、会社×（社員×（社員１＋社員２＋社員３＋社員４＋社員５）＋営業×（社員１＋社員２）＋経理×（社員３＋社員４）＋総務×社員５）のように記述し、メモリ１２に格納することができる。【００３３】
（５）接着空間情報
接着空間情報は、トポロジー空間情報に含まれる２つの部分集合Ｘと部分集合Ｙに対して、それぞれの部分に含まれる部分集合を関係付けることで構成される。本実施形態では、この関係付けによって発生する関係を同値関係という。【００３４】
今、トポロジー空間情報Ｔ（トポロジーＩＤは、Ｔｉｄ）およびトポロジー空間情報Ｕ（トポロジーＩＤは、Ｙｉｄ）が、トポロジー空間情報Ｔｉｄ×（Ｔに属する部分集合の和）＋トポロジー空間情報Ｕｉｄ×（Ｕに属する部分集合の和）としてメモリ１２に記憶されているとする。【００３５】
さらに、Ｔに属する部分集合の和＝部分集合Ｔ０＋部分集合Ｔ−Ｔ０と２つの部分集合に分離できるとする。その場合、情報処理装置１００では、トポロジー空間情報Ｔとトポロジー空間情報Ｕとを関連づけるトポロジー空間情報Ｔの因子ｐと、トポロジー空間情報Ｕの因子ｑ（本発明の第２の同値因子に相当）が指定される。そして、トポロジー空間情報Ｔが、因子ｐを含む部分集合Ｔ０と、因子ｐを含まない部分集合Ｔ−Ｔ０に分離される。ここで、Ｔ−Ｔ０は、集合Ｔから集合Ｔ０を削除した差集合である。また、トポロジー空間情報Ｕが、因子ｑを含む部分集合Ｕ０（本発明の第２の関連項に相当）と、因子ｑを含まない部分集合Ｕ−Ｕ０に分離される。ここで、Ｕ−Ｕ０は、集合Ｕから集合Ｕ０を削除した差集合である。【００３６】
この場合に、上記２つのトポロジー空間情報ＴとＵの和は、トポロジー空間情報Ｔｉｄ×（部分集合Ｔ０）＋トポロジー空間情報Ｔｉｄ×（部分集合Ｔ−Ｔ０）＋トポロジー空間情報Ｕｉｄ×（部分集合Ｕ０）＋トポロジー空間情報Ｕｉｄ×（部分集合Ｕ−Ｕ０）と表現される。このように、集合から特定の因子ｐを含む部分集合を取り出した場合に、これを商と呼ぶ。また、その商を除く部分集合を剰余という。【００３７】
さらに、部分集合Ｔ０＝Ｔ０ｉｄ×（Ｔ０の項の和）、部分集合Ｕ０＝Ｕ０ｉｄ×（Ｕ０の項の和）と記述されているとする。この場合に、部分集合Ｔ０と部分集合Ｕ０とを関係付けることによって、以下の接着空間情報を構成できる。すなわち、この場合の接着空間情報は、｛部分集合Ｔ０におけるｐの左因子＋部分集合Ｕ０におけるqの左因子｝｛p+q｝｛部分集合Ｔ０におけるｐの右因子＋部分集合Ｕ０におけるqの右因子｝＋トポロジー
空間情報Ｔｉｄ×（部分集合Ｔ−Ｔ０）＋トポロジー空間情報Ｕｉｄ×（部分集合Ｕ−Ｕ０）、である。ここで、部分集合Ｔ０におけるｐの左因子および部分集合Ｔ０におけるｐの右因子が、ともに、本発明の第１の被接着因子に相当する。また、部分集合Ｕ０におけるqの左因子および部分集合Ｕ０におけるqの右因子が、ともに、本発明の第２の被接着因子に相当する。【００３８】
なお、ここでは、トポロジー空間レベルの情報を接着する場合を説明したが、トポロジー空間レベルの情報に、属性と属性値が定義されて構成されるセル空間レベルの情報、および、項の組み合わせである集合レベルの集合情報に対しても、接着空間情報が定義できる。また、トポロジー空間、セル空間、集合空間のうち、一のレベルの情報と、他のレベルの情報とについて接着空間情報を定義できる。【００３９】
（例）
今、以下のような果物のトポロジー空間情報と、野菜のトポロジー空間情報の和、すなわち、果物×（全種×（リンゴ＋バナナ＋ミカン）＋丸×（リンゴ＋ミカン）＋細長×バナナ）＋野菜×（全種×（大根＋キュウリ＋ゴボウ）＋太×大根＋細×（キュウリ＋ゴボウ））がメモリ１２に記憶されているとする。【００４０】
ここで、果物のトポロジー空間情報の因子である細長と、野菜のトポロジー空間情報の部分集合である因子細との関連づけが指定され、同値関係にあるとする。この場合に、２つのトポロジー空間情報は、それぞれ次のように商と剰余とに分離される。すなわち、それぞれの集合情報が商と剰余に分離されたトポロジー空間情報は、
果物×細長×バナナ
＋果物×（全種×（リンゴ＋バナナ＋ミカン）＋丸×（リンゴ＋ミカン））
＋野菜×細×（キュウリ＋ゴボウ）
＋野菜×（全種×（大根＋キュウリ＋ゴボウ）＋太×大根）
となる。【００４１】
そして、同値関係が指定された細長と、野菜のトポロジー空間情報の部分集合である細とによって、接着空間情報が
｛果物＋野菜｝×｛細長＋細｝｛バナナ＋（キュウリ＋ゴボウ）｝
＋果物×（全種×（リンゴ＋バナナ＋ミカン）＋丸×（リンゴ＋ミカン））
＋野菜×（全種×（大根＋キュウリ＋ゴボウ）＋太×大根）、のように構成される。【００４２】
このようにして、接着空間情報は、２つのトポロジー空間情報の構造を維持した状態で、関係付けが指定された同値関係にある因子を基に結合されている。接着空間情報より、”細”と”細長”に同値関係が認められれば、右の因子”バナナ”と”（キュウリ＋ゴボウ）”を｛バナナ＋（キュウリ＋ゴボウ）｝として関連づけて出力できる。【００４３】
また、 伝票ＩＤ１枚目（Ａ｛ε＋Ｂ＋Ｃ｛Ｃ１＋Ｃ２｝＋Ｄ＋Ｅ｛Ｅ１＋Ｅ２｝｝（ａ｛ε＋ｂ＋ｃ｛ｃ１＋ｃ２｝＋ｄ＋ｅ｛ｅ１＋ｅ２｝｝＋位置（右上＋右下）））
＋伝票ＩＤ２枚目（Ａ｛ε＋Ｂ＋Ｃ｛Ｃ１＋Ｃ２｝＋Ｄ＋Ｅ｛Ｅ１＋Ｅ２｝｝（ａ｛ε＋ｂ＋ｃ｛ｃ１＋ｃ２｝＋ｄ＋ｅ｛ｅ１＋ｅ２｝｝））
＋MEMO（１（あいう）＋２（ABC））
＋・・・という伝票の束、およびメモＭＥＭＯを記述する情報がメモリ１２に格納されていた場合を考える。ここで、ＭＥＭＯを１枚目の伝票の右上に、位置を指定して張り付ける例を示す。【００４４】
この例で、MEMOの１を１枚目の伝票の右上に張り付けるには、まず、ＭＥＭＯ情報の因子”１”、伝票１枚目の情報の因子”右上”でそれぞれ商空間が作成される。
伝票ＩＤ１枚目（Ａ｛ε＋Ｂ＋Ｃ｛Ｃ１＋Ｃ２｝＋Ｄ＋Ｅ｛Ｅ１＋Ｅ２｝｝（ａ｛ε＋ｂ＋ｃ｛ｃ１＋ｃ２｝＋ｄ＋ｅ｛ｅ１＋ｅ２｝｝＋位置（右下）））＋伝票ＩＤ１枚目×位置（右上）
＋伝票ＩＤ２枚目（Ａ｛ε＋Ｂ＋Ｃ｛Ｃ１＋Ｃ２｝＋Ｄ＋Ｅ｛Ｅ１＋Ｅ２｝｝（ａ｛ε＋ｂ＋ｃ｛ｃ１＋ｃ２｝＋ｄ＋ｅ｛ｅ１＋ｅ２｝｝））
＋MEMO（２（ABC））＋MEMO（１（あいう））
＋・・・
ここで、”１”と”右上”の関係付けを指定し接着すると、接着情報は、
｛伝票ＩＤ１枚目×位置＋MEMO｝｛右上＋１｝｛ε＋（あいう）｝＋剰余の部分集合を含む情報、として構成される。このように、接着情報は、相互に構造上の共通性がない２つの対象情報について、それぞれの接着前の構造を維持した状態で、２つの対象情報結合し、メモリ１２に格納することができる。【００４５】
（６）セル空間情報
セル空間情報は、事物、組織、人などに関する現実世界の属性、あるいは人が取り扱う概念の属性と、その属性に対応する属性値とを有する情報である。属性は、キー属性とその他の属性とに分かれる。キー属性は属性値によって情報が識別できる属性であり、データベースの検索においてキーとして使用できる値に対応する。セル空間情報で、属性値（またはその並び）は、インスタンスと呼ばれ、従来のデータベースのレコードに相当する。それぞれのインスタンスは、インスタンスＩＤと呼ぶ識別情報を有する。また、キー属性、あるいは、その他の属性が複数個ある場合には、キー属性、あるいは、その他の属性は、第２の括弧“｛”と“｝”とによって順序が維持された因子の形式で記述される。すなわち、いわゆるベクトル形式にて属性とその対応する属性値が記述される。【００４６】
セル空間情報は、セル空間ＩＤ（本発明のセル空間識別子に相当）と、キー属性の因子と、単位元およびキー属性以外の属性を有する因子と、インスタンスの集合を有する因子とを含む。セル空間情報は、
セル空間ＩＤ×（キー属性×｛ε＋（その他の属性の和）｝
×（（インスタンスＩＤ×｛ε＋（値の和）｝）の和））
で構成される。【００４７】
このキー属性の因子と単位元およびキー属性以外の属性を含む属性を有する因子とが、本発明の属性因子に相当する。また、｛ε＋（その他の属性の和）｝の中のいずれかの属性が複数の識別子の積からなる場合に、そのような識別子の積からなる属性が、本発明の属性の順序列に相当する。また、そのような属性が、第２の括弧“｛｝”で括られた因子である場合に、その第２の括弧で括られた属性が、本発明の属性の順序因子に相当する。【００４８】
また、そのような属性に対応して、インスタンスの｛ε＋（値の和）｝中の値が、識別子の積からなるときに、その値が、本発明の値列に相当する。また、値が、第２の括弧“｛｝”で括られた因子である場合に、その第２の括弧で括られた値が、本発明の値の順序因子に相当する。【００４９】
（例）
セル空間情報の例は、
果物ｉｄ×（名前｛ε＋形＋色｝（リンゴ｛ε＋丸＋赤｝＋ミカン｛ε＋丸＋黄｝＋バナナ｛ε＋細長＋黄｝））
＋野菜ｉｄ×（名前｛ε＋形状＋色｝（大根｛ε＋太＋白｝＋キュウリ｛ε＋細＋緑｝＋ゴボウ｛ε＋細＋茶｝））
で示すことができる。この例では、従来のリレーショナルモデルで、果物テーブル、野菜テーブルとして記述されていた情報が、式表現で記述される。なお、この例は、２つのセル空間情報（果物と野菜）を含むことから、統合セル空間情報とも呼ばれる。【００５０】
この統合セル空間情報の処理例を示す。まず、果物のインスタンスのうち、属性“形”が“細長”の値を持つインスタンスとの部分集合（商という）と、その他のインスタンスの部分集合（剰余という）とを作成する。また、まず、野菜のインスタンスのうち、属性“形状”が“細”の値を持つインスタンス（商という）と、その他のインスタンス（剰余という）とに分離する。この場合、結合セル空間情報は、
果物ｉｄ×バナナ×形×細長
＋野菜ｉｄ×形状×（キュウリ＋ゴボウ）細
＋果物ｉｄ×（名前｛ε＋形＋色｝（リンゴ｛ε＋丸＋赤｝＋ミカン｛ε＋丸＋黄｝＋バナナ｛ε＋黄｝））
＋野菜ｉｄ×（名前｛ε＋形状＋色｝（大根｛ε＋太＋白｝＋キュウリ｛ε＋緑｝＋ゴボウ｛ε＋茶｝））
となる。次に、果物のうちの属性“形”が値“細長”を有する部分集合と、野菜のうちの属性“形状”が値“細”を有する部分集合との関係付けを指定し、同値関係を設定する。そして、この同値関係によって接着空間情報を作成すると、
｛果物ｉｄ×形×バナナ＋野菜ｉｄ×形状×（キュウリ＋ゴボウ）｝｛細長＋細｝｛ε＋ε｝
＋果物ｉｄ×（名前｛ε＋形＋色｝（リンゴ｛ε＋丸＋赤｝＋ミカン｛ε＋丸＋黄｝＋バナナ｛ε＋黄｝））
＋野菜ｉｄ×（名前｛ε＋形状＋色｝（大根｛ε＋太＋白｝＋キュウリ｛ε＋緑｝＋ゴボウ｛ε＋茶｝））
となる。【００５１】
（記述例）
以下、従来のデータ構造である表およびツリー構造が、本実施形態のデータ構造でどのように記述できるかを示す。【００５２】
図２は、第１の実施形態に係る情報処理装置１００のメモリ１２に格納されるセル空間情報の第一のデータ構造例を示す。同図に示すように、第１の実施形態に係る情報処理装置１００では、従来正規化表構造として表形式で表現される対象情報は、表現形式１の状態でメモリ１２に格納することができる。表現形式１で、Ａは、キー属性（例えば社員番号等）、Ｂ、Ｃ、Ｄ、Ｅ等は、その他の属性（例えば、氏名、性別、入社年、所属部署等）である。【００５３】
図３は、第１の実施形態に係る情報処理装置１００のメモリ１２に格納されるセル空間情報の第二のデータ構造例を示す。同図に示すように、第１の実施形態に係る情報処理装置１００では、従来ツリー構造として表現される対象情報は、表現形式２または３でメモリ１２に格納することができる。そして、同図に示すように有向グラフの一部としてのツリー構造について対応可能である。表現形式２で、ａは、例えば、動物、ｂはほ乳類、ｃは魚類、ｄは人、ｅは鯨、ｆはマグロ、ｇは鯉等である。この場合、ｂ（ほ乳類）およびｃ（魚類）は、ａ（動物）の属性、例えば、食する、呼吸する等を継承する。ｂ（ほ乳類）およびｃ（魚類）の共通の属性は、ａ（動物）に定義される。【００５４】
したがって、本実施形態の式表現によって、フレーム等の知識ベース、あるいは、オブジェクト指向データベース等を記述し、メモリ１２に格納できる。情報処理装置１００は、これらに対応する事物に関する情報の入力を入力部１１から受け付け、対応する情報を生成し、メモリ１２に格納し、メモリから読み出し、出力部１４に出力できる。【００５５】
また、逆ツリー構造で表現される対象情報についても、表現形式３のようにメモリ１２に格納することができる。逆ツリー情報は、基本的な情報からより複雑な情報を構成する場合に適用できる。表現形式３では、例えば、ａはＣＰＵであり、ｂはインターフェースであり、ｃは外部記憶装置の駆動部であり、ｄはＣＰＵボードであり、ｅは外部記憶装置であり、ｆはパーソナルコンピュータである。【００５６】
このように逆ツリー構造は、製品の設計書、事業の工程管理図等、基本情報からより複雑な情報を組み上げて管理することができる。したがって、本実施形態の式表現によって、製品の設計情報、事業の工程等を記述し、メモリ１２に格納できる。情報処理装置１００は、これらに対応する事物に関する情報の入力を入力部１１から受け付け、対応する情報を生成し、メモリ１２に格納し、メモリから読み出し、出力部１４に出力できる。【００５７】
図４は、第１の実施形態に係る情報処理装置１００のメモリ１２に格納される第三のデータ構造例を示す。同図に示すように、第１の実施形態に係る情報処理装置１００では、非正規化表構造と属性のない対象情報についても表現形式４の状態でメモリ１２に格納することができる。ここで、非正規化表構造と属性のない対象情報とは、図４に示すように伝票を示す対象情報と、その対象情報に追加される付箋メモに相当する対象情報とが例示できる。接着処理を実行し、接着空間を作成することで、コンピュータ上で伝票に付箋メモの内容を添付することと同等の処理が実現される。【００５８】
なお、伝票の種類ごとにテーブルに格納する場合には、リレーショナルモデルによって従来のデータベースで情報を管理できる。しかしながら、伝票の種類数が変動する場合、既存の伝票の構成が変更された場合には、リレーショナルモデルでは、対応できない。【００５９】
ここで、式表現について、より詳細に上記表現形式４に基づいて説明する。ＩＤまたはｉｄ（ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）は、格納される対象情報を識別するものである。そしてこの対象情報は、識別子Ａ〜Ｅ２、ａ〜ｅ２と、演算時の結合強さが異なる第一の括弧（）および第二の括弧｛｝と、これらにより表現される因子｛Ｃ１＋Ｃ２｝、｛Ｅ１＋Ｅ２｝等と、これら因子の積によって表現される項Ｅ×｛Ｅ１＋Ｅ２｝等と、前記項の和によって表現される式と、により構成される。なお、本実施形態では、項を要素ともいう。また、すでに述べたように、単位元εは、所定の処理を実行した場合に１として処理される記号である。上記以外の特別な記号として、所定の処理を実行した場合に０として処理される零元Φが存在する。このような状態でメモリ１２に格納された対象情報は、ＣＰＵ１３が所定のプログラムを実行することによって、入力装置１１から入力された伝票データにしたがって、生成され、メモリ１２に格納され、部分集合に分離され、他の部分集合と接着され、あるいは、検索されることになる。【００６０】
図４の例では、インスタンスとして、伝票ＩＤ１で示される１枚目の伝票、伝票ＩＤ２で示される２枚目の伝票、およびＭＥＭＯで示されるメモが例示されている。また、この場合に、１枚目の伝票と２枚目以降の伝票で、項目の構成が異なっても構わない。本情報処理装置１００は、対象情報を構成する識別子、あるいは項に、個々に属性を付与できるので、異なる属性の並びを有する異なる識別子、あるいは項を自在に記憶し、検索し、変更できる。また、｛｝内に、＋識別子の形式で追加するとともに、属性に対応する値を追加すれば、データベースとして運用中においても、自在に属性と属性値とを追加、変更、削除できる。したがって、本実施形態のデータ構造によれば、情報処理装置１００が取り扱うデータを柔軟に変更でき、厳密、詳細なファイル設計が軽減される。【００６１】
（位置表現式）
位置表現式は、式表現中での識別子の位置を示す表現形式ということができる。位置表現式は、絶対位置情報ともいう。式表現としては、識別子と、順序を持つ因子の列として複数の識別子を結合する積演算子と、識別子および因子の列として結合された複数の識別子のいずれかまたは両方から項の組み合わせを構成する和演算子と、によって記述される情報を例示できる。したがって、識別子の位置、すなわち、位置表現式は、式表現中でのそれぞれの識別子が含まれる項の位置と、項の中でのそれぞれの識別子が含まれる因子の位置とによって記述できる。なお、情報処理装置１００の処理対象という意味で、位置表現式は、対象情報と呼んでもよい。実施例１では、識別子の左側に識別子の位置を示す位置情報を付加した表現形式を例示する。ただし、位置表現式は、識別子の右側に識別子の位置を示す情報を付加した表現形式であってもよい。【００６２】
位置表現式中の位置情報は、＜項の位置×因子の位置＞で定義される。したがって、実施例１で位置表現式は、＜項の位置×因子の位置＞識別子という形式を取る。【００６３】
（例１）
例えば、識別子Ａ、Ｂ、Ｃを含む式表現Ａ＋Ｂ＋Ｃは、位置表現では、＜１×１＞Ａ＋＜２×１＞Ｂ＋＜３×１＞Ｃである。すなわち、＜１×１＞Ａは、第１の項の第１の因子に相当する識別子がＡであることを示す。また、＜２×１＞Ｂは、第２の項の第１の因子に相当する識別子がＢであることを示す。【００６４】
また、例えば、識別子Ａ、Ｂ、Ｃを含む式表現Ａ＋Ａ×Ｂ＋Ａ×Ｂ×Ｃは、位置表現では、＜１×１＞Ａ＋＜２×１＞Ａ＋＜２×２＞Ｂ＋＜３×１＞Ａ＋＜３×２＞Ｂ＋＜３×３＞Ｃである。以上のように、第１の括弧”（”、および”）”を含まない式表現では、式表現中の第ｉ番目の項中の第ｊ番目の因子となっている識別子Ｚは、＜ｉ×ｊ＞Ｚで記述される。また、複数の項を含む式表現全体の位置表現式は、それぞれの識別子の位置表現式をプラス（＋）などの区切り記号で区切って並べたものとなる。【００６５】
なお、”＜”、および”＞”は、説明のための区切り記号であり、コンピュータ上では、”＜”、および”＞”で括る必要はない。例えば、位置表現を示す文字＆を導入し、＆項の位置×因子の位置のように記述してもよい。同様に、”位置×因子”の間の記号は、”×”である必要はない。例えば、アンダーバー"＿"を用いていてもよい。さらに、複数の項に対応する位置表現で、＜ｉ×ｊ＞Ｚをプラス（＋）で区切って並べる代わりに、他の区切り記号、例えば、他の点を示す記号、カンマ（，）、コロン（：）、セミコロン（；）、スペース、タブなどで区切って並べてもよい。【００６６】
第１の括弧”（”、および”）”を含む式表現では、情報が識別子を用いて階層的に記述される。このため、第１の括弧”（”、および”）”を含む式表現に対応する位置表現に対しては、階層の深さと、どの位置で階層が深くなったか（第１の括弧の中に入ったか）を示す情報が導入される。【００６７】
（例２）
式表現Ａ×（Ｂ＋Ｃ×（Ｄ＋Ｅ））＋Ｆ×（Ｇ＋Ｈ）を位置表現式に変換すると以下のようになる。【００６８】
＜１×１＞Ａ＋（１×２）＜１×１＞Ｂ＋（１×２）＜２×１＞Ｃ＋（１×２）（２×２）＜１×１＞Ｄ＋（１×２）（２×２）＜２×１＞Ｅ＋＜２×１＞Ｆ＋（２×２）＜１×１＞Ｇ＋（２×２）＜２×１＞Ｈ
例２の式表現で、識別子Ｂは、第１項中の第２因子中にある。また、第２因子は、第１の括弧”（”と”）”とで囲まれている。そこで、識別子Ｂの位置表現は、まず、（１×２）を含む。そして、識別子Ｂは、第２因子中の（）内で、第１の項の第１の因子となっている。そこで、識別子Ｂの位置表現は、（１×２）＜１×１＞Ｂとなる。【００６９】
同様に、例２の式表現で、識別子Ｃは、第１項中の第２因子中の第２項の第１因子となっている。そこで、識別子Ｃの位置表現は、（１×２）＜２×１＞Ｃとなる。さらに、例２の式表現で、識別子Ｄは、第１項中の第２因子中の第２項の第２因子中にある。そこでまず、識別子Ｄの位置情報として、（１×２）（２×２）が明示される。さらに、識別子Ｄは、第１項中の第２因子中の第２項の第２因子中で、（）内の第１の項の第１の因子となっている。そこで、識別子Ｄの位置表現は、最終的には、（１×２）（２×２）＜１×１＞Ｄとなっている。【００７０】
例２のように、識別子Ｚが（）で囲まれた因子中にある場合、その識別子Ｚが含まれている項の位置を示す情報と、その項中の因子の位置を示す情報として、（ｉ×ｊ）が用いられる。（ｉ×ｊ）は、第ｉ番目の項中の第ｊ番目の因子中にあって、かつ、第ｊ番目の因子が第１の括弧で囲まれた因子（集合因子）であることを示している。例２のような式表現の位置表現は、（ｉ×ｊ）という第１の括弧の存在示す情報と、＜ｋ×ｌ＞のような（）型の因子を含まない項の位置と因子の位置とを表す情報の組み合わせで記述される。したがって、因子が複数の（）で２階層以上に深くなる場合には、（ｉ１×ｊ１）（ｉ２×ｊ２）のように第１の括弧の存在を示す情報が列記される。第１の括弧の存在を示す情報が列記された個数によって、第１の括弧による階層の深さが明示される。【００７１】
図５に、式表現から得られる位置表現式と、識別子との関係をリレーショナルデータベースの表に格納した例を示す。ただし、図５では、位置表現式は、絶対位置情報で示されている。図５は、例２の式表現から得られる位置表現式と、識別子との関係を表に記述している。この例のように、実施例１の情報処理装置１００によれば、第１の項の第１の因子はＡ、第１の項の第２の因子中の第１の項はＢ、第１の項の第２の因子中の第２の項の第１の因子はＣ、第１の項の第２の因子中の第２の因子中のさらに第１の項はＤなどのように、位置表現式と、識別子との関係を表形式で格納できる。【００７２】
さらに、例えば、値としてＣを見出しときに、その位置表現式（１×２）＜２×１＞から、＜２×１＞を除外し、位置表現式（１×２）を検索することによって、識別子Ｃに関連する識別子を取得できる。例えば、位置表現式（１×２）（ｉ×ｊ）を含む属性に対応する値を取得することで、因子Ｃを含む項を取得できる。ここで、ｉとｊは任意の整数である。このような位置表現式（１×２）（ｉ×ｊ）は、実施例１では、（１×２）＊のように記述する。【００７３】
すなわち、式表現から位置表現式に変換し、それぞれの識別子について、図５のように、位置表現式と識別子との関係を含む表を作成することで、式表現を既存リレーショナルデータベースのデータに変換できる。したがって、既存のリレーショナルベースの管理システム等の機能を用いて、式表現を処理できるようになる。【００７４】
式表現が第２の括弧”｛”、および”｝”を含む式表現の場合にも、対応する位置表現を、第１の括弧”（”、および”）”を含む式表現と同様に生成することができる。例えば、式表現Ａ×（Ｂ＋Ｃ×｛Ｄ＋Ｅ｝）＋Ｆ×｛Ｇ＋Ｈ｝を位置表現に変換すると、以下のようになる。
＜１×１＞Ａ＋（１×２）＜１×１＞Ｂ＋（１×２）＜２×１＞Ｃ＋（１×２）｛２×２｝＜１×１＞Ｄ＋（１×２）｛２×２｝＜２×１＞Ｅ＋＜２×１＞Ｆ＋｛２×２｝＜１×１＞Ｇ＋｛２×２｝＜２×１＞Ｈ
このようにして、第１の括弧と第２の括弧とを組み合わせて位置情報を作成することによって、項の因子が第１の括弧と第２の括弧の組み合わせによる階層的な式表現を含む場合も、一意的に、式表現中の識別子の位置を記述できる。【００７５】
（基本演算）
図６に、式表現を位置表現式に変換する変換関数のフローチャートを例示する。情報処理装置１００は、メモリ１２に実行可能に展開されたコンピュータプログラムを実行し、変換関数の処理を実行する。情報処理装置１００のＣＰＵ１３は、位置情報算出部として、図６の処理を実行する。ここで、変換関数の呼び出しインターフェースは、ｒｅｔ＝Ｓ（Ｘ）；と仮定する。ここで、Ｘは、関数に入力される式表現である。また、ｒｅｔは、変換関数の呼び出し元に引き渡される戻り値である。【００７６】
この処理では、情報処理装置１００は、対象の式表現を入力する（Ｓ１）。ここで、入力するとは、例えば、メモリ１２に記憶された引数Ｘの値を取得する場合を例示できる。ただし、式表現を外部記憶装置、例えば、ハードディスク上のファイルに格納するようにしてもよい。そして、Ｘには、式表現を格納したファイルのファイル名を指定するようにしてもよい。また、変換関数の呼び出しインターフェースは、ｒｅｔ＝Ｓ（ｉｆｉｌｅ、ｏｆｉｌｅ）；のように定義し、入力データのファイル（ｉｆｉｌｅ）と、出力データのファイル（ｏｆｉｌｅ）を指定するようにしてもよい。【００７７】
次に、情報処理装置１００は、戻り値（ｒｅｔ）＝Φ（空）とし、項の順序カウンタｉ＝０を設定する（Ｓ２）。項の順序カウンタとは、式表現Ｘ中で処理されるそれぞれの識別子が含まれる項の位置のカウンタである。ただし、図６の処理では、（）型の因子、あるいは、｛｝型の因子の中の式表現についての処理を開始する場合に、カウンタｉは、それぞれの（）内または｛｝内の処理開始時点で値に０に設定される。【００７８】
次に、情報処理装置１００は、式ＸがΦ（空）となったか否かを判定する（Ｓ３）。式ＸがΦとなった場合、情報処理装置１００は、戻り値ｒｅｔをメモリ１２上に出力し、処理を終了する（Ｓ１８）。【００７９】
次に、情報処理装置１００は、式Ｘから第一項ｔｍを取得するとともに、式Ｘから第一項ｔｍを削除する（Ｓ４）。次に、情報処理装置１００は、項の順序カウンタｉを＋１インクリメントし、因子の順序カウンタｊ＝０を設定する（Ｓ５）。【００８０】
次に、情報処理装置１００は、Ｓ４で取得した第一の項ｔｍの長さが０か否かを判定する（Ｓ６）。項ｔｍの長さが０の場合には、情報処理装置１００は、処理をＳ３に戻す。一方、項ｔｍの長さが０でない場合には、情報処理装置１００は、項ｔｍから第一因子ｆｃｔを取得し、項ｔｍから因子ｆｃｔを削除する（Ｓ７）。そして、情報処理装置１００は、因子の順序カウンタｊを＋１インクリメントする（Ｓ８）。【００８１】
次に、情報処理装置１００は、因子ｆｃｔが（）型か否かを判定する（Ｓ９）。（）型の因子とは、第１の括弧“（）”で囲まれた因子をいう。すでに説明したように、第１の括弧“（）”は、項の和、例えば、項の集合を因子にするための演算子として機能する。【００８２】
因子ｆｃｔが（）型の場合、情報処理装置１００は、第１の括弧“（）”で囲まれた式表現に対して、図６の変換関数の処理を実行する。例えば、情報処理装置１００は、変換関数の再帰呼び出しによって、第１の括弧“（）”内の式表現を処理する。そして、情報処理装置１００は、再帰呼び出しで処理した結果の値ｖａｌを取得する（Ｓ１０）。値ｖａｌには、第１の括弧“（）”内の式表現に対して実行した、位置表現式が格納されている。Ｓ１０の処理が、着目項中の集合因子の位置に加えて、集合因子中の項の組み合わせ中でのそれぞれの着目する識別子が含まれる因子内着目項の位置と因子内着目項中でのそれぞれの着目する識別子の位置をさらに算出するステップに相当する。【００８３】
次に、情報処理装置１００は、現在の位置表現式ｉ×ｊに、第１の括弧“（）”を付与し、（ｉ×ｊ）を生成する。そして、情報処理装置１００は、（ｉ×ｊ）とＳ１０で得られた値ｖａｌとを結合する。この結合は、順序が維持された関係であるので、積と呼ぶ場合もある。すなわち、情報処理装置１００は、（ｉ×ｊ）ｖａｌを生成し、戻り値ｒｅｔに追加する（Ｓ１１）。そして、情報処理装置１００は、処理をＳ６に戻す。【００８４】
一方、Ｓ９の判定で、因子ｆｃｔが（）型でない場合、情報処理装置１００は、因子ｆｃｔが｛｝型か否かを判定する（Ｓ１２）。｛｝型の因子とは、第２の括弧“｛｝”で囲まれた因子をいう。すでに説明したように、第２の括弧“｛｝”は、項の和の並びの順序を維持した状態で因子にするための演算子として機能する。【００８５】
因子ｆｃｔが｛｝型の場合、情報処理装置１００は、第２の括弧“｛｝”で囲まれた式表現に対して、図６の変換関数の処理を実行する。例えば、情報処理装置１００は、変換関数の再帰呼び出しによって、第２の括弧“｛｝”内の式表現を処理する。そして、情報処理装置１００は、再帰呼び出しで処理した結果の値ｖａｌを取得する（Ｓ１３）。値ｖａｌには、第２の括弧“｛｝”内の式表現に対して実行した、位置表現式が格納されている。Ｓ１３の処理が、着目項中の順序因子の位置に加えて、順序因子中の項の順序中でのそれぞれの着目する識別子が含まれる因子内着目項の位置と因子内着目項中でのそれぞれの着目する識別子の位置をさらに算出するステップに相当する。【００８６】
次に、情報処理装置１００は、現在の位置表現式ｉ×ｊに、第２の括弧“｛｝”を付与し、｛ｉ×ｊ｝を生成する。そして、情報処理装置１００は、｛ｉ×ｊ｝とＳ１３で得られた値ｖａｌとを結合する。この結合は、順序が維持された関係であるので、積と呼ぶ場合もある。すなわち、情報処理装置１００は、（ｉ×ｊ）ｖａｌを生成し、戻り値ｒｅｔに追加する（Ｓ１４）。そして、情報処理装置１００は、処理をＳ６に戻す。【００８７】
さらに、Ｓ１２の判定で、因子ｆｃｔが｛｝型でない場合、情報処理装置１００は、因子ｆｃｔが識別子か否かを判定する（Ｓ１５）。Ｓ１５の判定で、因子ｆｃｔが識別子である場合、情報処理装置１００は、現在の位置表現式ｉ×ｊに、＜＞を付与し、＜ｉ×ｊ＞を生成する。そして、情報処理装置１００は、＜ｉ×ｊ＞と識別子との結合を作成し、戻り値ｒｅｔに追加する（Ｓ１６）。一方、Ｓ１５の判定で、因子ｆｃｔが識別子でない場合、情報処理装置１００は、戻り値のエラー値ｅｒｒにエラーコードを設定する（Ｓ１７）。例えば、エラー値ｅｒｒは、関数内のローカル変数でなく、広域変数、あるいは、共有変数としてメモリ１２上に保持するようにすればよい。エラーコードが設定された場合、情報処理装置１００は、処理を終了すればよい。【００８８】
ただし、関数の引数として、エラー値ｅｒｒを関数の呼び出し側に戻してもよい。また、例えば、因子ｆｃｔが（）型および｛｝型のいずれでもない場合、因子ｆｃｔが識別子であるとして処理してもよい。この場合に、Ｓ１５の判定は不要となる。【００８９】
以上のように、式表現が正常に処理できた場合には、ｅｒｒ＝エラー無し（例えば０）、値ｒｅｔに位置表現式が設定され、図６の処理が終了する。一方、式表現が正常に処理できた場合には、ｅｒｒ＝エラー値が設定される。なお、図６のＳ１０およびＳ１３の再帰呼び出しの後も、エラー判定がされるが、説明の簡略化のため、省略した。【００９０】
図７に、式表現ａ（ｂ＋ｃ）＋ｄ｛ｅ＋ｆ｝を処理したときの処理例を図６のＳ１−Ｓ１６の各ステップに対応付けて示す。例えば、処理Ｓ１では、Ｘ＝ａ（ｂ＋ｃ）＋ｄ｛ｅ＋ｆ｝が入力される。【００９１】
また、処理Ｓ４では、引数Ｘの式表現から、第一項ｔｍ＝ａ（ｂ＋ｃ）が削除される。また、処理Ｓ７では、第一項ｔｍから、第一因子ｆｃｔ＝ａが削除される。そして、処理Ｓ１６で位置表現式＜１×１＞ａが生成される。【００９２】
次に、再び、処理Ｓ７に戻って、第一項ｔｍ＝（ｂ＋ｃ）から、第一因子ｆｃｔ＝（ｂ＋ｃ）が削除される。そして、Ｓ１０において、第一因子ｆｃｔ＝（ｂ＋ｃ）に再帰呼び出しが実行され、値ｖａｌ＝＜１×１＞ｂ＋＜２×１＞ｃが生成される。【００９３】
そして、処理Ｓ１１において、戻り値ｒｅｔにＳ１０の結果の値が結合され、位置表現式は、＜１×１＞ａ＋（１×２）＜１×１＞ｂ＋（１×２）＜２×１＞ｃとなる。【００９４】
さらに、処理Ｓ４に戻って、第一項ｔｍ＝ｄ｛ｅ＋ｆ｝が設定される。そして、同様の処理を繰り返して、Ｓ１４にて、最終的な戻り値ｒｅｔが作成される。なお、図７には、示されていないが、その後、Ｓ３の判定で、引数Ｘの式がφとなり、処理が終了する。【００９５】
図８に、位置表現式を式表現に変換する変換関数のフローチャートを例示する。図８の変換関数は復元関数とも呼ばれる。情報処理装置１００は、メモリ１２に実行可能に展開されたコンピュータプログラムを実行し、復元関数の処理を実行する。ここで、復元関数の呼び出しインターフェースは、ｒｅｔ＝Ｔ（Ｘ）；と仮定する。ここで、Ｘは、関数に入力される位置表現式である。また、ｒｅｔは、復元関数の呼び出し元に引き渡される戻り値である。情報処理装置１００のＣＰＵ１３は、復元部として、図８の処理を実行する。【００９６】
この処理では、情報処理装置１００は、処理対象の位置表現式を入力する（Ｔ１）。次に、情報処理装置１００は、戻り値（ｒｅｔ）＝Φ（空）を設定する（Ｔ２）。【００９７】
次に、情報処理装置１００は、式ＸがΦ（空）となったか否かを判定する（Ｔ３）。式ＸがΦとなった場合、情報処理装置１００は、戻り値ｒｅｔをメモリ１２上に出力し、処理を終了する（Ｔ１５）。【００９８】
次に、情報処理装置１００は、位置ポインタｐｔを０にセットする（Ｔ４）。位置ポインタｐｔは、戻り値ｒｅｔに式表現を設定する際に、現在の設定位置を示すポインタである。【００９９】
次に、情報処理装置１００は、式Ｘから第一項ｔｍを取得するとともに、式Ｘから第一項ｔｍを削除する（Ｔ５）。次に、情報処理装置１００は、Ｔ５で取得した第一項ｔｍから第一因子ｆｃｔを取得する（Ｔ６）。【０１００】
次に、情報処理装置１００は、因子ｆｃｔが（ｉ×ｊ）型であるか否かを判定する（Ｔ７）。因子ｆｃｔが（ｉ×ｊ）型である場合、情報処理装置１００は、戻り値ｒｅｔの式表現において、位置ポインタｐｔの示す位置からｉ番目の項のｊ番目の因子の位置に、（）型因子を作成する。ここで、ｉ番目の項の位置は、位置ポインタｐｔの示す位置から、ｉ−１個だけ、項の区切りを進めた位置sすなわち、プラス（＋）がｉ−１個並べた先の位置をいう。また、ｊ番目の因子の位置は、上記ｉ番目の項において、ｊ番目の因子の位置、すなわち、ｉ番目の項の先頭から、ｊ−１個だけ積演算子×を進めた位置をいう。そして、情報処理装置１００は、作成した（）型因子の（）内に位置ポインタをセットする。（Ｔ８）。ここで、「位置ポインタｐｔがセットされる（）型因子の（）内位置」とは、戻り値ｒｅｔの式表現中の第１の括弧“（）”または第２の括弧“｛｝”で定義される深さ位置である。つまり、位置ポインタｐｔは、現在、どの括弧内の式表現が復元中であるかを示す。その後、情報処理装置１００は、処理をＴ６に戻す。【０１０１】
なお、Ｔ８の処理で、すでに、位置ポインタｐｔの示す位置からｉ番目の項のｊ番目の因子の位置に、（）型因子が存在する場合には、情報処理装置１００がさらに（）型因子を作成することはしない。すなわち、情報処理装置１００は、既存の（）型因子内に位置ポインタを設定して、制御をＴ６に戻す。【０１０２】
一方、Ｔ７の判定で、因子ｆｃｔが（ｉ×ｊ）型でない場合、情報処理装置１００は、因子ｆｃｔが｛ｉ×ｊ｝型であるか否かを判定する（Ｔ９）。因子ｆｃｔが｛ｉ×ｊ｝型である場合、情報処理装置１００は、戻り値ｒｅｔの式表現において、位置ポインタｐｔの示す位置から数えて、ｉ番目の項のｊ番目の因子の位置に、｛｝型因子を作成する。そして、情報処理装置１００は、作成した｛｝型因子の｛｝内にポインタをセットする。（Ｔ１０）。その後、情報処理装置１００は、処理をＴ６に戻す。【０１０３】
なお、Ｔ１０の処理で、すでに、位置ポインタｐｔの示す位置からｉ番目の項のｊ番目の因子の位置に、｛｝型因子が存在する場合には、情報処理装置１００がさらに｛｝型因子を作成することはしない。すなわち、情報処理装置１００は、既存の｛｝型因子内に位置ポインタを設定して、制御をＴ６に戻す。【０１０４】
さらに、Ｔ９の判定で、因子ｆｃｔが｛ｉ×ｊ｝型でない場合、情報処理装置１００は、因子ｆｃｔが＜ｉ×ｊ＞型であるか否かを判定する（Ｔ１１）。因子ｆｃｔが＜ｉ×ｊ＞型である場合、情報処理装置１００は、項ｔｍから識別子を取得する（Ｔ１２）。そして、情報処理装置１００は、戻り値ｒｅｔの式表現において、位置ポインタｐｔの示す位置から数えて、ｉ番目の項のｊ番目の因子の位置に、識別子を設定する（Ｔ１３）。【０１０５】
また、Ｔ１１の判定で、因子ｆｃｔが＜ｉ×ｊ＞型でない場合、情報処理装置１００は、エラーコードｅｒｒに、エラーコードの値を設定し、処理を終了する（Ｔ１４）。エラーコードｅｒｒの定義、および格納先は、図６の場合と同様である。【０１０６】
図９に、位置表現式＜１×１＞ａ＋（１×２）＜１×１＞ｂ＋（１×２）＜２×１＞ｃ＋＜２×１＞ｄ＋｛２×２｝＜１×１＞ｅ＋｛２×２｝＜２×１＞ｆを処理したときの処理例を図８のＴ１−Ｓ１３の各ステップに対応付けて示す。例えば、処理Ｔ１では、Ｘ＝＜１×１＞ａ＋（１×２）＜１×１＞ｂ＋（１×２）＜２×１＞ｃ＋＜２×１＞ｄ＋｛２×２｝＜１×１＞ｅ＋｛２×２｝＜２×１＞ｆが入力される。【０１０７】
また、処理Ｔ５では、引数Ｘの式表現から、第一項ｔｍ＝＜１×１＞ａが削除される。また、処理Ｔ６では、第一項ｔｍから、第一因子ｆｃｔ＝＜１×１＞が削除される。そして、処理Ｔ１３で、位置表現式因子ｆｃｔ＝＜１×１＞に対応する、第１番目の項の第１番目の因子として、式表現ａが生成される。【０１０８】
次に、判定Ｔ３、処理Ｔ４を経て処理Ｔ５に戻って、引数Ｘの式表現から、第一項ｔｍ＝（１×２）＜１×１＞ｂが削除される。さらに、処理Ｔ６では、第一項ｔｍから、第一因子ｆｃｔ＝（１×２）が削除される。【０１０９】
次に、処理Ｔ８において、第一因子ｆｃｔ＝（１×２）にしたがって、第１項第２因子に（）型因子が作成され、戻り値ｒｅｔ＝ａ（）が設定される。さらに、処理Ｔ６に戻って、第一項ｔｍから、第一因子ｆｃｔ＝＜１×１＞が削除され、Ｘ＝ｂが残る。その結果、処理Ｔ１３において、（）型因子内の第１項、第１因子に識別子ｂが設定される。その結果、戻り値ｒｅｔ＝ａ（ｂ）が設定される。【０１１０】
次に、判定Ｔ３、処理Ｔ４を経て、処理Ｔ５に戻って、引数Ｘの式表現から、第一項ｔｍ＝（１×２）＜２×１＞ｃが削除される。また、処理Ｔ６では、第一項ｔｍから、第一因子ｆｃｔ＝（１×２）が削除される。そして、処理は、Ｔ７およびＴ８に進む。ただし、すでに、（１×２）に対応する因子が生成されているので、処理Ｔ８では、新たな（）型因子は生成されない。そして、処理Ｔ６に戻って、第一項ｔｍから、第一因子ｆｃｔ＝＜２×１＞が削除され、Ｘ＝ｃが残る。その結果、処理Ｔ１３において、戻り値ｒｅｔ＝ａ（ｂ＋ｃ）が設定される。【０１１１】
次に、判定Ｔ３、処理Ｔ４を経て、処理Ｔ５に戻って、引数Ｘの式表現から、第一項ｔｍ＝＜２×１＞ｄが削除される。さらに、処理Ｔ６では、第一項ｔｍから、第一因子ｆｃｔ＝＜２×１＞が削除され、Ｘ＝ｄが残る。その結果、処理Ｔ１３において、戻り値ｒｅｔ＝ａ（ｂ＋ｃ）＋ｄが設定される。【０１１２】
次に、処理Ｔ５に戻って、引数Ｘの式表現から、第一項ｔｍ＝｛２×２｝＜１×１＞ｅが削除される。また、処理Ｔ６では、第一項ｔｍから、第一因子ｆｃｔ＝｛２×２｝が削除される。次に、処理Ｔ１０において、第一因子ｆｃｔ＝（１×２）から戻り値ｒｅｔ＝ａ（ｂ＋ｃ）＋ｄ｛｝が設定される。さらに、処理Ｔ６に戻って、第一項ｔｍから、第一因子ｆｃｔ＝＜１×１＞が削除され、Ｘ＝ｅが残る。その結果、処理Ｔ１３において、戻り値ｒｅｔ＝ａ（ｂ＋ｃ）＋ｄ｛ｅ｝が設定される。【０１１３】
次に、処理Ｔ５に戻って、引数Ｘの式表現から、第一項ｔｍ＝｛２×２｝＜２×１＞ｆが削除される。その結果、Ｘ＝φとなる。また、処理Ｔ６では、第一項ｔｍから、第一因子ｆｃｔ＝｛２×２｝が削除される。【０１１４】
そして、処理は、Ｔ９およびＴ１０に進む。ただし、すでに、｛１×２｝に対応する因子が生成されているので、処理Ｔ１０では、新たな｛｝型因子は生成されない。そして、処理Ｔ６に戻って、第一項ｔｍから、第一因子ｆｃｔ＝＜２×１＞が削除され、Ｘ＝ｆが残る。その結果、処理Ｔ１３において、戻り値ｒｅｔ＝ａ（ｂ＋ｃ）＋ｄ｛ｅ＋ｆ｝が設定される。【０１１５】
（処理例１）
処理例１として、図１０に示すデータベースに対する処理を説明する。図１０のデータベースは、例えば、社員マスタと呼ばれる。図１０の表の各行がレコードに相当する。ただし、図１０で１行目は、説明行であり、実際のレコードではない。図１０で、社員マスタの各レコードは、コード、氏名、年齢、所属の各フィールドを有する。ここで、コード、氏名、年齢、所属は、各フィールドの属性ということができる。また、各フィールドに格納されるデータは値ということができる。例えば、社員名のフィールドに、”社員Ａ”が格納されているレコードを取得する場合、データベース管理システムに対して、社員名＝社員Ａという指定を行い、検索を実行する。この指定は、属性＝値による指定ということができる。【０１１６】
図１０のデータベースは、例えば、以下の式表現で記述できる。【０１１７】
社員×（社員コード×｛ε＋社員名＋所属＋年齢｝×（Ｋ１０×｛ε＋社員Ａ＋土木＋３０歳｝＋Ｋ１１×｛ε＋社員Ｂ＋建築＋２９歳｝＋・・・＋Ｋ２０×｛ε＋社員Ｐ＋土木＋３０歳｝＋・・・＋Ｋ３０×｛ε＋社員Ｘ＋建築＋３２歳｝＋・・・））
ただし、”・・・”は、省略を表す。上記式表現を位置表現で記述すると以下のようになる。ただし、数１では、社員Ａ、および社員Ｂ以外の位置表現式は、省略されている。
［数１］
<1×1>社員+(1×2)<1×1>社員コード+(1×2)[1×2]<1×1>+ (1×2)[1×2]<2×1>社員名+(1×2)[1×2]<3×1>所属+(1×2)[1×2]<4×1>年齢+(1×2)(1×3)<1×1>K10+(1×2)(1×3)[1×2]<1×1>+ (1×2)(1×3)[1×2]<2×1>社員Ａ+(1×2)(1×3)[1×2]<3×1>土木+ (1×2)(1×3)[1×2]<4×1>３０歳+(1×2)(1×3)<2×1>K11+(1×2)(1×3)[2×2]<1×1>+ (1×2)(1×3)[2×2]<2×1>社員B+(1×2)(1×3)[2×2]<3×1>建築+ (1×2)(1×3)[2×2]<4×1>２９歳+・・・
図１１に、数１で例示される式表現をリレーショナルデータベース（以下、ＲＤＢという）に格納したときの表を例示する。図１１では、第１行目は、説明行であり、実際のデータベースのレコードではない。図１１の第２行以下にデータベースのレコードが例示されている。図１１のデータベースで、それぞれのレコードは、第１のフィールドに絶対位置情報、第２列のフィールドに値を格納する。ここで、絶対位置情報は、それぞれの識別子の位置表現式である。また、値は、絶対位置情報のフィールドに格納されたそれぞれの位置表現式で特定される、式表現中の位置での識別子である。したがって、数１ような式表現から、それぞれの識別子の位置表現式を求めることにより、通常のＲＤＢ管理システムを利用して、位置表現式と、その位置表現式に対応する識別子との関係を取得できる。【０１１８】
ここで、例えば、「属性＝値」の指定例として、社員名＝社員Ａが指定され、その社員Ａの所属を取得するには以下のような手順で行えばよい。【０１１９】
（１）値が”社員名”の絶対位置情報を取得する。
すなわち、ＲＤＢ機能を利用して、値＝“社員名”の絶対位置情報を検索（select 絶対位置情報  where 値＝’社員名’）  すると、図１２のように、”(1×2)[1×2]<2×1>”という位置表現式と、”社員名”という識別子が取得できる。【０１２０】
（２）値が”社員Ａ”の絶対位置情報を取得する。【０１２１】
（２−１）次に、（１）で取得した位置表現式”(1×2)[1×2]<2×1>”から、“(1×2)(1×3)[*×2]<2×1>”を作成する。ここで、”(1×2)(1×3)[*×2]<2×1>”のうちの”(1×2)(1×3)”は、位置表現式”(1×2)[1×2]”の右側に隣接する３番目の因子であって（）型の因子を示している。なお、”(1×2)[1×2]”は、１番目の項中の２番目の因子であって、（）型の因子中で、１番目の項の２番目の因子であって｛｝型のものを示す。すなわち、｛ε＋社員名＋所属＋年齢｝の因子である。【０１２２】
また、”(1×2)(1×3)[*×2]”は、属性の因子｛ε＋社員名＋所属＋年齢｝に隣接する（）型の因子内での任意の項（*）の２番目の因子であって、かつ、｛｝型の因子を示す。すなわち、”[*×2]”は、｛ε＋社員Ａ＋土木＋３０歳｝＋｛ε＋社員Ｂ＋建築＋２９歳｝・・・の並びを示す。【０１２３】
さらに、”(1×2)(1×3)[*×2]<2×1>”は、｛ε＋社員Ａ＋土木＋３０歳｝＋｛ε＋社員Ｂ＋建築＋２９歳｝・・・の並びの中の｛｝内の第２項第１因子を示す。図１３は、社員で特定されるセルＩＤ、社員コードで例示されるキー属性、社員名を含む属性の因子、および属性に対応する値の因子を含む式表現と位置表現式との関係を例示する図である。【０１２４】
そして、ＲＤＢ機能で、絶対位置情報＝“(1×2)(1×3)[1×*]<2×1>”かつ値＝“社員Ａ”で検索すると、図１４のレコード、すなわち、“(1×2)(1×3)[1×2]<2×1>”という位置表現式と、その位置表現式の位置での識別子”社員Ａ”が得られる。【０１２５】
（２−２）このようにして得られた”(1×2)(1×3)[1×2]<2×1>”から関連情報を取得するために、“(1×2)(1×3)[1×2]＊”、“(1×2)(1×3)<1×1>”、“(1×2)｛1×２｝＊”、“(1×2)<1×1>”、”<1×1>” を作成し、それらから同様に検索を行うと、図１５のレコードが得られる。図１５は、社員名＝社員Ａの指定から得られた関連情報を例示する。【０１２６】
ここで、“(1×2)(1×3)[1×2]＊”は、識別子”社員Ａ”が含まれる｛｝内のすべての識別子を特定する。その結果、”社員Ａ”、”土木”、”３０歳”が得られる。“(1×2)(1×3)<1×1>”は、識別子”社員Ａ”が含まれる｛｝の左側に隣接する識別子Ｋ１０を特定する。“(1×2)｛1×２｝＊”は、“(1×2)(1×3)”の左側に隣接する｛｝型因子中のすべての識別子、すなわち、属性の列｛ε＋社員名＋所属＋年齢｝を特定する。また、“(1×2)<1×1>”は、キー属性である”社員コード”という識別子が該当し、＜1×1＞には、”社員”という識別子が該当する。したがって、社員Ａに関連する情報を図１１に示すデータベースから取得できる。【０１２７】
図１６に、以上の処理を実行するアプリケーションプログラムの処理例を示す。ここでは、数１の式表現が、図６に示した変換関数によって、図１１のデータベースのレコードに変換されているとして説明する。この処理では、情報処理装置１００は、属性＝値の関係、例えば、社員名＝社員Ａについて、関連情報を取得する旨の指定を受け付ける（Ｕ１）。情報処理装置１００のＣＰＵ１２は、識別子の指定を受け付ける手段として、Ｕ１の処理を実行する。【０１２８】
すると、情報処理装置１００は、指定された属性に対応する位置表現式を取得する（Ｕ２）。例えば、図１２に例示したように、属性”社員名”に対して、”(1×2)[1×2]<2×1>”という位置表現式を取得する。情報処理装置１００のＣＰＵ１２は、指定識別子の位置表現式を取得する手段として、Ｕ２の処理を実行する。【０１２９】
次に、情報処理装置１００は、指定された属性を含む｛｝型の因子に隣接する（）型の因子内で、｛｝型の因子を含む項、およびその｛｝型の因子内での属性の位置を指定する位置表現式を作成する（Ｕ３）。例えば、情報処理装置１００は、位置表現式に対して、“(1×2)(1×3)[*×2]<2×1>”を作成する。Ｕ３の処理は、図１３に例示したように、データベースの構造に対応する式表現のスキーム、例えば、セル空間の定義である、社員×（社員コード×｛ε＋社員名＋所属＋年齢｝（・・・から導出可能である。すなわち、セル空間のキー属性（例えば、社員コード）および属性の並び（例えば、｛ε＋社員名＋所属＋年齢｝）の右側に隣接する（）型の因子から、項の並びを抽出し、それぞれの項の第２因子である｛｝型の因子を抽出すればよい。しかしながら、指定された属性を含む｛｝型の因子に隣接する（）型の因子内で、｛｝型の因子を含む項、およびその｛｝型の因子内での属性の位置を指定する位置表現式の入力をユーザのマニュアル入力としてもよい。例えば、テキスト入力インターフェースからユーザが位置表現式を入力してもよい。【０１３０】
次に、情報処理装置１００は、位置表現式を検索キーにしてデータベースを検索し、指定された属性値を含むレコードを取得する（Ｕ４）。そして、情報処理装置１００は、検索されたレコードの位置表現式を基に、属性値を共通の要素として含む｛｝型の因子に含まれる値、その｛｝型の因子の上位の値、およびそれらの値に対応する位置表現式を取得する（Ｕ５）。例えば、処理Ｕ４で取得された｛｝型の因子を含む項中の｛｝型因子で、属性”社員名”に対応する値が”社員Ａ”であるものを抽出する。また、その｛｝型の因子の上位の値、すなわち、｛｝型因子に隣接する識別子を取得する。また、情報処理装置１００は、式表現のキー属性、属性因子、およびセル空間のＩＤを取得する。さらに、取得した値に対応する位置表現式をデータベースから取得する。例えば、図１５に示したように、社員Ａの関連情報を取得する。【０１３１】
そして、情報処理装置１００は、Ｕ５の処理で取得した情報に、復元関数（図８参照）を実行する（Ｕ６）。以上の処理によって、属性＝属性値、例えば、社員名＝社員Ａについて関連情報を式表現の形式で取得する。情報処理装置１００のＣＰＵ１２は、関連識別子を取得する手段として、Ｕ３−Ｕ６の処理を実行する。そして、情報処理装置１００は得られた式表現を、インターフェース１６を通じて、例えば、出力部１４に出力する（Ｕ７）。【０１３２】
（処理例２）
数１において、所属が土木の社員の情報は、以下のように検索できる。【０１３３】
（１）値が”所属”の属性（絶対位置情報）を取得する。
この処理は、上記処理例１の（１）で”社員名”に代えて、”所属”を指定するものであり、処理の手順は、処理例１と同様である。【０１３４】
（２）値が”土木”の属性（絶対位置情報）を取得する。
この処理では、上記処理例１の代わりに、値＝”土木”として、処理例１との（２）と同様の処理を実行すると、図１７のようなレコードが取得される。そして、図１７で得られたそれぞれの位置表現(1×2)(1×3)[1×2]<3×1>、（1×2)(1×3)[10×2]<3×1>、（1×2)(1×3)[20×2]<3×1>から、関連情報を取得するための位置表現(1×2)(1×3)[1×2]*、（1×2)(1×3)[10×2]*、（1×2)(1×3)[20×2]*を作成し、ＲＤＢ機能により検索し、該当する｛｝型因子の位置表現を取得すればよい。また、取得した｛｝型の因子の上位の値、すなわち、｛｝型因子に隣接する識別子を取得すればよい。【０１３５】
すなわち、処理例２の場合には、Ｕ４の処理で検索される｛｝型の因子の数が複数個である点を除いて、処理手順は、図１６と同様である。すなわち、Ｕ５の処理で該当する数の｛｝型因子の位置表現を取得すればよい。以上の処理によって、土木に所属する社員（社員コードＫ１０、Ｋ２０、およびＫ３０）の関連情報が取得される。【０１３６】
（処理例３）
例えば、社員Ｂの所属を建築から営業に変更するには、以下の手順となる。すなわち、情報処理装置１００は、処理例１の（１）（２）と同様の手順によって、社員Ｂの情報を取得する。図１８に、社員Ｂの関連情報を例示する。【０１３７】
情報処理装置１００は、図１８のレコードのうち、変更する属性である「所属」のレコードから、<3×1>を取得する。そして、情報処理装置は、絶対位置情報＝“＊<3×1>”で図１８のレコードを検索すると、図１９のレコードが得られる。この処理は、図１８のように社員Ｂに絞り込まれた情報から、ＲＤＢの機能を用いて、所属に対応する<3×1>の絶対位置情報によって、さらに絞り込む処理に相当する。【０１３８】
処理例３では、図１６の処理によって取得された社員Ｂに関連する情報（図１８）から、さらに、変更対象の識別子を以下のように取得する。すなわち、変更対象の識別子が、式表現上で属性列｛ε＋社員名＋所属＋年齢｝中の”所属”に対応する識別子である場合、まず、ＲＤＢ中で、”所属”に対応する絶対位置情報(1×2)[1×2]<3×1>を取得する。そして、属性列に相当する｛｝型の因子の中の位置を示す位置表現式<3×1>を求める。さらに、”所属”に対応する絶対位置情報(1×2)[1×2]<3×1>のうち、｛｝型の因子の中の位置を示す位置表現式<3×1>以外の位置表現式を任意の位置を示す*に変更し、絶対位置情報＊<3×1>を作成する。そして、社員Ｂについて絞り込まれた情報（図１８）に対して、絶対位置情報＊<3×1>を用いて、さらに絞り込み検索する。このようにして、図１９に示す情報が得られる。そこで、得られたレコードから、識別子”建築”を”営業”に変更すればよい。その結果、ＲＤＢには、図２０のようなレコードが保存される。【０１３９】
（処理例４）
処理例３を式表現に対する商演算で実現する処理例を説明する。ここでは、まず、商演算について説明する。【０１４０】
＜商演算処理＞
商演算処理は、式表現を記述する集合から、指定された因子（識別子を含む）を含む式表現（項、あるいは要素）と、そのような因子を含まない式表現とに分離する処理である。商演算処理のアプリケーションインターフェースは、例えば、戻り値＝divide(商演算される式表現、商演算する因子、商の式表現、剰余の式表現)；のように定義できる。本実施形態で、商演算は、“商演算する因子”を含む式表現を取り出す処理となる。そのため、商演算する因子のことを、同値関係を指定する因子ともいう。【０１４１】
図２１Ａは、商演算処理（サブルーチン１）を実行する処理のフローを例示する。サブルーチン１は、商演算される式表現である式１、商演算する因子を入力され、商の式表現である式２を出力する。なお、図２２Ａは、商演算のうち、剰余を求める処理（サブルーチン２）を例示する。【０１４２】
まずステップ３０１では、商演算処理が実行される前の所定の表現形式によって表現される式１（“商演算される式表現”）、および商演算する因子（これを同値関係示す因子ともいう）ｐが入力される。以下、数１４により表現される対象情報が入力された場合について説明する。また、１を商演算する因子（同値関係を示す因子ｐ）と設定する。
［数３］
ｃｅｌｌ（ｉｄ｛ε＋Ａ＋Ｂ＋Ｃ｝（１｛ε＋ａ１＋ｂ１＋ｃ１｝＋２｛ε＋ａ２＋ｂ２＋ｃ２｝））；
次に、ステップＳ３０２では、ＣＰＵ１３は、演算後の商（商項ともいう、ここでは、項２で表す）を初期化する。このとき、項２の値は、Φ（空、または０）である。【０１４３】
次に、ステップＳ３０３では、ＣＰＵ１３は、式１の長さが０であるか否かを判定する。式１の長さが０である場合、ＣＰＵ１３は、サブルーチン１の処理を終了する。【０１４４】
一方、ステップＳ３０３の判定において、式１の長さが０でなかった場合、ＣＰＵ１３は、ステップ３０４に処理を進める。そして、ＣＰＵ１３は、式１から始めの項（以下、項１という）を取得する。ここで、項１は、数３の全体である。さらに、ステップＳ３０５において、ＣＰＵ１３は、式１から項１を削除する。【０１４５】
次に、ステップＳ３０６において、ＣＰＵ１３は、項１が因子ｐ（ここでは、“１”）を含んでいるか否かを判定する。ここで、因子ｐを含んでいるとは、項１の因子としては、あるいは、項１の括弧（第１の括弧“（）”または第２の括弧“｛｝”）で括られた因子内の項のいずれかに、因子ｐを含むことをいう。すなわち、項１の式表現中に因子ｐが含まれるか否かを判定する。項１が因子ｐを含んでいない場合、ＣＰＵ１３は、項１を空とし（Ｓ３０７）、処理をＳ３０３に戻す。【０１４６】
一方、ステップＳ３０６の判定において、項１が因子ｐを含んでいる場合、ＣＰＵ１３は、処理をＳ３０８に進める。そして、ＣＰＵ１３は、項３を初期化し、空とする。ここで、項３は、始めの項である項１の商演算結果を格納する変数（メモリ１２の領域）である。ここでは、数３の構成から、項１に因子ｐ（＝１）が含まれていると判定される。【０１４７】
そして、ステップＳ３０９において、ＣＰＵ１３は、項１の長さが０であるか否かを判定する（Ｓ３０９）。項１の長さが０でない場合、ステップＳ３１０において、ＣＰＵ１３は、項１から始めの因子（以下、因子１という）を取得する。数３の構成から、因子“ｃｅｌｌ”が取得される。そして、ステップＳ３１１において、ＣＰＵ１３は、項１から因子１を削除する。【０１４８】
次に、ステップＳ３１２において、ＣＰＵ１３は、因子１に商演算する因子ｐが含まれ、かつ、因子１が（第１の括弧“（）”または第２の括弧“｛｝”）によって形成された因子であるとき、その括弧内の式を式１に設定し、サブルーチン１を再帰呼び出しする。ここで、因子１に商演算する因子ｐが含まれ、かつ、因子１が括弧によって形成された因子であるとは、括弧内に、項あるいは因子としてｐが含まれる場合である。なお、括弧外に、因子ｐが含まれる場合には、ＣＰＵ１３は、処理Ｓ３１３に制御を進める。そして、その再帰呼び出しによる処理結果を因子１とする。この処理によって、商演算される式中で、項に“（）”による因子を含む場合は、その項は、（）内の式が商演算されることになる。数３の構成の場合、“ｃｅｌｌ”が因子１の場合には、Ｓ３１２は、実行されない。また、ｃｅｌｌの次の因子（ｉｄ｛ε＋Ａ＋Ｂ＋Ｃ｝（１｛ε＋ａ１＋ｂ１＋ｃ１｝＋２｛ε＋ａ２＋ｂ２＋ｃ２｝））が、因子１の場合には、Ｓ３１２により、再帰呼び出しが実行されることになる。その結果、式表現中に因子ｐ（この例では、１）を含む因子が抽出されることになる。【０１４９】
さらに、ステップＳ３１３によって、ＣＰＵ１３は、項３に対し因子１を積演算し、結果を項３とする。この処理によって、因子１に商演算される因子ｐが含まれる場合、そのまま項３に積演算されることになる。また、因子１が（）の形式の因子の場合に、（）内から因子ｐを含む項が取り出されることになる。そして、ＣＰＵ１３は、処理をＳ３０９に戻す。【０１５０】
ステップＳ３０９の判定で、項１の長さが０となった場合、ＣＰＵ１３は、処理をステップＳ３１４に進める。そして、ＣＰＵ１３は、項２（商項）に対して、得られている項３を和演算する。さらに、ステップＳ３１５の処理で、ＣＰＵ１３は、項２を商演算後の式である式２に設定する。その後、ＣＰＵ１３は、処理をＳ３０２に戻す。【０１５１】
そして、Ｓ３０２の判定で、式１の長さが０になると、ＣＰＵ１３は、サブルーチン１の処理を終了する。このような処理により、式２に、以下の数４の式表現が出力され、アプリケーションプログラムに引き渡される。なお、Ｓ３０７において、項１が｛｝内の項のとき、零元を項２に加算するようにしてもよい。この場合には、例えば、｛ａ×ｂ＋ｃ＋ｄ｝を因子ａで商演算すると、｛ａ×ｂ＋＋｝のように、因子ａを含まない項を零元とする式が商演算後の式として、出力される。
［数４］
ｃｅｌｌ×ｉｄ｛ε＋Ａ＋Ｂ＋Ｃ｝×１｛ε＋ａ１＋ｂ１＋ｃ１｝；
図２１Ｂおよび図２１Ｃに、数３の式表現に対して、サブルーチン１が実行された場合の式１、項１、項２、項３、因子１、および式２の変化を示す。図２１Ｂおよび図２１Ｃの第１行目は、各列の要素、すなわち、図２１Ａ中の該当する処理を示す番号、式１、項１、項、項３、因子１、および式２を示している。第２行以下の各行は、一連の処理ステップであり、図２１Ｂ上から下へ、さらに、図２１Ｃの上から下へ実行される。【０１５２】
そして、まず、ステップＳ３０１で、共通関数へのパラメータを介して、式１である数３が入力され、メモリ１２に保持される。【０１５３】
項１、因子１および項３に着目すると、これらのうち、“ｃｅｌｌ”および、ｉｄ｛ε＋Ａ＋Ｂ＋Ｃ｝（１｛ε＋ａ１＋ｂ１＋ｃ１｝＋２｛ε＋ａ２＋ｂ２＋ｃ２｝）が順次サブルーチン１で処理されることが分かる。【０１５４】
さらに、ｉｄ｛ε＋Ａ＋Ｂ＋Ｃ｝（１｛ε＋ａ１＋ｂ１＋ｃ１｝＋２｛ε＋ａ２＋ｂ２＋ｃ２｝）が因子１としてＳ３１２で処理されるときに、再帰呼び出しが発生する。そして、同様に、“ｉｄ”、｛ε＋Ａ＋Ｂ＋Ｃ｝、および（１｛ε＋ａ１＋ｂ１＋ｃ１｝＋２｛ε＋ａ２＋ｂ２＋ｃ２｝）がサブルーチン１の再帰呼び出し１で処理される。【０１５５】
さらに、（１｛ε＋ａ１＋ｂ１＋ｃ１｝＋２｛ε＋ａ２＋ｂ２＋ｃ２｝）が、Ｓ３１２で処理されるときに、再帰呼び出し２が発生する。そして、同様に、１｛ε＋ａ１＋ｂ１＋ｃ１｝については、商演算する因子“１“が含まれているので、Ｓ３０６で、ＹＥＳの判定がなされる。そして、Ｓ３１３によって、１と｛ε＋ａ１＋ｂ１＋ｃ１｝とが項３に積演算される。【０１５６】
一方、２｛ε＋ａ２＋ｂ２＋ｃ２｝については、商演算する因子“１”が含まれていないので、Ｓ３０６で、ＮＯの判定がなされる。その結果、これらの因子は、Ｓ３０７において、Φに設定され、削除される。その結果、再帰呼び出し２で商演算の結果、式２として出力されるのは、１｛ε＋ａ１＋ｂ１＋ｃ１｝となる。【０１５７】
さらに、再帰呼び出し１では、Ｓ３１３の処理で、項３に積演算されていたｉｄ｛ε＋Ａ＋Ｂ＋Ｃ｝と再帰呼び出し２での商演算の結果である１｛ε＋ａ１＋ｂ１＋ｃ１｝とが、積演算され、ｉｄ｛ε＋Ａ＋Ｂ＋Ｃ｝（１｛ε＋ａ１＋ｂ１＋ｃ１｝）が、式２として出力される。【０１５８】
さらに、そして、再帰呼び出し１の前に、項３に積演算されていたｃｅｌｌと、再帰呼び出し１による商演算の結果が積演算され、数４が式２として、最終的に出力されることになる。【０１５９】
次に、図２２Ａにより、剰余を求める処理（サブルーチン２）を説明する。サブルーチン１を実行するＣＰＵ１３が本発明の剰余演算部に相当する。サブルーチン２は、商演算される式である式１、商演算する因子ｐを入力され、剰余の式３を出力する。【０１６０】
まずステップ３２１では、商演算処理が実行される前の所定の表現形式によって表現される式１（“商演算される式”）、および商演算する因子（同値関係示す因子ｐ）が入力される。以下、図２１Ａの場合と同様、数３により表現される対象情報が入力された場合について説明する。また、１を商演算する因子（同値関係ｐ）と設定する。【０１６１】
次に、ステップＳ３２２では、ＣＰＵ１３は、演算後の式（ここでは、式３と呼ぶ）を初期化する。このとき、式３の値は、Φ（空、または０）になる。【０１６２】
次に、ステップＳ３２３では、ＣＰＵ１３は、式１の長さが０であるか否かを判定する。式１の長さが０である場合、ＣＰＵ１３は、サブルーチン１の処理を終了する。【０１６３】
一方、ステップＳ３２３の判定において、式１の長さが０でなかった場合、ＣＰＵ１３は、ステップ３２４に処理を進める。そして、ＣＰＵ１３は、式１から始めの項（以下、項１という）を取得する。さらに、ステップＳ３２５において、ＣＰＵ１３は、式１から項１を削除する。【０１６４】
次に、ステップＳ３２６において、ＣＰＵ１３は、演算後の項（以下、項４と呼ぶ）を初期化する。このとき、項４の値は、Φ（空、または０）になる。【０１６５】
次に、ステップＳ３２７において、ＣＰＵ１３は、項１の長さが０であるか否かを判定する。そして、項１の長さが０でない場合、ＣＰＵ１３は、ステップＳ３２８に処理を進める。そして、ステップＳ３２８において、ＣＰＵ１は、項１から始めの因子（因子１）を取得する。さらに、ステップＳ３２９において、ＣＰＵ１３は、項１から因子１を削除する。【０１６６】
次に、ステップＳ３２９において、ＣＰＵ１３は、因子１が因子ｐと等しいか否かを判定する。そして因子１が因子ｐと等しい場合、ステップＳ３３１において、ＣＰＵ１３は、因子１をΦ（空、または０）にする。【０１６７】
次に、ステップＳ３３２において、ＣＰＵ１３は、因子１が第１の括弧“（”と“）”とによって形成された因子であるとき、その括弧内の式を式１に設定し、サブルーチン２を再帰呼び出しする。そして、その再帰呼び出しによる処理結果を因子１とする。この処理によって、商演算される式中で、“（）”による因子を含む場合は、その因子は、（）がはずされ、内の式から剰余（すなわち、因子ｐを含まない項）が抽出されることになる。【０１６８】
さらに、ステップＳ３３３によって、ＣＰＵ１３は、項４に対し因子１を積演算し、結果を項４とする。この処理によって、因子１が商演算される因子ｐと異なる場合に、そのまま項３に積演算されることになる。また、因子１が（）の形式の因子の場合に、（）内から因子ｐを含まない項が取り出されることになる。そして、ＣＰＵ１３は、処理をＳ３２７に戻す。【０１６９】
ステップＳ３２７の判定で、項１の長さが０となった場合、ＣＰＵ１３は、処理をステップＳ３３４に進める。そして、ＣＰＵ１３は、式３（剰余項）に対して、得られている項４を和演算する。その後、ＣＰＵ１３は、処理をＳ３２３に戻す。【０１７０】
そして、Ｓ３２３の判定で、式１の長さが０になると、ＣＰＵ１３は、サブルーチン２の処理を終了する。このような処理により、式３に、以下の数５の式表現が剰余として出力され、アプリケーションプログラムに引き渡される。
［数５］
ｃｅｌｌ（ｉｄ｛ε＋Ａ＋Ｂ＋Ｃ｝（Φ＋２｛ε＋ａ２＋ｂ２＋ｃ２｝））；
図２２Ｂおよび図２２Ｃに、数３の式表現に対して、サブルーチン２が実行された場合の式１、項１、項４、因子１、および式３の変化を示す。図２２Ｂおよび図２２Ｃの第１行目は、各列の要素、すなわち、図２２Ａ中の該当する処理を示す番号、式１、項１、項、項４、因子１、および式３を示している。第２行以下の各行は、一連の処理ステップであり、図２２Ｂの表の上から下へ、さらに、図２２Ｃの表の上から下へ実行される。【０１７１】
そして、まず、ステップＳ３２１で、共通関数へのパラメータを介して、式１である数３が入力され、メモリ１２に保持される。【０１７２】
項１、因子１および項４に着目すると、これらのうち、“ｃｅｌｌ”および、ｉｄ｛ε＋Ａ＋Ｂ＋Ｃ｝（１｛ε＋ａ１＋ｂ１＋ｃ１｝＋２｛ε＋ａ２＋ｂ２＋ｃ２｝）が順次サブルーチン２で処理されることが分かる。【０１７３】
さらに、ｉｄ｛ε＋Ａ＋Ｂ＋Ｃ｝（１｛ε＋ａ１＋ｂ１＋ｃ１｝＋２｛ε＋ａ２＋ｂ２＋ｃ２｝）が因子１としてＳ３３２で処理されるときに、再帰呼び出しが発生する。そして、同様に、“ｉｄ”、｛ε＋Ａ＋Ｂ＋Ｃ｝、および（１｛ε＋ａ１＋ｂ１＋ｃ１｝＋２｛ε＋ａ２＋ｂ２＋ｃ２｝）がサブルーチン１の再帰呼び出し１で処理される。【０１７４】
さらに、（１｛ε＋ａ１＋ｂ１＋ｃ１｝＋２｛ε＋ａ２＋ｂ２＋ｃ２｝）が、Ｓ３３２で処理されるときに、再帰呼び出し２が発生する。そして、１｛ε＋ａ１＋ｂ１＋ｃ１｝については、商演算する因子“１”が含まれているので、Ｓ３３０で、ＹＥＳの判定がなされる。そして、Ｓ３３１によって、因子１にΦに設定され、因子１を含む項１全体がΦとなり、削除される。【０１７５】
一方、２｛ε＋ａ２＋ｂ２＋ｃ２｝については、商演算する因子“１”が含まれていないので、Ｓ３３０で、それぞれの因子１について、ＮＯの判定がなされる。その結果、これらの因子は、Ｓ３３３において、項４に積演算される。その結果、再帰呼び出し２の剰余演算の結果、式３として出力されるのは、２｛Φ＋ａ１＋ｂ１＋ｃ１｝となる。【０１７６】
さらに、再帰呼び出し１では、Ｓ３３３の処理で、項４に積演算されていたｉｄ｛ε＋Ａ＋Ｂ＋Ｃ｝と再帰呼び出し２での商演算の結果である２｛Φ＋ａ１＋ｂ１＋ｃ１｝とが、積演算され、ｉｄ｛ε＋Ａ＋Ｂ＋Ｃ｝（２｛Φ＋ａ１＋ｂ１＋ｃ１｝）が、式３として出力される。【０１７７】
さらに、そして、再帰呼び出し１の前に、項４に積演算されていたｃｅｌｌと、再帰呼び出し１による商演算の結果が積演算され、数５が式３として、最終的に出力されることになる。【０１７８】
＜商演算を用いて、式表現の値を取得し、変更する例＞
商演算を用いて、社員Ｂの所属を建築から営業に変更するには、以下の手順となる。すなわち、処理例１の（１）（２）と同様の手順によって、社員Ｂの情報を取得する。その結果、社員Ｂの関連情報の式表現として、以下の数６が得られる。
［数６］
社員×（社員コード×｛ε＋社員名＋所属＋年齢｝×（Ｋ１０×｛ε＋社員Ａ＋土木＋３０歳｝））；
さらに、数６の式表現を識別子”所属”で商演算することにより、以下の数７の式表現を取得する。
［数７］
社員×（社員コード×｛＋＋所属＋｝×（＋Ｋ１１×｛＋＋建築＋｝））；
そして、属性＝”所属”に対応する値＝”建築”を”営業” に修正する。その結果、以下の数８が得られる。
［数８］
社員×（社員コード×｛＋＋所属＋｝×（＋Ｋ１１×｛＋＋営業＋｝））；
修正された式表現を絶対位置情報へ変換して、以下の変更部分をＲＤＢに上書きする。ＲＤＢには、図２０に示したレコードが出力される。【０１７９】
（処理例５）
図２３に、ツリー構造を例示する。例えば、Ａ＝実行予算、Ｂ＝発注１、Ｃ＝発注２、Ｄ＝検収１１、Ｅ＝検収１２、Ｆ＝検収２１、Ｇ＝検収２２である。【０１８０】
さらに、例えば、Ｄ〜Ｇのそれぞれは、さらに、検収進捗状況を示す識別子を付与するようにしてもよい。Ｄ＝検収１１×Ｙ年Ｍ月Ｄ１日、Ｅ＝検収１２×Ｙ年Ｍ月Ｄ２日、Ｆ＝検収２１×未完、Ｇ＝検収２２×Ｙ年Ｍ年Ｄ日等である。さらに、Ｄ〜Ｇのそれぞれは、さらに、検収対象額を含むようにしてもよい。例えば、Ｄ＝検収１１×（Ｙ年Ｍ月Ｄ１日、ＭＭＭＭＭＭ円）等である。【０１８１】
ここで、Ｂ（例えば、発注１）について、部分集合（発注１に関連する予算の執行状況）を取得する処理は以下の通りである。まず、図２３のツリー構造は、次の式表現で記述できる。
［数９］A×(B×(D＋E)＋C×(F＋G))
情報処理装置１００は、数９の式表現を図６の変換関数で位置表現式に変換し、ＲＤＢに格納する。すると、図２４のようなデータベースのレコードが得られる。【０１８２】
さらに、情報処理装置１００は、値＝”Ｂ”でＲＤＢ機能を用いて検索し、図２５を得る。さらに、情報処理装置１００は、識別子”Ｂ”の位置表現式(1×2)<1×1>から、ツリー構造の下位方向（実施例１の場合、式表現の右方向）に隣接する要素を検索するための位置表現式(1×2)(1×2)*を生成する。(1×2)(1×2)は、(1×2)<1×1>に対して、右方向に隣接する（）型の因子を表す。すなわち、識別子”Ｂ”の位置表現式(1×2)<1×1>から、ツリー構造の下位方向に隣接する要素を検索するための位置表現式を生成できる。【０１８３】
そして、情報処理装置１００は、位置表現式(1×2)(1×2)*によって、図２４のデータベースを検索し、図２６のレコードを得る。さらに、情報処理装置１００は、識別子”Ｂ”の位置表現式(1×2)<1×1>から、ツリー構造の上位方向（実施例１の場合、式表現の左方向）に隣接する要素を検索するための位置表現式<1×1>を生成する。さらに、情報処理装置１００は、位置表現式<1×1>によって、図２１のデータベースを検索し、図２７のレコードを得る。【０１８４】
そして、図２４−図２７から得られた位置表現式を基に、識別子Ｂ、Ｄ、Ｅ、およびＡを組み合わせて、図８の復元関数を実行することによって、情報処理装置１００は、Ｂ（例えば、発注１）について、部分集合A×(B×(D＋E))を得る。したがって、例えば、ＤあるいはＥが、さらに、検収の状況、検収額等を含む式表現である場合には、情報処理装置１００は、Ｂ（例えば、発注１）に関する予算の執行状況を取得できる。【０１８５】
なお、得られた予算の執行状況を更新する手順は、処理例３、処理例４の社員Ｂの所属の変更手順と同様である。すなわち、情報処理装置１００は、処理例３、処理例４と同様の手順で、”未完”を検収日の日付に変更すればよい。また、情報処理装置１００は、処理例３、処理例４と同様の手順で、検収対象額を設定すればよい。【０１８６】
以上述べたように、本実施例の情報処理装置１００は、式表現を一旦、位置表現式（絶対位置情報ともいう）に変換し、式表現と位置表現式との関係を例えば、ＲＤＢのような既存のデータベースに格納する。その結果、例えば、既存のデータベースの機能を用いて、式表現に基づく位置表現式の検索、あるいは、位置表現式に基づく式表現の検索を実行できる。【０１８７】
したがって、例えば、データベースで、特定の属性に対する値の指定、例えば、属性”社員”に対する値”社員Ａ”のような指定を受け付け、社員Ａに関連する情報を取得することができる。社員Ａに関連する情報とは、例えば、｛ε＋社員Ａ＋土木＋３０歳｝のような式表現であり、”社員Ａ”と同一の｛｝型因子（属性因子ともいう）に含まれる情報として例示できる。【０１８８】
なお、処理例３のように、属性”所属”に対する値”土木”が指定された場合も、”土木”の関連情報は、”土木”と同一の｛｝型因子に含まれる情報ということができる。ただし、｛｝型因子が複数検索される結果となる。【０１８９】
さらに、本情報処理装置１００は、処理例３のように、位置表現式を基に取得した式表現を書き換え、データベースの機能を用いてデータベースに格納することにより、究極的には、式表現を書き換えることができる。その場合に、式表現から、特定の識別子に関連する情報に式表現を絞り込むために、式表現の商演算を用いてもよい。【０１９０】
さらに、情報処理装置１００は、ＲＤＢのような表形式に限定されず、図２３のようにツリー構造を式表現で記述しておき、式表現を一旦、位置表現式に変換しデータベースに格納することで、既存のデータベースの機能を用いて、式表現に基づく位置表現式の検索、あるいは、位置表現式に基づく式表現の検索を実行できる。ツリー構造の場合には、識別子に関連する情報は、指定された識別子に対して、ツリー構造の枝または葉に属する情報として例示できる。ただし、識別子に関連する情報は、指定された識別子に対して、ツリー構造の根（ルート）側に位置する情報としてもよい。【０１９１】
さらに、式表現から、指定された識別子、あるいは因子で商演算した結果を識別子に関連する情報としてもよい。また、式表現から、指定された識別子、あるいは因子で剰余演算した結果を識別子に関連する情報としてもよい。【０１９２】
（その他の変形例）
実施例１で述べた、式表現を示す記号、位置表現式を示す記号は、例である。したがって、例えば、和演算子、積演算子、集合因子構成演算子、順序因子構成演算子に代えて、他の記号を用いてもよい。また、位置表現＜ｉ×ｊ＞（ｉ×ｊ）｛ｉ×ｊ｝に代えて、他の記号を用いてもよい。【０１９３】
また、実施例１で述べた式表現、および、位置表現式の適用対象は、ＲＤＢ、ツリー構造に限定される訳ではない。例えば、トポロジー空間の情報、セル空間の情報、接着空間の情報に対して、実施例１で説明した処理を適用し、アプリケーションを提供すればよい。【０１９４】
また、アプリケーションは、式表現で含まれる識別子に関連する関連情報法を取得する処理に限定される訳ではない。実施例１に示した情報処理装置１００の機能は、これまで提案されていなかった新たなデータベースのデータ構造と、データ処理の手順を例示している。したがって、実施例１の技術は、利用者が取り扱う事物、組織、人などに関する現実世界の情報、あるいは利用者が取り扱う概念などのコンピュータ上での処理に適用できる。そのようなコンピュータ上の処理としては、例えば、事物、組織、人などに関する現実世界の情報、あるいは概念をコンピュータ上の情報として記述し、メモリ１２等の主記憶装置、ハードディスク等の外部記憶装置に格納し、データベースを構築し、格納した情報を抽出し、更新し、管理する技術一般に適用できる。すなわち、実施例１に係る情報処理装置１は、コンピュータ上の新たな情報の表現技術を例示する。
【符号の説明】
【０１９５】
１１    入力部
１２    メモリ
１３    ＣＰＵ
１４    出力部
１５、１６  インターフェース
１００    情報処理装置
【図１】
0005512817.tif 000002
【図２】
0005512817.tif 000003
【図３】
0005512817.tif 000004
【図４】
0005512817.tif 000005
【図５】
0005512817.tif 000006
【図６】
0005512817.tif 000007
【図７】
0005512817.tif 000008
【図８】
0005512817.tif 000009
【図９】
0005512817.tif 000010
【図１０】
0005512817.tif 000011
【図１１】
0005512817.tif 000012
【図１２】
0005512817.tif 000013
【図１３】
0005512817.tif 000014
【図１４】
0005512817.tif 000015
【図１５】
0005512817.tif 000016
【図１６】
0005512817.tif 000017
【図１７】
0005512817.tif 000018
【図１８】
0005512817.tif 000019
【図１９】
0005512817.tif 000020
【図２０】
0005512817.tif 000021
【図２１Ａ】
0005512817.tif 000022
【図２１Ｂ】
0005512817.tif 000023
【図２１Ｃ】
0005512817.tif 000024
【図２２Ａ】
0005512817.tif 000025
【図２２Ｂ】
0005512817.tif 000026
【図２２Ｃ】
0005512817.tif 000027
【図２３】
0005512817.tif 000028
【図２４】
0005512817.tif 000029
【図２５】
0005512817.tif 000030
【図２６】
0005512817.tif 000031
【図２７】
0005512817.tif 000032