JP2012150822A - コマンド索引のためのローカル記憶装置および拡張記憶装置を使用したコマンドスクリプトの解釈 - Google Patents

コマンド索引のためのローカル記憶装置および拡張記憶装置を使用したコマンドスクリプトの解釈 Download PDF

Info

Publication number
JP2012150822A
JP2012150822A JP2012039429A JP2012039429A JP2012150822A JP 2012150822 A JP2012150822 A JP 2012150822A JP 2012039429 A JP2012039429 A JP 2012039429A JP 2012039429 A JP2012039429 A JP 2012039429A JP 2012150822 A JP2012150822 A JP 2012150822A
Authority
JP
Japan
Prior art keywords
function
user
parameter
command
data storage
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.)
Granted
Application number
JP2012039429A
Other languages
English (en)
Other versions
JP5431513B2 (ja
Inventor
John Aman Philip
アマン、フィリップ、ジョン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Quantitative Analytics Inc
Original Assignee
Quantitative Analytics Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Quantitative Analytics Inc filed Critical Quantitative Analytics Inc
Publication of JP2012150822A publication Critical patent/JP2012150822A/ja
Application granted granted Critical
Publication of JP5431513B2 publication Critical patent/JP5431513B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

【課題】スクリプト言語で書かれたコマンドスクリプトの内容を解釈し、処理できるデータベース・コマンド・パーサーを提供する。
【解決手段】データ記憶装置230および当該記憶装置と同程度には高速ではないデータ記憶装置170が提供される。各データ記憶装置は、関数名および関連付けられたパラメータ仕様のパラメータリストを含む関数シグネチャ定義を含む。前記記憶装置230は完了にデータ検索を必要としないコマンドに関連付けられた関数名を含む。前記データ記憶装置170は、完了にデータ検索を必要とするコマンドに関連付けられた関数名を含む。前記記憶装置230は、前記潜在関数名に一致する関数名および前記解釈された潜在関数の引き数に一致するパラメータリストを有する、関数シグネチャを求めて検索される。一致する関数シグネチャが見出されない場合は、前記データ記憶装置170が、一致する関数シグネチャが検索される。
【選択図】図2

Description

本発明は概してスクリプト言語および関連するパーサーに関し、特に、関係データベースに対して照会できる形式へのコマンドスクリプトの解釈に関する。
データベース言語ではない言語によって書かれたユーザー照会を、関係データベース・サーバー・ソフトウェアなどのデータベース・サーバー・ソフトウェアにとって理解可能な1若しくはそれ以上の照会に処理する照会パーサーが、当技術分野において長い間知られている。これらパーサーは一般に、周知の構造化照会言語(SQL)などのデータベース照会言語を使ってユーザーのコマンドスクリプトを1若しくはそれ以上のデータベース照会コマンドに変換する。
Nobleおよびその他による米国特許第5,634,053号明細書は、グローバルデータベース照会によって参照される個々のデータベースからデータを検索して検索するための、複数の局所的な副照会への前記グローバル照会のフィルタ処理を開示している。
Cochraneおよびその他による米国特許第5,987,455号明細書は、その照会が手続き関数を含むデータベースの照会を対象としている。前記照会はこの手続き関数の内部表示を生成するためにコンパイルされ、前記内部表示を使って前記手続き関数の実行が最適化される。
Jonesおよびその他による米国特許第5,873,083号明細書は、最適化され照会実行計画に変換されたオブジェクト構造の高レベルの集合を生成する構文定義の使用法を開示している。
Martinez−Guerraおよびその他による米国特許第6,523,172号明細書は、データ記憶装置と動的にインターフェースするための、ステートメント解析に関連した構文変換ルールを用いたパーサー変換器を開示している。
これらおよびその他の従来技術のデータベースパーサーはよく機能したものの、動作可能な性質で、完了のためにデータ検索を必要としない1組の限定的なコマンドが、データベース・コマンド・パーサーによって比較的高速なアクセスが可能な局所記憶装置を使ってネイティブに認識され、かつデータ検索並びにユーザー定義関数を必要とするかなり、より大きな1組の関数が、それほど高速のアクセスができない補助データ記憶装置に関連して認識される、階層的な多段コマンド索引機能を含む前記コマンドパーサーが提供されることが望ましい。
本発明の更なる目的は、市販の業務用アプリケーション、ウェブブラウザー、および特注のアプリケーションを含む種々の情報源からコマンドスクリプトを受信し、処理することのできるデータベース・コマンド・パーサーを提供することにある。
本発明のもう1つの目的は、スクリプト言語、およびユーザー定義関数の作成、またはそれらの発呼者がユーザー定義関数のランタイム実行を「素早く」変更または書き換えできるユーザー定義関数を含む、前記コマンド言語に対する拡張を容易にする関連コマンドパーサーを提供することにある。
本発明の更にもう1つの目的は、パーサーおよびスクリプト言語に関連付けられて、関係データベースから相対的日付仕様および周期的日付間隔を含む様々な方法でデータが検索されるべき日付をユーザーが特定できる、柔軟な日付エンジンを提供することにある。
これらおよびその他の本発明の望ましい特徴が、本明細書、請求の範囲、および図面に照らして明らかにされるであろう。
本発明は、実行されるために送信されたコマンドスクリプトの内容を解釈し、検証するコンピュータによる方法を対象とする。このようなコマンドスクリプトは、例えば、クライアント/サーバーアーキテクチャを有するデータベース照会および検索システムとの関連で提供される。好適な1実施形態において、実行のために送信された前記コマンドスクリプトの前記内容の前記解釈および検証は、少なくとも1つのトークンを含みスクリプト言語で書かれたコマンドスクリプトを提供する工程を含む。高速アクセス可能な第1のデータ記憶装置は、少なくとも1つの主関数のシグネチャの定義を含む。この主関数のシグネチャの定義は、完了のためにデータ検索を必要としない動作コマンドに関連付けられた主関数名、ならびに前記主関数名に関連し、ゼロ若しくはそれ以上のパラメータ仕様を有する主パラメータリストを含む。
更に、前記第1のデータ記憶装置と同程度の高速アクセスが可能ではない第2のデータ記憶装置が提供されている。この第2のデータ記憶装置は同様に、完了のためにデータ検索を必要とするコマンドに関連付けられた、および/またはユーザー定義関数に関連付けられた補助関数名を含む、少なくとも1つの補助関数のシグネチャの定義を含む。前記補助関数のシグネチャの定義はまた、前記補助関数名に関連し、ゼロ若しくはそれ以上のパラメータ仕様を有する補助パラメータリストをも含む。
前記パーサーは、前記トークンの少なくとも一部を認識して、定義済み関数に対する参照を前記スクリプト言語で潜在的に表す。この潜在関数参照は、潜在関数名およびゼロ若しくはそれ以上の関連付けられた潜在パラメータである。次に、前記パーサーは定義済み関数に対する前記潜在参照に対応して一致する主関数のシグネチャの定義を求めて前記第1のデータ記憶装置を検索する。前記潜在関数名と一致する主関数名を有する主関数のシグネチャの定義が見出され、前記潜在パラメータの各々が同一の主関数のシグネチャの定義に関連する前記主パラメータリスト内に一致するエントリを有する場合、一致が発生したと判断される。
前記第1のデータ記憶装置内に一致する主関数シグネチャが見出された場合、前記コマンドスクリプト内の前記関数参照は有効とみなされ、それ以上の検索は必要ない。そうでない場合は、前記潜在関数の同様の検索が、今度は前記第2のデータ記憶装置内で再度実行される。具体的には、前記潜在関数名と一致する補助関数名を有し、その中で前記潜在パラメータの各々が同一の補助関数のシグネチャの定義に関連付けられた前記補助パラメータリスト内に一致するエントリを有する、一致する補助関数のシグネチャの定義を求めて前記第2のデータ記憶装置が検索される。前記第2のデータ記憶装置内に一致するエントリが見出された場合、前記コマンドスクリプト内の前記関数参照は有効であるとみなされる。そうでない場合は、無効な関数参照または構文エラーが発生したと判断される。
好適な1実施形態において、前記コマンドスクリプトはクライアントアプリケーションから受信される。また、好適な1実施形態において、前記潜在関数名に一致すると決定された関数名の指定時実行を含む実行計画が作成される。前記実行計画の実行中、関係データベースから検索された結果として生じるデータが結果セット内に組み込まれる。この結果セットが、結果セット識別子に関連付けられて結果受信用サーバー上に格納される。前記結果セット識別子は、前記結果受信用サーバーの識別情報と共に前記クライアントアプリケーションに提供される。前記クライアントアプリケーションは、要求に応答して前記結果受信用サーバーから前記クライアントにその時点で伝送される前記結果セットを求めるこの要求を送信する。
好適な1実施形態において、前記第1のデータ記憶装置および前記第2のデータ記憶装置は、通信ネットワークによって相互接続された個別のコンピュータ上に存在する。好適な1実施形態において、前記コマンドスクリプトを送信する前記クライアントアプリケーションは表計算プログラムを含む。別の好適な1実施形態において、前記クライアントアプリケーションはウェブブラウザーを含む。更に別の好適な1実施形態において、前記クライアントアプリケーションは、アプリケーション・プログラミング・インターフェースによって公開された関数に対して行なわれる呼び出しに応答して、実行のための前記コマンドストリングを構築し送信する前記アプリケーション・プログラミング・インターフェースを含む。
また、好適な1実施形態において、定義済み関数に対する前記参照は、定義済みユーザー定義関数に対する参照である。別の好適な1実施形態において、この参照は、その代わりに、前記スクリプト言語にとってネイティブである定義済み関数に対する参照である。
更に、好適な1実施形態において、前記少なくとも1つのトークンは、その後にオブジェクト階層に配列される構成要素に分解される複数のトークンを含む。
本発明はまた、ユーザー拡張可能なスクリプト言語を提供するコンピュータによる方法を含む。前記スクリプト言語で書かれたユーザー定義関数がデータ記憶装置内に格納されている。それに関連する少なくとも1つのパラメータを含むこのユーザー定義関数、および少なくとも1つの代入記号を含むボディ部は、前記代入記号の代わりに、前記少なくとも1つのパラメータの値が文字列として挿入されるべきであることを示す。前記ユーザー定義関数の特徴を識別する関数シグネチャが、前記データ記憶装置に格納されている。この関数シグネチャは、前記ユーザー定義関数名および前記少なくとも1つのパラメータの仕様を含む。
前記スクリプト言語で書かれたコマンドスクリプトは、前記ユーザー定義関数およびそれに関連する少なくとも1つのパラメータ値に対する参照を含むトークンを含むとして認識される。前記コマンドストリング内に参照される前記ユーザー定義関数の前記ボディ部のコピーが検索される。前記少なくとも1つの代入記号は、前記コピー内で前記トークンの前記少なくとも1つのパラメータ値によって置き換えられる。
次に、前記ユーザー定義関数の前記コピーの前記ボディは、前記スクリプト言語を使って再解釈される。本質的には、前記パーサーは前記変更されたコピーを通じて追加の実行経路を作成する。この再解釈に続いて、前記ユーザー定義関数の前記コピーの前記ボディは、前記データ記憶装置内の前記ユーザー定義関数の前記ボディ内に存在しなかった関数に対する参照を有するトークンを含むとして認識される。このように、前記ユーザー定義関数のランタイム実行は、前記格納済みユーザー定義関数内に含まれていなかった関数の呼び出しを含むように変更される。
また、好適な1実施形態において、前記ユーザー定義関数の前記少なくとも1つのパラメータは、第1のパラメータと第2のパラメータとを含む。前記ユーザー定義関数の前記少なくとも1つの代入記号は、第1および第2の代入記号の代わりにそれぞれ前記第1および第2のパラメータの値が文字列として挿入されるべきであることを示す前記第1の代入記号と前記第2の代入記号とを含む。
この好適な1実施形態において、前記関数シグネチャ内の前記少なくとも1つのパラメータの前記仕様は、前記第1および第2のパラメータの仕様を含む。加えて、前記認識されたトークンに関連する前記少なくとも1つのパラメータ値は、第1のパラメータ値および第2のパラメータ値を含む。更に、前記コピー内の前記第1の代入記号は、前記トークンの前記第1のパラメータ値によって置き換えられ、前記コピー内の前記第2の代入記号は前記トークンの前記第2のパラメータ値によって置き換えられる。このように、前記ユーザー定義関数のランタイム実行は、関数の呼び出しを含むように変更され、前記呼び出された関数名の少なくとも一部が前記第1のパラメータ値および前記第2のパラメータ値を含む。
図1は、本発明による、クライアント/サーバー型コマンドスクリプトの解釈およびデータ検索のシステム全体のブロック図である。 図2は、図1のウェブサーバーの、特にパーサーによるローカル主関数記憶装置および補助関数データベースの使用法を示すブロック図である。 図3は、本発明のコマンドの解釈およびデータベース検索関数の工程フロー図である。 図4は、コマンドスクリプトの例である。 図5は、図4のコマンドスクリプトの例の解釈をオブジェクト階層で示した樹形図である。 図6は、コマンドの解釈のシンボル変換の段階を図示したものである。 図7は、本発明によるユーザー定義関数の、特にスクリプト言語の文字列代入機能を示す例である。
本発明では多くの異なる形式による実施形態が可能であるが、本開示は本発明の原理の例示として解釈されるべきであり、本発明を図示された実施形態に限る事を意図しないという理解の下に、幾つかの具体的な実施形態が前記図面によって示され、詳細に説明される。
本発明を具体化したクライアント/サーバー型コマンドスクリプトの解釈およびデータベース照会および検索のシステム全体のブロック図を、複数のパーソナルコンピュータ130を含めて図1に示す。図1に示すように、これらのパーソナル・コンピュータ・クライアントは、スクリプト言語で書かれた一連の関数参照を含むコマンドスクリプトを有するコマンドストリングの形式で、様々な方法でデータ要求を送信できる。例えば、送信のためのコマンドストリング全体を生成し、実行のために前記コマンドストリングを送信するために、ハイパーテキスト記述言語(HTML)、ジャバスクリプトまたはVBスクリプトのようなネイティブスクリプト言語、およびウェブブラウザー160に関連したサード・パーティー・プラグ・インの組み合わせを使用し、アプリケーション・プログラミング・インターフェース(API)を含み、ユーザー供給データおよび選択肢と連動するウェブブラウザー160を使用できる。
または、パーソナルコンピュータ130は、サード・パーティー・プラグ・イン151と共に市販の標準業務用アプリケーション150を使って、前記コマンドストリングを生成できる。本発明の好適な1実施形態において、市販アプリケーション150はマイクロソフトエクセル(登録商標)の表計算プログラムを有する。当技術分野で周知のように、表計算プログラム150の機能性は、表計算プログラムのセル内のユーザー入力に基づいて、実行のためのコマンドスクリプトを構築し送信するために、前記APIに対して関数呼び出しを行なうプラグイン151によって拡張される。マイクロソフトアクセス(登録商標)のデータベースアプリケーションのようなその他の業務用アプリケーションを代わりに使用してもよい。
代わりに、パーソナルコンピュータ130はAPI141と連動して動作する専用の自家製ソフトウェアアプリケーション140を含んでもよい。API141は、例えば、ダイナミック・リンク・ライブラリ(DLL)、コンポーネント・オブジェクト・モデル(COM)のオブジェクト、または専用ソフトウェアアプリケーション140によって直接コンパイルされ得る業者供給のソースコードのライブラリの形式で供給できる。前記APIは、専用ソフトウェアアプリケーション140が、前記APIインターフェースによって発呼者に公開されている関数に対する一連の呼び出しによってコマンドストリングを構築し、送信する一律の事前定義されたインターフェースを有する。プラグイン151もまた、このAPIを参照するものの、前記APIの複雑性は前記業務アプリケーションのユーザーからは遮られている。
ネットワーク接続120は、パーソナルコンピュータ130をルーター110に連結する。好適な1実施形態において、ネットワーク120は比較的高速のインターネットに基づいた接続を有し、パーソナルコンピュータ130が前記コマンドの解釈およびデータベース照会のシステム全体の残りの部分に対して遠隔地にあることを可能とする。ルーター110は、パーソナルコンピュータ130からネットワーク接続120経由で受信したコマンドストリングを含むメッセージパケットを1若しくはそれ以上のウェブサーバー100に送る。ルーター110はまた、ウェブサーバー100からの応答を適切なパーソナルコンピュータに返送する。ルーター110は更に、一体型ファイアウォールを組み込み、前記外部ネットワークを経由した攻撃からウェブサーバー100を保護することができる。または、前記ルーターと前記外部ネットワーク接続の間に別個のファイアウォールを挿入することもできる。
ウェブサーバー100は受信された前記コマンドスクリプトまたはコマンドストリングを解釈して後に実行するソフトウェアアプリケーションを含む。このソフトウェアアプリケーションはXMLウェブ・サービス・インターフェースのような従来の業界標準ウェブ・サービス・インターフェースを含み、ウェブブラウザー160、プラグイン151を経由した市販のアプリケーション150、およびAPI141を経由した自家製アプリケーション140などの標準ウェブサービスをアクセスできる任意の認証された遠隔装置からのコマンドストリングの送信を容易にし得る。または、独自のウェブ・サービス・インターフェースを使用してもよい。
各ウェブサーバー100は補助関数データベース170と連動して着信コマンドストリングを解釈するコマンドパーサーを含む。更に、前記完全に解釈されたコマンドストリングの最終実行のために、前記コマンドパーサーはデータ照会の形式の要求を照会処理データベース171に送信する。照会処理データベース171は、それを受けて読み出し専用データベースサーバー180からデータの取り込みを実行する。好適な1実施形態において、前記補助関数データベースサーバー、照会処理データベースサーバー、および読み出し専用データベースサーバーは全て、Microsoft SQL Server(登録商標)のような市販の関係データベース・ソフトウェア・パッケージを使用する。
図1はコマンド送信、解釈、およびデータ検索のシステム全体の最良の配置図を図示するものの、当技術分野において周知のようなその他の物理構成も予期される。例えば、コンピュータ130は、パーソナルコンピュータではなく、ハンドヘルド計算機、ミニコンピュータ、またはメインフレームコンピュータを有してもよい。更に、ネットワーク120は、インターネットではなく、ローカル・エリア・ネットワークまたはワイド・エリア・ネットワークを有してもよい。ネットワーク120は、無線ネットワークをも有してもよい。スケーラブル・サーバー・クラスタまたは「ウェブファーム」の形式の複数のウェブサーバー100が予期されるが、その代わりに単一ウェブサーバーを使用してもよい。
更には、図1では前記補助関数、照会処理、および読み出し専用のデータベースが2つの物理的に別個のコンピュータ上でホストされているように示されているが、それらは代わりに単一のコンピュータ上に存在してもよい。それどころか、前記データベースサーバーおよびウェブサーバーが全て単一のコンピュータ上に存在してもよく、またはその代わりに、前記データベースサーバー、ウェブサーバー、およびクライアントコンピュータ130が全て単一の中央集権型コンピュータシステムに凝縮されてネットワークの必要性を完全に排除してもよい。更には、図1には、APIと連動する比較的高度なコマンドスクリプトの構築および送信の手段が示されているものの、代わりにこれらはユーザーによる平文形式の直接入力のような、より直接的な方法で送信されてもよい。
図2はウェブサーバー100を、ウェブサービス200を含んでより詳細に示している。ウェブサービス200は更に、コマンド・スクリプト・パーサー210を含む。図2に示すように、前記コマンドパーサーはまた、好ましくは前記ウェブサーバー内にある局所関数記憶装置230をアクセスする。更に、前記コマンドパーサーは前記補助関数データベース170並びに、それを受けて読み出し専用データベースサーバー180をアクセスする照会処理データベース171をアクセスする。照会処理ベータベース172はまた、コマンドパーサー210によってアクセスされる日付エンジン172をも含む。図1および図2に示すように、読み出し専用データベース180は、データ源181、182、および183などの複数のデータ源からのデータを有することができる。これらデータ源は、第三者によってホストされる個別の物理データベースまたは前記読み出し専用データベースサーバー内の個別のデータベース上に存在し得るものの、これら多様な情報源からのデータは連合され、共通の中央集権型データベース形式に標準化されることが好ましい。この多様な情報源からのデータの標準化は、複数の情報源からの複雑な金融データを照会する時に大変望ましい。特に、さもなければ種々の異なる表構造に格納されることになるであろうデータをアクセスするために、前記解釈されたコマンドストリングによって生成された要求を「大急ぎで」フォーマットする必要がなく、その代わりにより均一な単一の情報源を照会できるので、前記標準化されたデータは概してはるかに高速にアクセスできる。主関数記憶装置230は、加算、減算、順位付け、および分類などの動作可能な性質であり、完了のために一切のデータ検索を必要としないコマンドの関数定義のみを含むことが好ましい。補助関数データベース170は、主関数記憶装置230に格納されたコマンドとは異なり、完了のためにデータ検索を必要とするコマンドの関数定義のみを含むことが好ましい。
前記クライアントからの前記コマンドスクリプトまたはコマンドストリングの発行、前記ウェブサーバーにおける前記要求の受信および解釈、一般に前記読み出し専用データベースからの1若しくはそれ以上のデータの取り込みの実行を含む、前記要求の実行、前記結果の前記クライアントへの提供、および前記クライアントによる前記結果の検索に伴う主な工程を図示したフロー図を図3に示す。先ず、工程300に示すように、専用アプリケーションおよび前記API、表計算プログラムおよび関連したプラグイン、またはブラウザーアプリケーションを含むクライアントソフトウェアが前記ユーザーによって要求された種々の情報をスクリプト言語で書かれた一連の関数呼び出しを有するコマンドスクリプトに組立て、前記コマンドスクリプトを総合的な要求にまとめる。前記クライアントが、次に工程301においてその要求を圧縮し、前記ウェブサーバーへのデータのより高速な伝送を達成する。次に工程302において、前記圧縮された要求が前記ウェブサービスに送信される。前記クライアントコンピュータを前記ウェブサーバーに接続するためにインターネットを使用する、好適な1実施形態において、前記圧縮された要求は1若しくはそれ以上のTCP/IPパケットの形式で送信される。
工程303において、前記クライアント要求がウェブサーバーによって受信される。好適な1実施形態のように「ウェブファーム」またはサーバークラスタが使用されていると、最初のウェブサーバーが前記着信要求を最初に受信し、それを後続の処理のために前記クラスタ内の特定のウェブサーバーに割り当てる。次に工程304において、前記要求の処理を最終的に割り当てられたウェブサーバーが、工程301における前記クライアントによって実行された前記圧縮動作の逆を実行して前記着信要求を解凍する。前記着信要求が解凍されると、その中に含まれる前記コマンドスクリプトまたはコマンドストリングは処理可能状態となる。先ず工程304に示すように、前記クライアントによって送信されたコマンドストリングがオブジェクト階層に細分化される。コマンドストリングの見本を図4に示し、このコマンドストリングの要素のオブジェクト階層への分解を図5に示す。図4を参照して、前記コマンドストリングの見本は、区切り文字によって分離された一連の個別トークンを有するものとして示される。図4の例において、各区切り文字は、「より小なり」文字、2本の垂直線文字、および「より大なり」文字の一列4文字を有する。図4の例には専用の区切り文字を示すが、代わりに拡張マーク付け言語(XML)などの業界標準形式を使用してもよい。図4に示す最後のトークン、END_BUNDLEは、バンドルに関連付けられる1組のコマンドの終わりを区分けするために使用される。バンドルとは、金融記号の同一組に適用される1組の結果、またはその他の形式で照会されているデータである。図4の例では前記コマンドストリングは単一バンドルを含むが、前記パーサーは単一コマンドストリング内で複数のバンドルを連続して受け付けることができる。
図5は、図4のコマンドストリング400がオブジェクト階層500に細分化される様子を詳細に示す。図5に示すように、図4の第1のトークンがTICKER_LIST()と名付けられた潜在的に有効な関数参照、およびこの潜在関数の下の第2の階層上の、前記潜在関数のパラメータまたは引き数として認識されるIBMというストリングリテラルに細分化される。同様に、図5において、図4のコマンドストリング内の第2のトークンは、前記潜在的に有効な関数参照CA_SALES()を有する第1の階層、および前記第2の階層上の5/25/04の日付形式の値、および、ocyおよびmというストリングリテラルの3エントリを有するオブジェクトに構築されるものとして示される。前記コマンドストリングの例内の第3のトークンは、SLOPE()と名付けられた前記潜在的に有効な関数参照を有する第1の階層、CQ_EPS()と名付けられた前記潜在的に有効な関数参照を有する第2の階層、および、0および−10の数値を含む第3の階層の3階層のオブジェクトに細分化される。
もう一度図3を参照して、オブジェクト階層の作成に続いて、前記コマンドストリングの処理における次の工程は動作関数索引306である。動作関数索引の第1の部分はネイティブに、または局所的に前記パーサーにとって既知の記号の変換である。これらは、例えば加算、減算、順位付け、および分類に関連するもの、並びに対応するネイティブ関数に変換される数学記号のような記号などの、動作可能な性質のコマンドを含む。算術記号の関連付けられた数学的関数への変換の例を図6に示す。ストリングリテラルに適用される算術演算子を含む数式600を示す。この例において、前記ストリングリテラルまたは変数は、文字a、b、c、およびdによって表される。前記数式は、a+bの加算、この和からのcの減算、およびこの結果として生じる中間値のdによる除算を示す。図6の右側には、これら記号が、前記コマンドスクリプトの関連付けられた部分の書き換え、および対応する適切な関数参照による前記記号の置き換えによって変換されている。図6に示すように、前記変換された記号610は3つの入れ子関数を含んだ。最も内側の「add」関数は変数aおよびbに適用される。その外側の関数「sub」は前記加算関数および前記変数cに適用される。最も外側の関数「diva」、前記除算関数は変数dと共に「sub」関数の結果に適用される。
この記号変換の段階で、予備的なエラー検査が実行され、構文エラーが発生した場合、前記コマンドスクリプトの継続処理が拒絶される。前記動作関数索引工程が完了した時、前記オブジェクト階層は、既知の記号を置き換えた適切な関数参照で、部分的に書き換えられている。更に、動作可能な性質であり、従って前記パーサーにとって局所的に既知であるそれら関数もまたこの時に変換される。これは、前記コマンドストリング内で特定され、前記オブジェクト階層内の適切な位置にある各関数が局所的に既知の関数であるかどうかを決定するために、図2の前記比較的高速でアクセス可能な局所関数記憶装置230を調べることによって達成される。
図4の前記コマンドスクリプトの例において、TICKER_LIST()は、その関連するパラメータ、この場合、前記記号IBMが、前記関連する照会の首題が総じてIBMコーポレーション(International Business Machines Corporation)の株の株式、利益、配当など(即ち、株価表示機から選択されたエントリ)に関する金融情報の検索に関連することを示すネイティブな、または局所的な動作関数である。更に、図4の前記コマンドスクリプトの例において、前記関数SLOPE10()もまた局所関数記憶装置に格納され、かつ前記パーサーにとってネイティブに既知である関数であり、前記解析関数勾配または経時変化率が、10日間の単位で考慮されたデータを使って決定されることを示す。これら、および前記ユーザーの照会に関連する一般的な分野でよく使われ、送信されたコマンドスクリプト内で比較的頻繁に発生すると予期されるその他の関数は同様に前記パーサーにとってネイティブに既知である関数とされることが好ましい。
当技術分野において周知のように、この局所的な比較的高速の索引は幾つかの異なる方法で実行できる。例えば、前記局所的に既知の関数名は比較的小さなファイルおよび局所ハードディスク上、または局所的なランダム・アクセス・メモリーまたは読み出し専用メモリー内に格納することができる。関数名はアルファベット順の表に、順番に格納して逐次検索を容易にすることができる。または、前記関数名はより高速な所在特定および検索のための索引を付けてもよい。データは迅速な検索のために2進木、平衡木、または多元木に構築して2進検索法またはその他のB木検索法を容易にすることができる。更に、当技術分野において周知のように、ハッシュ法などの高速メモリーアクセス法を使って、前記特定された関数名が前記局所関数記憶装置内に存在するかどうかを迅速に決定できる。内容検索型メモリーなどの専用の検索高速化ハードウェアを使うこともできる。好適な1実施形態において、約300乃至400の関数がよく使われるとみなすことができ、この局所関数記憶装置内にこれらを格納できる。
動作可能な性質の、局所メモリーに格納され、かつ前記パーサーによって高速でアクセス可能な各々局所的に既知の関数は、好適な1実施形態において、付加的記述情報と共に関数シグネチャの形式で前記局所関数記憶装置に格納されている。更に、データ検索に関連し、またはデータ検索を伴い、局所的に既知ではない関数は関数シグネチャに関連付けられる前記補助関数データベースに格納される。局所記憶装置内の動作関数に関連するにしろ、前記補助関数データベース内のデータ検索関数に関連するにしろ、各関数シグネチャは記述情報を含み、前記関数名、および前記関数呼び出しに対する引き数として提出されたパラメータが存在する場合はその予期されるパラメータの特性の両方を識別する。パラメータが存在する場合、その各々について、その名称、データの種類、前記パラメータリスト内の既定位置、および(前記コマンドストリング内の特定の関数呼び出し内で前記関連付けられるパラメータ値が前記ユーザーによって供給されない場合に自動的に代入されるべき)既定値もまた特定される。パラメータはコマンド内のトークンを一致させるためには使われないことに注目すべきである。その代わりに、一旦トークンが(動作可能コマンドに関連付けられる)前記主関数記憶装置または(データ検索を伴うコマンドに関連付けられる)前記補助関数データベース内のコマンドに一致すると判断されると、前記一致した関数のパラメータリストが読み込まれ、前記パラメータが特に前記ユーザーによって正しく特定されたと検証する関数に関連付けられるパラメータがある場合、そのパラメータの細分化を開始するために使用される。
図3を参照して、前記動作関数索引の工程に続いて、データ検索関数索引307が実行される。この工程において、ネイティブに既知でなく局所関数記憶装置に格納されていない前記潜在関数名の全てを認識しようとして、前記補助関数データベースが前記パーサーによって調べられる。本質的に、これはまだ変換されていない全ての潜在関数名を含む。前記補助関数データベースは一般に、前記読み出し専用データベースから1若しくはそれ以上のデータ取り込みを必要とするデータ検索に関する多くの関数、並びに前記ユーザーによって前記現行のコマンドストリング内で、または同一のユーザーによって送信された以前のコマンドスクリプトの処理中に特別に作成された、または前記現行ユーザーと同じ企業内の別のユーザーのようなもう一人のユーザーによって送信された、新しい関数の両方を含む。ユーザー定義関数は、前記関数を表す名称と、前記関数内に受け付けられる前記パラメータが存在する場合にはそのパラメータを記述するシグネチャと、および前記データ検索動作を実行するために使用される前記データ格納手順またはその他の関数を含む公式のどちらかとからなる。ユーザー定義関数のパラメータは前記データ検索動作の性質および特性を記述するために使用でき、または前記関数の公式内の文字代入に、前記関数の公式が実行中に変更可能であるように使用できる。好適な1実施形態において、定義済み関数およびユーザー定義関数の両方を含む数千若しくはそれ以上の関数が前記補助関数データベース内に格納できる。
前記データ格納関数に関連付けられる幾つかの関数パラメータ値について、周知の、またはよく使用される略号が前記パーサーにとってネイティブに既知である。例えば、日付値を予期するパラメータについて、前記現在日を特定するためにゼロの値を使うことができる。更に、通貨の種類の特定を予期するパラメータについて、USDは米国ドルを意味することが前記パーサーにとってネイティブに既知である。
前記補助関数データベース内に格納された各定義済みシステム関数またはユーザー定義関数について関数シグネチャが格納され、前記局所関数記憶装置内に収容された関数のシグネチャと同様の内容および様式の情報を収容している。好適な1実施形態において、前記補助関数データベースはMicrosoft SQL Server(登録商標)のデータベースであり、一般に前記要求側パーサーを実行中の前記ウェブサーバー以外のコンピュータ上に存在する。前記補助関数データベース内に未変換の関数名が存在するかどうかを決定するために、前記パーサーが、前記補助関数データベース内に格納されたGETFUNCTION()と名付けられた定義済みの手順を呼び出す。格納された前記GETFUNCTION()手順は前記特定された関数名が既知である場合に前記シグネチャを返信するか、もしくは前記特定された関数名が前記補助関数データベース内に格納されていないことの表示を返信する。図4および図5の例において、前記関数CA_SALES()およびCQ_EPS()はユーザー定義関数ではなく、前記補助関数データベース内に格納された関連関数シグネチャを有するシステム定義関数である。各関数の最初の文字Cは金融データの特定の第三者情報源を識別する。第1の関数において、A_SALESは年間売り上げを示し、前記第2の関数においてQ_EPSは1株当り利益を表す。前記関数索引工程は、前記コマンドスクリプト内の全ての未変換の潜在関数名が前記補助関数データベースに対して検査された時に完了する。この時点で、未だに変換されていない関数名が残っている場合、前記コマンドスクリプトが実行できない未知の関数に対する参照を含むので、エラーが発生したと判断される。この場合、前記未変換の関数名に関連付けられる前記コマンド分岐は実行されない。前記コマンドスクリプト全体の、その他完全に変換されたコマンド分岐に関連付けられる部分は依然実行できる。
図3に示すように、関数索引中に全ての変換可能な関数名が変換された後、次の工程は実行計画308の作成である。この工程において、前記パーサーは完全に検証され展開された関数呼び出し参照を含む前記オブジェクト階層を調べ、それらを一連の実行チェーンに変換する。例えば、幾つかの関数は前記階層内の残りのオブジェクトに対して完全に独立し得、直接実行可能である。しかしその他の関数は、更に別の関数の評価次第では、前記特定の関数の実行前に実行されるべき他の関数が実行できることを必要とする事が特定されたパラメータまたは引き数を有する。図4および図5の例において、前記SLOPE10()関数は、前記CQ_EPS()関数の結果が返信完了するまで実行できない。従って、それらの関連パラメータリスト内で識別された全ての要素が完全に変換される前に、関数が早まって実行されないことを保証するために、依存チェーンが作成される。
これを達成するためにツリーデータ構造が作成される。前記オブジェクト階層内の各要素について、前記オブジェクト階層内の親要素の下に発生する子ノードの順序付けられたリストを含むサブツリーが作成される。各子ノードは、前記子ノードが前記親要素の前に実行されるべきことを識別するPRE分類、および前記子ノードの要素が前記親ノードの後に実行されるべきことを特定するPOST分類の2種類の分類の1つを有する。次に、この親/子データ構造は以下の順で帰納的に実行される:各親ノードについて、前記PRE分類された子ノードの内容の全てを実行;現行ノードを実行;次に前記POST分類された子ノードの内容の全てを実行。
図3の工程310に示すように、一旦前記実行計画が作成されると、それが前記パーサーによって実行される。前記実行計画を実行するために、前記パーサーは、前記コマンドストリングからの変換された関数を前記実行計画によって特定された順番で実行するために、前記照会処理データベース内の適切な手順を呼び出す。一般に、前記実行計画内で参照される関数の多くは、前記中間の照会処理データベースへの関数呼び出しによってアクセスされる前記読み出し専用データベースからのデータ検索動作を必要とする。好適な1実施形態において、前記基調となるデータ検索動作は、前記検索されたデータ上で動作する金融分析などの前記関数からは分離されて実行される。これにより、より分離された性質の、従って新たに追加されるデータ検索関数を含むために容易に拡張可能なシステムの構築が可能となる。
前記実行計画全体の個々の動作には、ランダム結果識別番号またはデータIDが割り当てられる。前記オブジェクト階層内の各要素が実行される時、子ノードを有する関数はそれらの子のデータIDを使ってそれらの特定の動作を実行する。このような親ノードはそれを受けて、それらそれぞれの親ノードによって使用されるそれらの独自の結果が存在する場合、その結果のための新たなデータIDを生成する。ルートノードによって実行される最終動作は、関連する親ノードを有しない。この最終動作のデータIDは従って、前記関連するツリー構造全体の最終計算に関連付けられる。次に工程311において、前記ウェブサーバーが前記クライアントに前記結果が使用可能状態であることを通知することで、前記結果が検索されるべき前記結果受信用サーバーの識別情報(即ち、前記補助関数データベースのIPアドレス)、並びに前記データの関連する最終データIDまたは結果識別番号の両方を前記クライアントに通知する。次に工程312に示すように、前記クライアントが前記結果識別番号を前記結果受信用サーバーの特定されたIPアドレスに送ることによりこれら結果を要求する。これら結果は工程313に示すように圧縮され、工程314に示すように前記クライアントのコンピュータに返送される。最後に工程315に示すように、前記クライアントは前記結果を任意の所望の方法で処理する。例えば、前記クライアントは、これら結果を前記ユーザーに送信するためにグラフ、チャート、および/または文字情報を生成する。その代わりに、または追加として、前記クライアントアプリケーションは、前記返送されたデータを使って、APIによって前記データ要求を作成する前記プラグインに関連した表計算ソフトウェアアプリケーション内のセルを埋めることもでき、または前記返送されたデータに基づいて詳細なレポートを作成することもできる。
実際の結果自体ではなく前記結果に対するポインタを最初に返送するこの処理は、データを要求する前記クライアントが前記コマンドスクリプトを解釈する前記ウェブサーバーおよび前記結果を生成するデータサーバーから離れている場合に特に望ましい。例えば、データ伝送に問題がある場合、以前に前記クライアントに送られた前記結果受信用サーバーの識別情報および前記結果識別番号を使って前記データを再度要求することにより、前記結果として生じるデータは前記クライアントによって直ちに再要求できる。
上述のように前記クライアントから受信した前記コマンドストリングはデータプルおよび関連する分析を要求するコマンドストリングであり得るが、本コマンドスクリプト言語および関連付けられたコマンドスクリプトまたはコマンドストリングはその他の機能を有する。例えば、クライアントコンピュータは、前記ウェブサーバーに対するAPI呼び出しを介して、前記スクリプト言語の構文を使って後の呼び出しのためのユーザー定義関数を作成できる。このようなコマンドストリングが受信されると、前記指定されたユーザー定義関数およびそれらの関連関数シグネチャは、その他のユーザー定義関数並びに前記パーサーにとってネイティブに既知ではないその他の比較的使用頻度の低いコマンドと共に前記補助関数データベース内に格納される。
本パーサーによって認識される前記コマンドスクリプト言語によって使用されるフレキシブル文字列代入機能を特に示すユーザー定義関数の例を図7に示す。図7に示すように、ユーザー定義関数User_Func()700は2つのストリングパラメータ、「stat」および「depth」を含むシグネチャを有すると定義される。本スクリプト言語において、番号記号(#)に続き、番号記号と共に丸括弧によって囲まれた変数が前記パーサーによって検出される度に、前記特定された変数の値の直接文字列代入が先ず代入され、次に前記オブジェクト階層の作成、意味論理理解、および関数索引工程の最中に前記パーサーによってデコードされる。図7の前記ユーザー関数User_Func()の仕様によれば、このユーザー関数がコマンドストリング内で前記パーサーによって検出される度に前記「stat」変数のストリング内容によって置き換えられ、前記奥行き変数のストリング内容と連結され、開き括弧と連結され、P_Price(0)関数に対する呼び出しと連結され、閉じ括弧と連結される。図7のコマンドストリングの見本710および720は双方とも前記事前格納されたユーザー定義関数700を参照し、この文字列代入機能を図示している。引き数avgおよび10が(それぞれ「stat」および「depth」パラメータとして)前記User_Func()関数の呼び出しにおいて供給されるコマンドストリング710において、前記パーサーは、これら2つのパラメータ値を、前記ユーザー定義関数内のそれらの特定された位置内に代入し、その結果として生じる文字列avg10(P_Price(0))を完了する。この代入された文字列はこれを受けて、今度は前記指定されたパラメータの前記10日間の平均、この場合には最新の10日間を考慮した現在株価に対応する局所的に認識されるネイティブな関数として前記代入された文字列を含んで、前記コマンドスクリプトの第2の実行経路において前記パーサーによって更に実行される。
もう1つの例として、今度はパラメータ「sum」および[15]を用いて前記コマンドストリング720が再び前記User_Func関数を呼び出すように示す。これは前記パーサーによって文字列の和としてデコードされ、文字列15と連結され、「(P_Price(0))」と連結される。この例720において、このデコードされた文字列は、今度は前記特定されたパラメータの15日分の和、再びこの場合には、考慮される最新の株価として、前記補助関数データベース内に格納された別の関数として前記代入された文字列を含んで、前記コマンドスクリプトの第2の実行経路において前記パーサーによって更に認識される。
図に示すように、前記パーサーによって認識される前記スクリプト言語全体内のこの文字列代入機能は前記ユーザーにかなりの自由度を提供し、それら自体の中には呼び出される関数に対する必要な参照の全てを含まないように前記関数を書く事を可能にする。その代わりに、前記関数は前記ユーザー定義関数に対するパラメータ内で特定できる。更に、前記関数は前記ユーザー定義関数に対する複数のパラメータの組み合わせによって特定できる。図7の前記例において、前記User_Func関数は、このユーザー定義関数の作者であるかも知れずそうでないかも知れないその後の前記関数のユーザーが統計操作および考慮すべき日程の奥行きを個別に特定し、それを受けて「avg10」および「sum15」などの関数索引中に前記パーサーによって認識される中央集権型内部関数を特定することを可能とする。
本スクリプト言語およびその関連するパーサーの更にもう1つの機能は、照会処理データベース171内に図2に示すような日付エンジン172が存在し、コマンドパーサー210と連動して動作することである。金融調査および分析などの多くのアプリケーションにおいて、ほとんど全てのデータ検索は時間を基準として実行される。日付エンジン172は、前記コマンドスクリプトの構文と連動して、個々の日付、開始日および終了日の期間に亘る日付の範囲、並びに特定の間隔、または前記特定された開始日と終了日の間で検索されるべきデータの頻度をユーザーが特定することを可能とする。前記日付エンジンは、5日カレンダーおよび週末を含む7日カレンダーなど、幾つかの特定されたカレンダーを使ってデータを検索する事ができる。更に、例えば特定のラテンアメリカ、ヨーロッパ、アジアおよびアフリカ諸国内の非営業日、週末、および祝日を除き、その点において各カレンダーが特定の週末、祝日、および前記カレンダーに関連する国の国内交換によるその他の非営業日に適合している、国特有のカレンダーを特定することができる。
一般に、コマンドストリングは、現在日の視点から解釈され、実行される。例えば、−10dの日付値は現在日の10日前を意味する。しかし、本発明の一態様において、解釈および実行の目的で現在日を今日以外の日に変更するために、Set_Run_Date()コマンドを呼び出す事ができる。このコマンドが発行されると、−10dのような全ての相対的日付仕様は、今日の日付ではなく設定された前記実行日に基づく。これによって、照会を実行し、データを過去の視点から取り出すことが可能となる。これは、例えば、定期的に実行される特定の照会が以前のある日付で誤って省かれた時に望ましいと考えられる。これはまた、以前のデータを試験台として使った新たなユーザー定義関数の動作および精度を検証するために新たに提案された、過去のデータに対する関数の試験を行なうために望ましいと考えられる。更に、日付エンジン172はまた、「date math」を使うことにより、時間を進めたり戻したりすることで開始日仕様および終了日仕様の両方をユーザーが調整することを可能とする。例えば、「1実週、遡る」ためには「−1aw」が用いられる。ユーザーはまた、時系列を一律に(即ち、全ての日付が同じ量移動する)または非一律に(即ち、各点の日付遅れが異なる)、どちらでも遅らせることができる。日付エンジン172はまた、不連続な時系列を足し合わせて1つの組み合わさった時系列を形成することもできる。
日付頻度の中で前記日付エンジンによって指定され認識され得るのは、毎日、毎週、週内当日まで、実週、毎月、月内当日まで、実月、四半期毎、会計年度四半期内当日まで、毎年、会計年度内当日まで、並びに完全に指定された日、特定年内の特定月などの特定日、および相対的日付である。例えば、「−1/0/0」という特定された日は今日から1ヶ月前を特定する。前記日付の月の部分の「−1」値が現在月から1ヶ月前を特定し、現在日の「0」が今日の日付を特定し、前記年の「0」が現在年を特定する。「−1/−5/−3」という日付仕様は、今日から1ヶ月、5日、および3年前を特定する。「12/31/−1」という日付仕様は、前年の12月31日を特定する。前記パーサーは前記日付エンジンと連動して、データが取り出されるべき日付または日付の集合を決定し、この情報を、データを検索するために最終的に実行される前記実行計画に組み込む。
前出の記述および図面はただ単に本発明を説明して図示するに過ぎず、添付の請求の範囲が、本開示に接した当業者が本発明の範囲から逸脱せずにその中で改良および変更を行なえる範囲に限られることを除いては、本発明はこれに限らない。
本発明のもう1つの目的は、スクリプト言語、およびユーザー定義関数の作成、またはそれらの発呼者がユーザー定義関数のランタイム実行を「素早く」変更または書き換えできるユーザー定義関数を含む、前記コマンド言語に対する拡張を容易にする関連コマンドパーサーを提供することにある。
本発明の更にもう1つの目的は、パーサーおよびスクリプト言語に関連付けられて、関係データベースから相対的日付仕様および周期的日付間隔を含む様々な方法でデータが検索されるべき日付をユーザーが特定できる、柔軟な日付エンジンを提供することにある。
これらおよびその他の本発明の望ましい特徴が、本明細書、請求の範囲、および図面に照らして明らかにされるであろう。
この出願の発明に関連する先行技術文献情報としては、以下のものがある(国際出願日以降国際段階で引用された文献及び他国に国内移行した際に引用された文献を含む)。
米国特許出願公開第2002/0198876号明 米国特許第6,738,781号明細書 米国特許第6,684,204号明細書 米国特許第6,009,422号明細書 米国特許第5,634,053号明細書 米国特許第5,987,455号明細書 米国特許第5,873,083号明細書 米国特許第6,523,172号明細書
ヴァラダラジャンら(Varadarajan et al.)、「SASE:圧縮テキスト検索エンジンの導入、(SASE:Implementation of a Compressed Text Search Engine)」、インターネットテクノロジー及びシステムに関するユーズニックスシンポジウム(USENIX Symposium on Internet Technologies and Systems)、1997年12月、p.1−11

Claims (13)

  1. 実行されるために送信されたコマンドスクリプトの内容を解釈し、検証するコンピュータによる方法であって、
    少なくとも1つのトークンを含み且つスクリプト言語によって書かれたコマンドスクリプトを提供する工程と、
    実質的に高速アクセス可能な第1のデータ記憶装置を提供する工程であって、この第1のデータ記憶装置は、完了のためにデータ検索を必要としない動作コマンドに関連付けらた主関数名を含む少なくとも1つの主関数のシグネチャの定義と、前記主関数名に関連付けられ且つゼロ若しくはそれ以上のパラメータ仕様を有する主パラメータリストとを含むものである、前記提供する工程と、
    実質的に前記第1のデータ記憶装置と同速度の高速アクセスが可能ではない第2のデータ記憶装置を提供する工程であって、この第2のデータ記憶装置は、完了のためにデータ検索を必要とするコマンドに関連付けられた補助関数名を含む少なくとも1つの補助関数のシグネチャの定義と、前記補助関数名に関連付けられ且つゼロ若しくはそれ以上のパラメータ仕様を有する補助パラメータリストとを含むものである、前記提供する工程と、
    前記スクリプト言語において定義済み関数に対する参照を潜在的に表すための前記少なくとも1つのトークンの少なくとも一部分を認識する工程であって、前記関数参照は潜在関数名およびそれに関連付けられたゼロ若しくはそれ以上の潜在パラメータを有するものである、前記認識する工程と、
    前記潜在関数名と一致する主関数名を有する一致主関数のシグネチャの定義を前記第1のデータ記憶装置において検索する工程であって、前記潜在パラメータの各々は同一の主関数のシグネチャの定義に関連付けられた前記主パラメータリスト内に一致するエントリを有するものである、前記検索する工程と、
    一致する主関数のシグネチャの定義が前記第1のデータ記憶装置内に見出されない場合、前記潜在関数名と一致する補助関数名を有する一致補助関数のシグネチャの定義を前記第2のデータ記憶装置において検索する工程であって、前記潜在パラメータの各々は同一の補助関数のシグネチャの定義に関連付けられた前記補助パラメータリスト内に一致するエントリを有するものである、前記検索する工程と
    を有する方法。
  2. 請求項1記載の方法において、この方法は、さらに、
    クライアントアプリケーションから前記コマンドスクリプトを受信する工程と、
    前記潜在関数名と一致すると決定された関数名の指定時実行を含む実行計画を構築する工程と、
    結果データを結果セットへアセンブリすることを含む前記実行計画を実行する工程と、
    結果受信用サーバー上に結果セット識別子と関連付けられた前記結果セットを格納する工程と、
    前記結果セット識別子および前記結果受信用サーバーの識別情報を前記クライアントアプリケーションに提供する工程と、
    前記クライアントアプリケーションからの前記結果セットの要求を前記結果受信用サーバーによって受信する工程と、
    前記要求に応答して、前記結果受信用サーバーからの前記結果セットを前記クライアントアプリケーションに伝送する工程と
    を有するものである。
  3. 請求項1記載の方法において、前記第2のデータ記憶装置は、関係データベースを有するものである。
  4. 請求項1記載の方法において、前記第1のデータ記憶装置および前記第2のデータ記憶装置は、通信ネットワークによって相互接続された個別のコンピュータに存在するものである。
  5. 請求項1記載の方法において、前記コマンドスクリプトはクライアントアプリケーションによって送信実行されるものである。
  6. 請求項5記載の方法において、前記クライアントアプリケーションは表計算プログラムを含むものである。
  7. 請求項5記載の方法において、前記クライアントアプリケーションはウェブブラウザーを含むものである。
  8. 請求項5記載の方法において、前記クライアントアプリケーションは、アプリケーション・プログラミング・インターフェースによって表示された関数に対して行なわれる呼び出しに応答して、前記コマンドストリングを構築および送信して実行するアプリケーション・プログラミング・インターフェースを含むものである。
  9. 請求項1記載の方法において、前記定義済み関数に対する参照は定義済みユーザー定義関数に対する参照である。
  10. 請求項1記載の方法において、前記定義済み関数に対する参照は、前記スクリプト言語にとってネイティブである定義済み関数に対する参照である。
  11. 請求項1記載の方法において、前記少なくとも1つのトークンは複数のトークンを含み、
    前記複数のトークンを構成要素に分解する工程と、
    前記構成要素をオブジェクト階層に配列する工程と
    をさらに有するものである。
  12. ユーザー拡張可能なスクリプト言語を提供するコンピュータによる方法であって、
    前記スクリプト言語で書かれたユーザー定義関数をデータ記憶装置に格納する工程であって、このユーザー定義関数は、当該ユーザー定義関数に関連付けられた少なくとも1つのパラメータと、この少なくとも1つのパラメータの値が代入記号の代わりに文字列として挿入されることを示す少なくとも1つの代入記号を含むボディ部とを含むものである、前記格納する工程と、
    前記ユーザー定義関数の名称および前記少なくとも1つのパラメータの仕様を含み、且つ前記ユーザー定義関数の特徴を識別する関数シグネチャを前記データ記憶装置内に格納する工程と、
    前記スクリプト言語で書かれたコマンドスクリプトを認識して、前記ユーザー定義関数に対する参照とそれに関連する少なくとも1つのパラメータ値とを含むトークンを含む工程と、
    前記コマンドストリングで参照される前記ユーザー定義関数の前記ボディ部のコピーを検索する工程と、
    前記コピー内の前記少なくとも1つの代入記号を前記トークンの前記少なくとも1つのパラメータ値で置き換える工程と、
    前記スクリプト言語を使って前記ユーザー定義関数の前記コピーのボディを再解釈する工程と、
    前記ユーザー定義関数の前記コピーのボディを認識して、前記データ記憶装置における前記ユーザー定義関数の前記ボディに存在していなかった関数に対する参照を有するトークンを含む工程とを有し、
    それによって前記ユーザー定義関数のランタイム解釈が変更されて、前記格納済みユーザー定義関数内に含まれていなかった関数の呼び出しを含むようになるものである
    方法。
  13. 請求項12記載の方法において、
    前記ユーザー定義関数の前記少なくとも1つのパラメータは、第1のパラメータと第2のパラメータとを含むものであり、
    前記ユーザー定義関数の前記少なくとも1つの代入記号は、第1の代入記号と第2の代入記号とを含み、前記第1および第2のパラメータの値がそれぞれ前記第1および第2の代入記号の代わりに文字列として挿入されることを示すものであり、
    前記関数シグネチャ内の前記少なくとも1つのパラメータの前記仕様は、前記第1および第2のパラメータ仕様を含むものであり、
    前記認識されたトークンに関連付けられた前記少なくとも1つのパラメータ値は、第1のパラメータ値と第2のパラメータ値とを含むものであり、
    前記コピー内の前記少なくとも1つの代入記号を前記トークンの前記少なくとも1つのパラメータ値で置き換える工程は、前記コピー内の前記第1の代入記号を前記トークンの前記第1のパラメータ値で置き換える工程と、前記コピー内の前記第2の代入記号を前記トークンの前記第2のパラメータで置き換える工程とを有するものであり、
    それによって、前記ユーザー定義関数のランタイム解釈が変更されて、関数の呼び出しと、前記第1のパラメータ値および前記第2のパラメータ値を含む前記呼び出された関数名の少なくとも一部を含むようになるものである。
JP2012039429A 2004-10-07 2012-02-25 コマンド索引のためのローカル記憶装置および拡張記憶装置を使用したコマンドスクリプトの解釈 Active JP5431513B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/960,218 US7519962B2 (en) 2004-10-07 2004-10-07 Command script parsing using local and extended storage for command lookup
US10/960,218 2004-10-07

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2007535745A Division JP4991040B2 (ja) 2004-10-07 2005-10-05 コマンド索引のためのローカル記憶装置および拡張記憶装置を使用したコマンドスクリプトの解釈

Publications (2)

Publication Number Publication Date
JP2012150822A true JP2012150822A (ja) 2012-08-09
JP5431513B2 JP5431513B2 (ja) 2014-03-05

Family

ID=36146833

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2007535745A Active JP4991040B2 (ja) 2004-10-07 2005-10-05 コマンド索引のためのローカル記憶装置および拡張記憶装置を使用したコマンドスクリプトの解釈
JP2012039429A Active JP5431513B2 (ja) 2004-10-07 2012-02-25 コマンド索引のためのローカル記憶装置および拡張記憶装置を使用したコマンドスクリプトの解釈

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2007535745A Active JP4991040B2 (ja) 2004-10-07 2005-10-05 コマンド索引のためのローカル記憶装置および拡張記憶装置を使用したコマンドスクリプトの解釈

Country Status (5)

Country Link
US (1) US7519962B2 (ja)
EP (1) EP1805608B1 (ja)
JP (2) JP4991040B2 (ja)
SG (1) SG142297A1 (ja)
WO (1) WO2006041813A2 (ja)

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774789B1 (en) 2004-10-28 2010-08-10 Wheeler Thomas T Creating a proxy object and providing information related to a proxy object
US7823169B1 (en) 2004-10-28 2010-10-26 Wheeler Thomas T Performing operations by a first functionality within a second functionality in a same or in a different programming language
US8266631B1 (en) 2004-10-28 2012-09-11 Curen Software Enterprises, L.L.C. Calling a second functionality by a first functionality
JP4972866B2 (ja) * 2005-03-10 2012-07-11 富士通株式会社 変換プログラム
US7797688B1 (en) 2005-03-22 2010-09-14 Dubagunta Saikumar V Integrating applications in multiple languages
US7861212B1 (en) 2005-03-22 2010-12-28 Dubagunta Saikumar V System, method, and computer readable medium for integrating an original application with a remote application
US8578349B1 (en) 2005-03-23 2013-11-05 Curen Software Enterprises, L.L.C. System, method, and computer readable medium for integrating an original language application with a target language application
US20070038641A1 (en) * 2005-08-09 2007-02-15 John Fawcett Systems and methods for automated application updating
US7779396B2 (en) * 2005-08-10 2010-08-17 Microsoft Corporation Syntactic program language translation
JP2009510570A (ja) * 2005-09-26 2009-03-12 コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップ ブラウザ・ウィンドウの制御方法
US7810140B1 (en) 2006-05-23 2010-10-05 Lipari Paul A System, method, and computer readable medium for processing a message in a transport
US7844759B1 (en) 2006-07-28 2010-11-30 Cowin Gregory L System, method, and computer readable medium for processing a message queue
US8589945B2 (en) 2006-09-14 2013-11-19 1060 Research Limited Method for locating, resolving and invoking software functions
US20080120283A1 (en) * 2006-11-17 2008-05-22 Oracle International Corporation Processing XML data stream(s) using continuous queries in a data stream management system
US7660777B1 (en) 2006-12-22 2010-02-09 Hauser Robert R Using data narrowing rule for data packaging requirement of an agent
US7860517B1 (en) 2006-12-22 2010-12-28 Patoskie John P Mobile device tracking using mobile agent location breadcrumbs
US9311141B2 (en) 2006-12-22 2016-04-12 Callahan Cellular L.L.C. Survival rule usage by software agents
US8132179B1 (en) 2006-12-22 2012-03-06 Curen Software Enterprises, L.L.C. Web service interface for mobile agents
US7702602B1 (en) 2006-12-22 2010-04-20 Hauser Robert R Moving and agent with a canonical rule from one device to a second device
US7660780B1 (en) 2006-12-22 2010-02-09 Patoskie John P Moving an agent from a first execution environment to a second execution environment
US7970724B1 (en) 2006-12-22 2011-06-28 Curen Software Enterprises, L.L.C. Execution of a canonical rules based agent
US7698243B1 (en) * 2006-12-22 2010-04-13 Hauser Robert R Constructing an agent in a first execution environment using canonical rules
US8423496B1 (en) 2006-12-22 2013-04-16 Curen Software Enterprises, L.L.C. Dynamic determination of needed agent rules
US8200603B1 (en) 2006-12-22 2012-06-12 Curen Software Enterprises, L.L.C. Construction of an agent that utilizes as-needed canonical rules
US7702603B1 (en) 2006-12-22 2010-04-20 Hauser Robert R Constructing an agent that utilizes a compiled set of canonical rules
US7949626B1 (en) 2006-12-22 2011-05-24 Curen Software Enterprises, L.L.C. Movement of an agent that utilizes a compiled set of canonical rules
US7702604B1 (en) 2006-12-22 2010-04-20 Hauser Robert R Constructing an agent that utilizes supplied rules and rules resident in an execution environment
US7664721B1 (en) 2006-12-22 2010-02-16 Hauser Robert R Moving an agent from a first execution environment to a second execution environment using supplied and resident rules
JP5039414B2 (ja) * 2007-04-02 2012-10-03 キヤノン株式会社 制御装置、プログラム作成方法、及びプログラム
US8056054B2 (en) * 2007-06-07 2011-11-08 International Business Machines Corporation Business information warehouse toolkit and language for warehousing simplification and automation
US7973242B2 (en) * 2007-09-06 2011-07-05 Hoffman Enclosures, Inc. Vertical cable manager
WO2009032329A1 (en) * 2007-09-06 2009-03-12 Hoffman Enclosures, Inc. Horizontal cable manager
US8073826B2 (en) * 2007-10-18 2011-12-06 Oracle International Corporation Support for user defined functions in a data stream management system
US8521867B2 (en) * 2007-10-20 2013-08-27 Oracle International Corporation Support for incrementally processing user defined aggregations in a data stream management system
US8498956B2 (en) * 2008-08-29 2013-07-30 Oracle International Corporation Techniques for matching a certain class of regular expression-based patterns in data streams
US8935293B2 (en) 2009-03-02 2015-01-13 Oracle International Corporation Framework for dynamically generating tuple and page classes
US8527458B2 (en) * 2009-08-03 2013-09-03 Oracle International Corporation Logging framework for a data stream processing server
US9305057B2 (en) 2009-12-28 2016-04-05 Oracle International Corporation Extensible indexing framework using data cartridges
US8959106B2 (en) * 2009-12-28 2015-02-17 Oracle International Corporation Class loading using java data cartridges
US9430494B2 (en) 2009-12-28 2016-08-30 Oracle International Corporation Spatial data cartridge for event processing systems
US8490056B2 (en) * 2010-04-28 2013-07-16 International Business Machines Corporation Automatic identification of subroutines from test scripts
US9244706B2 (en) * 2010-05-27 2016-01-26 Microsoft Technology Licensing, Llc Command line shell command generation based on schema
US8499290B2 (en) * 2010-06-15 2013-07-30 Microsoft Corporation Creating text functions from a spreadsheet
US8775619B2 (en) * 2010-08-17 2014-07-08 Mcafee, Inc. Web hosted security system communication
US8713049B2 (en) 2010-09-17 2014-04-29 Oracle International Corporation Support for a parameterized query/view in complex event processing
US9189280B2 (en) 2010-11-18 2015-11-17 Oracle International Corporation Tracking large numbers of moving objects in an event processing system
US8990416B2 (en) 2011-05-06 2015-03-24 Oracle International Corporation Support for a new insert stream (ISTREAM) operation in complex event processing (CEP)
US9329975B2 (en) 2011-07-07 2016-05-03 Oracle International Corporation Continuous query language (CQL) debugger in complex event processing (CEP)
US8826306B2 (en) * 2011-09-08 2014-09-02 Microsoft Corporation Hidden representations for marshaling through hosted scripting environments
US9898445B2 (en) 2012-08-16 2018-02-20 Qualcomm Incorporated Resource prefetching via sandboxed execution
US20140053056A1 (en) * 2012-08-16 2014-02-20 Qualcomm Incorporated Pre-processing of scripts in web browsers
US20140053064A1 (en) 2012-08-16 2014-02-20 Qualcomm Incorporated Predicting the usage of document resources
US9953059B2 (en) 2012-09-28 2018-04-24 Oracle International Corporation Generation of archiver queries for continuous queries over archived relations
US9563663B2 (en) 2012-09-28 2017-02-07 Oracle International Corporation Fast path evaluation of Boolean predicates
US10956422B2 (en) 2012-12-05 2021-03-23 Oracle International Corporation Integrating event processing with map-reduce
US10298444B2 (en) 2013-01-15 2019-05-21 Oracle International Corporation Variable duration windows on continuous data streams
US9098587B2 (en) 2013-01-15 2015-08-04 Oracle International Corporation Variable duration non-event pattern matching
US9390135B2 (en) 2013-02-19 2016-07-12 Oracle International Corporation Executing continuous event processing (CEP) queries in parallel
US9047249B2 (en) 2013-02-19 2015-06-02 Oracle International Corporation Handling faults in a continuous event processing (CEP) system
US10152500B2 (en) * 2013-03-14 2018-12-11 Oracle International Corporation Read mostly instances
US9418113B2 (en) 2013-05-30 2016-08-16 Oracle International Corporation Value based windows on relations in continuous data streams
US9710360B2 (en) * 2013-06-27 2017-07-18 Nxp Usa, Inc. Optimizing error parsing in an integrated development environment
US9607039B2 (en) * 2013-07-18 2017-03-28 International Business Machines Corporation Subject-matter analysis of tabular data
US9628507B2 (en) * 2013-09-30 2017-04-18 Fireeye, Inc. Advanced persistent threat (APT) detection center
US9934279B2 (en) 2013-12-05 2018-04-03 Oracle International Corporation Pattern matching across multiple input data streams
US9244978B2 (en) 2014-06-11 2016-01-26 Oracle International Corporation Custom partitioning of a data stream
US9712645B2 (en) 2014-06-26 2017-07-18 Oracle International Corporation Embedded event processing
US20160070431A1 (en) * 2014-09-06 2016-03-10 Airwatch Llc Sync based on navigation history
US9391972B2 (en) * 2014-09-12 2016-07-12 Oracle International Corporation Multi-tenant application using hierarchical bean factory container
US10120907B2 (en) 2014-09-24 2018-11-06 Oracle International Corporation Scaling event processing using distributed flows and map-reduce operations
US9886486B2 (en) 2014-09-24 2018-02-06 Oracle International Corporation Enriching events with dynamically typed big data for event processing
US10942900B2 (en) 2015-06-02 2021-03-09 Oracle International Corporation Techniques for tenant controlled visualizations and management of files in cloud storage systems
CN106250104B (zh) 2015-06-09 2019-08-20 阿里巴巴集团控股有限公司 一种针对服务器的远程操作系统、方法及装置
WO2017018901A1 (en) 2015-07-24 2017-02-02 Oracle International Corporation Visually exploring and analyzing event streams
US11657037B2 (en) 2015-10-23 2023-05-23 Oracle International Corporation Query execution against an in-memory standby database
US10747752B2 (en) 2015-10-23 2020-08-18 Oracle International Corporation Space management for transactional consistency of in-memory objects on a standby database
WO2017135838A1 (en) 2016-02-01 2017-08-10 Oracle International Corporation Level of detail control for geostreaming
WO2017135837A1 (en) 2016-02-01 2017-08-10 Oracle International Corporation Pattern based automated test data generation
US10698771B2 (en) 2016-09-15 2020-06-30 Oracle International Corporation Zero-data-loss with asynchronous redo shipping to a standby database
US10891291B2 (en) 2016-10-31 2021-01-12 Oracle International Corporation Facilitating operations on pluggable databases using separate logical timestamp services
US11475006B2 (en) 2016-12-02 2022-10-18 Oracle International Corporation Query and change propagation scheduling for heterogeneous database systems
US11294901B1 (en) * 2017-05-04 2022-04-05 Amazon Technologies, Inc. Isolating the performance of functions included in queries
US10691722B2 (en) 2017-05-31 2020-06-23 Oracle International Corporation Consistent query execution for big data analytics in a hybrid database
US11226905B2 (en) 2019-04-01 2022-01-18 Nutanix, Inc. System and method for mapping objects to regions
US11029993B2 (en) 2019-04-04 2021-06-08 Nutanix, Inc. System and method for a distributed key-value store
US11704334B2 (en) 2019-12-06 2023-07-18 Nutanix, Inc. System and method for hyperconvergence at the datacenter
US11609777B2 (en) 2020-02-19 2023-03-21 Nutanix, Inc. System and method for multi-cluster storage
US20210334284A1 (en) 2020-04-28 2021-10-28 Nutanix, Inc. System and method of querying objects on demand
US11487787B2 (en) 2020-05-29 2022-11-01 Nutanix, Inc. System and method for near-synchronous replication for object store
US11900164B2 (en) 2020-11-24 2024-02-13 Nutanix, Inc. Intelligent query planning for metric gateway
US11822370B2 (en) 2020-11-26 2023-11-21 Nutanix, Inc. Concurrent multiprotocol access to an object storage system
US20220385488A1 (en) 2021-05-31 2022-12-01 Nutanix, Inc. System and method for reconciling consumption data
US11899572B2 (en) 2021-09-09 2024-02-13 Nutanix, Inc. Systems and methods for transparent swap-space virtualization

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07244601A (ja) * 1994-03-04 1995-09-19 Nippon Telegr & Teleph Corp <Ntt> 関係データベースのアクセス方法および装置
JP2001028585A (ja) * 1999-07-13 2001-01-30 Sony Corp 配信コンテンツ生成方法、コンテンツ配信方法および装置、並びに、コード変換方法
JP2001236234A (ja) * 2000-02-21 2001-08-31 Hiroshi Izumi コンピュータ、並びに、コンピュータ読み取り可能な記録媒体
JP2003122550A (ja) * 2001-10-15 2003-04-25 Fujitsu Social Science Laboratory Ltd 受動型閲覧用データ加工処理方法、受動型閲覧用データ加工処理プログラム、端末側受動型閲覧用データ加工処理プログラム、受動型閲覧用データ閲覧処理プログラム
JP2004062541A (ja) * 2002-07-29 2004-02-26 Ntt Power & Building Facilities Inc データベース情報の遠隔制御システムのサーバ、及びデータベース情報の遠隔制御方法
JP2004187076A (ja) * 2002-12-04 2004-07-02 Nec Access Technica Ltd 機器へのパラメータ設定システム及びその方法、アクセスポイント並びにコンピュータ読み取り可能な記録媒体

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761493A (en) 1990-04-30 1998-06-02 Texas Instruments Incorporated Apparatus and method for adding an associative query capability to a programming language
US5428737A (en) 1991-10-16 1995-06-27 International Business Machines Corporation Comprehensive bilateral translation between SQL and graphically depicted queries
US5577241A (en) * 1994-12-07 1996-11-19 Excite, Inc. Information retrieval system and method with implementation extensible query architecture
US5706501A (en) 1995-02-23 1998-01-06 Fuji Xerox Co., Ltd. Apparatus and method for managing resources in a network combining operations with name resolution functions
US5634053A (en) 1995-08-29 1997-05-27 Hughes Aircraft Company Federated information management (FIM) system and method for providing data site filtering and translation for heterogeneous databases
US5794250A (en) 1995-10-20 1998-08-11 Ncr Corporation Method and apparatus for extending existing database management system for new data types
US5864843A (en) 1995-10-20 1999-01-26 Ncr Corporation Method and apparatus for extending a database management system to operate with diverse object servers
US5689698A (en) * 1995-10-20 1997-11-18 Ncr Corporation Method and apparatus for managing shared data using a data surrogate and obtaining cost parameters from a data dictionary by evaluating a parse tree object
US5778358A (en) 1996-10-25 1998-07-07 International Business Machines Corporation Query parser for accessing non-relational, non-object-oriented datastores
US5987455A (en) 1997-06-30 1999-11-16 International Business Machines Corporation Intelligent compilation of procedural functions for query processing systems
US6233584B1 (en) 1997-09-09 2001-05-15 International Business Machines Corporation Technique for providing a universal query for multiple different databases
US6009422A (en) * 1997-11-26 1999-12-28 International Business Machines Corporation System and method for query translation/semantic translation using generalized query language
US6157923A (en) 1998-05-26 2000-12-05 Ensera, Inc. Query processing based on associated industry codes
US6134709A (en) 1998-06-29 2000-10-17 Cisco Technology, Inc. Method and apparatus for parsing commands
US6421656B1 (en) 1998-10-08 2002-07-16 International Business Machines Corporation Method and apparatus for creating structure indexes for a data base extender
US6029174A (en) 1998-10-31 2000-02-22 M/A/R/C Inc. Apparatus and system for an adaptive data management architecture
US6366915B1 (en) 1998-11-04 2002-04-02 Micron Technology, Inc. Method and system for efficiently retrieving information from multiple databases
US6523172B1 (en) 1998-12-17 2003-02-18 Evolutionary Technologies International, Inc. Parser translator system and method
US6292800B1 (en) 1999-01-29 2001-09-18 America Online Database system
US6308168B1 (en) 1999-02-09 2001-10-23 Knowledge Discovery One, Inc. Metadata-driven data presentation module for database system
US6285998B1 (en) 1999-02-23 2001-09-04 Microsoft Corporation System and method for generating reusable database queries
US6397383B1 (en) 1999-02-26 2002-05-28 International Business Machines Corp. Constraint language parser which rejects invalid filter constraint during run time
US6356887B1 (en) 1999-06-28 2002-03-12 Microsoft Corporation Auto-parameterization of database queries
US6411963B1 (en) 1999-07-09 2002-06-25 Junot Systems, Inc. External system interface method and system
WO2001037134A1 (en) 1999-11-16 2001-05-25 Searchcraft Corporation Method for searching from a plurality of data sources
US6526403B1 (en) 1999-12-17 2003-02-25 International Business Machines Corporation Method, computer program product, and system for rewriting database queries in a heterogenous environment
US6460041B2 (en) 2000-04-26 2002-10-01 Inshift Technologies, Inc. Browser-based database-access engine apparatus and method
US6684204B1 (en) * 2000-06-19 2004-01-27 International Business Machines Corporation Method for conducting a search on a network which includes documents having a plurality of tags
WO2002001416A2 (en) 2000-06-23 2002-01-03 The Johns Hopkins University Architecture for distributed database information access
US7047526B1 (en) * 2000-06-28 2006-05-16 Cisco Technology, Inc. Generic command interface for multiple executable routines
US6988090B2 (en) 2000-10-25 2006-01-17 Fujitsu Limited Prediction analysis apparatus and program storage medium therefor
US6601065B1 (en) 2000-12-21 2003-07-29 Cisco Technology, Inc. Method and apparatus for accessing a database through a network
US20020103811A1 (en) 2001-01-26 2002-08-01 Fankhauser Karl Erich Method and apparatus for locating and exchanging clinical information
US20020196295A1 (en) * 2001-06-26 2002-12-26 Siemens Medical Solutions Health Services Corporation System and user interface supporting use of customizable expressions by applications
US7373335B2 (en) 2001-09-27 2008-05-13 Accudata Technologies, Inc. System and method for processing database queries
US6741982B2 (en) 2001-12-19 2004-05-25 Cognos Incorporated System and method for retrieving data from a database system
US7143080B2 (en) 2001-12-27 2006-11-28 Tedesco Michael A Method, system and apparatus for separately processing database queries
US7376732B2 (en) * 2002-11-08 2008-05-20 Federal Network Systems, Llc Systems and methods for preventing intrusion at a web host
WO2004077217A2 (en) * 2003-01-30 2004-09-10 Vaman Technologies (R & D) Limited System and method of object query analysis, optimization and execution irrespective of server functionality

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07244601A (ja) * 1994-03-04 1995-09-19 Nippon Telegr & Teleph Corp <Ntt> 関係データベースのアクセス方法および装置
JP2001028585A (ja) * 1999-07-13 2001-01-30 Sony Corp 配信コンテンツ生成方法、コンテンツ配信方法および装置、並びに、コード変換方法
JP2001236234A (ja) * 2000-02-21 2001-08-31 Hiroshi Izumi コンピュータ、並びに、コンピュータ読み取り可能な記録媒体
JP2003122550A (ja) * 2001-10-15 2003-04-25 Fujitsu Social Science Laboratory Ltd 受動型閲覧用データ加工処理方法、受動型閲覧用データ加工処理プログラム、端末側受動型閲覧用データ加工処理プログラム、受動型閲覧用データ閲覧処理プログラム
JP2004062541A (ja) * 2002-07-29 2004-02-26 Ntt Power & Building Facilities Inc データベース情報の遠隔制御システムのサーバ、及びデータベース情報の遠隔制御方法
JP2004187076A (ja) * 2002-12-04 2004-07-02 Nec Access Technica Ltd 機器へのパラメータ設定システム及びその方法、アクセスポイント並びにコンピュータ読み取り可能な記録媒体

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSND200000287011; 近藤 嘉雪: '実践!Perlプログラミング:第23回' UNIX USER 第8巻 第8号, 19990801, p. 131〜136, ソフトバンクパブリッシング株式会社 *
CSNH199700051004; 元田 敏浩 他: 'WebBASE:イントラネットアプリケーション構築環境' NTT技術ジャーナル 第8巻第10号, 19961001, p.60〜p.63, 社団法人電気通信協会 *
JPN6010064228; 元田 敏浩 他: 'WebBASE:イントラネットアプリケーション構築環境' NTT技術ジャーナル 第8巻第10号, 19961001, p.60〜p.63, 社団法人電気通信協会 *
JPN6012056169; 近藤 嘉雪: '実践!Perlプログラミング:第23回' UNIX USER 第8巻 第8号, 19990801, p. 131〜136, ソフトバンクパブリッシング株式会社 *

Also Published As

Publication number Publication date
WO2006041813A3 (en) 2007-11-15
US7519962B2 (en) 2009-04-14
EP1805608A4 (en) 2010-03-03
US20060080646A1 (en) 2006-04-13
JP2008516338A (ja) 2008-05-15
SG142297A1 (en) 2008-05-28
JP5431513B2 (ja) 2014-03-05
WO2006041813A2 (en) 2006-04-20
EP1805608A2 (en) 2007-07-11
EP1805608B1 (en) 2017-03-01
JP4991040B2 (ja) 2012-08-01

Similar Documents

Publication Publication Date Title
JP4991040B2 (ja) コマンド索引のためのローカル記憶装置および拡張記憶装置を使用したコマンドスクリプトの解釈
CN107644323B (zh) 一种面向业务流的智能审核系统
US7194683B2 (en) Representing and managing dynamic data content for web documents
US7526490B2 (en) Method of and system for providing positional based object to XML mapping
US6502112B1 (en) Method in a computing system for comparing XMI-based XML documents for identical contents
US9280569B2 (en) Schema matching for data migration
US7627541B2 (en) Transformation of modular finite state transducers
US7676489B2 (en) Providing natural-language interface to repository
US7624075B2 (en) Transformation of modular finite state transducers
US7370028B2 (en) Method of and system for providing namespace based object to XML mapping
US20030140045A1 (en) Providing a server-side scripting language and programming tool
WO2005029222A2 (en) Method and system for the specification of interface definitions and business rules
CA2680306A1 (en) Identification of concepts in software
US7853938B2 (en) Creating multiple and cascading business interpretations from raw application data using transformation layering
US7558726B2 (en) Multi-language support for data mining models
US20030233343A1 (en) System and method for generating custom business reports for a WEB application
US7447697B2 (en) Method of and system for providing path based object to XML mapping
US7085759B2 (en) System and method for communicating data to a process
US9172595B2 (en) Systems and methods of packet object database management
Settle et al. aMatReader: Importing adjacency matrices via Cytoscape Automation
US20150324333A1 (en) Systems and methods for automatically generating hyperlinks
Bressoud et al. Relational Model: Database Programming
US20060010423A1 (en) Variable namespaces and scoping for variables in an object model
Brown Introduction to UTL_HTTP
Baiocchi Managing econometric projects using Perl

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121030

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130130

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130204

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130222

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130430

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131105

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131204

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5431513

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250