JP2001501003A - ネットワーク情報にアクセスするための方法とシステム - Google Patents
ネットワーク情報にアクセスするための方法とシステムInfo
- Publication number
- JP2001501003A JP2001501003A JP10515013A JP51501398A JP2001501003A JP 2001501003 A JP2001501003 A JP 2001501003A JP 10515013 A JP10515013 A JP 10515013A JP 51501398 A JP51501398 A JP 51501398A JP 2001501003 A JP2001501003 A JP 2001501003A
- Authority
- JP
- Japan
- Prior art keywords
- information
- language
- regular expression
- query
- source
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9532—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9538—Presentation of query results
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/564—Enhancement of application control based on intercepted application data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99935—Query augmenting and refining, e.g. inexact access
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
(57)【要約】
本発明は、情報源に付属したネットワークにアクセスする際のユーザー支援を提供する。1つの特徴によれば、本発明は、照会その照会に関係する情報源にユーザー照会をインテリジェントにルーチングし、受信した応答から関連するデータフィールドを抽出し、評価した関連性に順に抽出したデータをインテリジェントに提出する方法である。本発明のシステムは、1つ以上のネットワーク付属コンピュータに関して集中あるいは分散した方法の1つ以上のステップを実行する。さらに、本発明は、情報源照会及び応答フォーマットの記録されかつ保持された記述を容易に促進する新規な言語及び手法を提供する。
Description
【発明の詳細な説明】
ネットワーク情報にアクセスするための方法とシステム
1.発明の技術的分野
本発明はネットワークを通して情報にアクセスすることに関する。より詳しく
は、公共又は民間のネットワークを通して情報源から入手可能な関連情報をシス
テムユーザーの照会に応じ自動的に探知・評価することに関する。
2.発明の背景
民間のイントラネット、公共のインタネットの爆発的な発展は、増大する移し
い数の文書、データベース、ユーティリティから成る迷路を生み出すに至った。
殆どのタイプの情報をどこかで入手できるにも拘わらず、多くのユーザーが自分
の探すものを発見できず、専門家のユーザーでさえ適切な情報源を探すのに多く
の時間と労力を無駄にしている。一つ単純な問題は、一人のユーザーで理解出来
ない程大量の利用可能情報が有るということである。第二の問題は、利用可能な
情報と情報源のこうした発展に伴い、この情報の管理・アクセス・提供に関わる
ソフトウェアユーティリティと方法が同程度に発展したことである。各ユーティ
リティは、コマンドと能力の組合せが異なり、インタフェイスがしばしば固有で
あり、ユーザーのセット、情報タイプと情報源のセットをいずれも異にして適合
するようになっている。利用可能なユーティリティのこうした純粋な多様性は、
情報爆発で生じた問題と同等の問題をユーザーに生じさせる。ユーザーは今やど
のツールを使いどの情報源を尋ねるべきかという双子の問題に直面している。
ネットワーク革命でのこの双子問題の解決を助けられる自動コンピュータ支援
サービスをユーザーに提供する努力が以前からなされてきた。例えば人工頭脳研
究者はプロトタイプソフトウェアエージェントを幾つか作ってきており、例とし
て、E−メイルとネットワーク濾過機能をユーザー支援するエージエント(パッ
ティ・マエス他、1993、「学習するインタフェイスエージェント」、AAA
I−93紀要)、「WWWブラウジングを支援するエージエント」(H・リーベル
マ
ン1995、レティツィア:「ウェブブラウジングを支援するエージェント」、人
工頭脳に関する第15回合同会議、p924−929;ロバート・アームストロ
ング他、1992、ウェブウォチャー:「WWW用の学習実習生」、AAAI春
期シンポジウムのワーキングノート:「異質な分散環境から収集した情報」、p6
−12、スタンフォード大学、AAAIプレス)、ミーティング予定を作成する
エージェント(リサデント他、1992、「個人用学習実習生」、人工頭脳に関す
る第10回全国会議紀要、p96−93;パッティ・マエス、1994、「作業
量と情報のオーバロードを削減するエージェント」、米国コンピュータ学会委員
会、37(7):31−40、146;トム・ミッチェル他、1994、「学習す
る個人用補助者」、米国コンピュータ学会委責会、37(7):31−40)、イン
タネット関連のタスクを実行するエージェント(O.エツィオニ他、1994、「
インタネット用のソフトロボットをベースとしたインタフェイス」、CACM、37
(7):72−75)等が挙げられる。こうしたエージェントがアクセスすべ
き情報はWWW上でますます入手可能になっている。不運なことにWWWの様に
標準化されたドメインですら、自動ソフトウェアエージェントに対しかなりの問
題を突きつけることが判明した。ウェブページはハイパーテキストマークアップ
言語(「HTML」)で汎用的に書かれるが、この言語は情報表示の形式を定義す
るだけで、意味や意味論的な内容の暗示を試みることがない。現在の所、容認さ
れた「意味論的なマークアップ言語」はウェブには存在せず、汎用的に採用見込
みのあるものがない。イントラネットは更に大きな問題を突きつけると予想でき
る。
従ってイントラネット、インタネット、WWWの到来は、関連情報を探すユー
ザーの支援を目的とした自動サービスやエージェントに、幾つかの基本的問題を
突きつけた。第一、如何なるこうしたサービスも、既存のディレクトリとヤフー
やLycosのような索引にアクセスするウェブブラウザの使用を他のものに置き換
えることに対し、十分な付加価値を今まで提供したことがない。第二、こうした
サービスは末だに、広範で多岐に亘るイントラネットとウエブ情報源から戻った
応答から、関連情報を理解し完全に構文解析することができない。第三、既存の
サービスとエージェントは、フォーマットの変化と数の増大が常に続く情報源に
適応するのが容易でなかった。これは、既存のエージェントが各インタネットサ
ービスとウェブサイトに対し個別の手造りインタフェイスを利用するためである
(イガル・アレンス他、1993、「複数情報源からのデータの検索と統合」、知
的協同情報システムに関するインタナショナルジャーナル、2(2):127−1
58;O.エツィオネ他、1994、「インタネット用のソフトロボットベース
のインタフェイス」、CACM、37(7):72−75;B.クルウィッチ、1
995、「バーゲン・ファインダ・エージェント・プロトタイプ」、技術報告書、
アンダーソンコンサルティング;アロン・Y・レヴィ他、1995、「地球規模
情報システムにおけるデータモデルと照会評価」、知的情報システム誌、ネット
ワーク情報の発見と検索に関する特集、5(2);マイク・パーコウィッツ他、1
995、カテゴリー翻訳;インタネット情報理解のための学習、人工頭脳に関す
る第15回国際合同会議紀要)。情報源から関連情報を検索する方法を自動的に
学習するため、サービスやエージェントは、新しい又は変更されたインタネット
情報源にアクセスできるべきとするのが好ましい。こうしたアクセスは、利便性
がある種の制約された原則に基づいて選ばれた応答フォーマットを有するグルー
プ情報源に限られた場合でも、有利となるであろう。
3.発明の概要
本発明の広範な目的は、「ネットボット」と呼ばれる個人用のネットワークロ
ボットを備えた方法とシステムで、これらの基本的問題を解決することである。
ネットボットは利用可能なネットワーク情報源を追跡し、各々の特殊な情報源の
関係情報と特徴を知り、ユーザーが要求した際にどの情報源が特定の照会に関係
するかを決め、最も関係の深い情報源に照会を送り、各情報源から戻ってきた応
答を理解し、回答を統合しかつ理に適った形でユーザーに提供することで、ユー
ザーの知的アシスタントとして働く。
本発明のネットボットは以下の利点を有する。第一、最も関係の深い情報のみ
をユーザーに返却する。一方で各ユーザーの照会は、最も関係が深いと決まった
情報源のみに送られる。他方で情報源からの応答は、関係するデータ項目だけが
ユーザーに提供されるよう構文解析され理解される。同一で、陳腐で、無関係な
情報は捨てられる。第二、ネットボットは素早い。ネットボットは関係する主な
情報源を並行して探索するので、最速の主な情報源が応答するや否や情報を提供
できる。異なる情報源を不安定にする速度の変動条件にも拘わらず、ネットボッ
トインテグレータは最速の情報源と同じ速さを有する。照会に対する回答を持た
ない情報源がユーザーを遅らせるようなことがないのは、ネットボットがそうし
た情報源を無視するからである。第三、ネットボットは応答フォーマットの変化
と数の増加が常に起こるネットワーク情報源に容易に適応する。ネットボットは
情報源を記述するのに新しい叙述的言語を利用する。情報源の記述は、簡潔で容
易に理解できるので、書くのも維持するのも容易である。
故に本発明の一態様は、ネットワーク上の情報源に効率的にアクセスする方法
を有し、同方法は以下の諸段階の内の一つ以上、即ち、照会に最も関係の深い情
報源を決める段階、各情報源の記述を検索する段階、本記述に基づき照会を各情
報源に適した方法でフォーマット化する段階、フォーマット化された照会を情報
源に送信する段階、情報源から応答を受信する段階、検索された記述に従って関
係のデータフィールドを理解し抽出する段階、関係度の評価で順位付けされて理
に適った方法で、各情報源からの関係データをユーザーに提供する段階の内の一
つ以上を有する。有利なことにこれらの段階はできるだけ並行に実行される。特
に最低限のこととして全ての照会は、干渉する応答を待たずに関係情報源全てに
並行に送信される。
本発明の別の態様は、本発明の一つ以上の段階を実行するためのコンピュータ
システムと装置から成る。ユーザーはネットワークに付随した表示装置を有し、
同ネットワークには複数の情報源も付随している。表示装置はユーザーの照会を
受信しネットボットの応答を表示する。更に表示装置は本発明の方法の一つ以上
の段階を実行する。有利なことに本表示装置で実行されないこれら段階の一つ以
上を、ユーザー装置からの機能要求に応答しネットワークに付随するネットボッ
トサーバコンピュータ上で、実行させることができる。ユーザー装置は随意に、
ディスクを持たず手で保持される端末、パソコン、ワークステーション等多岐に
亘ることができる。
本発明の更に別の態様は、情報源の記述の作成・維持を容易にする新たな言語
と言語実行装置から成る。本言語で重要なのは、データ源から戻された応答中の
関係データフィールドを認識し、こうしたフィールド全てを抽出することができ
る点である。好適実施例で、本言語はアクションステートメントコンポーネント
とレギュラー表示コンポーネントを有する。レギュラー表示コンポーネントは新
たな特徴を備え、その特徴とは、レギュラー表示のモジュール階層記述を作成す
る、情報源の応答に対するパターンマッチの際に認識された変数を正しいサブス
トリングへ結合する、複数の変数結合を有する任意のアクション言語ステートメ
ントを実行する、可能な場合にサブストリングをパックトラックフリー認識する
等のためのものである。
4.図面の簡単な説明
本発明のこれら及び他の特徴、態様、利点は添付の図面、以下の記述、付属の
請求項で更によく理解されよう。
図1は、本発明のネットボットを一般的に示す。
図2A、2Bは図1のネットボットの実施例の具体的なユーザーインタフェイ
スを示す。
図3は、図1のネットボットの具体的な機能コンポーネントを示す。
図4は、図1のネットボットの代替ハードウェア実施例を示す。
5.発明の詳細な説明
開示内容を制限するのではなく明確にするため、本発明のネットボットに関す
る詳細な記述を、ネットワーク情報にアクセスするための方法又はプロセス、前
記方法を実行するためのシステム又は装置、前記方法とシステムを実行を支援す
るのを目的とする新たな言語の点から記述する。
まず本発明のこうした面の概略を、次いで個々のコンポネーントの詳細を述べ
る。
5.1. ネットボット構造の概略
本発明のネットボットに関する方法又はシステムは、ネットワークに取り付け
られた1つ以上のコンピュータと一緒に機能するソフトウェア利便性及びハード
ウェア利便性を有し、ネットワークに取り付けられたサーバ(「情報源」と呼ばれ
る)中の情報にアクセスするユーザーを支援する。図1は、ユーザーとネットワ
ーク化された情報源に対するネットボットの関係を一般的に示す。例えばユーザ
ー1は、標準的なインタフェイス装置例えばモニタ2を通してユーザーコンピュ
ータ3にアクセスする。仕事の間ユーザーは、種々のネットワークリンク例えば
ネットワークリンク4、6を通して、ユーザーコンピュータに取り付けられた情
報源7からの情報を必要とする。多くの情報源があるので、ユーザーは関連する
情報源から必要な情報を得る際に支援を受けるという利益が得られる。この支援
を提供するのがネットボット5であり、ネットボットはリンク6を通じてユーザ
ーのために又は代理として利用能な情報源を認識し続け、情報源に問合わせる。
代替としてネットボット5の一部又は全体を、コンピュータ3上に常駐させるこ
ともできるし、ネットワーク上に分散させてリンク4を通じアクセスされるよう
にしてもよい。類似した種類の情報を持つ情報源7は情報ドメインと呼ばれる概
念的なクラスに分類される。例えば或るドメインを特殊な製品の電子記憶装置の
クラスとすることができ、別のドメインに種々のワールドワイドウェブ(「WW
W」)のキーワード内容に関する情報を含むインタネット索引を持たせることも
できる。
或る好適実施例のネットボットは、3つの主な機能モジュール、ユーザーイン
タフェイス、インテグルータ、I/Oマネジャーから成る。要約して述べれば、
ユーザーインタフェイスモジュールはユーザーと対話し、情報に関するユーザー
の照会を受信し、情報源に取り付けられたネットワークから受信した情報応答を
フォーマット化して表示する。有利なことにユーザーインタフェイスは、現にア
クセスされている特定の情報ドメインに適合している。インテグレータモジュー
ルはユーザーインタフェイスからのユーザー照会を受付け、関係する情報源を選
び、関係する各情報源へ送信するために照会をフォーマット化し、これら情報源
からの応答を受信し、応答を理解し、応答の内の関係ある部分をユーザーに表示
するためユーザーインタフェイスモジュールに戻す。I/Oマネジャーモジュー
ルはハードウェア、OS、ユーザーインタフェイスモジュールとインテグルータ
モジュールのために特有のインタフェイシングするネットワークを実行させ、異
なるハードウェアプラットフォーム、OS、又はネットワークに対するネットボ
ットの接続は、良好にモジュラー化されたコードの変化のみを要求するようにな
っている。
特殊な代替実行の場合、ユーザーインタフェイスモジュールとI/Oマネジャ
ーモジュールの少なくとも一方はなくても構わない。これらモジュールの機能を
他のOSのコンポーネントが実行してもよい。ネットボットに与える利便性を、
開示された一部のみとし他の利便性を与えなくともよい。例えば幾つかの実施例
の場合、単独で又は関係度の順位付けと組み合わせで、照会ルーティングを前も
って形成するネットボットが役に立つ。他の実施例のネットボットは単に照会を
フォーマット化し応答を理解するだけというのも可能である。更に追加のネット
ボットを中に入れたり、ネットボットが追加ネットボットにアクセスするように
してもよい。例えば学習モジュールを入れて、ネットボットに新たなネットワー
ク情報源の特性を自動的に取得させることができる。当業者に知られているよう
に最終的には、上記モジュールが実行する機能を代替的な方法でより多くの又は
より少ないモジュール中に分割してもまとめてもよい。
特定の選択をしないのであれば本発明のプロセスを、完全な手順プログラミン
グ言語例えばC言語、又は完全なオブジェクト指向プログラミング言語例えばC
++を使い、開示のハードウェア構成上で実行させることができる。
ユーザーインタフェイスモジュール
ユーザーインタフェイスモジュールは、ネットボットを如何なる情報ドメイン
に向けるにせよ、ネットボットユーザーインタフェイスに対して共通である重要
な機能を有し、又特殊なネットボットの特殊な情報ドメインに対する適応性も有
している。好ましい共通機能とはネットボットと対話するユーザーの好みを覚え
る能力である。覚えられる好みとして例えば、関連性を確かめるためにネットボ
ットがページを取り出すか否か、照会回数や照会に関連した情報源、表示特性等
を挙げることができる。第二の共通な機能は、照会から受信した情報を逐次に表
示することである。各照会毎にネットボットは多くの独立した情報源に相談する
ことになるので、結果は様々な時に受信される。非同期的に受信した結果を直ち
に表示すると、望まざる結果例えば画面のフリッカーや既表示データの乱雑な再
配置を生じさせることになる。逐次表示は一方で、情報を即座に見たいユーザー
の要望を、他方で関連性に従って分類した全受信情報を包括的に見たいユーザー
の要望を可能にする。
逐次表示戦略はユーザ画面上に1つ以上の窓に対し、幾つかの定義された照会
満足プロセスに関する見解を、これらの窓を操作するのによく見られるある種の
ユーザー制御装置例えば画面ボタンと共に提供するのが好ましい。ユーザーイン
タフェイスモジュールは或る窓に、現に問合わされている情報源のリストを提供
し、各情報源をシンボル例えばネットワークアドレス、アイコン、別の小画面表
示の形で象徴的に表す。次に特定の情報源からの回答が受信されたら、それに関
係する画面表示を輝度、色等を変えて表す。現に受信されている固有の情報項目
の全体数のカウントも表示される。情報源画面表示を随意的にクリックすると次
の窓が開き、本情報源についての情報、情報源から受信された応答の表示、ネッ
トワークを通した情報源へのアクセス等について表示がなされる。
ありふれた制御装置の1つとして、show-me-buttonを備えるのが好ましく、こ
のボタンを作動させると別のウィンドウが表示され、ウィンドウ中に現在受信済
みの全応答が照会に対する関係度の評価に従って順位付けされたリストの形で表
示される。別のよくある制御装置で備えるのが好ましい制御装置は、追加のmore
-buttonであり、このボタンを作動させると前回のウィンドウ表示以後新たに受
信された項目と以前のデータが一体になって再表示される。新たに受信された項
目は、順番又は関係度に従って表示リスト中に加えられ、以前の項目からは例え
ば色又は輝度を目立たせられ、ユーザーが以前の項目を再走査するのを避けられ
るようになっている。データ項目をクリックすると更に別のウィンドウが開き、
項目の情報源、項目を含んだ応答の表示、項目の情報源へのネットワークを通じ
たアクセス等が与えられる。
こうした普通の機能と制御装置に加え、情報ユーザーインタフェイスネットボ
ットは、特定のデサイン、フォーマティング、情報ドメインに適したフィールド
を提供するのが好ましい。例えばインタネットの電子記憶装置の情報ドメインを
比較閲覧するネットボットは、製品名、モデル、価格に関するラベル付フィール
ドを含む特殊なインタフェイス表示を行う。他方、オンラインインタネット索引
の情報ドメインにアクセスするための情報は、照会から取り出したエレメントで
ラベルを付けたフィールドを有するインタフェイスを持つことができる。
或るネットボット実施例の場合、大部分の機能とモジュールはサーバに付随す
るネットワーク上に常駐し、ユーザーはそのサーバに遠方からアクセスする。例
えばユーザーは、ウェブブラウザ例えばネットスケープを利用するWWWプロト
コルでインタネットを通じて情報にアクセスしてもよい。この場合ユーザーイン
タフェイスはHTMLでフォーマット化されたページを確立し、本ページをI/
Oマネジャーがネットワークを通して送信する。図2Aは、オンライン電子ソフ
トウェア記憶装置の情報ドメインに向けられたこのような実施例のユーザー表示
を一般的に示す。図2Aの情報表示は3つのセクションに分割される。セクショ
ン11はタイトルセクションで、この表示は「ショップボット」を回り歩くネッ
トボットからの結果を一般的に示す。ネットボットは特別な入力照会画面を持つ
のが好ましい。セクション12は、WWWアドレス15で表示され現に照会中の
オンライン記憶装置のリストを提供し、このアドレスを選択すると更なる情報又
はWWWアドレスが直接提供される。セクション12の16には、既に照会結果
を返却したこれら情報源が同様に表されている。
セクション13は受信結果を、受信結果がこの特殊情報ドメインに従ってフ
ォーマット化されている限り、主なパソコンOS用のセクションに表示する。返
却された各項目例えば項目16は情報源に関し、製品名、価格、アドレスでフォ
ーマット化される。本実行例の情報表示をコントロールするのは、ウェブブラウ
ザに組み込まれたウィンドウスクロールと制御のファシリティである。本ユーザ
ーインタフェイスは、ネットボットサーバで作られたHTMLフォーマットのペ
ージとして実行され、ウェブブラウザに送信される。
図2Bは、ウェブブラウザベースのユーザーインタフェース実施例のユーザー
表示を示し、WWW索引又は探索エンジンに関する情報ドメインに向けられたも
のである。本表示も一般に3つのセクションに分割される。セクション71はネ
ットボットのタイトルを、セクション72は現在の探索状態を、セクション73
は探索結果を示す。更に詳しく言えばセクション71の表示は、WWW探索エン
ジンが「ウェブクローラ」として知られるいることから選ばれた名前で本ネット
ボットのロゴである「メタクローラ」を表す「MC」と、ある種システムレベル
表示の特徴にアクセスするための制御装置例えばメタクロワーのホームページと
ユーザーのフィードバックページを有する。セクション72の表示は普通の名前
で識別した照会中の探索エンジンと、全体と各エンジンにおける現在の照会状態
と、普通のユーザー制御装置に関するリスト74を含んでいる。一般に円グラフ
アイコン78は、照会を受けた8つの探索エンジンの内7つが既に照会に応答済
みであることを示す。「Lycos」として知られている探索エンジン75のチェッ
クマークは情報項目を含む応答が受信済みであることを示す。「Inktomi」とし
て知られている探索エンジン76の十字マークは、情報項目を含まない応答が受
信済みであることを示す。他方、「Galaxy」として知られている探索エンジン7
7は他の探索エンジンに対して目立つよう表示され、照会に応答していないこと
が示されている。セクション72の共通制御装置は新たに到着した探索結果の表
示を要求するmore-button79と、新たな又は修正照会を送るように要求するmod
ify-search-button80を含んでいる。最後の表示セクション73は探索エンジ
ンから返却された情報項目を含んでいる。各情報項目は別々に表されタイトル8
1、利用できる場合は記述テキスト82、本項目のウェブページのURLを伴っ
たライン83、照会に対する本項目の関係度の評価、ここでは「1000」を含
む。項目を表示するため関係度評価値の高い順でソートする。表示されて項目を
ウェブブラウザが提供する制御装置で閲覧する。本ユーザインタフェイスはネッ
トボットサーバからダウンロードされJavaアプレットとして与えられウェブ
ブラウザで実行される。これにより図2bのインタフェイスは図2Aのものより
も対話能力が優れたものとなる。例えばネットボットのサーバに現在の探索状態
を照会することができ、ユーザがアクションを起さずとも探索状態を更新できる
。
ユーザインタフェイスを主としてウィンドウとボタンの点から述べたが、本発
明は情報の表示とユーザコマンドの入力を提供する他の表示例にも適応可能なこ
とを当業者は認めるであろう。例えばユーザインタフェイスモジュールは画面全
体を制御しウィンドウシステムを妨げずにグラフ表示を提供できる。
ユーザインタフェイスモジュールは、ウィンドウ機能付きのクラスライブラリ
で補完したオブジェクト指向プログラミング言語で優先的に実行される。実行に
際してjava.awtパッケージと共にjava言語を使うのが好ましい。こ
れについてはフラナガン著、1996、「ジャバ・概要」、第5章、第19章を参
照されたい。
インテグルータモジュール
図3は、好適機能モジュール、データベース、ネットボット30全体の機能的
な相互関係を示し、インテグレータモジュール37の機能的な相互関係も特別に
示す。インテグルータは3つの機能、即ち照会ルータ39、ラッパーデータベー
ス40、集計エンジン38から成るのが好ましい。これらのコンポーネントを以
下に紹介し詳しく述べる。ユーザ照会31がユーザインタフェイスモジュール3
4から送られたとすると、インテグレータはまず照会ルータ39を呼び出し、ネ
ットボットに既知のネットワーク情報源を関係度の深い順に順位付けし、N個の
より関連の深い情報源を返却する。次いでインテグレータは最も関連のあるN個
の情報源に関しN個のラッパーをデータベース40から検索する。これらラッパ
ーは本発明のラッパー記述言語で書かれ、情報源とその要件を説明する。集計エ
ンジン38は検索されたラッパーを使いまず、各情報源が認識する形式に照会を
フォーマット化し、次に無関係なフォーマット事項を削除し受信した情報を共通
なフォーマットにするために、各情報源33が返却してきた情報を理解する。次
にこのフォーマット化された情報は集められた後、好適逐次表示方法36に従っ
てユーザへの表示32のためユーザインタフェイスモジュールに送られる。ユー
ザ表示は記憶されたユーザプリファレンス35で制御される。
照会ルータ
挙動の優れたネットボットは乏しいネットワーク帯域と情報源処理資源を、効
率的で、費用の掛からない方法で、要求を満たすよう使うべきであり、同時にユ
ーザの各照会に最良の回答をするのが好ましい。この挙動により使われる資源が
最小になり、個々のネットボットとネットワーク上で同時に機能する他のネット
ボット全てに対し、全体としての性能が最善になる。
照会ルータがこうした挙動をすることが大切な理由は、照会に関係した情報を
持つ可能性の高い情報源にのみネットボットが要求を送れるようになるからであ
る。ユーザ照会から、照会ルータは、与えられた照会に対する各情報源の関係度
を決定し関係の最も深いN個の情報源を返却する。Nはユーザの好みで制御でき
るパラメータであり、最小は1である。この関係度の決定に際し考慮範囲は広め
であるのが好ましい。時として無関係な情報を含むことは、関係のある重要な情
報源を見逃すことに比べたら好ましいことである。更にこの関係度を決めるには
計算を素早く行い、コストの掛かる処理手法を要しないことが好ましい。
好適実施例の照会ルータは、各情報源に対し情報源の関係度を評価する関係度
順位付け数値を計算する。本計算の基になつている考え方が「概念クラス」であ
る。各情報源には前もって概念クラスを付けておく。次に照会ルータは各照会を
関連する概念クラスに移し替え、照会と概念クラスを共有する情報源を探す。概
念クラスへの照会の移し替えはハッシュ機能で行うのが好ましい。
集計エンジン
集計エンジンは、インテグレータモジュールを調整する機能である。本エンジ
ンはユーザインタフェイスモジュールからユーザ照会を受信し、照会に対し最も
関連のあるN個の情報源リストを提供するよう照会ルータに要求する。次にエン
ジンはN個の情報源用のN個のラッパーをラッパーデータベースから検索する。
N個のラッパーに案内された集計エンジンは照会をN個の各情報源が受け付ける
要求フォーマットに翻訳し、N個の要求をネットワーク送信でするようI/Oマ
ネジャに転送する。情報源の中には、照会は返却されるべき形式フォーマットで
あってもよい。情報源から応答が受信されると、集計エンジンは再度適当なラッ
パーに案内され、応答中のデータを抽出し、特定の情報ドメインに関係するテュ
プルフォーマットと呼ばれるデータフィールドのリスト中にデータを置く。随意
的に、各テュプルは特定の情報ドメインに適した方法を使って優先順位を割り当
ててもよい。逐次表示マネジャがデータをユーザに表示するよう最終的に要求
すると、恐らくmore-buttonの要求に応答し、集計エンジンはユーザインタフェ
イスモジュールに、優先順位が決まっているなら優先順位で分類されたテュプル
を渡す。
例えば情報ドメインがインタネットオンラインソフトウェアベンダーに関係し
ていれば、テュプルは、随意的に、関係するフィールド例えば製品名、製造者、
ソフトウェアバージョン番号、必要なOS、価格等を含むことになる。テュプル
の優先順位は価格、納期遅れ、その他ユーザの好みとすることができる。
更に別の例を挙げると情報ドメインが、WWW上で索引ページを一般に利用で
きるWWW探索エンジンに関係する場合、テュプルは、随意的に、関係するフィ
ールド例えば索引付ページ、そのページの「URL」、索引の付いたページに対す
る照会の関連を評価した関係度スコア、記述テキスト等を含むことになる。代表
的な優先順位は、索引付ページに対する照会の関連についてのネットボットの正
規化評価値を基準にすることができる。ネットボットが索引付ページを検索しな
い場合、ネットボットは、各探索エンジンから返却された応答に関する正規化関
連評価値を合計する。探索エンジンが評価値を返却しない場合、デフォルト値を
使う。次に、返却されたスコアが共通な最大値例えば1000を持つようリニア
に調節し次に信頼係数を調整したスコアに掛け、得られた評価値を正規化する。
この信頼係数は数値が0から1の区間の所定の評価値であるか、又は特定情報源
自身の関係度評価値信頼性数値である。例えば信頼係数を情報源の関係度評価値
に関する実際上の経験で決めてもよい。代替としてユーザはネットボット自身が
関係度評価値を決めるためページを検索するようネットボットに要求できる。代
表的実施例で照会単語の一部又は全ての存在を要求するような照会の場合、評価
はページを走査し、実際に存在する照会単語数をカウントし次に全単語が存在す
るする場合に共通最大関係度値となるようスケーリングすることで決める。ある
フレーズの存在を要求する照会の場合、評価値は、例えば、フレーズの各単語と
フレーズ中で次に登場する単語とのページ中における距離の二乗の正規化合計値
を、共通最大値から差し引くことによって決定する。従ってフレーズがページ内
で近接して登場すれば関係度は高いことになり、フレーズの単語がページ上で遠
く離れていれば関係度は低いことになる。
要するに殆どの情報ドメインの場合優先順位を、WWW探索エンジンの例の場
合のように、関係度を計算して決める。しかしある種のドメイン例えばオンライ
ンソフトウェアベンダーの場合、優先順位を応答テュプルの1つ以上の数値フィ
ールドの値から単純に決めることができる。
ラッパーデータベース
情報源とその能力、特に照会フォーマットと応答フォーマットを記述する好適
方法はラッパー呼ばれる簡潔でモジュール的な叙述的記述である。ネットボット
は数百から数千もの情報源の中からアクセスできるので、情報源の記述は簡潔で
要求する記憶スペースは最小であるのが好ましい。更に新たな情報源の作成、既
存の情報源のフォーマット変更が頻繁に起こるから、情報源記述を簡単に維持す
ることが重要である。複雑な手順的記述よりもモジュール的な叙述的記述の方が
こうした維持を容易にする。本発明の一実施例の場合、十分な正規のフォーマッ
トを持つ情報源用の独立したモジュールは、ラッパーを学習できる。
各情報源に関して代表的な実施例の場合、各ラッパーは有利なことに以下の情
報を含んでいる。
1.情報源のユニバーサルリソースロケータ(「URL」)アドレス。
2.情報源の概念クラス。
3.照会引数例えば単語・フレーズから、情報源を尋問するために使われる照会
又はHTML定義形式のフィールドへの移し替えに関する記述(一部、全体、フ
レーズ、関係した照会に対するサイト支援を含む)。
4.他の情報又は無関係なフォーマット事項から関係情報を構文解析できるよう
にするHTMLページレイアウト又は照会応答に関するフォーマットの記述。
少なくとも項目3、4は本発明のラッパー言語で書かれており有利である。
ネットボットは様々な方法でラッパーを検索できる。代替実施例のネットボッ
トは固有のラッパーを様々な方法で提供できる。例えばネットボットがほんの数
個の情報源にアクセスする場合は、ラッパーをネットボット自身の中に組み込む
こともできる。更にラッパーをローカルデータベース中に記憶させるか又は要求
時に中央のデータベースからダウンロードさせることもできる。
本発明のラッパー記述言語(以下、「WDL」と呼ぶ)は、文法と正常な表現
の特徴を組み合わせた叙述的記述により照会、形式、ページの意味的記述を容易
にする。ここで本記述言語の例を掲げる。詳細な記述は後に述べる。シンタック
スは、正常な表現を含む文法を規定する当業者に既知の約束に準拠する。シュワ
ルツ、1993、「学習パール」、Oレーリ&アソシエイツ社、第7章;アホー他
、1986、「コンパイラの原則、手法、ツール」、アジソンウェスレー出版社、
第3.3章を参照されたい。
WWW探索エンジンから返却される代表的なページのWDL記述例を以下に掲
げる。WDL翻訳器はページ記述を使ってページを構文解析し任意の指定された
アクションステートメントを実行する。「stuff」は以下の命令ストリングリテ
ラルが最初に起こるまでの文字列に合致する予約単語であることに注意されたい
。
<page>::=stuff“<dl>”<item>*.*$
<item>::=stuff“<dt>”stuff“=.””(stuff)“.”><strong>”
(stuff)“</strong></a>”stuff“<dd>”(stuff)
“<br>”{output($0,$1,$2,500)}
これはページを記述しており、同ページは一連の零個以上の項目のシークエンス
から成りデータも含む。詳細を述べるとページを指定する構成は、stuff、次に
ストリング<dl>、次に零個以上の項目、次に零個以上の文字(“.”)、次いで最
後にページの終わりである(“$”)となる。一般に一つの項目には(stuff)の記号
が付き、連続した$0、$1、$2で引用される3つの関連フィールドを含んでおり、
このフィールドは項目認識時に、“output()”ステートメントによって出力され
る。詳細を述べるとページを指定する構成はstuff、次にストリング<dt>、次に
更にstuff、次にストリング'='''、次に$0で引用され対象である後述の第1フィ
ールド、次にストリング'''><strong>'、次に$1で引用され対象である後述の第
2フィールド、次にストリング"</strong></a>"、次に更にstuff、次に$2で引用
され対象である後述の第3フィールド、次にストリング<br>となる。括弧内のア
クションステートメント、本ケースなら<item>が一致した時バインディングで指
定した変数$0、$1、$2の出力は、各項目が認識された時実行される。
ネットボットシステム
ネットボットの好適機能構造を、種々の代替例におけるシステムハードウェア
コンポーネントに対して割り当てることができる。どんなケースでも好適代替例
は、どういう機能を割り当てが速い応答とリーズナブルコストを達成するかに依
存する。図4は代表的なネットボットハードウェア実施例と以前の記述に照らし
たオプションを一般的に示す。ユーザコンピュータエレメント51−56、ネッ
トワーク57、情報源58、ネットボットサーバコンピュータ59−61の関係
を示す。コンピュータ51は代替として、プロセッサ、メモリ、種々の付属周辺
装置を含んだユーザコンピュータである。周辺装置としては、表示装置52又は
ユーザ対話のための他の装置、ネットワーク付属装置54、オプションハードデ
ィスク記憶装置53等が含まれる。コンピュータ51には永久記憶装置を持たな
いネットワーク装置、パソコン、ワークステーション、更に強力なコンピュータ
が可能である。コンピュータ51はウィンドウOS、マッキントッシュOS、U
NIXのいずれかの上で作動するパソコン又はワークステーションが好ましい。
ユーザコンピュータ51のメモリには他のソフトウェアと共にローカルネットボ
ットソフトウェア55とローカルシステムコンポーネント56が存在する。ロー
カルネットボットソフトウェアは1つ以上のネットボット機能を実行する。ロー
カルシステムコンポーネントには例えばウェブブラウザを含むことができる。
ネットワーク57は複数の情報源58が付属していればどんなネットワークで
あってもよく、この情報源はテーマ毎に情報ドメインに概念的且つ随意的に分類
することができる。好適実施例のネットワーク57は、ユーザレベルプロトコル
例えばFTP、HTTP等を始めとするTCP/IPプロトコルを支援する公共
のインタネット又は民間のイントラネットである。情報源はサーバコンピュータ
であり、ネットワーク57で支援されたプロトコルを使い、記憶させた情報を利
用できるようにする。この情報には定期刊行物、新聞等のデータベース、特定の
商業機関、教育機関、他の機関が作成した情報又は電子取引のための利便性の情
報等が含まれる。
こうしたネットワークの場合、ネットボットには様々な実施例があり得る。純
粋にローカルな実施例の場合、ネットボット機能全てがユーザコンピュータ51
上のローカルネットボットソフトウェア55中に常駐し、こうした実施例ではユ
ーザコンピュータ51は十分な処理能力と記憶能力を持たねばならない。代替実
施例では1つ以上の開示したネットボット機能を他のネットワーク付属コンピュ
ータに分散させることができる。
例えばコンピュータ59はラッパーサーバであり、ラッパーデータベースから
ラッパーをダウンロードする要求を受け付ける。ラッパーデータベースをメモリ
又はディスクに記憶させることが、簡潔なテキスト記述を記憶・検索できる任意
の管理システムを使い可能である。コンピュータ60は、数百から数千もの情報
源の内から照会を受け付け、最も関係のある情報源を返却することにより、照会
ルーティングを実行する照会サーバである。コンピュータ61はインテグレータ
モジュール機能を実行するネットボットサーバであり、ユーザ照会を受け付け、
多分照会サーバ60とラッパーサーバ59の利便性を使い検索結果を返却する。
これらネットワークサーバの場合、ローカルネットボットソフトウェアは全面的
にウェブブラウザに権限委譲されてもよいユーザインタフェイスを支援するだけ
が好ましい。代替として、照会サーバ59に照会ルーティング要求を、ラッパー
サーバ60にラッパー要求をする集計エンジンを更に含ませることができる。更
にこうした後者の機能の一方又は両方を含ませることができる。
ネットボットシステムの様々なコンピュータに対して本発明の方法を実行させ
るソフトウェアを提供することが、コンピュータで読み取り可能な媒体から、又
はネットワークを通してロードすることのどちらかで可能である。本発明は既知
の磁気媒体又は光媒体例えばディスク、テープ、CD−ROMに適応している。
5.2 I/Oマネジャー
I/Oマネジャーモジュールはハードウェア、OS、インテグレータモジュー
ルのためにネットワーク特有のインタフェイシングを実行させる。ネットワーク
インタフェイシングには、要求を送ること、ネットワーク付随の情報源から応答
を受信することが含まれる。本発明のネットボットの重要なアプリケーションは
インタネットを通じた情報検索である。本アプリケーションの場合、I/Oマネ
ジャーはWWW、ゴーファ、FTP、インタネットツール等を実行させる責任
を負う。随意的に、I/Oマネジャーは、応答時間を改善するためページ及び他
のデータを一時的にキャッシュすることができる。
OSインタフェイシングには、ユーザインタフェイスモジュール用のウィンド
ウ管理の仕事とラッパーデータベースへのアクセスが含まれる。
I/Oマネジャーは市場入手可能なプロトコルスタック、ウィンドウライブラ
リ、例えばJava.awtパッケージ、その他のツールで構成する。設備によ
っては、I/Oマネジャーの多少の機能を、ネットワークに付随するコンピュー
タの他のシステムコンポーネントが実行できる。随意的に、I/Oマネジャーは
複数マシンに対応し、複数スレッドコード又は再入可能コードを要求しないよう
に、又各種プラットフォームに対応できるように設計できる。
5.3.集計エンジン
この好適な実施例では、本発明の集計エンジン構成要素に対して先に特定され
た機能が以下のプロセスで実行される。情報源の探索は、全ての要求が何ら応答
を待つことなく送信されるため、平行して進められる。
1.ユーザーインタフェースモジュールからユーザー照会を受信する。
2.照会の経路指定を行い、ユーザー照会に最も関連の深いN個の情報源を決め
る。
3.N個の関係のある情報源の各々に対し、
A.その情報源に対するラッパー(例えば、情報源それ自体から、或いは局所
又は遠隔のラッパーデータベースから)を探索する。
B.ラッパーに従って、ユーザー照会を情報源の要求するフォーマットに変え
る。
C.翻訳されたコマンドを、情報源へ送信するためI/Oモジュールに転送す
る。
4.応答のリストを初期化して空にする。
5.ユーザー指定の制限時間がくるまで、
A.情報源の応答をI/Oモジュールが受信し、積分器に転送している場合、
i.この情報源に対するラッパーに従って、応答を構文解析して返された情
報を理解し、その場所特有のフォーマットテキスト及び他の関係のないもの
を除き、関係のあるフィールドをテュプルに集める。
ii.各テュプルをテュプルのリストに加え、随意的に優先順位付け、重複
の除去などを行う。
B.次の応答を待つ。
6.制作したテュプルのリストを要求に応じてユーザーインタフェースモジュー
ルに渡すが、これは例えばユーザーのshow-me-button又はmore-buttonの起動に
よって行えばよい。
複数の情報源が照会された場合、ステップ6では、ユーザーに対する各テュプ
ルの重要性即ち関係度を推定して応答の中から抽出、記憶したテュプルの単一の
併合リストを、ユーザーインタフェースモジュールに、そしてそれによりユーザ
ーに提示するのが望ましい。このような推定は、ネットボットが指向する情報ド
メインに特有の方法に従って行うのが望ましい。あるドメインに対しては、テュ
プル内の1つ又はそれ以上のデータフィールドの値から直接、重要性推定を行う
ことができる。例えば電子ショッピングのドメインでは、重要性は、ユーザーの
好みに従って、価格と受渡日だけに関係するであろう。しかしながら大部分のド
メインでは、重要性推定は返されてきた情報の関係度に従って行われ、各情報源
からの応答を評価して決めなければならない。
このような関係度の決定についてのある好適な実施例では、ユーザーはネット
ボットに全ての情報ページを評価させるか否か自体を選択できる。ユーザーが肯
定的に選択すれば、ドメイン特有の分析関数に従って、ネットボットが関係度を
決める。情報照会のドメインでは、規範的分析関数が、返されてきた応答の中か
ら照会ワードの数と位置を見つけだす。キーワード照会では、より多くのキーワ
ードがより高い頻度で現れるものほど、より関係度が高いことになる。フレーズ
ベースの照会では、フレーズのワードが、より接近した間隔で、例えば、1つの
センテンス或いは連続したシーケンス中に現れるものがより関係度が高いとされ
る。他のドメインでも、適切な分析関数が設けられている。
ユーザーがネットボットに応答の評価をさせないように選択すると、ネットボ
ットは情報源から返されてきた関係度の評価に依存することになる。特定の情報
源が関係度に関する評価を返さなければ、デフォルト値が使われる。これらの評
価は次に、例えば0と1000の間に正規化され、信頼度ランキングファクター
を掛けられる。この0から1にランク付けされた信頼度ファクターは、特定の情
報源の自らの関係度評価の信頼性を予め評価したものである。例えば、これは情
報源の評価についての実際の経験から決めることができる。2つ又はそれ以上の
情報源から同じテュプルが返されてきた場合、これら全ての情報源からの関係度
の値は結びつけられる。随意的に、各情報源から返された関係度評価は正規化領
域で一様な分布となるように調整される。
ある特定の詳細な実施例では、この決定は以下のプロセスに従って行われる。
先ず照会の経路指定はK個の情報源、即ちkを1からKまでとしてsource_k、
を決めており、その信頼度ランク、即ちcrank_k、を返す。これらの情報源は各
々照会を受け応答を返しており、情報テュプル、即ちjを1からlength_kまで
としてtuples_j、のK個のリストをこれらの応答から抽出している。ネットボ
ット分析に関するユーザーの好みは確認フラグVに記録されている。変数t.scor
eがテュプルtに対する複合関係度評価を表し、変数t.sourcescore_kが、テュ
プルtが抽出されてきた応答に対する情報source_kから返されてきた関係度評
価を表す。
インプット:K個の情報源と信頼度ランクが対になったリスト(source_k、
crank_k)、照会経路指定システムより入手;K個のテュプル、
tuples_k、長さ、length_kの注文リスト、情報源、source_k
より入手;確認フラグV(ブールの)、ユーザーの好みから入手。
アウトプット:関係度でソートされた全てのテュプルの併合リスト
当業者であれば、これらのプロセスに、同じ機能を同じやり方で実行するルー
チン変更及び強化の修正を加えうることを理解できるであろう。特に、正規化領
域に対して、及び情報源関係度評価に対するデフォルト値に対して他の値を使う
こともできる。本発明はそのようなルーチンの変更も含んでいる。これらのプロ
セスはC++言語で実行するのが望ましいが、他の手順言語或いはオブジェクト
指向プログラミング言語で実行することもできる。
5.4.照会ルーター
照会ルーターは、インプットとしてワード又はキーワードのリストとして表現
されたユーザー照会を受信し、アウトプットとしてインプット照会に対してふさ
わしいと思われる関係度の順に並べたN個の情報源のリストを返す。これらの情
報源の決定は早さと包括度に対して最適化される。時には、関係のない情報源が
含まれ、関係する情報源が落ちることがあってもかまわない。
好適な照会ルーターは、関係するコンセプトを情報源と照会ワードに割り付け
る原理に基づいている。先ず、1つ又はそれ以上のネットボットが指向する1つ
又はそれ以上の情報ドメインの情報源を記述するために、1セットのコンセプト
が選ばれる。そのドメイン内の各情報源に対して、選択されたコンセプトに対す
るその情報源の関係度が判定される。更に、考えられる照会の中に現れうる各ワ
ードが、選択されたどのコンセプトがそのワードに関係するのか決めるために検
討される。こうして、照会のワード又はキーワードを受信すると、それらのワー
ドに関係するコンセプトが決められ、次にそれらのコンセプトに関係する情報源
が求められる。個々の情報源の関係度を照会の全てのコンセプトと結びつけるこ
とにより、各情報源のランク付けされた重要度が決定される。フレーズベースの
照会の場合は、その照会形式に対して別々のデータを生成して取り扱うのが望ま
しい。
このプロセスを実行する際には、関係度情報を含む4つの表を活用するのが望
ましい。以下の説明において、Wは考えられる照会の中に現れうるワードの数よ
り幾らか、例えば10%大きく選ばれ、Cは選ばれたコンセプトの数であり、S
は情報ドメインの中の情報源の数である。WORD2CONCEPT[]はC個のビットのW個
のベクトルの表であり、ワードに対するベクトルのC個のビットは、C個のコン
セプトの内どれがそのワードに関係するかを示す。CONCEPT2SOURCE[][]はC対S
の表である。C個のコンセプトとS個の情報源各々に対して、この表の対応する
項目は、その情報源のそのコンセプトに対する関係度値を含んでいる。例えば、
項目<i,j>が5に等しい場合、j番目の情報源は、i番目のコンセプトに関して
関係度重み付け5となる。CONCEPT2SOURCE[][]はワードで探索する場合に用いら
れる。フレーズで探索する場合は、CONCEPT2PHRASE[][]の表が同様に、情報源に
対するコンセプトに関係する。最後に、DEFAULT-RELEVANCE[]は、S個の情報源
の各々に対するデフォルトの関係度重み付けを有する。
好適な実施例では以下のプロセスが実行される。
1.S個の情報源各々に対して、RELEVANCE[j]=DEFAULT-RELEVANCE[j]にセッ
トする。
2.ユーザー照会の中の各ワードに対して
A.ワード上でハッシュ関数を計算し、ゼロとWの間の数Mを得る。このプ
ロセスには適切であればどのようなハッシュ関数を使ってもよい。規範的ハ
ッシュ関数はセジウィックの1990年、「Cにおけるアルゴリズム」、アデ
ィソン・ウェズリー出版社、第16章に述べられている。
B.CビットベクトルVをWORD2CONCEPT[M]に等しくする。
C.V内の全てのコンセプトに関する関係度を、以下のようにして、情報源
に関する関係度に結びつける。
"+"以外の単調増加関数を使って各コンセプト関係度を最終関係度に結びつ
けることもできる。
D.ユーザー照会の中の全てのワードに対する関係度を互いに、例えば互い
に加え合わせるなどして、結びつける。
3.フレーズによる探索の場合は以下のことを追加する。
A.ユーザー照会フレーズの全ワードを鎖状に連結する。
B.フレーズ上のハッシュ関数を計算し、Mを得て、CビットベクトルVを
WORD2CONCEPT[M]に等しくセットする。
C.V内の全てのコンセプトに関する関係度を、以下のようにして、情報源
に関する関係度に結びつける。
4.情報源をそのRELEVANCEに基づいてソートし、N個の最も関係度の高い情報
源を返す。
当業者であれば、これらのプロセスに、同じ機能を同じやり方で実行するルー
チン変更及ひ強化の修正を加えうることを理解できるであろう。本発明はそのよ
うなルーチンの変更も含んでいる。
このプロセスはC++言語で実行するのが望ましいが、他の手順言語或いはオ
ブジェクト指向プログラミング言語で実行することもできる。多数の、例えば数
万の情報源を含む照会ルーターの場合、照会ルーターは、要求されるデータ構造
のサイズ及び照会経路指定の処理用件に適合するため、サーバーコンピューター
上でサーバープロセスとして実行されるのが望ましい。
表WORD2CONCEPTの規範的構造は、情報ドメイン又は範囲を特徴付けるコンセプ
トの選定と、ユーザー照会に現れそうなワード又はフレーズの決定から始まる。
各コンセプトに対して以下の動作が実行される。そのコンセプトの関係するワー
ド及びフレーズに文字列配列KEYS[]及びPHRASES[]が割り当てられる。そして次
のプロセスが実行される。
これらの動作は選択されたコンセプト各々に対して繰り返し行われる。代わり
に、開放又は閉鎖ハッシングを使って、コンセプトに整合する正確な文字列を保
持するため、コンセプト情報を文字列情報と一緒に格納しておくこともできる。
5.5 ラッパー定義言語
本節は最初にラッパーでのWDLの使用に関する紹介的な資料を提示する。次に
、WDLの2つの主要なコンポーネント−動作言語と正規表現言語−を詳細に説
明する。最後に、WDLの例証的な実施形態を提示する。
ラッパーとは、情報発生源およびNetBotがこの情報発生源とどのように対
話すべきか、特にこの譲歩発生源に対する要求をどのようにフォーマッティング
してこの情報発生源からの要求をどのように理解すべきか、ということに関する
記述のことである。NetBotはネットワーク上の数百から数千の情報サイト
と対話する必要がある。この対話は2つの要件を提示する:第1の要件はWDL
でエンコーディングされた表現を用いる情報発生源の記述のコンパクトな格納で
あり、第2の要件はこの記述を用いて情報発生源を理解することである。現在の
ところ、例えばnetbotは発生源に対する要求をフォーマッティングして、
無関係なフォーマッティング情報を無視しながら発生源から返送されたページか
ら有用な情報を解析する必要がある。情報発生源がさらに機能的になるに連れて
、netbotは、要求と応答の単なる対より複雑な対話を処理しなければなら
ない。したがって、ラッパーとWDLは次の特徴を有するのが望ましい:
1)WDL記述が、例えばC++の場合より書きやすいことである。新しい情報
発生源が頻繁に作成され、既存のサービスが自身のフォーマットを頻繁に変更す
るのでこの特徴は重要である。オプション機能として、ラッパー記述は、応答が
正規の事前決定されたフォーマットを有する情報ドメインで機械学習技法を用い
て自動的に発生することができる。
2)ラッパー記述が小さいことである。記述が小さければ、例えば、低速のネツ
トワーク接続上でも、ローカルモードでデータベースに記憶したり、クライアン
ト側で実行中4のnetbotにサーバーから迅速に伝達したりできるのでこの
特徴は重要である。オプション機能として、情報発生源は自分自身のラッバーを
要求のあり次第供給できる。
3)WDL記述は、情報発生源から返送された情報を迅速に解析する高速有限状
態オートマトン中に自動的にコンパイルすることができる。
4)ラッパーをWDLで用いることによって、netbotは将来において新し
いタイプの情報フォーマットと新しいタイプの情報サーバー対話を採用すること
ができる。
ラッパー記述は少なくとも2つのプロセス、すなわち第1に情報発生源から情報
、例えば適切にHTMLでフォーマッティングされたページを発生源からどのよ
うにフェッチするかという情報を要求するプロセスと、第2に返送されてきたペ
ージをどのように解析して関連データを抽出するかというプロセスを指定するの
が望ましい。第1のプロセスを実行するために、WDLは表現とステートメント
を拡張することが可能な言語である動作言語コンポーネントを含んでいる。第2
のプロセスを実行するために、WDLは、正規の表現パターン整合機能を指定す
る拡張的で新規な手段である正規表現言語コンポーネントを含んでいる。
代替実現方法では、netbotは、当業者には周知の代替のパターン整合機能
を利用することができる。例えば、正規表現コンポーネントの代わりに文脈自由
言語指定(「CFL」)を用いてもよい。この場合、WDLは、例えばVACC
などのコンパイラコンパイラの構造で周知の技法に従って実現可能である。しか
しながら、可能であれば、指定が簡単で実行が迅速であるので、正規表現パター
ン整合を実行するのが望ましい。正規表現コンポーネントの例
正規表現は、多くの情報発生源から返送された情報のフォーマットを記述するの
は便利である。WDLの正規表現コンポーネントは、先行技術による正規表現整
合機能をいくつかの新規な方法で増大させるものである。第1に、このコンポー
ネントとによって、動作言語のプログラミング言語機能、例えばステートメント
と表現を、正規表現が認識されたときにしかもこの認識全体の間に認識された部
分的整合で決定されたままの変数結合によって実行することができる。第2に、
好ましい実現方法は正規表現をコンパクトで効率的な有限状態オートマトン中に
コンパイルする。第3に、このコンポーネントによって、ネスティング方式で複
雑な正規表現を効率的で直感的に表現し易くなる。第4に、このコンポーネント
は効率的な後戻り自由パディング機能を有している。
例示のラッパーは、インターネット情報探索エンジンに適当なものの後に続いて
WDLで書かれ。各部分の意味は、以下に示すように「/*」と「*/」で囲ま
れたコメント中で説明される。
/*入力照会語のリストは、情報発生源に対してラッパーを実行中の集合エンジ
ンから
ラッパーに渡される。動作言語のargV()関数が入力照会語のリストを抽出す
る。*/
/*情報発生源に送出される子定の要求は、3つの分離したストリング:すなわ
ち1つ目の、情報発生源のインターネットURLアドレスと初期照会フォーマッ
トストリング;2つ目の、探索すべき照会語;および3つ目のこの情報発生源の
照会フォーマットストリングの残余を連結して計算されるが、これは動作言語の
演算子「.」で示され、最後に*/となる。
/*フェッチ動作ステートメントがこの照会をネットワーク伝送のためI/Oモ
ジュールに転送し、次に、HTMLフォーマッティングされた応答を待つ。*/
/*HTMLフォーマッチング済み応答テキストは次の正規表現文法を用いて解
析される。*/
/*この例示の発生源からの応答は、ゼロ以上の情報項目を包含するページから
成っている。これは、<page>が<item>を引用する<page>と<item>の表現によって
正規表現言語で階層的に記述される。特に、ページは、テキストの集合体とそれ
に続くストリング"results returned..."さらにそれに続くゼロ以上の項目を含
む。*/
/*各項目は、無関係テキスト、HTMLフォーマッティングコードおよび関係
データのフィールドから成っている。関係データフィールドは括弧で囲まれてい
て、順に$0,41および$2によって示される。これらのフィールドは、<ite
m>が認識されて動作言
語の「output」ステートメントが実行されると、番号500と共に組(tuple)と
して出力される。<item>の定義の特定的な意味は次に節で明らかになる。
5.5.1 WDLコンポーネントの記述
本節は動作言語コンポーネントとWDLの正規表現コンポーネントの好ましい
特徴を説明する。本発明はここに提示する記述に限られるものではない。この記
述は、正規表現を含む、文法を説明する周知の方法を利用したものであり、当業
者には、実質的に等価な記述が多くあることが認識されよう。このような等価な
記述は、記述された構文要素を名称変更した結果得られるものまたは周知の文法
的変換を提示された構文に適用した結果得られるものを含むがこれに限られるわ
けではない。本発明はまた、これらの実質的に等価な記述を包含する。動作言語コンポーネント
動作言語は次のある種の好ましいベースレベルの特徴を含む:割り当てステート
メント;「if」構成や「while」構成などのシーケンシングステートメン
ト;組出力ステートメント;ストリング表現および数表現;ストリング演算子、
数演算子およびブール演算子;ならびにある種の組み込み関数である。等価セマ
ンティック表現的機能を持つベースレベルの動作言語は、特徴を少し変えて選択
することによって構成することができる。例えば、whileステートメントは
gotoステートメントを交換できる。本発明による動作言語コンポーネントは
、ここに開示するセマンティックスのこのような周知の等価公式化を含む。さら
に、オプション実施形態では、ベースレベルの好ましい特徴は、「for」ルー
プや「repeat」ループなどの追加のシーケンシングステートメント;ユー
ザー定義された関数;CまたはC++で見られる追加のストリング表現、数表現
およびブール表現ならびに演算子;追加の組み込み関数;ならびに配列変数;な
どの追加的特徴によって増強することができる。このような追加の特徴は周知の
方法で好ましいベースレベルの言語に追加することができる。例えば、1986
年のアジソン・ウェスリー出版社(Addison Wesley Publishing Co.)の、アホ(Ah
o)らによる「コンパイラの原理、技法およびツール」(Compilers Principles,T
echniques,and Tools)を参照のこと。
好ましいベールレベル動作言語の構文は標準記法で表される次に文法で与えられ
る。
このようにして、動作言語コンポーネントはステートメントと表現で定義される
。ステートメントは:新しい値をスカラー変数に割り当てる割り当てステートメ
ント;ifステートメント;whileステートメント;“{“and”}“で囲
まれた他のステートメントのシーケンスである複合ステートメント;または出力
ステートメントのいずれかである。出力ステートメント例外のステートメントは
、例えばC、C++またはPascalなどの他の手続き型プログラミング言語
の場合と同様に機能する。ifステートメントとwhileステートメントの場
合、条件付きアーギュメントは、もしそのアーギュメントが非ゼロ数か非空スト
リングである場合、すなわち空ストリング”“でない場合には真であると見なさ
れる。OUTPUTステートメントによってラッパーは、情報発生源からの応答
中の整合した情報をそのラッパーを実行中のnetbotモジュールに返送する
。例えば、ステートメンド"output(arg_1,...,arg_n)"を実行すると、組<arg-
1,...,arg_n>がラッパーからnetbotに返送される。
表現としては:引用符で囲まれた記号ストリングであるストリング定数;浮動小
数点数;ドル符号の後に続く名称または整数である変数名;2つの前後のサブ表
現に適用されるインフィックス演算子;"(“and”)"で囲まれるサブ表現;また
は組み込み関数に対するコール;などがあり得る。
さらに、この言語は、次の演算子を含む、手続き型プログラミング言語における
演算子基準を与える:算術演算子(“+”、“−”、“*”“/”);数比較演
算子(“<”、“=”、“>”、“<=”、“>=”、“!=”);ストリング
比較演算子(“lt”、“eq”<“gt”、“le”、“ge”、“ne”>
;ストリング連結演算子(“.”);ブール演算子(“&&”、“||”、“!
”)。これらの演算子は次のセマンティックスを有している:
1)+、−、*、/:囲まれた表現に対して示された算術演算を実行する。
2):前後のストリングを連結する。
3)==、<=、>=、<、>、!=:前後の数を指示されたように数比較して
、その結果に従って浮動小数点値0.0または1.0を返送する。
4)eq、le、ge、lt、gt、ne:前後のストリングのASCIIコー
ドを指示された通りにキャラクタ毎に比較して、その結果に従って浮動小数点0
.0または1.0を返送する。
5)!:アーギュメントが0またはストリング“”である場合は1を返送し、そ
うでなければ0を返送する。
6)&&:第1のアーギュメントの値を求め、それがゼロまたは“”であれば、
停止してその値を返送し、そうでなければ第2のアーギュメント後を求めて後者
の値を返送する。
7)||」第1のアーギュメントの値を求め、それがゼロでも“”でもなければ
、停止してその値を即座に返送し、ゼロか“”であれば、第2のアーギュメント
の値を求めて後者の値を返送する。
これらの演算子は次に示す最高位から最低位に至る優先順位を有する:
1.括弧内の表現(最高位優先順位)
2.*、/
3.+、−、.
4.==、<=、>=、<、>、!=、ne、eq、le、lt、gt、ge
5.!(ブール代数の否定(not))
6.&&(ブール代数のアンド(and))
7.||(ブール代数のオア(or))(最低位優先順位)
すべての演算子は、関連付けられる状態に置かれている。
変数宣言は必要ない。第1に、動作言語においては、変数はすべて、「$」に先
行されることによって区別される。正規表現によって整合されるサブストリング
を示すこれらの特殊変数は「$」とそれに続く整数から成り、例えば$0や$1
となる。第2に、実行時間になると、ストリングタイプと浮動小数点タイプ間で
自動的なタイプ変換が動的に実行される。演算子が数値を期待しながらストリン
グを得た場合、そのストリングは、数のASCII表示を内部小数点表示に変換
するCライブラリ関数atof()をコールすることによって数値に変換される
。演算子がストリングアーギュメントを期待しながらも数値を得た場合、その演
算子はCライブラリ関数sprintf(...,“%I”)を用いて、その数値をス
トリングに変換する。第3に、まだ割り当てられていない参照済み変数は適宜、
デフォルト値として0または“”を設定される。
動作言語コンポーネントはいくつかの組み込み関数を有している。次に示すのは
好ましいベースレベル組み込み関数である。
1)argc()、argv():netbotは、ラッパーを実行すると、そのラッパーに
1つ以上のアーギュメントを渡すことができる。これらは通常は、ユーザーから
供給された照会パラメータ、照会語または照会キーワードを表している。これら
のアーギュメントは、ラッパーに渡されたアーギュメントの数を返送する関数ar
gc()およびn番目のアーギュメントを返送するargv()によってラッパー言語内か
らアクセスされる。
2)fetch():この関数はI/Oモジュールとインタフェースして、情報発生源
のネットワークアドレスおよびたぶんネットワーク上の照会パラメータを包含す
るストリングを適切なプロトコルに従ってアドレス指定済み情報発生源に転送し
、情報発生源の応答を包含しているストリングを返送することが望ましい。ラッ
パーはこの関数を用いて、情報発生源を照会してページを検索する。
3)parse(<string>、<nonterminal>):この関数は、ストリングを取って、WD
Lの正規表現言語コンポーネントで定義されているように、それを所与の<nonte
rminal>に対応する正規表現に整合させようと試みる。この関数は、その整合が
成功であれば「1」を返送し、そのストリングが正規表現と整合しなければ「0
」を返送する。ラッパー箱の関数を用いて、情報発生源の応答を解析する。
ある例示のラッパーは次に示すシーケンスをなす動作言語ステートメントを含ん
でいる。第1はargc()とargv()を用いた1連のステートメントであり、これによ
ってユーザー照会パラメータを獲得して、例えば$urlなどのストリング変数を、
適切にフォーマッティングされた照会と共に情報発生源で適切なページのURL
を包含するストリングで初期化する。次に、割り当てステートメント"$html-tex
t=fetch($url)"が、照会応答ページを別のストリング変数、例えば$html_text中
にフェッチする。最後に、関数parse($html_text、<page>)が、返送済みhtmlテ
キストを、シークされたページを記述している正規表現<page>と適合させようと
する。正規表現言語
WDLの正規表現(「reg-exp」)コンポーネントはは正規表現を参照にしてスト
リングを整合させる。正規表現は、広範囲にわたる情報発生源から返送された応
答のフォーマットを記述するのに便利である。しかしながら、本発明によるreg-
exp言語は、関連のフィールドを、AWKやPerlなどの先行技術による言語
やシステムよりも迅速でしかも便利なように抽出できるようにこの情報を整合さ
せることが可能である。正規表現コンポーネントは、先行技術による整合システ
ムに伴う問題を解決し、これによってnetbotによる使用を可能なものとす
る新規な機能を含んでいる。
第1の新規な機能によって、正規表現の指定を、文法における非端末の1群の規
則に従って言語を指定する文脈自由文法に類似した方法で断片に分解することが
できる。例えば、1986年のアホ(Aho)らによるアジソン・ウェスリー出版社(
Addison Wesley Publishing Co.)の4.2節を参照されたい。先行技術によるシ
ステムでは必要とされるように、1つの正規表現を記述して情報発生源からのペ
ージのフォーマットを表すとしばしば、非常に大きくて煩わしい表現となってし
まい、書いたり、理解したり、保持したりするのが困難である。既存のシステム
に伴うこの問題を解決するために、reg-exp
コンポーネント、正規表現のコンポーネントの1群の規則に従って正規表現を指
定する。これらのコンポーネントは非端末であるとラベル付けされる。しかしな
がら、文脈自由文法とは対照的に、reg-expコンポーネントにおけるこの1群の
規則は反復的であっても相互反復的であってもならない。言い換えれば、特定の
非端末の規則は、その特定の非端末に関する他の規則を直接的にも間接的にも引
用することはできない。
次に、1群の規則と非端末を例として示す。情報応答を定義するトップレベル
の非端末は以下のようになり得る:
これは、応答がヘッド、次に続く0以上の項目および次に続くテールから成るペ
ージであることを指定する。キーワード「END」は規則の終了を示す。この規
則の右側(RHS:right-hand side)にある第2レベルの非端末すなわち(head>、
<item>および<tail>は次のように自身の規則によって定義される:
これらの規則を実行するには、reg-expコンポーネントのコンパイラは<head>、<
item>および<tail>のRHSを<page>のRHSに代入する。その結果は、ランパ
ーが次の大きくて煩わしい複合トップレベル規則を包含しているかのようである
:
第2レベルの規則が自身のRHSにさらなる非端末を包含していた場合、コンパ
イラは、複合規則のRHSにもはや非端末がなにもなくなるまで、トップレベル
の規則を適切に代入し続ける。反復も相互反復もないので、この代入は限りがあ
る。
第2の新規な機能によって、後戻りすることなくストリング中のキャラクタのグ
ループをスキップすることができる。先行技術による正規表現整合システムでは
、この非常に一般的な要件は、多くの後戻り点をスタック上に記憶しなければな
らないような方法で
実現され、そのため、大幅に後戻りすることになりかねない。例えば、任意のキ
ャラクタが何回発生しても整合する先行技術によるPerlのイディオム“.*”
、または最初に数字に遭遇するまであらゆる非数字キャラクタを整合するPer
lイディオム“[^\d]*\dがあると、整合中に大幅に後戻りすることになりか
ねない。これは非効率的であり好ましくないがその理由は、情報応答は迅速に解
析するのが望ましいからである。例えば、1993年のシュバルツ(Schwartz)に
よる、オライリー&アソーシエーツ社(O'Reilly & Associates,Inc.)の「Pe
r1を学ぶ」(Learning Perl)の第7章を参照されたい。この問題を解決するた
めに、reg-expコンポーネントは次に示すように、この共通イディオムの単純で
直接的な構文を導入する:
ここで、「stuff」は子約された語である。スタッフ(stuff)は、ストリングリテ
ラルでなければならない「literal-string」リテラルに最初に遭遇するまで、た
だしこの遭遇時点は含まれないが、現行のキャラクタから始めてすべてのキャラ
クタを整合させる。この構成によって、この共通した重要なイディオムをコンパ
クトに、効率的に、そして後戻り無しで実現することができる。
第3の新規な機能によって、関連のデータフィールドをどんなに複雑な正規表現
からでも抽出することができる。動作言語ステートメントは、非端末が整合済み
でありその非端末が整合する度に変数が結合している場合はいつでも、実行目的
で非端末のRHSに埋め込むことができる。この例の場合、<item>の定義は次の
ように拡張可能である:
<item>が整合しているときはいつでも、括弧内のスタッフによって整合されて
いるストリングに$0が設定され、次に出力ステートメントが実行される。この
場合、$0は、"Data:"と復帰改行キャラクタの間にあるキャラクタであれば何
にでも結合される。先行技術によるシステム、例えばAWKおよびPerlはこ
のような機能を有していない。これらのシステムは、$0,$1などの変数を設
定するとはいえ、<page>を定義する1つの複合正規表現を整合させた後で設定す
るだけである。言い換えれば、ページ全体は変数が設定される前に整合される。
したがって、AWKおよびPerlでは、<page>
上に2つ以上の<item>があると、最後の<item>以外のすべて項目中の関連データ
フィールドが失われる。WDLのreg-expコンポーネントは、1つの非端末整合
に対して1回実行して、各回別の変数を結合して、複数回にわたって実行される
動作の指定を許可することによってこの問題を解決している。
ここでreg-exp言語の記述に目を向けると、この記述は次に示すある種の好まし
いベースレベルの特徴を含んでいる:非端末正規表現の定義;動作言語ステート
メントの正規表現規則中への埋め込み;交代と繰り返しを表現する演算子;およ
びリテラルストリング整合である。等価のセマンティックな表現機能を持つ好ま
しいベースレベルのreg-exp言語を、特徴を少し変えて選択することによって構
成でき、またWDLのreg-exp言語コンポーネントがこのような周知の等価物を
含んでいることが当業者には明らかであろう。特に、reg-exp言語は、以下の規
則に適用される変数名称変更よ周知の文法変換を含んでいる。
オプションの実施形態では、この好ましいベースの特徴は、特殊論理和(“||
”);任意の整数の繰り返し;キャラクタクラスへの整合;ローカルストリング
メモリ;およびアンカー用キャラクタ;などの追加的特徴によって強化すること
ができる。このような追加的特徴は、上記の代替例をストリングが解析されると
同時に整合させる特殊論理和を例外としてすべて標準の特徴である。それと対照
的に、正規倫理和は、シーケンスでリストされている後戻りで代替例を成功する
まで整合させる。これら追加的特徴は周知の方法でベースレベルの言語に追加す
ることができる。例えば、1993年のシュバルツ(Schwartz)による、オライリ
ー&アソシエーツ(O'Reilly & Associates,Inc.)の「Perlを学ぶ」(Learni
ng Perl);1986年のアホ(Aho)らによる、アジソン・ウェスリー出版社(Addi
son Wesley Publishing Co.)の「コンパイラの原理、技法およびツール」(Compi
lers Principles,Techniques,and Tools);ホプクロフト(Hopcroft)らによる
、アジソン・ウェスリー出版社(Addison Wesley Publishing Co.)の「オートマ
トンの理論、言語および計算の入門」(Introduction to Automata Theory,Lang
uages,and Computation)を参照。
さらなる代替実施形態では、宣言を追加して後戻りを制御し、これによって正
規表現整合の性能を向上させることができる。規則のある部分が後戻りを必要と
しないことが分かっている場合、その部分は、コンパイラとインタープリタに、
後戻りの条項無しで
有限状態マシンを発生するように命令する宣言と共にブラケット(大括弧)に入
れることができる。これによって、その規則部分をそうでない場合より効率的に
整合させることができる。
この好ましいベースレベル動作言語の構文は、標準の記法で表現された次の文
法によって与えられる:
簡単に言うと、規則は、特定の正規表現を認識するために特定の<nonterminal>
を指定する。正規表現は:論理和(“|”);シーケンス;ゼロ以上の繰り返し
(“+”);1つ以上の繰り返し(“+”);およびゼロまたは1つの繰り返し
(“?”);を含む。項としては:二重引用符で囲まれたリテラルストリング;
特殊記号スタッフ;括弧内の正規表現;別の定義された規則でなければならない
非端末;または動作言語で書かれたステートメント;が可能である。ラッパー記述言語
完全なラッパー記述として次のようなものがある:
WrapperDescription::=Statement Rule*
このように、好ましいWDLエンティティは、通常は1シーケンスをなす動作言
語ステートメントおよびその後に続く、情報発生源から返送された応答を整合さ
せるための正規表現を定義するreg-exp言語で書かれた規則のオプション集合を
含んでいる。
完全なラッパー記述を実行するために、ステートメントはその後に記述されるよ
うに実行される。一般的には、ステートメントは、とりわけ組み込み関数fetch(
)およびparse()に対するコールを包含している。parse()組み込み関数は、その
おのおのが正規表現を定義する追加規則によって定義される非端末を呼び出すこ
とによってfetch()によって返送された応答を整合しようとする。正規表現整合
が成功すれば、動作言語ステートメントはすべて一般的には正規表現中に埋め込
まれて実行され、一般的には、下位レベルの非端末に埋め込まれている一部の動
作ステートメントが、整合が発生する毎のオペランド結合によって複数回実行さ
れ、parse()関数が値“1”を返送する。整合が不成功の場合、埋め込まれてい
るステートメントはなにも実行されず、parse()関数は値“0”を返送する。
5.5.2 WDLコンポーネントの実現方法
WDLの好ましい実現方法を次の見出しで本節において説明する:(1)正規表
現規則の解析、(2)正規表現のための中間コードの発生、(3)正規表現の実
行時間解釈および(4)動作言語コード発生と実行時間解釈である。この好まし
いWDL実現方法は例示目的であることが理解されよう。ここに述べる実現方法
に対して代替例が存在することが当業者には周知である。例えば、ここに述べる
プロセスは、例えば変数を変え、個別のステップの順序を変えるなど別方法で実
現することが可能である。また、これらのプロセスによって代替のアルゴリズム
を実現して、例えばストリング整合などの同じ効果を達成してもよい。さらなる
例の場合、ここに述べる実現方法は、さまざまな中間コードを解釈するプロセス
を開示している。別の中間コードを用いても良い。正規表現言語の場合、例えば
、後者状態の後戻りスタックを維持する義務を避けるために後者状態の変数リス
トを有するノードなどのさまざまなノードが考えられる。動作言語の場合、開示
されたアドレスベースの中間コードの代わりに、等価的に、逆ポーランドスタッ
クベース中間コードを用いることができる。最終的に、解釈する代わりに、開示
されている構文指向の方法を用いて機械語に直接にコンパイルすることができる
。
この節の残余では、ラベル“1”を有し、データ“d”を包含し、子ノード“c
_1,…、c_n”を有する解析ツリーノードは“1<d;c_1,…、c_n
>”で示される。これらの解析ツリーノードは、例えばノードデータを包含する
データ領域に対する
ポインタなどの周知の方法で構成し参照することができる。正規表現規則の解析
ラッパー記述をコンパイルする好ましい実現方法における第1のステップは、re
g-exp言語の規則及び動作言語のステートメントを解析することである。このス
テップへの入力は、整合すべき正規表現を定義するreg-exp言語の規則である。
このステップからの出力は、1集合をなす解析ツリーという形態で与えられる中
間コードであり、1つの解析ツリーがトップレベルの規則に対応し、追加の解析
ツリーが各下位レベル規則に対応している。
ある好ましい実施形態では、このプロセスのステップは、反復的降下パーサー(p
arser)に従って解析し構文指向のトランスレータに従って解析ツリーを出力する
ことによって実行される。reg-exp言語の前述の構文に対する反復的降下コンパ
イラは当業者には周知である。例えば、1986年のアホ(Aho)らによる、アジ
ソン・ウェスリー出版社(Addison Wesley Publishing Co.)の「コンパイラの原理
、技法およびツール」(Compilers Principles,Techniques,and Tools)などの教
科書の2.4節と4.4節に例付きで明瞭に開示されている。解析ツリーの構文
指向構成は5.2節で例付きで説明する。本発明はこの好ましい実施形態に限ら
れるものではない。代替の解析技法が技術上周知であり、本発明は、LL解析や
LR解析などの技法を用いる実施形態を包含するものである。第4章のアホ(Aho
)らによる資料を参照されたい。本発明はまた、技術上周知の中間コードを発生
させる代替技法を包含している。第5章のアホ(Aho)らによる資料を参照された
い。構文指向分析の指定には、各構文規則がパーサーによって認識されたときに
作成される解析ツリーノードの規則が含まれている。前述のreg-exp構文規則の
おのおのに対して、規則の非端末をラベル付けされている次のノードが作成され
る。
1.Rule:ノード"Rule<nonterminal-name;node-for-regexp>"を作成する。これ
は、その非端末名をラベル付けされた規則全体のノードである。
2.Regexp:ノード"Alternatives
<node_for\sequence_1,...,node_for_sequence_n>"を作成する。これは、リスと
された順序で整合するか否か試験され、最初の成功した整合が返送される代替の
正規表現の倫
理和(“|”)のノードである。
3.Sequence:ノード"Sequence
<node_for_repetition_1,....,node_for_repetition_n>"を作成する。これは、
おのおのが順に整合しなければならない1シーケンスをなす正規表現パターンの
ノードである。
4.Repetition:ノード"Repetition<type;node_for_term>"を作成する。これは
、タイプが“?”(0回か1回の繰り返し)、“+”(1回か2回以上の繰り返
し)、および“*”(0回以上の繰り返し)の内のどれかである繰り返しのノー
ドである。
5.String_In_Double_Quotes:ノード"String<literal_string>"を作成する。
これは、リテラルストリングを整合させるノードである。
6.Stuff:予約語のためのノード"Stuff<>"を作成する。
7.(Regexp):ノード"Sequence
<Open Parenthesis<i>,node_for_Regexp,Close Parenthesis<i>>"を作成する
。これは、"Regexp"によって整合が発生したら、順番付けされた変数に対する割
り当てを発生させるノードである。ノード"Open Parenthesis<n>"は、現行規則
のRHSを順に解析している際に遭遇するn番目の解放括弧を表すノードである
。規則"Close Parenthesis<n>"は、遭遇した対応するn番目の閉鎖括弧を表すノ
ードである。
8.<nonterminal>:非端末のインスタンスのために、ノード"Nonterminal<nont
erminal_name>"を作成する。
9.Action:ノード"Action<node_for_action_language_statement>"を作成する
。これは、node_for_action_language_statementが動作言語ステートメントの中
間コードを表す動作言語ステートメントのインスタンスのノードである。
パーサーが対応するreg-exp言語構文規則を認識すると実行されるこれらの規
則によって、真の構造体中にリンクされているリスト済みノードタイプから形成
される解析ツリーが発生される。この解析ツリーはこのプロセスの後続のステッ
プに入力される。正規表現のための中間コードの発生
本好ましい実施形態ではコードの発生には次のステップが含まれる:
1.スタッフノードに特殊な前処理を実施するステップと;
2.トップレベルの非端末のRHSでの非端末の発生を消滅させるステップと;
3.トップレベル規則のRHS側の結果を有限状態オートマトン(「FSA」)
に変換するステップ。
これらのステップを、最初に概略を記述し、次に詳細を記述する。
第1に、スタッフノードの前処理が、FSA発生に対して好ましい後順走査法を
後で用いる必要がある。FSAはスタッフ要素だけのために作成することはでき
ないので、各スタッフ要素に続かなければならないリテラルノードとスタッフノ
ードの組み合わせに対してFSAを作成し、開いた括弧と閉じた括弧だけがスタ
ッフノードとその後に続くリテラルストリングの間に介在することができるよう
にする必要がある。こうするために、解析ツリーを走査して、各スタッフノード
を、双方のノードを新しいStuff_And_Stringノードと交換することによって後続
のリテラルストリングと併合される。この新しいノードはまたいかなる介在括弧
に対してもその要因となるものである。
コード発生の第2のステップはすべての非端末をトップレベルの非端末のRHS
に代入して、その個別のRHSが全体の正規表現に対する1つの複合規則を発生
するようにすることである。この代入の間に、動作言語ステートメント中の変数
の発生に再番号付けする必要がある。
例えば、次のラッパーを考える:
ここで、<page>内の出力ステートメント中の$2が(“dan”)を参照しており、
一方、<a>内の出力ステートメント中の$0は(stuff“cody”)を参照している。
代入が終了したら、出力ステートメント中の変数が再番号付けされていなければ
、<page>のRHSは次のように展開される:
しかしながら、ここでは、$0は(stuff“cody”)ではなく(“dave”)を参照し
てお
り、一方、$2は(“dan”)ではなく(stuff“cody”)を参照している。変数の正
確な割り当てを維持するために、変数の参照符号を次のように再番号付けしなけ
ばならない:
コード発生プロセスの好ましい実施形態での第3のステップは、処理済みで展開
済みのRHSを、トップレベルの規則のRHSを表す解析ツリーの後順走査を実
行することによってFSAに変換するが、この間に各ノードか次にFSAに変換
される。FSAはいくつかのタイプの状態を有するが、最も重要な状態のタイプ
は次の通りである:
1.Char_branch:現行のキャラクタによって256の後者状態の内の1つに分
岐して、現行の読み出し位置を進める;
2.Action:1ブロックの動作言語ステートメントを実行する;
3.Marker:現行の入力ストリング+または−あるオフセット値をマークスタッ
ク上に記録する;
4.Success:これに到達すれば、解析は成功したことになる;
5.Fail:これに到達すると、現在試行中の解析は失敗(fail)したことになり、
したがって、FSAは先行の後戻り点に後戻りするか、もし後戻り点がなければ
失敗となる;
6.Push:FSA状態と現行の入力ストリング位置から成る構成を、後の後戻り
動作のために後戻りスタック上に押す(push)。コード発生ステップ1:前処理
スタッフノードの好ましい前処理では最初に、ネスティングされたあらゆるシー
ケンス、すなわち、他のSequence<>要素中にネスティングされているSequence<>
要素を展開または平坦化する。
これは次のプロセスに従って実行される:
次に、スタッフノードは、遭遇する毎に、これまた後続のリテラルストリング
と介在する括弧の要因となるStuff_And_Stringによって置き換えられる。ラッパ
ー内で発生する"stuff"はすべてその後にリテラルストリングがこなければなら
ないが、このセマンティックな結果は、"stuff"が、現行位置からのすべてのキ
ャラクタと、次のリテラルストリングに遭遇するまで−ただし遭遇時点は含まな
いー整合するというものである。開いた括弧と閉じた括弧だけがスタッフとリテ
ラルストリング間に介在できる。本好ましい実施形態では、この交換は次のプロ
セスに従って実行するのが望ましい:
このプロセスによって、スタッフノード、リテラルストリングノード、c_jおよ
びあらゆる介在する括弧ノード、…c_j-1を1つのノードStuff_And_String<the-
string;C_i+1,...,c_j-1>中に併合する。コード発生ステツプ2:代入と変数の名称変更
前処理が完了したら、トップレベルの規則のRHSにある非端末は代入され、あ
らゆる動作ステートメント変数が再番号付けされるのが望ましい。代入と変数再
番号付けは、2つの関数であるEXPAND_REGEXPおよびEXPAND_ACTIONならびにグロ
ーバル変数PARREN_COUNTを有するプロセスを用いるのが望ましい。EXPAND_REGEX
Pは反復的にコールされて、トップレベルの非端末に対するコールから始めて、
RHS非端末の代わりに代入される。PAREN_COUNTはゼロに初期化され、代入か
進行するに連れて、このカウントは“(”に遭遇する毎にインクレメントされる
。したがって、PAREN_COUNTは合計がその時点までに遭遇した_(_の数というカウ
ント値を有する。次に、代入の間に、遭遇した括弧はその先行番号からPAREN_CO
UNTの現行値まで再番号付けされ、動作ステートメント中の変数はそれに対応す
るように再番号付けされる。例えば、PAREN_COUNTが現在8であれば、OpenParen
thesis<2>ノードはOpenParenthesis<8>ノードと置き換えられ、出力($2)ス
テートメントは出力($8)ステートメントと置き換えられる。EXPAND_ACTION
は動作ステートメント変数の再番号付けを実行する。これらのプロセスは次に従
って実行されるのが望ましい:
コード発生第3部:有限状態オートマトンの作成
コード発生の本好ましい実施形態での最終ステップでは、代入され処理された正
規表現を表すFSAが作成される。このようなFSA作成のためのアルゴリズム
が周知であるとはいえ、それは、例えば動作言語ステートメントをこのようなF
SA中に埋め込むというような機能は過去においては提供することはなかった。
したがって、以下の記述は、動作言語ステートメントおよびreg-exp言語の他の
新規な特徴をサポートすることを目的としたこのプロセスの本実施形態の新しい
特徴に焦点を合わせるものである。
このプロセスから得られるFSA出力は、入力ポインタを入力ストリングの開始
に設定した状態の初期状態でその実行を開始し、その現行の状態にしたがって6
つの基本的な手順の内の1つを繰り返し実行する。これらの手順は新しい現行状
態を設定し、一般的には、FSAによってアクセスされるデータ構造体の内の1
つ以上を実効させる。この6つのタイプの状態とその手順は次の通りである:
(1)Char_branch<next_state_O,...,next_state_255>:
現行状態がchar_branch状態の場合、次の状態は、next_state_Iとして現行の入
力キャラクタのASCII値iに従って選択され、入力ポインタは入力ストリン
グ中の次のキャラクタに進む。
(2)Marker<num,open/close_flag,offsetm,next_state>:
現行状態がマーカー状態である場合、記録は、入力ストリング中の遭遇した括弧
のキャラクタ位置に対して指示されたオフセットおよびこの括弧が開いているか
閉じているかの指示をプラスしたものを包含するマークスタックとして知られて
いる実行時間スタック上に押され、次の状態がnext_stateに設定される。例示の
マークは、現行の入力位置で5番目の開いた括弧が発生したことを示す記録を押
すことができる。
(3)Action<compiled_action_statement,next_state>:
現行状態が動作状態である場合、compiled_action_statementによって表される
動作言語ステートメントが実行され、次の状態がnext_stateに設定される。
(4)Success<>:現行状態が成功状態である場合、ストリングが成功裏に整合
したわけであり、このFSAが終了する。
(5)Push<state,next_state>:現行状態がプッシュ(push)状態の場合、FSA
の現行の構成が後戻りスタックとして知られる実行時間スタック上に押され、次
の状態がnext_stateに設定される。FSA構成は、入力ストリング中での現行位
置と共に少なくとも現行状態の識別符号を包含する記録である。プッシュを用い
て、非確定的構成を正規表現言語でサポートする。例示の非確定的構成は"reg-e
xpr1|reg-expr2"の論理和であり、これは、最初に後戻り状態を後戻りスタック
上に押し、次にreg-expr1に対応するFSAを実行しようとするFSAによって
整合される。
(6)Failure<>:現行状態が失敗状態の場合、後戻り記録が後戻りスタックか
らポップされて、現行状態と現行の入力ポインタが後戻り記録の内容に設定され
る。後戻りスタックが空の場合、FSAが入力ストリングとの整合に失敗したの
であり、したがって終了する。
入力正規表現に対してのFSAの作成は、前に発生された解析ツリーの後順走査
を用いて実行される。解析ツリーが走査されるに連れて、vのところで根付いて
いるサブツリーで表されるサブ表現と整合する有限状態マシンが各ノードvに付
着される。この付着した有限状態マシンは変数v.machineの値である。最終的な
FSA出力は、作成プロセスが完了するときの解析ツリーの根に付着したFSA
である。
走査の間、ある有限状態マシンが当業者にはすでに周知の方法によって作成され
る。これらのマシンは標準の正規表現構成を認識し、したがって、周知の方法で
構成することが可能である。このような標準の有限状態マシンの作成のための一
般的な参考文献には次のものがある:1974年のアホ(Aho)らによるアジソン
・ウェスリー出版社(Addison Wesley Publishing Co.)の「コンピュータアルゴ
リズムの設計と分析」(The Design and Analysis of Computer Algorithms)の第
9章;1986年アホ(Aho)らによる、アジソン・ウェスリー出版社(Addison We
sley Publishing Co.)の「コンパイラの原理、技法およびツール」(Compilers Pri
nciples,Techniques,and Tools)の第3章;1979年のホップクロフト(Hopc
roft)らによる、アジソン・ウェスリー(Addison Wesley Publishing Co.)の「オ
ートマトン理論、言語および計算の紹介」(Introduction to Automata Theory,L
anguages,and Computation)の第2.5章;1990年のセジウイック(Sedgewic
k)による、アジソン・ウェスリー出版社(Addison Wesley Pushing Co.)の「Cで
のアルゴリズム」(Algorithm in C)の第16章。
さらに、ここに開示するプロセスは、代替実施形態で有利なように変更可能なあ
る構成方法を採用している。例えば、リテラルストリングを表すマシンは、ボイ
ヤ・ムーア(Boyer-Moore)又は他のストリング整合アルゴリズムに従って構成する
ことができる。例えば、セジウイック(Sedgewick)の第19章を参照のこと。
好ましいプロセスは次の通りである: このプロセスは、1連のサブマシンから複合マシンを作成するMAKE_SEQUENCE関
数を用いる。この複合マシンはこれらサブマシンのおのおのを順に実行するが、
その結果、1つのサブマシンか失敗するが、この場合は複合マシンも失敗し、そ
うでなければすべてのサブマシンが成功するが、この場合は複合マシンは成功す
る。言い換えれば、複合マシンは第1のサブマシンを実行し;これが成功すれば
、第2のサブマシンを実行し;それが成功すれば、第3のサブマシンを実行し、
…となる。いずれかのサブマシンが失敗すれば、すなわちFailure<>stateに到達
すれば、複合マシンも失敗する。
この結論として、FSAの好ましい構成は本発明によるREG-EXP言語から得られ
た正規表現を表すものであることになる。次にFSAの実行方法を説明する。正規表現の実行時間解釈
ある好ましい実施形態では、正規表現を表すFSAは、直前のコード発生ステツ
プで作成された構造体を解釈することによって実行される。インタープリタは、
FSAの現行状態、入力ストリング中での現行キャラクタ位置に対するポインタ
、後戻りスタックおよびマーカースタックを含む複数のデータ構造体にアクセス
するのが望ましい。後戻りスタックは、FSAの解釈の状態を特徴付ける記録を
包含しており、入力ストリングを成功させようとする試みが失敗する場合に備え
て、当業者には周知の方法で用いられて後戻りを実現する。構成の記録には現行
状態と現行の入力位置が含まれる。ある代替実施形態では、考えられる次の状態
のリストで状態を実現することによってプッシュ状態を避けるようにしている。
本発明によるreg-exp言語の新規な変数結合と動作ステートメントの特徴の好ま
しい実現例では、追加スタックとマークスタックが利用される。これらの特徴の
セマンティックスは、正規表現整合プロセスの全体が成功するまで動作はなにも
実行しないことを必要とする。成功すると、あらゆる動作が、解析中に発生した
変数結合によって実行される。これは、1つの変数、例えば$1は、整合が成功
すると複数回にわたって実行可能な同じ動作ステートメント中にさまざまな結合
を有することができることを意味する。
このセマンティックスは、次に示す方法でマークスタックを用いる好ましい実施
形態で実現されている。現行の解釈済み状態がAction<>状態であるとき、動作言
語ステートメントは即座には実行されない。むしろ、動作ステートメントコード
はマークスタック上に押される。同様に、現行状態が、正規表現定義中の括弧を
表すマーク状態である場合、マーク状態にある情報はマークスタック上に押され
る。この情報によって、現行の変数結合の開始または終了の入力ストリング中で
の位置が発見できる。失敗した部分的解析試行中に遭遇した動作言語ステートメ
ントの実行を防止するために、マークスタックは、FSAが後戻りするときに適
切なレベルにポップされる。このように、後戻りスタック上のマシン構成と構成
記録はさらに、マークスタック内の現行位置を含む。
動作言語ステートメントは、マークスタックを下から上へ走査することによって
、最終的な整合の成功時に実行される。この走査においては、変数結合はマーク
状
態記録で示された通りに設定され、動作は動作状態記録に示された通りに実行さ
れる。整合が失敗した場合は、動作言語ステートメントはなにも実行されない。
詳細に言うと、好ましい実現例の実施形態は次のように機能する:
例えば、先行するFORループでは、$2という結合は、open_marks[2]の入力スト
リングの開始とclose_marks[2]の終了のサブストリングに設定される。動作言語コードの発生と実行時間解釈
ある好ましい実施形態では、動作言語ステートメントは、バイトコードインター
プリタによって実行時間に実行される可変長バイトコードタイプの中間言語にコ
ンパイルされる。上に述べた動作言語構文は、例えばLL解析やLR解析などの
なんらかの適当な周知の解析技法によって解析される。適当な解析技法は、19
86年の、アホ(Aho)らによる、アジソン・ウェスリー出版社(Addison Wesley P
ublishing Co.)の「コンパイラの原理、技法及びツール」(Compilers Princiles,
Techniques,and Tools)の第4章に例付きで提示されている。解析中は、ラッパ
ー内に発生するすべての変数に一意の数が割り当てられる。好ましいこのような
割り当てでは、連続する正の整数が名称付けされた変数、例えば$x$abcな
どに遭遇順で割り当てられ、連続する負の整数が、整合したサブストリング、例
えば$0,$1,$2などを示す数変数に割り当てられるが、この数変数$1に
は−(i+1)という数が割り当てられる。
中間コードは周知の構文指向の翻訳技法によって発生される。適切な構文指向の
翻訳技法は、アホ(Aho)らによって第8章で例付きで提示されている。好ましい
中間コードを以下に提示する。この提示では、中間言語命令は、オプションとし
て修正情報付きの命令コードに後続のゼロ以上のアーギュメントから成るフォー
マットを有する。変数は<var>で示されるが、ここでvarは変数の2バイト整数コ
ー
ディングである。相対的分岐オフセットは4バイト整数としてエンコーディング
される。分岐はすべて、現行の命令アドレスすなわち分岐命令自身のアドレスに
対して与えられ、したがって、バイトコードは再配置可能である。
1.関数コール:
2.分岐命令:
3.ロード定数命令:
4.移動命令:
5.出力命令:6.解析命令:
7.イグジット命令:
代替実施形態では、別の中間コードが使用されたり中間コードがなにも使用され
なかったりする。例えば、前に開示したアドレスベースの中間コードの代わりに
、等価的に、逆ポーランドスタックベースの中間コードを用いてもよい。オプシ
ョンとして、中間コードはなにも使用されず、動作言語ステートメントはマシン
言語に直接にコンパイルされる。これらの代替例は双方とも、開示済みの構文指
向方法によって実現することができる。例えばアホ(Aho)らを参照のこと。
ラッパー動作はある好ましい実施形態では複数ステップで実行される。第1に、
メモリが割り当てられて、すべての変数と変数値を記憶する。変数の数は、動作
ステートメントが解析されると分かる。変数はすべて未割り当ての値に初期化さ
れる。次に、ポインタCURRENT_INSTRUCTIONが、実行されるバイトコードの最初
の命令を指すように初期化される。次に、インタープリタが、CURRENT_INSTRUCT
IONによって指されるバイトコードを検索するループに入り、前に述べたバイト
コード言語に従ってコーディング済み単純動作を実行し、CURRENT_INSTRUCTION
を次の命令を指すように更新するかまたは、取られた分岐命令の場合は、オフセ
ット値で修正されたりする。インタープリタはイグジット命令に遭遇すると実行
を終
了する。
解析組み込み関数は、FSAインタープリタをコールして有限状態マシンを指
定するコンパイル済み正規表現コードを解釈することによって実行時間に実行さ
れる。出力(a_1,...,a_n)ステートメントは翻訳され次に、現行の組を終了させ
るすなわち出力ステートメントの最後をマークするバイトコードの命令コード8
に先行する出力リスト中の各変数毎にバイトコード命令を実行することによって
実行される。
6.特定の実施形態、参考文献の引用
本発明の範囲は本書に記載にする特定の実施形態に限られるものではない。実際
、ここに述べる例以外にも本発明のさまざまな修正例が前述の説明と添付図面か
ら当業者には明かであろう。このような修正例は添付クレームの範囲内に入るも
のと意図するものである。
さまざまな出版物が本書に引用されているが、その開示をそのまま参照してここ
に組み込む。
─────────────────────────────────────────────────────
フロントページの続き
(81)指定国 EP(AT,BE,CH,DE,
DK,ES,FI,FR,GB,GR,IE,IT,L
U,MC,NL,PT,SE),OA(BF,BJ,CF
,CG,CI,CM,GA,GN,ML,MR,NE,
SN,TD,TG),AP(GH,KE,LS,MW,S
D,SZ,UG,ZW),EA(AM,AZ,BY,KG
,KZ,MD,RU,TJ,TM),AL,AM,AU
,AZ,BA,BB,BG,BR,BY,CA,CN,
CU,CZ,EE,GE,GH,HU,ID,IL,I
S,JP,KG,KP,KR,KZ,LC,LK,LR
,LT,LV,MD,MG,MK,MN,MX,NO,
NZ,PL,RO,RU,SG,SI,SK,SL,T
J,TM,TR,TT,UA,UZ,VN,YU
(72)発明者 エトジオニ オーレン
アメリカ合衆国 ワシントン州 98105
シアトル フィフティセヴンス アベニュ
ー ノースイースト 5820
(72)発明者 クウォク チュン
アメリカ合衆国 ワシントン州 98105
シアトル トゥエンティフォース アベニ
ュー ノースイースト 4801―#535
(72)発明者 ロークハート グレゴリー
アメリカ合衆国 ワシントン州 98105
シアトル ノースイースト セヴンティフ
ィフス ストリート 619
(72)発明者 セルバーグ エリック
アメリカ合衆国 ワシントン州 98115
シアトル ノースイースト セヴンティフ
ィフス ストリート 3516―#10
(72)発明者 ウェルド ダニエル エス
アメリカ合衆国 ワシントン州 98105
シアトル ノースイースト フォーティサ
ード ストリート 4315
Claims (1)
- 【特許請求の範囲】 1. ネットワークに付着している情報発生源から入手可能な情報をユーザー が照会するのを支援する方法であり、前記方法が: a.ユーザー照会にもっとも関連した1つ以上の情報発生源を選択する ステップと; b.ラッパー記述言語で書かれた前記関連情報発生源のおのおのの発生 源の記述に従って前記関連情報発生源のおのおのに対して前記ユーザー照会をフ ォーマッティングするステップと; c.前記フォーマッティングされた紹介を前記関連連情報発生源のおの おのに対して伝送するステップと; d.前記関連情報発生源から返送された応答から前記ユーザー照会に関 連するデータフィールドを抽出するステップと; e.前記関連データフィールドを前記ユーザーに提示するステップと; を含むことを特徴とする方法。 2. 前記抽出ステップの後で、前記応答の前記ユーザー照会に対する関連性 を推測するステップをさらに含むことを特徴とする請求の範囲第1項記載の方法 。 3. 前記選択ステップが: a.前記ユーザー照会が関連する1つ以上の概念を決定するステップと ; b.情報発生源が前記概念に関連する場合に前記情報発生源を関連性が あるものとして選択するステップと; を含むことを特徴とする請求の範囲第1項記載の方法。 4. 前記ラッパー記述言語が、全正規表現の1つのコンポーネント正規表現 が認識されると、前記コンポーネント正規表現の認識時点で結合されている変数 によって動作が実行され、前記動作が実際には、前記全正規表現もまた認識され る場合にだけ実行されるように、前記コンポーネント正規表現に関して前記全正 規表現を指定する機能を含むことを特徴とする請求の範囲第1項記載の方法。 5. ネットワークに付着した情報発生源から入手可能な情報をユーザーが照 会するのを支援するシステムにおいて、前記システムが: a.ユーザー照会にもっとも関連した1つ以上の情報発生源を選択する 第1のプロセッサ手段と; b.ラッパー記述言語で書かれた前記関連情報発生源のおのおのの発生 源の記述に従って前記関連情報発生源のおのおのに対して前記ユーザー照会をフ ォーマッティングし、前記フォーマッティングされた照会を前記関連情報発生源 のおのおのに伝送する第2のプロセッサ手段と; c.前記関連情報発生源から返送された応答から前記ユーザー照会に関 連するデータフィールドを抽出する第3のプロセッサ手段であり、前記抽出が、 前記応答のおのおのを返送する前記関連情報発生源の前記記述に従って実行され る第3のプロセッサ手段と; d.前記関連データフィールドを前記ユーザーに提示する第4のプロセ ッサ手段と; を含むことを特徴とするシステム。 6. 前記第1、前記第2、前記第3および前記第4のプロセッサ手段が、ネ ットワークに付着した1つのコンピュータ中に存在し、前記コンピュータがCP Uとメモリを含んでいることを特徴とする請求の範囲第5項記載のシステム。 7. 前記第1、前記第2、前記第3および前記第4のプロセッサ手段が、ネ ットワークに付着したそれぞれ分離したコンピュータ中に存在し、前記コンピュ ータのおのおのがCPUとメモリを含んでいることを特徴とする請求の範囲第5 項記載のシステム。 8. 前記第4のプロセッサ手段が、World Wide Webブラウザ を実行することによって前記関連データフィールドを提示することを特徴とする 請求の範囲第5項記載のシステム。 9. 前記情報発生源の記述を記憶し、前記第2または第3のプロセッサ手段 の要求があると前記記述を提供する、ネットワークに付着した第1のメモリ手段 をさらに含むことを特徴とする請求の範囲第5項記載のシステム。 10. 正規表現言語で書かれた正規表現に従ってストリングを走査することに よって前記ストリングを認識するステップであり、前記正規表現言語が、全正規 表現の1つのコンポーネント正規表現が認識されると、前記コンポーネント正規 表現の認識時点で結合されている変数によって動作が実行可能であり、前記動作 が実際には、前記全正規表現もまた認識される場合にだけ実行されるように、前 記コンポーネント正規表現に関して前記全正規表現を指定することが可能である ステップを含むことを特徴とするラッパー記述言語方法。 11. 動作言語で書かれた1つ以上のステートメントを実行するステップであ り、前記動作言語が、変数に対する演算子の動作、変数に対する関数の動作およ びシーケンスをなすステートメントを指定することが可能であり、前記動作言語 の前記ステートメントがさらに、前記コンポーネント正規表現が認識されたとき に発生する前記動作を指定するように前期正規表現言語で埋め込まれることが可 能であるステップをさらに含むことを特徴とする請求の範囲第10項記載のラッ パー記述言語方法。 12. 1つ以上のコンピュータに請求の範囲第1項記載の方法を実行させる命 令を包含することを特徴とするコンピュータで読み取り可能な媒体。 13. 1つ以上のコンピュータに請求の範囲第10項記載の方法を実行させる 命令を包含することを特徴とするコンピュータで読み取り可能な媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US2530496P | 1996-09-20 | 1996-09-20 | |
US60/025,304 | 1996-09-20 | ||
PCT/US1997/017132 WO1998012881A2 (en) | 1996-09-20 | 1997-09-22 | Method and system for network information access |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001501003A true JP2001501003A (ja) | 2001-01-23 |
Family
ID=21825240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10515013A Pending JP2001501003A (ja) | 1996-09-20 | 1997-09-22 | ネットワーク情報にアクセスするための方法とシステム |
Country Status (12)
Country | Link |
---|---|
US (2) | US6085186A (ja) |
EP (1) | EP1015964B1 (ja) |
JP (1) | JP2001501003A (ja) |
KR (1) | KR20000048514A (ja) |
CN (1) | CN1249042A (ja) |
AT (1) | ATE255246T1 (ja) |
AU (1) | AU731420B2 (ja) |
CA (1) | CA2269227C (ja) |
IL (1) | IL129066A (ja) |
NZ (1) | NZ335247A (ja) |
SG (1) | SG64654A1 (ja) |
WO (1) | WO1998012881A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008512906A (ja) * | 2005-04-29 | 2008-04-24 | フアウェイジシュヨウシアンゴンシ | Ipドメイン間の相互接続を構成する方法、システムおよび装置 |
Families Citing this family (300)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030212996A1 (en) * | 1996-02-08 | 2003-11-13 | Wolzien Thomas R. | System for interconnection of audio program data transmitted by radio to remote vehicle or individual with GPS location |
US5913214A (en) * | 1996-05-30 | 1999-06-15 | Massachusetts Inst Technology | Data extraction from world wide web pages |
US5826031A (en) * | 1996-06-10 | 1998-10-20 | Sun Microsystems, Inc. | Method and system for prioritized downloading of embedded web objects |
US7020670B1 (en) * | 1997-04-23 | 2006-03-28 | Xerox Corporation | Document constraint descriptors obtained from user signals indicating attribute-value relations |
JPH1115666A (ja) * | 1997-06-10 | 1999-01-22 | Internatl Business Mach Corp <Ibm> | コンピュータ・システム、メッセージ・モニター方法、及び関連メッセージ送信方法 |
US6453334B1 (en) | 1997-06-16 | 2002-09-17 | Streamtheory, Inc. | Method and apparatus to allow remotely located computer programs and/or data to be accessed on a local computer in a secure, time-limited manner, with persistent caching |
JP4000223B2 (ja) * | 1997-09-24 | 2007-10-31 | 富士通株式会社 | 情報検索方法,情報検索システムおよび同システム用検索管理装置 |
US6678744B2 (en) * | 1997-10-09 | 2004-01-13 | Ericsson Inc. | Application wrapper methods and systems |
US6571243B2 (en) * | 1997-11-21 | 2003-05-27 | Amazon.Com, Inc. | Method and apparatus for creating extractors, field information objects and inheritance hierarchies in a framework for retrieving semistructured information |
US7257589B1 (en) * | 1997-12-22 | 2007-08-14 | Ricoh Company, Ltd. | Techniques for targeting information to users |
US7124093B1 (en) * | 1997-12-22 | 2006-10-17 | Ricoh Company, Ltd. | Method, system and computer code for content based web advertising |
KR100313462B1 (ko) * | 1998-01-23 | 2001-12-31 | 윤종용 | 웹검색엔진에서검색된정보를지역적으로근접한순서대로표시하는방법 |
US7865546B1 (en) * | 1998-01-26 | 2011-01-04 | New York University | Method and appartus for monitor and notification in a network |
KR19990069299A (ko) * | 1998-02-06 | 1999-09-06 | 윤종용 | 특정 위치에 속한 정보를 찾는 웹 검색 방법 |
US6216131B1 (en) * | 1998-02-06 | 2001-04-10 | Starfish Software, Inc. | Methods for mapping data fields from one data set to another in a data processing environment |
US6643624B2 (en) * | 1998-03-09 | 2003-11-04 | Yan Philippe | Method and system for integrating transaction mechanisms over multiple internet sites |
US6424980B1 (en) | 1998-06-10 | 2002-07-23 | Nippon Telegraph And Telephone Corporation | Integrated retrieval scheme for retrieving semi-structured documents |
EP0967545A1 (en) * | 1998-06-23 | 1999-12-29 | BRITISH TELECOMMUNICATIONS public limited company | A system and method for the co-ordination and control of information supply using a distributed multi-agent platform |
US6401118B1 (en) * | 1998-06-30 | 2002-06-04 | Online Monitoring Services | Method and computer program product for an online monitoring search engine |
US6530044B1 (en) * | 1998-08-31 | 2003-03-04 | Scott A. Beeker | System and disassembling test data and method |
US6490579B1 (en) * | 1998-07-16 | 2002-12-03 | Perot Systems Corporation | Search engine system and method utilizing context of heterogeneous information resources |
US6128380A (en) * | 1998-08-24 | 2000-10-03 | Siemens Information And Communication, Networks, Inc. | Automatic call distribution and training system |
US6493692B1 (en) * | 1998-09-30 | 2002-12-10 | Canon Kabushiki Kaisha | Information search apparatus and method, and computer readable memory |
US6493705B1 (en) * | 1998-09-30 | 2002-12-10 | Canon Kabushiki Kaisha | Information search apparatus and method, and computer readable memory |
EP0990998A3 (en) | 1998-09-30 | 2005-04-20 | Canon Kabushiki Kaisha | Information search apparatus and method |
US6457009B1 (en) * | 1998-11-09 | 2002-09-24 | Denison W. Bollay | Method of searching multiples internet resident databases using search fields in a generic form |
US7672879B1 (en) | 1998-12-08 | 2010-03-02 | Yodlee.Com, Inc. | Interactive activity interface for managing personal data and performing transactions over a data packet network |
US7085997B1 (en) | 1998-12-08 | 2006-08-01 | Yodlee.Com | Network-based bookmark management and web-summary system |
US8069407B1 (en) | 1998-12-08 | 2011-11-29 | Yodlee.Com, Inc. | Method and apparatus for detecting changes in websites and reporting results to web developers for navigation template repair purposes |
US6532459B1 (en) * | 1998-12-15 | 2003-03-11 | Berson Research Corp. | System for finding, identifying, tracking, and correcting personal information in diverse databases |
US6721759B1 (en) * | 1998-12-24 | 2004-04-13 | Sony Corporation | Techniques for spatial representation of data and browsing based on similarity |
US6370527B1 (en) * | 1998-12-29 | 2002-04-09 | At&T Corp. | Method and apparatus for searching distributed networks using a plurality of search devices |
US6370537B1 (en) * | 1999-01-14 | 2002-04-09 | Altoweb, Inc. | System and method for the manipulation and display of structured data |
US6453411B1 (en) * | 1999-02-18 | 2002-09-17 | Hewlett-Packard Company | System and method using a hardware embedded run-time optimizer |
US6847960B1 (en) * | 1999-03-29 | 2005-01-25 | Nec Corporation | Document retrieval by information unit |
US6924828B1 (en) | 1999-04-27 | 2005-08-02 | Surfnotes | Method and apparatus for improved information representation |
US6836768B1 (en) * | 1999-04-27 | 2004-12-28 | Surfnotes | Method and apparatus for improved information representation |
US6609104B1 (en) | 1999-05-26 | 2003-08-19 | Incentech, Inc. | Method and system for accumulating marginal discounts and applying an associated incentive |
WO2000073942A2 (en) * | 1999-05-27 | 2000-12-07 | Mobile Engines, Inc. | Intelligent agent parallel search and comparison engine |
US7225182B2 (en) | 1999-05-28 | 2007-05-29 | Overture Services, Inc. | Recommending search terms using collaborative filtering and web spidering |
US7752535B2 (en) | 1999-06-01 | 2010-07-06 | Yodlec.com, Inc. | Categorization of summarized information |
US6606625B1 (en) * | 1999-06-03 | 2003-08-12 | University Of Southern California | Wrapper induction by hierarchical data analysis |
US6993498B1 (en) * | 1999-07-15 | 2006-01-31 | Midnight Blue Remote Access, Llc | Point-of-sale server and method |
US7653614B2 (en) * | 1999-07-15 | 2010-01-26 | Spotware Technologies, Inc. | Method of searching across media and source types |
US6873982B1 (en) * | 1999-07-16 | 2005-03-29 | International Business Machines Corporation | Ordering of database search results based on user feedback |
US6356906B1 (en) * | 1999-07-26 | 2002-03-12 | Microsoft Corporation | Standard database queries within standard request-response protocols |
US6792576B1 (en) * | 1999-07-26 | 2004-09-14 | Xerox Corporation | System and method of automatic wrapper grammar generation |
US20040230566A1 (en) * | 1999-08-20 | 2004-11-18 | Srinivas Balijepalli | Web-based customized information retrieval and delivery method and system |
US6470336B1 (en) * | 1999-08-25 | 2002-10-22 | Matsushita Electric Industrial Co., Ltd. | Document image search device and recording medium having document search program stored thereon |
US7949722B1 (en) * | 1999-09-29 | 2011-05-24 | Actv Inc. | Enhanced video programming system and method utilizing user-profile information |
US6851089B1 (en) * | 1999-10-25 | 2005-02-01 | Amazon.Com, Inc. | Software application and associated methods for generating a software layer for structuring semistructured information |
US6532476B1 (en) * | 1999-11-13 | 2003-03-11 | Precision Solutions, Inc. | Software based methodology for the storage and retrieval of diverse information |
WO2001037134A1 (en) | 1999-11-16 | 2001-05-25 | Searchcraft Corporation | Method for searching from a plurality of data sources |
US6490575B1 (en) * | 1999-12-06 | 2002-12-03 | International Business Machines Corporation | Distributed network search engine |
US6892196B1 (en) | 1999-12-22 | 2005-05-10 | Accenture Llp | System, method and article of manufacture for a user programmable diary interface link |
US7890491B1 (en) * | 1999-12-22 | 2011-02-15 | International Business Machines Corporation | Query optimization technique for obtaining improved cardinality estimates using statistics on automatic summary tables |
AU3076801A (en) | 1999-12-27 | 2001-07-09 | Pitchware, Inc. | Method and apparatus for a cryptographically assisted commercial network system designed to facilitate purchase and licensing |
EP1118949A1 (en) * | 2000-01-21 | 2001-07-25 | Hewlett-Packard Company, A Delaware Corporation | Process and apparatus for allowing transaction between a user and a remote server |
WO2001057725A2 (en) * | 2000-02-03 | 2001-08-09 | Navigateone Limited | System and method for database searching |
US7421468B2 (en) * | 2000-02-22 | 2008-09-02 | Harvey Lunenfeld | Metasearching a client's request by sending a plurality of queries to a plurality of servers for displaying different lists on the client |
US6789073B1 (en) * | 2000-02-22 | 2004-09-07 | Harvey Lunenfeld | Client-server multitasking |
US7707245B2 (en) * | 2000-02-22 | 2010-04-27 | Harvey Lunenfeld | Metasearching a client's request for displaying different order books on the client |
US7421428B2 (en) * | 2000-02-22 | 2008-09-02 | Harvey Lunenfeld | Metasearching a client's request by sending at least one search query to a plurality of servers for displaying at least one list on the client of at least one item that may be ordered |
US7490091B2 (en) * | 2000-02-22 | 2009-02-10 | Harvey Lunenfeld | Metasearching a client's request for displaying at least one list comprising at least one advertisement on the client |
US6438539B1 (en) * | 2000-02-25 | 2002-08-20 | Agents-4All.Com, Inc. | Method for retrieving data from an information network through linking search criteria to search strategy |
US10002167B2 (en) | 2000-02-25 | 2018-06-19 | Vilox Technologies, Llc | Search-on-the-fly/sort-on-the-fly by a search engine directed to a plurality of disparate data sources |
ES2381530T3 (es) | 2000-03-31 | 2012-05-29 | Opentv, Inc. | Sistema y método para la inserción de metadatos locales |
US7418440B2 (en) * | 2000-04-13 | 2008-08-26 | Ql2 Software, Inc. | Method and system for extraction and organizing selected data from sources on a network |
US6732089B1 (en) * | 2000-05-09 | 2004-05-04 | International Business Machines Corporation | SQL access to system specific data |
US6654749B1 (en) * | 2000-05-12 | 2003-11-25 | Choice Media, Inc. | Method and system for searching indexed information databases with automatic user registration via a communication network |
FR2808911A1 (fr) * | 2000-05-15 | 2001-11-16 | Infomediation | Procede et systeme de recherche et de comparaison d'informations sur au moins un produit determine propose sur le reseau internet |
US20050177785A1 (en) * | 2000-05-25 | 2005-08-11 | Shrader Theodore J.L. | Client-side pricing agent for collecting and managing product price information over the internet |
US7031976B1 (en) * | 2000-05-26 | 2006-04-18 | Sprint Communications Company L.P. | Computer framework and method for isolating a business component from specific implementations of a datastore |
US20020169789A1 (en) * | 2000-06-05 | 2002-11-14 | Ali Kutay | System and method for accessing, organizing, and presenting data |
US6718325B1 (en) * | 2000-06-14 | 2004-04-06 | Sun Microsystems, Inc. | Approximate string matcher for delimited strings |
KR100391391B1 (ko) * | 2000-06-14 | 2003-07-12 | (주) 제이.에스.씨.앤.아이 | 저작권 침해 방지를 위한 정보추출 에이전트 시스템 및그의 정보제공 방법 |
US7024418B1 (en) * | 2000-06-23 | 2006-04-04 | Computer Sciences Corporation | Relevance calculation for a reference system in an insurance claims processing system |
US7613790B2 (en) * | 2000-07-13 | 2009-11-03 | Biap Systems, Inc. | Apparatus for and method of executing customized interactive computing services in a broadband network environment |
US7313588B1 (en) * | 2000-07-13 | 2007-12-25 | Biap Systems, Inc. | Locally executing software agent for retrieving remote content and method for creation and use of the agent |
US7152058B2 (en) | 2000-07-13 | 2006-12-19 | Biap Systems, Inc. | Apparatus for and method of selectively retrieving information and enabling its subsequent display |
AUPQ878500A0 (en) * | 2000-07-13 | 2000-08-03 | Aroney, Peter | Information obtaining system |
US6714941B1 (en) * | 2000-07-19 | 2004-03-30 | University Of Southern California | Learning data prototypes for information extraction |
US6732097B1 (en) * | 2000-08-11 | 2004-05-04 | Attensity Corporation | Relational text index creation and searching |
US6732098B1 (en) * | 2000-08-11 | 2004-05-04 | Attensity Corporation | Relational text index creation and searching |
US6741988B1 (en) * | 2000-08-11 | 2004-05-25 | Attensity Corporation | Relational text index creation and searching |
US6738765B1 (en) * | 2000-08-11 | 2004-05-18 | Attensity Corporation | Relational text index creation and searching |
US6728707B1 (en) * | 2000-08-11 | 2004-04-27 | Attensity Corporation | Relational text index creation and searching |
US7171349B1 (en) | 2000-08-11 | 2007-01-30 | Attensity Corporation | Relational text index creation and searching |
AU2001286879A1 (en) * | 2000-08-30 | 2002-03-13 | Digimarc Corporation | Exploiting familiar media attributes and vocabulary to acces network resources |
US7155403B2 (en) * | 2001-03-22 | 2006-12-26 | International Business Machines Corporation | System and method for leveraging procurement across companies and company groups |
US6584468B1 (en) | 2000-09-29 | 2003-06-24 | Ninesigma, Inc. | Method and apparatus to retrieve information from a network |
US20020087568A1 (en) * | 2000-10-10 | 2002-07-04 | Ledonne Gerald | Method and software for providing context sensitive database query parameters |
US20020087883A1 (en) * | 2000-11-06 | 2002-07-04 | Curt Wohlgemuth | Anti-piracy system for remotely served computer applications |
US7062567B2 (en) | 2000-11-06 | 2006-06-13 | Endeavors Technology, Inc. | Intelligent network streaming and execution system for conventionally coded applications |
US8831995B2 (en) | 2000-11-06 | 2014-09-09 | Numecent Holdings, Inc. | Optimized server for streamed applications |
US7233940B2 (en) * | 2000-11-06 | 2007-06-19 | Answers Corporation | System for processing at least partially structured data |
US20020083183A1 (en) * | 2000-11-06 | 2002-06-27 | Sanjay Pujare | Conventionally coded application conversion system for streamed delivery and execution |
US6721736B1 (en) * | 2000-11-15 | 2004-04-13 | Hewlett-Packard Development Company, L.P. | Methods, computer system, and computer program product for configuring a meta search engine |
US20100223295A1 (en) * | 2000-12-06 | 2010-09-02 | Io Informatics, Inc. | Applied Semantic Knowledgebases and Applications Thereof |
US20020156756A1 (en) * | 2000-12-06 | 2002-10-24 | Biosentients, Inc. | Intelligent molecular object data structure and method for application in heterogeneous data environments with high data density and dynamic application needs |
EP1342171A1 (en) * | 2000-12-14 | 2003-09-10 | Kapow APS | Query processor, query processor elements and a method of establishing such a query processor and query processor elements and a domain processor |
US7451196B1 (en) | 2000-12-15 | 2008-11-11 | Stream Theory, Inc. | Method and system for executing a software application in a virtual environment |
US6763356B2 (en) * | 2001-01-24 | 2004-07-13 | International Business Machines Corporation | System and method for searching disparate file systems |
WO2002069143A1 (en) * | 2001-02-23 | 2002-09-06 | Altoweb Systems, Inc. | System and method to facilitate analysis and removal of errors from an application |
US7546527B2 (en) * | 2001-03-06 | 2009-06-09 | International Business Machines Corporation | Method and apparatus for repurposing formatted content |
US20020156809A1 (en) * | 2001-03-07 | 2002-10-24 | O'brien Thomas A. | Apparatus and method for locating and presenting electronic content |
EP1253528B1 (en) * | 2001-04-25 | 2008-10-29 | Caplin Systems Limited | Connection services |
US7099871B2 (en) * | 2001-05-04 | 2006-08-29 | Sun Microsystems, Inc. | System and method for distributed real-time search |
US6950821B2 (en) | 2001-05-04 | 2005-09-27 | Sun Microsystems, Inc. | System and method for resolving distributed network search queries to information providers |
US7171415B2 (en) | 2001-05-04 | 2007-01-30 | Sun Microsystems, Inc. | Distributed information discovery through searching selected registered information providers |
US7013303B2 (en) * | 2001-05-04 | 2006-03-14 | Sun Microsystems, Inc. | System and method for multiple data sources to plug into a standardized interface for distributed deep search |
US6961723B2 (en) | 2001-05-04 | 2005-11-01 | Sun Microsystems, Inc. | System and method for determining relevancy of query responses in a distributed network search mechanism |
US6934702B2 (en) * | 2001-05-04 | 2005-08-23 | Sun Microsystems, Inc. | Method and system of routing messages in a distributed search network |
US6920448B2 (en) | 2001-05-09 | 2005-07-19 | Agilent Technologies, Inc. | Domain specific knowledge-based metasearch system and methods of using |
US7519605B2 (en) | 2001-05-09 | 2009-04-14 | Agilent Technologies, Inc. | Systems, methods and computer readable media for performing a domain-specific metasearch, and visualizing search results therefrom |
US7581170B2 (en) * | 2001-05-31 | 2009-08-25 | Lixto Software Gmbh | Visual and interactive wrapper generation, automated information extraction from Web pages, and translation into XML |
US20030005046A1 (en) * | 2001-06-06 | 2003-01-02 | Lagniappe Marketing | System and method for managing marketing applications for a website |
US6728704B2 (en) | 2001-08-27 | 2004-04-27 | Verity, Inc. | Method and apparatus for merging result lists from multiple search engines |
US20030069943A1 (en) * | 2001-10-04 | 2003-04-10 | International Business Machines Corporation | Method and apparatus for user personalized and adaptive business processing modeling and integration |
US7103749B2 (en) * | 2002-02-01 | 2006-09-05 | John Fairweather | System and method for managing memory |
US6952691B2 (en) * | 2002-02-01 | 2005-10-04 | International Business Machines Corporation | Method and system for searching a multi-lingual database |
US7165055B2 (en) * | 2002-02-14 | 2007-01-16 | Xerox Corporation | Systems and methods for solving nogood databases |
US7461370B2 (en) * | 2002-02-25 | 2008-12-02 | Safenet, Inc. | Fast hardware processing of regular expressions containing sub-expressions |
US6938239B2 (en) * | 2002-04-18 | 2005-08-30 | Wind River Systems, Inc. | Automatic gopher program generator |
US7467387B2 (en) | 2002-05-31 | 2008-12-16 | International Business Machines Corporation | Method for off-loading user queries to a task manager |
US7398209B2 (en) | 2002-06-03 | 2008-07-08 | Voicebox Technologies, Inc. | Systems and methods for responding to natural language speech utterance |
US7209915B1 (en) * | 2002-06-28 | 2007-04-24 | Microsoft Corporation | Method, system and apparatus for routing a query to one or more providers |
US7693720B2 (en) | 2002-07-15 | 2010-04-06 | Voicebox Technologies, Inc. | Mobile systems and methods for responding to natural language speech utterance |
US7035841B2 (en) * | 2002-07-18 | 2006-04-25 | Xerox Corporation | Method for automatic wrapper repair |
US6886009B2 (en) | 2002-07-31 | 2005-04-26 | International Business Machines Corporation | Query routing based on feature learning of data sources |
US7181442B2 (en) * | 2002-09-24 | 2007-02-20 | International Business Machines Corporation | Method and apparatus for discovery of dynamic network services |
US20040064528A1 (en) * | 2002-09-30 | 2004-04-01 | Microsoft Corporation | Safe interoperability among web services |
US6829599B2 (en) * | 2002-10-02 | 2004-12-07 | Xerox Corporation | System and method for improving answer relevance in meta-search engines |
US7702617B2 (en) * | 2002-10-31 | 2010-04-20 | International Business Machines Corporation | System and method for distributed querying and presentation of information from heterogeneous data sources |
US6944612B2 (en) | 2002-11-13 | 2005-09-13 | Xerox Corporation | Structured contextual clustering method and system in a federated search engine |
US8160892B2 (en) * | 2002-11-25 | 2012-04-17 | Accenture Global Services Limited | Border management solution |
KR100617720B1 (ko) * | 2002-11-30 | 2006-08-28 | 삼성전자주식회사 | 분산구조라우터에서 포워딩 정보를 동적으로 관리하는 방법 |
US20040167887A1 (en) * | 2002-12-06 | 2004-08-26 | Attensity Corporation | Integration of structured data with relational facts from free text for data mining |
US7565443B2 (en) * | 2002-12-13 | 2009-07-21 | Sap Ag | Common persistence layer |
US7111286B2 (en) * | 2002-12-18 | 2006-09-19 | Ge Medical Systems Information Technologies, Inc. | Method, system and computer product for parsing binary data |
US7930716B2 (en) | 2002-12-31 | 2011-04-19 | Actv Inc. | Techniques for reinsertion of local market advertising in digital video from a bypass source |
US20040153440A1 (en) * | 2003-01-30 | 2004-08-05 | Assaf Halevy | Unified management of queries in a multi-platform distributed environment |
US7007017B2 (en) * | 2003-02-10 | 2006-02-28 | Xerox Corporation | Method for automatic discovery of query language features of web sites |
DE10313420A1 (de) * | 2003-03-25 | 2004-10-28 | Frank Meltke | Recherchensystem und Verfahren zur Ermittlung von Informationen aus einer Datenbank, insbesondere aus dem World-Wide-Web |
JP5068996B2 (ja) * | 2003-04-04 | 2012-11-07 | ヤフー! インコーポレイテッド | サブドメインヒントによる検索及びサブドメイン単位のスポンサー付き結果提供を組み込んだ検索結果生成のシステム |
US7558841B2 (en) * | 2003-05-14 | 2009-07-07 | Microsoft Corporation | Method, system, and computer-readable medium for communicating results to a data query in a computer network |
US7854009B2 (en) * | 2003-06-12 | 2010-12-14 | International Business Machines Corporation | Method of securing access to IP LANs |
FR2858437B1 (fr) * | 2003-07-28 | 2005-10-14 | Emmanuel Berthod | Procede permettant a un operateur d'effectuer une recherche sur internet avec identification automatique. |
US20050027631A1 (en) * | 2003-08-01 | 2005-02-03 | Bandersnatch Research Llc | System and method for providing information over a communications network |
US20050060290A1 (en) * | 2003-09-15 | 2005-03-17 | International Business Machines Corporation | Automatic query routing and rank configuration for search queries in an information retrieval system |
US8014997B2 (en) * | 2003-09-20 | 2011-09-06 | International Business Machines Corporation | Method of search content enhancement |
US20050065774A1 (en) * | 2003-09-20 | 2005-03-24 | International Business Machines Corporation | Method of self enhancement of search results through analysis of system logs |
US7774292B2 (en) * | 2003-11-10 | 2010-08-10 | Conversive, Inc. | System for conditional answering of requests |
US7813916B2 (en) | 2003-11-18 | 2010-10-12 | University Of Utah | Acquisition and application of contextual role knowledge for coreference resolution |
GB0327589D0 (en) * | 2003-11-27 | 2003-12-31 | Ibm | Searching in a computer network |
US7523096B2 (en) | 2003-12-03 | 2009-04-21 | Google Inc. | Methods and systems for personalized network searching |
US20050143863A1 (en) * | 2003-12-19 | 2005-06-30 | Margaret Ruane | Building control system field panel having integrated web server |
US20050165789A1 (en) * | 2003-12-22 | 2005-07-28 | Minton Steven N. | Client-centric information extraction system for an information network |
US7447678B2 (en) | 2003-12-31 | 2008-11-04 | Google Inc. | Interface for a universal search engine |
US7437353B2 (en) * | 2003-12-31 | 2008-10-14 | Google Inc. | Systems and methods for unification of search results |
US7483891B2 (en) * | 2004-01-09 | 2009-01-27 | Yahoo, Inc. | Content presentation and management system associating base content and relevant additional content |
US7346613B2 (en) * | 2004-01-26 | 2008-03-18 | Microsoft Corporation | System and method for a unified and blended search |
US7107946B2 (en) * | 2004-03-19 | 2006-09-19 | Ford Global Technologies, Llc | Electromechanically actuated valve control for an internal combustion engine |
US20050241727A1 (en) * | 2004-04-29 | 2005-11-03 | Kosmyna Michael J | Vented Funnel |
US20050262056A1 (en) * | 2004-05-20 | 2005-11-24 | International Business Machines Corporation | Method and system for searching source code of computer programs using parse trees |
US7761439B1 (en) | 2004-06-30 | 2010-07-20 | Google Inc. | Systems and methods for performing a directory search |
US7702618B1 (en) * | 2004-07-26 | 2010-04-20 | Google Inc. | Information retrieval system for archiving multiple document versions |
US7599914B2 (en) * | 2004-07-26 | 2009-10-06 | Google Inc. | Phrase-based searching in an information retrieval system |
US7580929B2 (en) * | 2004-07-26 | 2009-08-25 | Google Inc. | Phrase-based personalization of searches in an information retrieval system |
US7711679B2 (en) * | 2004-07-26 | 2010-05-04 | Google Inc. | Phrase-based detection of duplicate documents in an information retrieval system |
US7584175B2 (en) | 2004-07-26 | 2009-09-01 | Google Inc. | Phrase-based generation of document descriptions |
US7536408B2 (en) | 2004-07-26 | 2009-05-19 | Google Inc. | Phrase-based indexing in an information retrieval system |
US7580921B2 (en) * | 2004-07-26 | 2009-08-25 | Google Inc. | Phrase identification in an information retrieval system |
US7567959B2 (en) * | 2004-07-26 | 2009-07-28 | Google Inc. | Multiple index based information retrieval system |
US20060048136A1 (en) * | 2004-08-25 | 2006-03-02 | Vries Jeff D | Interception-based resource detection system |
US7315872B2 (en) * | 2004-08-31 | 2008-01-01 | International Business Machines Corporation | Dynamic and selective data source binding through a metawrapper |
KR100679314B1 (ko) | 2004-09-17 | 2007-02-06 | 전자부품연구원 | SOAP 오퍼레이션을 이용한 TV-Anytime 메타데이터 배포 방법 |
EP1638336A1 (en) * | 2004-09-17 | 2006-03-22 | Korea Electronics Technology Institute | Method for providing requested fields by get-data operation in TV-Anytime metadata service |
KR100590029B1 (ko) | 2004-09-17 | 2006-06-14 | 전자부품연구원 | TV-Anytime 메타데이터 서비스에서 get_Data 오퍼레이션을 이용한 테이블 필드 엘리먼트 제공 방법 |
US7240162B2 (en) | 2004-10-22 | 2007-07-03 | Stream Theory, Inc. | System and method for predictive streaming |
JP2008527468A (ja) * | 2004-11-13 | 2008-07-24 | ストリーム セオリー,インコーポレイテッド | ハイブリッド・ローカル/リモート・ストリーミング |
US9424563B2 (en) | 2005-03-11 | 2016-08-23 | Microsoft Technology Licensing, Llc | Accessing medial context information using contextual links |
US9836729B2 (en) * | 2005-03-11 | 2017-12-05 | Microsoft Technology Licensing, Llc | Media software navigation with conditional links |
US20060218165A1 (en) * | 2005-03-23 | 2006-09-28 | Vries Jeffrey De | Explicit overlay integration rules |
WO2006102621A2 (en) | 2005-03-23 | 2006-09-28 | Stream Theory, Inc. | System and method for tracking changes to files in streaming applications |
US8024523B2 (en) | 2007-11-07 | 2011-09-20 | Endeavors Technologies, Inc. | Opportunistic block transmission with time constraints |
US20070005692A1 (en) * | 2005-06-18 | 2007-01-04 | Rodney Gist | System for instant collaboration |
US9104773B2 (en) * | 2005-06-21 | 2015-08-11 | Microsoft Technology Licensing, Llc | Finding and consuming web subscriptions in a web browser |
US8661459B2 (en) * | 2005-06-21 | 2014-02-25 | Microsoft Corporation | Content syndication platform |
US8074272B2 (en) | 2005-07-07 | 2011-12-06 | Microsoft Corporation | Browser security notification |
US7865830B2 (en) | 2005-07-12 | 2011-01-04 | Microsoft Corporation | Feed and email content |
US7831547B2 (en) | 2005-07-12 | 2010-11-09 | Microsoft Corporation | Searching and browsing URLs and URL history |
US7640160B2 (en) | 2005-08-05 | 2009-12-29 | Voicebox Technologies, Inc. | Systems and methods for responding to natural language speech utterance |
US7620549B2 (en) | 2005-08-10 | 2009-11-17 | Voicebox Technologies, Inc. | System and method of supporting adaptive misrecognition in conversational speech |
US7949529B2 (en) | 2005-08-29 | 2011-05-24 | Voicebox Technologies, Inc. | Mobile systems and methods of supporting natural language human-machine interactions |
WO2007027989A2 (en) * | 2005-08-31 | 2007-03-08 | Voicebox Technologies, Inc. | Dynamic speech sharpening |
US7992085B2 (en) * | 2005-09-26 | 2011-08-02 | Microsoft Corporation | Lightweight reference user interface |
US7788590B2 (en) | 2005-09-26 | 2010-08-31 | Microsoft Corporation | Lightweight reference user interface |
US20070088681A1 (en) * | 2005-10-17 | 2007-04-19 | Veveo, Inc. | Method and system for offsetting network latencies during incremental searching using local caching and predictive fetching of results from a remote server |
US7831685B2 (en) * | 2005-12-14 | 2010-11-09 | Microsoft Corporation | Automatic detection of online commercial intention |
US20070192367A1 (en) * | 2006-02-16 | 2007-08-16 | Microsoft Corporation | Generic expression framework for computer implementable expressions |
US7958164B2 (en) * | 2006-02-16 | 2011-06-07 | Microsoft Corporation | Visual design of annotated regular expression |
US8280843B2 (en) | 2006-03-03 | 2012-10-02 | Microsoft Corporation | RSS data-processing object |
US7979803B2 (en) | 2006-03-06 | 2011-07-12 | Microsoft Corporation | RSS hostable control |
US7860881B2 (en) * | 2006-03-09 | 2010-12-28 | Microsoft Corporation | Data parsing with annotated patterns |
WO2007125108A1 (en) * | 2006-04-27 | 2007-11-08 | Abb Research Ltd | A method and system for controlling an industrial process including automatically displaying information generated in response to a query in an industrial installation |
US9349201B1 (en) | 2006-08-03 | 2016-05-24 | Sony Interactive Entertainment America Llc | Command sentinel |
US9323867B2 (en) | 2006-08-03 | 2016-04-26 | Microsoft Technology Licensing, Llc | Search tool using multiple different search engine types across different data sets |
US8888592B1 (en) | 2009-06-01 | 2014-11-18 | Sony Computer Entertainment America Llc | Voice overlay |
US7606752B2 (en) | 2006-09-07 | 2009-10-20 | Yodlee Inc. | Host exchange in bill paying services |
US8554638B2 (en) | 2006-09-29 | 2013-10-08 | Microsoft Corporation | Comparative shopping tool |
US20080080505A1 (en) * | 2006-09-29 | 2008-04-03 | Munoz Robert J | Methods and Apparatus for Performing Packet Processing Operations in a Network |
US20080082480A1 (en) * | 2006-09-29 | 2008-04-03 | Microsoft Corporation | Data normalization |
US7797453B2 (en) | 2006-09-29 | 2010-09-14 | Microsoft Corporation | Resource standardization in an off-premise environment |
US8073681B2 (en) | 2006-10-16 | 2011-12-06 | Voicebox Technologies, Inc. | System and method for a cooperative conversational voice user interface |
US8261345B2 (en) | 2006-10-23 | 2012-09-04 | Endeavors Technologies, Inc. | Rule-based application access management |
US7941436B2 (en) * | 2006-11-30 | 2011-05-10 | Yahoo, Inc. | Keyword bidding strategy for novel concepts |
US8108390B2 (en) | 2006-12-21 | 2012-01-31 | Yahoo! Inc. | System for targeting data to sites referenced on a page |
US7882268B1 (en) * | 2007-02-01 | 2011-02-01 | Google Inc. | UDP transport for web services |
US7818176B2 (en) | 2007-02-06 | 2010-10-19 | Voicebox Technologies, Inc. | System and method for selecting and presenting advertisements based on natural language processing of voice-based input |
US20080229828A1 (en) * | 2007-03-20 | 2008-09-25 | Microsoft Corporation | Establishing reputation factors for publishing entities |
US7788252B2 (en) * | 2007-03-28 | 2010-08-31 | Yahoo, Inc. | System for determining local intent in a search query |
US7774348B2 (en) * | 2007-03-28 | 2010-08-10 | Yahoo, Inc. | System for providing geographically relevant content to a search query with local intent |
US7805450B2 (en) | 2007-03-28 | 2010-09-28 | Yahoo, Inc. | System for determining the geographic range of local intent in a search query |
US8166045B1 (en) | 2007-03-30 | 2012-04-24 | Google Inc. | Phrase extraction using subphrase scoring |
US8166021B1 (en) | 2007-03-30 | 2012-04-24 | Google Inc. | Query phrasification |
US7925655B1 (en) | 2007-03-30 | 2011-04-12 | Google Inc. | Query scheduling using hierarchical tiers of index servers |
US7693813B1 (en) | 2007-03-30 | 2010-04-06 | Google Inc. | Index server architecture using tiered and sharded phrase posting lists |
US8086594B1 (en) | 2007-03-30 | 2011-12-27 | Google Inc. | Bifurcated document relevance scoring |
US7702614B1 (en) | 2007-03-30 | 2010-04-20 | Google Inc. | Index updating using segment swapping |
US7856433B2 (en) * | 2007-04-06 | 2010-12-21 | Yahoo! Inc. | Dynamic bid pricing for sponsored search |
US7672937B2 (en) * | 2007-04-11 | 2010-03-02 | Yahoo, Inc. | Temporal targeting of advertisements |
US20080270228A1 (en) * | 2007-04-24 | 2008-10-30 | Yahoo! Inc. | System for displaying advertisements associated with search results |
US9396261B2 (en) | 2007-04-25 | 2016-07-19 | Yahoo! Inc. | System for serving data that matches content related to a search results page |
US20090006311A1 (en) * | 2007-06-28 | 2009-01-01 | Yahoo! Inc. | Automated system to improve search engine optimization on web pages |
US8019760B2 (en) * | 2007-07-09 | 2011-09-13 | Vivisimo, Inc. | Clustering system and method |
US8117223B2 (en) | 2007-09-07 | 2012-02-14 | Google Inc. | Integrating external related phrase information into a phrase-based indexing information retrieval system |
US7752285B2 (en) | 2007-09-17 | 2010-07-06 | Yahoo! Inc. | Shortcut sets for controlled environments |
US8583617B2 (en) | 2007-09-28 | 2013-11-12 | Yelster Digital Gmbh | Server directed client originated search aggregator |
US8892738B2 (en) | 2007-11-07 | 2014-11-18 | Numecent Holdings, Inc. | Deriving component statistics for a stream enabled application |
US8140335B2 (en) | 2007-12-11 | 2012-03-20 | Voicebox Technologies, Inc. | System and method for providing a natural language voice user interface in an integrated voice navigation services environment |
US9498714B2 (en) | 2007-12-15 | 2016-11-22 | Sony Interactive Entertainment America Llc | Program mode switching |
US8968087B1 (en) | 2009-06-01 | 2015-03-03 | Sony Computer Entertainment America Llc | Video game overlay |
US8613673B2 (en) * | 2008-12-15 | 2013-12-24 | Sony Computer Entertainment America Llc | Intelligent game loading |
US8805774B2 (en) * | 2008-02-19 | 2014-08-12 | International Business Machines Corporation | Method and system for role based situation aware software |
US8515946B2 (en) * | 2008-02-28 | 2013-08-20 | Microsoft Corporation | Location description for federation and discoverability |
US20090235167A1 (en) * | 2008-03-12 | 2009-09-17 | International Business Machines Corporation | Method and system for context aware collaborative tagging |
US8261334B2 (en) | 2008-04-25 | 2012-09-04 | Yodlee Inc. | System for performing web authentication of a user by proxy |
US8589161B2 (en) | 2008-05-27 | 2013-11-19 | Voicebox Technologies, Inc. | System and method for an integrated, multi-modal, multi-device natural language voice services environment |
US9305548B2 (en) | 2008-05-27 | 2016-04-05 | Voicebox Technologies Corporation | System and method for an integrated, multi-modal, multi-device natural language voice services environment |
US8307066B2 (en) | 2008-06-06 | 2012-11-06 | International Business Machines Corporation | Automated digital media content filtration based on relationship monitoring |
KR101574603B1 (ko) | 2008-10-31 | 2015-12-04 | 삼성전자주식회사 | 컨디셔널 프로세싱 방법 및 장치 |
US8805861B2 (en) * | 2008-12-09 | 2014-08-12 | Google Inc. | Methods and systems to train models to extract and integrate information from data sources |
JP5576605B2 (ja) * | 2008-12-25 | 2014-08-20 | パナソニック株式会社 | プログラム変換装置およびプログラム変換方法 |
US8135739B2 (en) * | 2008-12-29 | 2012-03-13 | Microsoft Corporation | Online relevance engine |
US20100185672A1 (en) * | 2009-01-21 | 2010-07-22 | Rising Iii Hawley K | Techniques for spatial representation of data and browsing based on similarity |
US8458105B2 (en) * | 2009-02-12 | 2013-06-04 | Decisive Analytics Corporation | Method and apparatus for analyzing and interrelating data |
US20100235314A1 (en) * | 2009-02-12 | 2010-09-16 | Decisive Analytics Corporation | Method and apparatus for analyzing and interrelating video data |
US8326637B2 (en) | 2009-02-20 | 2012-12-04 | Voicebox Technologies, Inc. | System and method for processing multi-modal device interactions in a natural language voice services environment |
US8555359B2 (en) | 2009-02-26 | 2013-10-08 | Yodlee, Inc. | System and methods for automatically accessing a web site on behalf of a client |
BRPI1014397A2 (pt) * | 2009-05-27 | 2016-04-05 | Google Inc | dados de aplicação por computador em resultados de pesquisa |
US9426502B2 (en) | 2011-11-11 | 2016-08-23 | Sony Interactive Entertainment America Llc | Real-time cloud-based video watermarking systems and methods |
US8506402B2 (en) | 2009-06-01 | 2013-08-13 | Sony Computer Entertainment America Llc | Game execution environments |
US9075879B2 (en) | 2009-09-25 | 2015-07-07 | Shady Shehata | System, method and computer program for searching within a sub-domain by linking to other sub-domains |
US8386483B2 (en) * | 2009-10-22 | 2013-02-26 | International Business Machines Corporation | Providing increased quality of content to a user over time |
US9171541B2 (en) | 2009-11-10 | 2015-10-27 | Voicebox Technologies Corporation | System and method for hybrid processing in a natural language voice services environment |
US9502025B2 (en) | 2009-11-10 | 2016-11-22 | Voicebox Technologies Corporation | System and method for providing a natural language content dedication service |
US8387030B2 (en) * | 2009-12-28 | 2013-02-26 | Sap Ag | Service adaptation definition language |
US8676591B1 (en) | 2010-08-02 | 2014-03-18 | Sony Computer Entertainment America Llc | Audio deceleration |
KR102003007B1 (ko) * | 2010-09-13 | 2019-07-23 | 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 | 비디오 서버 및 게임 서버를 포함하는 컴퓨터 게임 시스템에서 컴퓨터 게임을 제공하는 방법 및 시스템 |
US10039978B2 (en) | 2010-09-13 | 2018-08-07 | Sony Interactive Entertainment America Llc | Add-on management systems |
US8874601B2 (en) | 2010-12-17 | 2014-10-28 | Sap Ag | SADL query view—a model-driven approach to speed-up read-only use cases |
FR2993075B1 (fr) * | 2012-07-05 | 2014-08-15 | Bouygues Telecom Sa | Procede de traitement d'une requete de ressources numeriques |
US9223871B2 (en) * | 2012-11-14 | 2015-12-29 | Homer Tlc, Inc. | System and method for automatic wrapper induction using target strings |
US10664534B2 (en) | 2012-11-14 | 2020-05-26 | Home Depot Product Authority, Llc | System and method for automatic product matching |
US10504127B2 (en) | 2012-11-15 | 2019-12-10 | Home Depot Product Authority, Llc | System and method for classifying relevant competitors |
US9928515B2 (en) | 2012-11-15 | 2018-03-27 | Home Depot Product Authority, Llc | System and method for competitive product assortment |
US10290012B2 (en) | 2012-11-28 | 2019-05-14 | Home Depot Product Authority, Llc | System and method for price testing and optimization |
GB2511072A (en) * | 2013-02-22 | 2014-08-27 | Ibm | Non-deterministic finite state machine module for use in a regular expression matching system |
US9172747B2 (en) * | 2013-02-25 | 2015-10-27 | Artificial Solutions Iberia SL | System and methods for virtual assistant networks |
US9501506B1 (en) | 2013-03-15 | 2016-11-22 | Google Inc. | Indexing system |
US20140310208A1 (en) * | 2013-04-10 | 2014-10-16 | Machine Perception Technologies Inc. | Facilitating Operation of a Machine Learning Environment |
US9483568B1 (en) | 2013-06-05 | 2016-11-01 | Google Inc. | Indexing system |
US10242125B2 (en) | 2013-12-05 | 2019-03-26 | Entit Software Llc | Regular expression matching |
JP6452323B2 (ja) * | 2014-05-30 | 2019-01-16 | キヤノン株式会社 | 通信機器、その制御方法、プログラム |
US9626703B2 (en) | 2014-09-16 | 2017-04-18 | Voicebox Technologies Corporation | Voice commerce |
WO2016044321A1 (en) | 2014-09-16 | 2016-03-24 | Min Tang | Integration of domain information into state transitions of a finite state transducer for natural language processing |
WO2016061309A1 (en) | 2014-10-15 | 2016-04-21 | Voicebox Technologies Corporation | System and method for providing follow-up responses to prior natural language inputs of a user |
US9703876B2 (en) * | 2014-11-20 | 2017-07-11 | International Business Machines Corporation | Normalization of confidence thresholds in federated environments |
US10431214B2 (en) | 2014-11-26 | 2019-10-01 | Voicebox Technologies Corporation | System and method of determining a domain and/or an action related to a natural language input |
US10614799B2 (en) | 2014-11-26 | 2020-04-07 | Voicebox Technologies Corporation | System and method of providing intent predictions for an utterance prior to a system detection of an end of the utterance |
JP6566810B2 (ja) * | 2015-09-18 | 2019-08-28 | 株式会社ユニバーサルエンターテインメント | 商業用情報提供システムおよび商業用情報提供方法 |
US10534783B1 (en) | 2016-02-08 | 2020-01-14 | Microstrategy Incorporated | Enterprise search |
US10331784B2 (en) | 2016-07-29 | 2019-06-25 | Voicebox Technologies Corporation | System and method of disambiguating natural language processing requests |
CN109188994B (zh) * | 2017-06-30 | 2021-06-08 | 沈阳新松机器人自动化股份有限公司 | 一种梯形图编译方法及相应的plc*** |
WO2022043675A2 (en) * | 2020-08-24 | 2022-03-03 | Unlikely Artificial Intelligence Limited | A computer implemented method for the automated analysis or use of data |
US11989527B2 (en) | 2021-08-24 | 2024-05-21 | Unlikely Artificial Intelligence Limited | Computer implemented methods for the automated analysis or use of data, including use of a large language model |
US11977854B2 (en) | 2021-08-24 | 2024-05-07 | Unlikely Artificial Intelligence Limited | Computer implemented methods for the automated analysis or use of data, including use of a large language model |
US11989507B2 (en) | 2021-08-24 | 2024-05-21 | Unlikely Artificial Intelligence Limited | Computer implemented methods for the automated analysis or use of data, including use of a large language model |
US11875127B2 (en) * | 2021-08-27 | 2024-01-16 | International Business Machines Corporation | Query response relevance determination |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06162102A (ja) * | 1992-11-26 | 1994-06-10 | Nippon Telegr & Teleph Corp <Ntt> | 内容抽出装置 |
JPH07152780A (ja) * | 1993-11-30 | 1995-06-16 | Nippon Telegr & Teleph Corp <Ntt> | データベース自動作成装置 |
JPH07271822A (ja) * | 1994-04-01 | 1995-10-20 | Matsushita Electric Ind Co Ltd | 情報検索装置 |
JPH09503088A (ja) * | 1994-02-28 | 1997-03-25 | エイ・ティ・アンド・ティ・コーポレーション | 情報を検索するための装置と方法 |
JPH09218880A (ja) * | 1996-02-09 | 1997-08-19 | Dainippon Screen Mfg Co Ltd | ドキュメントデータ検索システム |
JPH1063681A (ja) * | 1996-08-23 | 1998-03-06 | Toshiba Corp | 情報検索システム |
JPH1063680A (ja) * | 1996-08-23 | 1998-03-06 | Toshiba Corp | 情報検索システム |
JPH1091647A (ja) * | 1996-05-29 | 1998-04-10 | Fujitsu Ltd | 情報源に関する知識を協調的に活用する情報アクセス装置および方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3088171B2 (ja) * | 1991-02-12 | 2000-09-18 | 三菱電機株式会社 | 自己組織型パタ−ン分類システム及び分類方法 |
JPH077422B2 (ja) * | 1991-08-23 | 1995-01-30 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータ処理データベース・システムにおけるジョインの実行方法及びシステム |
US5600789A (en) * | 1992-11-19 | 1997-02-04 | Segue Software, Inc. | Automated GUI interface testing |
JP2994926B2 (ja) * | 1993-10-29 | 1999-12-27 | 松下電器産業株式会社 | 有限状態機械作成方法とパターン照合機械作成方法とこれらを変形する方法および駆動方法 |
US5481712A (en) * | 1993-04-06 | 1996-01-02 | Cognex Corporation | Method and apparatus for interactively generating a computer program for machine vision analysis of an object |
US5660789A (en) * | 1993-06-17 | 1997-08-26 | Montell North America Inc. | Spinning process for the preparation of high thermobondability polyolefin fibers |
US5724567A (en) * | 1994-04-25 | 1998-03-03 | Apple Computer, Inc. | System for directing relevance-ranked data objects to computer users |
US5680619A (en) * | 1995-04-03 | 1997-10-21 | Mfactory, Inc. | Hierarchical encapsulation of instantiated objects in a multimedia authoring system |
US5594462A (en) * | 1995-05-05 | 1997-01-14 | Microsoft Corporation | Calibrating data transmission line spacing on a frame-scanning display device for optically transmitting data to a portable programmable device |
US5721908A (en) * | 1995-06-07 | 1998-02-24 | International Business Machines Corporation | Computer network for WWW server data access over internet |
US5801689A (en) * | 1996-01-22 | 1998-09-01 | Extended Systems, Inc. | Hypertext based remote graphic user interface control system |
US5889992A (en) * | 1996-03-28 | 1999-03-30 | Unisys Corp. | Method for mapping types stored in a model in an object-oriented repository to language constructs for A C binding for the repository |
US5913214A (en) * | 1996-05-30 | 1999-06-15 | Massachusetts Inst Technology | Data extraction from world wide web pages |
US5761436A (en) * | 1996-07-01 | 1998-06-02 | Sun Microsystems, Inc. | Method and apparatus for combining truncated hyperlinks to form a hyperlink aggregate |
US5826258A (en) * | 1996-10-02 | 1998-10-20 | Junglee Corporation | Method and apparatus for structuring the querying and interpretation of semistructured information |
US6006224A (en) * | 1997-02-14 | 1999-12-21 | Organicnet, Inc. | Crucible query system |
-
1997
- 1997-09-19 US US08/933,782 patent/US6085186A/en not_active Expired - Lifetime
- 1997-09-22 CA CA002269227A patent/CA2269227C/en not_active Expired - Fee Related
- 1997-09-22 EP EP97943545A patent/EP1015964B1/en not_active Expired - Lifetime
- 1997-09-22 CN CN97199793A patent/CN1249042A/zh active Pending
- 1997-09-22 JP JP10515013A patent/JP2001501003A/ja active Pending
- 1997-09-22 SG SG1999001396A patent/SG64654A1/en unknown
- 1997-09-22 AU AU44994/97A patent/AU731420B2/en not_active Ceased
- 1997-09-22 WO PCT/US1997/017132 patent/WO1998012881A2/en not_active Application Discontinuation
- 1997-09-22 KR KR1019990702418A patent/KR20000048514A/ko not_active Application Discontinuation
- 1997-09-22 AT AT97943545T patent/ATE255246T1/de not_active IP Right Cessation
- 1997-09-22 NZ NZ335247A patent/NZ335247A/xx not_active IP Right Cessation
- 1997-09-22 IL IL12906697A patent/IL129066A/en not_active IP Right Cessation
-
1999
- 1999-05-12 US US09/310,899 patent/US6102969A/en not_active Expired - Lifetime
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06162102A (ja) * | 1992-11-26 | 1994-06-10 | Nippon Telegr & Teleph Corp <Ntt> | 内容抽出装置 |
JPH07152780A (ja) * | 1993-11-30 | 1995-06-16 | Nippon Telegr & Teleph Corp <Ntt> | データベース自動作成装置 |
JPH09503088A (ja) * | 1994-02-28 | 1997-03-25 | エイ・ティ・アンド・ティ・コーポレーション | 情報を検索するための装置と方法 |
JPH07271822A (ja) * | 1994-04-01 | 1995-10-20 | Matsushita Electric Ind Co Ltd | 情報検索装置 |
JPH09218880A (ja) * | 1996-02-09 | 1997-08-19 | Dainippon Screen Mfg Co Ltd | ドキュメントデータ検索システム |
JPH1091647A (ja) * | 1996-05-29 | 1998-04-10 | Fujitsu Ltd | 情報源に関する知識を協調的に活用する情報アクセス装置および方法 |
JPH1063681A (ja) * | 1996-08-23 | 1998-03-06 | Toshiba Corp | 情報検索システム |
JPH1063680A (ja) * | 1996-08-23 | 1998-03-06 | Toshiba Corp | 情報検索システム |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008512906A (ja) * | 2005-04-29 | 2008-04-24 | フアウェイジシュヨウシアンゴンシ | Ipドメイン間の相互接続を構成する方法、システムおよび装置 |
JP4937913B2 (ja) * | 2005-04-29 | 2012-05-23 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | Ipドメイン間の相互接続を構成する方法、システムおよび装置 |
US9525583B2 (en) | 2005-04-29 | 2016-12-20 | Huawei Technologies Co., Ltd. | Method, system and device for implementing interconnection between IP domains |
Also Published As
Publication number | Publication date |
---|---|
EP1015964A4 (en) | 2001-12-05 |
AU731420B2 (en) | 2001-03-29 |
US6085186A (en) | 2000-07-04 |
EP1015964A2 (en) | 2000-07-05 |
CA2269227C (en) | 2002-07-09 |
CA2269227A1 (en) | 1998-03-26 |
WO1998012881A2 (en) | 1998-03-26 |
ATE255246T1 (de) | 2003-12-15 |
IL129066A0 (en) | 2000-02-17 |
IL129066A (en) | 2004-01-04 |
KR20000048514A (ko) | 2000-07-25 |
CN1249042A (zh) | 2000-03-29 |
WO1998012881A3 (en) | 1998-04-30 |
EP1015964B1 (en) | 2003-11-26 |
US6102969A (en) | 2000-08-15 |
SG64654A1 (en) | 2001-05-22 |
AU4499497A (en) | 1998-04-14 |
NZ335247A (en) | 2000-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2001501003A (ja) | ネットワーク情報にアクセスするための方法とシステム | |
US6546388B1 (en) | Metadata search results ranking system | |
US8335779B2 (en) | Method and apparatus for gathering, categorizing and parameterizing data | |
US5956720A (en) | Method and apparatus for web site management | |
US6671681B1 (en) | System and technique for suggesting alternate query expressions based on prior user selections and their query strings | |
US5737592A (en) | Accessing a relational database over the Internet using macro language files | |
US6055538A (en) | Methods and system for using web browser to search large collections of documents | |
Mendelzon et al. | Querying the world wide web | |
US7502779B2 (en) | Semantics-based searching for information in a distributed data processing system | |
US20050262056A1 (en) | Method and system for searching source code of computer programs using parse trees | |
US6571243B2 (en) | Method and apparatus for creating extractors, field information objects and inheritance hierarchies in a framework for retrieving semistructured information | |
JP4264118B2 (ja) | ネットワーク上の異なる情報源から情報を構成する方法 | |
EP0958541B1 (en) | Intelligent network browser using incremental conceptual indexer | |
JP5114380B2 (ja) | 検索結果の関連性の再ランク付けおよびその増強 | |
US8510339B1 (en) | Searching content using a dimensional database | |
US20020010709A1 (en) | Method and system for distilling content | |
US20040249824A1 (en) | Semantics-bases indexing in a distributed data processing system | |
JP2006525601A (ja) | 概念ネットワーク | |
KR20020001527A (ko) | 웹기반의 검색 엔진 질의어를 공유하기 위한 시스템 및 방법 | |
US20040049495A1 (en) | System and method for automatically generating general queries | |
US6598040B1 (en) | Method and system for processing electronic search expressions | |
Mihaila et al. | Querying the world wide web | |
JPH10260978A (ja) | 情報収集方法及び装置 | |
US20050033732A1 (en) | Search engine having navigation path and orphan file features | |
US20050060291A1 (en) | Method and apparatus for searching universal resource identifiers |