以下に、本願技術の一実施形態の説明をする。以下の説明は、あくまでも一実施形態の説明であり、本願技術の範囲を制限するものではない。
図1の左側の図が、従来技術の知識ベースである。この図では、英語、日本語、中国語などの言語の中に従来技術の知識ベースが含まれる。従来技術の知識ベースは、言語の単語を保持しているので、言語と重なる部分が必ずある。従来技術の知識ベースは、言語との共通部分をなくし、言語の外側に生成することはできない。
また、現実の世界の中に犬や蛇などの対象物があり、現実の世界の中の対象物が言語の中の単語と直接つながっている。対象物は単語ではない。従来技術の知識ベースでは、言語内の単語で知識ベースが構成されている。従来技術の知識ベースは、言語の中に含まれる。図1では、単語「犬」は、データの源である現実の世界の対象物の犬に直接対応づけられている。
さらに、言語の中において、単語「犬」は対象物である犬を識別するだけでなく、対象物である犬の性質、特徴、意味あるいは概念を単語自身が直接含んでいる。「犬」という単語だけで、哺乳類、4本足など対象物である犬が持つ特徴、性質、意味あるいは概念がわかる。単語は、言語の中でだけで存在し、単語自身がその性質、特徴、意味あるいは概念を直接含んでいる。したがって、言語の中にある単語は、その単語だけでその単語の性質、特徴、意味あるいは概念を直接表わしている。現実の世界と言語とは、共通部分がない。そして、現実の世界の外に言語がある。対象物は、現実の世界の中だけにある。言葉や単語は、言語の中だけにある。言葉や単語は、対象物や対象物が持つ属性を直接識別する。さらに、言葉や単語は、その言葉や単語自身の意味を直接含んでいる。
図1の右側の図が、本願技術の一実施形態の知識ベースである。この知識ベースは、言語に含まれず、言語との共通部分もない。この知識ベースは言語の外にある。この知識ベースは、現実の世界の外にある。さらに、この知識ベースは、現実の世界と共通部分もない。この知識ベースでは、現実の世界の中の対象物その物から直接発せられた映像や音などの情報から生成された特徴データが、知識ベース内に格納され保持される。たとえば、単語ではない対象物の犬から直接発せられ、取得された犬の映像から生成された特徴データ(画像データ)が、知識ベースに格納され保持される。
言語内の単語が知識ベースシステムに入力されると、特徴抽出部によってその単語から識別データが生成され、知識ベースに格納され保持される。識別データは、単語ではない対象物から直接発せられた情報からは生成されず、言語内の単語から生成され発せられた情報から生成される。また、特徴データは、言語内の単語からは生成されず、対象物から直接発せられた情報から生成される。
現実の世界の中の対象物から直接発せられた映像や音などの情報から特徴データが生成され、知識ベースに格納される。対象物は単語ではない。また、知識ベース内に属性が生成され、格納された特徴データがその属性とつながる。さらに、知識ベース内に物が生成される。単語ではない対象物から直接発せられた情報を受け取り、受け取った情報から入力データが生成され、入力データから特徴データが生成され、生成された特徴データと属性がつながり、さらに、その属性と生成された物とがつながる。知識ベース内では、特徴データとつながる属性と、物とのつながりは、知識ベースシステムによって作られる。
この知識ベース内では、特徴データ同士は直接つながらない。同じ属性につながる特徴データ同士でも、各特徴データは、それぞれが一旦属性につながり、その属性を介して他の特徴データとつながっている。識別データも同様で、識別データ同士は直接つながらない。同じ属性につながる識別データ同士でも、各識別データは、それぞれが一旦属性につながり、そのつながっている属性を介して他の識別データとつながっている。特徴データと識別データも直接つながらない。同じ属性につながる特徴データと識別データでも、特徴データは、一旦属性につながり、そのつながっている属性を介して識別データとつながっている。
物、属性および特徴データについて、(1)物同士だけを直接つないだ図形、(2)物と属性とだけを直接つないだ図形、(3)属性と特徴データとだけを直接つないだ図形の3種類の図形を作る。この3つの図形を組み合わせて情報を体系化し、知識とする。物や属性そのものには意味はない。図2Aの第1階層の図形で、属性は、特徴データに直接つながることにより、意味を持つ。意味は概念でもある。図3の第2階層の図形で、物は、属性と直接つながることにより、物の性質、特徴、意味または概念が定まる。図4の第3階層の図形で、物と物がつながることにより、物と物との関係が表わされる。
第1階層内において、属性と特徴データとは、物、他の属性、識別データ、および他の特徴データを介さずにつながっている。このような属性と特徴データとのつながり方を、属性と特徴データとが直接つながると記述する。第1階層内において、属性と識別データとは、物、他の属性、他の識別データ、および特徴データを介さずにつながっている。このような属性と識別データとのつながり方を、属性と識別データとが直接つながると記述する。同様に、第2階層内において、物と属性とは、他の物、他の属性、識別データ、および特徴データを介さずにつながる。このような物と属性とのつながり方を、物と属性とが直接つながると記述する。同様に、第3階層内において、物と物とは、他の物、属性、識別データ、および特徴データを介さずにつながっている。このような物と物とのつながり方を、物と物とが直接つながると記述する。さらに、物と識別データとが、他の物、属性、他の識別データ、および特徴データを介さずにつながることがある。このような物と識別データとのつながり方を、物と識別データとが直接つながると記述する。同様に、物と特徴データとが、他の物、属性、識別データ、および他の特徴データを介さずにつながることがある。このような物と特徴データとのつながり方を、物と特徴データとが直接つながると記述する。
また、図2Bの第1階層の図形で、属性は、識別データと直接つながることにより、その識別データで識別される。識別データだけが直接つながる属性が物につながっていると、識別データによって、識別データが直接つながる属性が取得でき、取得された属性に直接つながる物が取得できる。識別データによって、識別データに直接つながる属性とその属性に直接つながる物とが取得できるだけである。本願技術の一実施形態の知識ベースの外にある言語と、本願技術の一実施形態の知識ベース内の物及び属性とを対応づけるためだけに識別データは用いられる。
ここで、属性識別子と識別データとは、いずれも、属性の識別情報であり、かつ、コンピュータ(知識ベースシステム)による識別を支援する情報である点で共通する。しかしながら、属性識別子は属性に対応づけられる情報(データ)であり、識別データは言葉あるいは単語に対応づけられる情報(データ)である点で相違する。また、特徴データと識別データとは、属性の具体例(インスタンス)という点で共通する。しかしながら、特徴データは属性の実体であり、識別データはコンピュータ(知識ベースシステム)が属性を識別するためのデータである点で相違する。さらに、言葉および単語は、人間による識別を支援する情報(データ)である。言葉および単語の概念的な集まりが、「言語」あるいは「言語の世界」である。
この3つの図形を組み合わせて情報を体系化し、知識とする。物と属性とだけを直接つなぎ対応づけた図形が、図3に示される第2階層の図形である。この階層では、1つの物に対して0個以上の属性が直接対応づけられる。1つの物に直接対応づけられる属性の数は、1つに限定されない。この階層では、物同士はつながらない。物だけを直接つないで対応付けた図形が、図4に示される第3階層の図形である。この階層では、物と属性とはつながらない。この物同士だけのつながりは、直線、環状、木構造、ネットワーク構造など、さまざまなつながり方ができる。
属性と特徴データとだけを直接つなぎ対応付けた図形が、図2Aに示される第1階層の図形である。属性そのものは、意味を直接持っていない。属性と特徴データとが直接つながることにより、属性が意味を持つ、あるいは属性の意味が生成される。属性と特徴データとが直接つながることにより、概念が生成されると解釈することもできる。たとえば、裏返しになったシャツの映像から生成された特徴データが属性に直接つながり、「裏返し」という意味あるいは概念が生成される。
1つの属性が、複数の特徴データと直接つながることがある。このようにすると複数の特徴データから1つの意味あるいは1つの概念を生成することができる。たとえば、ロマネスク様式を表わす属性は、ロマネスク様式の複数の建物の映像から生成された複数の特徴データが直接つながる。1つの属性に直接対応づけられる特徴データの数は、1つに限定されない。
1つの特徴データが複数の属性と直接つながることがある。1つの特徴データに直接対応づけられる属性は、1つに限定されない。このようにすると、1つの特徴データのさまざまな側面に対応する概念である属性をそれぞれ生成できる。たとえば、焚き火の映像の特徴データがある属性に直接つながり、焚き火の色という概念が生成される。また、焚き火の映像の特徴データが別の属性に直接つながり、焚き火の暖かさという概念が生成される。このように考えると、実物大の焚き火の映像を見て暖かさを感じることがあることを、説明できる。
物そのものは、意味を持っていない。物に直接つながり、対応づけられた属性によって物の性質、特徴、意味あるいは概念が定まる。
第1階層の上に第2階層がつながり、第2階層の上に第3階層がつながる。3つの階層がつながった図が、図5である。例えば、図5に示されるように、この3階層構造を人間の脳に対応させて考えると、1つの属性が1つの神経細胞に対応し、1つの物が1つの神経細胞に対応する。目、舌、鼻などの感覚器官から形、味、香などの、現実の世界の中の対象物である物から直接発せられた、情報を受け取る。脳内の特徴抽出部は、受け取った情報から特徴を抽出し、抽出された特徴を脳内の記憶領域に特徴データとして格納し、保持する。形、香、味などさまざまな特徴が特徴データとして保持される。脳内の属性領域の属性である神経細胞が特徴データとつながり、意味あるいは概念が生成される。属性が、脳内の物領域の物である神経細胞とつながることにより、物の性質、特徴、意味あるいは概念が定まる。
1つの特徴データが複数の概念を生成することがある。炎の映像の特徴データが知識ベース内にあるとする。この特徴データは、ある属性とつながり、炎の色という概念を生成する。また、同じ特徴データは、別の属性とつながり、暖かさという概念を生成する。暖炉で火が燃える絵を見ただけで暖かさを感じることがあるが、このように考えると説明できる。
1つの属性が複数の特徴データとつながってできた概念もある。酸味という特徴データとつながった属性があるとする。レモンの映像の特徴データがこの酸味の属性とつながり、酸味という概念を生成する。青いりんごの映像の特徴データと上述の酸味という属性とがつながることもある。レモンを見るだけで酸味を感じて唾液が出ることがあるが、このように考えると説明できる。このように、異なる複数の特徴データが、1つの同じ属性につながり、1つの概念を生成することがある。
前述の3階層構造は、単語から生成された識別データを使わずに知識を表現し、蓄積し、その知識を体系化することができる。言葉を持たない動物でも、この方法を使えば知識を体系的に保持し、推論などの知識処理ができる。
言葉が使えるならば、文字で表わされた単語の映像、又は音声で表わされた単語の音などから生成された識別データを保持し、その識別データと属性とをつなぎ、対応づけることもできる。識別データと直接つながった属性に特徴データが直接つながっていれば、識別データの元になった言語内の単語と、その属性につながった特徴データとが、その識別データとその属性を介して間接的に対応づけられる。識別データと直接つながった属性に特徴データが直接つながっておらず、その属性に直接つながる物があれば、その識別データの元になった言語内の単語と、その属性に直接つながった物とが、その識別データとその属性を介して間接的に対応づけられる。もちろん、識別データが直接1つの物につながることも可能である。
しかし、同じ単語の文字の映像から生成された識別データ、又は同じ単語の音声から生成された識別データを1つの同じ属性に直接つなぐことにより、1つの属性が複数の識別データを束ねて代表する方が便利である。音声から生成された識別データが直接つながる属性に、文字の映像から生成された識別データが直接つながっていれば、他の属性を取得することなく、文字の映像から生成された識別データをすぐに取得できる。音声から文字への変換がすばやく行える。たとえば、音声から生成された識別データが直接つながる属性を取得し、次に、その属性につながる文字の映像から生成された識別データを取得できる。
このように、識別データは、識別データの元になった言語内の単語と、知識ベース内の物や属性とを対応づける。しかし、映像や音声などで表わされた単語の識別データと、属性や物を対応づけているだけである。識別データは、性質、特徴、意味あるいは概念を直接表わす、あるいは、生成するものではなく、知識ベース内で属性や物を識別するだけである。
対象物そのものから直接発せられる情報を感覚器官を使って受け取り、受け取ったデータから抽出された特徴である特徴データが性質、特徴、意味あるいは概念の源である。単語から生成された識別データと物とを直接つなぐこともできる。
特徴データまたは識別データが直接物につながる場合は、それらによって物が直接識別される。ある特徴的な特徴データまたは識別データによって物を素早く識別したい場合に、特徴データあるいは識別データと物とを直接つなげばよい。この場合、物に直接つながる特徴データまたは識別データは1つに限られず、複数の特徴データまたは識別データが物に直接つながってもよい。物に直接つながる特徴データまたは識別データが、同時に属性に直接つながり、その特徴データが、意味や概念を生成することもできる。
部屋の中に人がいる映像から生成された特徴データがあるとする。この特徴データが属性とつながり、その属性がある物につながっているとする。また、その物が人という属性とつながっているとする。この属性は、たとえば人の映像から生成された特徴データとつながっている。
前述の特徴データと属性と物とのつながりは、「人が部屋の中にいる」ということを表わす。「人が宇宙の中にいる」という表現は、いまひとつ意味がはっきりしない。これは、「宇宙の中にいる」を表わす具体的な特徴データが無く、属性が1つの特徴データともつながっていないからだと考えることができる。「宇宙の中にいる」という概念が生成されていないからだと説明することもできる。もちろん、「人が部屋の中にいる」という特徴データと星空の映像とから生成された特徴データをその属性とつなぐことによって、「宇宙の中にいる」という概念を仮に生成することもできる。類推という思考方法が、これに相当する。
特徴データと属性とを指定し、指定された特徴データと属性とをつなぐように知識ベースシステム外から知識ベースシステムの学習部へ指示を出し、学習部に指定された特徴データと指定された属性とをつながせて学習を行わせることができる。
人間の脳は、内出血などにより脳の一部が働かなくなっても、脳の他の部位が働かなくなった部位の代わりに働くことがある。これは、働かなくなった神経細胞の代わりに、他の神経細胞を物につなぎ変えることにより、他の神経細胞が同じ役割を担うと考えると説明できる。
前述の3階層構造は、この脳の振る舞いを真似ることができる。物および属性が神経細胞に相当する。物および属性それ自体には意味がなく、物および属性は、物や属性の意味を持たない単なる識別子で識別されるだけである。別の物や属性につなぎかえても、つなぎかえる前と同じ対応付けをあらわすことができる。
単一の形式の識別子で、すべての物を識別することができる。単一の形式の識別子で、すべての属性を識別することができる。単一の形式の識別子で、すべての特徴データと識別データとを識別することができる。単一の形式の識別子で、すべての物とすべての属性とすべての特徴データと識別データとを識別することもできる。2種類の形式の識別子でも、3種類の形式の識別子でもかまわない。4種類以上の形式の識別子を使うことも可能であるが、仕組が複雑になるだけである。
2つ以上の神経細胞を1組にして、1つの属性や1つの物に対応させる方法もあり得る。1つの属性や1つの物に対応する複数の神経細胞のうち少なくとも1つにつながっていれば、全体として正常に動作する。
識別データと特徴データの両方を、1つの属性につなぐことができる。識別データだけとつながる属性と、特徴データだけとつながる属性の2種類の属性だけを作ることもできる。
識別データだけにつながる属性と特徴データにだけつながる属性とが、1つの物につながっているとする。たとえば、耳で聞いた単語の音声から生成された音声の識別データと一致する識別データが知識ベース内にあると、その一致する識別データと直接つながる属性を取得し、その属性に直接つながる物を取得する。さらに、その物に直接つながる他の属性を取得し、取得された属性に直接つながっている特徴データを取得すれば、その単語が表わす物の性質、特徴、意味あるいは概念を知ることができる。これは、連想に相当する働きである。また、1つの単語から識別データが生成され、生成された識別データが1つの属性に直接つながり、その属性をいくつかの異なる物に直接つなぐと、1つの識別データで異なる物を表わせる。これは多義語に相当する。
識別データと特徴データとが同じ属性に直接つながることも可能である。この場合、識別データに直接つながる属性を取得し、取得された属性に直接つながる特徴データを取得する。取得された特徴データは、その識別データの元になった単語が直接含む性質、特徴、意味または概念を表わす。
ひとつの単語から生成された識別データが複数の異なる属性に直接つながると、ひとつの単語から生成された識別データが、複数の意味あるいは概念に対応づけられる。これも多義語に相当する。識別データが物に直接つながっていると、識別データによって物を直接選択し、識別できる。属性を取得することなく物を取得できるので、より早く物を取得できる。
重要なことは、本願技術の一実施形態の知識ベースシステムを使うと、識別データなしで、知識を蓄積し、認識や推論などの知識処理ができるということである。
言葉を用いない動物は、外界から受けた入力情報を、文字や音声などの単語から生成された識別データを用いないで蓄積し、蓄積された情報をもとにして出力情報を生成する仕組みを持っていると想像される。これを、本願では第4の情報処理と呼ぶ。第4の情報処理は、第2の情報処理と第3の情報処理との間に位置づけられる。本願技術の一実施形態の知識ベースシステムは、第4の情報処理を行うことができる。
第2の情報処理と第3の情報処理との間に、大雑把ではあるが、第3の情報処理よりも少ない処理で、可能性のある結論を得ることのできる情報処理の仕組があると考えられる。本願では、これを第4の情報処理と呼ぶ。本願技術を使う一実施形態の知識ベースシステムでは、3階層構造で表現された知識を構築し、第4の情報処理が可能になる。
物と属性と識別データとだけから成る知識ベースを使って、知識を蓄積し、知識処理をすることもできる。この場合の知識ベースシステムは、性質、特徴、意味あるいは概念を含まない。物や属性は、識別データだけで識別され、特徴データに対する処理を行わないので、より速く処理ができ、処理の負荷も小さくできるという特徴がある。知識ベースが特徴データを含んでいても、物と属性と識別データとだけを使って推論などの知識処理を行うことは可能である。
例えば、東京の都心を餌場にするカラスは、深夜や早朝に出されたゴミ袋を破り、食べ物をあさっている。袋からゴミが散乱し、美観を損なっている。人間は、袋の色を変え中身を見えにくくしたり、袋にカラスの嫌がる成分を加えたりして対策を行っている。しかし、カラスは、人間が行った対策を乗り越えて袋の中のゴミをあさり続けている。カラスが学習をして人間と知恵比べをしているように見える。カラスの例で見られるような学習を、第3の情報処理で行っているとは考えにくい。第3の情報処理より簡便な方法で、学習を行っていると考えるのが自然である。本願では、これを第4の情報処理と呼ぶ。前述の3階層構造で表現された知識を構築すると、第4の情報処理が可能になる。
ここまで、第4の情報処理に関する仮説を説明してきた。次に、コンピュータシステムを使って、この仮説の情報処理を行う方法を説明する。
図面を参照しながら、コンピュータシステムを使った、本発明のより具体的な実施形態の一例を以下に説明する。
図6は、本願技術の一実施形態である知識ベースシステム1000である。図6に示されるように、入力装置として、カメラ、マイク、赤外線センサ等がコンピュ−タに接続されている。そして、図7に示されるコンピュータが、図6の知識ベースシステム1000で使われている。
図7は、コンピュータの概念図である。図7に示されるコンピュータは、入力装置1と、演算装置(Central Processing Unit:CPU)2と、通信装置3と、外部記憶装置5と、主記憶装置6と、補助記憶装置7とを備える。
演算装置2は、例えば、補助記憶装置7に指示を出し、補助記憶装置7に保存されているプログラム9と、プログラム9が使うデータ10とを主記憶装置6に読み込む。また、演算装置2の指示で、主記憶装置6内のプログラムやデータを補助記憶装置7に保存する。演算装置2は、外部記憶装置5に指示を出し、外部記憶装置5内に保存されているデータ12やプログラム11を主記憶装置6に読み込む。また、演算装置2の指示で、主記憶装置6内のプログラムやデータを外部記憶装置5に保存する。
入力装置1は、キーボード、マウス、画像を読み込むスキャナ、カメラ、マイク、温度センサ、圧力センサなどが含まれる。画像、音、温度などのアナログデータは、デジタルデータに変換される。出力装置8は、平面ディスプレイなどの表示装置、プリンタ、音を出力する装置(スピーカ)、リレー接点、機器を制御する装置などが含まれる。
演算装置2は、通信装置3に指示を出し、ネットワーク4を介して、図外の他のコンピュータや図外の装置と通信をする。演算装置2は、補助記憶装置7のプログラム9又は外部記憶装置5のプログラム11を主記憶装置6に読み込むと、読み込んだプログラム9、11に記述された手順で処理を行う。プログラム9、11には、演算のほか、入力装置1からの入力、出力装置8への出力、通信装置3を使った通信、主記憶装置6とのデータの読み書き、補助記憶装置7や外部記憶装置5とのデータの読み書きの処理手順が含まれる。
知識ベースプログラム13は、本願技術を使った論理演算や知識の集まりや知識ネットワークの処理を行うプログラムである。リレーショナルデータベース14は、補助記憶装置7又は外部記憶装置5に表形式のデータ10、12を作成し、作成された表に対してデータを追加・検索・参照・更新・削除の処理を行う。知識ベースプログラム13は、リレーショナルデータベース14を利用して、表に対してデータを追加、検索、参照、更新、削除する。
図8は、本発明の一実施形態に係る知識ベースシステム1000の機能ブロック図である。図8に示される各機能ブロックは、例えば、図4に示される補助記憶装置7に知識ベースプログラム13として記憶されている。補助記憶装置7のプログラム9内に知識ベースプログラム13があり、その知識ベースプログラム13内に、例えば、データ入力部1010、特徴抽出部1020、データ比較部1030、データ格納部1040、学習部1050、検索部1060、演算部1070、及び出力部1080として機能するプログラムがある。プログラム9が、主記憶装置6に読込まれ、演算装置2によって実行される。データ入力部1010及び出力部1080も主記憶装置6に読込まれ、演算装置2によって実行される。
データ入力部1010は、以下のようにして自動的にカメラで映像データを取得し、マイクで音データを取得する。例えば、赤外線センサによって人や動物がカメラの前にいると判断されると、それがトリガとなってカメラで映像データを取得し、マイクで音データを取得する。また、人間がマウスクリックなどの操作をすることを起因として、カメラで映像データを取得し、マイクで音データを取得してもよい。
特徴抽出部1020は、データ入力部1010に入力された入力データから、特徴データまたは識別データを生成する。
データ比較部1030は、特徴抽出部1020で抽出された特徴データ(又は、識別データ)と、既にデータ10(又は、データ12。以下同じ。)に記憶されている特徴データ(又は、識別データ)とを比較する。
データ格納部1040は、特徴抽出部1020で新たな特徴データ又は識別データが生成された場合に、当該新たな特徴データ又は識別データをデータ10に格納する。また、データ格納部1040は、新たな属性の属性識別子を生成し、当該新たな特徴データ又は識別データと対応付けてデータ10に格納する。さらに、データ格納部1040は、新たな物の物識別子を生成し、当該新たな属性の属性識別子と対応付けてデータ10に格納する。
なお、データ格納部1040は、実際には、新たな特徴データ又は識別データをデータ10に格納するように、リレーショナルデータベース14に依頼する。データ10にアクセスする他の構成要素(検索部1060、演算部1070等)についても、リレーショナルデータベース14に対して、データの追加、検索、参照、更新、削除等の処理を依頼し、処理結果をリレーショナルデータベース14から取得する。しかしながら、以降の説明では、簡単のためにリレーショナルデータベース14の処理に関する記述を省略する。
以下に、外部から取得した入力データに基づいて、特徴データ又は識別データを新たにデータ10に登録する際のデータ入力部1010、特徴抽出部1020、データ比較部1030、及びデータ格納部1040の動作を説明する。
データ入力部1010は、対象物から直接発せられた映像データや音データなどの入力データを取得する。データ入力部1010によって取得された映像データ又は音データなどの入力データは、特徴抽出部1020で特徴が抽出され、特徴データまたは識別データになる。特徴データまたは識別データは、いくつかの処理を経たあと、データ10にある知識ベースに格納される。
具体的には、特徴抽出部1020は、データ入力部1010から取得した入力データから特徴データを抽出し、抽出した特徴データをデータ比較部1030に渡す。データ比較部1030は、すでにデータ10に格納されている特徴データと渡された特徴データとを比較し、同じ特徴データがあるかどうかを調べる。
同じ特徴データがない場合、データ格納部1040は、その特徴データを知識ベースに格納し、知識ベース内に属性を生成し、格納された特徴データと生成された属性とを直接つなぐ。さらに、データ格納部1040は、物を生成し、生成された物を生成された属性と直接つなぐ。また、同じ識別データがない場合、データ格納部1040は、生成された識別データを知識ベースに格納し、知識ベース内に属性を生成し、格納された識別データと生成された属性とを直接つなぐ。さらに、データ格納部1040は、物を生成し、生成された物を生成された属性と直接つなぐ。
いくつかの特徴データが直接つながったひとつの属性は、つながったすべての特徴データを束ねて集約することにより、つながったすべての特徴データを代表し、性質、特徴、意味あるいは概念を表わしている。特徴データがひとつだけつながったひとつの属性も、その特徴データの性質、特徴、意味あるいは概念を代表し表わしている。属性につながる特徴データは、ひとつに限定されない。
いくつかの識別データだけが直接つながったひとつの属性は、つながったすべての識別データを束ねて集約することにより、つながったすべての識別データを代表している。属性につながる識別データは、ひとつに限定されない。
上記の処理を、コンピュータに実行させる場合の具体例を、図9及び図10を参照して説明する。なお、図9は、属性識別子と特徴データとの対応表の例を示す図である。図10は、物識別子と属性識別子との対応表の例を示す図である。
図9に示される属性識別子と特徴データとの対応表には、属性識別子と特徴データの識別子(この例では、特徴データが格納されているメモリアドレス)とが対応付けて保持されている。つまり、本明細書中の「属性」とは、図9に示されるように、属性識別子と、当該属性識別子に対応付けられた特徴データとを含む。
なお、属性識別子は、属性そのものを表す言葉ではなく、かつ、それ自体で意味を持たない記号(この例では、数字列)で構成される。また、特徴データは、当該属性の意味内容を表すデータであって、例えば、当該属性識別子が識別する属性の形、音、香、味、色、圧力、温度、長さ、座標値、及び面積の少なくとも一つを表すデータである。
さらに、図示は省略するが、図9には、属性識別子と、当該属性識別子に対応付けられた識別データ(又は、その識別子)とを保持してもよい。識別データは、当該属性を表す言葉から生成されたデータである。
また、図9を参照すれば明らかなように、1つの属性識別子には複数の特徴データ(又は、識別データ)が対応付けられることがあり、1つの特徴データ(又は、識別データ)は異なる属性識別子に対応付けられることがある。
図10に示される物識別子と属性識別子との対応表には、物識別子と属性識別子とが対応付けて保持されている。なお、物識別子は、物そのものを表す言葉ではなく、かつ、それ自体で意味を持たない記号で構成される。つまり、本明細書中の「物」とは、物識別子と、当該物識別子に対応付けられた0以上の属性識別子の集合とで表される。
まず、データ格納部1040は、特徴抽出部1020で抽出された新たな特徴データ(又は、識別データ。以下同じ。)をデータ10に格納した後、新たな属性識別子を生成する。このとき、データ格納部1040は、図9に既に登録されている属性識別子と重複しないように、新たな属性識別子を生成する。そして、データ格納部1040は、新たに生成した属性識別子と、データ10に格納した特徴データの識別子とを対応付けて、図9に示される属性識別子と特徴データとの対応表に登録する。
次に、データ格納部1040は、新たな物識別子を生成する。このとき、データ格納部1040は、図10に既に登録されている物識別子と重複しないように、新たな物識別子を生成する。そして、データ格納部1040は、当該物識別子と、上述の属性識別子とを対応付けて、図10に示される物識別子と属性識別子との対応表に登録する。
一例として、データ10内に未使用の物識別子を保持しておき、当該未使用の物識別子の中から新たに使用する物識別子を取得するようにしてもよい。また、データ10内に未使用の属性識別子を保持しておき、当該未使用の属性識別子の中から新たに使用する属性識別子を取得するようにしてもよい。さらに、データ10内に未使用の特徴データの識別子や未使用の識別データの識別子を保持しておき、当該未使用の特徴データの識別子や未使用の識別データの識別子の中から新たに使用する特徴データの識別子や識別データの識別子を取得してもよい。属性識別子、物識別子、特徴データの識別子、及び識別データの識別子を、共通の同じ形式にすると仕組みが単純になる。
学習部1050は、外部から取得した情報に基づいて、図9及び図10に示される物識別子、属性識別子、及び特徴データの識別子(識別データの識別子)の関係を整理する。検索部1060は、データ比較部1030又は学習部1050の指示に従って、図9及び図10に示される対応表を検索する。これらの具体的な処理内容は、後述する。
演算部1070は、データ10に記憶された知識ベースに対して論理演算を行う。より具体的には、少なくとも一つの物識別子が演算の対象として指定されると、当該物識別子に対応付けられた属性を対象として論理演算を行う。論理演算の具体例としては、例えば、AND演算、OR演算、NOT演算、NAND演算、NOR演算、共通度の算出、非共通度の算出、類似度の算出、及び非類似度の算出が挙げられる。これらの具体的な処理内容は、後述する。
出力部1080は、学習部1050の学習結果、及び演算部1070の演算結果等を、出力装置8に出力するデバイスドライバとして機能する。
なお、以降の説明においては、「物」及び「属性」を処理対象として説明する。しかしながら、知識ベースシステム1000における実際の処理では、当該物を識別する物識別子、及び当該属性を識別する属性識別子が処理対象となる。
例えば、「物と属性とがつながる」とは、物識別子と属性識別子とを対応付けて、図10に示される物識別子と属性識別子との対応表に登録することを指す。また、「属性につながっている物を取得する」とは、属性識別子に対応付けられた物識別子を取得することを示す。さらに、「物を生成する」とは、新たな物識別子を生成することを指す。上記の例は、一例であって、他の同様の記載についても同様に解釈するものとする。
本実施形態では、ソフトウエアを使ったコンピュータシステムで実施する例を示した。プログラムという情報で記載された処理手順は、ハードウエアに置き換えることが可能である。したがって、本願技術を集積回路、プロセッサのような演算装置として実施するもとも可能である。
第4の情報処理に関する前述の仮説を、コンピュータを使って実施する方法を説明する。以下の内容は本願技術の一実施形態である。
第4の情報処理について、(1)知識の形式、(2)知識の演算、(3)知識の集まりと知識ネットワーク、(4)知識の集まりと知識ネットワークの利用方法の、4つの面から順に説明する。最初に知識の形式について説明する。
従来技術である第3の情報処理では、話し言葉や文字で書き表された言葉、つまり単語の並びという形式で知識を表現する。現在の人間のような言葉を持っていない動物では、単語の並びという形式の知識を使えない。このような動物では第3の情報処理はできないと考えられる。
第4の情報処理における(1)知識の形式について考える。知識ベースシステムは、知識を扱う情報システムなので、知識ベースシステムの情報の形式は、知識の形式でもある。第4の情報処理では、知識の基本単位を物とする。1つの物は1つの知識である。物は、石や山などの具体的な物だけではなく、寒さ、大きさ、WEBページ、音などのような抽象的な物も、物に含まれる。
物は、あらかじめ定まった性質である属性を持つことができる。1つの物が持つ属性は、1つに限定されず、0個以上の属性を持つことができる。0個以上の属性の集まったものを属性の集合と呼ぶ。論理演算は、集合に対する演算という面がある。属性を論理演算する場合に、1つの物が持つ属性全体を1つの属性の集合と捉えると便利なことがある。1つの属性の集合は、0個以上の属性を持つ。物は、付属情報として属性を持つ。あるいは物は、付属情報として属性の集合を持つ。物が属性を持つとは、属性そのものを持つこと以外に、属性へのポインタを持つことも含まれる。同様に、属性の集合を持つとは、属性の集合そのものを持つこと以外に、属性の集合へのポインタを持つことを含む。
物が持つ属性を、単語を使わずに表現する方法を以下に示す。最初に座標軸を使って説明する。座標軸を使えば直感的に理解でき理解しやすくなると思われるため、座標軸を使った説明をする。したがって、座標軸をつかった表現は、この一実施形態にとって、本質的なものではない。あくまで、理解しやすくするための例である。
図11は、X軸とY軸とが直角に交わっていて、平面上の図形を表現できる。X軸、Y軸、Z軸の3つの座標をそれぞれ直角に交わらせると、三次元の立体を表わすことができる。X軸、Y軸、Z軸を直角より小さい角度で交わらせると図12のようになり、平面で3つの座標を表現できる。座標軸の交わる角度を更に小さくすると、より多くの座標軸を平面で表現できる。
図13は、一実施形態において、属性を座標軸に対応させた例である。図13では、3次元の座標軸で属性を表現している。1つの座標軸で1つの属性を表している。座標軸1で「高い」という属性を表現し、座標軸2で「塩辛い」という属性を表現し、座標軸3で「甘い」という属性を表現する。
なお、説明を分かりやすくするために、属性を座標軸に対応させているだけである。属性を座標軸に対応させることは、この実施形態にとって本質的ではない。また、本実施形態の説明を分かりやすくするために、図13では、座標軸1、2、3を直交させているに過ぎない。どのような角度で座標軸が交わっているかも本実施形態にとって本質的ではない。説明を容易にするための例示である。
通常、物は1つ以上の属性を持っている。図13の例では、属性が座標軸に対応づけられる。そして、属性は、座標軸の識別子と真であるか偽であるかを表わす真偽値の組で表わされる。真偽値は、真であるか、偽であるか、偽のどちらでもないという3種類の値のどれかを持つことができる。例えば、真の値を「1」、偽の値を「−1」、真でも偽でもない場合の値を「0」とする。
物の属性である各座標軸において、真偽値として「1」を持つ物は、座標軸で表わされる属性を持つ。同様に、「−1」を持つ物はその属性を持たず、「0」を持つ物はその属性によって特徴付けられないことを表す。真か偽かわからない場合、すなわち不定の場合に真偽値を「0」にすることもできる。属性を識別する1つの属性識別子と1つの真偽値との組が、1つの属性となるようにするのが自然である。「1」、「0」、「−1」という値の代わりに真偽値を、真偽値を表わす識別子とすることもできる。“真”、“偽”、“真でも偽”でもないという3種類の識別子のいずれかを真偽値の値とすることもできる。例えば、“真”を「20005」、“偽”を「20006」、“真でも偽でもない”を「20007」という識別子にすることもできる。
属性が真偽値を持たないようにすることもできる。物がある属性を持つ場合、その属性の真偽値を真とすることもできる。一方、物がある属性を持たない場合は、その属性の真偽値を偽とする方法がある。また、物がある属性を持たない場合は、真偽値を偽または不定とする方法もある。不定とは、真であるか偽であるか定まっていないことである。この方式では属性の真偽値がないので、論理演算の処理が単純になる。数学の世界では、0(零)という数の発見は大きな出来事である。物がある属性を持たないという状態を、偽という真偽値を持つという形で明確に区別するのは高度な情報の持ち方かもしれない。したがって、第4の情報処理に限定した場合は、属性が真偽値を持たない方式の方が自然かもしれない。
たとえば、「山」という物を取り上げる。「山」は、「高い」という属性を持つとする。「高い」という属性は、高い山の映像から抽出された特徴データとつながっている。通常、物は複数の属性を持つため、「山」という物は、「高い」などの属性が集まった属性の集合を持っている。このとき、「山は高い」は、正しい。「山は塩辛い」は、正しくない。「岩塩でできた山は塩辛い」は、正しい。「岩塩でできた山」は、「岩塩」が持つ属性と「山」が持つ属性を併せ持つからである。「岩塩」が、「塩辛い」という属性を持つため、「岩塩でできた山」は、「高い」と「塩辛い」という属性を持つ。
座標軸と真偽値で表わすと、山、岩塩、岩塩でできた山という物はそれぞれ、以下のように記述できる。
(1)山の、座標軸1は1
(2)岩塩の、座標軸2は1、座標軸3は−1
(3)岩塩でできた山の、座標軸1は1、座標軸2は1、座標軸3は−1
同じ内容を、記号を用いて次のように記述することもできる。
(1)山(1:1)
(2)岩塩(2:1、3:−1)
(3)岩塩でできた山(1:1、2:1、3:−1)
左括弧の左は物で、括弧全体は、言葉が持つ属性の集合を表わし、括弧の中は物が持つ個々の属性を表す。括弧内の「:」の左側の数字は属性を表わす属性識別子で、「:」の右側はその属性の真偽値である。物が、ある属性によって特徴付けられない場合は、その座標軸の属性識別子と真偽値の記述とを省略する。属性を持たないとは、その属性が、物の意味に影響を与えないと考えられることである。あるいは、その物とその属性の関連についての情報が無いことを示す。
また、物が属性を持つ場合のみ、つまり、物が持つ属性の真偽値が真の場合のみ属性を記述してもよい。この場合は、真偽値は持たない。第4の情報処理においては、この方が自然かもしれない。この方が前述の仮説により近い。物が持つ属性の真偽値が真の場合のみ、真偽値を含まない属性を記述すると次のようになる。
(1)山(1)
(2)岩塩(2)
(3)岩塩でできた山(1、2)
属性を表わす属性識別子は、主識別子と副識別子とで構成することもできる。主識別子は、属性の基本的な性質を表わし、副識別子は程度や様子などの属性のより詳しい性質を表わす。副識別子は、副詞に相当する。前述の仮説の主属性の識別子が属性の主識別子に相当し、前述の仮説の副属性の識別子が属性の副識別子に相当する。属性が主属性だけでできている場合もある。主属性も副属性も属性で、同じデータ構造である。
例えば、身長という属性は、背が高い、背がちょっと高い、背が低いなどのように、さらに詳しい属性を持つことができる。身長を例にすると、主属性の識別子である主識別子を基本的な属性である身長に対応付けることができる。一方、身長が高い、身長が低いという基本的属性を修飾する属性を副属性の識別子である副識別子に対応付けることができる。たとえば、人の身長を身長計で測っている映像から生成された特徴データを主属性に直接つないで対応づける。小柄な人の映像から生成された特徴データを副属性に直接つなぎ対応づける。
主識別子を座標軸の識別子に対応付け、副識別子を座標軸上の位置や範囲に対応付けると理解しやすい。副識別子に対応する値、範囲、程度、または、状況に相当する特徴データが副属性に直接つながり対応づけられており、副属性の識別子である副識別子とその特徴データの識別子が対応づけられている。副属性に直接対応づけられる特徴データは、数値の特徴データだけではなく、音や映像など五感と呼ばれる感覚器官やセンサで得た情報から生成された特徴データもある。副属性の識別子である副識別子は、副詞のように主属性の識別子である主識別子を修飾するものである。主識別子をキーにして、その属性の主識別子に直接対応する特徴データを取得できる。副識別子をキーにして、その属性の副識別子に直接対応する特徴データを取得できる。
全ての属性がより詳しい属性を持っているわけではないので、副属性の識別子である副識別子を必要としない場合もある。この場合は、副識別子の値の記述を省略する、あるいは、特別な値、例えば0にしておき、詳細な性質が無いことを示すことができる。例えば、詳細な性質がある場合は、主識別子の右側に「*」に続けて副識別子を記述し、詳細な性質がない場合は、「*」と副識別子の記述を省略する。
例えば、「とても塩辛い」に対応する副識別子を9とし、「少し塩味を感じる」に対応する副識別子を1とする。さらに「少し塩味を感じる」と「とても塩辛い」の間に段階的に複数の副識別子を設けてもてもよい。式で表わすと以下のようになる。副識別子も識別子であるから、「とても塩辛い」という特徴を表わすデータ、たとえば、9という値の特徴データを指し示す識別子であればよい。この例では、直感的に判るように「とても塩辛い」という特徴を表わすデータとその副識別子を同じ文字で表わしている。
(1)山(1:1)
(2)岩塩(2*9:1、3:−1)
(3)岩塩でできた山(1:1、2*9:1、3:−1)
山をA、岩塩をB、岩塩でできた山をCで表わすと、以下のようになる。A、Bは、物の意味を表す単語ではなく、物の意味を表わさず単に物を識別する「物識別子」である。物は、1つの「物識別子」と1つの属性の集合から成ることを表している。Aの代わりに30003という識別子を使ってもよい。集合は、0個以上の属性を要素として持つことができるので、物を表わす「物識別子」が持つ属性を表わす属性識別子は、1個に限定されず、0個でも、1個でも、2個以上でもかまわない。
(1)A(1:1)
(2)B(2*9:1、3:−1)
(3)C(1:1、2*9:1、3:−1)
Aの代わりに1000、Bの代わりに1001、Cの代わりに1002を使うと次のようになる。
(1)1000(1:1)
(2)1001(2*9:1、3:−1)
(3)1002(1:1、2*9:1、3:−1)
さらに、真偽値が真の属性だけを記述すると次のようになる。
(1)1000(1)
(2)1001(2*9)
(3)1002(1、2*9)
このようにすると、属性を座標軸とした空間のなかで、物を点、線、平面、立体などとして表現できる。属性を座標軸とした空間のなかで、2つの物の重なり具合や近さが、2つの物の関連性の大きさを表わす。
このようなデータ構造を使うと、脳の神経細胞に対応づけられた物や属性をうまく表現できる。物や属性を識別する識別子で物や属性を表わすことによって、脳の神経細胞に対応づけられた物や属性のつながりを表現できる。物や属性を識別する識別子をキーにして物や属性を検索することにより、つながっている物や属性を取得する。つながっている物と属性について、物識別子と属性識別子とを対応付ける表を作る。この表を物識別子をキーにして検索すると、その物が持つ属性識別子が取得できる。属性識別子をキーにして表を検索すると、その属性とつながる物識別子が取得できる。つながっている属性と特徴データについて、属性識別子と特徴データとを対応づける表をあらかじめ作成しておく。この表を属性識別子をキーにして検索すると、その属性につながる特徴データを取得できる。この表を特徴データで検索すると、その特徴データとつながる属性識別子が取得できる。このようにして、物、属性、特徴データのつながりをまねることができる。
本実施形態は、樹状突起等によって物や属性に対応する神経細胞同士をつなぐのではなく、物や属性をその意味を表さず単に識別するだけの識別子だけで表わし、識別子をキーにして物や属性を選択し取得することにより神経細胞のつながりをまねている。
従来技術の情報システムにおいて、人を社員番号という識別子に対応づけることは行われていた。しかし、従来技術においては、人は、社員番号という識別子以外に年金番号のような異なる形式の複数の識別子を持つことができる。自動車は、ナンバープレートの番号や製造番号という識別子を持つ。社員番号、年金番号、自動車の番号は、それぞれ異なる形式の情報である。同じ人という物でも異なる形式の識別子を持つことができる。また、人と自動車のように異なる物は、異なる形式の識別子を持っている。
本実施形態では、すべての物は同じ単一の形式の識別子だけを持ち、物と物識別子とは1対1に対応する。すべての属性は同じ単一の形式の識別子だけを持ち、属性と属性識別子とは1対1に対応する。さらに、真偽値を、真偽値を表す識別子とすることもできる。この場合、真偽値は、真を表わす属性と偽を表わす属性とのいずれかになる。真を表わす属性は、真を表わす特徴データとつながり、偽を表わす属性は、偽を表わす特徴データに対応づけられる。属性の主識別子である主属性の識別子、属性の副識別子である副属性の識別子、真偽値の識別子を含む全ての識別子も物識別子と同じ形式に限定できる。
外部から情報を受け取ると、受け取った情報から特徴を抽出する。抽出された特徴を特徴データとして保持する。保持された特徴データと物識別子や属性識別子が対応づけられる。外部に情報を出力するときには、物や属性とつながっている識別データが取得され、取得された識別データから単語が生成され、生成された単語が出力される。日本語の「花」、英語の「flower」という単語から生成された識別データを1つの属性につなぐ。実際に咲いている花の映像から生成された特徴データが別の属性識別子に対応づけられる。そして、これら2つの属性が1つの物に対応づけられる。このようにすれば、一方の属性から物を取得し、同じ物につながっている他方の属性を取得できる。その結果、属性につながった単語の識別データや映像の特徴データを出力することができる。たとえば、花の映像の特徴データから、花という単語の識別データを取得し出力できる。
第4の情報処理における(2)知識の演算について説明する。
たとえば、岩塩は塩辛いかどうかを調べる方法を考える。つまり、物が、ある属性を含んでいるかどうかを調べる方法を考える。仮想のプログラミング言語であらわすと、例えば、以下のような記述で表わすことができる。
B.include((2*9:1))
Bは、物を表わす単語または識別子で、属性の集合を持っている。引数の(2*9:1)は、属性を1つ含む属性の集合である。物の名前または物識別子が式に記述されている場合は、物が持つ属性の集合が演算対象になる。この場合は、たまたま、属性が1個の集合になっているが、属性が0個でも複数あってもよい。B.include((2*9:1))というプログラムは、Bが持つ属性の集合の中に、引数の属性と同じものがあれば、真の値を戻り値として返す。同じ属性識別子はあるが、真偽値が異なる場合は、偽の値を戻り値として返す。同じ属性識別子がない場合は、存在しないことを表わす値を戻り値として返す。存在しないことを表わす値としてNULLを使ってもよい。また、同じ属性識別子がない場合に、偽の値を戻り値として返してもよい。この演算によって、ある物が、ある属性を持っているかどうかを調べることができる。
属性の集合(2*9:1)に名前をつけて、その名前を記述してもよい。例えば、(2*9:1)に「verySalty」という名前を付けて、B.include(verySalty)と記述することができる。
実際のプログラムでは、includeというプログラムが次の処理をして、真または偽の値またはNULLの値を生成する。Bを比較される属性の集合を持つ物、verySaltyつまりプログラムの引数である属性の集合を、比較する属性の集合と呼ぶ。比較する属性の集合の全ての属性が、比較される属性の集合にあり、かつ、真偽値が一致している場合に、真の値を戻り値として返す。比較する属性の集合の全ての属性が、比較される属性の集合にあり、かつ、真偽値が一致していないものがある場合に、偽の値を戻り値として返す。比較する属性の集合の属性が、比較される属性の集合に1つでもない場合、比較できない属性があるという意味で、NULLを戻り値として返す。比較する属性の集合の属性が、比較される属性の集合に1つでもない場合、偽を返してもよい。NULLを返すか偽を返すかは、プログラムの設計方針に依存する。ここで挙げた戻り値およびその条件は、例示である。他の条件や戻り値の組み合わせでもよい。
同じ属性が無い場合に、類似の属性があるかどうかを調べる方法があると便利である。すなわち、あらかじめ定められた数以上の比較する属性について、その主識別子が比較される属性の集合にあり、かつ、真偽値が一致している場合に、真の値を戻り値として返す。これは、例示であってこれ以外の条件を用いてもかまわない。
偽とNULLとを戻り値とする条件の一例を以下に示す。あくまでも例示であって他の条件でもよい。比較する属性の集合の属性の主識別子が比較される属性の集合にあり、かつ、真偽値が一致しているものがあらかじめ定められた数より少ない場合に、偽の値を戻り値として返す。比較する属性の集合の属性の主識別子が比較される属性の集合に1つもない場合に、比較できないという意味でNULLの値を戻り値として返す。前述の条件は例示であって、適切なものであればそれら以外の条件でもかまわない。
仮想のプログラム言語で記述すると、以下のようなプログラムになる。下記isLikeというプログラムは、類似性を判断するプログラムである。
B.isLike((2*9:1))
同様に、B.isLike(verySalty)と記述することもできる。
属性の副識別子が補足情報として値、値の範囲、程度、状況などを表わすようにする。属性の副識別子、つまり、副属性が特徴データである値、値の範囲、程度、状況とつながっている。主識別子を指定し、主識別子が同じで副識別子が同じかどうかを判断基準にすることもできる。副識別子に対応する特徴データである値や範囲をあらかじめ保持しておき、副識別子をキーにして値や範囲の情報を取得すれば、値を直接比較することもできる。
身長という主属性は、たとえば190cmというように、具体的な値の特徴データとつながる副属性とつながることができる。しかし、身長が高いという属性のように明確でない属性もある。日本人男性を前提としてとして考えると、ほぼ全ての人が身長185cmを身長が高いと判断する。60%の人が身長180cmを身長が高いと判断するとかもしれない。この例のように、属性が明確な境界を持たないことはよくある。
ファジィ集合という考え方を使うと、このような明確な境界を持たない属性をうまく表現できる。具体的な身長の範囲という特徴データの代わりに、ファジィ集合におけるメンバーシップ関数につながる副属性を用いる。メンバーシップ関数は、引数として実際の値が与えられると0から1までの範囲の値を計算する。この計算された値が程度を表わす。生成された程度があらかじめ定められた一定の値以上であれば、そのファジィ関数の副属性が真であると判断する。この場合、その主属性とそのファジィ関数と特徴データがつながった副属性とを、その物の属性とする。
数値、音声データ、画像データ、動画データなども実際のデータに含まれる。実際のデータから生成された特徴データがファジィ関数と共に同じ属性とつながる。実際のデータは、前述のデータに限定されるものではない。例えば、顔の画像データから幅と長さとの比率を求め、その比率を引数にして、保持されたメンバーシップ関数を使って丸顔の程度を生成することができる。
実際の値を引数にしてあらかじめ保持されたメンバーシップ関数を実行し、メンバーシップ関数で程度を生成する。生成された程度が、あらかじめ定められた一定の値以上であれば真偽値を真にし、あらかじめ定められた一定の値より小さければ真偽値を偽にしてもよい。
図14は、一実施形態におけるファジィ集合の例である。メンバーシップ関数は、図14の横軸の値である具体的な値などのデータを与えると、図14の縦軸で示される程度を表わす0から1までの値を生成して、生成された程度を表わす値を戻り値として返す。
明確でない属性を生成する方法として、さまざまな特徴データや識別データを1つの属性につなぐ方法がある。たとえば音声認識において、ある単語を多くの人に発音してもらい、その発音から識別データを生成する。生成された複数の識別データを1つの属性につなぐ。この属性は、その単語の音声表現を表わす。属性につながった識別データのどれかと同じ識別データが入力された音声から生成されると、入力された音声がその属性として認識される。この方法は特徴データにも使え、音声以外に画像などあらゆる情報に適用できる。
2つの属性の集合に関して、属性がどの程度共通しているかを知りたいことがある。この共通している程度を共通度とする。例えば、2つの属性の集合に関して属性識別子と真偽値が同じである属性があるかどうかを調べ、一致する属性が1組あれば、共通度を1とし、2組あれば2とする。このように、一致する属性の組数を共通度として返すプログラムを作れば、共通度を求めることができる。属性が付属情報として重みを持っている場合、一致する属性の重みを足し合わせて共通度を求めてもよい。重みを足し合わせることも、計数することに含まれる。上記共通度の計算方法は、一例である。他の方法を用いてもよい。
2つの属性の集合に関して、属性がどの程度一致していないかを知りたいことがある。この一致していない程度を非共通度とする。たとえば、2つの属性の集合に関して属性識別子が同じで、真偽値が異なる属性があるかどうか調べ、該当する属性が1組あれば非共通度を1とし、2組あれば非共通度を2にする。このように、該当する属性の組数を非共通度として返すプログラムを作れば、非共通度を求めることができる。属性が付属情報として重みを持っている場合、該当する属性の重みを足し合わせても非共通度を求めてもよい。上記非共通度の計算方法は、一例である。他の方法を用いてもよい。
共通度と非共通度とは、2つの属性の集合がどの程度似ているか、どの程度違っているかを表わす尺度として利用できる。共通度を求めるプログラムにおいて、一致している属性の一覧を戻り値として返すことも可能である。同様に、非共通度を求めるプログラムにおいて、一致していない属性の一覧を戻り値として返すことも可能である。
共通度が大きい場合は、共通する属性が多いことを意味する。非共通度が0より大きい場合は、対立する属性を含んでいる可能性を意味する。本を読んだり話を聴いたりしているときに、「おや、何か変だ」と感じることがある。この感覚は、非共通度が0より大きい場合に対応付けることができる。共通度は大きいけれど、非共通度が0でない場合は、何らかの矛盾がある可能性がある。
AND演算は、2つの属性の集合に共通する属性を要素とする属性の集合を新たに生成する。AND演算を行うプログラムは、2つの属性の集合に関して、属性識別子が同じで、且つ真偽値が同じ属性を集め、前記集められた属性を要素とする新たな属性の集合を生成する。例えば、次のような記述になる。AND演算は積集合の演算でもある。AND演算は、例えば、(A AND B = c = φ)のように表すことができる。ここで、cは属性を含まない属性の集合である。記号φは、属性を持たない属性の集合を表わす。
OR演算は、2つの属性の集合の属性うち、少なくともいずれかの属性の集合に含まれる属性をすべて含む属性の集合を新たに生成する。OR演算を行うプログラムは、二つの属性の集合に含まれる属性を全て含む属性を要素とする新たな属性の集合を生成する。OR演算は、和集合の演算でもある。
属性識別子が同じで、真偽値が異なる属性をOR演算で生成される新たな属性の集合含める方法と含めない方法とがあるが、含めない方が自然と考えられる。ある属性について一方の属性の集合ではその真偽値が真で、他方の属性の集合ではその真偽値が偽の場合、2つの属性の集合は相反する属性を持っていることになる。
そのため、2つの属性の集合に対して非共通度を計算し、非共通度が0の場合だけOR演算を行うようにする方法もある。記号で表わすと次のようになる。aは(1:1)という属性の集合で、bは(2:1、3:−1)という属性の集合であるとする。ここで、a及びbのOR演算は、(a OR b= g)のように記述することができる。そして、gは、(1:1、2:1、3:−1)という属性の集合になる。
NOT演算は、属性の集合に含まれる全ての属性の真偽値の値を逆にした属性の集合を新たに生成する。記号で表わすと次のようになる。aという属性の集合は、(1:1)という属性を含んでいるとする。aのNOT演算は、(NOT a = k)のように記述することができる。そして、kは、(1:−1)という属性を持っている。
なお、上記の例では、小文字のアルファベットを属性の集合、大文字のアルファベットを物にしている。
前述の演算方法を使えば、属性の集合に含まれる属性の数が多くても少なくても、論理演算式は変わらない。通常、物は非常に多くの属性を持っている。本技術を使えば、従来技術に比べて論理演算式が非常に単純に記述できる。
これまでの説明で明らかなように、本実施形態では、物と物が持つ属性とを、単語で表現するのではなく、物や属性そのものの意味を持たない情報である識別子で表現している。そして、属性そのものの意味を表わさない情報である識別子で表わされた属性を要素とする属性の集合を論理演算の対象としている。
属性の集合の要素である各属性を、それぞれ1つの座標軸に対応させる。それぞれの属性に対応する座標軸を識別する座標軸の識別子を属性識別子とし、属性識別子と真偽値との組で属性を表わす。その属性が真である場合は、属性識別子と肯定の値との組で属性を表わす。一方、その属性が真でない場合は、属性識別子と否定の値との組で属性を表わす。このように解釈すると、理解しやすいかもしれない。属性を座標軸に対応させるのは、本技術の理解を助けるのが目的である。属性を座標軸に対応させることは、必須ではない。
属性をより詳しく表現するために、主識別子と副識別子とから成る属性識別子としてもよい。主属性の識別子が主識別子に対応し、副属性の識別子が副識別子に対応する。それぞれの属性に対応する座標軸を識別する座標軸の識別子を主識別子とし、当該属性のより詳しい特徴を示す値、範囲、程度などを表わすものを副識別子とし、主識別子と副識別子とからなる識別子と真偽値とからなる属性としてもよい。ただし、副識別を必要としない属性もある。その場合は、副識別子を持たないことを表わす特別な値、たとえばNULLのような特別な値を副識別子にしてもよい。また、単に副識別子を持たないようにしてもよい。
これまでの説明では、副識別子を使って属性の程度を表わす方法を示した。しかし、例えば、人種によって背が高いという属性の判断基準が異なる。そのため、属性から、身長のような実際の情報を取得できるようにすることは有益である。実際の身長の数値の情報を特徴データとして保持し、身長という属性を生成し、その副属性に身長の特徴データを対応づけておけばよい。また、全身の映像から生成された特徴データを身長という属性につないでおいてもよい。身長という属性につながった特徴データをもとに、背が高いかどうかを判定し、その属性の意味を変更することができる。このようにすると、属性識別子から実際の情報が取得できる。属性識別子を検索キーにして、実際の情報、つまり特徴データが取得できる。
上記のプログラムの例では、関数型のプログラムを想定しているのでプログラムの実行結果を戻り値として返す。しかし、関数型でないプログラムでも実施可能である。
画像、動画、音、触覚、温度、圧力などあらゆる情報から属性を生成できる。例えば、顔の画像から面長や丸顔という属性を生成できる。画像データから顔の部分を抽出し、抽出された顔の画像データから顔の横幅と長さとの比率を計算する縦横比率計算機能を持っているとする。顔の画像データが与えられると、縦横比率計算機能を使って与えられた顔の画像データから顔の縦横比率を計算する。計算された顔の縦横比率に一番近い属性を選び、選ばれた属性の真偽値を真にする。
本実施形態では、単語から識別データを生成して保持し、その単語から生成された識別データを属性に対応づけることはできる。しかし、知識ベースシステム内において、単語から生成された識別データは、単に物や属性を選択するために使われるだけで、物や属性の意味や概念を表すものとしては利用されない。画像、音、触覚、温度、圧力などの言葉以外の情報から生成された特徴データがつながった属性を生成し、生成された属性を含む属性の集合を論理演算することにより、例えば、画像診断システム、設備の監視システムになど利用できる。
ある物が、他の物の属性の集合を引き継いでいることがある。また、ある物が、他の物の属性の集合を含んでいることもある。OR演算は、他の物の属性を引き継いだり、含んだりすることに対応付けられる。
次に、第4の情報処理における(3)知識の集まりと知識のネットワークとについて説明する。
共通する属性を持つ物を集めたものを知識の集まりという。1つまたは1つ以上の属性を指定し、指定された属性識別子を持つ物を選択する。選択された物の集まりが知識の集まりである。通常、指定された全ての属性の属性識別子を持つ物を選択するが、指定された属性のうちの一部を持つ物を選択してもよい。
選択された回数を物ごとに記憶しておき、選択された回数が予め定められた回数以上の物を集めて知識の集まりをつくることもできる。たとえば10個の属性で検索を行った場合は、検索に使った属性の数に0.8を掛けけた値の8回以上選択された物を集めて知識の集まりをつくる。また、物と属性のつながりが付属情報としてつながりの強さの程度を表わす重みを持つ場合は、回数を記憶する代わりに選択されるたびに重みを足しあわて物ごとに重みの累計値を保持し、その累計値が予め定められた一定値を超える物を集めて知識の集まりをつくってもよい。重みを使う方法も検索された回数を使う方法も、属性を使った検索である。
特別な場合として1個の物だけからなる知識の集まりになることがある。この場合は、検索に使った属性によって1つの物が特定され認識されたと解釈することもできる。
ある物の集まりを生成するために使ったすべての属性だけを1つの物につなぐと、その物は物の集まりを意味する抽象的な物になる。この抽象的な物にある単語から生成された識別データがつながった属性をつなぐと、その識別データによってこの抽象的な物が識別できる。
知識の集まりにおいて、ある物と他の物とが関係を持っていることがある。これら関係のある物同士をつなぐ。このつながり合った物の集まりが知識ネットワークである。物と物とをつなぐことで、物と物との関係を表現する。関係には、双方向につながる場合と、一方向につながる場合とがある。双方向につながる場合は、つながる2つの物を区別できないので、対等な関係になる。一方向につながる場合は、つながる2つの物を区別できる。たとえば、親子関係を一方向のつながりで表し、親である物から子である物の方向だけの一方向につなぐ。このようにすると、親である物と子である物とを区別できる。
一方向のつながりで表わされる関係を、包含関係のように、ある物が他の物に含まれていることに対応づけることもできる。
知識ネットワークにおいて、物と物とのつながりを追加すること、つながり方を変えること、つながりを削除することは、知識を学習することに対応づけられる。知識ネットワークに、新しく物を追加することや既にある物を削除することも、知識の学習に対応づけられる。新たな知識ネットワークを生成することも学習に対応づけられる。知識ネットワーク内の物の存在やつながりも知識である。物も知識である。
図15は、物の包含関係を表わしている。図15に示される丸印は、ノード60である。ノード60は、物識別子を保持し、物を表わす。ノード60は、物識別子で表わされた物だけである。属性61および属性61の集合、特徴データ、識別データはノード60ではない。属性61および属性61の集合は、ノード60である物の付属情報である。物とは石とか犬のような具体的な存在だけなく、光る物やWEBページや概念のような抽象的な物も含まれる。属性61を持たないノード60も可能である。何か分からない物がある場合、その物は属性61を持たない。ノード60は、0個以上の属性61を持っている。1つの物が持つ属性全体を属性61の集合と捉えることもできる。属性61の集合は、図19に示される物と属性との一覧表に相当する。矢印62は、ノード60の関連を表わす。つまり、矢印62は、物の関連を表わす。矢印63は、ノード60と属性61とのつながりを表す。
知識の集まりを生成する属性の持ち方には、2種類ある。1つ目の方法は、たとえば図15において、すべての物が生物という属性を持つ。また、動物、哺乳類、爬虫類、魚類を表す物が動物という属性をもつ。さらに哺乳類、人、犬を表す物が、哺乳類という属性を持つ。このように、上位概念である物を表わす属性を、下位概念である物が持つようにする。特に、下位概念の物がすべて、上位概念を表わす属性をもつようにすると、下位概念の物は、必ず上位概念を表わす属性を持つようになる。このようにすると、1つの概念を表わす属性を指定して知識の集まりを生成すると、その下位概念である物をすべて含む知識の集まりを生成できる。たとえば、動物という属性を指定して知識の集まりを生成すると、その知識の集まりには、動物とその下位概念である哺乳類、爬虫類、魚類が含まれる。
2つ目の方法は、次のようにする。下位概念の物は、上位概念を表わす属性を持たない。属性を階層化して、属性の階層化情報を保持する。属性の階層化情報において、上位概念を表わす属性から下位概念を表わす属性へ順に並べてつなぐことにより、複数の概念を表わす属性を同じ順番にできるようにする。属性の階層情報から、ある属性以降の属性を選び、選ばれた属性を少なくとも1つ持つ物を集めて知識の集まりを生成する。属性の階層情報から、ある属性以降のすべての属性を選んで知識の集まりを生成すれば、下位概念すべてを含む知識の集まりを生成できる。ある範囲の属性を選べば、その範囲の属性を持つ知識の集まりが生成できる。しかし、知識の集まりで物と物との関係を表わすことは難しい。物と物とをつないだ知識ネットワークを作ると、物と物との関係を簡単に表わせる。
図15のように、知識の集まりにおいて物と物とをつなぐことができる。つながり合った物を知識ネットワークと呼ぶ。例外的に、共通の属性を持たない物、つまり知識の集まりに含まれない物が知識ネットワークにつながることも可能である。端点となる1つのノードに1つ以上のノードがつながる形の木構造の他、さまざまなつながり方の知識ネットワークがある。つながりには方向のあるつながりと方向のないつながりがある。方向がある場合は、つながる2つの物に違いがあることを表わせる。方向のないつながりは、一方向ではなく双方につながっていると見ることもできる。方向のあるつながりは、矢印で表わす。方向のないつながりは線で表わす。矢印は出発点と到着点を持ち、矢印のある方が到着点で、矢印のない到着点でないない方が出発点である。出発点を矢印の始点、到着点を矢印の終点と呼んでもよい。
木構造のように出発点である根となるノードが無い網構造の知識ネットワークも可能である。物と物とがつながっていれば知識ネットワークである。どのようなつながり方でもよい。物が1つだけ、または、0個の知識ネットワークもあり得る。神経細胞のネットワークにおいては、神経細胞同士をつないでいる樹状突起等によるつながりが矢印に相当する。
物は、複数の知識の集まりに属すことができる。そして、物は、複数の知識ネットワークに属することができる。例えば、人間は、血縁関係という属性を持っている。出身学校のような属性も持っている。これらの複数の属性を1つの知識ネットワークで表現すると、非常に複雑な知識ネットワークになる。血縁関係を表す知識ネットワークと出身大学を表す知識ネットワークとをそれぞれ生成し、人間のノードを、血縁関係を表す知識ネットワークと出身学校を表す知識ネットワークなど複数の知識ネットワークに属すようにする。血縁関係を表す知識ネットワークでは、物であるノードを血縁関係でつなぐ。出身大学を表す知識ネットワークでは、たとえば学年であるノードをつなぐ。いくつもの知識ネットワークに分けて物と物とのつながりを表わすと、個々の知識ネットワークの構造が非常に単純になる。
通常、物は、複数の知識ネットワークに属している。知識ネットワークでは、物同士がなんらかの関係で直接つながりあっている。共通の属性を持つ物があらかじめ定められた1つの関係だけでつながりあうことにより、知識ネットワークは、明確に体系化された知識を表わすことができる。物が知識ネットワークに属すことにより、物に関する体系化された知識を表現し、保持できる。知識ネットワークは、物だけがつながりあっている。
第4の情報処理における、(4)知識の集まりと知識ネットワークの使い方について説明する。
まず、知識の集まりの使い方の例を示す。指定された属性をすべて持つ物を集めた知識の集まりを生成し、その生成された知識の集まりのなかに、与えられた物があるかどうかをしらべれば、与えられた物がその知識の集まりを生成した属性を全て持っているかどうか判断することができる。
また、知識の集まりは、物(物識別子)を要素とする集合である。したがって、知識の集まりを表わす抽象的な物を演算対象として、AND演算、OR演算、NOT演算などの論理演算が可能である。
次に、知識ネットワークの使い方の例を示す。たとえば図15のように、ある知識ネットワーク内のノードとノードとをつなぐ矢印が包含関係を表わしているとする。出発点のノードが到着点のノードを含むとする。ノードBから矢印の逆向きに0回以上移動し、ノードAに到達できる場合、BならばAであると言う。移動回数が0の場合は、ノードAとノードBとは、同じノードである。繰り返しになるが、ノードは物を表わしている。
図16の知識ネットワークN1において、ノードBから矢印の逆方向の経路に0回以上移動してノードAへ移動できたとする。また、ノードBが属する知識ネットワークN1とは異なる知識ネットワークN2において、ノードAから矢印の逆方向に0回以上移動して、ノードDに移動できたとする。このとき、ノードBならばノードDである可能性がある。あるいは、ノードBとノードDとに何らかの関連がある可能性がある。どの程度の可能性であるかは、経由した知識ネットワークがどの程度適切に生成されているかにも依存する。移動回数の合計が0である場合、ノードB、ノードA、及び、ノードDは、同じノードである。前述の経路が発見され、その経路のつながりが適切であると判断されると、ノードDからノードBへ1つの矢印でつなぐことができる。ノードDとノードBとを含む新しい知識ネットワークを作って、ノードDとノードBとを直接つないでもよい。
1方向のつながりの知識ネットワークを例にしたが、双方向のつながりの知識ネットワークでも同様にできる。だだし、双方向のつながりの場合は、つながる物同士の違いが明らかでない。
このように、ある物から出発し、別の知識ネットワークにある別の物に到着できるとき、出発点のノードである物と到着点のノードである物との間に、何らかの関係がある可能があると判断できる。このようにすると、知識ネットワークを使って、素早く大まかな判断ができる。大まかな判断の後、出発点のノードである物が持つ属性と到着点のノードである物が持つ属性とを比べて、そのつながりが適切であるかどうかについて最終的な判断を行う。
言葉である文字列、つまり単語をノードとし、単語であるノードを直接つないでネットワーク構造で表現する方法は従来からあった。しかし、この方法では、物を表わす単語だけでなく属性を表す単語も1つのノードになる。そのため、本願技術を使ったネットワーク構造よりもノードの数もつながりの数も多くなり、非常に複雑なネットワーク構造になる。また、本実施形態のように、知識の集まりを生成し、知識を分類することが簡単にはできない。
リレーショナルデータベース14を用いた場合の(1)知識の形式について説明する。
リレーショナルデータベース14は、表形式のデータからある条件を満たすデータを抽出するなどの集合演算を効率良く行えるようになっている。そのため、本実施形態では、リレーショナルデータベース14を使った例を説明する。リレーショナルデータベース14を使わずに実施してもよい。本願技術では、物及び属性をつなぎ、つながった物や属性に信号を送ることによって、つながった物や属性を知る代わりに、物、属性、特徴データ、及び識別データを識別子で表わし、識別子をキーにして検索する。これにより、つながっている物、属性、特徴データ、及び識別データを取得する。
本技術のシステムの中では、物識別子自体が物であり、属性識別子自体が属性である。属性の主識別子自体が主属性であり、属性の副識別子自体が副属性である。特徴データは識別子であるポインタで表わされる。特徴データ自体はデータ10にある。識別データは識別子であるポインタで表わされる。識別データ自体はデータ10にある。
図17A、図17B、図18、図19の表は、リレーショナルデータベース14によって作成されたデータ10内の表を模式的に表したものである。
図17Aは、属性の元になるデータの一覧である。図17Bは、物の名前と物識別子との対応表である。属性の元になるデータ一覧には、文字で表わされた物の名前である単語と物が持つ属性を表わす単語と属性の真偽値とがある。実データは、真偽値の元になるデータである。この実データがある場合は、実データから真偽値を生成してもよい。真偽値を生成する場合、真偽値は不要である。属性が、表に記載されている場合のみ真偽値が真であるという規則を適用することにより、真偽値を省略することもできる。
実データを特徴データとして保持し、その特徴データと新たに生成された属性とを対応づけ、その新たな属性をその物の属性とすることもできる。物の名前と物識別子との対応表は、物の名前である単語と物識別子とを対応づける。物が図外の特徴データとつながっている場合は、さらに特徴データへのポインタが対応づけられる。
図18は、単語に対応づけられた属性と属性識別子との対応表である。この表は、図2A及び図2Bの第1階層に相当する。この表にある属性識別子は、あらかじめ保持されている図外の特徴データと対応づけられている。主属性である主識別子は、主属性の特徴データの識別子であるポインタが対応づけられる。副属性である副識別子は、副属性の特徴デ−タの識別子であるポインタが対応づけられている。この表では、属性に対応づけられた単語と属性識別子とが対応づけられている。属性識別子と図外の特徴データとが対応づけられている場合は、特徴データへのポインタである特徴データの識別子も対応づけられる。
属性識別子と図外の特徴データとがつながり、意味あるいは概念が生成されている。対応づけられる特徴データのポインタの数を1行に最大1個に限定し、対応付ける特徴データの数だけ表の行を作成してもよいし、1行に全ての特徴データのポインタを含めてもよい。属性と属性識別子との対応表は、図17Aの属性の元になるデータの一覧の属性の単語を属性識別子に対応づけるための表である。図17Aの属性の元になるデータの一覧の属性に対応づけられた単語をキーにして、属性と属性識別子との対応表から対応する属性識別子を取得する。
取得される属性識別子は、主識別子と副識別子とから成る場合もある。主識別子だけからなることもある。主識別子と副識別子との可能な組み合わせがあらかじめ定められていると、それを使って不自然な組み合わせの検出ができる。可能な主識別子と副識別子との組み合わせがあらかじめ作成されていても、学習により主識別子と副識別子との可能な組み合わせは、追加又は削除できる。
図17Aの属性の元になるデータの一覧の属性が、主属性と副属性とからなる属性である場合もある。図18の属性と属性識別子との対応表が、属性の真偽値が真になる条件を持つことも可能である。属性と属性識別子との対応表が、属性の真偽値が真になる条件を持ち、且つ属性の元になる実際のデータを持っている場合は、実際のデータが属性の真偽値が真になる条件を満たしているかどうかを判断して真偽値を決めることができる。条件は、ファジィ集合のメンバーシップ関数などの判定機能であってもよい。この場合、属性の元になるデータは、真偽値を持たなくてもよい。実際のデータから特徴データが生成される。
図17Aの属性の元になるデータの一覧と、図17Bの物の名前と物識別子との対応表と、図18の属性と属性識別子との対応表から生成された物の名前に対応する物識別子と、属性に対応する属性識別子と、真偽値とから、図19に示されるように、物識別子と物が持つ属性識別子と真偽値とを対応づけた物と属性との一覧表を生成する。物識別子と当該物が持つ属性の属性識別子とがある場合は真偽値が真で、無い場合は真偽値が偽であるという規則を適用することにより、真偽値を省略することもできる。また、属性の実データから生成された特徴データを持ってもよいし、持たなくてもよい。なお、特徴データの識別子を持つことも、特徴データを持つと記述する。属性が1つの主属性と1つの副属性とからなる場合は、表の列位置で主属性と副属性とを区別する。
図19に示される物と属性との一覧表から、ある物識別子をキーにして選択された行全体がその物が持つ属性の集合を表わし、選択された各行がその物が持つ属性を表わす。この図は、図3の第2階層に相当する。
なお、図外の特徴データは、物識別子及び属性識別子と対応付けられている。そして、その特徴データの識別子をキーにして検索することにより、特徴データに対応付けられた物識別子及び属性識別子を取得できる。特徴データとつながっている物及び属性は、その特徴データへのポインタである特徴データの識別子を持っている。
図20Aは、物と主属性と副属性とを対応づけた表である。この表は、物と主属性と副属性とを頂点とする三角形を形作るようにつながった1つの物と、1つの主属性と、1つの副属性との組を表わした例である。物と主属性とを指定してこの表を検索すると、三角形を形作る残りの要素である副属性を取得できる。
また、図20Bの主属性と副属性との対応表は、主属性と副属性とが対応付けられ、適切な主属性と副属性との組み合わせが保持されている。1つの主属性に対応づけられる副属性は、1つに限らない。ある主属性に対する副属性の対応付けは、1つに限られず、複数あってもよい。この組み合わせから適切な主属性と副属性との組を選び、物と主属性と副属性とを対応づけ、対応づけられた物と主属性と副属性との組を物と属性との一覧表に追加することができる。
属性が主属性と副属性とから成る場合、1つの属性を構成する主属性と副属性とに同じ特徴データが直接つながり、対応づけられてもよい。1つの属性を構成する主属性と副属性とに対応付けられる特徴データは、それぞれ1つに限られず複数あってもよい。主属性も副属性も属性であり、両者とも1つまたは1つ以上で、1つに限定されない特徴データがつながる。
物と主属性と副属性とが三角形の形につながるので、三角形を構成する物と主属性と副属性との3つの要素のうち、ふたつを指定すると残りのひとつの要素が決まる。ある物につながる属性が主属性と副属性とから成る場合、その物とその主属性との両方につながる属性を検索し、取得できる。この属性が副属性である。主属性には、大雑把な意味あるいは概念を表わす特徴データがつながっている。副属性には、より詳細な意味あるいは概念を表わす特徴データがつながっている。大雑把な意味あるいは概念を知りたい場合は、その主属性につながる特徴データを取得すればよい。より詳細な意味あるいは概念を知りたい場合は、その副属性につながる特徴データを取得すればよい。
次に、リレーショナルデータベース14を用いた場合の(2)知識の演算について説明する。
2つの属性の集合から共通した属性を選び、選ばれた属性を要素とする属性の集合を新たに生成するこの操作を、AND演算と呼ぶ。2つの属性の集合の少なくともどちらかに含まれる属性を選択し、選択された属性を要素とする集合を新たに生成する操作を、OR演算と呼ぶ。1つの属性の集合の要素である属性について、真偽値が真の場合は真偽値を偽にし、真偽値が偽の場合は真偽値を真にした属性を生成し、生成された属性を要素とした属性の集合を新たに生成する操作を、NOT演算と呼ぶ。2つの属性の集合のどちらか一方にのみ含まれる属性を選択し、選択された属性を要素とする属性の集合を新たに生成する操作を、XOR演算と呼ぶ。
以下に、一実施形態における、属性の集合に対するAND演算、OR演算、NOT演算、XOR演算、類似度及び非類似度の計算の処理手順を示す。一実施形態における処理手順であり、異なる手順で実施することも可能である。また、AND演算、OR演算、NOT演算、XOR演算の定義や、類似度及び非類似度の定義を変えることも可能である。定義を変えれば、処理手順も変わる。
図21は、一実施形態におけるAND演算の流れ図である。図21を使ってAND演算の処理手順を説明する。
まず、AND演算の対象となる属性の集合Aと属性の集合Bとを指定する(S21)。典型的には、物識別子を指定すると、当該物識別子に対応付けられた0以上の属性識別子の集合が指定されたことになる。次に、属性の集合Aに属する属性と、属性の集合Bに属する属性とのうち、同じ属性識別子を持つ属性を選択する(S22)。
次に、選択された属性のうち、同じ属性識別子で、且つ対応付けられた真偽値が同じである属性を選択し、選択された属性を要素とする属性の集合を新たに生成する(S23)。そして、新たに生成された属性の集合をAND演算の結果とする。
一方、属性が真偽値を持たない場合は、共に同じ属性識別子を持っている属性を選択し、選択された属性を要素とする属性の集合を新たに生成する。2つの選択処理を併せて、一致する属性を選択する、と記述する。すると、AND演算は、属性の集合Aの属性と属性の集合Bの属性とについて、一致する属性を選択し、選択された属性を要素とする属性の集合(共通部分)を新たに生成する処理である。
図22は、一実施形態におけるOR演算の流れ図である。図22を使ってOR演算の処理手順を説明する。
まず、OR演算の対象となる属性の集合Aと属性の集合Bとを指定する(S31)。次に、属性の集合Aの属性と属性の集合Bの属性とのうち、同じ属性識別子を持ち、かつ、真偽値が共に肯定の値または共に否定の値の属性を選択する(S32)。また、属性が真偽値を持たない場合は、同じ属性識別子を持つ属性を選択する。2つの選択処理を併せて、一致する属性を選択する、と記述する。なお、この処理は、上述のAND演算の結果と一致する。
次に、属性の集合Aの属性のうち、属性の集合Bに含まれていない属性を選択する。つまり、属性の集合Aにのみ含まれる属性識別子を選択する。また、属性の集合Bの属性のうち、属性の集合Aに含まれていない属性を選択する。つまり、属性の集合Bにのみ含まれる属性識別子を選択する(S33)。そして、S32及びS33で選択されたすべての属性を要素とする属性の集合を、OR演算の結果として新たに生成する(S34)。
つまり、真偽値を考慮しない場合、上記の処理で得られる属性の集合は、属性の集合A及び属性の集合Bの少なくとも一方に含まれる属性識別子を集めた新たな属性の集合(和集合)となる。一方、真偽値を考慮する場合、上記の処理で得られる属性の集合は、例えば、属性の集合A及び属性の集合Bの和集合から、属性の集合A及び属性の集合Bのいずれにも含まれ、且つ対応づけられた真偽値が異なる属性を除くことによっても得ることができる。
図23は、一実施形態におけるNOT演算の流れ図である。図23を使ってNOT演算の処理手順を説明する。
まず、演算の対象となる属性の集合を指定する(S41)。次に、指定された属性の集合に含まれる全ての属性について、対応付けられた真偽値の値を反転させる。すなわち、真偽値が真の値の場合は偽の値に変え、真偽値が偽の値の場合は真に変えた新たな属性を生成する。そして、生成された属性を集めて新たな属性の集合を生成する(S42)。
図24は、一実施形態におけるNAND演算の流れ図である。図24を使ってNAND演算の処理手順を説明する。
まず、NAND演算の対象となる属性の集合Aと属性の集合Bとを指定する(S51)。次に、属性の集合A及び属性の集合Bの属性のうち、属性識別子が同じで、且つ対応付けられた真偽値が同じである属性を選択して、新たな属性の集合を生成する(S52)。これは、上述のAND演算の結果に相当する。
次に、新たに生成された属性の集合に含まれる各属性について、対応付けられた真偽値を反転させる。すなわち、真偽値が真の場合は偽に変えた属性を生成し、真偽値が偽の場合は真に変えた属性を生成する(S53)。これは、上述のNOT演算の結果に相当する。これによって得られた属性の集合を、NAND演算の結果として出力する。
図25は、一実施形態におけるXOR演算の流れ図である。図25を使ってXOR演算の処理手順を説明する。
まず、XOR演算の対象となる属性の集合Aと属性の集合Bとを指定する(S61)。次に、属性の集合Aの属性のうち、属性の集合Bに含まれていない属性を選択する。つまり、属性の集合Aにのみ含まれる属性識別子を選択する。また、属性の集合Bの属性のうち、属性の集合Aに含まれていない属性を選択する。つまり、属性の集合Bにのみ含まれる属性識別子を選択する(S62)。この処理は、図22に示されるS33の処理に対応する。そして、S62で選択されたすべての属性を要素とする属性の集合を、XOR演算の結果として新たに生成する(S63)。
つまり、属性の集合A及び属性の集合Bの一方にのみ含まれる属性識別子を集めた新たな属性の集合が生成される。なお、上記の処理で得られる属性の集合は、例えば、属性の集合A及び属性の集合Bの和集合(OR演算の結果)から、属性の集合A及び属性の集合Bの共通部分(AND演算の結果)を除くことによっても得ることができる。
図26は、一実施形態における共通度を計算する処理の流れ図である。図26を使って、共通度の計算の処理手順を説明する。
まず、演算対象となる属性の集合Aと属性の集合Bとを指定する(S71)。次に、属性の集合Aと属性の集合Bとに含まれる属性のうち、属性識別子が同じで、且つ対応付けられた真偽値が同じ属性を選択する(S72)。属性が真偽値を持っていない場合は、同じ属性識別子を持つ属性を選択する。2つの選択処理を併せて、一致する属性を選択する、と記述する。副識別子が異なっていても主識別子が同じであれば、属性が同じであるとしてもよい。
そして、選択された属性の数を計数した結果を共通度として出力する(S73)。一致する属性を選択する条件は、一例であり、他の条件でもよい。物と属性とのつながりがつながりの程度を表わす重みを持つ場合、組数を数える代わりにその重みの値を合計してもよい。
なお、共通度の計算処理において、副識別子に関係なく主識別子が同じかどうかだけを判断基準にすると、類似度の計算処理になる。
図27は、一実施形態における非共通度を計算する処理の流れ図である。図27を使って、非共通度の計算の処理手順を説明する。
まず、演算対象となる属性の集合Aと属性の集合Bとを指定する(S81)。次に、属性の集合Aと属性の集合Bの属性とのうち、同じ属性識別子を持ち、かつ、対応付けられた真偽値が異なる属性を選択する(S82)。属性が真偽値を持っていない場合は、一方の属性の集合にしか存在しない属性を選択する。2つの選択処理を、不一致の属性を選択する、と記述する。
そして、選択された属性の数を計数した結果を非共通度として出力する(83)。不一致の属性を選択する方法は、一例であり、他の選択条件でもよい。物と属性とのつながりがつながりの程度を表わす重みを持つ場合、組数を数える代わりにその重みの値を合計してもよい。
なお、共通度の計算処理において、副識別子に関係なく主識別子が同じかどうかだけを判断基準にすると、非類似度の計算処理になる。
前述の演算処理では、あらかじめ保持された演算部1070によって、属性の集合の各属性に対する処理が自動的に行われる。この論理演算システムの利用者は、各属性に対する処理を個別に指示しない。この論理演算システムの利用者は、物または属性の集合を演算の対象として指定すると、物が持っている属性または属性集合の属性に対して、自動的に演算が行われる。
リレーショナルデータベース14を用いた場合の(3)知識の集まりと知識のネットワークについて説明する。
物は、例えば、図19に示される物と属性との一覧表というデータ構造で、データベースに保持されている。1つ以上の属性を指定して、指定されたすべての属性を持つ物を属性の一覧表から選択する。すると、指定されたすべての属性を持つ物からなる物の集まりが生成される。これを知識の集まりと呼ぶ。ある知識の集まりを生成するために使ったすべての属性だけを1つの物につなぐと、その物は知識の集まりを意味する抽象的な物になる。
知識の集まりであることを表わす属性を、知識の集まりを表わす抽象的な物に直接つないで対応づけたほうがよい。たとえば、知識の集まり表わす抽象的な物を識別する識別データが直接つながる属性または知識の集まりを表わす抽象的な物を特徴づける特徴データが直接つながる属性を、その知識の集まりを表わす抽象的な物につなぐ。すると、その知識の集まりを表わす抽象的な物とその知識の集まりに含まれる物を区別しやすくなる。
この知識の集まり中には、他の物とつながっていない物があることもある。知識の集まりにおいて、物同士のつながりが全くないこともある。また、ある物が他の物とつながっていることもある。ある知識の集まりの中の物すべてがつながりあっていることもある。つながり合った物が、知識ネットワークになる。1つの知識の集まりの中に、つながり方の異なる知識ネットワークがいくつか存在する場合もある。知識の集まりの外の物とつながってもよいし、知識の集まりと関係なく物をつないでもよい。
知識の集まりの中の物は、知識ネットワークに属して他の物とつながることにより他の物との関係が明確になる。言い換えると、知識ネットワークは、体系化された知識を表現している。家族という知識の集まりの中に、年齢順という関係でつながった知識ネットワークを作ることもできるし、親子関係という関係で知識ネットワークを作ることもできる。1つの知識の集まりの中に、複数の知識ネットワークを作ることもできる。
ある知識の集まりの中にある知識ネットワーク内の物が、他の知識の集まりの中にある別の知識ネットワークに属す場合もある。たとえば、ひとりの人は、家族という知識ネットワークに属すと同時に、学校という知識ネットワークに属する場合がある。
図28A〜図28Cは、図15の知識ネットワークを実現するデータ構造の一実施形態である。
図28Aは、物の名前87と物識別子88との対応表86であり、図17Bの物の名前と物識別子との対応表に相当する。この対応表86は、物の名称を言葉で記述した文字列である単語と、物識別子88とを対応づけている。図28Bは、知識ネットワークと属性との対応表101であり、知識ネットワークを特徴づける属性識別子103と、知識ネットワーク識別子102とを対応づけている。
知識ネットワークと属性との対応表101において、ある知識ネットワークを特徴づけるすべての属性の属性識別子だけを1つの物識別子につなぐ。すると、その物識別子で識別される物は、その知識ネットワークを表わす抽象的な物になる。同じ属性によって生成される知識の集まりを表わす抽象的な物と区別するために、知識ネットワークを表わす属性と知識ネットワークを表わす抽象的な物とをつなぐ方がよい。また、この対応表101の各行、つまり、各知識ネットワーク識別子102と属性識別子103との組に、付属情報として重みを直接対応づけてもよい。この重みは、その知識ネットワークと属性との関連性の強さを表わす。
図28Cを使って、さらに詳しく説明する。
知識ネットワーク内での物であるノード80は、物識別子81を1つだけ持っている。さらに、物であるノード80は、知識ネットワーク情報84を持つことができる。物であるノードが属している知識ネットワーク1つにつき、1つの知識ネットワーク情報が、その物であるノードに保持される。1つの物であるノード80が持つ知識ネットワーク情報84の数は、0個でも1個でもよく、1個に限らず複数個でもよい。知識ネットワーク情報84は、0個以上の順方向ポインタ82と、0個以上の逆方向ポインタ83と、1つの知識ネットワーク識別子85とからなる。順方向ポインタ82と逆方向ポインタ83とが共に0個の場合は、物であるノード80が1個の知識ネットワークになる。
例えば、物であるノードAが物であるノードBとつながっているとする。ノードAからノードBへ一方向につながっている場合には、ノードAは、順方向ポインタ82にノードBの物識別子を保持し、ノードBは、逆方向ポインタ83にノードAの物識別子を保持する。このようにすると、つながりの方向を表わすことができ、かつ、つながりの方向である順方向にも、つながりの逆方向である逆方向にも簡単に移動できる。一方、ノードAとノードBとが双方向につながっている場合には、ノードAは、順方向ポインタ82にノードBの物識別子を保持し、ノードBは、順方向ポインタ82にノードAの物識別子を保持する。
方向のあるポインタの始点を上位、終点を下位と呼び区別してもよいし、方向のあるポインタの始点を下位、終点を上位と呼び区別してもよい。また、双方向ポインタでつながっている場合、上位下位の区別がないので並列と呼んでもよい。
また、物であるノードAが、物であるノードCに直接つながっているかどうかを簡単に調べることができる。ノードCの物識別子を持った順方向ポインタ82または逆方向ポインタ83を、ノードAが持っているかどうかを調べればよい。つながっている2つの物であるノードA、Cが、それぞれ他方につながる順方向ポインタ82を持っている場合は、双方向につながっている。つながっている2つのノードA、Cの一方が順方向ポインタ82に他方の物識別子を保持し、他方が逆方向ポインタ83に一方の物識別子を保持している場合は、一方向につながっている。
また、ノード80の知識ネットワーク情報84は、さらに重み100を持ち、その重み100がその知識ネットワークとその物との関連性の強さを表わしてもよい。重み100を保持しなくてもよい。物であるノード80が、知識ネットワーク識別子85と重み100とを併せて保持することにより、物と知識ネットワークとの関連の強さを表現できる。物が属している知識ネットワークを選択するとき、この重み100を判断基準にすることができる。重み100の値がより大きい知識ネットワークを選択する、重み100の値がより小さい知識ネットワークを選択する、あるいは、重み100の値が指定された範囲の知識ネットワークを選択するなど、ある知識ネットワークから別の知識ネットワークに移る場合に、重み100を選択基準にすることができる。
さらに、図28Cには描かれていないが、1つの知識ネットワーク情報84の順方向ポインタ82又は逆方向ポインタ83がそれぞれ重みを持ち、そのポインタで示されるノードとのつながりの強さの程度を表わしてもよい。これにより、いくつかのポインタの中から1つのポインタを選択する場合の基準として重みを利用できる。
知識ネットワーク識別子85は、知識ネットワークを識別する識別子である。複数の属性を指定して生成された知識の集まりの中の知識ネットワークは、複数の属性によって特徴づけられる。もちろん1つの属性によって特徴づけられた知識ネットワークもありうる。知識ネットワーク識別子85は、知識ネットワークを特徴づける属性すべてとつながると、知識ネットワークを特徴づける属性を持ち、その知識ネットワークを表わす抽象的な物になる。選択に用いられた属性以外の属性がその知識ネットワーク識別子とつながってもよい。
知識の集まりと関係なく作られた知識ネットワークは、その知識ネットワークの特徴を表わす属性で知識ネットワークを識別してもよい。1つの知識の集まりの中に複数の知識ネットワークがある場合は、各知識ネットワークを特徴付ける属性を追加して、それらを区別する。このようにすると、1つの知識の集まりの中の複数の知識ネットワークから1つの知識ネットワークを選ぶことが容易になる。
図29は、ノードのデータ構造の一実施形態である。図29の上段に示される物と知識ネットワークとの対応表は、知識ネットワーク識別子と物識別子とを対応づける。物識別子を検索キーに指定して検索すると、当該物識別子で識別される物が属している知識ネットワーク識別子がわかる。知識ネットワーク識別子と物識別子と重みとを対応づけてもよい。もちろん、この重みは無くてもよい。この重みは、知識ネットワークと物との関連性の程度を表わす。
図29の下段に示されるポインタ一覧は、物識別子と知識ネットワーク識別子との組み合わせに、順方向ポインタと逆方向ポインタとをさらに対応付ける。この図では、順方向ポインタと逆方向ポインタとの2つのポインタに分けているが、1つのポインタと順方向か逆方法かを表わす情報との対にしてもよい。これらのポインタは、知識ネットワーク内での物のつながりを表わしている。ポインタは、つながっている他の物の物識別子を持っている。使っていないポインタの値をNULLのような特別な値にしてもよい。ポインタに重みも持たせてもよい。この重みは、つながっている他の物との関連の程度を表わす。この重みは無くてもよい。ノードは、物と知識ネットワークとの対応表とポインタ一覧とから成る。
知識ネットワーク識別子と物識別子とを指定してポインタ一覧を検索する。検索結果の中から、その知識ネットワーク内でその物とつながっている他の物の物識別子を持つポインタが取得できる。
ポインタから取得された別の物の物識別子とネットワーク識別子とを検索キーにしてポインタ一覧を検索すると、別の物が持つポインタを取得できる。この処理は、ポインタで指し示された物識別子であるノードを取得したことになる。このように、ポインタが持っている物識別子を取得することは、知識ネットワーク内で、ポインタを辿って、ポインタで指定された物に移動したことを意味する。つまり、知識ネットワーク内で、互いにつながっているある物から別の物に移動することを意味する。ポインタ一覧から、知識ネットワーク識別子と物識別子と、ポインタとを削除することが、物と物とのつながりを削除することである。ポインタ一覧に、知識ネットワーク識別子と物識別子とポインタとを追加することが、物と物とをつなぐことである。
知識ネットワークを特徴づける属性の属性識別子と知識ネットワーク識別子とを、次のようにして対応づける。
1つの知識ネットワーク識別子と複数の属性識別子とを対応づける場合は、次のようにする。複数の属性それぞれを識別する属性識別子と当該知識ネットワーク識別子との組を属性の数だけつくり、これらの組を図28Bに示される知識ネットワークと属性との対応表101に追加する。知識ネットワーク識別子をキーにして、知識ネットワークと属性との対応表101を検索すると、この知識ネットワークを特徴づける属性の属性識別子を知ることができる。逆に、1つの属性識別子をキーにして、知識ネットワークと属性との対応表101を検索する。検索結果に対して、さらに別の属性識別子をキーにして検索をする。これを繰り返すと、検索に使ったすべての属性によって特徴づけられた知識ネットワークの知識ネットワーク識別子が取得できる。
このようにすると、複数の属性で特徴づけられた知識ネットワーク、すなわち、特定の分野の知識ネットワークを取得することができる。知識ネットワークと対応づけられる属性は、その知識ネットワーク内のすべての物が持つ属性から選んでもよいし、一部の物が持っている属性でもよい。また、その知識ネットワーク内の物が持っていない属性でもよい。その知識ネットワーク特有の属性を生成して、知識ネットワークと対応づけてもよい。図29の物と知識ネットワークとの対応表を、知識ネットワーク識別子を検索キーにして検索すれば、その知識ネットワークに属する物の物識別子を取得することもできる。
物であるノードは、物識別子と知識ネットワーク識別子とを持っているので、知識ネットワーク識別子をキーにしてノードを検索すれば、その知識ネットワーク識別子を持っている物識別子が取得できる。つまり、その知識ネットワークに含まれる物がわかる。
順方向ポインタと逆方向ポインタとの組は、ノード間の矢印に相当する。順方向ポインタは、矢印の方向につながったノードに移動する場合に用いる。逆方向ポインタは、矢印と逆方向につながったノードに移動する場合に用いる。ポインタに重みを保持させ、ポインタで直接関連付けられた物とそのポインタを持つ物の関連の強さを表現できる。
図30の表は、属性の階層情報の例である。属性を階層化する場合の属性の階層情報の一実施形態である。この例は、いわゆるリスト構造というデータ構造である。1つの属性の属性識別子は、上位階層へのポインタと下位階層へのポインタとを保持する。上位階層の属性へのポインタは、上位階層の属性の属性識別子を保持する。下位階層へのポインタは、下位階層の属性の属性識別子を保持する。属性が、上位階層へのポインタまたは下位階層へのポインタを持たない場合は、その上位階層または下位階層へのポインタは、ポインタが無いことを表わすNULLなどの特別な値とする。
属性識別子を検索キーに指定して、上位階層へのポインタの列を検索すれば、指定された属性の下位の属性が選択される。属性識別子を検索キーにして、下位階層へのポインタの列を検索すれば、指定された属性の上位の属性が選択される。属性識別子を検索キーにして、属性識別子の列を検索すれば、指定された属性の上位階層へのポインタおよび下位階層へのポインタが選択される。
属性の階層情報で階層化された属性をいくつか選ぶ。選ばれた属性の1つをキーにして図19に示される物と属性の一覧表を検索すると、その属性を持つ物が選択される。選ばれた属性すべてで前述の検索を繰り返す。これらの検索で選択された物だけを集めて知識の集まりをつくる。このようにすると、ある範囲の階層化された属性のどれかを持つ知識の集まりができる。たとえば、この知識の集まりにおいて上位の属性を持つ物から直下の階層の属性を持つ物をつなぐと、階層化された知識ネットワークができる。
次に、リレーショナルデータベース14を用いた場合の(4)知識の集まりと知識ネットワークの利用方法について説明する。
まず、図31を参照して、知識の集まりの使用例を説明する。まず、いくつかの属性の属性識別子をキーに指定して、図19に示される物と属性との一覧表を検索すれば、検索に使ったすべての属性を持つ物だけが集まった、知識の集まりが生成できる(S131)。次に、与えられた物の物識別子をキーに指定して、生成された知識の集まり検索する(S132)。生成された知識の集まりの中に検索キーの物識別子が存在すれば、その物は、その知識の集まりを生成する際に指定された属性を全て持っていると判断できる(S133)。
具体例として、ある学校の卒業生という知識の集まりが生成されているとする。鈴木さんの識別子でこの卒業生の知識の集まりを検索する。鈴木さんの識別子が選択できれば、鈴木さんはこの学校の卒業生であると判断できる。あらかじめ与えられた1つまたは1つ以上の属性識別子を指定して生成された知識の集まりに、あらかじめ与えられた物が含まれている場合、与えられた物は、与えられた属性である条件を満たしていると判断される。
仮説において、ネットワーク化された知識の利用方法を説明した。仮説で説明した利用方法を実施する手順を、図28A〜図28Cを使って説明する。
知識ネットワークを生成又は削除する、物を知識ネットワークに追加又は削除する、物同士のつながりを追加、削除、又は変更するなどが学習である。追加と削除とを組み合わせることにより、つながりを変えることができる。つまり、不要となったつながりを削除し、新しいつながりを追加すると、つながりが変更される。物の付属情報である属性を追加すること、及び削除することも学習である。属性に特徴データ又は識別データを追加又は削除することも学習である。
次のようにして知識ネットワークを生成することができる。
まず、新規に生成する知識ネットワークの知識ネットワーク識別子を決める。次に、新規に生成する知識ネットワークを特徴づける属性を決める。そして、決められたネットワーク識別子と決められた属性の属性識別子との組を、図28Bに示される知識ネットワークと属性との対応表101に追加する。知識ネットワークを特徴づける属性が複数ある場合は、属性の数だけ、決められたネットワーク識別子と決められた属性識別子との組をつくり、知識ネットワークと属性との対応表101に追加する。これで、知識ネットワークと属性とが対応づけられる。このようにして知識ネットワーク情報84を生成できる。ただし、このままでは、知識のない知識ネットワークである。
次に、知識である物を知識ネットワークに追加する。物であるノード80に知識ネットワーク情報84を追加すれば、その物が知識ネットワークに追加される。具体的には、図29の物と知識ネットワークとの対応表に、知識ネットワーク識別子と物識別子とを対応付けて追加する。これでノードに知識ネットワーク情報が追加された。
次に、知識ネットワーク内の物同士をつなぐ。知識ネットワーク情報84に順方向ポインタ82及び逆方向ポインタ83を追加すると、物と物とをつなぐことができる。つなぐ2つの物は、すでに当該知識ネットワーク情報84を持っているとする。具体的には、図29のポインタ一覧に、順方向ポインタ及び逆方向ポインタを追加すれば、物と物とがつながる。一方の物識別子と知識ネットワーク識別子とに、他方の物識別子が設定された順方向ポインタ又は逆方向ポインタを対応づけて、ポインタ一覧に追加する。同様に、他方の物識別子と知識ネットワーク識別子とに、一方の物識別子が設定された順方向ポインタ又は逆方向ポインタを対応づけて、ポインタ一覧に追加する。これで、2つの物がつながる。
前者の物と後者の物とがお互いの物識別子を順方向ポインタに設定した場合は、2つの物は、双方向につながる。前者の物と後者の物との一方が順方向ポインタに他方の物識別子を設定し、他方が逆方向ポインタに一方の物識別子を設定すれば、2つの物は一方向につながる。
次のようにして物のつながりをなくすことができる。
つながっている2つの物は、お互いに相手の物識別子が設定されたポインタを持っている。2つのポインタをポインタ一覧から削除すると、2つの物のつながりを削除できる。ある知識ネットワーク内で、ある物についてポインタ一覧にある物識別子が設定されたポインタが1つも存在しなくなった場合、その物をその知識ネットワークから削除してもよい。物と知識ネットワークとの対応表から、その知識ネットワーク識別子とその物識別子とを対応付ける行を削除すれば、その物はその知識ネットワークから削除される。
次のようにして、物の付属情報である属性を追加又は削除する。
物識別子と属性識別子とをキーにして図19に示される物と属性との一覧表を検索する。選択された行を削除すると、その属性と物とのつながりを削除できる。属性そのものを削除しているわけではない。物識別子と属性識別子との対応関係を物と属性との一覧表に追加すると、属性を物に追加できる。
次のようにして2つ物の間に新しく物を追加できる。まず、前述の手順で、新しい物を2つの物につなぐ。次に、前述の手順で、2つの物同士のつながりを削除する。
次のようにして、与えられた属性を使って物の認識を行う。
与えられたいくつかの属性の中から1つの属性を取り出し、その属性の属性識別子をキーにして、物と属性との一覧表を検索する。次に、残りの与えられた属性の中から1つの属性を取り出し、取り出された属性の属性識別子をキーにして検索結果をさらに検索する。与えられた属性すべてについて、これを繰り返し、選択行の物識別子が1種類になれば、その物識別子が、与えられた属性をすべて持つ物を表わす。与えられた属性によって物を識別したことになる。
与えられた属性すべてについて検索を繰り返しても、物識別子が複数種類ある場合は、複数の物識別子が、識別される物の候補であることが分かる。この場合は、属性を追加して、物識別子が1種類になるまで繰り返せばよい。
属性は、次のようにして選択される。知識ベースシステムに入力された情報から生成された特徴データまたは識別データと同じと判断された知識ベース内の特徴データまたは識別データが選択され取得される。選択され取得された特徴データまたは識別データに直接つながり、直接対応づけられた属性が選択され取得される。この選択され取得された属性を使って前述のように物の認識が行われる。
次のようにして、推論を行う。
2つの物を指定し、ポインタを辿りながら一方の物から他方の物へ移動する経路を探す。移動する経路が見つかれば、2つの物の間になんらかの関係がある可能性がある。この処理が推論に対応づけられる。つながりに方向がある場合は、順方向ポインタと逆方向ポインタの両方を使う方法と、順方向ポインタと逆方向ポインタのどちらか一方だけを用いる方法がある。この処理が推論に対応づけられる。
図32に示されるように、まず、出発点となる物の物識別子、つまり出発点のノードを指定する(S141)。この物識別子をキーにして、図29に示される物とネットワークとの対応表を検索すれば、当該物識別子で識別される物が属する知識ネットワークの知識ネットワーク識別子を得ることができる。
次に、物識別子と知識ネットワーク識別子とをキーとして、ポインタ一覧を検索すれば、知識ネットワーク識別子で指定された知識ネットワーク内において、物識別子で指定された物の順方向ポインタ又は逆方向ポインタを取得することができる(S142)。
次に、取得された順方向ポインタ又は逆方向ポインタに設定された物識別子を参照すれば、最初に指定した物識別子で識別される物に関連付けられた物(ノード)が取得できる(S143)。上記の処理を繰り返せば、同じ知識ネットワーク内にも他の知識ネットワークへも移動できる。移動した物識別子を順に記録すれば、その記録が移動した経路になる。
1つの物を出発点として、ポインタを辿りながらつながっている他の物へ移動する。出発点の物とたどり着いた物とには、何らかの関係がある可能性がある。この処理も推論である。ある物が複数の物につながっているとき、各ポインタの重みを比較して、一番関連の程度が大きいポインタを選択して移動することができる。ある物から別の知識ネットワークに移動する場合、各知識ネットワーク情報が持つ重みを比較して、一番関連の程度が小さい知識ネットワークに移動することもできる。
このように、1つの知識ネットワーク内を移動して、または、複数の知識ネットワークを移動することにより、物と物とが関連する可能性を見つけることができる。2つの物が関連する可能性があると分かれば、共通度、非共通度、類似度などを求めて、2つの物が関連するかどうかの判断材料を生成できる。ここで記号論理を使えば、2つの物が関連するかどうかの精緻な判断ができる。
図33では、音声によって言語の中の「Dog」という単語が、知識ベースシステムに入力され、識別データが生成され、一実施形態の知識ベースに格納されている。音声で「Dog」という単語が入力されると、特徴抽出部1020によって音声データの識別データが生成される。また、単語としての「Dog」という文字の映像が入力されると、特徴抽出部1020によって画像の識別データが生成される。さらに、単語の文字コードとしての「Dog」が入力されると、特徴抽出部1020によって文字コードの識別データが生成される。
図33では、「Dog」を発音記号で表記しているが、識別データの表現形式はこれに限定されず、上述の音声データ、映像データ、又は文字コードなどであってもよい。例えば、マイクから入力された音の場合、100ヘルツの音の強さは55、200ヘルツの音の強さは156・・・、等というように、周波数成分ごとの信号強度を表すバイナリデータあるいは数値が並んだパターンデータが、識別データになる。図33等の音符のマークで表されている特徴データおよび識別データは、上記の音データあるいは音のパターンデータである。
なお、知識ベース内において、識別データは、意味や概念を直接表すものとして利用されない。この知識ベース内では、特徴データだけが意味や概念を直接保持し表わしているので、特徴データを取得しなければ意味や概念は判らない。
また、一実施形態の知識ベースは物や属性を含んでいる。たとえば、図33に示される物(3003)は、犬を表わす。また、属性(1003)は、犬の外観という特徴を代表し表わす。なお、以降の説明において、「物(xxxx)」はxxxxという物識別子を指し、「属性(yyyy)」はyyyyという属性識別子を指すものとする。
図33を使って、一実施形態の知識ベースにデータが格納され、知識が蓄積される過程の一例を説明する。これは、あくまでも一例でありこれ以外の過程もある。
まず、犬の映像がカメラで撮影され、その映像データが本願技術の一実施形態である知識ベースシステム1000に入力される。入力装置であるカメラが犬の映像を撮影し、撮影された映像データがデータ入力部1010によって知識ベースシステム1000に入力される。データ入力部1010が受け取った入力データである映像データは、特徴抽出部1020に渡される。特徴抽出部1020は、入力データから特徴を抽出し、特徴データを生成する。
生成された特徴データは、データ比較部1030に渡される。データ比較部1030は、すでに格納されている特徴データと渡された特徴データとを比較し、同じ特徴データがあるかどうかを調べる。同じ特徴データがない場合、データ格納部1040は、渡された特徴データを知識ベースに格納し、知識ベース内に新たに属性を生成し、格納された特徴データと新たに生成された属性とをつなぐ。さらにデータ格納部1040は、知識ベース内に新たに物を生成し、新たに生成された物と生成された属性とをつなぐ。その結果、映像を直接発した対象物である犬と間接的に対応づけられた物が、知識ベース内に生成される。知識ベース内の物は、対象物と直接対応づけられてはいない。
図33のステップ1の物の追加による学習処理を説明する。
対象物である犬の映像がカメラで撮影されているときに、マイクから犬の鳴き声「bowwow」が知識ベースシステム1000に入力されたとする。
対象物である子犬の映像がカメラで撮影され、知識ベースシステム1000のデータ入力部1010に入力される。データ入力部1010に入力された映像データは、特徴抽出部1020に渡される。特徴抽出部1020は、入力された映像データから特徴データを生成する。データ比較部1030は、同じ特徴データが既に知識ベース内にあるか調べる。同じ特徴データがないので、データ格納部1040は、その特徴データを知識ベースに格納し、図33の属性(1021)を生成し、格納された特徴データを属性(1021)につなぐ。
さらに、データ格納部1040は、図33の物(3003)を生成し、属性(1021)と物(3003)とをつなぐ。このようにして、知識ベースシステム1000は、知識ベースシステム1000外から情報を受け取り、受け取った情報から特徴データを生成し、生成された特徴データを知識ベースに格納する。属性が生成され、格納された特徴データはその属性につながる。さらに物が生成され、生成された属性は生成された物につながる。特徴データが、属性を介して、新たに生成された物につながることは、物の追加による学習である。
マイクから入力された犬の鳴き声に対しても同じように入力処理が行われる。マイクを通してデータ入力部1010に入力された犬の鳴き声「bowwow」という音声データは、特徴抽出部1020に渡される。特徴抽出部1020は、取得した音声データから特徴データを生成する。データ比較部1030は、同じ特徴データが知識ベース内にないと判断する。すると、生成された特徴データはデータ格納部1040によって、知識ベースに格納される。データ格納部1040は、図33の属性(1011)を生成し、格納された特徴データを属性(1011)につなぐ。図には描かれていないが、物が生成され、生成された物に属性(1011)がつながるようにしてもよい。もちろん、この物を生成しなくてもよい。
操作者からキーボード入力やマウス操作があると、学習部1050は次のような学習処理を行う。物が生成され、続けて特徴データが生成されると、自動的に次のような学習処理を開始してもよい。ステップ1の入力開始時にキーボード入力やマウス操作などを行うことにより、あらかじめ学習処理を指示してもよい。
まず学習部1050は、最初に生成され格納された知識ベース内の特徴データ、または、最初に生成された特徴データと同じと判断された知識ベース内の特徴データを取得する。検索部1060は、取得された特徴データにつながる属性(1021)を取得する。さらに検索部1060は、取得された属性(1021)につながる物(3003)を取得する。学習部1050は、取得された物(3003)を取得し、物(3003)を認識する。
次に学習部1050は、犬の鳴き声「bowwow」から生成され、後から格納された特徴データ、または、後から生成された特徴データと同じと判断された知識ベース内の特徴データを取得する。検索部1060は、その特徴データにつながる属性(1011)を取得する。この時点では、2つの属性(1021、1011)は、同じ1つの物に直接つながっていないので、学習部1050は次の処理を行う。
学習部1050は、認識された物(3003)と、後から生成され、認識された物(3003)と直接つながらない属性(1011)をつなぐ。物(3003)は、属性(1011)を経由して犬の鳴き声の特徴データを持つ物になる。図33のステップ1は、この状態である。
なお、連続して入力されたかどうかの基準、つまり時間間隔の基準は、あらかじめ知識ベースシステム1000に保持されている。もちろん、知識ベースシステム1000外から新たな基準を受け取り、その基準を保持し、基準を追加変更することもできる。同じであるかどうかの判断基準もあらかじめ知識ベースシステム1000内に保持されている。もちろん、知識ベースシステム1000外から新たな基準を受け取り、その基準を保持し、基準を追加変更することもできる。
前述のように知識ベースに特徴データが格納され、知識ベースが構築されると、次のような認識処理ができる。たとえば、犬の鳴き声がマイクを通して知識ベースシステム1000のデータ入力部1010に入力されたとする。データ入力部1010から特徴抽出部1020に犬の鳴き声の音声データが渡され、渡された音声データから特徴抽出部1020で特徴データが生成される。データ比較部1030が生成された特徴データを受け取り、知識ベース内に同じ特徴データがあるか調べる。同じ特徴データが見つかると、検索部1060は見つかった特徴データにつながった属性(1011)を取得する。さらに検索部1060は、属性(1011)につながっている物(3003)を取得し、認識する。
知識ベースシステム1000に入力された犬の鳴き声によって、その鳴き声を直接発する対象物が物(3003)であることを認識したことになる。さらに検索部1060は、物(3003)につながった他の属性(1021)を取得し、その属性(1021)につながった犬の映像から生成された他の特徴データを取得できる。取得された特徴データは、認識された対象物から直接発せられた映像という情報から生成された特徴データである。このように、物(3003)の認識に使われた鳴き声以外の他の特徴データが取得できる。出力部1080は、取得された映像から生成された特徴データを受け取ると、その特徴データをもとにして出力装置である表示装置に犬の映像を表示する。
このように鳴き声によって対象物を認識し、認識された対象物である犬の映像を出力できる。
図33のステップ2の特徴データの追加による学習処理を説明する。
マイクから犬の鳴き声「bowwow」が知識ベースシステム1000に入力されたとする。マイクを通してデータ入力部1010に入力された音声データは、特徴抽出部1020に渡され特徴データが生成される。データ比較部1030は、生成された特徴データを受け取り知識ベース内に同じ特徴データがあるか調べる。同じ特徴データが見つかると、検索部1060は、見つかった同じ特徴データにつながった属性(1011)を取得する。さらに、検索部1060は、属性(1011)につながった物(3003)を取得する。以上の処理により、マイクで入力された犬の鳴き声「bowwow」によって物(3003)が認識された。
同じであるかどうかを判断する判断基準は、知識ベースシステム1000にあらかじめ備えられている。また、知識ベースシステム1000外から新たな判断基準を取得し、保持することもできる。同じであるかどうかを判断する判断基準を同一基準と呼ぶ。
続いて、別の大きな犬の映像がカメラで撮影され、知識ベースシステム1000のデータ入力部1010に入力される。データ入力部1010に入力された映像データは、特徴抽出部1020に渡される。特徴抽出部1020は、入力された映像データから特徴データを生成する。生成された特徴データを受け取ったデータ比較部1030は、同じ特徴データが知識ベース内にあるか調べる。この場合、同じ特徴データはないと判断される。データ格納部1040は、生成された特徴データを知識ベース内に格納し、図33の属性(1022)を生成し、格納された特徴データを生成された属性(1022)につなぐ。図には描かれていないが、データ格納部1040によって物が生成され、生成された物と属性(1022)がつながってもよい。この物を生成しなくてもよい。
操作者からキーボード入力やマウス操作があると、学習部1050は次のような学習処理を行う。連続して2つの特徴データが生成されると、自動的に次のような学習処理を開始してもよい。入力の前にキーボード入力やマウス操作を行うことによって、あらかじめ学習処理を指示してもよい。
まず学習部1050は、犬の鳴き声「bowwow」から生成され、最初に渡された特徴データと同じと判断された、知識ベース内の特徴データを取得する。検索部1060は、取得された特徴データにつながる属性(1011)を取得する。さらに検索部1060は、取得された属性(1011)につながる物(3003)を取得する。学習部1050は、取得された物(3003)を取得し、物(3003)を認識する。次に学習部1050は、大きな犬の映像から生成され、後から渡され格納された特徴データを取得する。検索部1060は、その特徴データにつながる属性(1022)を取得する。取得された2つの属性(1011、1022)が同じ物につながっていないので、学習部1050は次の処理を行う。
学習部1050は、認識された物(3003)と、後から取得され、認識された物(3003)と直接つながらない属性(1022)とをつなぐ。物(3003)は、属性(1022)だけを経由して、大きな犬の映像から生成された特徴データを持つ物になる。
図33のステップ3の特徴データの統合による学習処理を説明する。この学習処理は、ステップ2の特徴データの追加による学習処理の後に行われる、知識ベースに格納された特徴データの統合処理である。2つの異なる属性につながる特徴データを、共通の1つの属性につなぐ処理である。ステップ2の入力処理後、マウス操作やキーボード入力による統合処理の指示があると、学習部1050が次のような統合処理を行う。ステップ2の開始時に統合処理を行うことをマウス操作やキーボード入力で指示してもよい。
カメラから小さな犬の映像が入力され、特徴抽出部1020によってその特徴データが生成される。データ比較部1030は、生成された特徴データと同じ特徴データが知識ベース内にあるか調べる。同じ特徴データが知識ベース内にあるので、その特徴データとつながる属性(1021)が検索部1060によって取得される。さらに、取得された属性(1021)につながる物(3003)が検索部1060によって取得される。
次に、カメラから大きな犬の映像が入力され、特徴抽出部1020によってその特徴データが生成される。データ比較部1030は、生成された特徴データと同じ特徴データが知識ベース内にあるか調べる。同じ特徴データが知識ベース内にあるので、その特徴データとつながる属性(1022)が検索部1060によって取得される。さらに、取得された属性(1022)につながる物(3003)が検索部1060によって取得される。
属性(1021)と属性(1022)とが同じ物につながっているので、学習部1050は次の処理を行う。
学習部1050は、2つの属性(1021、1022)を取得する。異なる2つの属性につながる特徴データの数が共に1つの場合、学習部1050は、次の処理を行う。新規の属性(1003)を生成し、2つの特徴データを生成された属性(1003)につなぎ、2つの属性(1021、1022)との物(3003)のつながりを削除する。新たに属性(1003)を生成しないで、2つの属性(1021、1022)のどちらか一方の属性に、他方の属性につながっている特徴データを直接つなぎ、他方の属性と物(3003)のつながりを削除してもよい。
一方の属性につながる特徴データの数だけが1で、他方の属性につながる特徴データの数だけが1より大きい場合、学習部1050は、次の処理を行う。特徴データが1つだけつながる属性の特徴データを、他方の属性につなぎ、特徴データが1つだけつながる属性との物のつながりを削除する。
特徴データが新たに知識ベースに格納されると、属性が生成され、その生成された属性と格納された特徴データがつながる。特徴データが知識ベースに格納されると、その特徴データとつながる属性には、特徴データが1つだけつながることになる。そのため、上記のようにして特徴データを集約できる。
複数の特徴データがつながった属性は、その属性につながったいくつかの特徴データを束ねて集約し、集約された特徴データの性質、特徴、意味あるいは概念を代表して表わす。
ステップ3のような状態でも認識処理が行える。犬の鳴き声が知識ベースシステム1000に入力されると、入力された犬の鳴き声から特徴データが生成される。生成された特徴データが知識ベース内の特徴データと比較される。同じ特徴データが見つかると、見つかった特徴データにつながった属性(1011)が取得される。取得された属性(1011)につながった物(3003)が取得された後、物(3003)につながる他の属性(1003)ひとつだけを取得すれば、複数(この例では2つ)の特徴データが取得できる。一方、ステップ2の場合は、属性(1021)と属性(1022)のふたつの属性を取得しないと、ふたつの特徴データを取得できない。
たとえば、マイクを通して知識ベースシステム1000に「bowwow」という犬の鳴き声が入力されたとする。特徴抽出部1020で入力された犬の鳴き声から特徴データが生成され、生成された特徴データがデータ比較部1030に渡される。すでに知識ベース内に犬の鳴き声から生成された特徴データが格納されているため、データ比較部1030は同じ特徴データがあると判断する。すると、検索部1060は、同じと判断された特徴データにつながった属性(1011)を取得する。さらに、検索部1060は、属性(1011)につながった物(3003)を取得する。そして、物(3003)につながった他の属性(1003)を取得すると、その属性(1003)につながった特徴データを取得することができる。取得された特徴データを元にして、出力部1080が表示装置に犬の映像を表示する。この一連の処理によって、犬の鳴き声から犬であることを認識し、認識された犬の映像を表示したことになる。
ステップ2の状態であれば、属性(1021)と属性(1022)とのふたつの属性を取得することになるが、ステップ3の状態であれば属性(1003)ひとつを取得すればふたつの特徴データを取得できる。物につながる属性を取得する回数が少なくなるので、ステップ2より速く特徴データを取得できる。
図33のステップ4の識別データの追加による学習処理を説明する。
子犬の映像がカメラから知識ベースシステム1000のデータ入力部1010に入力される。特徴抽出部1020によって入力された映像から特徴データが生成され、データ比較部1030によって生成された特徴データと同じ特徴データが知識ベースにあるか調べられる。同じ特徴データが見つかり、その同じ特徴データがつながる属性(1003)が検索部1060によって取得される。さらに検索部1060によって、取得された属性(1003)につながる物(3003)が取得される。このように、カメラから入力された子犬の映像によって、映像を直接発した対象物が物(3003)であると認識された。
次に、単語の「Dog」という音声がマイクから知識ベースシステム1000のデータ入力部1010に入力される。特徴抽出部1020によって入力された音声から識別データが生成され、データ比較部1030によって生成された識別データと同じ識別データが知識ベース内にあるか調べられる。同じ識別データが見つからないので、生成された識別データがデータ格納部1040によって知識ベース内に格納される。データ格納部1040はさらに、属性(1013)を生成し、生成された属性(1013)と格納された識別データとをつなぐ。図には描かれていないが、データ格納部1040によって物が生成され、生成された物に格納された属性(1013)がつながってもよい。この物を生成しなくてもよい。
操作者からキーボード入力やマウス操作があると、学習部1050は次のような学習処理を行う。連続して1つの特徴データと1つの識別データが生成されると、自動的に次のような学習処理を開始してもよい。ステップ4の開始時に統合処理を行うことをマウス操作やキーボード入力で指示してもよい。
まず学習部1050は、子犬の映像から生成され、最初に渡された特徴データと同じと判断された、知識ベース内の特徴データを取得する。検索部1060は、取得された特徴データにつながる属性(1003)を取得する。さらに検索部1060は、取得された属性(1003)につながる物(3003)を取得する。学習部1050は、取得された物(3003)を取得し、物(3003)を認識する。
次に学習部1050は、単語「Dog」の音声から生成され、後から渡され格納された識別データを取得する。検索部1060は、その識別データにつながる属性(1013)を取得する。取得された2つの属性(1003、1013)が同じ物につながっていないので、学習部1050は次の処理を行う。
学習部1050は、認識された物(3003)と、後から取得され、認識された物(3003)と直接つながっていない属性(1013)とをつなぐ。物(3003)は、属性(1013)を経由して単語「Dog」から生成された識別データを持つ物になる。
同じようにして、単語「Doggy」の音声から生成された識別データが知識ベースに格納される。属性(1014)が生成され、格納された識別データにつながる。生成された属性(1014)は、物(3003)につながる。子犬の映像と単語「Doggy」とを対応づけて行ってもよいし、単語「Dog」と単語「Doggy」とを対応づけて行ってもよい。
図を見やすくするためステップ4の図では、属性(1021)、及び属性(1022)を省略している。
図33のステップ5の識別データの統合による学習処理を説明する。
この学習処理は、ステップ4の識別データの追加による学習処理の後に行われる、知識ベースに格納された識別データの統合処理である。2つの異なる属性につながる識別データを、共通の1つの属性につなぐ処理である。ステップ4の識別データの追加による学習処理後、マウス操作やキーボード入力による統合処理の指示があると、学習部1050が次のような統合処理を行う。ステップ4の開始時に統合処理を行うことをマウス操作やキーボード入力で指示してもよい。
マイクから単語「Dog」の音声が入力され、特徴抽出部1020によってその識別データが生成される。データ比較部1030は、生成された識別データと同じ識別データが知識ベース内にあるか調べる。同じ識別データが知識ベース内にあるので、その識別データとつながる属性(1013)が検索部1060によって取得される。さらに、属性(1013)につながる物(3003)が検索部1060によって取得される。
次に、マイクから単語「Doggy」の音声が入力され、特徴抽出部1020によってその識別データが生成される。データ比較部1030は、生成された識別データと同じ識別データが知識ベース内にあるか調べる。同じ識別データが知識ベース内にあるので、その識別データとつながる属性(1014)が検索部1060によって取得される。さらに、検索部1060によって属性(1014)につながる物(3003)が取得される。
2つの属性(1013、1014)が同じ物(3003)につながっているので、学習部1050は次の処理を行う。
学習部1050が2つの属性(1013、1014)を取得する。異なる2つの属性につながる識別データの数が共に1つの場合、学習部1050は、次の処理を行う。新規の属性を生成し、2つの識別データを生成された属性につなぎ、生成された属性を物(3003)につなぎ、2つの属性(1013、1014)との物(3003)とのつながりを削除する。又は、新たに属性を生成しないで、2つの属性(1013、1014)のどちらか一方の属性、たとえば属性(1013)に、他方の属性(1014)につながっている識別データをつなぎ、他方の属性(1014)と物(3003)とのつながりを削除してもよい。図を見やすくするためステップ5の図では、属性(1014)、属性(1021)、及び属性(1022)を省略している。
一方の属性につながる識別データの数だけが1で、他方の属性につながる識別データの数だけが1より大きい場合、学習部1050は、次の処理を行う。識別データが1つだけつながる属性の識別データを、他方の属性につなぎ、識別データが1つだけつながる属性と物とのつながりを削除する。
識別データが新たに知識ベースに格納されると、属性が生成され、その生成された属性と格納された識別データとがつながる。識別データが知識ベースに格納されると、その識別データとつながる属性には、識別データが1つだけつながることになる。そのため、上記のようにして識別データを集約できる。複数の識別データがつながった属性は、その属性につながったいくつかの識別データを束ねて集約し、集約された識別データを代表して表わす。
このように学習が行われると、「Dog」または「Doggy」という音声がマイクから入力されると、物(3003)であることが認識され、1つの属性(1013)だけを介して物(3003)につながる、特徴データから生成された犬の映像を、出力装置である表示装置に表示することができる。たとえば「Dog」という音声がマイクから入力されると、特徴抽出部1020が特徴を抽出し、識別データを生成する。データ比較部1030は、生成された識別データと同じ識別データが知識ベース内にあるか調べる。同じ識別データが知識ベース内にあるので、検索部1060は、その識別データにつながる属性(1013)を取得する。さらに検索部1060は、取得された属性(1013)とつながる物(3003)を取得する。検索部1060は、物(3003)につながる他の属性(1003)を取得し、その属性(1003)につながる特徴データを取得する。出力部1080は、取得された特徴データを元にして表示装置に犬の映像を表示する。さらに、検索部1060は、物(3003)につながる他の属性(1011)を取得し、その属性(1011)につながる特徴データを取得する。出力部1080は、取得された特徴データを元にして出力装置である音声再生装置から犬の鳴き声「bowwow」出力する。「Dog」という単語から犬という物を認識し、犬の映像や犬の鳴き声を出力したことになる。
言語の中の単語と、知識ベース内の属性や物とを対応づける必要のない場合、識別データは不要である。言語を持たない動物は、識別データを含まない知識ベースを構築し、識別データを含まない知識ベースを使って認識や推論などの知識処理を行うと考えられる。言語を学習した人間は、識別データと特徴データとの両方を含む知識ベースを構築していると考えられる。(1)識別データを含まず、特徴データ、属性、物からできた知識ベース、(2)特徴データを含まず、識別データ、属性、物からできた知識ベース、(3)識別データ、特徴データ、属性、物からできた知識ベースが構築できる。記号論理だけを行う場合は、(2)の知識ベースでもよい。
学習によって、知識ベース内の特徴データ、識別データ、属性、物が追加されるだけでなく、削除されることもある。学習によって、特徴データ、識別データ、属性、物のつながりが追加又は削除され、変更される。
特徴データと識別データとについて再度説明する。
図1のように、言語の中の単語だけから、一実施形態の知識ベース内の識別データが生成され、現実の世界の中の対象物から直接発せられた映像や音声などのデータだけから、一実施形態の知識ベース内の特徴データが生成される。対象物は単語ではない。しかしながら、知識ベース内において、識別データは、意味や概念を直接表すものとして利用されない。もとの単語の意味や概念を取得するためには、その識別データにつながる属性を取得し、さらにその属性につながる物を取得し、取得された物につながる他の属性を取得し、その属性につながる特徴データを取得しなければならない。
この一実施形態の知識ベース内では、物(3003)は、犬という対象物に間接的に対応付けられている。しかし、他の実施形態の知識ベース内では、物(3003)は犬という対象物でなく、猫という対象物に間接的に対応付けられているかもしれない。そこで、言語の中の単語から識別データを生成し、知識ベース内で識別データと物や属性とをつなぎ、対応付けることによって、異なる知識ベース間で単語を経由して情報交換ができるようになっている。
識別データは、言語と言語の外にある知識ベースとを対応づけるために利用される。知識ベースごとに、同じ物や同じ属性に割り当てられる識別子の値は異なるので、言語内の単語から生成された識別子を使わずに情報を交換できない。言語内の単語を仲立ちとすることによって、複数の知識ベース間で情報を交換できるようになる。
また、識別データは、知識ベース内の知識を言語の中に取り出すことにも利用できる。知識ベース内の知識を、識別データを仲立ちにして単語に変換して、知識ベースから言語の中に取り出すことができる。たとえば、知識ベースの中の識別子で表される物を、識別データを仲立ちにして単語に変換すると、識別子だけで物を区別するより物を区別しやすくなる。また、知識ベースの中の物識別子や属性識別子が単語に変換されると、文字で書き表すことができる。そして、書き表された物や属性を単語として、視覚を使って認識することにより、理解しやすくなる。
格納された1つの特徴データから、新たな特徴データが生成されることもある。図34では、4本足という特徴データが生成され、知識ベースに格納されている。これは、すでに格納された犬、猫、とかげなどの映像から生成された特徴データから、さらに特徴抽出部1020によって生成される。
図34の知識ベースには、人間を表わす物(3001)、イルカを表わす物(3002)、犬を表わす物(3003)、猫を表わす物(3004)、トカゲを表わす物(3005)、蛇を表わす物(3006)が格納されている。図35には、図34の知識ベースを元にして学習部1050が行った学習処理によって、新たに生成された物と属性とが示されている。
たとえば、マイクで「哺乳類」という単語の音声が知識ベースシステム1000のデータ入力部1010に入力される。特徴抽出部1020によって特徴が抽出され、識別データが生成される。データ比較部1030によって、この識別データが知識ベースにないことが調べられ、データ格納部1040によってこの識別データが知識ベース内に格納される。データ格納部1040によって属性(1015)が生成され、生成された属性(1015)に生成された識別データつながる。さらにデータ格納部1040によって、物(3007)が生成され、生成された属性(1015)がつながる。
マウス操作やキーボード入力により属性の統合処理が指示される。
再度、マイクで「哺乳類」という単語の音声が知識ベースシステム1000のデータ入力部1010に入力される。特徴抽出部1020によって特徴が抽出され、識別データが生成される。データ比較部1030によって、この識別データが知識ベースにあることが調べられる。検索部1060は、同じ識別データとつながる属性(1015)を取得し、取得された属性(1015)につながる物(3007)を取得する。学習部1050は、取得された物(3007)を取得し、認識する。
マウス操作やキーボード入力により、属性を新しく生成する指示が知識ベースシステム1000に入力されると、学習部1050によって属性(1008)が生成され、生成された属性(1008)が認識された物(3007)につながり、生成された属性(1008)が取得される。表示装置に、認識された物(3007)に既につながっている属性の一覧が表示され、その一覧の中から属性を1つ指定し、指定された属性を取得することもできる。
つづいて、カメラから「大きな犬」の映像が知識ベースシステム1000のデータ入力部1010に入力され、特徴抽出部1020で特徴が抽出され、特徴データが生成される。データ比較部1030は、生成された特徴データと同じ特徴データが知識ベースにあるか調べる。同じ特徴データはあるので、検索部1060によって、知識ベース内にある同じ特徴データが取得される。
マウス操作やキーボード入力により、特徴データ追加指示が知識ベースシステム1000に入力されると、学習部1050によって、取得された特徴データが取得された属性(1008)につながる。
この処理を繰り返すと、図35のように属性(1008)に、哺乳類の映像から生成された複数の特徴データがつながり、属性(1008)が哺乳類という意味あるいは概念を表わす。この属性(1008)が、哺乳類を表わす物(3007)につながる。動物を表わす物(3008)も爬虫類を表わす物(3009)も同じようにして作られる。
図36は、図34に図35の3つの属性(1008,1009,1010)を追記し、物(3001,3002,3003,3004)に属性(1008)をつないだ知識ベースを示している。これで、物(3001,3002,3003,3004)に、哺乳類を表わす属性(1008)が追加され、その属性(1008)を持つようになる。属性(1009,1010)についても同様の処理が行われている。
以下のようにして、学習部1050による属性追加処理は行われる。
たとえば、マイクから「哺乳類」という単語の音声が知識ベースシステム1000のデータ入力部1010に入力される。特徴抽出部1020によって特徴が抽出され、識別データが生成される。データ比較部1030によって、この識別データと同じ識別データが知識ベースにあることが確認される。そして、同じ識別データとつながる属性(1015)が検索部1060によって取得される。次に、検索部(1060)によって、属性(1015)につながる物(3007)が取得され、認識される。
次にたとえば、カメラから「人」の映像が入力され、特徴データが生成され、生成された特徴データと同じ特徴データがつながる属性(1001)が取得される。さらに属性(1001)につながる物(3001)が検索部1060によって取得され認識される。最初に認識された物(3007)と、次に認識された物(3001)とが、異なると、学習部1050は、最初に認識された物(3007)に直接つながる属性(1008)と、後から認識された物(3001)とをつなぐ。
このような処理を繰り返すと、人間を表わす物(3001)、イルカを表わす物(3002)、犬を表わす物(3003)、猫を表わす物(3004)が、哺乳類を表わす属性(1008)とつながり、属性(1008)を持つようになる。
図36において、たとえば属性(1008)につながる物を選択し、属性(1008)を持つ物を集めることができる。物(3001、3002、3003、3004)が選択され集められた物である。この集められた物を知識の集まりと呼ぶ。哺乳類という属性(1008)を持つ物が集められ、哺乳類という知識の集まりが生成される。
図37では、物が四角い破線で囲まれている。四角い破線で囲まれた部分、動物という知識の集まり165、哺乳類という知識の集まり166、爬虫類という知識の集まり167、四足の動物という知識の集まり168が、それぞれ知識の集まりになる。動物、哺乳類、爬虫類、四足の動物という4つの知識の集まりが図37に示されている。
知識の集まりを使って推論ができる。
たとえば「蛇は哺乳類であるかどうか」を推論する。哺乳類を表わす属性(1008)とつながった物を集め、知識の集まり166をつくる。この知識の集まり166には、人を表わす物(3001)、イルカを表わす物(3002)、犬を表わす物(3003)、猫を表わす物(3004)が含まれる。この知識の集まりの中に、蛇を表わす物(3006)があるかどうかを調べる。この例では、蛇を表わす物(3006)は、哺乳類を表わす知識の集まりに含まれないので、「蛇は哺乳類ではない」と推論し、判断できる。
知識の集まりは、抽象的な物である。したがって具体的な物と同様に、抽象的な物である知識の集まりを要素とする知識の集まりも生成できる。いくつかの抽象的な物に同じ属性をつないでその属性を追加する。追加された属性を持つ物を集めれば、新たな知識の集まりが生成される。
図38には、図35で新たに生成された知識の集まりを表わす抽象的な物(3007、3008、3009)が追記され、対応する属性と直接つながれている。ひとつの知識の集まりが、抽象的な1つの物として知識ベースに格納されている。たとえば、爬虫類を表わす抽象的な物(3009)は、属性(1010)につながる。この属性(1010)は、蛇の映像から生成された特徴データとトカゲの映像から生成された特徴データとがつながり、爬虫類を表わしている。哺乳類を表わす抽象的な物(3007)、動物を表わす抽象的な物(3008)も同様である。
図38で示されるように、爬虫類という抽象的な物(3009)も、爬虫類を構成する具体的な蛇やトカゲなどの物(3005、3006)も知識ベース内では同じ構造で表わされる。どちらも特徴データと属性とがつながり、その属性が物につながっている。したがって、知識の集まりという抽象的な物を要素とする知識の集まりを生成できる。
このように、英語、日本語、中国語などの言語および言語内の単語を使わずに、言語内の単語ではない対象物自体から直接発せられるデータだけを元にして、知識ベースが構築できる。
知識ネットワークについて説明する。
図39では、物同士が矢印でつながれている。たとえば、動物を表わす物(3008)から哺乳類を表わす物(3007)へ延びる矢印、動物を表わす物(3008)から爬虫類を表わす物(3009)へ延びる矢印、哺乳類を表わす物(3007)から人を表わす物(3001)へ延びる矢印、哺乳類を表わす物(3007)からイルカを表わす物(3002)へ延びる矢印、哺乳類を表わす物(3007)から犬を表わす物(3003)へ延びる矢印、哺乳類を表わす物(3007)から猫を表わす物(3004)へ延びる矢印、爬虫類を表わす物(3009)からトカゲを表わす物(3005)へ延びる矢印、爬虫類を表わす物(3009)から蛇を表わす物(3006)へ延びる矢印によって、物同士がつながる。
図40は、物と物とのつながりだけを抜き出した図である。このようなつながり合ったいくつかの物、つまり、1つのつながりあった物全体が1つの知識ネットワークである。この例では、この知識ネットワークは、動物の種の分類を表わす。矢印の始点は上位の分類、矢印の終点は下位の分類を表わす。この知識ネットワークのつながりは、包含関係を表わし、上位に位置する物が下位に位置する物を含むということを表わす。
この知識ネットワーク内で、動物を表わす物(3008)から哺乳類を表わす物(3007)へ矢印を順方向に辿って移動できる。さらに、哺乳類を表わす物(3007)からイルカを表わす物(3002)へ矢印を順方向に辿って移動できる。
イルカを表わす物(3002)から哺乳類を表わす物(3007)へ矢印を逆方向に辿って移動する。次に、哺乳類を表わす物(3007)から動物を表わす物(3008)へ矢印を逆方向に辿って移動する。このように移動すると、イルカを表わす物(3002)から動物を表わす物(3008)へ移動できる。ある物から別の物へ知識ネットワークのつながりを辿って移動できる場合、その2つの物の間に何らかの関係がある可能性が推測される。この例では、イルカは動物という分類に含まれるということが、知識ネットワークのつながりから判る。このように知識ネットワークを使って推論ができる。
図40の1つの知識ネットワークを、複数の知識ネットワークを組み合わせて作ることもできる。
図41に示される物(3011)は、知識ネットワークを表わす属性(1030)と動物を表わす属性(1009)とにつながっており、動物に関する知識ネットワークである抽象的な物である。物(3012)は、知識ネットワークを表わす属性(1030)と哺乳類を表わす属性(1008)とにつながっており、哺乳類に関する知識ネットワークである抽象的な物である。物(3013)は、知識ネットワークを表わす属性(1030)と爬虫類を表わす属性(1010)とにつながっており、爬虫類に関する知識ネットワークである抽象的な物である。
図42は、図41の物と物とのつながりを抜き出した図である。図41では省略されていた知識ネットワークである物と具体的な物とのつながり、たとえば動物に関する知識ネットワークである物(3011)と動物を表わす物(3008)とのつながりも描かれている。図41では図が複雑になり見難くなるので省略されている。
動物である物(3008)と哺乳類である物(3007)とがつながり、動物である物(3008)と爬虫類である物(3009)とがつながり、知識ネットワークが生成されている。この知識ネットワークが動物に関する知識ネットワークである抽象的な物(3011)であり、図42の楕円169で囲まれている部分である。
また、哺乳類である物(3007)と人である物(3001)とがつながり、哺乳類である物(3007)とイルカである物(3002)とがつながり、哺乳類である物(3007)と犬である物(3003)とがつながり、哺乳類である物(3007)と猫である物(3004)がつながり、知識ネットワークが生成されている。この知識ネットワークが哺乳類に関する知識ネットワークである抽象的な物(3012)で、図42の楕円170で囲まれている部分である。
また、爬虫類である物(3009)とトカゲである物(3005)とがつながり、爬虫類である物(3009)と蛇である物(3006)とがつながり、知識ネットワークが生成されている。この知識ネットワークが、爬虫類に関する知識ネットワークである抽象的な物(3013)で、図42の楕円171で囲まれている部分である。
図41に描かれているように、さらに、動物に関する知識ネットワークである抽象的な物(3011)と哺乳類に関する知識ネットワークである抽象的な物(3012)とがつながり、動物に関する知識ネットワークである抽象的な物(3011)と爬虫類に関する知識ネットワークである抽象的な物(3013)とがつながり、知識ネットワークが生成される。なお、見にくくなるので図42には、この知識ネットワークは描かれていない。このように、知識ネットワークである抽象的な物同士をつないで、新たな知識ネットワークを生成することができる。
知識ネットワークである抽象的な物は、その知識ネットワークに含まれる全ての物それぞれと直接つながる。たとえば図42のように、知識ネットワークである抽象的な物(3011)は、その知識ネットワークに含まれる物(3007、3008、3009)とそれぞれ直接つながる。このようにすると、知識ネットワークである抽象的な物を指定すると、その知識ネットワーク内にどのような物が含まれているかが判る。
知識の集まりは物であり、知識ネットワークも物である。図38及び図41で示されるように、犬や猫のような具体的な物も、知識の集まりや知識ネットワークのような抽象的な物もデータ構造は同じである。したがって、抽象的な物である知識の集まりまたは抽象的な物である知識ネットワークを含む知識ネットワークを生成することができる。同様に、抽象的な物である知識の集まりまたは抽象的な物である知識ネットワークを含む知識の集まりを生成することができる。この仕組みによって抽象的な知識も蓄積され、蓄積された抽象的な知識が体系化される。さらに、蓄積され体系化されたな抽象的な知識を使って推論が行われる。
図42の知識ネットワークを例にして、知識ネットワークを使った推論の説明をする。
たとえば、哺乳類に関する知識ネットワーク(3012)内で、人である物(3001)から哺乳類である物(3007)に移動することができる。また、哺乳類である物(3007)は、哺乳類に関する知識ネットワーク(3012)だけでなく、動物に関連する知識ネットワーク(3011)にも属している。そこで、哺乳類である物(3007)を介して、哺乳類に関する知識ネットワーク(3012)と異なる知識ネットワークである動物に関する知識ネットワーク(3011)に移動する。動物に関する知識ネットワーク(3011)内で、哺乳類である物(3007)から動物である物(3008)に移動する。このとき、出発点の人である物(3001)と到着点の動物である物(3008)の間に関係がある可能性がある。人間は動物である、あるいは、人は動物に含まれるということが推論できる。
ある知識ネットワーク内の物から、その物が属する他の知識ネットワークに移り、移った知識ネットワーク内の物に移動できる。1つあるいは2つ以上の異なる知識ネットワークを経由して移動してもよい。このとき、出発点の物と到着点の物との間に何らかの関係がある可能性がある。なぜなら、それぞれの知識ネットワーク内の物は、その知識ネットワーク内において関連のある物同士がつながっているからである。ある物から別の知識ネットワークに移り、移った知識ネットワーク内のつながった物に移動できれば、その物との間にも関連性がある可能性があるからである。
なお、1つの知識ネットワーク内でのつながりの意味は同じにしておく。つながりの意味が変わる場合は、その部分を別の知識ネットワークにする。1つの知識ネットワーク内では、つながりの意味を同じにする。すると、その知識ネットワークの意味が明確になる。さらに、知識ネットワークを特徴づける属性がつながりの意味を表わすようにすると、つながりの意味が異なる知識ネットワークは、必ず異なる属性の組み合わせで特徴づけられる。
知識ネットワークのつながりをたどり、つながった物を取得すると、関連する物が取得できる。このように、知識ネットワークは、関連する物を検索する、検索システムとしても利用できる。
言語の中の単語をつないで知識を表現する従来技術の知識ベースがある。単語をつなぎあわせて一塊のつながりをつくり、知識を表現している。しかし、単語の一塊のつながりですべての知識を表わすことはできなかった。そこで、単語の一塊のつながりに入りきれない知識を暗黙知と呼んでいた。
たとえば、人は会社という組織に属していれば会社組織の中のつながりがある。家庭では家族関係というつながりがある。人に限らず、あらゆる物は切り口によってさまざまなつながりを持っている。これを一塊のつながりで表現することは無理である。無理やり一塊のつながりで表現すると、一塊のつながりに入りきれない知識あるいは情報を暗黙知と呼ばざるを得ない。
本願技術の一実施形態の知識ベースでは、切り口ごとに一塊のつながりをつくる。この一塊のつながりが1つの知識ネットワークである。このようにすれば、共通する物で知識ネットワークをつなぎあわせて知識を体系化でき、暗黙知を使わずに広範囲な知識を体系化できる。ある知識ネットワークに属するある物から、その知識ネットワークとつなぎあわされた他の知識ネットワークに移り、他の知識ネットワーク内の物に移動し、他の知識ネットワーク内の物とのつながりを調べることができる。
これまでの説明をもう少し詳しく説明する。本願技術の一実施形態として以下のような仮説を考案した。この仮説はあくまでも一実施形態としての仮説であり、本願技術の範囲を制限するものではない。前述の説明と重なる部分もあるが、その仮説について以下に説明する。
脳は、たくさんの神経細胞でできている。さらに、神経細胞は、樹状突起と呼ばれる組織などによって相互に接続され、信号を伝達しあっている。実際の脳においては、1つの神経細胞が、物に対応する。図43では、外部にある対象物から直接生成された情報が、感覚器官110で受け取られる。感覚器官110が受け取った情報から、特徴抽出部114によって特徴が抽出され、特徴データが生成される。生成された特徴データは、記憶領域112内に保持される。もちろん、特徴データは、樹状突起等により、属性領域115内にある1つの神経細胞71とつながり、特徴データが属性領域115の神経細胞71に対応づけられる。複数の特徴データが属性領域115内の同じ神経細胞71につながり、対応づけられることもある。属性領域115の神経細胞71は、特徴データに対応づけられることによって属性を表わす。属性を表わす神経細胞71と物の領域111内の神経細胞70とが樹状突起等によりつながり、属性が物に対応づけられる。このようにして、物が属性を持つ。
たとえば、感覚器官110から甘みの情報を受け取ると、特徴抽出部114が甘味の情報から特徴を抽出し、抽出された特徴が記憶領域112で保持され特徴データになる。特徴データが属性領域115の神経細胞71とつながることによって、その神経細胞が甘いという属性を表わす。甘いという特徴データに直接つながることによって、甘いという属性を表わす神経細胞71が、物に直接対応づけられ、物を表わす神経細胞70と直接つながる。これにより、「その物が甘い」あるいは、「その物が甘い属性を持つ」ということを学習する。
属性が特徴データと物の間にあると、1つの特徴データが複数の異なる属性につながることができる。また、複数の特徴データが1つの属性につながり1つの意味または概念を生成することができる。これにより、複数の特徴データから1つの意味や概念を生成する、または、1つの特徴データから複数の意味や概念を生成することができる。
特徴データは、属性領域115の神経細胞71を経由せずに物の領域111内の神経細胞70とつながり、対応づけられる場合もある。この場合、属性領域115の神経細胞71を経由するより速く物の領域111の神経細胞70に信号が届く。感覚器官110から情報を受け取り、特徴抽出部114が受け取った情報から抽出した特徴データが、記憶領域112に既に保持された特徴データと一致あるいは類似していていると判断されるとする。物の領域111内の神経細胞70とその特徴データが直接つながっていたとすると、あらかじめその特徴データとつながった物の領域111の神経細胞70に信号が届く。このとき、物は認識される。真っ赤に燃える炎の映像を見ると、直ちに火であると認識する仕組は、前述の仕組に対応づけられる。
氷を触り冷たいという特徴データが保持され、属性領域115の神経細胞71とつながることによって、冷たいという概念、すなわち属性が生成されているとする。この冷たいという属性だけがつながった物の領域111の神経細胞70、すなわち物があるとする。この物は、冷たさ、または、漠然とした冷たい物を表わす抽象的な物である。
たとえば、赤い丸い物を食べたところ、甘くて食べられたとする。このとき、物の領域111内の1つの神経細胞70が赤く丸い物になり、赤い丸い物の映像の特徴データにつながった属性である神経細胞と赤い丸い物の甘さの特徴データにつながった属性領域115の神経細胞71が前記赤く丸い物の神経細胞につながる。同様に、食べられるという特徴データは、属性領域115の神経細胞71とつながり、その属性領域115の神経細胞71は、物の領域111内の赤い丸い物に対応する神経細胞70とつながる。
食べられるという特徴データにつながった属性領域115の神経細胞71が、物の領域111の神経細胞70に信号を送る。つまり、食べられるとい属性領域115の神経細胞71から物の領域111の神経細胞70に信号を送る。すると、食べられるという属性領域115の神経細胞71につながっている物の領域111の神経細胞70だけが信号を受けて活性化する。活性化された物の領域111の神経細胞70全体が、食べられるという属性を持った物の集まりになる。この集まりが知識の集まりになる。1つ以上の属性領域115の神経細胞71から信号を送って、知識の集まりを生成することもできる。物の領域111内の神経細胞70は、物を表わしている。知識の集まり内の神経細胞は、共通する属性を持つ物を表わしている。1つの知識の集まり内の神経細胞同士をつなぐことによって、物同士の関係を保持できる。このつながれた物の集まりが、知識ネットワークである。もちろん、知識の集まりにない物をつなぐこともできる。さらに、知識の集まりに関係なく物をつないで知識ネットワークを作ってもよい。
このような働きを学習と呼ぶ。物、属性または特徴データを追加又は削除することは学習である。つながりを追加又は削除することも学習である。物同士のつながりを追加するだけでなく、物同士のつながりを削除すること、神経細胞を新たに物に対応づけて知識ネットワークに追加すること、物と属性、属性と特徴データ、特徴データと物とのつながりを追加したり削除したりすることも学習である。
砂糖をなめたとする。すると、感覚器官110から甘味という情報と甘味の程度の2種類の情報を受け取る。特徴抽出部114で前述の2種類の情報を特徴として抽出する。抽出された2つの特徴は、1組の特徴データとして記憶領域112に保持される。記憶領域112に既に同じ特徴データがある場合は、新たに特徴データを保持しないようにすることもできる。同じ特徴データが無い場合は、属性領域115の未使用の神経細胞の1つがその特徴データとつながり、その特徴データに対応する神経細胞となる。同じ特徴データがあり、その特徴データが属性領域115の神経細胞とつながっていない場合も、属性領域115の神経細胞の1つがその特徴データとつながり、その特徴データに対応する神経細胞になる。
甘味という特徴データと属性領域115にある神経細胞とがつながり、甘みの程度という特徴データと属性領域115の別の神経細胞とがつながる。甘味の程度を表わす属性は、程度を表わす属性として他の属性とつながることが可能である。味の濃さや大小などある属性の程度を表わす補助属性がある。補助属性は、他の属性につながり、その属性の意味や概念を修飾する。補助属性は、形容詞や副詞に相当すると考えれば理解しやすい。前述の2つの特徴データから信号を送ると、信号を受けた属性領域115の2つの神経細胞は信号を受けて、属性領域115の2つの神経細胞は相互につながる。情報の発生源である物に対応づけられた神経細胞も信号を受ける。信号を受けた属性領域115の2つの神経細胞は、それぞれ、情報の発生源である物に対応する神経細胞とつながる。物と属性と補助属性とのすべてがつながり、三角形の形につながる。3つの要素のうち2つを指定すれば残りの1つの要素が必ず決まる。たとえば、物と属性とを指定すれば両者につながる補助属性が1つだけ確定する。このようにすると、必要なときに属性に関連する補助属性を取得できる。もちろん、属性につながっている特徴データを取得すれば補助属性の元になった情報が取得できるので、さらに詳しい情報が取得できる。補助属性も属性であり、特徴データと属性領域115の神経細胞とにつながっているにすぎない。1つの補助属性はさまざまな属性とつながり、つながった属性の意味や概念を修飾することができる。
甘味に相当する特徴データを主特徴、甘味の程度に相当する特徴データを副特徴とする。主特徴に対応する属性を主属性、副特徴に対応する属性を副属性とする。先ほど補助属性と呼んだ属性が副属性である。
特徴抽出部114が感覚器官110から情報を受けると、主特徴と必要に応じて副特徴が抽出される。抽出された主特徴と副特徴は、記憶領域112に特徴データとして保持される。
甘味という主特徴である特徴データが甘味という主属性を表わす神経細胞につながり、甘味の程度という副特徴である特徴データが甘味の程度という副特徴に対応する副属性を表わす神経細胞につながる。甘味という主属性を表わす神経細胞は、甘味の程度という副属性を表わす神経細胞とつながる。この副属性は、甘味以外の主属性とつながってその主属性を修飾してもよい。他の属性から修飾される属性が主属性であり、他の属性を修飾する属性が副属性である。
属性は、1つの主属性だけの場合と、1つの主属性と1つまたは1つ以上の副属性からなる場合がある。これは、形容詞と副詞とで修飾する場合に相当する。甘味という特徴データは、信号を甘味という属性を表わす神経細胞に送る。甘味の程度の特徴データは、甘味の程度に対応づけられた属性を表わす神経細胞に信号を送る。甘さの程度とは、砂糖の水溶液を味わったときを想像すればわかる。砂糖の濃度が高ければ甘さの程度は大きくなる。砂糖の濃度が低ければ、甘さの程度は小さくなる。信号を受けた甘味に対応づけられた属性を表わす神経細胞と、信号を受けた甘味の程度に対応づけられた属性を表わす神経細胞とは、樹状突起等によりつながる。このようにすると、物は、属性とその属性の程度、つまり、主属性と副属性とを持つことができる。
たとえば、味覚神経から味覚情報を受け取り、甘味の次は苦味、苦味の次は酸味などのように、一定の順番で味の種類ごとの味の強さを表わす情報を並べた特徴データを作る。味の特徴データの並びの順番に、特徴データが属性領域115の特定の神経細胞とつながるようにする。このようにすると、属性領域115の特定の神経細胞が、特定の味を表わす。ある物が持つ甘味、酸味などの個別の味の特徴データもできる。個別の味を表わす属性は、すべての物が共通して使うことができる。また、一定の順番に並んだ味の特徴データの並び全体のパターンを1つの特徴データにして1つの属性につなげば、その物の全体の味の属性をつくることができる。
このようにして、物は新しい属性を持ち、新しい属性をもつことによって、新しい知識を学習する。本願では、属性に対応づけられた神経細胞を属性の神経細胞、物に対応づけられた神経細胞を物の神経細胞と呼ぶ。主属性に対応づけられた神経細胞を主属性の神経細胞、副属性に対応づけられた神経細胞を副属性の神経細胞と呼ぶ。
物を認識する手順を説明する。
情報を入力する情報入力部である感覚器官110から情報を受け取り、受け取った情報から特徴抽出部114で特徴を抽出し、抽出された特徴を既に記憶領域112に保持されている特徴データと比較する。抽出される特徴は、1つの場合もあるが、通常は複数である。たとえば、音という情報が感覚器官110から入力され、音の高さ、音の大きさ、周波数分布、音の波形など複数の特徴が特徴抽出部114で抽出される。抽出された特徴と同じまたは類似の特徴データがあると、その特徴データからその特徴データにつながった属性に信号が送られる。新たに生成された特徴について、この処理を繰り返す。
信号を送る特徴データは1つの場合もあるが、1つに限られることはなく、複数の特徴データが信号を送ることが多い。信号を受けた1つ以上の属性は、当該属性につながっている物に信号を送る。信号を受けた物のなかの1つの物が、感覚器官110に情報を与えた物として認識される。通常、一番多くの信号を受けた物が、感覚器官110に情報を与えた物として認識される。
ただし、物は、各属性から同じ強さの信号を受けるとは限らない。ある属性からの信号が、他の属性からの信号より強くなるようなつながりになっている場合がある。そのため、単に多くの属性から信号を受けた物が、感覚器官110に情報を与えた物として認識される場合だけではなく、受けた信号の総量が多い物が認識されこともある。この手順が、認識を行う手順である。
同じ属性を持つ物の集まりが知識の集まりである。知識の集まりにおいて、物と物とをつなぐことによって、物と物との関連を表わす。知識の集まりの中のつながりあった物が、知識ネットワークである。知識ネットワークによって関連の意味は異なる。たとえば物と物との関係は、親子関係、時間の前後関係、包含関係などさまざまな関係を表現できる。知識の集まりの中の知識ネットワークに、その知識の集まり以外の物をつないで知識ネットワークを作ってもよい。ある知識の集まりの中の物に限定せずにすべての物の中から物を選び、選ばれた物をつないで知識ネットワークを作ってもよい。
知識ネットワークは、抽象的な物でもある。したがって、抽象的な物としての知識ネットワークを含んだ知識の集まりや知識ネットワークを生成できる。
知識の集まりおよび知識ネットワークの生成方法の一例について説明する。
物の領域111にある物に対応づけられた神経細胞70も物と呼ぶ。属性領域115の神経細胞71を属性と呼ぶ。物の領域111には、すべての物がある。このままでは、物の領域111から特定の物を探し出すのは難しい。次のようにすると、いくつかの物を選びだすことができる。ある属性から、その属性につながっている物に信号を送る。属性から信号を受けると、物は活性化する。活性化した物は、その属性を持った物である。このようにすると、ある属性を持つ物の集まりを生成することができる。これを知識の集まりと呼ぶ。信号を送る属性は、1つに限定されず、1つでも1つ以上でもよい。
たとえば、鈴木家という属性を持つ知識の集まりを生成することができる。鈴木家という属性から信号を送ると、鈴木家の属性を持った父、母、子供に対応する物が信号を受け、活性化する。活性化した物を集めれば、鈴木家という属性を持った知識の集まりが生成できる。
鈴木家の父に対応する物から鈴木家の子供に対応する物につながるようにしておく。また、鈴木家の母に対応する物から鈴木家の子供に対応する物につながるようにしておく。すると、このつながりは、親子関係になる。このつながりを辿ることにより、親子関係が明確になる。図44は、この例を表わしている。
属性(4)は、鈴木家という属性である。物(F)は鈴木家の父、物(G)は鈴木家の母、物(H)は鈴木家の子供を表す。鈴木家の父である物(F)から鈴木家の子供である物(H)につながり、鈴木家の母である物(F)から鈴木家の子供である物(H)につながっている。これらのつながりによって、物の間の関係をより明確にすることができる。図44では、つながりは矢印であらわされている。
このつながりは、双方向でもよい。しかし、多くの関係は方向を持っていると考えられる。したがって、単一方向、つまり、方向があるつながりが一般的である。単一方向のつながりで2つの物がつながっているとする。この単一方向のつながりを包含関係に対応づけると、たとえば、つながりの出発点の物が含む物(上位概念)になり、つながりの到着点の物が含まれる物(下位概念)になる。もちろん逆に対応づけることもできる。
つながりで表わされる関係の意味は、情報ネットワークを生成した属性に依存することが多い。知識ネットワークごとにその知識ネットワークに応じたつながりを保持できる。含まれる物は同じであるが、つながりが異なる知識ネットワークをつくることは可能である。同じ家族を物とする知識ネットワークでも、身長順という関係でつながった知識ネットワーク、年齢順という関係でつながった知識ネットワーク、親子関係でつながった知識ネットワークなどさまざまな知識ネットワークを作ることができる。たとえば、身長順という関係でつながった知識ネットワークは、○○家という属性以外に身長という属性で特徴づけられる。
知識ネットワークは、「水は水素と酸素とからできている」、というような構成物という関係を表わすこともある。知識ネットワークは、「人間は哺乳類に含まれる」、といような包含関係を表わすこともある。物Aと物Bとが、物Aから物Bにだけつながり、包含関係を表わしているとする。たとえば、物Aを哺乳類、物Bを人間とする。哺乳類共通の属性と哺乳類を表わす属性とを物Aが持ち、人間だけが持つ共通の属性と上位概念の哺乳類を表わす属性と物Bそのものの概念である人間を表わす属性とを、下位概念である物Bが持つようにする。このようにすると、下位概念を表わす物は、上位概念が持つ属性を持たなくても良い。上位概念を表わす物が持つ属性と下位概念を表わす物Bとが持つ属性を併せた属性が、下位概念を表わす物が持つ属性になる。このようにすると、物と属性のつながりを削減できる。必要に応じて、上位概念を表わす物が持つ属性を取得すればよい。
2つの物を一方向のつながりでつなぐと、つながった2つの物を区別でききる。たとえば、2つの物の一方を上位概念を表わす抽象的な物に対応付け、他方を下位概念を表わす抽象的な物に対応付けることができる。一方向のつながりを、血縁関係に対応づけることもできる。これらは、一例であり、さまざまな関係を一方向の物のつながりで表現できる。
知識の集まりと知識ネットワークとの利用方法の例を説明する。
一旦、知識の集まり又は知識ネットワークが生成されると、外部から入力された情報が知識の集まりまたは知識ネットワークの知識と整合性があるかどうかを調べることができる。たとえば、1つの物といくつかの属性とが外部から入力されたとする。入力された属性をすべて持つ知識の集まりを生成する。その知識の集まりの中に、与えられた物が含まれていれば、その物は入力された属性を持つことが判る。また次のようにすると、与えられた2つの物の関係の有無を判断することも可能になる。一方の物から知識ネットワークのつながりを辿って、もう1つの物に辿りつくことができれば、両者に関係があることがわかる。このようにして与えられた2つの物の関係を取得できる。
鈴木家の父という物と、花子さんという物と、鈴木家の家族という属性とが与えられたとする。図44の知識の集まりが鈴木家を表わすとする。鈴木家の家族という知識の集まりを使って、花子さんという物が鈴木家の家族かどうかを判断できる。鈴木家の家族という知識の集まりに、花子さんという物が含まれていないと、花子さんは鈴木家の家族ではないと判断できる。
具体的な手順は次のようになる。鈴木家の家族という属性から物に信号を送る。信号を受けた物は、すべて鈴木家という属性を持っている。信号を受けた物全体が、鈴木家という属性を持った知識の集まりになる。この生成された知識の集まりに花子さんという物があれば、花子さんは、鈴木家の家族に含まれると判断できる。この生成された知識の集まりに花子さんという物がなければ、花子さんは、鈴木家の家族に含まれないと判断できる。
花子さんは、鈴木雄三家の子供である次郎さんの娘だとする。図45の左側の枠が鈴木雄三家を表わす知識ネットワークである。図45の右側の枠が鈴木次郎家を表わす知識ネットワークである。次郎さんという物は、これらの2つの知識ネットワークに属している。
また、図には描かれていないが、鈴木雄三家の雄三、恵、一郎、次郎という物は、鈴木雄三家を表わす属性とつながっている。図には描かれていないが、鈴木次郎家の次郎、美香、太郎、花子という物は、鈴木次郎家を表わす属性とつながっている。2つの知識ネットワークは、次郎という共通の物を持っている。
鈴木雄三家を表わす属性は、たとえば、雄三、恵、一郎、次郎の4人が一緒いる映像から生成された特徴データとつながっている。また、雄三を表わす物は、たとえば、雄三の映像から生成された特徴データとつながった属性とつながっている。図45では、たとえば「雄三」という名前を表わす単語が記述されているが、これは説明のためだけに記述されている。
鈴木次郎家という知識ネットワーク内の花子という物から同じ知識ネットワーク内の次郎という物に移動する。次郎という物は、鈴木雄三家という知識ネットワークにも属している。そこで、次郎という物を介して、鈴木次郎家という知識ネットワークから鈴木雄三家という知識ネットワークに移動する。そして、鈴木雄三家という知識ネットワーク内で、次郎から雄三に移動する。このようにして、花子という物から他の知識ネットワークの雄三という物に移動できるので、花子という物と雄三という物との間には、何らかの関係がある可能性がある。実際、雄三は花子のおじいさんである。このように、1つ知識ネットワークだけでなく、つながりあった知識ネットワーク使って推論ができる。
指定された2つの物について、1つの知識ネットワーク内、あるいは、つながった他の知識ネットワークに移り、その知識ネットワーク内の物とのつながりを辿って、一方の物から他方の物へ移動する経路を見つけることができれば、指定された2つの物の間に何らかの関係がある可能性があると判断できる。このとき、辿られた経路は、2つの物の関係を表わす。一旦、2つの物の間に経路が見つかれば、つながった物が含まれる知識の集まりを新たに生成することもできる。2つの物を直接つなぐこともできる。
知識の集まりの利用は、物同士の関係を見つけ出すために有効である。共通する物を持つ知識の集まり同士は、関連する可能性がある。また、知識ネットワークの利用も、物同士の関係が有るかどうかの可能性を見つけ出すために有効な方法である。2つの物の間に経路が見つかると、次に、2つの物が持つ属性を比較し、同じあるいは類似の属性を2つの物が持っているかどうかを調べる。同じ属性があれば、その属性について2つの物は、関連があると判断できる。類似の属性があれば、2つの物の関連がある可能性が高いと判断できる。このように本実施形態では、単語から生成された識別データなしで推論が行える。
指定された物を出発点として、出発点から移動して辿りつける物を見つける。次に、見つけられた物と出発点である指定された物との属性を比較し、2つの物にどのような共通または類似する属性があるかどうかを調べる。共通する属性が見つかれば、2つの物が共通する属性によって関連していることが分かる。類似する属性が見つかれば、2つの物が類似する属性によって関連している可能性があることが分かる。だだし、共通または類似する属性が多いからといって重要な意味のある関連があるとは限らない。たった1つの共通属性あるいはたった1つの類似属性が重要な意味を持ち、新たに見つけられた物と物とのつながりが重要な意味のある関係になることもある。
前述のように、単一の知識の集まりや単一の知識ネットワークを使って判断をすることもできる。また、複数の知識の集まりを使って判断をすることもできる。複数の知識ネットワークを使って判断をすることもできる。ある知識ネットワークに含まれる物から、その物が含まれる他の知識ネットワークを選択し、選択された他のネットワークに移動することができる。これを繰り返すと、1つ以上の知識ネットワークを経由して、他の知識ネットワークに移動できる。移動した先の知識ネットワーク内の物と出発点の知識ネットワーク内の物との間には、何らかの関連がある可能性がある。どの程度の可能性があるかは、知識ネットワークがどの程度適切に生成されているかということに依存する。
1つの物が1つの知識である。共通する属性を持つ物の集まりが知識の集まりである。ある属性の神経細胞から物の領域の物の神経細胞に信号を送る。送られた信号を受けとる物の神経細胞すべてが、その属性に関する知識の集まりを構成する物になる。属性が対応づけられた物は、知識である。本願では簡略化のために、属性の神経細胞を属性と呼び、物の神経細胞を物と呼ぶことがある。
属性を指定してその属性に関する知識の集まりを生成する。生成された知識の集まりに対して、さらに別の属性を指定して、その属性を持つ物を集めた新たな知識の集まりを生成する。これを繰り返せば、複数の属性を指定して知識の集まりを生成できる。
知識の集まり内の物同士がつながっている場合がある。このつながった物の集まりが知識ネットワークである。このつながりに意味を持たせることができる。たとえば、「人間は哺乳類である」というような包含関係、「雄三さんは次郎さんの父である」というような血縁関係、位置関係、時間の前後関係など、物同士のつながりで、物の間の関係を表現することができる。
図16は、ある属性に関連した知識の集まりを生成する例を示している。物(A)は、属性(1)で生成された知識の集まりにも、属性(2)で生成された知識の集まりにも属している。このようにすると、物が持つさまざまな属性ごとに知識の集まりを作り、知識を整理し、利用できる。物や属性を作ること、物同士、属性同士、物と属性とをつなぐことは、学習である。特徴データを作ること、特徴データと物、特徴データと属性とをつなぐことも学習である。識別データを作ること、識別データと物、識別データと属性とをつなぐことも学習である。また、物、属性、特徴データ、及び識別データのつながりを削除することも学習である。
一旦学習が行われた後、同じ情報が感覚器官から入力されると、入力された情報から特徴抽出部1020によって特徴が抽出される。記憶領域に同じ特徴の特徴データがあり、その特徴データが、属性領域の属性を経由して物とつながっていると、その特徴データから物へ信号が送られる。抽出された特徴と類似の特徴データがあった場合にも、同じように信号が送られ、物が信号を受け取る。信号を受け取った物は活性化する。これが、物を認識する方法である。複数の特徴データから属性を経由して、いくつかの物に信号が届く。一番強い信号を受けた物が、その物の第一候補となる。
たとえば、図5の特徴抽出部は、感覚器官である耳で受け取った音から特徴を抽出する。図5に描かれていないが、データ比較部1030に相当する脳内のデータ比較部は、抽出された特徴と記憶領域に保持されている特徴データとを比較する。そして、脳内のデータ比較部は、一致または類似する特徴データに対応する属性に信号を送り、信号を受けた属性が物に信号を送ることにより、耳で聞いた音によって物が認識される。
従来技術では、個々の属性に対して論理演算をしなければならない。従来技術であるPROLOGのようなプログラム言語では、物、属性、関係は、言葉としての文字列、つまり物、属性、または、関係の意味を表わす単語で表現されている。1組の単語の並びを知識の基本単位として、単語の並びを複数組保持することにより、知識を構築している。このような従来技術では、単語の並びの間の関連を直接表わしていない。また、広範囲で複雑に関連する暗黙知とよばれる知識を表現することが困難であった。そのため、人間が日常的に行っている簡単な判断を従来技術で行うことは難しかった。
本実施形態の知識の集まりを用いると、与えられた物がある条件を満たしているかどうかを簡単に判断できる。あらかじめ与えられた1つまたは1つ以上の属性の属性識別子を指定して、知識の集まりを生成する。指定された属性は、ある物がこの知識の集まりに含まれるための条件である。次に、与えられた物がこの知識の集まりに含まれているかどうかを、知識の集まりを検索して調べる。もし含まれていれば、与えられた物は条件を満たすと判断できる。
本実施形態の知識ネットワークを用いると、推論ができる。
たとえば、さまざまな病気を物とする知識の集まりをあらかじめ保持しておく。この知識の集まり中の物は、病気という属性を持っている。病気という属性は、病気で寝込んでいる人の映像から生成された特徴データや、病気になったときのさまざまな症状の特徴データとつながっている。病気という抽象的な物には、病気という属性がつながっている。
たとえば、顔色の悪い人の顔の映像が知識ベースシステムに入力されると、その特徴データが生成され、同じ特徴データが知識ベース内にあるかが調べられる。同じ特徴データがあると、顔色の悪い顔の特徴データにつながっている病気という属性が取得される。次に、病気という属性につながっている病気という抽象的な物が取得され、病気であると認識される。
特徴データとして知識ベース内に保持されている症状と一致すると判断される症状の情報が入力されると、病気という抽象的な物が取得できる。このようにして病気であるという大雑把な判断ができる。
どの病気であるかという更に詳しい判断は次のようにして行う。
この知識の集まりには、風邪や肺炎など個々の病気も物として含まれている。風邪や結核などの各病気という物は、病名や症状を属性として持っている。風邪の病名という属性は、風邪という文字の映像から生成された識別データや、風邪という単語の音声から生成された識別データとつながっている。しかし、知識ベース内において、前述の病名を表わす識別データ自身は、病気に関する意味や概念を表すものとして利用されない。風邪という物は、たとえば、扁桃腺の腫れという属性を持つ。扁桃腺の腫れという属性には腫れた扁桃腺の映像の特徴データがつながる。このように、属性に特徴データがつながることにより、概念や意味が生成される。扁桃腺の腫れなどの1つの属性に、多くの種類の扁桃腺の映像から生成された特徴データがつながることができる。1つの属性に多くの種類の特徴データがつながっているほど、適切な判断ができる。
たとえば、まず、腫れた扁桃腺の映像を外部から知識ベースシステムに入力し、その映像から特徴を抽出し、特徴データを生成する。次に、生成された特徴データと同じと判断された特徴データが知識ベース内にあるか探す。そして、同じと判断された特徴データが見つかると、その特徴データにつながる属性を取得する。
さまざまな症状の情報を外部から知識ベースシステムに入力し、同様の処理を繰り返し、同じと判断された特徴データとつながった属性を取得する。取得された属性がより多くつながっている物、または、取得された属性がすべてつながっている物が、その症状の病気である可能性が高い。取得された属性がつながる病気である物のうち、いくつかを表示装置に表示することにより、診断の教育システムや診断支援システムが作れる。
この知識の集まりの中に知識ネットワークを生成できる。病気という物を出発点にしてさまざまな病気が体系的につながっている知識ネットワークを生成できる。関連する病気をつないだ知識ネットワークも生成できる。たとえば、ある知識ネットワーク内で、風邪という物と肺炎という物をつなぐ。風邪をこじらせると肺炎になるというふたつの病気の関連性を一方向のつながりで表現する。このような知識ネットワークを利用すると、関連する病名を表示し診断を支援することもできる。たとえば、風邪の症状のある患者に関して、医師に肺炎の兆候の有無を確認するよう助言できる。
直感を真似る仕組を作ることもできる。
指定された2つの物について、1つまたは複数の情報ネットワークを経由して、一方の物から他方の物へ移動する経路を見つけることができれば、指定された2つの物の間に何らかの関係がある可能性があると判断できる。この処理は、人間が何気なく行っている直感的な判断に対応づけることができる。その後、共通度、非共通度、類似度など、属性を詳しく調べ、関連性について詳しい判断をすればよい。属性につながっている特徴データの比較を行い、さらに詳細に評価することもできる。記号論理を土台とした従来技術は、狭い範囲で詳細な論理的評価が行えるので、記号論理に基づいた方法は、この段階で効果的に利用できる。
本願技術は何らかの判断をする業務において、判断業務の支援システムや判断業務の教育支援システムの構築に利用できる。
音声認識という技術がある。音声認識でも本技術を利用できる。音声から特徴を抽出し、抽出された特徴を識別データとして保持しておき、その識別データをあらかじめ物や属性に対応づけておく。物と属性と識別データとは、前述の3階層構造でつないでおく。このようにしておくと、入力された音声を元に、音声が表わす単語の識別データを取得するだけでなく、音声に対応した概念や意味や物を取得できる。入力された音声から特徴を抽出し、識別データを生成する。生成された識別データと類似または一致した識別データとつながった属性や物を取得し、認識することができる。認識された物につながる他の属性を取得し、その属性につながる特徴データや識別データが取得できる。このような音声認識システムだけでなく、映像から特徴を抽出すれば映像認識システムとしても実施できる。温度センサ、圧力センサなどのセンサから特徴を抽出すれば、設備の監視システムとしても利用できる。もちろん文字で記述された情報にも利用できる。
知識ネットワークを使って図形を表現することもできる。点、線、面、立体などの図形要素を物にして、図形要素である物をつなげば知識ネットワークで図形を扱える。
図46は、図形の一例として三角形121を示している。三角形以外の図形でもよい。また、平面図形に限らず立体図形でもよい。三角形121は、3個の線(直線)123と、3個の線123が互いに交わる3個の点(頂点)122と、3個の線123で囲われた面124とからなる。線123の代わりに曲線でも図形はできる。面124は平坦面ではなく曲面であってもよい。線123、点122、面124を物であると考え、線123、点122または面124からなる知識ネットワークを作る。
図47は、3個の点122で三角形121という図形を表わす知識ネットワークである。各点122は、物であるから属性を持つことができる。点122は、例えば、属性として座標値などを持つことができる。
図48は、点122と線123とで三角形121という平面の図形を表わす知識ネットワークである。点122と線123とが交互につながった知識ネットワークで図形を表わしている。この例では、点122は、属性として座標位置や内角を持つ。線123は、属性として線の長さを持つ。ただし、属性は、座標位置や長さに限られるものではない。
図49は、三角形121という平面の図形と、その図形の構成要素である線123をつないだ知識ネットワークである。図形のすべての構成要素と、平面をつないでもよいし、1個あるいは2個以上の構成要素を平面とつないでもよい。もちろん点という物を含んでいてもよい。
平面の属性として、面積、二辺の長さが等しいという特徴、二等辺三角形という名称などを持ってもよい。図形要素という物は、映像から生成された特徴データとつながることで、その意味や概念が生成される。二辺の長さが等しいという特徴である属性は、二等辺三角形の映像から生成された特徴データにつながる。二等辺三角形という名称を表わす属性は、二等辺三角形という単語の文字の映像から生成された識別データや、二等辺三角形という音声から生成された識別データとつながっている。二等辺三角形という単語から生成された識別データだけを表わす属性は、二等辺三角形の意味や概念を表わす特徴データとつながらない。この例では、意味を持たず識別するためだけの属性と物の概念や意味を表わす属性とを明確に分離している。
1つの属性につながる特徴データの数は、1つに限定されない。図50は、三角錐という立体の図形で、4個の三角形(面)121で構成されている。図51は、三角錐を例に、立体を知識ネットワークで表わした例である。立体の構成要素である三角形(面)121を、面を構成する図形要素とつなぐ。さらに、各面が共有する線(辺)123について、その辺を表す線同士をつなぐ。このように表わすと、立体を構成する面がどのように接しているかを表わすことができる。点や線などの共通する構成要素をつなぐ代わりに、共有する点や線などの構成要素について、複数の面で同じ点や線を用いることもできる。立体の展開図のように、いくつかの表現方法が可能である。
人間は、人の顔を認識するときに、目、鼻、口の位置関係を使うことがある。図52は、目126、鼻127、口128を表わしている。図53は、目と目を結ぶ直線、目と鼻を結ぶ直線、鼻と口を結ぶ直線を物とし、各物をつなぐ知識ネットワークの例である。つまり、顔の図形的な特徴を表わした知識ネットワークである。各直線の属性として線の長さを持つことにする。この知識ネットワークから、目の間の長さと目から鼻までの長さなどの比率を求めることができる。これらの比率が顔の特徴になる。
例えば、外部から与えられた顔の映像から特徴を抽出し、図53のような知識ネットワークを生成し、目、鼻、口の距離の比率を求める。あらかじめ保持された顔の知識ネットワークについても同様の比率を求め、両者を比べる。このようにすると、外部から与えられた顔の映像と記憶している顔が似ているかどうかの判断ができる。
図54は、将棋の盤面を表わした知識ネットワークである。将棋の駒を置く場所129が物である。駒を置く場所129が升目のようにつながった知識ネットワークである。駒を置く場所129は、盤面のなかでの位置を表わす情報を属性として持つ。たとえば(1、1)のように盤面の1つの角から縦横何番目に位置するかで表わす。また、碁盤に駒を置くと、駒を置く場所129の属性に、置かれた駒の種類が追加される。王、歩などが駒の種類である。駒がない状態は、空いていることを示す属性を持つか、あるいは、駒の属性を持たないようにして表現する。駒が移動すると、移動先にその駒の属性を移す。元の場所は、駒がない状態にする。駒を置く場所129の属性として、その場所の安全性や重要性の程度を表わす値など、さまざまな情報を持つことができる。
また、図外にある駒を表わすものも物であり、その属性として駒の種類、移動可能範囲などの属性を持つ。各駒が移動可能な位置の駒を置く場所129が、「歩を移動可能」などの属性を持ってもよい。物である駒を置く場所129が、物である駒とつながり、駒自身が駒の移動稼動範囲などの属性を持ってもよい。目的に応じてより適した方法を採用することができる。
具体的な物や抽象的な物を図形要素のように空間的な位置関係でつないで知識ネットワークを作ることもできる。このようにすると、(IF THEN ELSE)のような記号論理とは異なる判断あるいは推論ができる。空間的な位置関係によって、判断あるいは推論ができる。
たとえば、物Aと物Bの隔たりと物Aと物Cの隔たりを比較し、物Aとの隔たりがより小さい物を選択するという判断あるいは推論ができる。物の隔たりを判断基準にして判断あるいは推論ができる。3次元の空間のように物同士をつないだ知識ネットワークにおいて、より上にある物を選択するという判断あるいは推論もできる。物がつながって生成された空間の中の位置を判断基準にして判断あるいは推論ができる。これは大局観に相当する。
本実施形態では、属性が表わす意味や概念を表わす抽象的な物も扱える。この場合は、抽象的な物の意味を表わす特徴データとつながった属性が、物につながる。「熱さ」という抽象的な物の場合、ある属性が熱い物に触れたときの熱さの感覚の特徴データとつながり、さらにその属性が物につながる。この物が「熱さ」という抽象的な物である。「熱さ」という抽象的な物は、熱さという単語から生成された識別データとつながった属性ともつながることができるが、熱さという単語から生成された識別データとつながった属性はなくてもよい。本実施形態を使うと、単語あるいは言葉から生成された識別データなしで、知識の集まりや知識ネットワークを生成し、知識を蓄積し、推論などの知的処理ができる。
ただし、単語あるいは言葉から生成された識別データが物や属性につながっていると、単語から生成された識別データによる識別や選択が可能になる。識別データと直接つながる物は、識別データによって識別できる。識別データとつながった属性は、識別データによって識別できる。さらに、識別データとつながった属性が物につながると、その物は識別データによって間接的に選択し、識別できる。
一実施形態の知識ベースシステムは、識別データなしで特徴データと属性と物から知識ベース構築し、知識を蓄積し、推論などの知識処理ができる。識別データと特徴データと属性と物から知識ベース構築し、知識を蓄積し推論などの知識処理もできる。また、特徴データなしで識別データと属性と物からなる知識ベースを構築し、知識を蓄積し推論などの知識処理もできる。しかしこの場合、知識ベースは意味や概念を持たない。本願技術の一実施形態の知識ベースは、識別データまたは特徴データと、属性と物とから構成される。
リレーショナルデータベース14を使ってつながりを表で表現する実施形態を説明した。リレーショナルデータベース14は、表を効率よく取り扱える。しかし、つながりを扱える他のソフトウエアでもかまわない。リスト構造というデータ構造を扱えるソフトウエアでも可能であるが、リスト構造を実現するためには、表の形式のデータを使うことになる。リスト構造とは、物であるノードを実現するデータ構造で使われているように、要素同士のつながりポインタで表わす。表でつながりを表わす場合は、つながり合う要素同士を1つの行に並べた表をつくる。ポインタでつながりを表現するか、1つの行に要素を並べて、つながりを表現するかの違いである。
また、連想メモリのような装置や集積回路などの電子部品でもよい。連想メモリは、内部に表を持ち、ハードウエアによって次のような処理を行う。連想メモリ外からデータを受け取り、受け取ったデータの一部または全部が一致するデータが表の中にあるかどうかを調べる。一致するデータが表の中にあった場合、その一致するデータに関連づけられたデータを連想メモリ内の表から取得し、取得されたデータを出力する。連想メモリ内の表として、物と物を対応付けた表、物と属性を対応づけた表、属性と特徴データを対応づけた表などつながりを表わす表を作成しておく。
この連想メモリに、物、属性、特徴データ、識別データの識別子を入力すると、その識別子が連想メモリ内にあるかどうかを調べる。その識別子が連想メモリ内にあると、その識別子に対応づけられた物、属性、特徴データ、識別データなどの識別子が表から取得され出力される。つまり、つながっている物、属性、特徴データ、識別データなどの識別子が取得できる。連想メモリ内の表で対応づけられているデータが出力される。このようにすると、リレーショナルデータベース14を使って表を検索するのと同じ処理が行える。連想メモリ内の表のデータを追加削除することもできる。連想メモリは、リレーショナルデータベース14の検索、追加、削除機能と表形式データを持つ装置あるいは集積回路などの電子部品である。
ただし、1つの連想メモリに格納できるデータ量には限度がある。また、大量のデータを1つの連想メモリに格納すると検索時間が長くなるという問題がある。
図55のようなネットワークを使って実施することも可能である。図55のネットワークは、一実施形態であり、図55のネットワークに限定されない。このようなネットワークを、検索ネットワークと呼ぶ。
表を使って識別子を対応づけるかわりに、図55のようなネットワークを使って識別子を対応づけることができる。このネットワークを使って、対応づけられた識別子を検索、追加、削除できる。図55のネットワークは、表だけを保持する図7の補助記憶装置7のひとつで、図55のネットワーク内の通信装置内にリレーショナルデータベース14の表と同等のデータを分解して保持し、リレーショナルデータベース14と同等の検索処理を行う。リレーショナルデータベース14よりも速く検索が行える。
通常のネットワークは、あて先である通信装置識別子を含む情報を送信し、そのあて先がその通信装置識別子に一致する通信装置が受信する。本ネットワークでは、あて先を含まず送信元の通信装置識別子を含む情報を送信する。これにより、受信相手を指定しないであらかじめ指定された相手にデータを送信できる。
図55は、ネットワーク151を表わしている。図55のネットワーク151は、通信路155を介して互いに接続される送信装置152、通信装置156、制御部160、及び送信受付部161で構成される。送信装置152は、送信部153を有する。また、通信装置156は、受信部157、通信装置識別子158、受信可能識別子159、検索部162、アドレス163を有する。
このネットワーク151では、共有する送信装置152を使って、通信装置156に情報を送信する。送信装置152および送信部153は、各通信装置156に含まれるように実装してもよい。しかし、同時に送信できるのは1つの送信装置152の送信部153に限るので、1つの送信装置152および送信部153を複数の通信装置156で共用するほうが望ましい。送信装置152を1つに限るのは、通信路155で送信データの衝突が起こらなくなり、伝送効率が大幅に向上するからである。送信装置152から複数の通信装置156に対して同時に送信しているため更に効率がよい。
送信受付部161は、制御部160から送信指示と送信データを受け付ける。送信データは、あて先を含まず、送信元の通信装置156の識別子である通信装置識別子158を1つだけ含む。1つの通信装置156が1つの物や属性や特徴データや識別データに対応づけられる。送信部153は、送信受付部161が受け取った送信元の通信装置識別子158を1つだけ含み、あて先を含まない情報を通信路155へ送信する。通信路155は、送信装置152と通信装置156とをつなぐ。通信路155は、電線や光ケーブル以外に、空間そのものが通信路155になってもよい。通信路155は何でもよい。
通信装置156は、受信部157と、通信装置156自身の識別子である通信装置識別子158と、受信可能な通信装置156の識別子である受信可能識別子159と、検索部162とを持つ。通信装置識別子158は、1つのネットワークにおいてその通信装置156を識別する識別子であり、あらかじめ制御部160によって通信装置156に設定されている。受信可能識別子159は、1つの神経細胞に相当するその通信装置156につながっている他の神経細胞に相当する他の通信装置156の通信装置識別子158である。受信可能識別子159は、制御部160によって通信装置156にあらかじめ設定されている。
制御部160は、通信装置156の受信可能識別子159を追加削除できる。これにより、神経細胞に相当する通信装置156同士をつなぐ、あるいは、つながりを削除できる。受信部157は、送信装置152から送信されたデータの中の送信元の通信装置識別子158を通信路155から受け取る。
検索部162は、受け取った通信装置識別子158が受信可能識別子159のどれかと一致するかを調べる。受け取った送信元の通信装置識別子158が受信可能識別子159のどれかと一致すれば、検索部162は、その通信装置156自身の通信装置識別子158を含むデータを制御部160に出力する。これは、神経細胞に相当する通信装置156が、つながっている他の神経細胞である他の通信装置156から信号を受け取ったことに相当する。
一方、受け取った送信元の通信装置識別子158が受信可能識別子159のいずれとも一致しないときは、通信装置156はその通信装置識別子158を出力しない。この場合、受け取った送信元の通信装置識別子158で識別される神経細胞に相当する通信装置156が、その神経細胞に相当する通信装置156とつながっていないことを表わす。このネットワークを使うと、ある通信装置識別子と別の通信装置識別子とを対応づけた表を、ある通信装置識別子で検索し、その通信装置識別子に対応づけられた他の通信装置識別子を取得するのと同じ処理ができる。つまり、このネットワークを使って表を検索することができる。
制御部160は、検索部162によって出力された通信装置識別子158を受け取ると、受け取った通信装置識別子158を含むデータは、図外の装置に渡される。制御部160は、図外の装置より神経細胞に相当する通信装置の識別子である送信元の通信装置識別子158を含む送信指示を受け、受け取った送信指示を送信受付部161に送る。
各通信装置156のアドレス163は、通信装置156を一意に識別する。制御部160は、このアドレス163で通信装置156を指定し、通信装置識別子158や受信可能識別子159を含むデータを設定する。図外のコンピュータあるいは知識ベースシステムは、通信装置識別子158、受信可能識別子159、通信装置156のアドレス163を含むデータを制御部160に送り、アドレス163で指定された通信装置156に、通信装置識別子158、受信可能識別子159を含むデータを設定する。通信装置識別子158は、ネットワーク151内で通信装置156を識別し、通信装置156のアドレス163はネットワーク151外から通信装置156を識別するために用いられる。
図外の装置から表の検索を行う場合、図外の装置から制御部160装置に送信元の通信装置識別子158を含む送信指示を送る。ネットワーク151は前述の処理を行う。送信指示に含まれる送信元の通信装置識別子158で識別される通信装置156とつながる他の通信装置156の通信装置識別子158受け取ると、制御部160は、つながっている他の通信装置156の通信装置識別子158を含むデータを図外の装置に送る。
このようなネットワーク151を使って実施すると、各通信装置156での検索処理が並列に行え、かつ、個々の通信装置156の検索処理がハードウエアで行われるので、非常に高速に表の検索が行える。そのため、処理速度が飛躍的に速くなる。素早い応答が要求される分野でも利用できる。
本ネットワークの通信装置156は、仕組が単純であり、集積回路として容易に実施できる。1つの集積回路に複数の通信装置156を組み込むことも容易である。複数の通信装置156を持つ集積回路を並列に複数個つないでネットワークを生成すると、大きな表を作成できる。大容量の知識情報を蓄積し、高速に処理できる知識ベースシステムが構築できる。データベースを使うと、データベースの性能を維持するための保守作業を定期的に行う必要があるが、このネットワーク151ではその必要がない。
図7に示される演算装置2と、図55のネットワーク151は、制御部160でつながり、演算装置2から図55の制御部160に対して指示やデータが渡される。また、演算装置2は制御部160からデータを受け取る。
例えば、演算装置2から制御部160にアドレス163と通信装置識別子158や受信可能識別子159を含むデータと共に設定指示が渡されると、制御部160は、そのアドレス163の通信装置156に、受け取った通信装置識別子158や受信可能識別子159を含むデータを設定する。
また、演算装置2から制御部160に送信指示と送信元の通信装置識別子158とを渡すと、制御部160は、送信指示と送信元の通信装置識別子158とを送信受付部161に送る。送信受付部161は、送信装置152の送信部153に送信指示と送信元の通信装置識別子158とを送る。送信部153は、通信路155に送信元の通信装置識別子158を送信する。通信装置156は、通信路155から送信元の通信装置識別子158を受け取ると、受信した送信元の通信装置識別子158と受信可能識別子159とを比較する。一致すれば、その通信装置156の通信装置識別子158を制御部160に渡す。受信可能識別子159と直接対応づけられたデータがその通信装置156内に設定されている場合は、その通信装置156の通信装置識別子158と、その受信可能識別子159と直接対応づけられたデータとが、制御部160に渡される。
制御部160は、渡された通信装置識別子158を含むデータを演算装置2に渡す。
あるいは、通信装置156は、その通信装置156の通信装置識別子158を含むデータと受信した送信元の通信装置識別子158とを制御部160に渡す。制御部160は、通信装置156の通信装置識別子158を含むデータと送信元の通信装置識別子158との組を演算装置2に渡してもよい。
通信装置識別子158は、物、属性、特徴データまたは識別データの識別子である。つまり、1つの通信装置156は、1つの物、属性、特徴データまたは識別データである。だだし、特徴データの実際のデータは、特徴データの識別子と共に、図55のネットワーク151以外のデータ10に格納され、特徴データの識別子によって参照される。識別データの実際のデータも識別データの識別子と共に図55のネットワーク151以外のデータ10に格納され、識別データの識別子によって参照される。
受信可能識別子159は、たとえばその通信装置156である1つの物につながっている他の物、他の属性、他の特徴データまたは他の識別データの識別子である。通信装置156は、物、属性、特徴データまたは識別データを表わしている。つまり、このネットワーク151は、物、属性、特徴データ、識別データのつながりを表わしている。通信装置156に設定されるデータは、リレーショナルデータベース14の表などとして保持されている。
物、属性、特徴データ、識別データを対応づけてつながりを表わす表を、分解した表の説明をする。
つながりを表わす表について、対応づけられた一方の列を選択し、選択された列の1つの識別子を選び、その識別子とつながり対応づけられる他方の列の識別子を抜き出す。1つの識別子と抜き出されたいくつかの識別子だけを対応づける表を新たに作成する。その列の識別子についてこの処理を繰り返す。つながりを表わす表の各行に、さらに、つながりの程度を表わす重みなどの付属情報が対応づけられている場合、対応づけられた他方の列の識別子に付属情報をさらに対応づけて表を作成してもよい。付属情報は重みに限定されない。
次に、他方の列である後者の列を選択し、選択された列の1つの識別子を選び、その識別子とつながり対応づけられる一方の列である前者の列の識別子を抜き出す。1つの識別子と抜き出されたいくつかの識別子だけを対応づける表を新たに作成する。その列の識別子についてこの処理を繰り返す。つながりを表わす表の各行に、さらに、つながりの程度を表わす重みなどの付属情報が対応づけられている場合、対応づけられた前者の列の識別子に付属情報をさらに対応づけて表を作成してもよい。付属情報は重みに限定されない。
新たに作成された1つの表が1つの物、属性、特徴データ、識別データに相当する。この表は、たとえば、1つの物識別子と、その1つの物につながる他の物、属性、特徴データまたは識別データの識別子を対応づける。したがって、その1つの物、属性、特徴データまたは識別データの識別子と、物、属性、特徴データまたは識別データの識別子を保持する列数が1の表の組み合わせとしてもよい。つながっている他の物、属性、特徴データまたは識別データを表わす識別子の数は、0個以上で、1個に限定されない。
図56の特徴データと属性とを対応づける表は、図57の1つの特徴データといくつかの属性とを対応づける表と、図58の1つの属性といくつかの特徴データとを対応づける表とに分解できる。表には、属性の代わりに属性識別子、特徴データの代わりに特徴データの識別子が格納されている。
図56の特徴データと属性とを対応づける表の一方の列である特徴データの識別子の列から1つの特徴データの識別子(10001)を取得する。他方の列である属性識別子の列から、特徴データの識別子(10001)と対応づけられた属性識別子(14)を抜き出し取得する。取得された1つの特徴データの識別子(10001)と、抜き出され取得された属性識別子(14)だけを対応づけた表を生成する。これが、図57の表である。図56の表の各行に重みなどの付属情報があり各行に対応づけられている場合は、特徴データの識別子(10001)と対応づけられた属性識別子(14)とに、さらにその付属情報を対応づけて図57の表を作成してもよい。図56の特徴データと属性を対応づける表の一方の列である特徴データの識別子の列のすべての特徴データの識別子について上記処理を繰り返す。
図56の特徴データと属性とを対応づける表の属性識別子の列から1つの属性識別子(14)を取得する。特徴データの識別子の列から、属性識別子(14)と対応づけられた特徴データの識別子(10001)を抜き出し取得する。さらに、属性識別子(14)と対応づけられた特徴データの識別子(45000)を抜き出し取得する。取得された1つの属性識別子(14)と、抜き出され取得された特徴データの識別子(10001、45000)だけを対応づけた表を生成する。これが、図58の表である。図56の表の各行に重みなどの付属情報があり各行に対応づけられている場合は、属性識別子(14)と対応づけられた特徴データの識別子(10001)に、さらにその付属情報を対応づけて図58の表を作成してもよい。図56の特徴データと属性を対応づける表の後者の属性の列のすべての属性識別子について上記処理を繰り返す。
このようにすると、図56の特徴データと属性とを対応づける1つの表は、1つの特徴データと、その1つの特徴データと直接対応づけられたいくつかの属性とを表わす表と、1つの属性と、その1つの属性と直接対応づけられたいくつかの特徴データとを表わす表とに分解される。これらの分解された1つの表を1つの通信装置156に割り当てる。前者の表の場合は、1つの特徴データの識別子が通信装置識別子158に設定され、いくつかの属性識別子が受信可能識別子159として設定される。図55には描かれていないが、属性識別子に付属情報が直接対応づけられている場合は、付属情報は属性識別子、つまり受信可能識別子159に直接対応づけられて通信装置156内に設定される。受信可能識別子159の表が1列の表ではなく複数列の表になって、対応づけられた属性識別子と同じ行に付属情報が設定される。
データ10には、未使用の物識別子、未使用の属性識別子、未使用の特徴データの識別子、未使用の識別データの識別子を保持する未使用識別子一覧がある。たとえば図19の物と属性とを対応づける表で使われている物識別子や属性識別子は、未使用識別子一覧から取得されたものである。特徴データの識別子も識別データの識別子も未使用識別子一覧から取得されたものである。
1つのネットワーク151内では、通信装置156と通信装置のアドレス163は、あらかじめ1対1に対応付けられ、1つの通信装置のアドレス163で通信装置156を1つだけ指定できる。データ10には、未使用の通信装置のアドレス163を保持する未使用通信装置一覧がある。また、データ10には、通信装置のアドレス163と、物識別子、属性識別子、特徴データの識別子または識別データの識別子とを対応づけたアドレス識別子対応表がある。
演算装置2が制御部160に設定指示や送信指示を渡す場合、アドレス識別子対応表を使って、物、属性、特徴データまたは識別データの識別子から通信装置のアドレス163を取得し、取得されたアドレス163を含むデータと指示を制御部160に渡す。物、属性、特徴データまたは識別データが生成されるとき、未使用識別子一覧から識別子が取得され、未使用通信装置一覧から通信装置のアドレス163が取得され、取得された識別子とアドレス163の対がアドレス識別子対応表に格納される。
ネットワーク151内では、1つの通信装置156が1つの物、1つの属性、1つの特徴データまたは1つの識別データに相当する。なお、音声や映像などから抽出された特徴である特徴データまたは識別データの実際のデータは、図55のネットワーク151以外のデータ10に保持されている。演算装置2は、ネットワーク151の制御部160にアドレス163とそのアドレス163で特定される通信装置156に設定する通信装置識別子158と受信可能識別子159とを含むデータを渡し、そのアドレス163で特定される通信装置156に通信装置識別子158と受信可能識別子159とを含むデータを設定するように指示を出す。指示を受けた制御部160は、受け取ったデータと指示にしたがって、そのアドレス163で特定される通信装置156に通信装置識別子158と受信可能識別子159とを含むデータを設定する。そして、その通信装置のアドレス163と通信装置識別子158に使われた識別子が対応付けられ、アドレス識別子対応表に格納される。
図56の特徴データと属性とを対応づける表は、図57の1つの特徴データといくつかの属性とを対応づける表と、図58の1つの属性といくつかの特徴データを対応づける表に分解できる。表には、属性の代わりに属性識別子、特徴データの代わりに特徴データの識別子が格納されている。
図57を例に説明する。図57の最初の表について説明する。未使用通信装置一覧から未使用のアドレス163を1つ取得する。取得されたアドレス163と図57の最初の表の特徴データの識別子(10001)との組をアドレス識別子対応表に格納する。これで、アドレス163と特徴データの識別子とが対応づけられた。すでに、アドレス163と特徴データの識別子(10001)とが対応づけられている場合は、アドレス識別子対応表から特徴データの識別子(10001)に対応づけられたアドレス163を取得する。
演算装置2は、取得されたアドレス163と通信装置識別子158としての特徴データの識別子(10001)と、受信可能識別子159としての属性識別子(14)と、付属情報である重み(1)と、設定指示とを制御部160に渡す。制御部160は、渡されたアドレス163で特定される通信装置156に対して、通信装置識別子158として受け取った特徴データの識別子(10001)を設定し、受信可能識別子159として受け取った属性識別子(14)を設定し、属性識別子(14)の付属データとして重み(1)を設定する。図57のすべての表について同じように設定を繰り返す。図58の表も同じようにする。
図56の表のデータと図57の表のデータをすべて設定すると、図56の特徴データと属性とを対応付ける表が、図55のネットワークに格納されたことになる。1つの選択ネットワークが、図56のような、識別子を対応づけつながりを表わしている、1つの表になる。
たとえば、演算装置2が、制御部160に送信元の識別子として属性識別子(14)と送信指示とを渡すと、制御部160は、受け取った送信元識別子と送信指示とを送信受付部161に渡す。送信受付部161は、受け取った送信元識別子と送信指示とを送信装置152の送信部153に渡す。送信部153は、受け取った送信指示にしたがって、受け取った送信元識別子(14)を通信路155に送信する。
図57の一番上の表の特徴データの識別子(10001)が通信装置識別子158に設定され、同じ表の属性識別子(14)が受信可能識別子159に設定された通信装置156の受信部157が、送信元識別子(14)を通信路155から受け取る。すると、検索部162は、受け取った送信元識別子(14)が、受信可能識別子159のどれかと一致するかを調べる。この場合、受け取った送信元識別子(14)が、設定された受信可能識別子159の1つと一致する。その通信装置156の通信装置識別子158である特徴データの識別子(10001)と付属データである重み(1)とが通信装置156から制御部160に渡される。
図57の上から2番目の表の特徴データの識別子(45000)が通信装置識別子に設定され、同じ表の属性識別子(14)が受信可能識別子に設定された別の通信装置156の受信部157が、通信路155から送信元識別子(14)を受け取る。すると、検索部162は、受け取った送信元識別子(14)が、受信可能識別子159のどれかと一致するかを調べる。この場合、受け取った送信元識別子(14)が、設定された受信可能識別子159の1つと一致する。この通信装置156は、その通信装置156の通信装置識別子である特徴データの識別子(45000)と付属データである重み(2)とを制御部160に渡す。
演算装置2は、通信装置156から制御部160に渡されたデータである特徴データの識別子(10001)と付属データである重み(1)との組と、特徴データの識別子(45000)と付属データである重み(2)との組を受け取る。特徴データ(10001)と特徴データ(45000)とが、属性識別子(14)につながり対応づけられていることが判る。さらに、つながりの強さをあらわす重みも特徴データの付属情報として取得できる。
上記の処理は、図56の表を、リレーショナルデータベース14を使い、属性識別子(14)を検索キーにして検索したことと同じである。
通信装置156に受信可能識別子159の付属データが設定されていない場合、通信装置156は、付属データを制御部160に渡さないようにしてもよいし、付属情報がないことを表わす特別なデータ、たとえばNULLを制御部160に渡してもよい。
プログラムは、処理手順をプログラムという情報で表わしたものである。これを、ハードウエア化することは可能である。従って、本願技術のプログラムをハードウエアで実施することも可能である。本技術のプログラムをハードウエアで実施した電子装置、集積回路またはプロセッサとして実施することにより、本技術をさまざまな機器に組み込むことができ、かつ、高速に処理できるようになる。もちろん情報システムとして実施できる。
以上、図面を参照してこの発明の実施形態を説明したが、この発明は、図示した実施形態のものに限定されない。図示した実施形態に対して、この発明と同一の範囲内において、あるいは均等の範囲内において、種々の修正や変形を加えることが可能である。