JP2577763B2 - 図形認識システム及びその動作方法 - Google Patents
図形認識システム及びその動作方法Info
- Publication number
- JP2577763B2 JP2577763B2 JP63014353A JP1435388A JP2577763B2 JP 2577763 B2 JP2577763 B2 JP 2577763B2 JP 63014353 A JP63014353 A JP 63014353A JP 1435388 A JP1435388 A JP 1435388A JP 2577763 B2 JP2577763 B2 JP 2577763B2
- Authority
- JP
- Japan
- Prior art keywords
- symbol
- sub
- vector
- slot
- symbols
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/40—Document-oriented image-based pattern recognition
- G06V30/42—Document-oriented image-based pattern recognition based on the type of document
- G06V30/422—Technical drawings; Geographical maps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/24—Character recognition characterised by the processing or recognition method
- G06V30/248—Character recognition characterised by the processing or recognition method involving plural approaches, e.g. verification by template match; Resolving confusion among similar patterns, e.g. "O" versus "Q"
- G06V30/2504—Coarse or fine approaches, e.g. resolution of ambiguities or multiscale approaches
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Image Analysis (AREA)
Description
【発明の詳細な説明】 (産業上の利用分野) 本発明は、手で描かれた図形記号の認識技術に関し、
特に図面を電子的に走査して予めベクトル化されたデー
タを利用する技術に関する。
特に図面を電子的に走査して予めベクトル化されたデー
タを利用する技術に関する。
(従来の技術および解決しようとする課題) 機械的システム、電気的システム等の多くの技術図面
は、論理素子記号、電気回路素子記号および機械的素子
記号等の、多数の多岐にわたる形状即ち記号を含んでい
る。このような記号は、通常、図面の他の部分から独立
するものではなく、図面の他の記号あるいは部分と線で
直接接続されている。設計図、手書きの技術的な図等を
色々なCAD(コンピュータ援用設計)システムに対して
入力し得るディジタル・データへ迅速に変換することが
できる、比較的低コストの自動図面認識システムの開発
においては、このシステムが、格納された記号ライブラ
リから対応する記号を取出すために使用できる割当てら
れた記号により効率的にこのような記号を照合すること
を可能にして、これにより、このような記号を完全に記
述する遥かに大量のディジタル・データを格納し処理す
る必要を回避するために、このような記号を自動的に認
識できることが非常に望ましい。
は、論理素子記号、電気回路素子記号および機械的素子
記号等の、多数の多岐にわたる形状即ち記号を含んでい
る。このような記号は、通常、図面の他の部分から独立
するものではなく、図面の他の記号あるいは部分と線で
直接接続されている。設計図、手書きの技術的な図等を
色々なCAD(コンピュータ援用設計)システムに対して
入力し得るディジタル・データへ迅速に変換することが
できる、比較的低コストの自動図面認識システムの開発
においては、このシステムが、格納された記号ライブラ
リから対応する記号を取出すために使用できる割当てら
れた記号により効率的にこのような記号を照合すること
を可能にして、これにより、このような記号を完全に記
述する遥かに大量のディジタル・データを格納し処理す
る必要を回避するために、このような記号を自動的に認
識できることが非常に望ましい。
これまでに、非常に多岐にわたる研究が文字認識の分
野において公表されてきた。従来の文字認識システム
は、他の文字あるいは図形構造と太い線で繋がれない比
較的小さな「独立した」文字に対して適用される、統計
的特徴の抽出および認識手段を含んでいる。従来の文字
認識手法は、他の記号または図形構造と太い線により繋
がれる図形記号の認識には適していない。更に、従来の
文字認識手法は、多量の計算時間およびメモリー空間を
必要としている。
野において公表されてきた。従来の文字認識システム
は、他の文字あるいは図形構造と太い線で繋がれない比
較的小さな「独立した」文字に対して適用される、統計
的特徴の抽出および認識手段を含んでいる。従来の文字
認識手法は、他の記号または図形構造と太い線により繋
がれる図形記号の認識には適していない。更に、従来の
文字認識手法は、多量の計算時間およびメモリー空間を
必要としている。
「黒板(blackboard)」法と呼ばれる従来の手法が、
言語認識ソフトウェア・システムにおいて使用されてき
た。L.D.Erman、F.Hayes−Roth、V.LesserおよびD.Redd
y著「Hearsay−II型音声理解システム−不確実性を解決
する知識の統合」(「Computing Surveys12」、213〜25
3頁、1980年刊)を参照されたい。ソフトウェア「黒
板」は、順次受取った入力データからラベルを付した構
造を形成するため、中間的な結果に対する蓄積機構とし
て用いられる。この黒板手法はまた、所謂エキスパート
・システムの構築において、仮説形成手法に対して適用
されてきた。例えば、N.V.FindlerおよびP.Bhaskaran著
「エキスパート・システムに関する2つの論理的問題」
(「IEEE International Conference on Systems,Man
and Cybernetics」、236〜240頁、1985年刊)参照。
言語認識ソフトウェア・システムにおいて使用されてき
た。L.D.Erman、F.Hayes−Roth、V.LesserおよびD.Redd
y著「Hearsay−II型音声理解システム−不確実性を解決
する知識の統合」(「Computing Surveys12」、213〜25
3頁、1980年刊)を参照されたい。ソフトウェア「黒
板」は、順次受取った入力データからラベルを付した構
造を形成するため、中間的な結果に対する蓄積機構とし
て用いられる。この黒板手法はまた、所謂エキスパート
・システムの構築において、仮説形成手法に対して適用
されてきた。例えば、N.V.FindlerおよびP.Bhaskaran著
「エキスパート・システムに関する2つの論理的問題」
(「IEEE International Conference on Systems,Man
and Cybernetics」、236〜240頁、1985年刊)参照。
このように、ある図面における他の物と直接繋がった
図形記号を認識するための改善された手法に対する満た
されない要求が存在する。
図形記号を認識するための改善された手法に対する満た
されない要求が存在する。
(本発明の要約) 本発明の目的は、図面における他のもの、特に他の大
きなものと繋がることができる、比較的小さな図形記号
を認識するための手法の提供にある。
きなものと繋がることができる、比較的小さな図形記号
を認識するための手法の提供にある。
本発明の別の目的は、記号の認識を行なうため、ベク
トル化されたデータについて演算する上記の形式の記号
認識システムの提供にある。
トル化されたデータについて演算する上記の形式の記号
認識システムの提供にある。
本発明の他の目的は、異なる図形アプリケーションに
対する記号ライブラリの生成に要する労力を低減する手
法の提供にある。
対する記号ライブラリの生成に要する労力を低減する手
法の提供にある。
本発明の別の目的は、図形記号の自動的な認識を行な
うことができる規則ベースの複雑性を最小限度に抑える
手法の提供にある。
うことができる規則ベースの複雑性を最小限度に抑える
手法の提供にある。
本発明の別の目的は、柔軟性に富んだ自動図形記号認
識システムの提供にある。
識システムの提供にある。
要約すれば、本発明はその一実施例によれば、他の色
々な図形記号または図形構造と繋がる手で書いた図形記
号の認識のための方法および装置を提供するものであ
る。本発明によれば、ユーザは、種々の記号の認識のた
めのセグメント化された基本則を生成する。このセグメ
ント化された基本則は、図形記号のいくつかの特徴を表
わす順次の幾何学的テストの収集を含む、次に行なわれ
るべきこのような一連の幾何学的テストを指示する
「真」あるいは「偽」の結果を生じる。この判定の基本
則は、複数の分岐点(ノード)を有する判断ツリーに変
換される。別の一連の幾何学的テストは、この判断ツリ
ーの各分岐点と関連させられる。「空白標識(ヌル・イ
ンジケータ)」である記号標識もまた、各分岐点と関連
付けられて、一連のテストが判断ツリーの特定の分岐点
において完了する毎に、記号識別子あるいは推測変数が
更新されることを許容する。本発明の記号認識システム
によれば、技術的図面等は、図面全体に対してベクトル
化された図形データを生じるために、操作される。ユー
ザは、認識されるべき各図形記号あるいは間隔が密な図
形記号グループ毎に、矩形状の比較的小さな「ウィンド
ウ」を定義することができる。1つのウィンドウのベク
トルおよび他の符号化されたエンティティが、一時に1
つずつベクトル・テーブルから取出され、適宜のソフト
ウェア「黒板」の適宜の記号スロットおよびそのサブ記
号スロットに置かれる。記号認識システムは、各ウィン
ドウと対応する各ソフトウェア黒板の1つ1つを選択
し、1つのウィンドウ内の図形構造と対応するベクトル
のみが取出されて、対応する黒板に対して挿入される。
黒板において成長する記号およびサブ記号は、これらが
閉ループを形成するかあるいは黒板が充填されるまで連
続的に再構成される。取出された各ベクトルまたはエン
ティティがある黒板に挿入された後、判断ツリーのテス
トがその時の連係リストに対して適合し得るかどうかを
判定するため、サブ記号の属性が判定されて、判断ツリ
ーのセグメントの属性の「ラベル」と比較され、判断ツ
リーのセグメントが連係リストの属性と整合するかを判
定する。整合すると判定した場合は、判断ツリーの選択
されたセグメントの分岐点と関連した種々の幾何学的テ
ストが、対応する連係リストについて行なわれる。一連
の幾何学的テストの結果により、判断ツリーのどの経路
を移動すべきかを判定する。
々な図形記号または図形構造と繋がる手で書いた図形記
号の認識のための方法および装置を提供するものであ
る。本発明によれば、ユーザは、種々の記号の認識のた
めのセグメント化された基本則を生成する。このセグメ
ント化された基本則は、図形記号のいくつかの特徴を表
わす順次の幾何学的テストの収集を含む、次に行なわれ
るべきこのような一連の幾何学的テストを指示する
「真」あるいは「偽」の結果を生じる。この判定の基本
則は、複数の分岐点(ノード)を有する判断ツリーに変
換される。別の一連の幾何学的テストは、この判断ツリ
ーの各分岐点と関連させられる。「空白標識(ヌル・イ
ンジケータ)」である記号標識もまた、各分岐点と関連
付けられて、一連のテストが判断ツリーの特定の分岐点
において完了する毎に、記号識別子あるいは推測変数が
更新されることを許容する。本発明の記号認識システム
によれば、技術的図面等は、図面全体に対してベクトル
化された図形データを生じるために、操作される。ユー
ザは、認識されるべき各図形記号あるいは間隔が密な図
形記号グループ毎に、矩形状の比較的小さな「ウィンド
ウ」を定義することができる。1つのウィンドウのベク
トルおよび他の符号化されたエンティティが、一時に1
つずつベクトル・テーブルから取出され、適宜のソフト
ウェア「黒板」の適宜の記号スロットおよびそのサブ記
号スロットに置かれる。記号認識システムは、各ウィン
ドウと対応する各ソフトウェア黒板の1つ1つを選択
し、1つのウィンドウ内の図形構造と対応するベクトル
のみが取出されて、対応する黒板に対して挿入される。
黒板において成長する記号およびサブ記号は、これらが
閉ループを形成するかあるいは黒板が充填されるまで連
続的に再構成される。取出された各ベクトルまたはエン
ティティがある黒板に挿入された後、判断ツリーのテス
トがその時の連係リストに対して適合し得るかどうかを
判定するため、サブ記号の属性が判定されて、判断ツリ
ーのセグメントの属性の「ラベル」と比較され、判断ツ
リーのセグメントが連係リストの属性と整合するかを判
定する。整合すると判定した場合は、判断ツリーの選択
されたセグメントの分岐点と関連した種々の幾何学的テ
ストが、対応する連係リストについて行なわれる。一連
の幾何学的テストの結果により、判断ツリーのどの経路
を移動すべきかを判定する。
更に、本発明の実施態様においては、各ベクトルがベ
クトル・テーブルから取出された後、このベクトルは適
宜の黒板の記号スロットに挿入されるが、この記号スロ
ットは、ベクトルの実際の場所と対応する場所のパラメ
ータを有する。この記号スロットが黒板に存在しないな
らば、これが生成されてベクトルが挿入される。更に、
各ベクトルは、選択された記号スロット内のサブ記号ス
ロットに含まれ、このベクトルは、このサブ記号スロッ
トにおいて既にある任意のベクトルを含む連係リストに
対して加えられる。もしこのような記号スロットが存在
しなければ、1つの記号スロットが生成され、ベクトル
がこれに入れられて連係リストを開始する。ある記号ス
ロットに挿入される各サブ記号スロットは、この記号ス
ロットにおける他のこのようなサブ記号スロットの連係
リストに加えられる。サブ記号構造がある黒板内で成長
するに伴い、システムは、その記号スロット内の他の種
々のサブ記号スロットにおけるサブ記号の各部分を組合
せるために、相互に充分に接近しているかどうかを判定
し、また他の記号スロット内のサブ記号をテストして、
その時の記号スロットに対し「プル(引張)」してその
内部のサブ記号と組合せることができるかどうかを判定
する。記号スロットおよびサブ記号スロットの各々は、
この目的のため割振られたメモリー空間の一部と対応し
ている。本発明の上記実施態様においては、判断ツリー
の隣接する分岐点における連係リストの各部分について
の一連の幾何学的テストを行なう動作は、ある連係リス
トに含まれる特定のタイプのサブ記号が二回以上生じる
かどうかの判定を含み、もしそうであれば、循環するサ
ブ記号のあり得る順列数を判定する。連係リストのこの
ような各順列は、「真」の結果が得られるまで、この分
岐点に適合し得る一連の幾何学的テストによってテスト
される。「真」の結果が得られなければ、本システム
は、記号のタイプについての推論が行なわれないことを
判定する前に、前記判断ツリーの分岐点の「偽」の結果
に対して一連の幾何学的テストを適用することにより、
「同じ経路を逆行する」。もしある記号が認識されるな
らば、ある「推論」変数すなわち「認識」変数が更新さ
れ、推論変数を用いて認識されたサブ記号を完全に記述
する格納記号ライブラリをアクセスする利用プログラム
に対して、最終的に出力される。大きさの情報もまたこ
の利用プログラムに対して出力されて、記号ライブラリ
からアクセスされた記号の適正な幾何学的な尺度変更を
行う。
クトル・テーブルから取出された後、このベクトルは適
宜の黒板の記号スロットに挿入されるが、この記号スロ
ットは、ベクトルの実際の場所と対応する場所のパラメ
ータを有する。この記号スロットが黒板に存在しないな
らば、これが生成されてベクトルが挿入される。更に、
各ベクトルは、選択された記号スロット内のサブ記号ス
ロットに含まれ、このベクトルは、このサブ記号スロッ
トにおいて既にある任意のベクトルを含む連係リストに
対して加えられる。もしこのような記号スロットが存在
しなければ、1つの記号スロットが生成され、ベクトル
がこれに入れられて連係リストを開始する。ある記号ス
ロットに挿入される各サブ記号スロットは、この記号ス
ロットにおける他のこのようなサブ記号スロットの連係
リストに加えられる。サブ記号構造がある黒板内で成長
するに伴い、システムは、その記号スロット内の他の種
々のサブ記号スロットにおけるサブ記号の各部分を組合
せるために、相互に充分に接近しているかどうかを判定
し、また他の記号スロット内のサブ記号をテストして、
その時の記号スロットに対し「プル(引張)」してその
内部のサブ記号と組合せることができるかどうかを判定
する。記号スロットおよびサブ記号スロットの各々は、
この目的のため割振られたメモリー空間の一部と対応し
ている。本発明の上記実施態様においては、判断ツリー
の隣接する分岐点における連係リストの各部分について
の一連の幾何学的テストを行なう動作は、ある連係リス
トに含まれる特定のタイプのサブ記号が二回以上生じる
かどうかの判定を含み、もしそうであれば、循環するサ
ブ記号のあり得る順列数を判定する。連係リストのこの
ような各順列は、「真」の結果が得られるまで、この分
岐点に適合し得る一連の幾何学的テストによってテスト
される。「真」の結果が得られなければ、本システム
は、記号のタイプについての推論が行なわれないことを
判定する前に、前記判断ツリーの分岐点の「偽」の結果
に対して一連の幾何学的テストを適用することにより、
「同じ経路を逆行する」。もしある記号が認識されるな
らば、ある「推論」変数すなわち「認識」変数が更新さ
れ、推論変数を用いて認識されたサブ記号を完全に記述
する格納記号ライブラリをアクセスする利用プログラム
に対して、最終的に出力される。大きさの情報もまたこ
の利用プログラムに対して出力されて、記号ライブラリ
からアクセスされた記号の適正な幾何学的な尺度変更を
行う。
(実施例) 本発明の記号認識プロセスを説明するに先立ち、最初
に本発明の記号認識装置および手法が内蔵される自動図
面認識システム全般について記述することが有用であろ
う。
に本発明の記号認識装置および手法が内蔵される自動図
面認識システム全般について記述することが有用であろ
う。
コンピュータ・グラフィックス・システムは、第11図
に全体的に示されているが、典型的には設計図面等であ
るオリジナルの線図1は適宜のイメージ・スキャナー2
により走査され、このスキャナーは直列ピクセル・デー
タ3をランレングス・エンコーダ5、ウィンドウ動作メ
モリー6およびCPU7を含む「自動図面認識システム」
(ADR)4に対して出力する。該システムは、Motorola
社のMC68020型集積回路マイクロプロセッサ等の、多数
のマイクロプロセッサ・チップを含むことができる。こ
の自動図面認識システム4は、以降に述べるように、ピ
クセル・データを簡単にし、ピクセル、ベクトル、認識
された文字、及び記号を、参照番号8で示すように、ワ
ークステーション10に供給する。該ワークステーション
は、VERTICOMグラフィックス・ボード、高解像度のグラ
フィックス・モニター13、キーボード14、マウス15およ
びハードディスク12を含むIBM社のPC−AT型デスク・ト
ップ・コンピュータを含んでいる。
に全体的に示されているが、典型的には設計図面等であ
るオリジナルの線図1は適宜のイメージ・スキャナー2
により走査され、このスキャナーは直列ピクセル・デー
タ3をランレングス・エンコーダ5、ウィンドウ動作メ
モリー6およびCPU7を含む「自動図面認識システム」
(ADR)4に対して出力する。該システムは、Motorola
社のMC68020型集積回路マイクロプロセッサ等の、多数
のマイクロプロセッサ・チップを含むことができる。こ
の自動図面認識システム4は、以降に述べるように、ピ
クセル・データを簡単にし、ピクセル、ベクトル、認識
された文字、及び記号を、参照番号8で示すように、ワ
ークステーション10に供給する。該ワークステーション
は、VERTICOMグラフィックス・ボード、高解像度のグラ
フィックス・モニター13、キーボード14、マウス15およ
びハードディスク12を含むIBM社のPC−AT型デスク・ト
ップ・コンピュータを含んでいる。
ランレングス・エンコーダ5は、比較的簡単な回路で
あり、行信号の終端およびページ信号の終端とともにス
キャナーから直列ピクセルを受取り、これらピクセル
は、制御回路に送られる。該制御回路は、新しい非ゼロ
・ピクセル・コードが受取られる毎に増分されるピクセ
ル・カウンタに対し、増分信号およびクリア信号を発生
し供給する。制御回路はまた、新しいピクセル入力信号
が受取られる毎に増分される列カウンタ回路に対して、
増分信号およびクリア信号を発生し供給する。ピクセル
に対するクリア信号は、一連の繋がった黒ピクセルから
1つの白ピクセルへの変換が生じる毎に、ピクセル・カ
ウンタをリセットし、この時ピクセル・カウンタの内容
が、FIFOバッファに対して書込まれる。ピクセル・カウ
ンタはまた、文書中のある対象の走査によって生じるそ
の時の暗いピクセルのストリング即ち「スライス」の長
さを格納する。列カウンタ・クリア信号は、行信号の終
端に応答して各行の終りに生成される。書込み信号は、
1つのスライスの終りが生じるか、あるいは1行の終り
が生じる毎に、ピクセル・カウンタおよび列カウンタの
双方の内容をFIFOバッファに対して書込ませる。
あり、行信号の終端およびページ信号の終端とともにス
キャナーから直列ピクセルを受取り、これらピクセル
は、制御回路に送られる。該制御回路は、新しい非ゼロ
・ピクセル・コードが受取られる毎に増分されるピクセ
ル・カウンタに対し、増分信号およびクリア信号を発生
し供給する。制御回路はまた、新しいピクセル入力信号
が受取られる毎に増分される列カウンタ回路に対して、
増分信号およびクリア信号を発生し供給する。ピクセル
に対するクリア信号は、一連の繋がった黒ピクセルから
1つの白ピクセルへの変換が生じる毎に、ピクセル・カ
ウンタをリセットし、この時ピクセル・カウンタの内容
が、FIFOバッファに対して書込まれる。ピクセル・カウ
ンタはまた、文書中のある対象の走査によって生じるそ
の時の暗いピクセルのストリング即ち「スライス」の長
さを格納する。列カウンタ・クリア信号は、行信号の終
端に応答して各行の終りに生成される。書込み信号は、
1つのスライスの終りが生じるか、あるいは1行の終り
が生じる毎に、ピクセル・カウンタおよび列カウンタの
双方の内容をFIFOバッファに対して書込ませる。
上記の生(raw)ランレングス・データもまた、走査
された各行の終りおよび走査された各ページの終りを含
んでいる。生のランレングス・データは、(1)個々の
簡単な部分、または(2)「対象」すなわち「オブジェ
クト」の「塊(blob)」のいずれかを表わす連係リスト
に、再編成される。「対象」は、白ピクセルで完全に囲
まれた画像である。連係リストは、スライス数を大幅に
減少するために、フィルタされて種々のスライス間の重
要でない白ピクセルの間隙を取除く。
された各行の終りおよび走査された各ページの終りを含
んでいる。生のランレングス・データは、(1)個々の
簡単な部分、または(2)「対象」すなわち「オブジェ
クト」の「塊(blob)」のいずれかを表わす連係リスト
に、再編成される。「対象」は、白ピクセルで完全に囲
まれた画像である。連係リストは、スライス数を大幅に
減少するために、フィルタされて種々のスライス間の重
要でない白ピクセルの間隙を取除く。
フィルタされた連係リストは、「幾何学的に」構成さ
れた、(1)コンパクトなスライス・データ、および各
「塊」を他の「塊」またはこの「塊」と繋がった台形に
関連付けるために必要な関連するポインタの全てを含む
「塊レコード」、(2)4つの隅点、および台形により
正確に表わすことができる対象の形状に関連する点およ
び他の塊またはこれと繋がる台形に対するポインタを含
む「台形レコード」、(3)以降に述べる収束レコー
ド、および(4)以降に述べる発散レコードに組立てら
れる。
れた、(1)コンパクトなスライス・データ、および各
「塊」を他の「塊」またはこの「塊」と繋がった台形に
関連付けるために必要な関連するポインタの全てを含む
「塊レコード」、(2)4つの隅点、および台形により
正確に表わすことができる対象の形状に関連する点およ
び他の塊またはこれと繋がる台形に対するポインタを含
む「台形レコード」、(3)以降に述べる収束レコー
ド、および(4)以降に述べる発散レコードに組立てら
れる。
前に触れたLienの米国米国特許出願のベクトル化手法
は、対象を「ベクトル化」するため前記のレコードを用
いる。次いで、「ベクトル・テーブル」即ちベクトル化
により生じるVECGENファイルにおける出力ベクトルおよ
びデータは、オリジナル図即ち対象等の修正即ち編集バ
ージョンを定義する更新ファイルを生じるために、基準
化因数(スケールファクタ)にディメンジョンを乗じ、
ある特徴を削除し、ある特徴を修正し、特徴を付加する
ようにコンピュータ支援設計(CAD)システム等により
アクセスすることができる適宜のデータ・ファイルにロ
ードすることができる。編集されたファイルは、編集文
書を表わす情報を再表示あるいは他の方法で使用するた
めに、用いることができる。
は、対象を「ベクトル化」するため前記のレコードを用
いる。次いで、「ベクトル・テーブル」即ちベクトル化
により生じるVECGENファイルにおける出力ベクトルおよ
びデータは、オリジナル図即ち対象等の修正即ち編集バ
ージョンを定義する更新ファイルを生じるために、基準
化因数(スケールファクタ)にディメンジョンを乗じ、
ある特徴を削除し、ある特徴を修正し、特徴を付加する
ようにコンピュータ支援設計(CAD)システム等により
アクセスすることができる適宜のデータ・ファイルにロ
ードすることができる。編集されたファイルは、編集文
書を表わす情報を再表示あるいは他の方法で使用するた
めに、用いることができる。
本発明の信号認識手法は、VECGENファイルにおけるベ
クトル化されたエンティティおよび符号化された形状の
エンティティを用いて、あるユーザ定義記号を認識す
る。
クトル化されたエンティティおよび符号化された形状の
エンティティを用いて、あるユーザ定義記号を認識す
る。
第1図のフローチャートは、本発明の記号認識プログ
ラムを示している。このフローチャートは、如何にして
ベクトル・テーブルから取出されたベクトル、円、弧お
よび他の符号化された形状を含む「エンティティ」を用
いて、ソフトウェア「黒板」および該黒板における種々
の「記号スロット」および「サブ記号スロット」を充填
するかを示している。第1図のフローチャートはまた、
黒板が充填された後に、如何にして黒板が処理されて記
号の認識を行なうかも示している。本文においては、用
語「ベクトル」は、直線のベクトル、弧および円を含
む、本発明の記号認識プロセスにおいて用いることがで
きる全てのベクトル化されたエンティティおよび符号化
された形状を意味している。充填された多角形(ポリゴ
ン)および他の符号化されたエンティティおよび文字も
また、本発明の実施態様によって認識されよう。
ラムを示している。このフローチャートは、如何にして
ベクトル・テーブルから取出されたベクトル、円、弧お
よび他の符号化された形状を含む「エンティティ」を用
いて、ソフトウェア「黒板」および該黒板における種々
の「記号スロット」および「サブ記号スロット」を充填
するかを示している。第1図のフローチャートはまた、
黒板が充填された後に、如何にして黒板が処理されて記
号の認識を行なうかも示している。本文においては、用
語「ベクトル」は、直線のベクトル、弧および円を含
む、本発明の記号認識プロセスにおいて用いることがで
きる全てのベクトル化されたエンティティおよび符号化
された形状を意味している。充填された多角形(ポリゴ
ン)および他の符号化されたエンティティおよび文字も
また、本発明の実施態様によって認識されよう。
ユーザが、定義されたウィンドウにおけるある記号が
認識されるべきことを求めると、第1図の記号認識サブ
ルーチンがADRプロセッサ、すなわちCPU7により呼出さ
れる。ベクトル化プログラムにより生成されるベクトル
・テーブル(VECGEN)が生成されると、それにより、オ
リジナル図における全ての形状がベクトル化される。こ
の時、取出された各ベクトルがその全てのパラメータを
含んでいることに留意すべきである。例えば、直線状の
ベクトルは、2つの終端点および幅を含む。弧のベクト
ルは、2つの終端点、1つの中間点および幅を含む。円
はその半径および中心点を含む。充填された多角形の如
き他のエンティティは、その全ての頂点を含む。
認識されるべきことを求めると、第1図の記号認識サブ
ルーチンがADRプロセッサ、すなわちCPU7により呼出さ
れる。ベクトル化プログラムにより生成されるベクトル
・テーブル(VECGEN)が生成されると、それにより、オ
リジナル図における全ての形状がベクトル化される。こ
の時、取出された各ベクトルがその全てのパラメータを
含んでいることに留意すべきである。例えば、直線状の
ベクトルは、2つの終端点および幅を含む。弧のベクト
ルは、2つの終端点、1つの中間点および幅を含む。円
はその半径および中心点を含む。充填された多角形の如
き他のエンティティは、その全ての頂点を含む。
ある技術的図面等の走査中に、ユーザが、記号として
表わされる種々の標準的な特徴について認識できること
を理解すべきである。ユーザは、相互にその大きさが異
なる記号のグループの周囲は、矩形状のウィンドウを定
義する。本文に述べたADRシステムにおいては、制御プ
ログラム即ち「マネージャ」プログラムが、ユーザに対
して種々のメニュー選択を提供し、これにより、ユーザ
が、指示命令により、図面の選択された部分の周囲に矩
形状のウィンドウを定義すること、また自動的に大きさ
および場所を決定するこのような、8つまでのウィンド
ウを定義することを可能にする。記号認識プログラム
は、このようなユーザが定義する各ウィンドウと対応す
る「黒板」を定義する。第2A図においては、参照番号20
がこのような黒板を表わしている。黒板20は、21A〜21F
等の多くの「記号スロット」21を含むことができる。各
記号スロット21は、上方ポインタ22、左方ポインタ24、
下方ポインタ23、および右方ポインタ25を含み、これら
が図示の如く、記号スロット21の上方、左方、下方およ
び右方にある他の記号スロットを指示する。第2A図に示
されるように、ある行の記号スロットにおける上方ポイ
ンタの各々が、このスロットの上方の行における最も左
方の記号スロットを指示する。ある行の各記号スロット
の下方ポインタは、次の行の最も左方の記号スロットを
指示する。黒板の境界に隣接する各ポインタは、ヌル
(空白)ポインタである。黒板ポインタ35は、黒板の左
上方の記号スロットを指示する。
表わされる種々の標準的な特徴について認識できること
を理解すべきである。ユーザは、相互にその大きさが異
なる記号のグループの周囲は、矩形状のウィンドウを定
義する。本文に述べたADRシステムにおいては、制御プ
ログラム即ち「マネージャ」プログラムが、ユーザに対
して種々のメニュー選択を提供し、これにより、ユーザ
が、指示命令により、図面の選択された部分の周囲に矩
形状のウィンドウを定義すること、また自動的に大きさ
および場所を決定するこのような、8つまでのウィンド
ウを定義することを可能にする。記号認識プログラム
は、このようなユーザが定義する各ウィンドウと対応す
る「黒板」を定義する。第2A図においては、参照番号20
がこのような黒板を表わしている。黒板20は、21A〜21F
等の多くの「記号スロット」21を含むことができる。各
記号スロット21は、上方ポインタ22、左方ポインタ24、
下方ポインタ23、および右方ポインタ25を含み、これら
が図示の如く、記号スロット21の上方、左方、下方およ
び右方にある他の記号スロットを指示する。第2A図に示
されるように、ある行の記号スロットにおける上方ポイ
ンタの各々が、このスロットの上方の行における最も左
方の記号スロットを指示する。ある行の各記号スロット
の下方ポインタは、次の行の最も左方の記号スロットを
指示する。黒板の境界に隣接する各ポインタは、ヌル
(空白)ポインタである。黒板ポインタ35は、黒板の左
上方の記号スロットを指示する。
各記号スロット21は、多数の「サブ記号スロット」2
6、27を含む。これらのサブ記号スロットおよび記号ス
ロットは、記号認識プログラムが実行される時に定義さ
れた状態となる。第2A図に示されるように、各サブ記号
スロット26は、その記号スロットの左上隅部からのサブ
記号スロット・ポインタ28によって指示される。ポイン
タ29は、サブ記号スロット26からサブ記号スロット27を
指示し、このサブ記号スロットが更に次の記号スロット
を指示する。このように、各記号スロット内ではサブ記
号スロットが連係リストを形成している。
6、27を含む。これらのサブ記号スロットおよび記号ス
ロットは、記号認識プログラムが実行される時に定義さ
れた状態となる。第2A図に示されるように、各サブ記号
スロット26は、その記号スロットの左上隅部からのサブ
記号スロット・ポインタ28によって指示される。ポイン
タ29は、サブ記号スロット26からサブ記号スロット27を
指示し、このサブ記号スロットが更に次の記号スロット
を指示する。このように、各記号スロット内ではサブ記
号スロットが連係リストを形成している。
再び第1図を参照すると、プログラムはブロック100
へ進み、ベクトル・テーブルから次のベクトルまたはエ
ンティティを取出し、判断ブロック101に進む。ブロッ
ク101においては、プログラムは全てのベクトルがベク
トル・テーブルから取出されたかどうかを判定し、そう
であれば、以下に記述するブロック109へ進む。
へ進み、ベクトル・テーブルから次のベクトルまたはエ
ンティティを取出し、判断ブロック101に進む。ブロッ
ク101においては、プログラムは全てのベクトルがベク
トル・テーブルから取出されたかどうかを判定し、そう
であれば、以下に記述するブロック109へ進む。
もしベクトル・テーブルの終りに達しなかったなら
ば、プログラムは判断ブロック102へ進み、その時のベ
クトルが記号の一部としては大き過ぎるかどうかを判定
する。例えば、このベクトルがユーザにより指示される
最大寸法よりも大きければ、この判定は肯定となり、プ
ログラムはブロック100へ戻る。この時のベクトルが最
大寸法よりも小さく、認識し得る記号の一部として捕ら
えられる場合は、プログラムはブロック103へ進んで、
多くの「ウィンドウ」即ち「黒板」のいずれに、カレン
ト・ベクトルまたはエンティティが該当するかを、その
大きさ及び位置に照して、判定する。これは、第6A図を
呼出して、黒板をリセットすることにより、実行され
る。なお、本明細書において、用語「カレント」は、現
在処理されているものを表している。
ば、プログラムは判断ブロック102へ進み、その時のベ
クトルが記号の一部としては大き過ぎるかどうかを判定
する。例えば、このベクトルがユーザにより指示される
最大寸法よりも大きければ、この判定は肯定となり、プ
ログラムはブロック100へ戻る。この時のベクトルが最
大寸法よりも小さく、認識し得る記号の一部として捕ら
えられる場合は、プログラムはブロック103へ進んで、
多くの「ウィンドウ」即ち「黒板」のいずれに、カレン
ト・ベクトルまたはエンティティが該当するかを、その
大きさ及び位置に照して、判定する。これは、第6A図を
呼出して、黒板をリセットすることにより、実行され
る。なお、本明細書において、用語「カレント」は、現
在処理されているものを表している。
ブロック103に従うプログラムは、その時のベクトル
のオリジナル図面における場所に対応する「カレント黒
板(すなわち、そのときの黒板)」を選択する。次い
で、プログラムはブロック104へ進み、ポインタCUR EN
Tにより指示されるカレント・ベクトルをカレント黒板
へ挿入し、最後に取出されたベクトル以後にウィンドウ
番号が変更されていなたらば、カレント記号スロット・
ポインタCUR SYMBをセットして、この黒板上の左上の
記号スロットを指示する。さもなければ、CUR SYMB
は、黒板におけるカレント・レベルの最も左方の記号ス
ロットを指示する。
のオリジナル図面における場所に対応する「カレント黒
板(すなわち、そのときの黒板)」を選択する。次い
で、プログラムはブロック104へ進み、ポインタCUR EN
Tにより指示されるカレント・ベクトルをカレント黒板
へ挿入し、最後に取出されたベクトル以後にウィンドウ
番号が変更されていなたらば、カレント記号スロット・
ポインタCUR SYMBをセットして、この黒板上の左上の
記号スロットを指示する。さもなければ、CUR SYMB
は、黒板におけるカレント・レベルの最も左方の記号ス
ロットを指示する。
更に、第2図に関して後で更に詳細に述べるブロック
104においては、個々のベクトル31、32、33(第2図
B)が順次あるいは個々に、サブ記号スロット26へ置か
れる。
104においては、個々のベクトル31、32、33(第2図
B)が順次あるいは個々に、サブ記号スロット26へ置か
れる。
その時のベクトルまたはカレント・エンティティがそ
のときのカレント黒板におけるサブ記号スロットへ適正
に置かれた後、プログラムがブロック105へ進み、その
時のサブ記号を隣接する記号スロットにおける別のサブ
記号と「組合せ」ることができるかどうかを判定する。
このプロセスについては、後で第9図に関して詳細に記
述する。このようなサブ記号とサブ記号との組合せが可
能ならば、ブロック105のサブルーチンが、隣りの記号
スロットから組み合わせ可能なサブ記号を、その時の記
号スロットへ「プルし」すなわち「取り出し」、そし
て、該サブ記号の隣の記号スロットから消去する。
のときのカレント黒板におけるサブ記号スロットへ適正
に置かれた後、プログラムがブロック105へ進み、その
時のサブ記号を隣接する記号スロットにおける別のサブ
記号と「組合せ」ることができるかどうかを判定する。
このプロセスについては、後で第9図に関して詳細に記
述する。このようなサブ記号とサブ記号との組合せが可
能ならば、ブロック105のサブルーチンが、隣りの記号
スロットから組み合わせ可能なサブ記号を、その時の記
号スロットへ「プルし」すなわち「取り出し」、そし
て、該サブ記号の隣の記号スロットから消去する。
そして、プログラムはブロック106へ進み、サブ記号
をその時の記号スロットに組合せることができるかどう
かを判定し、もしそうであれば、以下に述べる第5図に
従って、サブ記号の組合せを実施する。一般に、記号ま
たはサブ記号の組合せは、そのある部分が物理的に充分
に接近しているならば可能である。
をその時の記号スロットに組合せることができるかどう
かを判定し、もしそうであれば、以下に述べる第5図に
従って、サブ記号の組合せを実施する。一般に、記号ま
たはサブ記号の組合せは、そのある部分が物理的に充分
に接近しているならば可能である。
ここで、新しいベクトルがベクトル・テーブルから取
出されるに連れて、各黒板が連続的に変化することを理
解すべきである。また新しいベクトルまたはエンティテ
ィが種々の黒板における記号スロットに付加されるに連
れて、どのサブ記号及び記号を組合せる、即ちマージす
ることができるかが、更に明らかになる。
出されるに連れて、各黒板が連続的に変化することを理
解すべきである。また新しいベクトルまたはエンティテ
ィが種々の黒板における記号スロットに付加されるに連
れて、どのサブ記号及び記号を組合せる、即ちマージす
ることができるかが、更に明らかになる。
ソフソウェア変数CUR LEVは、その時の黒板における
記号スロットのその時の行のレベルを指示する。
記号スロットのその時の行のレベルを指示する。
記号の認識プログラムはブロック106から判断ブロッ
ク107へ進み、カレント・サブ記号がその時のサブ記号
スロット内に1つのループを形成するかどうかを判定す
る。例えば、第2B図においては、もし別のベクトルが閉
(クローズド)ループを形成するようにサブ記号スロッ
ト26におけるサブ記号に付加されるならば、判断ブロッ
ク107の判定は肯定となり、プログラムは判断ブロック1
08へ進み、第3図に関して後で説明するように、閉じた
(クローズド)サブ記号に対して、基本則から組立てら
れた判断ツリーを起動、すなわちアクティブ状態にす
る。プログラムはブロック108からブロック100へ進み、
VEC GENファイルに次のベクトルまたはエンティティが
存在する場合は、該ファイルから次のベクトルまたはエ
ンティティを取出す。判断ブロック107の判定が否定で
あれば、ブロック100において、単に次のベクトルを取
出す。
ク107へ進み、カレント・サブ記号がその時のサブ記号
スロット内に1つのループを形成するかどうかを判定す
る。例えば、第2B図においては、もし別のベクトルが閉
(クローズド)ループを形成するようにサブ記号スロッ
ト26におけるサブ記号に付加されるならば、判断ブロッ
ク107の判定は肯定となり、プログラムは判断ブロック1
08へ進み、第3図に関して後で説明するように、閉じた
(クローズド)サブ記号に対して、基本則から組立てら
れた判断ツリーを起動、すなわちアクティブ状態にす
る。プログラムはブロック108からブロック100へ進み、
VEC GENファイルに次のベクトルまたはエンティティが
存在する場合は、該ファイルから次のベクトルまたはエ
ンティティを取出す。判断ブロック107の判定が否定で
あれば、ブロック100において、単に次のベクトルを取
出す。
各記号スロットは、1つのサブ記号または記号を形成
するベクトルおよび(または)エンティティを含むのに
必要な数のサブ記号スロットを内部にエントリさせるこ
とができる。サブ記号はエンティティを連続的に加える
ことにより形成されるが、記号は組合されないサブ記号
により形成することができることに注意されたい。各サ
ブ記号スロットは、このようなベクトルおよび(また
は)エンティティの連係リストを含む。ある特定の記号
スロットにおける最後のサブ記号スロットは、この連係
リストの終りを示す「ヌル(空白)・ポインタ」を有す
る。各サブ記号スロットは、最初のエンティティまたは
ベクトルに対する初期ポインタを含んでいる。
するベクトルおよび(または)エンティティを含むのに
必要な数のサブ記号スロットを内部にエントリさせるこ
とができる。サブ記号はエンティティを連続的に加える
ことにより形成されるが、記号は組合されないサブ記号
により形成することができることに注意されたい。各サ
ブ記号スロットは、このようなベクトルおよび(また
は)エンティティの連係リストを含む。ある特定の記号
スロットにおける最後のサブ記号スロットは、この連係
リストの終りを示す「ヌル(空白)・ポインタ」を有す
る。各サブ記号スロットは、最初のエンティティまたは
ベクトルに対する初期ポインタを含んでいる。
上記のプロセスは、VEC GENファイル(テーブル)に
おける全てのベクトルまたはエンティティが調べられる
まで継続し、もし可能であれば、適当な記号スロットの
適当なサブ記号スロットに入れられる。黒板の充填プロ
セスの間に、入れられたベクトルまたはエンティティが
適宜組合される。黒板の充填中閉じられているこれらの
サブ記号は、第1図において後で示されるように、最初
に認識される。黒板が充填された後、更に別の処理(第
6図参照)が実行されて、他のサブ記号および記号を認
識する。
おける全てのベクトルまたはエンティティが調べられる
まで継続し、もし可能であれば、適当な記号スロットの
適当なサブ記号スロットに入れられる。黒板の充填プロ
セスの間に、入れられたベクトルまたはエンティティが
適宜組合される。黒板の充填中閉じられているこれらの
サブ記号は、第1図において後で示されるように、最初
に認識される。黒板が充填された後、更に別の処理(第
6図参照)が実行されて、他のサブ記号および記号を認
識する。
次に第2図を参照して、カレント・ベクトルまたはエ
ンティティをカレント黒板へ挿入する手順について述べ
る。CUR SYMBは、黒板がカレント・エンティティに関
連して切り換えられなかったならば(なお、カレント・
エンティティが現在処理していたカレント黒板にないも
のであるときに、該カレント・エンティティに対応する
黒板に切り換えて処理をする必要があるが、カレント・
エンティティがカレント黒板にある場合は、黒板を切り
換える必要がない)、カレント・レベルCUR LEV(黒板
中のカレント記号スロットが存在する行)における最も
左方の記号スロットを指示し、さもなければ、ポインタ
は、黒板の最上位レベルにおける最も左方の記号スロッ
トにセットされる。このサブルーチンは、最初に判断ブ
ロック120へ進み、カレント記号スロットに対するポイ
ンタであるCUR SYMBがゼロであるかどうかを判定す
る。ゼロであれば、その時の黒板はヌル(空白)状態で
あり、このためブロック121に示されるように、内部の
最初の記号スロットに対して適当なメモリー空間を割振
り、またこの記号スロットを指示するようにCUR SYMB
をセットすることにより、これを初期化することが必要
である。次に、サブルーチンは判断ブロック124Aへ進
み、CUR ENTにより指示されるベクトルが、CUR SYMB
により指示されるカレント・記号スロットに存在するサ
ブ記号スロットに適合するかどうか判定する。この判定
が肯定ならば、サブルーチンはブロック124Bへ進んで、
存在するサブ記号スロットに、カレント・サブ記号スロ
ットのポインタであるCUR SSを単にセットし、次いで
ブロック122へ進んでカレント・ベクトルを前記サブ記
号スロットに置く。もしブロック124Aの判定が否定なら
ば、サブルーチンはブロック124Cへ進み、新しいサブ記
号スロットに対してメモリー空間を割振り、これを前記
記号スロットに対するサブ記号の連係リストの終端に付
加し、CUR SSを新しいサブ記号スロットのアドレスに
セットし、そしてブロック122へ進み、カレント・ベク
トルを新しいサブ記号スロットのアドレスに置き、元に
戻る。
ンティティをカレント黒板へ挿入する手順について述べ
る。CUR SYMBは、黒板がカレント・エンティティに関
連して切り換えられなかったならば(なお、カレント・
エンティティが現在処理していたカレント黒板にないも
のであるときに、該カレント・エンティティに対応する
黒板に切り換えて処理をする必要があるが、カレント・
エンティティがカレント黒板にある場合は、黒板を切り
換える必要がない)、カレント・レベルCUR LEV(黒板
中のカレント記号スロットが存在する行)における最も
左方の記号スロットを指示し、さもなければ、ポインタ
は、黒板の最上位レベルにおける最も左方の記号スロッ
トにセットされる。このサブルーチンは、最初に判断ブ
ロック120へ進み、カレント記号スロットに対するポイ
ンタであるCUR SYMBがゼロであるかどうかを判定す
る。ゼロであれば、その時の黒板はヌル(空白)状態で
あり、このためブロック121に示されるように、内部の
最初の記号スロットに対して適当なメモリー空間を割振
り、またこの記号スロットを指示するようにCUR SYMB
をセットすることにより、これを初期化することが必要
である。次に、サブルーチンは判断ブロック124Aへ進
み、CUR ENTにより指示されるベクトルが、CUR SYMB
により指示されるカレント・記号スロットに存在するサ
ブ記号スロットに適合するかどうか判定する。この判定
が肯定ならば、サブルーチンはブロック124Bへ進んで、
存在するサブ記号スロットに、カレント・サブ記号スロ
ットのポインタであるCUR SSを単にセットし、次いで
ブロック122へ進んでカレント・ベクトルを前記サブ記
号スロットに置く。もしブロック124Aの判定が否定なら
ば、サブルーチンはブロック124Cへ進み、新しいサブ記
号スロットに対してメモリー空間を割振り、これを前記
記号スロットに対するサブ記号の連係リストの終端に付
加し、CUR SSを新しいサブ記号スロットのアドレスに
セットし、そしてブロック122へ進み、カレント・ベク
トルを新しいサブ記号スロットのアドレスに置き、元に
戻る。
その時のベクトル(カレント・ベクトル)が黒板への
最初のエントリでなければ、プログラムは判断ブロック
123へ進み、カレント・ベクトルがカレント記号スロッ
トの「上方」に位置するか、即ちカレント・ベクトルが
(最大記号寸法に応じて)カレント記号スロットの中心
から予め定めた距離だけ上方にあるかどうかを判定す
る。もしこの判定が肯定ならば、これは、新しいレべル
がその時のレベル(カレント・レベル)の上方に生成さ
れる必要があることを意味し、サブルーチンはブロック
124へ進んで、CUR SYMBによりその時指示された記号の
上方に置かれた新しい記号に対しメモリー空間を割振
り、またこの新しい記号スロットの上方、下方、左方お
よび右方のポインタを更新し、またカレント記号スロッ
トの真上の行およびカレント記号スロットの真下の行に
おける記号スロットの上方および下方のポインタを更新
し、CUR SYMBを新しい記号スロットのアドレスに等し
くセットする。次いでプログラムは、前に述べたブロッ
ク124Aへ進み、カレント・ベクトルを適正な新しい記号
スロットおよびサブ記号スロットに入れる。
最初のエントリでなければ、プログラムは判断ブロック
123へ進み、カレント・ベクトルがカレント記号スロッ
トの「上方」に位置するか、即ちカレント・ベクトルが
(最大記号寸法に応じて)カレント記号スロットの中心
から予め定めた距離だけ上方にあるかどうかを判定す
る。もしこの判定が肯定ならば、これは、新しいレべル
がその時のレベル(カレント・レベル)の上方に生成さ
れる必要があることを意味し、サブルーチンはブロック
124へ進んで、CUR SYMBによりその時指示された記号の
上方に置かれた新しい記号に対しメモリー空間を割振
り、またこの新しい記号スロットの上方、下方、左方お
よび右方のポインタを更新し、またカレント記号スロッ
トの真上の行およびカレント記号スロットの真下の行に
おける記号スロットの上方および下方のポインタを更新
し、CUR SYMBを新しい記号スロットのアドレスに等し
くセットする。次いでプログラムは、前に述べたブロッ
ク124Aへ進み、カレント・ベクトルを適正な新しい記号
スロットおよびサブ記号スロットに入れる。
基本的には、第2図のサブルーチンは、カレント・ベ
クトルを調べて適正なカレント位置に達するように繋が
れた記号の「軌跡」に追従し、これにより、その時のベ
クトルを入れる適正な記号スロットを決定していること
に注意すべきである。
クトルを調べて適正なカレント位置に達するように繋が
れた記号の「軌跡」に追従し、これにより、その時のベ
クトルを入れる適正な記号スロットを決定していること
に注意すべきである。
ブロック123の判定が否定ならば、サブルーチンは判
断ブロック125へ進み、カレント・ベクトルがカレント
記号スロットの中心の「下方」に、即ちカレントの記号
スロットの中心のある予め定めた距離分下方に位置する
かどうかを判定する。
断ブロック125へ進み、カレント・ベクトルがカレント
記号スロットの中心の「下方」に、即ちカレントの記号
スロットの中心のある予め定めた距離分下方に位置する
かどうかを判定する。
判断ブロック125の判定が肯定ならば、サブルーチン
はブロック126へ進み、CUR SYMBを、このCUR SYMBに
よりその時指示されたものの下方の最初の記号スロット
のアドレスと等しくセットし、そしてブロック123へ戻
る。
はブロック126へ進み、CUR SYMBを、このCUR SYMBに
よりその時指示されたものの下方の最初の記号スロット
のアドレスと等しくセットし、そしてブロック123へ戻
る。
判断ブロック125の判定が否定ならば、このことは、
サブルーチンが適正なレベルを見出したことを意味し、
従ってこのサブルーチンはブロック127へ進んで、カレ
ント・ベクトルがカレント記号スロットの「左方」に置
かれているかどうかを判定する。この判定が肯定なら
ば、ブロック124へ進み、新しい記号スロットをカレン
ト記号スロットの左方に生成して、CUR SYMBを新しい
記号スロットのアドレスにセットし、カレント・ベクト
ルをこの記号スロットの適当なサブ記号スロットに入れ
ることが必要である。
サブルーチンが適正なレベルを見出したことを意味し、
従ってこのサブルーチンはブロック127へ進んで、カレ
ント・ベクトルがカレント記号スロットの「左方」に置
かれているかどうかを判定する。この判定が肯定なら
ば、ブロック124へ進み、新しい記号スロットをカレン
ト記号スロットの左方に生成して、CUR SYMBを新しい
記号スロットのアドレスにセットし、カレント・ベクト
ルをこの記号スロットの適当なサブ記号スロットに入れ
ることが必要である。
判断ブロック127の判定が否定ならば、プログラムは
判断ブロック128へ進み、カレント・ベクトルがカレン
ト記号スロットの右方に置かれるかどうかを判定する。
もしこの判定が肯定ならば、CUR SYMBは、ブロック129
においてカレント記号スロットの右方の最初の記号を指
示するようにセットされて、サブルーチンはブロック12
7へ戻る。もしカレント・ベクトルがカレント記号スロ
ットの右方に位置していなければ、サブルーチンはブロ
ック124Aへ進み、このカレント・ベクトルを適宜のすで
に存在するサブ記号スロット、又は新しいサブ記号スロ
ットに入れ、そして戻る。
判断ブロック128へ進み、カレント・ベクトルがカレン
ト記号スロットの右方に置かれるかどうかを判定する。
もしこの判定が肯定ならば、CUR SYMBは、ブロック129
においてカレント記号スロットの右方の最初の記号を指
示するようにセットされて、サブルーチンはブロック12
7へ戻る。もしカレント・ベクトルがカレント記号スロ
ットの右方に位置していなければ、サブルーチンはブロ
ック124Aへ進み、このカレント・ベクトルを適宜のすで
に存在するサブ記号スロット、又は新しいサブ記号スロ
ットに入れ、そして戻る。
第1図のブロック105に対応する第9図のフローチャ
ートについて、次に述べる。第9図においては、サブル
ーチンはカレント記号スロットにおけるサブ記号が隣の
記号スロットにおけるサブ記号と組合されることができ
るかどうかを判定するため調べる。このサブルーチン
は、第5図の「組合せサブルーチン」の前に実行される
が、これは、カレント記号スロットにおけるサブ記号と
組合されるよう充分近くにある隣りの記号スロットにお
けるサブ記号が存在するならば、隣りの記号スロットか
らのサブ記号がその時の記号スロットに「引込まれ」
て、以下に述べる第5図のサブルーチンに従って次に組
合せを実施することを更に便利にするためである。
ートについて、次に述べる。第9図においては、サブル
ーチンはカレント記号スロットにおけるサブ記号が隣の
記号スロットにおけるサブ記号と組合されることができ
るかどうかを判定するため調べる。このサブルーチン
は、第5図の「組合せサブルーチン」の前に実行される
が、これは、カレント記号スロットにおけるサブ記号と
組合されるよう充分近くにある隣りの記号スロットにお
けるサブ記号が存在するならば、隣りの記号スロットか
らのサブ記号がその時の記号スロットに「引込まれ」
て、以下に述べる第5図のサブルーチンに従って次に組
合せを実施することを更に便利にするためである。
第9図において、サブルーチンは最初にブロック270
に進み、記号ポインタSYをカレント記号スロットの上方
の最も左方の記号スロットにセットする。このサブルー
チンは、次に判断ブロック272へ進み、SYがゼロに等し
いか、即ち「ヌル(空白)」ポインタであるかどうかを
判定し、そうでなければ、サブルーチンは判断ブロック
273へ進み、SYにより指示された記号スロットからのサ
ブ記号がカレント記号スロットと組合せができるかどう
かを判定する。この判定が否定ならば、サブルーチンは
ブロック271へ進み、カレント記号スロットの右方の記
号スロットを指示するようにポインタSYをセットし、判
断ブロック272へ戻る。
に進み、記号ポインタSYをカレント記号スロットの上方
の最も左方の記号スロットにセットする。このサブルー
チンは、次に判断ブロック272へ進み、SYがゼロに等し
いか、即ち「ヌル(空白)」ポインタであるかどうかを
判定し、そうでなければ、サブルーチンは判断ブロック
273へ進み、SYにより指示された記号スロットからのサ
ブ記号がカレント記号スロットと組合せができるかどう
かを判定する。この判定が否定ならば、サブルーチンは
ブロック271へ進み、カレント記号スロットの右方の記
号スロットを指示するようにポインタSYをセットし、判
断ブロック272へ戻る。
判断ブロック273の判定が肯定ならば、サブルーチン
はブロック274へ進み、SYおよびCUR SYMBにより指示さ
れた両方の記号スロットを更新し、ラベル286を経て、
元に戻る。ブロック274のプロセスは、その時の記号ス
ロット(CUR SYMBにより指示された)に移動される隣
接する記号スロット(SYにより指示されるもの)から、
サブ記号を削除することを含むが、これは、これらのサ
ブ記号がその時の記号スロットにおけるサブ記号と組合
せることができるからである。このプロセスは、隣接す
る記号スロットにおけるサブ記号の数を減分し、かつ、
カレント記号スロットにおける数を増分することを含ん
でいる。
はブロック274へ進み、SYおよびCUR SYMBにより指示さ
れた両方の記号スロットを更新し、ラベル286を経て、
元に戻る。ブロック274のプロセスは、その時の記号ス
ロット(CUR SYMBにより指示された)に移動される隣
接する記号スロット(SYにより指示されるもの)から、
サブ記号を削除することを含むが、これは、これらのサ
ブ記号がその時の記号スロットにおけるサブ記号と組合
せることができるからである。このプロセスは、隣接す
る記号スロットにおけるサブ記号の数を減分し、かつ、
カレント記号スロットにおける数を増分することを含ん
でいる。
判断ブロック272の判定が肯定ならば、これは、カレ
ント記号スロットがその時の黒板における最も左方で最
も上方のサブ記号であること、あるいはカレント記号ス
ロットのレベルより上方を調べるこれ以上のサブ記号が
存在しないことを意味する。このような場合は、サブル
ーチンはブロック275へ進み、記号ポインタSYを、カレ
ント記号スロットの下方の最も左方の記号スロットにセ
ットする。次いでサブルーチンは判断ブロック277へ進
み、記号ポインタSYがゼロであるかどうかを判定する。
ゼロであれば、カレント記号のレベル(カレント・レベ
ル)より下のレベルが存在しないことを意味する。判断
ブロック277と判定が否定ならば、カレント・レベルよ
り下方のレベルとなり、従ってサブルーチンはブロック
278へ進み、SYにより指示された記号スロットからのサ
ブ記号と、カレント記号スロットのポインタCUR SYMB
により指示されたサブ記号とを組合せることができるか
どうかを判定し、またこの判定が肯定ならば、適宜のポ
リンタが判断ブロック274において更新されて、隣接す
る記号スロットからの組合せ可能なサブ記号をCUR SYM
Bにより指示されたものに移動する。さもなければ、サ
ブルーチンはブロック278からブロック276へ進み、SYを
セットしてこの記号スロットを右方に指示し、ブロック
277へ戻る。判断ブロック277、280および283の各々にお
いては、サブルーチンはこれがヌル・ポインタに遭遇す
るまで、右方を調べることに注意されたい。ブロック27
0の実行後、ブロック272は、カレント・レベルより高い
レベルがあるかどうかを判定し、なければ、次に右方に
記号スロットを調べて、組合せ可能なエンティティにお
いて引出しすなわち「プル」動作を試みる。
ント記号スロットがその時の黒板における最も左方で最
も上方のサブ記号であること、あるいはカレント記号ス
ロットのレベルより上方を調べるこれ以上のサブ記号が
存在しないことを意味する。このような場合は、サブル
ーチンはブロック275へ進み、記号ポインタSYを、カレ
ント記号スロットの下方の最も左方の記号スロットにセ
ットする。次いでサブルーチンは判断ブロック277へ進
み、記号ポインタSYがゼロであるかどうかを判定する。
ゼロであれば、カレント記号のレベル(カレント・レベ
ル)より下のレベルが存在しないことを意味する。判断
ブロック277と判定が否定ならば、カレント・レベルよ
り下方のレベルとなり、従ってサブルーチンはブロック
278へ進み、SYにより指示された記号スロットからのサ
ブ記号と、カレント記号スロットのポインタCUR SYMB
により指示されたサブ記号とを組合せることができるか
どうかを判定し、またこの判定が肯定ならば、適宜のポ
リンタが判断ブロック274において更新されて、隣接す
る記号スロットからの組合せ可能なサブ記号をCUR SYM
Bにより指示されたものに移動する。さもなければ、サ
ブルーチンはブロック278からブロック276へ進み、SYを
セットしてこの記号スロットを右方に指示し、ブロック
277へ戻る。判断ブロック277、280および283の各々にお
いては、サブルーチンはこれがヌル・ポインタに遭遇す
るまで、右方を調べることに注意されたい。ブロック27
0の実行後、ブロック272は、カレント・レベルより高い
レベルがあるかどうかを判定し、なければ、次に右方に
記号スロットを調べて、組合せ可能なエンティティにお
いて引出しすなわち「プル」動作を試みる。
ブロック277の判定が肯定ならば、サブルーチンはブ
ロック279へ進み、SYをカレント記号スロットの左方の
記号スロットに設定し、判断ブロック280へ進む。判断
ブロック280は、左方に記号スロットがないかどうかを
判定する。この判定が否定ならば、サブルーチンは判断
ブロック281へ進み、SYにより指示された記号スロット
からのサブ記号と、CUR SYMBにより指示されたカレン
ト記号スロットからのサブ記号とが、組合せできるかど
うかを判定し、できる場合は、ブロック274へ進んでSY
により指示された記号スロットのポインタ、およびCUR
SYMBにより指示されたカレント記号スロットからのポ
インタを更新して、SYにより指示されたものからカレン
ト記号スロットへ、組合せ可能なサブ記号を移動し、そ
して戻る。ブロック281の判定が否定ならば、ブロック2
80の判定が肯定である場合と同様に、サブルーチンはブ
ロック282へ進む。ブロック282においては、サブルーチ
ンはSYをセットして、CUR SYMBにより指示されるカレ
ント記号スロットの右方の記号スロットを指示し、判断
ブロック283へ進み、SYがその時ゼロと等しいかどうか
を判定する。
ロック279へ進み、SYをカレント記号スロットの左方の
記号スロットに設定し、判断ブロック280へ進む。判断
ブロック280は、左方に記号スロットがないかどうかを
判定する。この判定が否定ならば、サブルーチンは判断
ブロック281へ進み、SYにより指示された記号スロット
からのサブ記号と、CUR SYMBにより指示されたカレン
ト記号スロットからのサブ記号とが、組合せできるかど
うかを判定し、できる場合は、ブロック274へ進んでSY
により指示された記号スロットのポインタ、およびCUR
SYMBにより指示されたカレント記号スロットからのポ
インタを更新して、SYにより指示されたものからカレン
ト記号スロットへ、組合せ可能なサブ記号を移動し、そ
して戻る。ブロック281の判定が否定ならば、ブロック2
80の判定が肯定である場合と同様に、サブルーチンはブ
ロック282へ進む。ブロック282においては、サブルーチ
ンはSYをセットして、CUR SYMBにより指示されるカレ
ント記号スロットの右方の記号スロットを指示し、判断
ブロック283へ進み、SYがその時ゼロと等しいかどうか
を判定する。
この判定が肯定ならば、これは、隣接する記号スロッ
トからのどれかのサブ記号とSYによりその時指示された
記号スロットに含まれるサブ信号との組合せに失敗があ
ったことを意味し、サブルーチンはラベル285を経て、
戻る。ブロック283の判定が否定ならば、サブルーチン
はブロック284へ進み、SYにより指示された記号スロッ
トにおけるサブ信号がCUR SYMBにより指示された記号
スロットにおけるサブ信号と組合せることができるかど
うかを判定する。不可能であれば、サブルーチンはラベ
ル285を経て戻り、また可能であれば、両方の記号スロ
ットにおけるポインタを適宜更新し、ラベル286を通っ
て、戻る。
トからのどれかのサブ記号とSYによりその時指示された
記号スロットに含まれるサブ信号との組合せに失敗があ
ったことを意味し、サブルーチンはラベル285を経て、
戻る。ブロック283の判定が否定ならば、サブルーチン
はブロック284へ進み、SYにより指示された記号スロッ
トにおけるサブ信号がCUR SYMBにより指示された記号
スロットにおけるサブ信号と組合せることができるかど
うかを判定する。不可能であれば、サブルーチンはラベ
ル285を経て戻り、また可能であれば、両方の記号スロ
ットにおけるポインタを適宜更新し、ラベル286を通っ
て、戻る。
次に、第5図のサブルーチンについて述べることにす
るが、第5図は、ある記号スロットに含まれるサブ記号
が充分に近く、かつ共に「オープン(開いた)」状態で
あるときに組合される方法を示している。ある記号スロ
ットにおける「クローズド(閉じた)」状態のサブ記号
は、組合せることができないことに注意されたい。第5
図の「サブ記号の組合せサブルーチン」は、判断ブロッ
ク190へ進む。判断ブロック190においては、サブルーチ
ンは、SSPにより指示されるその時のサブ記号スロット
が存在するかどうかを判定する。SSPは、カレント記号
スロットのサブ記号の連係リストにおいて、CUR SSに
より指示されるカレント・サブ記号スロットの後に置か
れている。(第2図の判断ブロック24Aにおいて行なわ
れた動作により、その時のサブ記号スロットの前に位置
する組合せ可能なサブ記号が存在するかどうかを判定す
る必要はない。)その時のサブ記号スロットSSPは、既
に多数の繋がれたベクトルまたはエンティティを有する
ことになる。もしカレント・サブ記号スロットCUR SS
におけるサブ記号が、その時のサブ記号スロットSSPと
組合されなれれば、サブルーチンは、カレント・サブ記
号が組合せ可能なその時のサブ記号を見出すまでは、連
係リストの残りの部分におけるサブ記号を検査する。
(サブ記号スロットの繋がりとオリジナル図におけるそ
の物理的位置との間には一切の関係がないので、カレン
ト記号スロットが他の以降の記号スロットのどれかと組
合せることができる点に注意されたい。)その時の記号
スロットにおける「その時の」サブ記号スロットが、カ
レント・サブ記号スロットと組合せできなければ、サブ
ルーチンはラベル191を経て戻る。
るが、第5図は、ある記号スロットに含まれるサブ記号
が充分に近く、かつ共に「オープン(開いた)」状態で
あるときに組合される方法を示している。ある記号スロ
ットにおける「クローズド(閉じた)」状態のサブ記号
は、組合せることができないことに注意されたい。第5
図の「サブ記号の組合せサブルーチン」は、判断ブロッ
ク190へ進む。判断ブロック190においては、サブルーチ
ンは、SSPにより指示されるその時のサブ記号スロット
が存在するかどうかを判定する。SSPは、カレント記号
スロットのサブ記号の連係リストにおいて、CUR SSに
より指示されるカレント・サブ記号スロットの後に置か
れている。(第2図の判断ブロック24Aにおいて行なわ
れた動作により、その時のサブ記号スロットの前に位置
する組合せ可能なサブ記号が存在するかどうかを判定す
る必要はない。)その時のサブ記号スロットSSPは、既
に多数の繋がれたベクトルまたはエンティティを有する
ことになる。もしカレント・サブ記号スロットCUR SS
におけるサブ記号が、その時のサブ記号スロットSSPと
組合されなれれば、サブルーチンは、カレント・サブ記
号が組合せ可能なその時のサブ記号を見出すまでは、連
係リストの残りの部分におけるサブ記号を検査する。
(サブ記号スロットの繋がりとオリジナル図におけるそ
の物理的位置との間には一切の関係がないので、カレン
ト記号スロットが他の以降の記号スロットのどれかと組
合せることができる点に注意されたい。)その時の記号
スロットにおける「その時の」サブ記号スロットが、カ
レント・サブ記号スロットと組合せできなければ、サブ
ルーチンはラベル191を経て戻る。
更に、ブロック190の判定が否定ならば、サブルーチ
ンはラベル191を通って戻る。ブロック190の判定が肯定
なら、サブルーチンはブロック192に進み、カレント・
サブ記号スロットCUR SSの後の最初のサブ記号スロッ
トを含むようにSSPをセットする。次いでサブルーチン
はブロック193へ進み、カレント・サブ記号スロットCUR
SSの終端点がその時のサブ記号の開始点に充分に近い
かどうかを判定する。このことが意味することは、第5A
図を参照することにより最もよく理解されようが、同図
においてはSSPがその時のサブ記号スロットを表わし、C
UR SSがカレント・サブ記号スロットを表わしている。
順次一緒に繋がったベクトルa1、a2およびa3を含むカレ
ント・サブ記号スロットの終端点が点301により示さ
れ、その開始点は点302によって示される。その時のサ
ブ記号の開始点は点303である。ベクトルb1、b2およびb
3を含むその時のサブ記号の終端点は点304である。判断
ブロック193は、終端点301が開始点303に近いかどうか
を判定する。
ンはラベル191を通って戻る。ブロック190の判定が肯定
なら、サブルーチンはブロック192に進み、カレント・
サブ記号スロットCUR SSの後の最初のサブ記号スロッ
トを含むようにSSPをセットする。次いでサブルーチン
はブロック193へ進み、カレント・サブ記号スロットCUR
SSの終端点がその時のサブ記号の開始点に充分に近い
かどうかを判定する。このことが意味することは、第5A
図を参照することにより最もよく理解されようが、同図
においてはSSPがその時のサブ記号スロットを表わし、C
UR SSがカレント・サブ記号スロットを表わしている。
順次一緒に繋がったベクトルa1、a2およびa3を含むカレ
ント・サブ記号スロットの終端点が点301により示さ
れ、その開始点は点302によって示される。その時のサ
ブ記号の開始点は点303である。ベクトルb1、b2およびb
3を含むその時のサブ記号の終端点は点304である。判断
ブロック193は、終端点301が開始点303に近いかどうか
を判定する。
この判定が肯定ならば、サブルーチンはブロック196
へ進み、終端点301および開始点303を一緒に組合せ、SS
Pを連係リストから削除し、ラベル197を通って、戻る。
ブロック193の判定が否定ならば、サブルーチンは判断
ブロック194へ進み、カレント・サブ記号CUR SSの終端
点がその時のサブ記号SSPの終端点に近いか、即ち点301
が第5B図の点304に近いかどうかを判定する。この判定
が肯定ならば、サブルーチンはブロック195へ進み、そ
の時のサブ記号b1〜b3の方向を反転し、次いでブロック
196へ進み、その時のサブ記号をカレント・サブ記号の
終端点301に組合せ、連係リストからその時のサブ記号
を削除して戻る。
へ進み、終端点301および開始点303を一緒に組合せ、SS
Pを連係リストから削除し、ラベル197を通って、戻る。
ブロック193の判定が否定ならば、サブルーチンは判断
ブロック194へ進み、カレント・サブ記号CUR SSの終端
点がその時のサブ記号SSPの終端点に近いか、即ち点301
が第5B図の点304に近いかどうかを判定する。この判定
が肯定ならば、サブルーチンはブロック195へ進み、そ
の時のサブ記号b1〜b3の方向を反転し、次いでブロック
196へ進み、その時のサブ記号をカレント・サブ記号の
終端点301に組合せ、連係リストからその時のサブ記号
を削除して戻る。
判断ブロック194の判定が否定ならば、サブルーチン
は判断ブロック198へ進み、カレント・サブ記号の開始
点、即ち第5C図の点302がその時のサブ記号の終端点、
即ち第5C図の点304に近いかどうかを判定する。もしこ
の判定が否定ならば、サブルーチンは判断ブロック199
へ進み、カレント・サブ記号の開始点302がその時のサ
ブ記号の開始点303に近いかどうかを判定する。この判
定が肯定ならば、サブルーチンはブロック200へ進み、
カレント・サブ記号a1〜a3の方向を反転し、ブロック20
1へ進んでカレント・サブ記号をその時のサブ記号の終
端点と組合せ、連係リストからカレント・サブ記号を削
除し、カレント・サブ記号をその時の記号スロットの開
始点にセットする。ブロック198の判定が肯定ならば、
サブルーチンは前述の如く、ブロック201へ進む。
は判断ブロック198へ進み、カレント・サブ記号の開始
点、即ち第5C図の点302がその時のサブ記号の終端点、
即ち第5C図の点304に近いかどうかを判定する。もしこ
の判定が否定ならば、サブルーチンは判断ブロック199
へ進み、カレント・サブ記号の開始点302がその時のサ
ブ記号の開始点303に近いかどうかを判定する。この判
定が肯定ならば、サブルーチンはブロック200へ進み、
カレント・サブ記号a1〜a3の方向を反転し、ブロック20
1へ進んでカレント・サブ記号をその時のサブ記号の終
端点と組合せ、連係リストからカレント・サブ記号を削
除し、カレント・サブ記号をその時の記号スロットの開
始点にセットする。ブロック198の判定が肯定ならば、
サブルーチンは前述の如く、ブロック201へ進む。
ブロック199の判定が否定ならば、サブルーチンはブ
ロック203へ進み、(連係リストの全てのサブ記号が考
察されることを保証するため)その時のサブ記号スロッ
トを連係リストにおける次のサブ記号スロットにセット
し、判断ブロック203Aへ進む。ブロック203Aにおいて
は、サブルーチンはSSPがヌル・スロットであるかどう
かを判定し、そうであれば、ブロック191を通って戻
り、さもなければ、ブロック193へ進む。
ロック203へ進み、(連係リストの全てのサブ記号が考
察されることを保証するため)その時のサブ記号スロッ
トを連係リストにおける次のサブ記号スロットにセット
し、判断ブロック203Aへ進む。ブロック203Aにおいて
は、サブルーチンはSSPがヌル・スロットであるかどう
かを判定し、そうであれば、ブロック191を通って戻
り、さもなければ、ブロック193へ進む。
本発明については、第1図のブロック108、および1
または複数のサブ記号が認識される第7図のブロック23
5および237において呼出されたサブルーチンを次に説明
すれば、最も容易に理解されよう。第3図、第3A図およ
び第3B図においては、「推論エンジン・サブルーチン」
が呼出されて、判定ツリーのセグメント・ラベルを使用
できるサブ記号またはベクトル・データから計算される
属性ラベルと突合せることにより、ユーザが定義する基
本則から組立てられる判定ツリーが、記号スロットに含
まれるサブ記号の連係リストに適用される方法を制御す
る。
または複数のサブ記号が認識される第7図のブロック23
5および237において呼出されたサブルーチンを次に説明
すれば、最も容易に理解されよう。第3図、第3A図およ
び第3B図においては、「推論エンジン・サブルーチン」
が呼出されて、判定ツリーのセグメント・ラベルを使用
できるサブ記号またはベクトル・データから計算される
属性ラベルと突合せることにより、ユーザが定義する基
本則から組立てられる判定ツリーが、記号スロットに含
まれるサブ記号の連係リストに適用される方法を制御す
る。
推論エンジン・サブルーチンは、最初に判断ブロック
131へ進み、第3図の推論エンジンのルーチンがプログ
ラムのどの地点から呼び読出されるかを示すコードをテ
ストする。更に、変数CODE(コード)は、認識されるべ
きその時のサブ記号または記号が特定のクローズド(閉
じた)サブ記号、オープン(開いた)サブ記号、あるい
は記号であるならば、それぞれ値1、2または3が与え
られる。1つの記号は、複数の比較的小さなサブ記号か
らなっている。
131へ進み、第3図の推論エンジンのルーチンがプログ
ラムのどの地点から呼び読出されるかを示すコードをテ
ストする。更に、変数CODE(コード)は、認識されるべ
きその時のサブ記号または記号が特定のクローズド(閉
じた)サブ記号、オープン(開いた)サブ記号、あるい
は記号であるならば、それぞれ値1、2または3が与え
られる。1つの記号は、複数の比較的小さなサブ記号か
らなっている。
ブロック131における推論エンジン・サブルーチンの
判定が肯定ならば、これは、テストされるべき黒板のデ
ータが記号ではなく、(クローズドもしくはオープン状
態の)サブ記号であることを意味する。このことは、推
論エンジン・サブルーチンが、第7図のブロック235ま
たは第1図のブロック108から呼出されたことを意味す
る。次にサブルーチンはブロック134へ進み、カレント
・サブ記号におけるベクトルをテストして、これが弧ま
たは円で表わすことができるかどうかを判定する。(こ
れは、ベクトルの幾何学的関係および相対的な大きさを
テストして、可能ならばこれらベクトルを組合せ、その
結果をテストして、弧または円が形成されつつあるかど
うかを調べるためことにより行なわれる。)次にサブル
ーチンは判断ブロック135へ進み、データが円を表わす
かどうかを判定する。この判定が肯定ならば、サブ記号
の認識は「成功」であり、サブルーチンはラベル138に
示されるように、呼出しサブルーチンへ戻る。
判定が肯定ならば、これは、テストされるべき黒板のデ
ータが記号ではなく、(クローズドもしくはオープン状
態の)サブ記号であることを意味する。このことは、推
論エンジン・サブルーチンが、第7図のブロック235ま
たは第1図のブロック108から呼出されたことを意味す
る。次にサブルーチンはブロック134へ進み、カレント
・サブ記号におけるベクトルをテストして、これが弧ま
たは円で表わすことができるかどうかを判定する。(こ
れは、ベクトルの幾何学的関係および相対的な大きさを
テストして、可能ならばこれらベクトルを組合せ、その
結果をテストして、弧または円が形成されつつあるかど
うかを調べるためことにより行なわれる。)次にサブル
ーチンは判断ブロック135へ進み、データが円を表わす
かどうかを判定する。この判定が肯定ならば、サブ記号
の認識は「成功」であり、サブルーチンはラベル138に
示されるように、呼出しサブルーチンへ戻る。
ブロック135の判定が否定ならば、サブルーチンはブ
ロック136へ進み、サブ記号が構成される1又は複数の
ベクトルに関する弧の長さ、方向、中心等の属性を計算
する。次にサブルーチンは判断ブロック137へ進み、サ
ブ記号が単一の線または弧を構成するかどうかを判定す
る。この判定が肯定ならば、これは、サブ記号が認識さ
れたことを意味し、ラベル138を経て戻る。さもなけれ
ば、サブルーチンはブロック133へ進む。
ロック136へ進み、サブ記号が構成される1又は複数の
ベクトルに関する弧の長さ、方向、中心等の属性を計算
する。次にサブルーチンは判断ブロック137へ進み、サ
ブ記号が単一の線または弧を構成するかどうかを判定す
る。この判定が肯定ならば、これは、サブ記号が認識さ
れたことを意味し、ラベル138を経て戻る。さもなけれ
ば、サブルーチンはブロック133へ進む。
ブロック131においてコードが3に等しいと判定する
と、これは、1つ以上のサブ記号があることを意味し、
サブ記号が1つの記号を形成するため組合せることがで
きるかどうかを判定する必要がある。
と、これは、1つ以上のサブ記号があることを意味し、
サブ記号が1つの記号を形成するため組合せることがで
きるかどうかを判定する必要がある。
サブルーチンはブロック132へ進み、サブ記号の属性
を計算する。次いでサブルーチンはブロック133へ進
む。ブロック133においては、推論エンジン・サブルー
チンは、計算されたサブ記号の属性および(または)ベ
クトルの属性に基づいて属性ラベルを生成し、次いでこ
れらのラベルを、以下に述べる第4図に従って組立てら
れた判断ツリーのセグメント・ラベルと比較する。
を計算する。次いでサブルーチンはブロック133へ進
む。ブロック133においては、推論エンジン・サブルー
チンは、計算されたサブ記号の属性および(または)ベ
クトルの属性に基づいて属性ラベルを生成し、次いでこ
れらのラベルを、以下に述べる第4図に従って組立てら
れた判断ツリーのセグメント・ラベルと比較する。
次にサブルーチンは判断ブロック139へ進み、その時
の記号またはサブ記号の属性と整合する判断ツリーのセ
グメントが見出されたかどうかを判定する。もしこの判
定が否定ならば、サブルーチンはその時の黒板に含まれ
る如何なる記号またはサブ記号も認識することができ
ず、ラベル140を通って戻る。
の記号またはサブ記号の属性と整合する判断ツリーのセ
グメントが見出されたかどうかを判定する。もしこの判
定が否定ならば、サブルーチンはその時の黒板に含まれ
る如何なる記号またはサブ記号も認識することができ
ず、ラベル140を通って戻る。
判断ブロック139の判定が肯定ならば、サブルーチン
はブロック141へ進み、順次カウンタの変数RETRYをリセ
ットし、判断ツリーの種々の分岐点を指示するカレント
分岐点ポインタRをリセットして、再試行/逆戻りポイ
ンタRRETRYをリセットする。サブツリーの各分岐点は、
(1)テスト条件、(2)いずれかの記号またはサブ記
号についてのカレント推論、(3)「偽」のサブツリー
を指示する偽ポインタ、および(4)「真」のサブツリ
ーを指示する真ポインタからなる。変数Rは、考察対象
のカレント判断サブツリーの分岐点を指示する。変数RE
TRYは、試行されないままの存在し得る順列の数と等し
い。ポインタR RETRYは、分岐点を指示し、可能な順列
が該分岐点のテスト条件によりテストされる。
はブロック141へ進み、順次カウンタの変数RETRYをリセ
ットし、判断ツリーの種々の分岐点を指示するカレント
分岐点ポインタRをリセットして、再試行/逆戻りポイ
ンタRRETRYをリセットする。サブツリーの各分岐点は、
(1)テスト条件、(2)いずれかの記号またはサブ記
号についてのカレント推論、(3)「偽」のサブツリー
を指示する偽ポインタ、および(4)「真」のサブツリ
ーを指示する真ポインタからなる。変数Rは、考察対象
のカレント判断サブツリーの分岐点を指示する。変数RE
TRYは、試行されないままの存在し得る順列の数と等し
い。ポインタR RETRYは、分岐点を指示し、可能な順列
が該分岐点のテスト条件によりテストされる。
逆戻り操作が行われると、R RETRYにより指示される
分岐点の真の分岐(ブランチ)ではなく偽の分岐が「辿
られる」。第12図には判断サブツリーが示され、これに
おいては、参照番号40が「根分岐点(ルート・ノー
ド)」を示し、文字TおよびFがそれぞれ真の分岐およ
び偽の分岐を示している。参照番号41は、判断ツリーの
サブツリーの根分岐点を示し、それ自体の「真」分岐お
よび「偽」の分岐を有する。例えば、分岐点44において
該分岐点44と関連するテスト条件に関与するサブ記号の
可能な順列のいくつかが存在することが判るならば、RE
TRYは順列の数と等しくセットされ、R RETRYはこの分岐
点にセットされる。RETRYカウンタがゼロに等しくなり
限り、サブツリーの「真」分岐を辿る。RETRYがゼロに
達するまでに、ある推定に達しなかったならば、プロセ
スは分岐点44に「逆戻り」して分岐点44の「偽」分岐を
辿る。このように、R RETRYポインタは最後の真の条件
が満たされた分岐点を指示すると共に、順列の全ての試
みられた時までに、この真の条件が見出されなければ、
逆戻り操作が始められねばならない分岐点を指示する。
分岐点の真の分岐(ブランチ)ではなく偽の分岐が「辿
られる」。第12図には判断サブツリーが示され、これに
おいては、参照番号40が「根分岐点(ルート・ノー
ド)」を示し、文字TおよびFがそれぞれ真の分岐およ
び偽の分岐を示している。参照番号41は、判断ツリーの
サブツリーの根分岐点を示し、それ自体の「真」分岐お
よび「偽」の分岐を有する。例えば、分岐点44において
該分岐点44と関連するテスト条件に関与するサブ記号の
可能な順列のいくつかが存在することが判るならば、RE
TRYは順列の数と等しくセットされ、R RETRYはこの分岐
点にセットされる。RETRYカウンタがゼロに等しくなり
限り、サブツリーの「真」分岐を辿る。RETRYがゼロに
達するまでに、ある推定に達しなかったならば、プロセ
スは分岐点44に「逆戻り」して分岐点44の「偽」分岐を
辿る。このように、R RETRYポインタは最後の真の条件
が満たされた分岐点を指示すると共に、順列の全ての試
みられた時までに、この真の条件が見出されなければ、
逆戻り操作が始められねばならない分岐点を指示する。
サブルーチンはブロック141から判断ブロック142へ進
み、カレント分岐点ポインタRがゼロであるかどうかを
判定し、これは、判断ツリーを通ることによりその時の
記号スロットまたはサブ記号スロットを認識するために
前に試みが行なわれなかったことを示すか、あるいは辿
った最後の判断サブツリーがある推定を生じなかったこ
とを示す。この判定が否定ならば、サブルーチンはブロ
ック144へ進む。ブロック142の判定が肯定ならば、この
ことは、新しい判断ツリーをセグメントが試みられるべ
きことを意味する。ブロック143においては、サブルー
チンはカレント分岐点ポインタRをセットして新しい判
断サブツリーの「根分岐点」を指示する。サブルーチン
はまた推論変数GUESSおよび再試行/逆戻りポインタR R
ETRYをリセットする。
み、カレント分岐点ポインタRがゼロであるかどうかを
判定し、これは、判断ツリーを通ることによりその時の
記号スロットまたはサブ記号スロットを認識するために
前に試みが行なわれなかったことを示すか、あるいは辿
った最後の判断サブツリーがある推定を生じなかったこ
とを示す。この判定が否定ならば、サブルーチンはブロ
ック144へ進む。ブロック142の判定が肯定ならば、この
ことは、新しい判断ツリーをセグメントが試みられるべ
きことを意味する。ブロック143においては、サブルー
チンはカレント分岐点ポインタRをセットして新しい判
断サブツリーの「根分岐点」を指示する。サブルーチン
はまた推論変数GUESSおよび再試行/逆戻りポインタR R
ETRYをリセットする。
次に、ブロック144において、サブルーチンは、本文
において「EVAL機能」と呼ばれる機能を行なうが、この
機能は、ブロック133において見出される判断ツリーの
セグメントにより、サブ記号またはベクトルの連係リス
トの種々の順列をテストして、2つのブランチ、即ち
「真」と「偽」分岐のどれが判断サブツリーのカレント
分岐点から取出されるべきかを示す。順列構造が形成さ
れる態様については、第10図に関して更に詳細に記述す
る。
において「EVAL機能」と呼ばれる機能を行なうが、この
機能は、ブロック133において見出される判断ツリーの
セグメントにより、サブ記号またはベクトルの連係リス
トの種々の順列をテストして、2つのブランチ、即ち
「真」と「偽」分岐のどれが判断サブツリーのカレント
分岐点から取出されるべきかを示す。順列構造が形成さ
れる態様については、第10図に関して更に詳細に記述す
る。
推論エンジン・サブルーチンは、ブロック144から判
断ブロック145へ進み、カレント分岐点におけるサブ記
号のこれ以上の順列が、Rによって指示されず、また再
試行/逆戻りポインタR RETRYが依然としてセットされ
ていない条件が、満たされるかどうかを判定する。
断ブロック145へ進み、カレント分岐点におけるサブ記
号のこれ以上の順列が、Rによって指示されず、また再
試行/逆戻りポインタR RETRYが依然としてセットされ
ていない条件が、満たされるかどうかを判定する。
より迅速な実行を達成するために、判断ツリーに組立
てられる「基本則(ルールベース)」を提供することを
理解すべきであり、これにおいては、判断ツリーの各サ
ブツリーが、特定の形式の記号またはサブ記号と対応し
ている。判断ツリーのある分岐点は、これと関連した
「推論」を有し、その結果、確実な認識が行なわれなく
とも、認識されるべき記号が何であるか、即ち三角形、
四角形等であるかについての、最善のカレント推論を示
す一連の文字により識別される、妥当な推論が可能とな
る。
てられる「基本則(ルールベース)」を提供することを
理解すべきであり、これにおいては、判断ツリーの各サ
ブツリーが、特定の形式の記号またはサブ記号と対応し
ている。判断ツリーのある分岐点は、これと関連した
「推論」を有し、その結果、確実な認識が行なわれなく
とも、認識されるべき記号が何であるか、即ち三角形、
四角形等であるかについての、最善のカレント推論を示
す一連の文字により識別される、妥当な推論が可能とな
る。
次いでサブルーチンはブロック146へ進み、R RETRYポ
インタをカレント分岐点ポインタである値Rにセット
し、第3A図の初めに進む。もしブロック145の判定が否
定ならば、同じ点へ進む。
インタをカレント分岐点ポインタである値Rにセット
し、第3A図の初めに進む。もしブロック145の判定が否
定ならば、同じ点へ進む。
第3A図においては、サブルーチンが判断ブロック147
へ進み、ブロック144のEVALテストの結果が「成功」で
あるかどうか、即ちEVALテストの結果が「真」(成功)
あるいは「偽」(不成功)であるかを判定する。ブロッ
ク147の判定が肯定ならば、サブルーチンはブロック155
へ進み、判定サブツリーのカレント分岐点において「推
論」が使用できるかどうかを判定する。(特定のサブツ
リー分岐点においてテストされる記号またはサブ記号が
何であるかについての妥当な推論が行なわれる前に、か
なり数のテストが必要となることが判るであろう。) 判断ツリーのカレント分岐点において推論が全く得ら
れなければ、サブルーチンはブロック156へ進み、ポイ
ンタR RETRYをRにセットし、その結果、サブルーチン
は、後でその時の分岐点へ逆戻りできるようになる。こ
の時、プログラムはブロック158へ進み、カレント分岐
点ポインタRを更新してRE RETRYにより指示されるカレ
ント分岐点の「真」分岐を指示する。
へ進み、ブロック144のEVALテストの結果が「成功」で
あるかどうか、即ちEVALテストの結果が「真」(成功)
あるいは「偽」(不成功)であるかを判定する。ブロッ
ク147の判定が肯定ならば、サブルーチンはブロック155
へ進み、判定サブツリーのカレント分岐点において「推
論」が使用できるかどうかを判定する。(特定のサブツ
リー分岐点においてテストされる記号またはサブ記号が
何であるかについての妥当な推論が行なわれる前に、か
なり数のテストが必要となることが判るであろう。) 判断ツリーのカレント分岐点において推論が全く得ら
れなければ、サブルーチンはブロック156へ進み、ポイ
ンタR RETRYをRにセットし、その結果、サブルーチン
は、後でその時の分岐点へ逆戻りできるようになる。こ
の時、プログラムはブロック158へ進み、カレント分岐
点ポインタRを更新してRE RETRYにより指示されるカレ
ント分岐点の「真」分岐を指示する。
サブルーチンは次いで第3B図へ進む。第3B図において
は、サブルーチンは判断ブロック160へ進み、Rがゼロ
(即ち、Rが「自由線(leaf)」の分岐点あるいは「終
端点(dead end)」の分岐点であるかを指示する)であ
るかを判定し、かつ推論が得られるか、あるいは調べる
べきこれ以上の判断ツリーのセグメントがないかの条件
が存在するかどうかを判定する。この判定が否定なら
ば、これは、サブルーチンが終端点に達したこと、およ
び推論が得られなかったこと、また調べるべき判定サブ
ツリーのセグメントが残っていることを意味する。プロ
グラムは第3図のブロック142へ戻り、判断ツリーの新
しいセグメントを試みる。
は、サブルーチンは判断ブロック160へ進み、Rがゼロ
(即ち、Rが「自由線(leaf)」の分岐点あるいは「終
端点(dead end)」の分岐点であるかを指示する)であ
るかを判定し、かつ推論が得られるか、あるいは調べる
べきこれ以上の判断ツリーのセグメントがないかの条件
が存在するかどうかを判定する。この判定が否定なら
ば、これは、サブルーチンが終端点に達したこと、およ
び推論が得られなかったこと、また調べるべき判定サブ
ツリーのセグメントが残っていることを意味する。プロ
グラムは第3図のブロック142へ戻り、判断ツリーの新
しいセグメントを試みる。
判断ブロック160の判定が肯定ならば、このことは、
サブルーチンが判断ブロック161へ進んで、判断ツリー
のその時の分岐点において「推論」が得られるかどうか
を判定することを意味する。この判定が否定ならば、こ
れは、サブルーチンがその時の記号またはサブ記号を認
識できないことを意味し、ラベル162を通って、呼出し
ルーチンへ戻る。判断ブロック161の判定が肯定なら
ば、サブルーチンは判断ブロック163へ進み、上記のCOD
E(コード)が3より小さいか、即ちその時のデータが
記号かあるいはサブ記号かを判定し、それにより、その
時の記号またはサブ記号が認識されたことを示すフラッ
グをセットして、認識された記号またはサブ記号に対す
る名称を挿入することにより、ブロック164および165に
示されるように記号スロットまたはサブ記号スロットを
更新する。サブルーチンは次に、ラベル166において成
功を表示し、戻る。
サブルーチンが判断ブロック161へ進んで、判断ツリー
のその時の分岐点において「推論」が得られるかどうか
を判定することを意味する。この判定が否定ならば、こ
れは、サブルーチンがその時の記号またはサブ記号を認
識できないことを意味し、ラベル162を通って、呼出し
ルーチンへ戻る。判断ブロック161の判定が肯定なら
ば、サブルーチンは判断ブロック163へ進み、上記のCOD
E(コード)が3より小さいか、即ちその時のデータが
記号かあるいはサブ記号かを判定し、それにより、その
時の記号またはサブ記号が認識されたことを示すフラッ
グをセットして、認識された記号またはサブ記号に対す
る名称を挿入することにより、ブロック164および165に
示されるように記号スロットまたはサブ記号スロットを
更新する。サブルーチンは次に、ラベル166において成
功を表示し、戻る。
判断ブロック147(第3A図)の判定が否定、即ちその
時のサブ記号がEVAL機能の「真」分岐と整合していなれ
ば、サブルーチンは第3A図のブロック148へ戻って「失
敗をテスト」し、再試行/逆戻りポインタR RETRYが、
その時の判断サブツリーのその時の分岐点を指示するか
どうかを判定する。
時のサブ記号がEVAL機能の「真」分岐と整合していなれ
ば、サブルーチンは第3A図のブロック148へ戻って「失
敗をテスト」し、再試行/逆戻りポインタR RETRYが、
その時の判断サブツリーのその時の分岐点を指示するか
どうかを判定する。
ブロック148の判定が肯定ならば、サブルーチンはブ
ロック149へ進み、カレント分岐点ポインタRをゼロに
リセットし、また再試行/逆戻りポインタR RETRYをゼ
ロにセットする。さもなければ、サブルーチンはブロッ
ク150へ進み、Rにより指示されたカレント分岐点の
「偽」分岐を試みる。
ロック149へ進み、カレント分岐点ポインタRをゼロに
リセットし、また再試行/逆戻りポインタR RETRYをゼ
ロにセットする。さもなければ、サブルーチンはブロッ
ク150へ進み、Rにより指示されたカレント分岐点の
「偽」分岐を試みる。
いずれの場合も、この時サブルーチンはブロック151
へ進み、Rがゼロに等しく、かつ推論変数GUESSがゼロ
に等しいという条件が満たされた、判断サブツリーのカ
レント分岐点においては推論が未だ得られないことを意
味する条件が成立するかどうかを判定する。この判定が
否定ならば、判断サブツリーのカレント分岐点が終端点
であることを意味し、サブルーチンは、既に述べた第3B
図へ進む。
へ進み、Rがゼロに等しく、かつ推論変数GUESSがゼロ
に等しいという条件が満たされた、判断サブツリーのカ
レント分岐点においては推論が未だ得られないことを意
味する条件が成立するかどうかを判定する。この判定が
否定ならば、判断サブツリーのカレント分岐点が終端点
であることを意味し、サブルーチンは、既に述べた第3B
図へ進む。
ブロック151の判定が肯定ならば、サブルーチンはブ
ロック152へ進み、順列構造のこれ以上の順列が、判断
ツリーのカレント分岐点において得られるかどうかを判
定する。この判定が肯定ならば、サブルーチンはブロッ
ク153へ進み、ポインタRETRYをRに等しくセツトし、そ
れにより、PERM構造の別の順列がテストできる。ブロッ
ク152の判定が否定ならば、サブルーチンはブロック154
へ進み、R RETRYにより指示される分岐点の「偽」分岐
を通って逆戻りを試み、次いでR RETRYをリセットす
る。
ロック152へ進み、順列構造のこれ以上の順列が、判断
ツリーのカレント分岐点において得られるかどうかを判
定する。この判定が肯定ならば、サブルーチンはブロッ
ク153へ進み、ポインタRETRYをRに等しくセツトし、そ
れにより、PERM構造の別の順列がテストできる。ブロッ
ク152の判定が否定ならば、サブルーチンはブロック154
へ進み、R RETRYにより指示される分岐点の「偽」分岐
を通って逆戻りを試み、次いでR RETRYをリセットす
る。
次に、第10図の「類似のサブ記号の並び換え・サブル
ーチン」について述べる。このサブルーチンは、第3図
のブロック144により呼び出されるが、どの順列が認識
可能な記号を形成するかを判定するために、適宜の判断
サブツリーの分岐点テストに対して、その時の記号スロ
ットにおける連係リストのサブ記号の可能な各順列をテ
ストするために、判断ツリーのセグメントが、計算され
たサブ記号の属性と整合することが見出されたときに、
ブロック144により呼出される。このためには、どの順
列がテストされたかを追跡することが必要となる。+1
の値を有する識別番号IDが、その時の順列構造に含まれ
る各サブ記号に割当てられ、−1のID値はその時に順列
構造に含まれない各サブ記号に割当てられる。
ーチン」について述べる。このサブルーチンは、第3図
のブロック144により呼び出されるが、どの順列が認識
可能な記号を形成するかを判定するために、適宜の判断
サブツリーの分岐点テストに対して、その時の記号スロ
ットにおける連係リストのサブ記号の可能な各順列をテ
ストするために、判断ツリーのセグメントが、計算され
たサブ記号の属性と整合することが見出されたときに、
ブロック144により呼出される。このためには、どの順
列がテストされたかを追跡することが必要となる。+1
の値を有する識別番号IDが、その時の順列構造に含まれ
る各サブ記号に割当てられ、−1のID値はその時に順列
構造に含まれない各サブ記号に割当てられる。
各サブ記号は最初、−1のID値が割当てられる。各サ
ブ記号は、順列構造に含まれるならば、+1のID値が割
当てられる。各サブツリー分岐点において、EVAL機能が
呼出され(第3図のブロック144)、サブ記号について
種々のテストを行なう。例えば、あるテストは、特定の
順序のサブ記号を探すためのものである。このテストに
よりその時のサブ記号のグループの1つ以上の組合せが
存在することが判定されるならば、このことは、順列構
造を形成して存在し得る順列の各々をテストすることが
必要となることを意味する。各々が並べ換えられると、
+1のID値が割当てられる。
ブ記号は、順列構造に含まれるならば、+1のID値が割
当てられる。各サブツリー分岐点において、EVAL機能が
呼出され(第3図のブロック144)、サブ記号について
種々のテストを行なう。例えば、あるテストは、特定の
順序のサブ記号を探すためのものである。このテストに
よりその時のサブ記号のグループの1つ以上の組合せが
存在することが判定されるならば、このことは、順列構
造を形成して存在し得る順列の各々をテストすることが
必要となることを意味する。各々が並べ換えられると、
+1のID値が割当てられる。
判断ツリーのあるサブツリーの特定の分岐点におい
て、ユーザは、この判断サブツリーにより認識される記
号を構成するために生じるべき順序で、判断ツリーが幾
つかのサブ記号で組立てられる基本則において指示する
ことになる。これらサブ記号の各々は、特定の「サブ記
号の形式」と関連させられることにより、その各々は異
なる値の変数SS TYPEにより表わされる。例えば、SS TY
PEは、三角形、円、四角等を表わすことができる。
て、ユーザは、この判断サブツリーにより認識される記
号を構成するために生じるべき順序で、判断ツリーが幾
つかのサブ記号で組立てられる基本則において指示する
ことになる。これらサブ記号の各々は、特定の「サブ記
号の形式」と関連させられることにより、その各々は異
なる値の変数SS TYPEにより表わされる。例えば、SS TY
PEは、三角形、円、四角等を表わすことができる。
第10図において、サブルーチンは最初に判断ブロック
310へ進み、サブ記号形式SS TYPEが、その時の判断サブ
ツリーのその時の分岐点において初めて呼出されている
かどうかを判定する。これが最初であれば、サブルーチ
ンはブロック311へ進み、順列カウンタRETRYをリセット
する。次いでサブルーチンは判断ブロック312へ進み、
この分岐点におけるテスト条件によって指定されるサブ
記号の形式に整合が存在するかどうかを判定する。もし
この整合が失敗すれば、サブルーチンはラベル313Aを通
って戻る。
310へ進み、サブ記号形式SS TYPEが、その時の判断サブ
ツリーのその時の分岐点において初めて呼出されている
かどうかを判定する。これが最初であれば、サブルーチ
ンはブロック311へ進み、順列カウンタRETRYをリセット
する。次いでサブルーチンは判断ブロック312へ進み、
この分岐点におけるテスト条件によって指定されるサブ
記号の形式に整合が存在するかどうかを判定する。もし
この整合が失敗すれば、サブルーチンはラベル313Aを通
って戻る。
ブロック312の判定が肯定ならば、サブルーチンはブ
ロック313へ進み、その時の記号スロットにおける連係
されたサブ記号リストのその時の順列におけるSS TYPE
によって指示されるサブ記号形式の、二回以上の発生が
存在するかどうかを判定する。この判定が否定ならば、
これ以上の並べ換えが行なわれず、サブルーチンはブロ
ック315へ進み、その時の順列における全てのサブ記号
のIDを+1にセットし、連係リストの残りのサブ記号の
IDを−1にセットする。サブルーチンはこの時、ラベル
316を通って戻る。
ロック313へ進み、その時の記号スロットにおける連係
されたサブ記号リストのその時の順列におけるSS TYPE
によって指示されるサブ記号形式の、二回以上の発生が
存在するかどうかを判定する。この判定が否定ならば、
これ以上の並べ換えが行なわれず、サブルーチンはブロ
ック315へ進み、その時の順列における全てのサブ記号
のIDを+1にセットし、連係リストの残りのサブ記号の
IDを−1にセットする。サブルーチンはこの時、ラベル
316を通って戻る。
判断ブロック313の判定が肯定ならば、サブルーチン
はブロック314へ進み、存在可能な順列の数(並べ換え
の数)を計算して、順列カウンタRETRYをこの数にセッ
トし、サブ記号の順序列を初期の連続順にリセットし、
PERM構造を適正な値にリセットする。サブ記号の順次列
は、サブ記号の連係リスト全体の順序を示す。次いでサ
ブルーチンは前に述べたブロック315へ進む。
はブロック314へ進み、存在可能な順列の数(並べ換え
の数)を計算して、順列カウンタRETRYをこの数にセッ
トし、サブ記号の順序列を初期の連続順にリセットし、
PERM構造を適正な値にリセットする。サブ記号の順次列
は、サブ記号の連係リスト全体の順序を示す。次いでサ
ブルーチンは前に述べたブロック315へ進む。
ブロック310の判定が否定ならば、サブルーチンは判
断ブロック317へ進み、この特定の分岐点に対するPERM
構造における要素の1つである「モジュロ・カウント」
を越えたかどうかを調べる。(このモジュロ・カウント
は特定のサブ記号の形式に対する単なる並び換え回数で
ある。本文において用いられる用語「モジュロ」とは、
並べ換えを取扱う標準的な数字のテキストにおける意味
と同じ意味を有する。)この判定が否定ならば、サブル
ーチンはブロック319へ進む。ブロック317の判定が肯定
ならば、サブルーチンはブロック318へ進み、「新しい
サブ記号」の並べ換えを開始する。このサブルーチン
は、変数P POSの値を、PERM構造における新しいサブ
記号の値と対応するようにリセットすることにより、行
なう。P POSは、その時並べ換えられる同じサブ記号
形式のサブ記号の次の発生のPERM構造における位置を表
わす。
断ブロック317へ進み、この特定の分岐点に対するPERM
構造における要素の1つである「モジュロ・カウント」
を越えたかどうかを調べる。(このモジュロ・カウント
は特定のサブ記号の形式に対する単なる並び換え回数で
ある。本文において用いられる用語「モジュロ」とは、
並べ換えを取扱う標準的な数字のテキストにおける意味
と同じ意味を有する。)この判定が否定ならば、サブル
ーチンはブロック319へ進む。ブロック317の判定が肯定
ならば、サブルーチンはブロック318へ進み、「新しい
サブ記号」の並べ換えを開始する。このサブルーチン
は、変数P POSの値を、PERM構造における新しいサブ
記号の値と対応するようにリセットすることにより、行
なう。P POSは、その時並べ換えられる同じサブ記号
形式のサブ記号の次の発生のPERM構造における位置を表
わす。
次いでサブルーチンはブロック319へ進み、P POS位
置におけるサブ記号を切換えることにより、その時のPE
RM構造の次の並べ換えを獲得し、同じ形式の最初のサブ
記号がP POSを増分し、順列カウンタRETRYを減分し、
その時の順列に関する全てのサブ記号のID値を+1にセ
ットし、また残りを−1にセットする。
置におけるサブ記号を切換えることにより、その時のPE
RM構造の次の並べ換えを獲得し、同じ形式の最初のサブ
記号がP POSを増分し、順列カウンタRETRYを減分し、
その時の順列に関する全てのサブ記号のID値を+1にセ
ットし、また残りを−1にセットする。
この並べ換え手法は、大量のメモリー空間を必要とす
る各順列の格納の必要が避けられるという利点を有し、
また2つのサブ記号を単に切換えることにより新しい順
列を得ることを可能にする。
る各順列の格納の必要が避けられるという利点を有し、
また2つのサブ記号を単に切換えることにより新しい順
列を得ることを可能にする。
前述の如く、サブ記号および記号の認識のためにユー
ザが供給する基本則は、更に迅速な計算および認識を行
なうために、判断ツリーに変換される。この時、基本則
は記号、開ループ(オープンループ)サブ記号、および
閉ループ(クローズドループ)サブ記号に対してのみ生
成され、その結果、3つの対応する判断ツリーが組立て
られる。第4図に示されるように、どのユーザが定義し
た基本則も、コンパイラに対する入力として提供され、
コンパイラは次いで基本則を実行して、ブロック173に
示されるように、第12図に示された形式の「記号の判断
ツリー」、またはブロック176に示されるように、「サ
ブ記号の判断ツリー」を生成するためにコンパイルす
る。このコンパイラはまた、記号の名称、および基本則
により認識することができる記号またはサブ記号の各々
の位置および方向のツリーを生じる。
ザが供給する基本則は、更に迅速な計算および認識を行
なうために、判断ツリーに変換される。この時、基本則
は記号、開ループ(オープンループ)サブ記号、および
閉ループ(クローズドループ)サブ記号に対してのみ生
成され、その結果、3つの対応する判断ツリーが組立て
られる。第4図に示されるように、どのユーザが定義し
た基本則も、コンパイラに対する入力として提供され、
コンパイラは次いで基本則を実行して、ブロック173に
示されるように、第12図に示された形式の「記号の判断
ツリー」、またはブロック176に示されるように、「サ
ブ記号の判断ツリー」を生成するためにコンパイルす
る。このコンパイラはまた、記号の名称、および基本則
により認識することができる記号またはサブ記号の各々
の位置および方向のツリーを生じる。
記号の判断ツリー、サブ記号の判断ツリーおよび記号
の名称ツリーは、次いで判断ツリーが上記の第3図に関
して使用することができるように、自動図面認識(AD
R)システムに対して2進モジュールとしてダウンロー
ドされる。
の名称ツリーは、次いで判断ツリーが上記の第3図に関
して使用することができるように、自動図面認識(AD
R)システムに対して2進モジュールとしてダウンロー
ドされる。
ユーザが定義した基本則を判断ツリーのコンパイルす
ることは、当業者には容易に構成することができる簡単
な手順であり、従って本文においては詳細に記述しな
い。
ることは、当業者には容易に構成することができる簡単
な手順であり、従って本文においては詳細に記述しな
い。
次に、第1図のブロック109により呼出される第6図
のサブルーチンについて述べる。このルーチンは、ベク
トル・テーブルVECGENにおける全てのベクトルおよびエ
ンティティが取出されて第1図の記号認識プログラムの
前半の部分により実行された後、第1図により呼出され
る。
のサブルーチンについて述べる。このルーチンは、ベク
トル・テーブルVECGENにおける全てのベクトルおよびエ
ンティティが取出されて第1図の記号認識プログラムの
前半の部分により実行された後、第1図により呼出され
る。
サブ記号の空間、大きさ等の、サブ記号を組合せるか
どうかを判定する際に用いられる種々のパラメータは、
それぞれ黒板と関連付けられていることに注意すべきで
ある。この黒板に対するパラメータがリセットされる
と、このような許容範囲を指定するポインタがリセット
される。
どうかを判定する際に用いられる種々のパラメータは、
それぞれ黒板と関連付けられていることに注意すべきで
ある。この黒板に対するパラメータがリセットされる
と、このような許容範囲を指定するポインタがリセット
される。
第6図のサブルーチンは最初にブロック210へ進み、
カレント記号スロットのポインタCUR SYMBをセットし
テ、カレント黒板の上位レベルにおける最も左方の記号
を指示し、また第6A図のサブルーチンに従って前記黒板
のパラメータをリセットし、あるシステム・ポインタを
「ジョブ待ち行列」を指示するようにリセットする。本
発明の実施態様においては、ADRシステムが多重処理能
力を有し、従って、当業者が理解するように、あるジョ
ブ待ち行列を提供してシステム・ポインタをこれにリセ
ットすることが必要となる。各記号スロットの処理は、
1つの「ジョブ」と見做される。第6A図を簡単に参照す
ると、黒板のパラメータをリセットするために、サブル
ーチンは判断ブロック219へ進み、カレント黒板が「ア
クティブ」状態にあって、記号の認識が要求されるウィ
ンドウとは対応しない「ヌル」黒板ではないことを意味
するかどうかを判定する。この判定が否定ならば、サブ
ルーチンはブロック221へ進み、変数BLKBをセットし
て、その時の(新しい)ウィンドウと対応する黒板を指
示し、新しい黒板のパラメータをリセットする。ブロッ
ク219の判定が肯定ならば、サブルーチンはブロック220
へ進み、カレント黒板をアクティブ状態のリスト(アク
ティブ・リスト)にセーブし、次いでブロック221へ進
む。この時、サブルーチンは第6図のブロック210へ戻
る。
カレント記号スロットのポインタCUR SYMBをセットし
テ、カレント黒板の上位レベルにおける最も左方の記号
を指示し、また第6A図のサブルーチンに従って前記黒板
のパラメータをリセットし、あるシステム・ポインタを
「ジョブ待ち行列」を指示するようにリセットする。本
発明の実施態様においては、ADRシステムが多重処理能
力を有し、従って、当業者が理解するように、あるジョ
ブ待ち行列を提供してシステム・ポインタをこれにリセ
ットすることが必要となる。各記号スロットの処理は、
1つの「ジョブ」と見做される。第6A図を簡単に参照す
ると、黒板のパラメータをリセットするために、サブル
ーチンは判断ブロック219へ進み、カレント黒板が「ア
クティブ」状態にあって、記号の認識が要求されるウィ
ンドウとは対応しない「ヌル」黒板ではないことを意味
するかどうかを判定する。この判定が否定ならば、サブ
ルーチンはブロック221へ進み、変数BLKBをセットし
て、その時の(新しい)ウィンドウと対応する黒板を指
示し、新しい黒板のパラメータをリセットする。ブロッ
ク219の判定が肯定ならば、サブルーチンはブロック220
へ進み、カレント黒板をアクティブ状態のリスト(アク
ティブ・リスト)にセーブし、次いでブロック221へ進
む。この時、サブルーチンは第6図のブロック210へ戻
る。
次に、カレント黒板の処理サブルーチンはブロック21
1へ進み、カレント記号スロットをジョブ待ち行列に従
わせて、それにより、カレント・サブ記号スロットが適
当な時に処理できるようにする。
1へ進み、カレント記号スロットをジョブ待ち行列に従
わせて、それにより、カレント・サブ記号スロットが適
当な時に処理できるようにする。
サブルーチンはブロック211から判断ブロック212へ進
み、カレント記号スロットがカレント・レベルにおける
最も右方の記号スロットであるかどうかを判定する。換
言すれば、カレント記号はその時のレベルにおける最後
の記号スロットであるかどうかを判定する。この判定が
否定ならば、サブルーチンはブロック213へ進み、カレ
ント記号スロットを隣接する右方の記号スロットに等し
くセットし、判断ブロック211へ戻る。この動作は、カ
レント記号スロットの右方にこれ以上の記号スロットが
なくなるまで反復される。次いで、肯定の判定が判断ブ
ロック212から得られることになるので、サブルーチン
はブロック214へ進み、カレント・レベルの下方に記号
スロットが存在するかどうかを判定する。この判定が肯
定ならば、サブルーチンはブロック215へ進み、カレン
ト記号スロットのポインタCUR SYMBをセットして、次
に下方の記号スロットを指示して、ブロック211へ戻
る。
み、カレント記号スロットがカレント・レベルにおける
最も右方の記号スロットであるかどうかを判定する。換
言すれば、カレント記号はその時のレベルにおける最後
の記号スロットであるかどうかを判定する。この判定が
否定ならば、サブルーチンはブロック213へ進み、カレ
ント記号スロットを隣接する右方の記号スロットに等し
くセットし、判断ブロック211へ戻る。この動作は、カ
レント記号スロットの右方にこれ以上の記号スロットが
なくなるまで反復される。次いで、肯定の判定が判断ブ
ロック212から得られることになるので、サブルーチン
はブロック214へ進み、カレント・レベルの下方に記号
スロットが存在するかどうかを判定する。この判定が肯
定ならば、サブルーチンはブロック215へ進み、カレン
ト記号スロットのポインタCUR SYMBをセットして、次
に下方の記号スロットを指示して、ブロック211へ戻
る。
ブロック214の判定が否定ならば、サブルーチンはブ
ロック216へ進み、ジョブ待ち行列にこれ以上の信号処
理タスクが存在するかどうかを判定し、そうでなけれ
ば、ラベル217を通って、戻る。これ以上の処理すべき
記号スロットが存在するならば、サブルーチンは第7図
のブロック218へ進んで次のジョブを処理し、次いでブ
ロック216へ戻る。
ロック216へ進み、ジョブ待ち行列にこれ以上の信号処
理タスクが存在するかどうかを判定し、そうでなけれ
ば、ラベル217を通って、戻る。これ以上の処理すべき
記号スロットが存在するならば、サブルーチンは第7図
のブロック218へ進んで次のジョブを処理し、次いでブ
ロック216へ戻る。
記号処理ジョブは全て、別の黒板からの記号スロット
がジョブ待ち行列に与えられる前に、その時の黒板から
与えられる。ジョブ待ち行列に対してロードされる記号
スロット処理ジョブが、全て同じ黒板からのものである
必要がないことに注意すべきである。即ち、連続的な記
号スロット処理ジョブは、種々の黒板から生じることが
できる。これは、カレント黒板がカレント・ウィンドウ
を指示しなければ、カレント黒板をリセットする必要が
ないからである。
がジョブ待ち行列に与えられる前に、その時の黒板から
与えられる。ジョブ待ち行列に対してロードされる記号
スロット処理ジョブが、全て同じ黒板からのものである
必要がないことに注意すべきである。即ち、連続的な記
号スロット処理ジョブは、種々の黒板から生じることが
できる。これは、カレント黒板がカレント・ウィンドウ
を指示しなければ、カレント黒板をリセットする必要が
ないからである。
第7図のフローチャートについて説明する前に、第7
図のフローチャートの実行に先立ち、記号スロットのプ
ログラムの全ての処理がADRの単一のプロセッサにおい
て行なわれることに、注目すべきである。しかし、ADR
は多重処理能力を有し、そのため、第6図のブロック21
1に関して前に述べたように、ジョブ待ち行列に対し
て、個々の記号スロット即ちジョブを提供することが必
要となる。一旦、記号スロット処理ジョブがこのジョブ
待ち行列に置かれると、どんな数のプロセッサでも実際
にその可用度に応じてジョブを処理することができる。
このため、多重プロセッサは各々、記号認識プログラム
のコピーを待つことが必要となる。従って、第7図のフ
ローチャートにおけるいくつかのステップは、プロセッ
サの状態の確保、およびプロセッサの状態のセッティン
グおよびリセッティング、ジョブ待ち行列の減分、およ
びカレント黒板のリセッティングに関するものである。
図のフローチャートの実行に先立ち、記号スロットのプ
ログラムの全ての処理がADRの単一のプロセッサにおい
て行なわれることに、注目すべきである。しかし、ADR
は多重処理能力を有し、そのため、第6図のブロック21
1に関して前に述べたように、ジョブ待ち行列に対し
て、個々の記号スロット即ちジョブを提供することが必
要となる。一旦、記号スロット処理ジョブがこのジョブ
待ち行列に置かれると、どんな数のプロセッサでも実際
にその可用度に応じてジョブを処理することができる。
このため、多重プロセッサは各々、記号認識プログラム
のコピーを待つことが必要となる。従って、第7図のフ
ローチャートにおけるいくつかのステップは、プロセッ
サの状態の確保、およびプロセッサの状態のセッティン
グおよびリセッティング、ジョブ待ち行列の減分、およ
びカレント黒板のリセッティングに関するものである。
次に第7図において、「プロセスのカレント記号スロ
ット・サブルーチン」は最初にブロック230へ進み、そ
の時のプロセッサのカレント状態をセットして、これが
記号の認識を行なってワークステーションがこの状態を
監視することを可能にすることを表す。そして、サブル
ーチンは判断ブロック231へ進み、その時のプロセッサ
が最初に記号の認識を行なっているかどうかを判定し、
その結果、サブルーチンは判断ツリーのポインタ等を更
新することが必要かどうかを知ることができる。
ット・サブルーチン」は最初にブロック230へ進み、そ
の時のプロセッサのカレント状態をセットして、これが
記号の認識を行なってワークステーションがこの状態を
監視することを可能にすることを表す。そして、サブル
ーチンは判断ブロック231へ進み、その時のプロセッサ
が最初に記号の認識を行なっているかどうかを判定し、
その結果、サブルーチンは判断ツリーのポインタ等を更
新することが必要かどうかを知ることができる。
ブロック231の判定が否定ならば、サブルーチンは判
断ブロック233へ進む。ブロック231の判定が肯定なら
ば、サブルーチンはブロック232へ進んでADRシステムの
ポインタから適正な判断ツリーのポインタへの多数の変
数、アクティブ状態の黒板のリスト、およびそれに関連
するパラメータの更新を行なう。次いで、この全て情報
が、カレント記号スロットを処理するために、記号の認
識プログラムを実行する特定のプロセッサに対してロー
ドされる。
断ブロック233へ進む。ブロック231の判定が肯定なら
ば、サブルーチンはブロック232へ進んでADRシステムの
ポインタから適正な判断ツリーのポインタへの多数の変
数、アクティブ状態の黒板のリスト、およびそれに関連
するパラメータの更新を行なう。次いで、この全て情報
が、カレント記号スロットを処理するために、記号の認
識プログラムを実行する特定のプロセッサに対してロー
ドされる。
判断ブロック233においては、サブルーチンがカレン
ト黒板の変数BLKBが、処理中のその時の記号スロットが
置かれるカレント・ウィンドウを指示するかどうかを判
定する。この判定が肯定ならば、サブルーチンはブロッ
ク235へ進むが、さもなければ、ブロック234へ進んで第
6A図のサブルーチンを実行して、カレント黒板をリセッ
トする。
ト黒板の変数BLKBが、処理中のその時の記号スロットが
置かれるカレント・ウィンドウを指示するかどうかを判
定する。この判定が肯定ならば、サブルーチンはブロッ
ク235へ進むが、さもなければ、ブロック234へ進んで第
6A図のサブルーチンを実行して、カレント黒板をリセッ
トする。
次に、サブルーチンはブロック235へ進み、オープン
・サブ記号の判断ツリーをアクティブ状態にすることに
より、その時の記号スロットにおける閉ループ(オープ
ン・ループ)・サブ記号を認識する。これは、変数CODE
に値2を割当てて、前に述べた第3図、第3A図および第
3B図の推論エンジンのサブルーチンを実行することを含
んでいる。
・サブ記号の判断ツリーをアクティブ状態にすることに
より、その時の記号スロットにおける閉ループ(オープ
ン・ループ)・サブ記号を認識する。これは、変数CODE
に値2を割当てて、前に述べた第3図、第3A図および第
3B図の推論エンジンのサブルーチンを実行することを含
んでいる。
次いでサブルーチンは判断ブロック236へ進んで、カ
レント記号スロットが1つ以上の認識されたサブ記号を
有するかどうかを判定する。この判定は、1つの記号を
形成する認識されたサブ記号の組合せが存在するかどう
かを判定することができるように、行なわれる。ブロッ
ク236の判定が否定ならば、サブルーチンはブロック240
へ進み、第8図の消去サブルーチンを呼出すことによ
り、CUR SYMBにより指示される記号スロットにおける
残りの全てのサブ記号を消去する。次いでサブルーチン
はブロック241へ進み、プロセッサ状態フラッグをリセ
ットし、ジョブ待ち行列を判定し、次いで戻る。
レント記号スロットが1つ以上の認識されたサブ記号を
有するかどうかを判定する。この判定は、1つの記号を
形成する認識されたサブ記号の組合せが存在するかどう
かを判定することができるように、行なわれる。ブロッ
ク236の判定が否定ならば、サブルーチンはブロック240
へ進み、第8図の消去サブルーチンを呼出すことによ
り、CUR SYMBにより指示される記号スロットにおける
残りの全てのサブ記号を消去する。次いでサブルーチン
はブロック241へ進み、プロセッサ状態フラッグをリセ
ットし、ジョブ待ち行列を判定し、次いで戻る。
判断ブロック236の判定が肯定ならば、サブルーチン
は値3を変数CODEへ割当て、第3図の推論エンジン・サ
ブルーチンを呼出して、認識されたサブ記号からなる記
号を認識するよう試みる。
は値3を変数CODEへ割当て、第3図の推論エンジン・サ
ブルーチンを呼出して、認識されたサブ記号からなる記
号を認識するよう試みる。
次にサブルーチンは判断ブロック239へ進み、これに
より、いずれかの記号が認識されたかどうか、また認識
された記号に組合されなかった別の認識されたサブ記号
があるかどうかを判定する。この判定が否定ならば、サ
ブルーチンはブロック240へ進んで、これらの残りのサ
ブ記号を消去する。しかし、ブロック239の判定が肯定
ならば、サブルーチンはブロック238へ進み、第8図の
サブルーチンを呼出して、認識された記号の一部である
サブ記号のみを消去し、推論エンジンに戻って残りの認
識された記号からなる記号の認識を試みる。
より、いずれかの記号が認識されたかどうか、また認識
された記号に組合されなかった別の認識されたサブ記号
があるかどうかを判定する。この判定が否定ならば、サ
ブルーチンはブロック240へ進んで、これらの残りのサ
ブ記号を消去する。しかし、ブロック239の判定が肯定
ならば、サブルーチンはブロック238へ進み、第8図の
サブルーチンを呼出して、認識された記号の一部である
サブ記号のみを消去し、推論エンジンに戻って残りの認
識された記号からなる記号の認識を試みる。
サブ記号の連係リストが、前に述べた第10図の並べ換
え(置換)アルゴリズムにより、並べ直された状態にな
ることが理解されよう。(これは、第3図のブロック14
4のEVALテストの実施の最に実行される。)サブ記号の
連係リストの並べ換えにおいては、認識された記号の一
部をなすサブ記号が、連係リストの初め(開始点)に現
われ、特定の記号の認識に用いられないサブ記号が新し
い連係リストの終り(終端点)に配列される。ある記号
の認識において用いられる連係リストの初めにあるもの
のみが、ブロック238において消去され、また残りのブ
ロック237においてアクティブ化される記号判断ツリー
へ戻される。
え(置換)アルゴリズムにより、並べ直された状態にな
ることが理解されよう。(これは、第3図のブロック14
4のEVALテストの実施の最に実行される。)サブ記号の
連係リストの並べ換えにおいては、認識された記号の一
部をなすサブ記号が、連係リストの初め(開始点)に現
われ、特定の記号の認識に用いられないサブ記号が新し
い連係リストの終り(終端点)に配列される。ある記号
の認識において用いられる連係リストの初めにあるもの
のみが、ブロック238において消去され、また残りのブ
ロック237においてアクティブ化される記号判断ツリー
へ戻される。
第8図の「消去」記号スロットサブルーチンについて
説明する前に、ある記号が認識された時、認識された記
号の一部をなす全てのサブ記号が、これらのサブ記号を
含む連係リストの初めに現われて、第10図の並べ換えサ
ブルーチン動作の結果として、+1のIDフラッグを待つ
ことに注意すべきである。第7図のブロック237、238お
よび239に従って、サブ記号の連係リストが反復的に記
号の基本則に通される時、認識されたサブ記号の一部を
なす連係リストの初めにおけるサブ記号を、最初に消去
することが必要となる。
説明する前に、ある記号が認識された時、認識された記
号の一部をなす全てのサブ記号が、これらのサブ記号を
含む連係リストの初めに現われて、第10図の並べ換えサ
ブルーチン動作の結果として、+1のIDフラッグを待つ
ことに注意すべきである。第7図のブロック237、238お
よび239に従って、サブ記号の連係リストが反復的に記
号の基本則に通される時、認識されたサブ記号の一部を
なす連係リストの初めにおけるサブ記号を、最初に消去
することが必要となる。
これが、第8図のサブルーチンが行なうことができる
ことである。このサブルーチンは、最初に判断ブロック
250へ進み、カレント記号スロットが認識されるかどう
かを判定する。そうであれば、サブルーチンはブロック
251へ進み、認識された記号の方向および位置を計算
し、XおよびYの最小値および最大値をリセットし、カ
レント・サブ記号ポインタCUR SYMBを連係リストの最
初のサブ記号にセットする。ブロック250の判定が否定
ならば、サブルーチンは判断ブロック257へ進む。
ことである。このサブルーチンは、最初に判断ブロック
250へ進み、カレント記号スロットが認識されるかどう
かを判定する。そうであれば、サブルーチンはブロック
251へ進み、認識された記号の方向および位置を計算
し、XおよびYの最小値および最大値をリセットし、カ
レント・サブ記号ポインタCUR SYMBを連係リストの最
初のサブ記号にセットする。ブロック250の判定が否定
ならば、サブルーチンは判断ブロック257へ進む。
ブロック251を完了した後、サブルーチンは判断ブロ
ック252へ進んで、カレント・サブ記号が+1のID値を
待つかどうかを判定する。もしこれが+1の値を待つな
らば、これはカレント・サブ記号が認識された記号の一
部であることを意味する。ブロック252の判定が否定な
らば、サブルーチンはブロック256へ進むが、さもなけ
れば、ブロック253へ進んで、カレント・サブ記号を構
成する全てのベクトルまたはエンティティを「不要」即
ち「消去」し、最小および最大のXおよびYの値を更新
する。(消去される記号またはサブ記号の一部である各
ベクトルまたはエンティティに対する最小値XおよびY
および最大値XおよびYは、記号の方向を用いて計算さ
れるべき認識された記号の「スケール(scale)」を許
容するため保持される。)次いでサブルーチンは判断ブ
ロック254へ進み、カレント・サブ記号が連係リストに
おける最後のサブ記号であるかどうかを判定する。この
判定が肯定ならば、サブルーチンはブロック256へ進
み、さもなければ、ブロック255へ進んで、カレント・
サブ記号を連係リストの次のサブ記号へと増分する。
ック252へ進んで、カレント・サブ記号が+1のID値を
待つかどうかを判定する。もしこれが+1の値を待つな
らば、これはカレント・サブ記号が認識された記号の一
部であることを意味する。ブロック252の判定が否定な
らば、サブルーチンはブロック256へ進むが、さもなけ
れば、ブロック253へ進んで、カレント・サブ記号を構
成する全てのベクトルまたはエンティティを「不要」即
ち「消去」し、最小および最大のXおよびYの値を更新
する。(消去される記号またはサブ記号の一部である各
ベクトルまたはエンティティに対する最小値XおよびY
および最大値XおよびYは、記号の方向を用いて計算さ
れるべき認識された記号の「スケール(scale)」を許
容するため保持される。)次いでサブルーチンは判断ブ
ロック254へ進み、カレント・サブ記号が連係リストに
おける最後のサブ記号であるかどうかを判定する。この
判定が肯定ならば、サブルーチンはブロック256へ進
み、さもなければ、ブロック255へ進んで、カレント・
サブ記号を連係リストの次のサブ記号へと増分する。
カレント・サブ記号が認識された記号の一部でない
が、あるいは連係リストの最後のサブ記号であれば、ブ
ロック256に進むが、該ブロックおいて、サブルーチン
は(最小値および最大値XおよびYおよび方向を用い
て)記号の大きさを計算し、ワークステーションにより
アクセス可能な記号ライブラリと対応する、記号を識別
した場合を含む記号データ、記号のXおよびYの位置の
座標、その方向およびそのX方向およびY方向のスケー
ルを、ADRの「領域SYMBOLS」に対して出力する。この情
報は、認識された記号を再び生成するためワークステー
ションによって後で用いられる。
が、あるいは連係リストの最後のサブ記号であれば、ブ
ロック256に進むが、該ブロックおいて、サブルーチン
は(最小値および最大値XおよびYおよび方向を用い
て)記号の大きさを計算し、ワークステーションにより
アクセス可能な記号ライブラリと対応する、記号を識別
した場合を含む記号データ、記号のXおよびYの位置の
座標、その方向およびそのX方向およびY方向のスケー
ルを、ADRの「領域SYMBOLS」に対して出力する。この情
報は、認識された記号を再び生成するためワークステー
ションによって後で用いられる。
ブロック257においては、サブルーチンはカレント・
サブ記号が連係リストにおける最後のものであるかどう
かを判定する。もしこの判定が肯定ならば、サブルーチ
ンは、ラベル258を通って戻るが、さもなければ、判断
ブロック259へ進んでカレント・サブ記号が認識された
記号であるかどうかを判定する。(認識された記号がす
でに取除かれたことに注意。)もしこの判定が肯定なら
ば、サブルーチンはブロック261へ進むが、さもなけれ
ば、ブロック260へ進んで変更されないカレント・サブ
記号のベクトルまたはエンティティを、ベクトル・テー
ブルへ戻す。そしてサブルーチンは、ブロック260から
判断ブロック262へ進む。
サブ記号が連係リストにおける最後のものであるかどう
かを判定する。もしこの判定が肯定ならば、サブルーチ
ンは、ラベル258を通って戻るが、さもなければ、判断
ブロック259へ進んでカレント・サブ記号が認識された
記号であるかどうかを判定する。(認識された記号がす
でに取除かれたことに注意。)もしこの判定が肯定なら
ば、サブルーチンはブロック261へ進むが、さもなけれ
ば、ブロック260へ進んで変更されないカレント・サブ
記号のベクトルまたはエンティティを、ベクトル・テー
ブルへ戻す。そしてサブルーチンは、ブロック260から
判断ブロック262へ進む。
カレント・サブ記号が認識可能であることによりサブ
ルーチンがブロック261へ入るならば、サブルーチンは
カレント・サブ記号の方向および位置を計算し、最小お
よび最大のXおよびYの変数をリセットし、カレント・
サブ記号を構成する全てのベクトルまたはエンティティ
を消去し、各ベクトルに対する最小および最大のXおよ
びYの値を更新し、認識された記号の大きさを計算し、
ADRの領域SYMBOLSに対して、認識された記号のパラメー
タを出力する。次いでプログラムは判断ブロック262へ
進み、カレント・サブ記号が連係リストの最後のもので
あるかどうかを判定し、そうであれば戻るが、さもなけ
ればブロック264へ進んで、カレント・サブ記号ポイン
タCUR SYMBを、連係リストの次のサブ記号へセット
し、判断ブロック259へ戻る。
ルーチンがブロック261へ入るならば、サブルーチンは
カレント・サブ記号の方向および位置を計算し、最小お
よび最大のXおよびYの変数をリセットし、カレント・
サブ記号を構成する全てのベクトルまたはエンティティ
を消去し、各ベクトルに対する最小および最大のXおよ
びYの値を更新し、認識された記号の大きさを計算し、
ADRの領域SYMBOLSに対して、認識された記号のパラメー
タを出力する。次いでプログラムは判断ブロック262へ
進み、カレント・サブ記号が連係リストの最後のもので
あるかどうかを判定し、そうであれば戻るが、さもなけ
ればブロック264へ進んで、カレント・サブ記号ポイン
タCUR SYMBを、連係リストの次のサブ記号へセット
し、判断ブロック259へ戻る。
本発明の記号認識手法の作用については、簡単な事例
を説明することにより更に理解することができよう。第
13図は、1対の記号の形成および認識のために多数の単
純なベクトルがベクトル・テーブルから取出されるステ
ップ(a)〜(h)を示している。第13図のステップ
(a)においては、第1図のブロック100においてベク
トル50が、最初にウィンドウにより定義されるベクトル
・テーブルの一部から取り出される。プログラムは、ベ
クトル・ファイルの終りではないこと、ベクトル50が記
号の一部となるには大き過ぎないことを判定して、適正
な黒板を選択し、選択された黒板の適正なサブ記号スロ
ットおよび記号スロットに、ベクトル50を挿入する。更
に、適正な記号スロットの選択に際して、プログラム第
2図へ進む。CUR SYMB全体が最初にゼロとなり、これ
により、プログラムが黒板を初期化して、第13図の点線
62により示される最初の記号スロットを生成し、次にブ
ロック124Aへ進み、新しい記号スロットを生成すること
が必要であると判定し、ブロック124Cにおいてサブ記号
スロット58を生成し、ベクトル50をこれに入れる。第13
図のステップ(a)はサブ記号スロット58における、ま
た従って記号スロット62におけるベクトル50を示してい
る。ブロック105または106においては存在し得る組合せ
が検出されず、あるいは第1図のブロック107において
もループが検出されず、そのため、プログラムはブロッ
ク100へ戻ってベクトル51を取出し、第1図のブロック1
01〜104を実行する。この手順は、第2図のブロック124
Aにおいて肯定的な判定が行なわれ、従ってブロック124
B、次いでブロック122において示されるように、既に存
在するサブ記号スロット58にベクトル51が挿入される。
を説明することにより更に理解することができよう。第
13図は、1対の記号の形成および認識のために多数の単
純なベクトルがベクトル・テーブルから取出されるステ
ップ(a)〜(h)を示している。第13図のステップ
(a)においては、第1図のブロック100においてベク
トル50が、最初にウィンドウにより定義されるベクトル
・テーブルの一部から取り出される。プログラムは、ベ
クトル・ファイルの終りではないこと、ベクトル50が記
号の一部となるには大き過ぎないことを判定して、適正
な黒板を選択し、選択された黒板の適正なサブ記号スロ
ットおよび記号スロットに、ベクトル50を挿入する。更
に、適正な記号スロットの選択に際して、プログラム第
2図へ進む。CUR SYMB全体が最初にゼロとなり、これ
により、プログラムが黒板を初期化して、第13図の点線
62により示される最初の記号スロットを生成し、次にブ
ロック124Aへ進み、新しい記号スロットを生成すること
が必要であると判定し、ブロック124Cにおいてサブ記号
スロット58を生成し、ベクトル50をこれに入れる。第13
図のステップ(a)はサブ記号スロット58における、ま
た従って記号スロット62におけるベクトル50を示してい
る。ブロック105または106においては存在し得る組合せ
が検出されず、あるいは第1図のブロック107において
もループが検出されず、そのため、プログラムはブロッ
ク100へ戻ってベクトル51を取出し、第1図のブロック1
01〜104を実行する。この手順は、第2図のブロック124
Aにおいて肯定的な判定が行なわれ、従ってブロック124
B、次いでブロック122において示されるように、既に存
在するサブ記号スロット58にベクトル51が挿入される。
第13図のステップ(c)において、点線64はベクトル
・テーブルから次に取出すことができる大きなベクトル
を表わしている。このようなベクトルは、第1図の判断
ブロック102により取除かれ、ベクトル・テーブルへ変
更されない状態で戻される。次いで、別のベクトル52が
ベクトル・テーブルから取出され、これをベクトル・テ
ーブルに挿入するために前に述べた手順が行なわれ、こ
れによりベクトル52が記号スロット58に挿入される。
・テーブルから次に取出すことができる大きなベクトル
を表わしている。このようなベクトルは、第1図の判断
ブロック102により取除かれ、ベクトル・テーブルへ変
更されない状態で戻される。次いで、別のベクトル52が
ベクトル・テーブルから取出され、これをベクトル・テ
ーブルに挿入するために前に述べた手順が行なわれ、こ
れによりベクトル52が記号スロット58に挿入される。
次に、第13図のステップ(d)に示されるように、ベ
クトル53がベクトル・テーブルから取出される。このベ
クトル53は、サブ記号スロット58に挿入される時、閉ル
ープ(クローズドループ)を形成する。第2図には示さ
れないが、記号認識プログラムは、閉ループのサブ記号
が形成される時、別のサブ記号スロトがこのような閉ル
ープのサブ記号と繋がれるベクトルについて生成される
ように作成されている。従って、ベクトル53が閉ループ
を形成するので、サブ記号スロット59がベクトル52に対
して生成される。この判定が行なわれ、サブ記号スロッ
ト59が第5図のブロック201に従って生成される。次い
で第1図の判断ブロック107が肯定的な判定が生じて、
第3図の推論エンジン・サブルーチンをCODE=1の条件
に関して付勢する。ベクトル属性は、ブロック136にお
いて計算され、対応する判断ツリーの属性ラベルがブロ
ック133において計算され、肯定的な判定がブロック139
において得られ、EVAL機能すなわちEVALテストがブロッ
ク144に従って行なわれ、ベクトル50、51、53を含むサ
ブ記号を三角形として認識し、第3A図のブロック147、1
55において肯定的な判定が得ろれる。推論変数GUESSが
ブロック157において更新され、第3B図のブロック160お
よび161において肯定的な判定が得られ、サブ記号スロ
ットが認識された三角形を表わすインジケータ(標識)
により更新される。
クトル53がベクトル・テーブルから取出される。このベ
クトル53は、サブ記号スロット58に挿入される時、閉ル
ープ(クローズドループ)を形成する。第2図には示さ
れないが、記号認識プログラムは、閉ループのサブ記号
が形成される時、別のサブ記号スロトがこのような閉ル
ープのサブ記号と繋がれるベクトルについて生成される
ように作成されている。従って、ベクトル53が閉ループ
を形成するので、サブ記号スロット59がベクトル52に対
して生成される。この判定が行なわれ、サブ記号スロッ
ト59が第5図のブロック201に従って生成される。次い
で第1図の判断ブロック107が肯定的な判定が生じて、
第3図の推論エンジン・サブルーチンをCODE=1の条件
に関して付勢する。ベクトル属性は、ブロック136にお
いて計算され、対応する判断ツリーの属性ラベルがブロ
ック133において計算され、肯定的な判定がブロック139
において得られ、EVAL機能すなわちEVALテストがブロッ
ク144に従って行なわれ、ベクトル50、51、53を含むサ
ブ記号を三角形として認識し、第3A図のブロック147、1
55において肯定的な判定が得ろれる。推論変数GUESSが
ブロック157において更新され、第3B図のブロック160お
よび161において肯定的な判定が得られ、サブ記号スロ
ットが認識された三角形を表わすインジケータ(標識)
により更新される。
次に、第13図のステップ(e)に示されるように、ベ
クトル54がベクトル・テーブルから取出される。第2図
のブロック124Aに達すると、否定的な判定が生じる。従
って、サブルーチンはブロック124Cへ進み、ブロック12
2に示されるように、新しいサブ記号スロット60を生成
してこれにベクトル54を挿入する。このように、黒板を
充填する段階において、記号スロット62が第13図のステ
ップ(e)に示される形状を含む。
クトル54がベクトル・テーブルから取出される。第2図
のブロック124Aに達すると、否定的な判定が生じる。従
って、サブルーチンはブロック124Cへ進み、ブロック12
2に示されるように、新しいサブ記号スロット60を生成
してこれにベクトル54を挿入する。このように、黒板を
充填する段階において、記号スロット62が第13図のステ
ップ(e)に示される形状を含む。
次に、ベクトル55がベクトル・テーブルから取出され
る。第2図の判断ブロック125において肯定的な判定が
得られるが、これは、ベクトル55が記号スロット62の下
方に置かれるからである。記号スロット62の下方には記
号が存在しないため、サブルーチンは判断ブロック125
からブロック124へ進み、記号スロット63を生成する。
次に第2図のサブルーチンは、判断ブロック124Aへ進
み、このブロックが否定的な判定を生じ、従って次にブ
ロック124Cへ進んでサブ記号スロット61を生成し、ブロ
ック122においてはベクトル55をサブ記号スロット61へ
入れる。
る。第2図の判断ブロック125において肯定的な判定が
得られるが、これは、ベクトル55が記号スロット62の下
方に置かれるからである。記号スロット62の下方には記
号が存在しないため、サブルーチンは判断ブロック125
からブロック124へ進み、記号スロット63を生成する。
次に第2図のサブルーチンは、判断ブロック124Aへ進
み、このブロックが否定的な判定を生じ、従って次にブ
ロック124Cへ進んでサブ記号スロット61を生成し、ブロ
ック122においてはベクトル55をサブ記号スロット61へ
入れる。
次に、プログラムはベクトル56をベクトル・テーブル
から取出して、これをサブ記号スロット61へ挿入し、ベ
クトル55と共に記号スロット63へ挿入する。この場合、
記号スロット63におけるベクトル56は、記号スロット62
におけるベクトル54に近く、第9図のサブルーチンを作
動状態にする。この時、サブ記号スロットのポインタCU
R SSはサブ記号スロット61を指示し、ポインタCUR SY
MBは記号スロット63を指示する。第9図のブロック270
においては、記号ポインタSYが記号スロット63の上方の
最も左方の記号スロットを指示するため、SYがセットさ
れて記号スロット62を指示する。そして、第9図のサブ
ルーチンはブロック272へ進む。記号スロット62はヌル
・スロットではないため、サブルーチンはブロック273
へ進み、ベクトル54を含むサブ記号スロット60が、カレ
ント記号スロット63におけるサブ記号、即ちベクトル56
および55の近くにあり、組合されることができることを
判定する。第9図のサブルーチンはブロック274に進
み、第13図のステップ(g)に示されるようにベクトル
54を記号スロット63に「プル」することにより、記号ス
ロット62および63を更新する。
から取出して、これをサブ記号スロット61へ挿入し、ベ
クトル55と共に記号スロット63へ挿入する。この場合、
記号スロット63におけるベクトル56は、記号スロット62
におけるベクトル54に近く、第9図のサブルーチンを作
動状態にする。この時、サブ記号スロットのポインタCU
R SSはサブ記号スロット61を指示し、ポインタCUR SY
MBは記号スロット63を指示する。第9図のブロック270
においては、記号ポインタSYが記号スロット63の上方の
最も左方の記号スロットを指示するため、SYがセットさ
れて記号スロット62を指示する。そして、第9図のサブ
ルーチンはブロック272へ進む。記号スロット62はヌル
・スロットではないため、サブルーチンはブロック273
へ進み、ベクトル54を含むサブ記号スロット60が、カレ
ント記号スロット63におけるサブ記号、即ちベクトル56
および55の近くにあり、組合されることができることを
判定する。第9図のサブルーチンはブロック274に進
み、第13図のステップ(g)に示されるようにベクトル
54を記号スロット63に「プル」することにより、記号ス
ロット62および63を更新する。
ベクトル55および56のベクトル54との組合せは、第9
図のサブルーチンにおいては生じないが、第1図のベク
トル106により呼出される第5図のサブルーチンにおい
て生じることに注意されたい。
図のサブルーチンにおいては生じないが、第1図のベク
トル106により呼出される第5図のサブルーチンにおい
て生じることに注意されたい。
次に、プログラムは、第13図のステップ(h)に示さ
れるように、ベクトル57を取出して、これをサブ記号ス
ロット61へ挿入する。このプログラムは、第1図のブロ
ック107において閉ループが構成されたことを判定する
ため、ブロック108において記号の基本則が起動され
る。この基本則が起動されると、CODE=1となり、従っ
て第3図において、プログラムがブロック132および133
を経て進み、矩形と対応する判断ツリーのセグメントを
見出すが、4つのベクトル54、55、56または57のどれも
一回以上大じないため、順列構造が存在しない。EVALテ
ストは結果として矩形の認識を生じ、変数GUESSは矩形
を表すように更新され、プログラムは第3A図のブロック
157および158、第3B図のブロック160〜164を通り、第1
図のブロック109へ進み、このブロック109は第6図のサ
ブルーチンを呼出す。第6図のサブルーチンは、記号ス
ロット62、63の記号、即ち三角形および矩形を、ジョブ
待ち行列に与える。プログラムは第7図のサブルーチン
を通り、第8図に従って認識された黒板からのサブ記
号、すなわち三角形および矩形を消去し、ブロック259
において認識可能なカレント記号を認識し、ブロック26
1へ進み、三角形または矩形等の種々のパラメータを計
算し、記号情報をADR(自動図形認識システム)へ出力
する。認識された三角形および矩形の認識されたベクト
ルは消去され、ベクトル52がベクトル・テーブルへ戻さ
れる。
れるように、ベクトル57を取出して、これをサブ記号ス
ロット61へ挿入する。このプログラムは、第1図のブロ
ック107において閉ループが構成されたことを判定する
ため、ブロック108において記号の基本則が起動され
る。この基本則が起動されると、CODE=1となり、従っ
て第3図において、プログラムがブロック132および133
を経て進み、矩形と対応する判断ツリーのセグメントを
見出すが、4つのベクトル54、55、56または57のどれも
一回以上大じないため、順列構造が存在しない。EVALテ
ストは結果として矩形の認識を生じ、変数GUESSは矩形
を表すように更新され、プログラムは第3A図のブロック
157および158、第3B図のブロック160〜164を通り、第1
図のブロック109へ進み、このブロック109は第6図のサ
ブルーチンを呼出す。第6図のサブルーチンは、記号ス
ロット62、63の記号、即ち三角形および矩形を、ジョブ
待ち行列に与える。プログラムは第7図のサブルーチン
を通り、第8図に従って認識された黒板からのサブ記
号、すなわち三角形および矩形を消去し、ブロック259
において認識可能なカレント記号を認識し、ブロック26
1へ進み、三角形または矩形等の種々のパラメータを計
算し、記号情報をADR(自動図形認識システム)へ出力
する。認識された三角形および矩形の認識されたベクト
ルは消去され、ベクトル52がベクトル・テーブルへ戻さ
れる。
次に、第10図の並べ換えサブルーチンの作用を示す別
の事例に対する黒板のファイリングについて述べる。第
14図においては、ステップ(a)〜(h)は、サブ記号
(すなわちベクトル)70A、70B、70C、73、71、76およ
び72の段階的な挿入を、その順序で示している。この場
合、ベクトル・テーブルからのサブ記号71、72は同じも
のあり、サブ記号の認識のために適宜のEVAL機能により
基本則の判断ツリーにおいてテストされることを必要と
する、2つの可能な並べ換えを生じる。この並べ換えに
より、サブ記号71ではなくサブ記号72が、三角形に組合
わされたときに認識可能な記号を形成すると認識され、
そして、ステップ(h)に示されるように、インバータ
となる。なお、円のサブ記号71を含む連係リストの順列
は、認識不可能となる。ステップ(e)は、円のサブ記
号72がベクトル・テーブルから取出されて記号スロット
74に挿入される直前に生成されて、取出されたベクトル
で充填されたサブ記号スロットおよび記号スロット74、
75を示す。
の事例に対する黒板のファイリングについて述べる。第
14図においては、ステップ(a)〜(h)は、サブ記号
(すなわちベクトル)70A、70B、70C、73、71、76およ
び72の段階的な挿入を、その順序で示している。この場
合、ベクトル・テーブルからのサブ記号71、72は同じも
のあり、サブ記号の認識のために適宜のEVAL機能により
基本則の判断ツリーにおいてテストされることを必要と
する、2つの可能な並べ換えを生じる。この並べ換えに
より、サブ記号71ではなくサブ記号72が、三角形に組合
わされたときに認識可能な記号を形成すると認識され、
そして、ステップ(h)に示されるように、インバータ
となる。なお、円のサブ記号71を含む連係リストの順列
は、認識不可能となる。ステップ(e)は、円のサブ記
号72がベクトル・テーブルから取出されて記号スロット
74に挿入される直前に生成されて、取出されたベクトル
で充填されたサブ記号スロットおよび記号スロット74、
75を示す。
ベクトル70Cが取出され(ステップ(g))、適宜の
記号スロット74へ挿入され、かつ記号(70A〜70C)が三
角形として認識されかつ黒板が充填された後、第3図、
第3A図および第3B図の推論エンジンが、第6図のサブル
ーチンが呼出される結果、起動される。次いで、記号ス
ロット74がジョブ待ち行列に与えられ、この時第7図の
サブルーチンが呼出されて、ブロック236の肯定的な判
定を生じる結果となる。次いで、推論エンジン・サブル
ーチンがブロック237におけるCODE=3により起動され
る。
記号スロット74へ挿入され、かつ記号(70A〜70C)が三
角形として認識されかつ黒板が充填された後、第3図、
第3A図および第3B図の推論エンジンが、第6図のサブル
ーチンが呼出される結果、起動される。次いで、記号ス
ロット74がジョブ待ち行列に与えられ、この時第7図の
サブルーチンが呼出されて、ブロック236の肯定的な判
定を生じる結果となる。次いで、推論エンジン・サブル
ーチンがブロック237におけるCODE=3により起動され
る。
これにより、三角形(70A〜70C)および円(71、72)
のサブ記号属性を第3図のブロック132において計算さ
せる。整合する基本則の判断ツリーのセグメントが、ブ
ロック133において見出される。1つの頂点に接する円
を有する三角形を認識するため、基本則の判断ツリーの
種々のノードにおいて、EVAL機能に含まれた1組の順次
の幾何学的テストを行う。第3図のブロック139の判定
は肯定となり、このため順列カウンタ、カレント分岐点
ポインタおよび再試行/逆戻りポインタが、ブロック14
4においてリセットされることになる。
のサブ記号属性を第3図のブロック132において計算さ
せる。整合する基本則の判断ツリーのセグメントが、ブ
ロック133において見出される。1つの頂点に接する円
を有する三角形を認識するため、基本則の判断ツリーの
種々のノードにおいて、EVAL機能に含まれた1組の順次
の幾何学的テストを行う。第3図のブロック139の判定
は肯定となり、このため順列カウンタ、カレント分岐点
ポインタおよび再試行/逆戻りポインタが、ブロック14
4においてリセットされることになる。
EVALテストは、1つの三角形および1つの円の存在に
ついてテストするために、ブロック144において基本則
の判断ツリーのカレント分岐点において行なわれること
になる。2つの円(71および72)および1つの三角形
(70A〜70C)が見出される。従って、再試行ポインタRE
TRYは2にセットされるが、これは、1つの三角形と2
つの円との2つの可能な並べ換えが存在するからであ
る。第3B図のブロック146においては、R RETRYがRにセ
ットされる。ブロック144において試みられる最初の並
べ換えは、第1の円(71)と三角形(70A〜70C)との間
においてなされ、これは明らかに、第3図の判断ブロッ
ク147での「偽」を導くことになるが、これは第1の円
(71)および三角形(70A〜70C)がインバータ記号を形
成しないからである。次にプログラムは、第3A図のブロ
ック148へ進み、ブロック151において肯定的な判定を生
じ、別の並べ換えがブロック152において得られること
を判定し、ブロック153へ進み、次いで第3B図のブロッ
ク160へ進んで否定的判定を生じ、第3図のブロック142
へ再び進む。そして、プログラムは、三角形(70A〜70
C)および第2の円(72)を含む並べ換え構造につい
て、EVALテストを行なう。次いで、三角形(70A〜70C)
と第2の円(72)とがインバータ記号を形成するため、
ブロック147において、EVALテストが成功であるとの判
定が行なわれる。ブロック155において判定されるよう
に、ある推論が得られるが、これは、インバータが認識
され、またブロック157において変数GUESSが更新される
ためである。プログラムは、この時、第3B図のブロック
160およびブロック161において肯定的な判定を生じ、次
いでブロック164に進むが、これは、推論エンジンが3
に等しいCODEで呼出されたためであり、インバータを表
わすコード番号を含む適正な推論識別子を挿入すること
により、記号スロット74を更新する。第7図のブロック
239において否定の判定がされると、第7図のブロック2
40へ進み、三角形(70A〜70C)及び記号スロット74から
の第2の円(72)を第8図のブロック253において消去
し、第8図のブロック260において認識されないサブ記
号73、76、71を、ベクトル・テーブルへ戻す。適正な記
号の大きさ、方向および他のパラメータが判定されて、
ADRシステムの記号領域へ出力される。
ついてテストするために、ブロック144において基本則
の判断ツリーのカレント分岐点において行なわれること
になる。2つの円(71および72)および1つの三角形
(70A〜70C)が見出される。従って、再試行ポインタRE
TRYは2にセットされるが、これは、1つの三角形と2
つの円との2つの可能な並べ換えが存在するからであ
る。第3B図のブロック146においては、R RETRYがRにセ
ットされる。ブロック144において試みられる最初の並
べ換えは、第1の円(71)と三角形(70A〜70C)との間
においてなされ、これは明らかに、第3図の判断ブロッ
ク147での「偽」を導くことになるが、これは第1の円
(71)および三角形(70A〜70C)がインバータ記号を形
成しないからである。次にプログラムは、第3A図のブロ
ック148へ進み、ブロック151において肯定的な判定を生
じ、別の並べ換えがブロック152において得られること
を判定し、ブロック153へ進み、次いで第3B図のブロッ
ク160へ進んで否定的判定を生じ、第3図のブロック142
へ再び進む。そして、プログラムは、三角形(70A〜70
C)および第2の円(72)を含む並べ換え構造につい
て、EVALテストを行なう。次いで、三角形(70A〜70C)
と第2の円(72)とがインバータ記号を形成するため、
ブロック147において、EVALテストが成功であるとの判
定が行なわれる。ブロック155において判定されるよう
に、ある推論が得られるが、これは、インバータが認識
され、またブロック157において変数GUESSが更新される
ためである。プログラムは、この時、第3B図のブロック
160およびブロック161において肯定的な判定を生じ、次
いでブロック164に進むが、これは、推論エンジンが3
に等しいCODEで呼出されたためであり、インバータを表
わすコード番号を含む適正な推論識別子を挿入すること
により、記号スロット74を更新する。第7図のブロック
239において否定の判定がされると、第7図のブロック2
40へ進み、三角形(70A〜70C)及び記号スロット74から
の第2の円(72)を第8図のブロック253において消去
し、第8図のブロック260において認識されないサブ記
号73、76、71を、ベクトル・テーブルへ戻す。適正な記
号の大きさ、方向および他のパラメータが判定されて、
ADRシステムの記号領域へ出力される。
本発明は、ベクトル・テーブル等からの各エンティテ
ィと関与するソート操作を必要とする従来技術とは対照
的に、隔離された記号スロットに置かれたベクトルまた
はエンティティにコンピュータの処理の多くを制限する
ことにより、図面の特定の場所におけるベクトルまたは
エンティティについて演算するための非常に有効な手法
を提供するものである。その結果、非常に迅速に記号を
認識することができる。ベクトルを記号スロットに挿入
する手法は、どの記号スロットが前記ベクトルまたはエ
ンティティの場所のパラメータと対応する場所のパラメ
ータを有するかを、僅かな演算において判定することに
より、この記号スロットにおける全てのベクトルまたは
エンティティを処理する必要もなくなる。本発明の記号
認識手法は、ユーザがある記号または文字等の比較的少
数の一義的な特徴を選択し、一義的な特徴の組合せを認
識するため基本則の判断ツリーにおけるテストを幾何学
的に定義し、これにより、記号、文字等を認識すること
を許容することによって、ユーザが、多岐にわたる図形
記号または隔てられた文字を定義即ち認識することを比
較的容易にする。推論エンジンは、認識されるべき記号
の種類または形式とは実質的に独立している。このた
め、ユーザの基本則の定義に大きな柔軟性を許容し、こ
れにより、ユーザの記号、文字等を本発明により認識す
ることができる。反復する記号を含むサブ記号の種々の
順列をテストする手法は、多数の項目の存在し得る全て
の順列を計算して格納することを含む従来のほとんどの
手法と比較して非常に簡単である。
ィと関与するソート操作を必要とする従来技術とは対照
的に、隔離された記号スロットに置かれたベクトルまた
はエンティティにコンピュータの処理の多くを制限する
ことにより、図面の特定の場所におけるベクトルまたは
エンティティについて演算するための非常に有効な手法
を提供するものである。その結果、非常に迅速に記号を
認識することができる。ベクトルを記号スロットに挿入
する手法は、どの記号スロットが前記ベクトルまたはエ
ンティティの場所のパラメータと対応する場所のパラメ
ータを有するかを、僅かな演算において判定することに
より、この記号スロットにおける全てのベクトルまたは
エンティティを処理する必要もなくなる。本発明の記号
認識手法は、ユーザがある記号または文字等の比較的少
数の一義的な特徴を選択し、一義的な特徴の組合せを認
識するため基本則の判断ツリーにおけるテストを幾何学
的に定義し、これにより、記号、文字等を認識すること
を許容することによって、ユーザが、多岐にわたる図形
記号または隔てられた文字を定義即ち認識することを比
較的容易にする。推論エンジンは、認識されるべき記号
の種類または形式とは実質的に独立している。このた
め、ユーザの基本則の定義に大きな柔軟性を許容し、こ
れにより、ユーザの記号、文字等を本発明により認識す
ることができる。反復する記号を含むサブ記号の種々の
順列をテストする手法は、多数の項目の存在し得る全て
の順列を計算して格納することを含む従来のほとんどの
手法と比較して非常に簡単である。
第1図は本発明の記号認識プロセスを示す全体的なフロ
ーチャート、第2図は第1図のブロック104と対応する
サブルーチンを示すフローチャート、第2A図および第2B
図は、ある黒板、ある黒板の記号スロット、およびある
記号スロットのサブ記号スロットを示す図、第3図は第
1図のブロック108と対応する推論エンジン・サブルー
チンを示すフローチャート、第3A図は第3図のフローチ
ャートの続き、第3B図は第3A図のフローチャートの続
き、第4図は第3図の推論エンジンにより呼出される対
応する判断ツリーへ記号の変換基本則を示す全体的なフ
ローチャート、第5図は第1図のブロック106と対応す
るサブ記号の組合せサブルーチンを示すフローチャー
ト、第5A図〜第5D図は第5図によるサブ記号スロットの
組合せ状態の説明において有効な図、第6図は第1図の
ブロック109と対応するサブルーチンを示すフローチャ
ート、第6A図は第6図のブロック210と対応するサブル
ーチンを示すフローチャート、第7図は第6図のブロッ
ク211と対応するサブルーチンを示すフローチャート、
第8図は第7図のブロック138および140と対応するサブ
ルーチンを示すフローチャート、第9図は第1図のブロ
ック106と対応するサブルーチンを示すフローチャー
ト、第10図は第3図のブロック144と対応するサブルー
チンを示すフローチャート、第11図は本発明の記号認識
システムが内蔵される自動図面認識システムを示す図、
第12図は本発明の作用の説明に有効な基本則の判断ツリ
ーを示す図、第13図は黒板における1対の記号を形成し
て本発明による記号の認識を行なうステップを示す図、
および第14図はサブ記号のテスト順列を必要とする記号
の形成および認識における一連のステップを示す図であ
る。
ーチャート、第2図は第1図のブロック104と対応する
サブルーチンを示すフローチャート、第2A図および第2B
図は、ある黒板、ある黒板の記号スロット、およびある
記号スロットのサブ記号スロットを示す図、第3図は第
1図のブロック108と対応する推論エンジン・サブルー
チンを示すフローチャート、第3A図は第3図のフローチ
ャートの続き、第3B図は第3A図のフローチャートの続
き、第4図は第3図の推論エンジンにより呼出される対
応する判断ツリーへ記号の変換基本則を示す全体的なフ
ローチャート、第5図は第1図のブロック106と対応す
るサブ記号の組合せサブルーチンを示すフローチャー
ト、第5A図〜第5D図は第5図によるサブ記号スロットの
組合せ状態の説明において有効な図、第6図は第1図の
ブロック109と対応するサブルーチンを示すフローチャ
ート、第6A図は第6図のブロック210と対応するサブル
ーチンを示すフローチャート、第7図は第6図のブロッ
ク211と対応するサブルーチンを示すフローチャート、
第8図は第7図のブロック138および140と対応するサブ
ルーチンを示すフローチャート、第9図は第1図のブロ
ック106と対応するサブルーチンを示すフローチャー
ト、第10図は第3図のブロック144と対応するサブルー
チンを示すフローチャート、第11図は本発明の記号認識
システムが内蔵される自動図面認識システムを示す図、
第12図は本発明の作用の説明に有効な基本則の判断ツリ
ーを示す図、第13図は黒板における1対の記号を形成し
て本発明による記号の認識を行なうステップを示す図、
および第14図はサブ記号のテスト順列を必要とする記号
の形成および認識における一連のステップを示す図であ
る。
Claims (6)
- 【請求項1】図形記号を認識するためのコンピュータ化
された図形認識システムを動作させる方法において、 (a)認識されるべき前記図形記号のベクトルを含む図
面等をベクトル化することにより生じる、格納されたベ
クトルのリストを提供するステップと、 (b)前記図形記号の種々の特徴についての複数の異な
る幾何学的テストを含む基本則の判断ツリーを提供する
ステップと、 (c)認識されるべき図形記号を囲むウィンドウを定義
するステップと、 (d)前記ウィンドウに対応するソフトウェア黒板を選
択するステップと、 (e)格納されたベクトルの前記リストからベクトルを
取り出し、該ベクトルを、前記ウィンドウ内の該ベクト
ルの位置に対応する位置パラメータを有する記号スロッ
トであって、前記黒板内にある記号スロットに挿入する
ことによって、前記格納されたベクトルに演算を実行し
て前記図形記号の種々の特徴を表すベクトルの連係リス
トを形成し、前記記号スロットがまだ存在しない場合に
は、前記ベクトルの前記位置に対応する位置パラメータ
によって前記記号スロットを生成するステップと、 (f)前記ベクトルを前記記号スロット内のサブ記号ス
ロットに挿入し、このベクトルを、前記サブ記号スロッ
ト内に既に存在するベクトルを含む連係リストに加える
ステップと、 (g)前記ベクトルを挿入できる前のサブ記号スロット
がまだ存在しない場合には前記サブ記号スロットを生成
し、該生成されたサブ記号スロットに前記ベクトルを挿
入し、前記前のサブ記号スロットを含むサブ記号スロッ
トの連係リストに、該生成されたサブ記号スロットを加
えるステップと、 (h)格納されたベクトルの前記リストから複数のベク
トルを取り出す過程において複数のサブ記号スロットを
生成し、該サブ記号スロットを前記記号スロットに挿入
し、種々のサブ記号スロット内のサブ記号の或る部分が
組み合わされるのに十分に接近しているかどうかを判定
し、そうであれば、該サブ記号を組み合わせるステップ
と、 (i)複数のベクトルを取り出してそれらを前記黒板に
挿入する過程において複数の記号スロットとその中のサ
ブ記号スロットとをそれぞれ生成し、第1の記号スロッ
ト内のいずれかのサブ記号が、前記第1の記号スロット
内のサブ記号と組み合わせられ得る第2の記号スロット
内のサブ記号は十分に接近しているかどうかを判定し、
そうであれば、該組み合わせられ得るサブ記号を前記第
2の記号スロットから前記第1の記号スロットに移動さ
せるステップと、 (j)前記判断ツリーの連続する分岐点において前記連
係リストの選択された部分についての幾何学的テストの
シーケンスを実行し、該テストの予め定めた結果が生じ
る場合には、前記図形記号に対応する記号識別子を生じ
るステップと、 から成ることを特徴とするコンピュータ化された図形認
識システムの動作方法。 - 【請求項2】請求項1記載の方法において、該方法は、
同じ記号スロット内の直前のサブ記号スロットが閉ルー
プを形成するベクトルの連係リストを含むサブ記号を含
む場合には、前記サブ記号スロットを生じるステップを
含むことを特徴とする図形認識システムの動作方法。 - 【請求項3】コンピュータ化された図形認識システムに
おける記号認識システムにおいて、 (a)プロセッサと、該プロセッサに結合されたメモリ
と、 (b)認識されるべき図形記号のベクトルを含む図面等
をベクトル化することにより生じる、格納されたベクト
ルのリストを格納する、前記メモリ内のベクトル格納手
段と、 (c)前記図形記号の種々の特徴についての複数の幾何
学的テストを含む基本則の判断ツリーを格納する、前記
メモリ内の判断ツリー格納手段と、 (d)前記認識されるべき図形記号を囲むウィンドウを
定義する、プロセッサ内のウィンドウ定義手段と、 (e)前記ウィンドウに対応するソフトウェア黒板を選
択する手段を含み、前記図形記号の種々の特徴を表すベ
クトルの連係リストを形成し、該連係リストを前記メモ
リに格納するための、プロセッサ内の連係リスト形成手
段であって、 i.前記ベクトル格納手段に結合されており、格納された
ベクトルの前記リストからベクトルを取り出すベクトル
取出手段と、該ベクトル取出手段に応答して、該ベクト
ルを、前記ウィンドウ内の該ベクトルの位置に対応する
位置パラメータを有する前記黒板内の記号スロットに挿
入する手段と、 ii.前記記号スロットがまだ存在しない場合には、前記
ベクトル取出手段に応答して、前記ベクトルの位置に対
応する位置パラメータによって前記記号スロットを生成
する手段と、 iii.前記ベクトル取出手段に応答して、前記ベクトルを
前記記号スロット内のサブ記号スロットに挿入する手段
と、前記ベクトルを、あるベクトルが前記サブ記号スロ
ット内に既に存在している場合に該ベクトルを含む連係
リストに加える手段と、 iv.前記ベクトルを挿入できる前のサブ記号スロットが
まだ存在しない場合には、前記ベクトル取出手段に応答
して前記サブ記号スロットを生成する手段と、該生成さ
れたサブ記号スロットに前記ベクトルを挿入する手段
と、前記前のサブ記号スロットを含むサブ記号スロット
の連係リストに該生成されたサブ記号スロットを加える
手段と、 を含む連係リスト形成手段と、 (f)前記連係リスト形成手段に応答して、前記判断ツ
リーの連続する分岐点において前記連係リストの選択さ
れた部分についての幾何学的テストのシーケンスを実行
し、該テストの予め定めた結果が生じる場合には、前記
図形記号に対応する記号識別子を生じる、前記プロセッ
サ内の幾何学的テスト実行手段と、 からなることを特徴とする記号認識システム。 - 【請求項4】請求項3記載の記号認識システムにおい
て、前記連係リスト形成手段が、同じ記号スロット内の
直前のサブ記号スロットが閉ループを形成するベクトル
の連係リストを含むサブ記号を含む場合には、前記サブ
記号スロットを生じる手段を含むことを特徴とする記号
認識システム。 - 【請求項5】図形記号を認識するためのコンピュータ化
された図形認識システムを動作させる方法において、 (a)認識されるべき図形記号のベクトルを含む図面等
をベクトル化することにより生じる、格納されたベクト
ルのリストを提供するステップと、 (b)基本則の判断ツリーを提供するステップであっ
て、該判断ツリーは複数の分岐点と各分岐点においてそ
れぞれ実行される様々なサブ記号の特徴に対する幾何学
的テストの複数のシーケンスとを含んでおり、幾何学的
テストの各シーケンスは、前記判断ツリーの異なる依存
する分岐点を指示する真の結果と偽の結果とを有してい
る、ステップと、 (c)認識されるべき図形記号を囲むウィンドウを定義
するステップと、 (d)前記ウィンドウに対応するソフトウェア黒板を選
択するステップと、 (e)前記格納されたベクトルのリストからベクトルを
取り出し、該ベクトルを、前記黒板内に位置する記号ス
ロットであって、前記ウィンドウ内の該ベクトルの位置
に対応する位置パラメータを有してサブ記号の連係リス
トを形成するか又はサブ記号の連係リストに加えるため
の記号スロットに挿入するステップと、 (f)第1の記号スロット内のいずれかのサブ記号が、
前記第1の記号スロット内のサブ信号と組み合わせられ
得る第2の記号スロット内のサブ記号に十分に接近して
いるかどうかを判定し、そうであれば、該組み合わせら
れ得るサブ記号を前記第2の記号スロットから前記第1
の記号スロットに移動させるステップと、 (g)前記第1のサブ記号スロット内のいずれかのサブ
記号が組み合わせられ得るかどうかを判定し、そうであ
れば、それらを組み合わせるステップと、 (h)閉ループのサブ記号を認識するために、閉ループ
が形成されている場合には、ベクトルの前記連係リスト
について幾何学的テストのシーケンスを実行するステッ
プと、 (i)前記ウィンドウからの他のすべてのベクトルに対
してステップ(e)〜(h)を反復し、該ベクトルを、
前記連係リスト又は該反復の間に形成される1つ若しく
は複数の連係リストに加えるステップと、 (j)前記判断ツリー上の連続する分岐点において、前
記連係リストの選択された部分について幾何学的テスト
のシーケンスを実行し、該幾何学的テストが前記連係リ
スト内の記号を識別する場合には、前記記号スロット内
の前記図形記号に対応する記号識別子を生じるステップ
と、 (k)サブ記号スロットの前記連係リストに含まれるい
ずれかの形式のサブ記号が、2回以上生じるかどうかを
判定し、もしそうであれば、その形式の2回以上生じる
サブ記号の、前記連係リスト内の他のサブ記号で置換可
能な数を判定するステップと、 (l)前記連係リストのそれ以上の置換が不可能であ
り、かつ現在の分岐点に対して真の結果が得られない場
合には、前記判断ツリーの現在の分岐点において前に実
行された幾何学的テストの前記シーケンスの偽の結果に
よって指示された分岐点において幾何学的テストのシー
ケンスを実行するステップと、 (m)幾何学的テストの前記シーケンスの結果として記
号識別子が生じる場合には、該記号識別子を使用プログ
ラムに送り、それを用いて記号ライブラリにアクセス
し、前記認識された図形記号を記述する詳細なデータを
得るステップと から成ることを特徴とする図形システムの動作方法。 - 【請求項6】コンピュータ化された図形システムを動作
させて図形記号を認識するシステムにおいて、 (a)プロセッサと、メモリと、 (b)認識されるべき図形記号のベクトルを含む図面等
をベクトル化することにより生じる、格納されたベクト
ルのリストを格納する、前記メモリ内のベクトル格納手
段と、 (c)複数の分岐点と、各分岐点においてそれぞれ実行
される様々なサブ記号の特徴についての幾何学的テスト
の複数のシーケンスとを含む基本則の判断ツリーを格納
する、前記メモリ内の判断ツリー格納手段であって、幾
何学的テストの各シーケンスが、前記判断ツリーの異な
る分岐点を指示する真の結果と偽の結果とを有してい
る、判断ツリー格納手段と、 (d)認識されるべき図形記号を囲むウィンドウを定義
し、該ウィンドウを前記メモリ内に格納する、前記メモ
リ内のウィンドウ定義手段と、 (e)前記ウィンドウに対応する前記メモリ内のソフト
ウェア黒板を選択する、前記プロセッサ内の手段と、 (f)前記格納されたベクトルのリストからベクトルを
取り出す、前記プロセッサ内のベクトル取出手段と、該
ベクトルを、前記黒板内にある記号スロットであって、
前記ウィンドウ内の該ベクトルの位置に対応する位置パ
ラメータを有してサブ記号の連係リストを形成するか又
はサブ記号の連係リストに加えるための記号スロットに
挿入する手段と、 (g)前記ベクトル取出手段に応答し、第1の記号スロ
ット内のいずれかのサブ記号が、前記第1の記号スロッ
ト内のサブ記号と組み合わせられ得る第2の記号スロッ
ト内のサブ記号に十分に接近しているかどうかを判定
し、もしそうであれば、該組み合わせられ得るサブ記号
を前記第2の記号スロットから前記第1の記号スロット
に移動させる、前記プロセッサ内の手段と、 (h)前記第1のサブ記号スロット内のいずれのサブ記
号が組み合わせられ得るかどうかを判定し、そうであれ
ば、それらを組み合わせる、前記プロセッサ内の手段
と、 (i)閉ループのサブ記号を認識するために、閉ループ
が形成されている場合には、ベクトルの前記連係リスト
について幾何学的テストのシーケンスを実行する、前記
プロセッサ内の幾何学的テスト実行手段と、 (j)サブ記号スロットの前記連係リストに含まれるい
ずれかの形式のサブ記号が2回以上生じるかどうかを判
定し、もしそうであれば、その形式の2回以上生じるサ
ブ記号の、前記連係リスト内の他のサブ記号で置換可能
な数を判定する、前記幾何学的テスト実行手段内の手段
と、 (l)前記連係リストのそれ以上の置換が不可能であり
現在の分岐点に対して真の結果が得られない場合には、
前記判断ツリーの現在の分岐点において前に実行された
幾何学的テストの前記シーケンスの偽の結果によって指
示された分岐点において幾何学的テストのシーケンスを
実行する、前記幾何学的テスト実行手段内の手段と、 (m)前記幾何学的テスト実行手段に応答して、幾何学
的テストの前記シーケンスの結果として記号識別子が生
じる場合には、該記号識別子を使用プログラムに送り、
それを用いて記号ライブラリにアクセスし、前記認識さ
れた図形記号を記述する詳細なデータを得る、前記プロ
セッサ内の手段と からなることを特徴とするシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/016,253 US4949388A (en) | 1987-02-19 | 1987-02-19 | Method and apparatus for recognition of graphic symbols |
US16253 | 1987-02-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS63206868A JPS63206868A (ja) | 1988-08-26 |
JP2577763B2 true JP2577763B2 (ja) | 1997-02-05 |
Family
ID=21776174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63014353A Expired - Lifetime JP2577763B2 (ja) | 1987-02-19 | 1988-01-25 | 図形認識システム及びその動作方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US4949388A (ja) |
EP (1) | EP0279158A3 (ja) |
JP (1) | JP2577763B2 (ja) |
AU (1) | AU587354B2 (ja) |
IL (1) | IL84647A0 (ja) |
Families Citing this family (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4821336A (en) * | 1987-02-19 | 1989-04-11 | Gtx Corporation | Method and apparatus for simplifying runlength data from scanning of images |
US4817187A (en) * | 1987-02-19 | 1989-03-28 | Gtx Corporation | Apparatus and method for vectorization of incoming scanned image data |
JP2735187B2 (ja) * | 1987-03-17 | 1998-04-02 | 株式会社東芝 | 情報検索方法 |
JP2847715B2 (ja) * | 1988-08-30 | 1999-01-20 | ソニー株式会社 | 文字認識装置及び文字認識方法 |
JPH03286337A (ja) * | 1990-04-03 | 1991-12-17 | Hitachi Ltd | 条件判定の処理構造最適化による推論の高速化方式 |
WO1992005506A1 (en) * | 1990-09-18 | 1992-04-02 | Mitsubishi Denki Kabushiki Kaisha | Method of converting into concept pattern of mechanism |
JPH04199473A (ja) * | 1990-11-29 | 1992-07-20 | Fujitsu Ltd | 論理図面編集エディタ |
US5157736A (en) * | 1991-04-19 | 1992-10-20 | International Business Machines Corporation | Apparatus and method for optical recognition of chemical graphics |
US5345516A (en) * | 1991-04-19 | 1994-09-06 | International Business Machines Corporation | Apparatus and method for parsing a chemical string |
US5251268A (en) * | 1991-08-09 | 1993-10-05 | Electric Power Research Institute, Inc. | Integrated method and apparatus for character and symbol recognition |
EP0534446B1 (en) * | 1991-09-26 | 2001-07-11 | Mitsubishi Denki Kabushiki Kaisha | System with approximation means for recognizing graphical elements in a drawing |
JP2749020B2 (ja) * | 1991-11-14 | 1998-05-13 | 日立ソフトウエアエンジニアリング株式会社 | ダイアグラム認識システム |
WO1994004993A1 (en) * | 1992-08-18 | 1994-03-03 | Perception Software Corporation | A recognition system with an automated development tool |
US5812698A (en) * | 1995-05-12 | 1998-09-22 | Synaptics, Inc. | Handwriting recognition system and method |
US5761328A (en) * | 1995-05-22 | 1998-06-02 | Solberg Creations, Inc. | Computer automated system and method for converting source-documents bearing alphanumeric text relating to survey measurements |
US6314194B1 (en) * | 1995-07-26 | 2001-11-06 | The United States Of America As Represented By The Secretary Of The Army | Method for generating computer aided design programming circuit designs from scanned images of the design |
US5745601A (en) * | 1995-07-31 | 1998-04-28 | Neopath, Inc. | Robustness of classification measurement apparatus and method |
US5946415A (en) * | 1996-10-24 | 1999-08-31 | The United States Of America As Represented By The Secretary Of The Army | Method and apparatus to process drawing images |
US5926566A (en) * | 1996-11-15 | 1999-07-20 | Synaptics, Inc. | Incremental ideographic character input method |
US6366902B1 (en) | 1998-09-24 | 2002-04-02 | International Business Machines Corp. | Using an epoch number to optimize access with rowid columns and direct row access |
US6470359B1 (en) | 1998-09-24 | 2002-10-22 | International Business Machines Corporation | Fast technique for recovering an index on an auxiliary table |
US6363389B1 (en) | 1998-09-24 | 2002-03-26 | International Business Machines Corporation | Technique for creating a unique quasi-random row identifier |
US6606617B1 (en) | 1998-09-24 | 2003-08-12 | International Business Machines Corporation | Optimized technique for prefetching LOB table space pages |
US6144970A (en) * | 1998-09-24 | 2000-11-07 | International Business Machines Corporation | Technique for inplace reorganization of a LOB table space |
US6343286B1 (en) | 1998-09-24 | 2002-01-29 | International Business Machines Corporation | Efficient technique to defer large object access with intermediate results |
US6694340B1 (en) | 1998-09-24 | 2004-02-17 | International Business Machines Corporation | Technique for determining the age of the oldest reading transaction with a database object |
US6343293B1 (en) | 1998-09-24 | 2002-01-29 | International Business Machines Corporation | Storing the uncompressed data length in a LOB map to speed substring access within a LOB value |
US6332032B1 (en) | 1998-12-03 | 2001-12-18 | The United States Of America As Represented By The Secretary Of The Army | Method for generating test files from scanned test vector pattern drawings |
US6488205B1 (en) | 1999-12-03 | 2002-12-03 | Howard John Jacobson | System and method for processing data on an information card |
GB2364813B (en) * | 2000-07-13 | 2004-12-29 | Vhsoft Technologies Company Lt | Computer automated process for analysing and interpreting engineering drawings |
US6883145B2 (en) | 2001-02-15 | 2005-04-19 | Denny Jaeger | Arrow logic system for creating and operating control systems |
US7017124B2 (en) * | 2001-02-15 | 2006-03-21 | Denny Jaeger | Method for controlling electronic devices using digital recall tool |
US20020141643A1 (en) * | 2001-02-15 | 2002-10-03 | Denny Jaeger | Method for creating and operating control systems |
US6633884B2 (en) * | 2001-04-03 | 2003-10-14 | Bmc Software, Inc. | System and method for analyzing a database for on-line reorganization |
DE10361511A1 (de) * | 2003-12-23 | 2005-07-28 | Siemens Ag | Kontextabhängige Bedienung von Engineering-Systemen über zeichnerische Eingaben |
US8037102B2 (en) | 2004-02-09 | 2011-10-11 | Robert T. and Virginia T. Jenkins | Manipulating sets of hierarchical data |
US9646107B2 (en) | 2004-05-28 | 2017-05-09 | Robert T. and Virginia T. Jenkins as Trustee of the Jenkins Family Trust | Method and/or system for simplifying tree expressions such as for query reduction |
US7882147B2 (en) * | 2004-06-30 | 2011-02-01 | Robert T. and Virginia T. Jenkins | File location naming hierarchy |
US7620632B2 (en) | 2004-06-30 | 2009-11-17 | Skyler Technology, Inc. | Method and/or system for performing tree matching |
US7409088B2 (en) | 2004-09-21 | 2008-08-05 | Microsoft Corporation | System and method for connectivity-based recognition of a hand-drawn chart in ink input |
US7440616B2 (en) * | 2004-09-21 | 2008-10-21 | Microsoft Corporation | System and method for recognition of a hand-drawn chart in ink input |
US7394936B2 (en) * | 2004-09-21 | 2008-07-01 | Microsoft Corporation | System and method for curve recognition in a hand-drawn chart in ink input |
US7400771B2 (en) | 2004-09-21 | 2008-07-15 | Microsoft Corporation | System and method for connected container recognition of a hand-drawn chart in ink input |
US7801923B2 (en) | 2004-10-29 | 2010-09-21 | Robert T. and Virginia T. Jenkins as Trustees of the Jenkins Family Trust | Method and/or system for tagging trees |
US7627591B2 (en) | 2004-10-29 | 2009-12-01 | Skyler Technology, Inc. | Method and/or system for manipulating tree expressions |
US7630995B2 (en) | 2004-11-30 | 2009-12-08 | Skyler Technology, Inc. | Method and/or system for transmitting and/or receiving data |
US7636727B2 (en) | 2004-12-06 | 2009-12-22 | Skyler Technology, Inc. | Enumeration of trees from finite number of nodes |
US8316059B1 (en) | 2004-12-30 | 2012-11-20 | Robert T. and Virginia T. Jenkins | Enumeration of rooted partial subtrees |
US8615530B1 (en) | 2005-01-31 | 2013-12-24 | Robert T. and Virginia T. Jenkins as Trustees for the Jenkins Family Trust | Method and/or system for tree transformation |
US7681177B2 (en) * | 2005-02-28 | 2010-03-16 | Skyler Technology, Inc. | Method and/or system for transforming between trees and strings |
US8356040B2 (en) | 2005-03-31 | 2013-01-15 | Robert T. and Virginia T. Jenkins | Method and/or system for transforming between trees and arrays |
US7899821B1 (en) | 2005-04-29 | 2011-03-01 | Karl Schiffmann | Manipulation and/or analysis of hierarchical data |
US20070065017A1 (en) * | 2005-09-21 | 2007-03-22 | Pedscan Ltd. | Genetic family-tree object recognition |
GB2449412B (en) * | 2007-03-29 | 2012-04-25 | Hewlett Packard Development Co | Integrating object detectors |
US9195898B2 (en) | 2009-04-14 | 2015-11-24 | Qualcomm Incorporated | Systems and methods for image recognition using mobile devices |
US9060174B2 (en) | 2010-12-28 | 2015-06-16 | Fish Dive, Inc. | Method and system for selectively breaking prediction in video coding |
US10333696B2 (en) | 2015-01-12 | 2019-06-25 | X-Prime, Inc. | Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency |
CN117609894B (zh) * | 2024-01-23 | 2024-04-09 | 中国人民解放军国防科技大学 | 一种基于分区策略的高性能报文分类方法、设备及介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4491960A (en) | 1982-04-05 | 1985-01-01 | The United States Of America As Represented By The Secretary Of The Navy | Handprinted symbol recognition system |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS605037B2 (ja) * | 1980-01-28 | 1985-02-07 | 株式会社東芝 | 図面読取装置 |
US4377849A (en) * | 1980-12-29 | 1983-03-22 | International Business Machines Corporation | Macro assembler process for automated circuit design |
US4603431A (en) * | 1983-03-14 | 1986-07-29 | Ana Tech Corporation | Method and apparatus for vectorizing documents and symbol recognition |
US4549275A (en) * | 1983-07-01 | 1985-10-22 | Cadtrak Corporation | Graphics data handling system for CAD workstation |
US4813013A (en) * | 1984-03-01 | 1989-03-14 | The Cadware Group, Ltd. | Schematic diagram generating system using library of general purpose interactively selectable graphic primitives to create special applications icons |
EP0169576B1 (en) * | 1984-07-27 | 1990-12-19 | Hitachi, Ltd. | Method and system of circuit pattern understanding and layout |
US4701860A (en) * | 1985-03-07 | 1987-10-20 | Harris Corporation | Integrated circuit architecture formed of parametric macro-cells |
JPH0746363B2 (ja) * | 1985-03-12 | 1995-05-17 | 株式会社東芝 | 図面読取装置 |
JPS62145369A (ja) * | 1985-12-20 | 1987-06-29 | Hitachi Ltd | 図形デ−タの検索方法 |
AU601707B2 (en) * | 1986-12-24 | 1990-09-20 | Leigh-Mardon Pty Limited | Method and device for storing and reproducing graphical patterns or signatures |
US4817187A (en) * | 1987-02-19 | 1989-03-28 | Gtx Corporation | Apparatus and method for vectorization of incoming scanned image data |
US4821336A (en) * | 1987-02-19 | 1989-04-11 | Gtx Corporation | Method and apparatus for simplifying runlength data from scanning of images |
US4797806A (en) * | 1987-02-19 | 1989-01-10 | Gtx Corporation | High speed serial pixel neighborhood processor and method |
-
1987
- 1987-02-19 US US07/016,253 patent/US4949388A/en not_active Expired - Lifetime
- 1987-11-27 IL IL84647A patent/IL84647A0/xx unknown
-
1988
- 1988-01-05 EP EP19880100071 patent/EP0279158A3/en not_active Withdrawn
- 1988-01-25 JP JP63014353A patent/JP2577763B2/ja not_active Expired - Lifetime
- 1988-02-16 AU AU11755/88A patent/AU587354B2/en not_active Ceased
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4491960A (en) | 1982-04-05 | 1985-01-01 | The United States Of America As Represented By The Secretary Of The Navy | Handprinted symbol recognition system |
Also Published As
Publication number | Publication date |
---|---|
US4949388A (en) | 1990-08-14 |
EP0279158A2 (en) | 1988-08-24 |
AU587354B2 (en) | 1989-08-10 |
EP0279158A3 (en) | 1991-01-09 |
JPS63206868A (ja) | 1988-08-26 |
IL84647A0 (en) | 1988-04-29 |
AU1175588A (en) | 1988-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2577763B2 (ja) | 図形認識システム及びその動作方法 | |
JP4448881B2 (ja) | コンピュータプログラムを発生する方法及びシステム | |
US6118897A (en) | Interactive drawing recognition processing method and apparatus thereof | |
Pavlidis | A vectorizer and feature extractor for document recognition | |
US6195664B1 (en) | Method and system for controlling the conversion of a file from an input format to an output format | |
US6439783B1 (en) | Range-based query optimizer | |
US6678415B1 (en) | Document image decoding using an integrated stochastic language model | |
EP1973062B1 (en) | Method for creating and editing nodelink diagrams in PEN computing systems | |
EP0612014B1 (en) | Menu inquiry system | |
JP2608571B2 (ja) | 入力走査画像データのベクトル化のための装置及び方法 | |
US4499596A (en) | Adaptive facsimile compression using a dynamic extendable decision network | |
US5408597A (en) | Method and apparatus for schematic routing | |
US5452453A (en) | Rule based production system adapted for complex procedural flow | |
US6937760B2 (en) | Interactive frame segmentation with dynamic programming | |
JPH05151394A (ja) | 光学的文字認識のための傾きのあるテキスト行の高速文字認識の方法および装置 | |
JP2766053B2 (ja) | 画像データ処理方法 | |
US5920324A (en) | Character pattern producing apparatus capable of producing character pattern having connected character elements | |
JPH076076A (ja) | ハイパーメディアシステム | |
JPS6136868A (ja) | 情報検索装置 | |
Fruchterman | DAFS: A standard for document and image understanding | |
Rufai et al. | A Simple Convex Layers Algorithm | |
US20020126898A1 (en) | Run length based connected components and contour following for enhancing the performance of circled region extraction algorithm | |
CN112256573B (zh) | 一种面向simscript语言的仿真程序可视化方法 | |
Ablameyko et al. | Interpretation of colour maps. A combination of automatic and interactive techniques | |
Consorti et al. | Knowledge based search of character strings in line drawings |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071107 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081107 Year of fee payment: 12 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081107 Year of fee payment: 12 |