JP2007535009A - リレーショナルデータベースの超集合のためのデータ構造と管理システム - Google Patents

リレーショナルデータベースの超集合のためのデータ構造と管理システム Download PDF

Info

Publication number
JP2007535009A
JP2007535009A JP2005510802A JP2005510802A JP2007535009A JP 2007535009 A JP2007535009 A JP 2007535009A JP 2005510802 A JP2005510802 A JP 2005510802A JP 2005510802 A JP2005510802 A JP 2005510802A JP 2007535009 A JP2007535009 A JP 2007535009A
Authority
JP
Japan
Prior art keywords
data
alias
database
priority
tables
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.)
Withdrawn
Application number
JP2005510802A
Other languages
English (en)
Inventor
ティモシー シー. オウェンズ、
ブルース イー. ハリソン、
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.)
United Parcel Service of America Inc
Original Assignee
United Parcel Service of America 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 United Parcel Service of America Inc filed Critical United Parcel Service of America Inc
Publication of JP2007535009A publication Critical patent/JP2007535009A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

データ構造、データベース管理システムおよびデータ確認方法を開示する。共通のデータ構造を有する複数のテーブルを含む相互接続されたリレーショナルデータベースの超集合を含むデータ構造を説明する。このようなテーブルは疎行列リンスされたリストとして記憶される。一般的なレベルから特定的レベルに構成される1連のレベルでレコードを階層的な秩序で順序付けする方法を開示する。主観的表現を有する入力アドレスを優先表現を有する出力アドレスに変換する方法を含むアドレスデータベースでの使用例を説明する。優先アーチファクトにトークンで印付けする。別名テーブルが含まれる。この要約は、探索者または他の読者に本出願書の主題について迅速に通知することを本要約に要求するルールに準拠するために提供される。本要約は、クレームの範囲または意味を解釈したり制限したりするために用いられることはないという理解に基づいて提出される。
【選択図】図1

Description

以下の開示は、一般的にはリレーショナルデータベースの管理システムに関し、より詳しくは、コンピュータネットワークという環境において、疎行列リンクされたリストを用いて複数のリレーショナルデータベースにわたって階層データを処理する方法と装置に関する。
背景技術
データベースは、ディジタル時代の開始時から計算の主要素であった。データベースとは一般的に、持続性のあるデータから成る1つ以上の構造化された集合のことであり、通常はソフトウエアシステムと関連付けられて、データを作成したり、更新したり、照合したりする。データベースにおいては、データ値はその各々がフィールドに記憶されるが、このフィールドが集合となってレコードを形成し、レコードがグループとなってファイルに一緒に記憶される。
最初のデータベースはフラットであったが、これは、すべてのデータが区切られたファイルと呼ばれる1行のテキストに記憶されていたことを意味する。区切られたファイルにおいては、各々のフィールドは、コンマなどの特殊文字によって分離されている。レコードは各々が、カレット(^)やタブ文字などの別の文字によって分離される。1つの区切られたファイルの概観は次のようなものである。
姓,名,年齢^ダウ,ジョン,26^スミス,ジェーン,43^ジョーンズ,デビッド,34
フィールドはその各々に、属性と呼ばれる名称またはカテゴリが割り当てられる。上のサンプルファイルでは、属性はLast(姓)、First(名)およびAge(年齢)である。属性は、各々のフィールドに記憶されるデータのタイプを示す。データが多量にある場合、区切られたテキストファイルは非常に長いものとなりかねない。特定のデータにアクセスするには、通常はリスト全体を連続的に探索する必要がある。コンピュータとデータベースの容量が増すにつれて、より効率的で迅速な技法に対する必要性によって新たなデータ構造が開発されるようになった。
リレーショナルデータベースモデルは1970年代初期に記載されている。リレーショナルデータベースにおいては、データはテーブルに記憶される。テーブルはデータを行と列に編成して、各々のフィールドに対して特定のロケーション(第x行、第y列)を与える。各々の行には1つのレコードが含まれる。列は、属性によって順番に配置され、したがって、各々の列のすべてフィールドが同じタイプのデータを含んでいる。上記の区切られたファイルは以下のようなテーブル形式で表される。
Figure 2007535009
属性すなわち列のヘッディングの集合は時としてテーブルのスキーマと呼ばれる。たとえば、上記のテーブルはスキーマ(姓、名、年齢)を有するテーブルと記述される。
データベースファイルをテーブル形式とすることによって、データに対する探索とアクセスが迅速でより効率的なものとなる。レコード(行)もまた、いずれか1つ以上の列(フィールド)に基づいて新たな順序で仕分けすることが可能である。仕分けは、最も所望されるデータがファイルの最初のほうに顕れるようにレコードを順序付け、これで迅速に探索できるようにするためにしばしば用いられる。
計算速度と容量が増すにつれて、データベーステーブルは多量のデータを記憶するようになった。さらなるレコード(行)を追加してさらなるインスタンスを記述する。さらなる属性(列)を追加して、インスタンス毎にデータのタイプが増えても対処できるようにする。フィールドの数が増えるにつれて、テーブル構造を変更するタスク(行や列を追加したり削除したりすること)がより複雑となり、エラーの尤度が増加する。また、テーブルが大型化するにつれて、1つ以上の列に基づいてデータを仕分けするタスクがより複雑で時間がかかるものとなる。多様なタイプのデータを1つの大型の二次元テーブルに追加するとついには、冗長性や非一貫性が発生したり、必要な記憶容量が増したり、仕分けと計算速度が低下したりするという問題が発生する。
複数のテーブルを持つリレーショナルデータベース
関連データを含む多様なタイプのフィールドを収容するために、リレーショナルデータベースモデルは複数のテーブルを含んでいる。関連データを含む複数のテーブルを、キーフィールドを用いて一緒にリンクさせる。キーフィールドは、レコード(またはデータ行)毎に固有の識別子を含んでいる。キーフィールドは、該当するレコードに固有であれば、部品番号や社会保障番号などの実データを含むことが可能である。これは時として、論理キーと呼ばれる。キーフィールドはまた、レコード番号などの代理キーであったりするが、これは実データには関連しない固有の識別子である。また、キーは、1つのフィールドやフィールドの集合を用いて定義することが可能である。単純なキーは1つのフィールドに基づいており、複合キーは複数のフィールドに基づく。
リレーショナルデータベースにおいては、関連付けされたデータは複数のテーブルに記憶される。「一次キー」と呼ばれるキーフィールドは、テーブルから特定のレコードを発見するための固有の参照ポイントとして機能する。たとえば、「テーブルA」というサンプル中の属性(すなわち列のヘッディング)は、(名前、年齢、社会保障番号、被雇用者番号)である。テーブルAの一次キーは社会保障番号というフィールドである。
データが複数のテーブルに記憶されるリレーショナルデータベースにおいては、「外部キー」と呼ばれる別のキーフィールドが、テーブルを接続する際の参照ポイントとして用いられる。たとえば、(被雇用者番号、部門名、採用日付、給料)というスキーマを有する「テーブルB」という別のサンプルテーブルを考える。テーブルBの一次キーは被雇用者番号という固有のフィールドである。テーブルAの属性を振り返って見ると、テーブルAの外部キーは被雇用者番号というフィールドであるが、それは、テーブルA中のレコードをテーブルB中のレコードにリンクしているからである。このテーブル同士間の関係は、エンティティ関係図を用いて図示することが可能であるが、この関係図において、テーブル各々が、「年齢」や「部門」などの固有のエンティティすなわちカテゴリのデータを含んでいる。
Figure 2007535009
網掛けされている「被雇用者番号」というフィールドは双方のテーブルに共通であり、したがって、この2つのテーブル中のデータ同士のリンクとなるものである。「被雇用者番号」というフィールドはテーブルAでは外部キーであるが、テーブルBでは一次キーである。
テーブルAとテーブルBは、同じ数のレコードを含む必要はない。たとえば、テーブルA中のレコードはある組織のすべての人の名前、年齢、社会保障番号および被雇用者番号を含んでおり、テーブルBのレコードは特定の部門または事業部におけるそれらしか含んでいなかったりする。
別個のテーブルに離散的データ集合を包含させることによって、リレーショナルデータベースは、さまざまな目的でテーブルを選んでアクセスすることが可能である。1つのリレーショナルデータベースは、ほんの数個から数千個までのどの数のテーブルを含むこともありえる。
照会言語によって、ユーザはデータベースと対話して、テーブル中のデータを分析することが可能となる。照会とは、データベースからデータの集合を抽出するために用いられる命令の収集物である。照会したからといってテーブル中の情報が変化するわけではなく、単にユーザに対して情報を表示するだけである。照会の結果は時としてビューと呼ばれる。
最も良く知られている照会言語は構造化照会言語(SQL)であり、「セクエル」と発音される。SQLは、データベースの相互運用性のための標準の言語である。照会はSQLの多分最も頻繁に用いられる態様であるが、SQLコマンドはまた、データベースを作成して維持するためにプログラムツールとして用いられる。
データベース管理システム
データベース管理システム(時としてDBMSと略記される)とは、一般に、データベース中の情報を管理しまた操作するように具体的に設計されたインタフェースと1つ以上のコンピュータソフトウエアプログラムのことである。DBMSは、データの編成、記憶および検索ならびにデータベースのセキュリティとインテグリティを制御するソフトウエアプログラムから成る複雑な組(パッケージソフト)を含んでいる。DBMSはまた、外部のアプリケーションからのデータ要求を受け入れるためのインタフェースを含む。
インタフェースは、ユーザとDBMAなどのアプリケーションとの間の動作可能な接続または境界となるように設計されたコンピュータプログラムである。DBMAのインタフェースは、ユーザがデータベーステーブルに記憶されるデータ値を作成したり、読み取ったり、更新したり、削除したりすることを可能とする1連のコマンドを提供するものである。このような機能(作成、読み取り、更新、削除)は時として、CRUDという頭字語で呼ばれ、したがって、このようなコマンドとのインタフェースはCRUDインタフェースと呼ばれる。照会機能を含むデータベースインタフェースはCRUSQインタフェースと呼ばれる。
COMベースのインタフェースとは、コム(Component Object Model)に基づいたソフトウエアのことである。Component Object Modelとは、Digital Equipment Corporation社とMicrosoft社が開発した、データベースシステムのさまざまなコンポーネント同士間での相互運用性を可能とするオープンソフトウエアアークテクチャである。
複数のテーブルを含むリレーショナルデータベースにおいては、データベース管理システム(DBMS)は一般的に、さまざまなテーブル中のキーフィールド同士間のすべてのリンクを維持する責任を負っている。このことは、データベースの「参照のインテグリティ」を維持すると呼ばれる。
参照のインテグリティを維持することは、非常に多くのテーブルを含んでいるリレーショナルデータベースにおいてはしばしば難問となる。リレーショナルデータベースのリンク性は多くの利点を有するが、それはまた、特にレコードやキーフィールドが変更されたり削除されたりした場合には、テーブル間をまたはデータベース全体にわたってエラーを伝搬させかねない。このエラーの潜在性は、さまざまなユーザがCRUDインタフェースを介してデータベースにアクセスするシステムの場合には増大する。
コンピュータネットワーク環境下では、大型のデータベースは中央のサーバに収納されて、多くのユーザまたは加入者が通信リンクを用いて遠隔地からデータにアクセスする。このアクセス速度は、通信リンクのタイプと容共によってしばしば制限される。データベース全体の複製を遠隔地に配分することは、データが役に立つためには最新のものでなければならない応用分野の場合には一般的に非現実的である。また、ローカル地で記憶されている大型のデータベースはローカルユーザにとってはかなりの重荷となるが、それは、遠隔システムは一般に、中央サーバより小さいからである。大型のデータベースを容量が不十分なローカルシステムに記憶すると、しばしば、計算時間が容認不可能なほど増大する。すべての遠隔地に対してすべてのハードウエアをグレードアップするための経費は、特にユーザネットワークが非常に大きい場合にはあまりに高価なものとなりすぎる。
大型のリレーショナルデータベース中のデータを更新することは、時に、データを頻繁に更新しなければならないネットワーク環境下では技術的に難関であり時間がかかる。データベース全体の更新済みコピーを送信することはしばしば非現実的であり法外な経費がかかる。また、配分による経費と遅延とによって、更新周期に対する障害となる。
したがって、多量のデータを維持・保護して、頻繁に実施される更新内容をコストパフォーマンス良く配分し、ネットワーク内のすべてのロケーションでデータ要求を迅速にそしれ効率的に処理することが可能な改良型のデータベース管理システムに対する技術上の必要性が存在する。
アドレスデータベース
米国には1億4千5百万以上の送付可能なアドレスがある。このようなアドレスすべてに関する情報を含むデータベースは、非常に大型のデータベースの例である。アドレスデータベースは、民間のソースまたは米国郵便局(USPS)などの政府ソースから入手可能である。
USPSは、都市・州ファイル、5桁ZIPファイルおよびZIP+4ファイルを含むさまざまなアドレスデータベースを公衆に対して提供している。都市・州ファイルは、都市名と郡命を対応させた包括的なZIPコードのリストである。5桁ZIPファイルは、都市・州ファイルと一緒に用いると、ユーザは既存の5桁ZIPコード割り当てを確認することが可能である。ZIP+4ファイルはZIP+4コードの包括的なリストを提供する。
配送シーケンスファイル(DSF)は、USPSがサービスを提供するあらゆる配送ポイントのための、離散的レコードに記憶された標準化された完全なアドレスを含む、USPSが開発したコンピュータ化されたデータベースである。互いに分離されたレコードはその各々が、アドレス、ZIP+4コード、配達順路コード、配送シーケンス番号(歩きシーケンス番号)、配送タイプコードおよび季節毎配送インジケータを含んでいる。DSFは、アドレスを確認して標準化するに十分なデータを含んでいる。DSFは、認定済みのアドレスハイジーンソフトウエアを開発した使用権取得者に対して提供される。USPSは最近、DSFに取って代わる新型配送ポイント確認(DPV)データベースを開発した。このDPVデータベースは、その基本的な形式で、または追加のアドレス属性を含む、DSFと呼ばれる向上した形式で入手可能である。
アドレス標準化
郵送先アドレスを標準化する必要性は、比較的最近になってあらわれた動きである。ほとんどがビジネスメールであるが、メールの量が大幅に増大したため、1960年代において郵便業務に深刻な危機が発生した。メールが劇的に増加した唯一最大の背景はコンピュータであった。コンピュータによって、企業はさまざまな郵送機能を自動化することが可能となったが、郵便業務はメールの爆発的な増大に対する準備ができていなかった。この危機に対応して、郵便番号制度(Zone Improvement Plan:ZIP)が設立された。1963年の7月までに、5桁ZIPコードが、米国内のすべての配達可能なアドレスに対して割り当てられた。ZIPコードは、アドレス標準化の近代の夜明けとなるものであった。
20年後、ZIP+4コードが導入され、ハイフンとさらなる4桁がZIPコードに追加された。今日では、メールはしばしば、全アドレスをスキャニングし、封筒に11桁の配送ポイントバーコード(DPBS)を印刷し、各々の配送ルートに沿った規定の歩きシーケンスでトレイにメールを仕分けることが可能なマルチライン光学的文字読取装置を用いて分類される。
アドレスの標準化によって、所与のアドレスが、USPSによって設定されているような政府の指針を満足する最良の形式に変換される。標準化によって、形式、字体、文字間隔、書体、句読点およびZIPコードもしくはDPBCを含む配達アドレスのすべてのコンポーネントが影響される。たとえば、以下のような非標準的なアドレス
Figure 2007535009
は標準化すると次のようにまったく異なった概観となる。
Figure 2007535009
アドレスはそのコンポーネントに分割したり解析したりすることが可能であり、これらのコンポーネントはときとしてアーチファクトと呼ばれる。たとえば、上記のアドレス中の個々のアーチファクトには、居住者もしくは荷受人(ジョン・ドウ)、番号(123)、前指示(E)、姓(メイン)、タイプ(St)、後指示(NW)、名(STE)、二次番号(A4)ならびに市、州およびZIP+44コード(ジョージア州ジケータ市30030−1549)が含まれる。アドレスをその個々のアーチファクトに分割すると、郵便仕分けやアドレス確認を含む多くの状況で有用である。
アドレスの確認
標準化とはアドレスを形式化する方法のことであるが、アドレスを確認するプロセスでは、所与のアドレスが有効であり最新のものであるかどうかが確かめられる。民間のソースまたは政府のソースからのアドレスデータベースはしばしば、アドレスを確認するために用いられる。たとえば、上記のUSPSデータベースは、アドレスを確認する際に比較目的で用いられる。
政府の郵便サービスに加えて、小荷物運送業者などの民間企業はしばしば、固有のそして価値のある顧客情報を記憶するためにアドレスデータベースを開発して維持する。政府の郵便サービスデータとは無関係に開発された民間のデータベースは、次世代のアドレス指定正確度とデータ記憶とを提示するかもしれない。将来において、より広いさまざまな政府と民間のアドレスデータベースが利用可能となるであろう。
USPSのアドレスデータベースは、新しいデータで規則正しく更新される。この規則正しく定期的な更新に加えて、USPSはまた、NCOAやLACSを含む多くの修正データベースを開発している。ナショナル・チェンジ・オブ・アドレス(NCOA)データベースはアドレス変更の記録を含むものである。ロケータブル・アドレス・コンバージョン・システム(LACS)は、地方のルートから都市タイプのアドレスに変換した地域の新たなアドレスを含むものである。
人口が増大したり変化したりするため、アドレスデータベースは一般的に頻繁に更新する必要がある。他のどのような大型データベースでもそうであるように、非常に大型のアドレスデータベース中のデータを更新することは、しばしば困難であり時間がかかる。したがって、アドレスデータベースという文脈では、多量のアドレスデータを維持・保護して、頻繁に実施される更新内容をコストパフォーマンス良くユーザや加入者に配分し、アドレスデータ要求を迅速にそしれ効率的に処理することが可能な改良型のデータベース管理システムに対する技術上の必要性が存在する。
発明の概要
以下の要約は包括的な概略ではなく、また、装置、方法、システム、プロセスおよびこれらの類似物の鍵となる又は重要な要素を特定したり、このような要素の範囲を描写したりすることを意図するものでもない。この要約は、以下のより詳細な説明への序説として簡略化された形態で概念を照会するものである。
ある種の解説的な例としての装置、方法、システム、プロセスおよび類似物を、以下の説明および添付図面と組み合わせて以下に説明する。これらの例は、このような装置、方法、システム、プロセスおよび類似物を支える原理を用いるさまざまな方法の内のほんのいくつかを提示するに過ぎず、したがって、等価物が含まれることを意図するものである。他の長所となる特徴および新規な特徴は、図面と一緒に述べる以下の詳細な説明から明らかであろう。
本発明の広範囲な教示に照らして、長所となる構成を有するデータ構造、データベース管理システム、処理装置および関連方法を提供する。本書に記載するこれら例示の装置、方法およびシステムによって、主観的に表示された入力データを迅速にそして効率的に確認しやすくなり、また、好ましい表示方法で出力データが生成されることになる。
本発明の1つの態様では、データ構造は1つ以上の二次データベースに動作可能に接続された一次データベースを含む超集合を含んでいるが、ここで、一データベースおよび1つ以上の二次データベースはその各々が、1つ以上の他のテーブルに動作可能にリンクされた第1のテーブルを含み、この第1のテーブルおよび1つ以上の他のテーブルは共通のデータ構造を共有している。これらのデータベースはリレーショナルデータベースであっても良い。この共通のデータ構造は、疎行列リンクされたリストを含んでいる。この共通データ構造はまた、データに基づいて、一般的なレベルから特定的なレベルへと構成される1連のレベルで、ある階層的順序で配列されたデータレコードを含んでいる。
このデータ構造では、一次データベースはソーステーブルを含み、最初の二次データベースは別名テーブルを含み、2番目の二次データベースは標準化テーブルを含み、3番目の二次データベースは入力データを受け容れて記憶するように構成されている。ソーステーブルは、公共のソースまたは民間のソースから得られたデータレコードを含み、別名テーブルはレコードを等価的に表現したものを1つ以上含み、標準化テーブルはレコードを標準化して表したものを1つ以上含んでいる。データ構造の別の態様では、ソーステーブルは、政府の郵便サービスおよび商業的なソースから得られたアドレスレコードを含む。
データ構造内では、第1のテーブルは優先レコードを含み、第1の他のテーブルは一次別名レコードを含み、第2の他のテーブルは二次別名レコードを含む。この優先レコードは1つ以上の優先表現を含み、一次別名レコードは一次アーチファクトの1つ以上の等価表現を含み、二次別名レコードは二次アーチファクトの1つ以上の等価表現を含む。関連する態様では、優先レコードはアドレスの優先表現を1つ以上含む。
本発明の別の態様では、最適に探索するためのデータを準備する方法が提供されるが、このデータは、リンクされたレコードテーブルを複数個含む1つ以上のデータベースに記憶されている。本方法は、このデータに基づいて、一般的なレベルから特定的なレベルへと構成される1連のレベルで、ある階層的順序で配列された各々のテーブルにレコードを配列するステップと、これらテーブルの各々を1つ以上の疎行列リンクされたリストテーブルに変換するステップを含む。データベースがサーバ・クライアントネットワーク環境下にある場合、本方法はまた、1つ以上の疎行列リンクされたリストテーブルの複製をサーバから1つ以上のクライアントに配分するステップを含む。データベースは、データの超集合を形成するように相互接続されたリレーショナルデータベースであってもよい。1態様では、データはアドレスアーチファクトを含む。
本発明の別の態様では、最適に探索するためのデータを準備する装置が提供されるが、このデータは、リンクされたレコードテーブルを複数個含む1つ以上のデータベースに記憶されている。本装置は、中央処理装置と、メモリと、基本的入/出力システムと、この中央処理装置で実行可能なプログラムモジュールを含むプログラムストレージとを含む。このプログラムモジュールは、このデータに基づいて、一般的なレベルから特定的なレベルへと構成される1連のレベルで、ある階層的順序で配列された各々のテーブルにレコードを配列する手段と、これらテーブルの各々を1つ以上の疎行列リンクされたリストテーブルに変換する手段を備える。本装置はまた、中央処理装置から遠隔にある1つ以上のクライアントを含む。このプログラムモジュールはまた、1つ以上の疎行列リンクされたリストテーブルの複製をサーバから1つ以上のクライアントに配分する手段を含む。
本発明の別の態様では、リンクされたテーブルからなるデータベースを用いて主観的な表現を優先表現に変換する方法が提供される。本方法は、主観的表現を捕獲してそれをリンクされたテーブルの内の最初のテーブルに記憶するステップと、リンクされたテーブルの内の2番目のテーブルにソースデータを記憶するステップと、主観的表現をソースデータと比較することによってソースデータの中から1つ以上の候補となる表現を突き止めるステップと、この1つ以上の候補表現の中から優先表現を選択するステップであり、この優先表現は主観的表現に最も類似しているステップと、優先表現を放出するステップを含む。
本方法はまた、ソースデータを見直して、優先データを含む1つ以上の選択レコードを特定するステップと、優先トークンをこの1つ以上の選択レコードに付加するステップを含む。
優先表現を選択するステップは、1つ以上の候補表現の内の1つと関連する優先トークンを特定するステップを含む。
1つ以上の候補表現を突き止めるステップはまた、(a)主観的表現を1つ以上の離散的アーチファクトに解析するステップと、(b)(1)1つの離散的アーチファクトをソースデータと比較することによってソースデータの中から1つ以上の候補アーチファクトを突き止めるステップと、(2)この1つ以上の候補表現の中から優先表現を選択するステップであり、この優先表現はこの1つの離散的アーチファクトに最も類似しているステップと、(3)この優先アーチファクトを記憶するステップから成る、1つ以上の離散的アーチファクトの内から1つを選択するステップと、(c)1つ以上の離散的アーチファクトの各々に対してステップ(b)を繰り返すステップと、(d)優先アーチファクトを組み合わせて優先表現を形成するステップを含む。
1つ以上の候補表現を突き止めるステップはまた、リンクされたテーブルの内の3番目のテーブルに別名データを記憶するステップと、別名データを見直して、優先別名表現を含む1つ以上の選択別名レコードを特定するステップと、優先別名トークンを1つ以上の選択別名レコードに付加するステップと、主観的表現を別名データと比較することによって別名データの中から1つ以上の候補別名を突き止めるステップと、1つ以上の候補別名から優先別名を選択するステップであり、この優先別名は優先別名トークンに最も類似しているステップと、優先別名を候補表現として放出するステップを含む。
1つ以上の候補別名を突き止めるステップはまた、(a)主観的表現を1つ以上の離散的アーチファクトに解析するステップと、(b)(1)1つの離散的アーチファクトを別名データと比較することによってソースデータの中から1つ以上の候補別名アーチファクトを突き止めるステップと、(2)この1つ以上の候補別名アーチファクトの中から優先別名アーチファクトを選択するステップであり、この優先別名アーチファクトは優先別名トークンに最も緊密に関連しているステップと、(3)この優先別名アーチファクトを記憶するステップから成る、1つ以上の離散的アーチファクトの中から1つを選択するステップと、(c)1つ以上の離散的アーチファクトの各々に対してステップ(b)を繰り返すステップと、(d)優先別名アーチファクトを優先別名に付加するテップを含む。
本発明の別の態様では、すぐ上に述べた方法ステップを実行する装置が提供される。本装置は、中央処理装置と、メモリと、基本的入/出力システムと、この中央処理装置で実行可能なプログラムモジュールを含むプログラムストレージとを含むが、ここで、このプログラムモジュールは、上記の方法中の各々のステップを実行する手段を含む。
本発明の別の態様では、1つ以上の外部アプリケーションによるデータベースに対するアクセスを制御する方法が提供される。本方法は、各々がこの1つ以上の外部アプリケーションの内の1つと相関している複数のルール集合を確立して記憶するステップと、第1のアプリケーションから要求を受信するステップと、第1のアプリケーションと相関している第1のルール集合を検索するステップと、第1のルール集合を適用して、第1のアプリケーションとデータベース間の対話を制御するステップを含む。本方法では、第1のルール集合は、第1のアプリケーションが用いるようにデータベースから捕獲する目的で利用可能なデータのリストを含む。
本発明の別の態様では、1つ以上の外部アプリケーションからの要求に応答してデータベース内部におけるデータ捕獲の深度を制御する方法が提供される。本方法は、複数のルール集合を確立して記憶するステップであり、その各々が1つ以上の外部アプリケーションの内の1つと相関しており、この複数のルール集合の各々がデータベースから捕獲されるデータのリストを含んでいるステップと、第1のアプリケーションから要求を受信するステップと、第1のアプリケーションと相関している第1のルール集合を検索するステップと、第1のルール集合を適用して、データベースから第1のアプリケーションにとって利用可能なデータを制限するステップを含む。
本発明の別の態様では、一次テーブルと1つ以上の二次テーブルをリンクするデータベースであり、テーブルの各々が共通のデータ構造を共有する前記データベースを含むデータ構造が提供されるが、このデータベースは、一次テーブルと1つ以上の二次テーブルの内の1つ以上を疎行列リンクされたリストに変換するように構成されているデータベース管理システムによって制御される。このデータベースは、相互接続されたリレーショナルデータベースを1つ以上含む。このデータベース管理システムは、インタフェースと確認モジュールを含む。このインタフェースは、1つ以上の外部アプリケーションによるデータベースに対するアクセスを制御する。このデータベース管理システムは、データを主観的表現から優先表現に変換するように構成してもよい。
上記の目的とそれ以外の目的はここに開示する装置、方法およびシステムによって実行され、また、同様の数値が同様の部品を示している添付図面と一緒に優先実施形態に関する以下の詳細な説明を読めば明らかであろう。
本発明は、添付図面と一緒に以下の説明を参照すればより容易に理解されるであろう。
発明の詳細な説明
複数の図表にわたって同様の数値が同様の部品を示す図面をここでは参照する。
1.はじめに
本出願書で用いられる「コンピュータコンポーネント」という用語は、ハードウエアであれ、ファームウエアであれ、ソフトウエアであれ、これらの組み合わせであれ、実行中のソフトウエアであれコンピュータ関連のエンティティのことである。たとえば、コンピュータコンポーネントは、これに限られないが、プロセッサ上で実行中のプロセス、プロセッサ自身、オブジェクト、実行可能体、実行のスレッド、プログラム、サーバおよびコンピュータであったりする。解説しやすいように、サーバで実行中のアプリケーションとサーバ自身とはコンピュータコンポーネントと呼ぶことがある。1つ以上のコンピュータコンポーネントが、プロセスおよび/または実行のスレッド内に常駐することが可能であり、また、コンピュータコンポーネントを1つのコンピュータ上に局所化したり及び/または2つ以上のコンピュータ同士間に分散したりすることが可能である。
本書で用いる「コンピュータ通信」とは、2つ以上のコンピュータコンポーネント間の通信のことであり、したがって、たとえば、ネットワーク転送、ファイル転送、アプレット転送、eメール、ハイパーテキスト転送プロトコル(HTTP)メッセージ、データグラム、オブジェクト転送、バイナリラージオブジェクト(BLOG)転送などであったりする。コンピュータ通信は、たとえば、無線システム(たとえば、IEEE802.11)、イーサネットシステム(たとえば、IEEE802.3)、トークンリングシステム(たとえば、IEEE802.5)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、ポイントツーポピントシステム、回線交換システム、パケット交換システムなどで発生し得るものである。
本書で用いられる「ロジック」とは、これに限られないが、ハードウエア、ファームウエア、ソフトウエアおよび/またはそれぞれの組み合わせであり、1つ以上の機能や動作を実行するものである。たとえば、所望の応用分野や必要性に基づいて、ロジックとはソフトウエア制御式マイクロプロセッサ、特定用途向け集積回路(ASIC)などの離散的ロジックや、他のプログラミングされたロジックデバイスを含む。ロジックはまた、全体をソフトウエアとして実現してもよい。
本書で用いる「信号」とは、これに限られないが、アナログ式もしくはディジタル式1つ以上の電気的もしくは光学的信号、1つ以上のコンピュータ命令、ビットもしくはビットストリームまたはこれらの類似物である。
本書で用いられる「ソフトウエア」とは、これに限られないが、コンピュータ、コンピュータコンポーネントおよび/または他の電子デバイスに機能、動作および/または行動を所望の仕方で実行させる1つ以上のコンピュータ読み取り可能命令および/または実行可能命令のことである。このような命令は、ルーチン、アルゴリズム、記憶済み手順、モジュール、方法、スレッドおよび/またはプログラムのようなさまざまな形態で実施される。ソフトウエアはまた、これに限られないが、スタンドアローンプログラム、関数呼び出し(ローカルおよび/またはリモート)、サーブレット、アプレット、メモリに記憶されている命令、OSもしくはブラウザの一部およびこれらの類似物を含むさまざまな実行可能形態および/またはロード可能形態で実施される。コンピュータ読み取り可能命令および/または実行可能命令を、1つのコンピュータコンポーネント中に位置付けたりおよび/または2つ以上の通信状態にある協同しているおよび/または並列処理のコンピュータコンポーネント間に配分したりすることが可能であり、したがって、直列に、並列に、大規模並列にまたは他の仕方でロードしたりおよび/または実行したりすることが可能であることを理解すべきである。ソフトウエアという形態は、たとえば、所望の応用分野、それが実行される環境および/または設計者もしくはプログラマの要望または類似物の要件によって異なることを当業者は理解すべきである。
「動作可能な接続」(またはエンティティが「動作可能に接続される」接続)とは、信号、物理的通信の流れおよび/または論理的な通信の流れが送られたりおよび/または受信されたりする接続のことである。通常は、動作可能な接続には、物理的インタフェース、電気的インタフェースおよび/またはデータインタフェースが含まれるが、動作可能接続は、このようなタイプの接続または動作可能制御を可能とするに十分な他のタイプの接続のさまざまな組み合わせから成ることに注意すべきである。
本書で用いられる「データベース」とは、データを記憶可能な物理的エンティティおよび/または論理的エンティティのことである。データベースは、たとえば、次の内の1つ以上のものである。記憶データ、リレーショナルデータベース、テーブル、ファイル、リスト、待ち行列、ヒープなど。データベースは、1つの論理的エンティティおよび/または物理的エンティティに常駐したりおよび/または2つ以上の論理的エンティティおよび/または物理的エンティティ間に分散したりする。
「ファジー」または「ブラリー」という用語は、部分的真実と言う概念を取り扱うブールロジックの超集合のことであり、言い換えれば、「完全に真実である」と「完全に偽である」との間の真理値のことである。いかなる具体的な理論でもシステムでも、離散的すなわち明瞭な形態から連続的なすなわちファジーな形態に一般化される。ファジー理論またはファジーマッチングに基づいたシステムは、真理の度数が必ずしも合計したら1になるわけではないという点を例外として、確率に似たさまざまな度数を有する真理値を用いる。ファジーマッチングを英数字のストリングに対して応用する際には、真理値は、たとえば、ストリング中で一致する文字の数として表される。
本書に記載するシステム、方法および目的は、たとえば、コンピュータ読み取り可能媒体に記憶される。媒体として、これに限られないが、ASIC、CD、DVD、RAM、ROM、PROM、ディスク、搬送波、メモリスティックおよび類似物がある。したがって、礼としてのコンピュータ読み取り可能媒体は、輸送資産を管理する方法のためのコンピュータ実行可能命令を記憶することが可能である。本方法は、輸送資産のルートを経験に基づいた運行データベースから検索された分析データに基づいて計算するステップを含む。本方法はまた、輸送資産からリアルタイムデータを受信するステップと、輸送資産のルートを分析データとリアルタイムデータとの統合に基づいて更新するステップを含む。
本システムのプロセスおよび方法の一部またはすべてが、本書に記載するシーケンスとは異なるシーケンスで実行されるようにダイナミックでフレキシブルなプロセスである電子的応用物および/またはソフトウエア応用物を伴うことが理解されるであろう。ソフトウエアとして実現される要素は、機械言語技法、手順技法、オブジェクト指向技法および/または人工言語技法などのさまざまなプログラム方式を用いて実施されることが当業者には理解されるであろう。
本書に述べる処理、分析および/または他の機能もまた、ディジタル信号プロセッサ回路、ソフトウエア制御マイクロプロセッサまたは特定用途向け集積回路のような機能的に等価な回路によって実施される。ソフトウエアとして実施されるコンポーネントは、なんらかの特定のプログラム言語には限られない。むしろ、本書の記載では、本システムの処理を実行するための回路を製造したりコンピュータソフトウエアを生成したりする際に当業者が用いる情報を提供する。本システムと方法の機能および/または行動の一部またはすべてが上記のロジックとして実施されることが理解されるであろう。
さらにそのうえ、「含む」という用語が詳細な説明またはクレーム中で用いられる限りにおいては、それは、「備える」という用語がクレーム中で過渡的な語として用いられる際に解釈されるのと同じように包含的であることを意図するものである。さらにまた、「または」という用語がクレームで用いられる(たとえば、AまたはB)限りにおいては、それは、「AまたはBまたは双方」を意味することを意図するものである。著者が「AまたはBだけであって双方ではない」ことを示す場合には、著者は「AまたはBであり双方ではない」という句を用いる。したがって、本書で「または」という用語は包含的な用法であり排他的な用法ではない。Bryan A. GarnerのDictionary of Modern Legal Usage624(1995年第2版)を参照のこと。
2.例示の実施形態
本発明のシステムは、アドレス管理システムとしてのその有用性に照らし合わせて、しばしば例として記載される。アドレス関連の例をかなり詳細に説明するとはいえ、本発明の範囲をそのような詳細なものに制限したり何らかのしかたで限ったりすることは本出願書の意図するところではない。この創意あるシステムのさらなる用途、応用分野、長所および修正は、当業者には容易に明らかであろう。したがって、本発明は、そのより広い態様において、図示したり記載されたりする特定の詳細、代表的な装置および解説的な例に限られるものではない。したがって、一般的な創意あるこの概念の精神または範囲から逸脱することなくこのような詳細からの逸脱が許されるものである。
例としての装置、方法、システム、プロセスおよびそれらの類似物を、全般にわたって類似の番号が類似の部品を示すために用いられている図面を参照して以下に説明する。以下の説明において、説明しやすいように、装置、方法、システム、プロセスおよびそれらの類似物を完全に理解しやすいように、多くの具体的な詳細を述べる。しかしながら、装置、方法、システム、プロセスおよびそれらの類似物がこのような具体的な詳細なしでも実施可能であることは明らかである。他の例においては、公知の構造とデバイスをブロック図で示して、説明を簡略化している。
3.データ構造:超集合
3.1.データの超集合
一実施形態においては、図2に示すように、本発明のシステムはデータの超集合30を含んでいる。データの超集合30は、4つ以上の離散的リレーショナルデータベース31〜35(図示するようにデータベース1、2、3、4、...Nを含む)を含んでいる。データベース31〜35はデータベースリンク36のネットワーク中で他のデータベースに接続されている。一実施形態では、データベース31〜35の内の1つが一次データベースとして、他のデータベースが二次データベースとして指定される。全部一緒に、これらいくつかのリレーショナルデータベース31〜35はデータベース管理システムによって制御して、大量のデータを記憶して、すべてのリレーショナルデータベーステーブルに対して順序良く複雑な照会を実行することが可能な1つのデータの超集合を作成する。
リレーショナルデータベース31〜35はテーブル40(図示するようにテーブルA、B、C、...Nを含む)の集合を含んでいる。テーブル40は、データフィールド44(図示するように、フィールド1、フィールド2、フィールド3、...フィールドnを含む)の集合を含む。テーブル40は、リレーショナルデータベースについて技術上周知の方法で1つ以上のキー48を用いて一緒にリンクさせる。
一実施形態では、データベース31〜35は共通のデータ構造を有している。この態様では、リレーショナルデータベース31〜35は各々が、同じ数のテーブル40を含み、また、その各々が同じ数のフィールド44を含んでいる。このデータの超集合30中のさまざまなテーブル40同士間での共通のデータ構造が、任意のタイプのデータの記憶と処理を許容するフレキシビリティの度数となる。
一実施形態におけるこの共通データ構造は、以下により詳しく説明するように、記憶されているデータの値に基づいて、一般的なレベルから特定的なレベルへと構成される1連のレベルで、ある階層的順序で配列されたデータレコードを1つ以上のテーブル40中に含んでいる。この共通のデータ構造はまた、疎行列リンクされたリストとして記憶されたテーブル40を含んでいる。
3.2.アドレスの超集合
データの超集合の1つの例示の実施形態を図1に示す。アドレスの超集合130は、一実施形態では郵便データベース131、運送業者データベース132、標準データベース133および予定データベース134を含むいくつかの離散的リレーショナルデータベースを含んでいる。データベース131〜134は、図示するようにデータベースリンク36のネットワーク中の他のデータベースに接続されて、アドレスの超集合130を形成している。リレーショナルデータベース131〜134はアドレスデータベース管理システムによって制御される。
リレーショナルデータベース131〜134は、以下により詳細に説明するように、一実施形態では優先テーブル141、街路別名テーブル142および荷受人別名テーブル143を含むデータテーブル140の集合を含んでいる。優先テーブル141はまた、特定のレコードの固有の識別子として動作するトークンを記憶する1つ以上のフィールドを含む。テーブル141、142および143は、データフィールド44(図示するように、フィールド1、フィールド2、フィールド3、...フィールドnを含む)の集合を含む。テーブル141、142および143は、リレーショナルデータベースについて技術上周知の方法で1つ以上のキー48を用いて一緒にリンクさせる。
一実施形態では、データベース131〜134は共通のデータ構造を有している。この態様では、リレーショナルデータベース131〜134は各々が、同じ数のフィールド44を含んでいる。このアドレスデータの超集合130中のさまざまなテーブル同士間での共通のデータ構造が、任意のタイプのデータの記憶と処理を許容するフレキシビリティの度数となる。一実施形態におけるこの共通データ構造は、以下により詳しく説明するように、記憶されているアドレスデータの値に基づいて、一般的なレベルから特定的なレベルへと構成される1連のレベルで、ある階層的順序で配列されたデータレコードを1つ以上のテーブル中に含んでいる。この共通のデータ構造はまた、疎行列リンクされたリストとして記憶されたまたは再形式化されたテーブルを含んでいる。
4.システムアーキテクチャ
図3は、本発明の一実施形態によるシステム10の表示図である。システム10は、インフラストラクチャサーバ25、1つ以上のコンピュータネットワーク、アプリケーションサーバ200および、多段サーバ・クライアント関係で分布している1つ以上のクライアント655を含んでいる。この1つ以上のコンピュータネットワークによって、インフラストラクチャサーバ25、アプリケーションサーバ200および1つ以上のクライアント255間での通信がしやすくなる。この1つ以上のコンピュータネットワークには、インターネット、私的イントラネット、私的エクストラネット、公衆交換電話ネットワーク(PSTN)、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)または技術上周知の他の何らかのタイプのネットワークなどのさまざまなタイプのコンピュータネットワークが含まれる。
図3に示すように、一次AMSサーバ510はインフラストラクチャサーバ25に常駐している。AMSGUI324などのグラフィカルユーザインタフェースは、図示するように一次AMSサーバ510と通信する。
一実施形態におけるシステム10の次の段は、いくつかのAMSクライアント655と二次AMSサーバ520を含む。AMSクライアント655の一部は、1つ以上のユーザ28に対してデータ捕獲ワークステーション155とGUI26を含む。一実施形態では、アプリケーションサーバ200はAMSクライアント655に常駐する。
一実施形態では、二次AMSサーバ520から下って次の段にはいくつかのAMSクライアント655が含まれているが、その各々が、1つ以上のユーザ28に対してデータ捕獲ワークステーション155とGUI26を含んでいる。
例示の実施形態のインフラストラクチャサーバ25は、システムインタフェースまたはバスによってインフラストラクチャサーバ25内の他の要素と通信する中央プロセッサを含む。インフラストラクチャサーバ25中にはまた、データを受信して表示するための入力/表示デバイスが含まれる。この入力/表示デバイスは、たとえば、モニターと組み合わせて用いられるキーボードやポインティングデバイスである。インフラストラクチャサーバ25はメモリをさらに含むが、このメモリはリードオンリメモリ(ROM)とランダムアクセスメモリ(RAM)の双方を含んでいる。ROMは、インフラストラクチャ25の諸要素間で情報を転送するのを助ける基本的ルーチンを含む基本的入/出力システム(BIOS)を記憶するために用いられる。
加えて、インフラストラクチャサーバ25は少なくとも1つの記憶デバイス、たとえば、ハードディスク、リムーバブルディスク、CD−ROMディスクなどのさまざまなコンピュータ読み取り可能媒体に情報を記憶するハードディスクドライブ、フロッピディスクドライブ、CD−ROMドライブまたは光ディスクドライブを含んでいる。これらさまざまなタイプの記憶デバイスはシステムバスに対して適切なインタフェースで接続される。この記憶デバイスとその関連のコンピュータ読み取り可能媒体とによって不揮発性記憶となる。これらのコンピュータ読み取り可能媒体の代わりに、技術上周知の他のいずれかのタイプのコンピュータ読み取り可能媒体を用いても良いことに注意することが重要である。このような媒体には、たとえば、磁気カセット、フラッシュメモリカード、ディジタルビデオディスクおよびベルニーイカートリッジがある。
多くのプログラムモジュールが、RAM内のさまざまな記憶デバイスによって記憶される。このようなプログラムモジュールにはオペレーティングシステムや1つ以上のアプリケーションがある。インフラストラクチャサーバ25にはまた、コンピュータネットワークの他の要素とインタフェースして通信するネットワークインタフェースがある。インフラストラクチャサーバ25の1つ以上のコンポーネントは、他の処理コンポーネントから地理的に遠隔にある。また、これらコンポーネントの内の1つ以上が組み合わされている。インフラストラクチャサーバ25は、本書に述べる機能を実行する追加のコンポーネントを含む。
4.1.データベース管理システム(DBMS)
本発明の一実施形態によれば、再度図3を参照すると、データベース管理システム(DBMS)は一次AMSサーバ510(インフラストラクチャサーバ25)、アプリケーションサーバ200または二次AMSサーバ520に常駐している。図4に示すAMS110と類似して、DBMSは、インタフェース600とプログラム500の組とを含む。
例として、本発明のデータベース管理システム(DBMS)を、アドレス管理システム(AMS)110としてのその有用性という文脈で説明する。DBMSのように、AMS110は、一次AMSサーバ510(インフラストラクチャサーバ25)、アプリケーションサーバ200または二次AMSサーバ520に常駐している。一実施形態では、AMS110は、図4に示すように、インタフェース600とプログラム500の組とを含む。
図4は、スタンドアロンサービスモード640でAMS110が動作する様子を示す本発明の一実施形態によるシステム10のブロック図である。図示するように、システム10は、AMSGUI324を介して1つ以上のユーザ28にアクセスするコンピュータ15を含む。
4.2.アドレス管理システム(AMS)
アドレス管理システム(AMS)110は、アドレスデータ超集合中のデータの編成、記憶および検索を制御し、アドレス超集合130とそのコンポーネントデータベースのセキュリティとインテグリティを制御するために特定的に設計されている。インタフェース600は、外部アプリケーション(図示せず)から受信されたデータ要求を受け入れて処理するように構成されている。一実施形態では、インタフェース600は、レコードを生成し、読み取り、更新し、削除する能力を持つCOMベースのインタフェースである。インタフェース600はまた、アドレス超集合130中に記憶されているデータに対して演算を実行する照会関数を含んでいる
5.優先表現の発見
一実施形態では、本発明のシステム10は、データ超集合30用のデータベース管理システム(DBMS)を含む。このDBMSはまた、アドレスデータを含むいかなるタイプのデータ用のデータベース管理システムとしても有用である。アドレスデータの場合では、DBMSはアドレス管理システム(AMS)110と呼ばれる。どのような容量の場合でも、管理システム110はインタフェース600とプログラム500の組とを含む。
一実施形態では、プログラム500の組は、「主観的表現」の生データを受信して、データベースに記憶されている値をインタフェース600を用いて分析して1つ以上の照会を実行して、「優先表現」の出力データを生成する1つ以上のコンピュータソフトウエアプログラムを含む。
本書では「主観的表現」という用語は、データを個人的に理解する人物によって入力または提出された生データを示すために用いられる。主観的表現は曖昧になったり不完全なものとなったりしやすいが、これでは、ステップを計算するために生データが必要とされるような場合には問題である。たとえば、ある人物が“12−4−63”という主観的表現で誕生日を入力する。米国では、この日付は「12月4日」を示すが、欧州では「4月12日」を意味する。コンピュータコンポーネントは年を1964または63と解釈する。このような曖昧さは生データの正確度に対して深刻な影響を及ぼす。このような曖昧さと不完全性を取り除くため、プログラム500の組を、主観的表現を「優先表現」に変換するように設計する。たとえばこのようなプログラム500の組は、ユーザが日付を米国形式で入力するか欧州形式で入力するかを判定するシステムまたは照会を含む。プログラム500の組はまた、ユーザが年を4桁で入力しない限り、丹入力されたすべての年のデフォルト世紀として“the0s”を設定するルールまたはロジックルーチンを含む。プログラム500の組を設計または構築するには、特定のシステムで予測される生データのタイプと形式に関する深慮と計画が必要である。
主観的表現は、プログラム500の組によって処理されて、生データに一般的に非関連の優先表現に変換される。たとえば、顧客は、主観的表現”AcmeLX−709”(ここで、Acmeはプリンタの製造業者の名前であり、LX−709はプリンタのモデル番号であり、カラーインクが所望)を用いてプリンタのカートリッジを注文する。たとえば、プリンタのカートリッジの注文を処理するシステムにおいては、カートリッジは10桁のカートリッジ通し番号を用いて登録して記憶する。この通し番号は生データ中のテキストや数字とは直接には関連していないが、この通し番号は、注文書に印刷される「優先表現」であり、したがって、売り手は所望のカートリッジを突き止めて出荷することが可能となる。主観的な生データを正確な通し番号と整合させるために、プログラム500の組は、顧客が提出するどんなさまざまな考えられるインジケータでも解釈するように記述される。すべての カートリッジ通し番号の最初の4桁は、そのタイプのカートリッジを使用することが可能な機械を製造したプリンタ製造業者のリストに対応しているものと仮定する。プログラム500の組は、入力されたプリンタ製造業者の名前をリスト上の名前と比較して、カートリッジ通し番号の最初の4桁を発見する手順を記憶している。これは、注文書に印刷される10桁の通し番号を発見するための最初のステップである。
主観的表現の別の例は、共通の街路番号アドレスである。ある人物がメールに、主観的表現で“Atl30030、スイートA−4、イーストメインストリート、ダウ”と書き込む。“ダウ”や、“Atl”という略字や、州の名前がないことなどこのアドレスのいくつかの部分はあいまいまたは不完全である。このデータがコンピュータまたは仕分け装置で処理することになっている場合、このような曖昧さの結果、メールは失われたり、遅れたり、誤って配送されたりする。このような曖昧さと不正確さを取り除くため、プログラム500の組を主観的表現を優先表現に変換するように設計する。たとえば、このようなプログラム500の組は、記述されたアドレスを街路アドレスとZIPコードの市販のコンピュータデータベースと比較するプログラムまたは記憶済みの手順を含む。
上記の例は属性またはパラメータ、すなわち、日付、部品番号、アドレスを参照するものである。パラメータは、用途の状況次第の上記の主観的表現や他の表現を含むさまざまな形式で特徴付けされる。一実施形態における本発明のシステムは、以下のより詳細に述べるように、表形式のデータを用いて、パラメータを特徴付けする方法を操作したり修正したりする。
一実施形態では、本発明のデータベース管理システム(DBMS)はプログラム500の組を含むが、この組は次の一般的な手順を1つ以上含む。(1)エンハンスメントモジュール、(2)公開・加入モジュール、(3)マッチングモジュール。プログラム500の組は、もちろん本出願書に記載する他の機能を実行するためのさらなるコンポーネントと手順を含む。
5.1.エンハンスメントモジュール
一実施形態では、本発明のプログラム500の組は、データ超集合30のリレーショナルデータベース31〜35に記憶されるデータの構造と順序を最適化する際に用いられるのに適しているエンハンスメントモジュールを含んでいる。データ超集合30中のデータベース31〜35は各々が数百万のレコードを含んでいる。データベース31〜35の各々中のレコードのすべてまたはほとんどを読み取り、更新し、探索するタスクは、データの構造を最適化することによって一実施形態では改善され、促進される。
多くのレコードを含むデータベーステーブルは多量のメモリを消費し、また、仕分け、探索および他の分析などの動作を実行するのに長い計算時間を必要とする。データを向上させたり最適化したりする単純な例として、レコードを1つ以上の属性(列)に基づいて仕分けし、レコードを昇順または降順で順序付ける方法がある。しかしながら、複数の属性を持つ大型のテーブルの場合、レコードを単純に仕分けするだけでは、あまり時間の節約にならず探索の効率も上がらない。
一実施形態では、プログラム500の組の1つの種類のエンハンスメントモジュールは、データベースを疎行列リンクされたリストに変換する手順を含む。リンクされたリストには、時として無関係なフィールドをバイパスまたはスキップするリンクを用いてあるフィールドから次のフィールドに照会を差し向けるように設計されたリンクを含む。疎行列は、後続のレコードではフィールド値が繰り返されることはない。最初の値を繰り返すのではなくて、後続のフィールドを空白のまま残しておいて、別の値が顕れない限りそしてそのような値が顕れるまで、後続の値はこの最初の値と等しいものと仮定するものである。
たとえば、図9で、ZIPコードフィールドには、同じ入力(ZIPコード20001)が13個のレコードに繰り返し入力されている。1態様では、本発明のシステム10は疎行列という概念を用いて、繰り返して入力されることを解消し、これによって、メモリを節約し計算時間を短縮している。図9では、たとえば、ノード1のZIPコードは、5桁のZIPコード20001となっている。テーブルが疎行列に変換されている本発明のシステム10では、後続のZIPコードは空白またはゼロとされる。図9では、ノード2からノード13のZIPコードフィールドは空白かゼロであり、これらのフィールドの値は20001であると推測される。
疎行列においては、連続するレコードで見受けられる値は、別の値が顕れるまでは同じ値のままであると推定される。このようにして繰り返される値の多くが消去されるため、テーブルすなわち行列はまばらであると記述される。テーブル中のいかなる属性も、疎行列を生成するルールを適用することによってまばらなものとなる。
モデルとしてのデータベーステーブル40の小部分を図5に示す。各々の行には1つのレコード42が含まれる。各々のフィールド44は、行番号と列番号を参照することによって突き止められる。たとえば、第2列の第3行にあるフィールドは、フィールド(3、2)または単に(3、2)と記載される。このフィールド命名法は、特定のフィールドをポイントすることが望ましい多くのデータベース動作における値に対する命名法である。
図6のテーブル40は、疎行列の例である。たとえば、第2列の最初の第1行は“Smith”となっていて、その後にゼロという値のレコード(行)が続いている。したがって、第2列の値は、後続の第2、3および4行において“Smith”であることが分かる。
フィールドの行/列命名法は、テーブルがリンクされたリストとして編成されている場合には助けとなる。1つのタイプのリンクされたリストにおいては、図7と8に示すように、リンク340はフィールド44、値46および1つ以上のポインタを含む。1つのタイプのリンク340では、図7に示すように、次の列内ポインタ344が、次の行内ポインタ342と共に含まれている。ポインタ344と342は、非ゼロ値を含む次のフィールドに対する命令を含んでいる。これらのポインタ344と342は、次のフィールドをポイントしている(再度のフィールドとは逆)ため、前方ポインタと呼ばれる。一部のタイプのリンク済みリストもまた、後方ポインタを含んでいるが、命令は最後のまたは前の非ゼロフィールド値を指向している。1つの態様では、本発明のシステム10は前方ポインタしか含んでいない。
図8は、図6に示す疎行列値同士間のリンク340の表示である。たとえば、第4行、第1列のリンクにおける命令は、第4行、第3列の次の非ゼロ値を迅速に分析させるものである。リンク340に含まれる命令によって、探索照会などの分析プロセスが、疎行列中の空白フィールドをバイパスしたりスキップしたりすることが許容される。空白フィールドをスキップすることによって、探索時間が大幅に減少して、照会の結果を迅速に発生させる。
一実施形態では、エンハンスメントモジュールを含むプログラム500の組を用いて、データ超集合中のどのテーブルでも疎行列リンクされたリストに変換させる。疎行列リンク済みリストとして記憶されたデータ超集合30ははるかに少ないメモリを消費し、したがって、加入者クライアント255に対して複製超集合330として配布するのにより適している。データテーブルが疎行列リンク済みリスト(SMLL)に変換されたら、エンハンスメントモジュールは、SMLLテーブルを終わらせるまたは別様に「終了させる」ことによって、それを、他のシステムコンポーネントで配布されたり別の場所で用いられたりするための準備をする。
図5〜8に示すように、複製超集合330はシステム10中の1つ以上のクライアント255に常駐する。システム10全体にわたって複製超集合を送信したりまたは「公開」したりすることは、以下に説明するように、公開・加入モジュールを用いて遂行される。
一実施形態におけるエンハンスメントモジュールはまた、新しいデータが追加されるとテーブルの状態を監視して、変換手順を必要に応じて繰り返し、テーブルの状態と加入者クライアント255と共有されたりそれらに配布されたりするその可用性に関して他のシステムコンポーネントと通信することによってそのテーブルを最適な状態に維持する。この態様では、プログラム500の組のエンハンスメント部分は、他のシステムコンポーネントと対話し、通信して、迅速で効率的に探索できるように最適な状態にデータテーブルを維持するように構成されている。
5.2.公開・加入モジュール
一実施形態では、本発明のプログラム500の組は、本発明のシステム10のコンポーネント同士間でのデータの転送を制御して容易化する公開・加入プログラムまたは手順を含む。図3に示すように、システム10は、インフラストラクチャサーバ25、1つ以上のコンピュータネットワーク230、アプリケーションサーバ200および、サーバ・クライアント関係で分布している1つ以上のクライアント255を含んでいる。
たとえば図5〜9に示す環境のようなサーバ/クライアントネットワーク環境下では、複製超集合330はシステム10中の1つ以上の加入者クライアント255に常駐している。公開・加入モジュールは、システム10全体にわたって複製超集合330を加入者であるクライアント255に公開することを監視して制御するように構成されている。
5.3.マッチングモジュール
一実施形態では、本発明のプログラム500の組は、生データを主観的な表現80で受信し、データ超集合30に記憶されている値をインタフェース600を用いて分析して1つ以上の照会を実行し、優先表現90で出力データを生成するように構成されたマッチングモジュール85を含んでいる。例示のマッチングモジュール85における一般的なステップを、図12のフローチャートとして示す。
1つの実施形態で、主観的表現80に基づいてデータを発見するステップとそれをその優先表現90で表現するステップでは、次の一般的な機能が伴う。捕獲300、解析305、標準化310、確認320、更新380、組み合わせ390および放出395である。当業者は、これらの一般的なステップは必ずしもこの順序で発生するわけではなく、1つ以上の特定のアルゴリズムにしたがって一部のステップは必要に応じて繰り返されることを理解するであろう。
5.3.1.捕獲
一実施形態では捕獲300と呼ばれるこのステップでは、主観的表現80(入力データ)が捕獲されたり別様に受信されたりする。
5.3.2.解析
一実施形態では解析305と呼ばれるステップでは、主観的表現80がそのコンポーネント部分に解析される。解析というタスクでは一般的に、文章または文字のストリングがそのコンポーネント部分に分割される。たとえば、街路アドレスという文脈では、封筒に書かれたアドレスは主観的表現80を表しており、この表現が、解析プロセスによって互いに異なった多くのコンポーネントまたはアーチファクトに分割される。解析のためのアルゴリズムまたはプログラムは一般に、文字のシーケンスまたはストリングとして入力を受信し、次に、ルールの集合を適用してカテゴリによる分割を実行する。
主観的表現80の1例として街路アドレスがある。たとえば、“イーストメインストリート123N.W.スイートA−4”という米国の街路アドレスは、番号(123)、前指示(East)、姓(メイン)、タイプ(St)、後指示(NW)、名(Suite)、二次番号(A−4)を含む多くの離散的アーチファクトを含んでいる。街路アドレスはまた、市、郡および州などの行政的小区域に基づいてコンポーネントに解析されたり、または、たとえばZIP+4コードに基づいてよりきめ細かい詳細レベルや粒度に解析されたりする。
主観的表現80を解析してそのコンポーネント部分を互いに分離したテーブルフィールドに記憶することによって、たとえば、本発明によるマッチングモジュール85はユーザが、必要性と応用分野しだいでさまざまな方法でデータにアクセスしてこれを要約する(抜粋する)ことを可能とする。たとえば、ユーザはアドレスデータの要約または抜粋を特定の州に保管されている5桁のZIPコードに基づいて要求する。アドレスデータが解析され、ZIPコードが離散的フィールドに記憶されたら、ZIPコードに基づいてデータを抜粋するステップでは、比較的簡単な探索と検索が実行される。互いに別個のフィールドにアーチファクトを記憶することによって、ユーザは、どのレベルの抜粋を用いてもデータを探索したり検索したりすることが可能となる。この態様では、本発明はさまざまな必要性を持つさまざまなユーザに対して大きいフレキシビリティを提供する。
5.3.3.標準化
一実施形態では標準化310と呼ばれるステップでは、一般的に、標準化ルールの集合にしたがって主観的表現80が再形式化される。一般に標準化では、字体、文字間隔、書体、句読点、フィールドがアルファベット文字もしくは数文字もしくは双方を含むか、フィールドの長さ、フィールドのサイズもしくは容量および他の特徴を含む主観的表現80の多くの特徴が伴う。
たとえば、街路アドレスという文脈では、主観的表現80は次のように書かれる。
Figure 2007535009
標準化310と呼ばれるこのステップでは、上記の主観的表現80の字体、文字間隔、句読点および他の特徴が変更され、これで標準化後には次のようになる。
Figure 2007535009
一実施形態では標準化ステップ310は、アドレスのタイプおよび地域化郡かしだいで可変のルール集合を含む。たとえば、外部アドレスには、さまざまなアドレスアーチファクトの標準的な表現を統御する非常にさまざまなルールがある。たとえば、次のように主観的表現80が標準化される。
主観的表現80:
Figure 2007535009
標準化:
Figure 2007535009
主観的表現80:
Figure 2007535009
標準化:
Figure 2007535009
主観的表現80:
Figure 2007535009
標準化:
Figure 2007535009
標準化ステップ310は解析ステップ305と組み合わせて実行され、これで、解析されたアーチファクトがその標準化された形式でテーブルに記憶されるようにする。一実施形態では、標準化ステップ310では解析後に互いに別個のアーチファクトに対して実行され、同時に解析ステップ305が最初に実行される。マッチングモジュール85における他の一般的なステップと同様に、標準化ステップ310と解析ステップ305は任意の順序で実行してもよいし、繰り返してもよい。
5.3.4.確認モジュール
一実施形態では確認320と呼ばれるステップでは、以下により詳しく説明するが、複雑な連続するステップを実行して主観的表現80を確認する。確認320では、一般的に、主観的表現80の正確度と新近性がチェックされる。確認320ではまた、主観的表現80を超集合30のテーブルに記憶されている値と比較し、それによって、優先表現90を探索する。
5.3.5.更新
更新380と呼ばれるステップでは、新たに獲得されたデータを超集合30中のリレーショナルデータベースの内の1つに追加される。この態様では、プログラム500の組の動作によるまたはこれを介する超集合30は新しいデータに基づいて継続的に更新される。更新ステップ380は、マッチングモジュール85によって実行される手順中のどの時点でも発生する。
一実施形態では、更新ステップ380は新たなデータを超集合中のテーブルの内の1つに追加する。このデータはテーブルの最後の近くにあるレコード中に置かれる。本発明の1態様では、このテーブルは、エンハンスメントモジュールのタスクが次に実行される以前に再編集されたりされなかったりする。テーブルは設計されたら、頻繁に編集する必要はない。
5.3.6.組み合わせ
組み合わせ390と呼ばれるステップでは、解析ステップ305が逆転されて、主観的表現80の別個のアーチファクトが再組み立てされる。一実施形態では、組み合わせステップ390は、確認ステップ320が優先表現90のアーチファクトを生成した後で実行される。
5.3.7.放出・表示
一実施形態では放出と呼ばれるステップでは、本発明のシステム10の1つ以上のコンポーネントに対して優先表現90(または優先トークン)が送信または送付される。この態様では、放出ステップ395は、探索照会の結果を返却するまたは公開すると述べられている。放出ステップ395はまた表示ステップを含むまたは後にこのステップが続くが、この表示ステップでは、優先表現90がモニターまたは他のタイプのユーザディスプレイに表示される。放出ステップ395はさらに印刷ステップを含むまたは後にこのステップが続くが、この印刷ステップでは、優先表現90がレポートの一部分としてリスト中のラベルに印刷されるまたは本システムが支持する読み取り可能テキスト形式で別様に送られる。
5.4.確認モジュール
一実施形態では確認ステップ320は、一般的に、主観的表現80を超集合30中のテーブルに記憶されている値と比較し、これによって、優先表現90を探索するステップを含む。アドレス管理システム110の文脈では、アドレス確認320では一般的に、入力アドレスの主観的表現80をアドレス超集合130(図1に示すようなもの)中のアドレスデータベース131、132および133に記憶されている値と比較して、アドレスの優先表現90を特定する。
図1に示すように、一実施形態では、アドレス超集合130は郵便データベース131、運送業者データベース132、標準データベース133および予定データベース134を含む。一実施形態において、データベース131〜134はその各々が、優先テーブル141、街路別名テーブル142および荷受人別名テーブル143を含む。優先テーブル141はまた、特定のレコードのコ通の識別子として働くトークンを記憶する1つ以上のフィールドを含む。
郵便データベース131
一実施形態では、郵便データベース131は、米国郵便局(USPS)などの郵便サービスからのアドレスデータを含む。米国には1億4戦5百万を超える配送可能なアドレスがある。USPSは、配送シーケンスファイル(DSF)を含む、定期的に更新されるさまざまなアドレスデータベースを大衆に提供している。DSFは、USPSがサービスを提供するあらゆる配送ポイントのための、離散的レコードに記憶された標準化された完全なアドレスを含む、USPSが開発したコンピュータ化されたデータベースである。互いに分離されたレコードはその各々が、アドレス、ZIP+4コード、配達順路コード、配送シーケンス番号(歩きシーケンス番号)、配送タイプコードおよび季節毎配送インジケータを含んでいる。USPSは最近、DSFに取って代わる新たな配送ポイント確認(DPV)データベースを開発した。DPVデータベースは、DSF(追加のアドレス属性を含む)その基本的形式のものまたは向上した形式のものが市販されている。多くの外国とその地域が、その国の特定の必要性とルールに従って標準化されたアドレスを含む郵便アドレスレコードから成る類似のデータベースを提供している。本発明の郵便データベース131は、郵便アドレスを含むさまざまなデータベースのどれでも受信して記憶するように構成されている。
郵便データベース131内では、優先テーブル141.1は、郵政当局が提供する配送ポイントの優先表現を受け入れて記憶するように構成される。優先表現は全体としてまたは別個のアーチファクトとしてまたは双方として記憶される。郵便の優先テーブル141.1は、アドレスの優先表現90の主要なソースの内の1つである。
郵政当局はまた、街路別名テーブル142.1に受け入れられて記憶される街路別名データを提供する。その名が示すとおり、別名とは、互いに異なったいくつかの識別子が同じ物体を示す状況のことである。街路別名の一般的な例は、道路が複数の名前、すなわち地方の街路名称、州のルート番号および連邦ハイウエイ番号を持つ場合に発生する。たとえば、米国ハイウエイ1は特定の州では州道16と、また、特定の都市を通過する際にはメープル通りと呼ばれる。これら3つの名前がすべて通用する地域では、メープル通り、州道16および米国ハイウエイ1という街路名が街路別名である。加えて、街路別名のリストはまた、たとえば、S.R.16、ルート16、US1またはメープルドライブなど、使用中であればこれらを含む。USPSデータベースは、しばしば、街路別名データを含む。街路別名テーブル142.1は、郵政当局が提供する街路別名データを受け入れて記憶するように構成される。
他の特徴やアーチファクトもまた別名がある。たとえば、正式の会社名には、一般的には公に含まれない用語が含まれる。たとえば、Acme靴会社は、日常の業界用語ではAcme靴または単にAcmeと呼ばれる。データベースに記憶される値に対してさまざまな名前や別名が存在することによる問題は、データベースのユーザがその値を特定的に検索使用する際に発生する。たとえば、Acme靴会社を探索しようとしても、たとえば、Acme靴で記憶している記録を発見することはない。
荷受人別名テーブル143.1は、郵政当局が提供するウに家人別名データを、もしあれば、受け入れて記憶するように構成される。郵政当局は、荷受人別名データを提供することもあればしないこともある。米国のように、管轄区域によっては、郵便サービスが、街路アドレスと関連する住民(荷受人)のアイデンティティを明らかにするデータを配布しないことがある。図示する荷受人別名テーブル143.1(フィールド1、フィールド2、フィールド3、...フィールドn)のデータフィールドの前には+符合の代わりにハイフンがあって、これらのフィールドが空白であることを示している。
郵便データベース131のテーブル141.1、142.1および143.1は、リレーショナルデータベースに関する技術上周知な仕方で、1つ以上のキーフィールドを用いてリンクされるまたは別様に相互接続される。
運送業者データベース132
一実施形態では、運送業者データベース132は、収容貨物運送業者、小包サービスまたは民間データベースプロバイダなどの民間ソースからのアドレスデータを含んでいる。一部の配送会社や他のサービスプロバイダはアドレスデー食べ0巣を開発して維持しているが、その一部が市販されている。本発明の運送業者データベース132は、アドレス情報を含むさまざまな民間データベースのどれでも受信して記憶するように構成されている。
運送業者データベース132内では、優先テーブル141.2は、民間ソースのデータベースに含まれる配送ポイントの優先表現を受け入れて記憶するように構成されている。優先表現は、全体としてまたは別個のアーチファクトとしてまたは双方として記憶される。
民間ソースはまた、街路別名テーブル142.2に受け入れられて記憶される街路別名データを提供する。配送会社と他のサービスプロバイダの一部では、かれらがサービスを提供する領域の街路別名のリストを開発して維持しているところもある。街路別名テーブル142.2は、どの民間ソースが提供する街路別名データでも受け入れて記憶するように構成されている。
荷受人別名テーブル143.2は、民間ソースが提供する荷受人別名データを受け入れて記憶するように構成される。街路別名に加えて、配送会社と他のサービスプロバイダの多くが、別名を含んでいるユーザや顧客(荷受人)のリストを開発して維持している。荷受人別名テーブル143.2は、どんな民間ソースが提供した荷受人別名データでも受け入れて記憶するように構成される。
運送業者データベース132のテーブル141.2、142.2および143.2は、リレーショナルデータベースに関する技術上周知な仕方で、1つ以上のキーフィールドを用いてリンクされるまたは別様に相互接続される。同様に、運送業者データベース132は郵便データベース131とリンクまたは別様に相互接続される。
標準データベース133
一実施形態では、標準データベース133は、一般的に別名データを含む。郵便データベース131や運送業者データベース132をアップロードまたはインストールしている最中に、本発明のシステム10はあるツールを含んでおり、これで、街路別名と荷受人別名の情報を取り入れて、それを標準データベース133に記憶する。標準街路別名テーブル142.3は、街路別名データを受け入れて記憶するように構成される。標準の荷受人別名テーブル143.3は、荷受人別名データを受け入れて記憶するように構成される。この態様では、一実施形態では、標準データベース133は別名データのレポジトリとして動作する。
標準データベース133は、一般に別名データ用であるため、テーブル141.3にはあらゆる優先データを含んでいたりいなかったりする。標準の優先テーブル141.3(フィールド1、フィールド2、フィールド3、...フィールドn)のデータフィールドの前には+符合の代わりにハイフンがあって、これらのフィールドが空白であることを示している。
標準データベース133のテーブル141.3、142.3および143.3は、リレーショナルデータベースに関する技術上周知な仕方で、1つ以上のキーフィールドを用いてリンクされるまたは別様に相互接続される。同様に、標準データベース133は運送業者データベース132および郵便データベース131とリンクまたは別様に相互接続される。
標準データベース133に記憶されているデータは、ブラリーマッチングまたはファジーマッチングとして知られるプロセスで用いられる。逐語マッチングでは、AcmeとAcmeなどのようにまったく一致することが必要とされる。ファジーマッチングは、Acme、ACM、AcmedおよびCh2Acmeなどのように部分的にマッチングすることを示す。別名データは一般的にファジーマッチングが許容されるまたは所望されるシステムで有用であるが、それは、別名とはその性質上、微妙な違いがあるがそれでも同じ物体を表しているからである。たとえば、上記の荷受人別名(Acme靴会社、Acme靴、Acme)もまた互いにファジー一致を表している。
ファジーマッチングはアドレス標準化という状況で有用であるが、それは、あるアドレスの主観的表現80には1つ以上の曖昧なまたは不正確なアドレスアーチファクトが含まれるからである。たとえば、主観的表現80“Atl30030、スイートA−4、イーストメインストリート123、ダウ”は不完全でありいくつかの曖昧さを含んでいる。アドレス“ダウ”は、標準データベース131の荷受人別名テーブル143.3に記憶されているデータを用いて、ファジーマッチングプロセスによって優先荷受人”John W. Doe”と整合する。この例は、アドレス超集合130のデータベース131〜134が以下に共同しているかを解説するものであるが、それは、標準データベース131がテーブル141.3になんら優先データを含んでいないから知れないからである。したがって、アドレス確認320を完遂するためには、アドレス管理システム110は、他のデータベース131、132、134に記憶されているテーブル中の関連データにアクセスして、アドレスの優先表現を発見するように構成される。テーブル141、142、143はリンクされているため、一致するものを探索するには、ZIPコード“30030”だけを用いてまたは街路一次名(メイン)と一緒に用いて、主観的表現80に類似のレコードを発見する。この態様では、一実施形態における本発明のアドレス管理システム110は、アドレス超集合130に記憶されているどのデータからも一致するものを発見するプログラムまたは構造化照会言語を含んでいる。
アドレスの標準化と確認という文脈で有用である別のツールとして、Soundexとして知られているものがある。Soundexは同じように聞こえる語を発見する方法となるものである。Soundexは最初はファイリングシステムであり、音声アルゴリズムを用いて、固有名詞や他の語を4文字英数字コードに還元するものである。1つのタイプのSoundexアルゴリズムでは、コードの最初の文字が語や固有名詞の最初の文字に対応しており、コードの残りの部分は残余の音節の音声から誘導された3桁から成っている。このようにして、語や名前の音声が定量化される。Soundex関数は有用であるのは、コンピュータは一般的に文字を比較するより数を比較するほうが得意であるからである。一実施形態では、本発明の確認ステップ320はSoundexアルゴリズムを含んでいる。
予定データベース134
一実施形態では、予定データベース134は、1つ以上の主観的表現80を含む入力データを含んでいる。この態様では、主観的表現データを予定テーブル141.4、142.4、143.4に付加するプロセスは、本書に記載する捕獲ステップ、解析ステップおよび標準化ステップが含まれ、これで、入力データが、確認のための準備として正しく分割されて標準化されるようにする。
一実施形態では、入力データは主として予定優先テーブル141.4に記憶される。予定データベース134は一般に入力データ用であるため、街路別名テーブルと荷受人別名テーブル142.4と143.4にはなんらかのデータを含んでいたりいなかったりする。これらのテーブルのデータフィールドの前には、+符合の代わりにハイフンがあって、これらのフィールドが空白であることを示している。
5.4.1.階層によるデータ配置
1つの態様では、本発明のアドレス管理システム110は、アドレスデータが階層性を持つことを利用して、主観的表現80に類似したレコードを迅速にそして効率的に突き止める。この態様では、アドレス管理システム110は、記憶されているデータをその固有の階層にしたがって作成または配置する方法を含む。データは、以下に説明するように、一般的レベルから特定的なレベルに構成されたまたは応用分野にとって特定的に適した順序で構成された1連のレベルで配置される。使用に際して、アドレス管理システム110は、アドレス超集合130に記憶されているデータの内の任意のデータ同士間での一致を発見することが可能なプログラムまたは記憶済みの照会手順を含むように構成されている。
一般に、照会することによって、データベースから所望のデータをデータ自身を変更することなく抽出する。照会では一般に所望のデータを発見してユーザに対してこれを表示するため、照会の結果はときとしてビューと呼ばれる。また、照会は、結果(ビュー)を、それをユーザに対して表示することなく作成するために用いられる。この点で、照会は、データをテーブル構造とは異なった新しい構造に(通常は一時的に)配置するために用いられる。照会によって、たとえば, 配列中でのロジックが向上するとか、仕分けや探索速度が増すとか、特定のデータフィールドがより主要な位置に移動するとかの特定的な長所を有する新しいデータ構造を作成する。一実施形態における本発明の確認ステップ320は、データを超集合に配置する1つ以上の照会を有している。このような1つの配置には、トークン化と呼ばれるプロセスが伴う。
5.4.2.トークン化
郵便優先テーブル141.1の例を図9に示す。各々の行は1つのレコードを表し、また、複数のフィールドを含んでいる。別個のフィールドが各々同様の属性を含む別個の列に記憶される。テーブルの属性は頂部のところで列名として示されている。図9に示すような優先テーブル141.1はスキーマ(ZIP、トークン、街路、タイプ、ロー、ハイ、偶数/奇数、荷受人、参照、ロー、ハイ、+4)を有するものとして示されている。
図示するトークン列は郵便トークン71を各々の固有のアドレスに対する固有の識別子として含んでいる。アドレス“第1通り440、スイート600”を含んでいる2つのレコードには郵便トークンT6が割り当てられていることに注意すべきである。テーブルの他の行中のその他の街路アドレスレコードは、別のアドレスを表しており、したがって、異なったトークンを有している。
アドレスデータはその性質上階層的なものである。あるアドレスのさまざまなアーチファクトは一般的なものから特定的なものまで変化する。たとえば、5桁のZIPコードはそれ自身がアドレスロケーションの一般的な観念となっており、一方完全なアドレスは通常は、住民または荷受人を含むものとして考えられており、あらゆる街路データとZIPコードもしくはZIP+4は非常に特定的なアドレスロケーションとなるものである。
一実施形態では、本発明の確認ステップ320は、アドレスデータ階層の頂部に市・州・ZIP組み合わせを位置付けする照会またはアルゴリズムを含む。もちろん、市・州組み合わせは複数のZIPコードを含んでいる。次の特定性のレベルには、前指示、街路名、街路タイプおよび後指示を含む街路アーチファクトがある。このような街路アドレスは100 East Main Street, SWのようなものとなる。街路アーチファクトはさらに、範囲240〜298などの純粋に数値から成る又は範囲フィールドしだいで英数字から成る1つ以上の街路アドレス範囲を用いて分割される。通常の街路アーチファクトを越えるものとして、Suite100またはApartment1Cなどの二次アーチファクトと番号を含む二次アーチファクトがある。ZIP+4コードに4桁を追加すると、さらに別の特定性のレベルとなる。一部のデータベースはまた、追加の2桁の配送シーケンス番号を含んでいる。
一実施形態では、本発明の確認ステップ320は、超集合のテーブル中のレコードを一般的なものから特定的なものへと階層的構造に順序付ける方法を含む。これらレコードの結果として得られる関係と分類を、封じ込めと包含として知られている概念に照し合わせて、確認ステップ320内で定義される。ノード番号は、図9に示したようにテーブル141.1の各々のレコードに割り当てられている。このノード番号は、アドレスレコード間での封じ込めと包含という概念を説明する助けとなりえる。
5.4.3.封じ込めレベル
確認ステップ320でテーブル141.1のレコードが再順序付けされた後、レコードの新しい階層配置は図10に示すようなものとなる。図10のノード番号は、データ中に表示される特定性のレベルにしたがって分配される。たとえば、図10のレベル1はノード1を含むが、これはアドレス範囲“第1通り440〜498”を包含するレコードを表している。図9に示すすべてのレコードの内、ノード1のところにあるレコードは最も一般的なものであり、したがってレベル1に置かれる。次の特定性レベル、すなわち、レベル2はノード2を含む。ノード2のところにあるレコードは1つの街路アドレス(第1通り440)を含むが二次アーチファクト(スイート番号)はない。
図10のレベル3は、スイート番号または範囲を持つアドレスを含むが荷受人名は含まない。これらのレコードはノード3、11、4、12、5および13を含む。レベル3のノードは左から右にスイート番号の昇順で配置されている。この態様では、システム10は、アドレスデータを、さまざまな特定性のレベルで配置することに加えて左から右に順序付けするように構成される。
レベル4は荷受人フィールドに名前を持つレコードを含む。
封じ込めと包含という概念は、図10のさまざまなノード間の接続によって表される。ノード10はノード3に接続されているが、それは、“スイート310”が範囲“100〜400”のサブ集合であるからである。同様に、ノード6、7および8はノード5に接続されているが、それはこれらのスイート番号“500”と“600”がノード5(スイート500〜600)の範囲のサブ集合であるからである。最後に、ノード9はノード13のサブ集合であるが、それはアドレスは同じであるが、ノード9は荷受人名を含むからである。
図10に示すようなノードは、本発明の確認ステップ320の一実施形態で実施される封じ込めと包含という概念を示す。レベル1のノード1はその下にあるすべてのノードを「封じ込めて」いるが、それは他のアドレスレコードのすべてがノード1用にと提示されている範囲内にあるからである。逆に、レベル1の下にあるすべてのノードはノード1内に「含まれる」(または封じ込められる)。同様に、レベル2のノード2はその下のすべてのノードを封じ込め、ノード3はノード10を封じ込めている。ノード5はノード8、6および7を封じ込めているが、それはこれらのノードがノード4で提示された範囲のサブ集合であるからである。ノード13はノード9を封じ込めている。
一実施形態では、本発明の確認ステップ320はトークンを各々の固有のレコードに割り当てる。トークンはまた、封じ込めと包含の概念を示している。図11は、図10に示す階層テーブルを表形式で表現したものである。図11の表は、レベル1から初めて各々のレベルにおけるすべてのノードとトークンを示している。トークンT1は、階層テーブル中の他のすべてのトークンを封じ込めているものと述べることが可能である。しかしながら、トークン番号はノード番号とは異なることに注意すべきである。トークンT3はトークンT9を含む。トークンT5はトークンT6とT7を含む。トークンT6はノード6と7の双方に対して用いられるが、それはアドレスが等しいからである。
封じ込めと包含の概念は図11から容易に理解可能である。たとえば、ノード3のデータとノード10のデータを比較すると、読者は、ノード10の“スイート310”は、ノード3に記憶されているスイート番号(100〜400)の範囲にあることに気付くであろう。この関係は、これまた図10に示されている包含と封じ込めの概念を示している。
一実施形態では、本発明の確認ステップ320で適用される封じ込めレベルの数に制限はない。アドレスレコードは多くのアーチファクトを含んでいる。テーブルは多くのレコードを包含している。テーブルに包含されるレコードの数が膨大であることを考慮すると、レコードを階層に編成したものを用いて、データにアクセスしてこれを分析する速度を大幅に増加させる。図14、15および16に示す13のノードの場合に対して記載されている封じ込めレベルとトークン番号は、アドレス超集合130のテーブルの内のどの1つのテーブルにおいても、数百のアドレスレコードと範囲に適用される。同じように、図9の優先テーブル141.1は階層にしたがって順序付けされ、アドレス超集合130中の他のテーブル141、142および143もまた、ノードと封じ込めレベルを用いて編成される。
封じ込めレベルを用いてデータを再配置することに加えて、本書に記載するように各々のテーブルは疎行列リンクされたリストに変換され、これで、処理速度をさらに増大させる。
5.4.3.優先トークン
再度図9のテーブル141.1を参照すると、ノード6と7は双方共が同じトークンT6を与えられるが、それはこれらが同じ物理的ロケーションを表しているからである。ノード6と7の荷受人名は、それぞれ“APC”と“AMPOLLINGCMTE”であることに注意すべきである。これらのアドレスの代替名は荷受人の別名である。言い換えれば、APCはAMPOLLINGCMTEの別名である。本書で説明したように、このような荷受人の別名はアドレス超集合130中の1つ以上の荷受人別名テーブル143に記憶される。
同様に、街路別名データは、アドレス超集合130中の1つ以上の街路別名テーブル142に記憶される。たとえば、街路別名テーブル142中のフィールドは図13に示すように配置される。図13の例としての街路別名テーブル142は、アメリカ街としても知られているニューヨーク市の6番街の街路別名をいくつか含んでいる。街路別名テーブル142は、街路アドレスレコードを比較する際に容易にアクセス可能な形式でこのようなリストを含んでいる。
本発明の1態様では、アドレスデータベース管理システム10は、別名表現の内の1つを「優先表現」として印付けするように命令される。さまざまな街路別名と荷受人別名をアドレスデータ超集合130に記憶されているデータに適用すると、(たとえば)トークンT4081の内の1つが優先表現として印付けされる。このように、優先トークン70は、優先のための“p”などのマーカーを含み、これで、優先トークン70はT4081pのようになる。本発明のシステム10は、トークンT4081を持つすべてのアドレスレコードが等しいと認識する。一実施形態では、優先トークン70を特定してそれに印付け(たとえばT4081p)すると、特定の街路アドレスの優先アーチファクト(T4081pという印が付いている)が常に照会に応じて返送されることを保証する助けとなる。
本発明のこの態様では、一実施形態における確認ステップ320は、記憶されているデータを照会を利用して新しい階層データ構造に配置するように構成される。1つ以上のトークンに一実施形態では優先トークとして印付けするまたは別様に識別して、アドレスまたは特定のアーチファクトの優先表現を特定する。
関連の態様では、本発明の管理システムは、本発明のシステム10のさまざまなコンポーネント間で(テキストの代わりに)トークンをやり取りするように構成されている。トークンを交換すると、アドレステキストから成る長いストリングを交換するよりも効率的でありエラーしにくい。この態様では、トークンを固有の識別子として用いると、照会の処理、報告、および超集合に記憶されているデータに対する他のタイプの分析の速度がさらに増す。
一実施形態では、確認ステップ320は、アドレス管理システム110のプログラム500のスイートの一部として実行される(たとえば図7を参照)。確認ステップ320は複製の超集合330に対して実行され、その結果はAMSクライアント655に対して放出される。本書で述べた1つ以上の技法を応用しているアドレス管理システム110では、捕獲ステップ300から放出ステップ396までの経過時間は100ミリ秒から200ミリ秒の範囲にある。
5.4.5.比較
一実施形態では確認ステップ320は、一般に、主観的表現80を超集合30中のテーブルに記憶されている値と比較して、優先表現90を探索するステップを含んでいる。アドレス管理システム110の文脈では、アドレス確認320では一般に、入力アドレスの主観的表現80をアドレス超集合130中のアドレスデータベース131、132、133に記憶されている値と比較して(図1に示す)、そのアドレスの優先表現90を特定する。
図12に示すブロック図では、確認ステップ320は1つのブロックを占有している。しかしながら、本書に記載するように、確認ステップ320は、アドレスを確認するための多くのステップと手順とを伴っている。前の章では多くのデータ操作ルーチンと探索方法を概括したが、入力データを記憶されているデータと比較するプロセスを一般的に述べる。より詳しくは、一実施形態における確認ステップ320も比較プロセスは以下に番号付きでリストアップするステップを含んでいる。
(1)予定データベース134中の入力データ(図1を参照)を優先テーブル(図1を参照)に記憶する。
(2)優先テーブル141.4に記憶されている入力データをその他の優先テーブル141.1、141.2、141.3(もしあれば)に記憶されているデータ値と比較する。一実施形態では、超集合中の各々のテーブルは疎行列リンク済みリストに変換され、ノードと階層的封じ込めレベルとを用いて再配置されおよび/または上記のようにトークン化されて、各々のテーブルでの探索を迅速で効率的なものとしていることを想起されたい。この比較プロセスは、他の優先テーブル141.1、141.2、141.3に記憶されているデータ値から1つ以上の候補となる表現を突き止めるステップを含む。一致しているかを発見するステップには一般に、探索中の選択表現80に最も類似している候補表現を選択するステップが含まれる。
(a)入力データと優先テーブルデータとが一致していれば、対応する優先トークン70を突き止めて、図12に示す更新380、組み合わせ390および放出395のステップを実行する。
(b)一致していなければ、以下のステップ(3)に進む。
(3)優先テーブル141.4に記憶されている街路名入力データを街路別名テーブル142.1、142.2、142.3に記憶されている街路別名データ値と比較する。この比較プロセスは、街路別名テーブル141.2、142.2、142.3に記憶されているデータ値から1つ以上の候補となる街路別名を突き止めるステップを含む。一致しているかを発見するステップには一般に、優先トークンと最も緊密に関連している候補街路別名を選択するステップが含まれる。
(a)街路名入力データと街路別名テーブルデータとが一致していることが発見されたら、優先街路別名を識別する優先トークン70を突き止めて、優先テーブル141.4中の街路名の代わりに対応する街路別名を導入して、街路別名を用いて上のステップ(1)を繰り返す。
(b)一致していなければ、以下のステップ(4)に進む。
(4)優先テーブル141.4に記憶されている荷受人名入力データを荷受人別名テーブル143.1(もしあれば)、143.2、143.3に記憶されている荷受人別名データ値と比較する。この比較プロセスは、荷受人別名テーブル143.2、143.2、143.3に記憶されているデータ値から1つ以上の候補となる荷受人別名を突き止めるステップを含む。一致しているかを発見するステップには一般に、優先トークンと最も緊密に関連している候補荷受人別名を選択するステップが含まれる。
(a)荷受人名入力データと荷受人別名テーブルデータとが一致していることが発見されたら、優先荷受人別名を識別する優先トークン70を突き止めて、優先テーブル141.4中の荷受人名の代わりに対応する荷受人別名を導入して、荷受人別名を用いて上のステップ(1)を繰り返す。
(b)一致していなければ、以下のステップ(5)に進む。
(5)除外コード400をユーザ28またはアプリケーションに返送する。
(6)一実施形態では、確認ステップは、ありえる一致のリスト(アドレス、街路別名、荷受人別名)を表示して、ユーザ28が、目視比較して、ありえる一致の内の1つを優先表現として手動で選択する(もしそれが適当であれば)ことを許容する。
(a)手動で選択すれば、比較プロセスは進行して、図12に示す更新380、組み合わせ390および放出395のステップを実行する。
(b)手動選択をしなければ、入力データと除外コード400を確認システムから外に転送してさらに処理するようにする。
優先アドレス表現を発見する上のステップ(2)で記載した方法はさらに次のステップを含む。
(a)主観的表現を1つ以上の離散的アーチファクトに解析する。
(b)この1つ以上の離散的アーチファクトの内の1つを選択する。
(1)この1つの離散的アーチファクトをソースデータと比較することによってソースデータのうちから1つ以上の候補アーチファクトを突き止める。
(2)1つ以上の候補アーチファクトから優先アーチファクトを突き止めるが、この優先アーチファクトは1つの離散的アーチファクトに対して最も緊密な類似を有している。
(3)優先アーチファクトを記憶する。
(c)1つ以上の離散的アーチファクトの各々に対してステップ(b)を繰り返す。
(d)優先アーチファクトを組み合わせて、優先表現を形成する。
同様に、優先別名表現を発見する上のステップ(3)と(4)に記述する方法は次の更なるステップを含む。
(a)主観的表現を1つ以上の離散的アーチファクトに解析する。
(b)この1つ以上の離散的アーチファクトの内の1つを選択する。
(1)この1つの離散的アーチファクトを別名データと比較することによってソースデータのうちから1つ以上の候補別名アーチファクトを突き止める。
(2)1つ以上の候補別名アーチファクトから優先別名アーチファクトを突き止めるが、この優先別名アーチファクトは優先別名トークンに対して最も緊密に関連している。
(3)優先別名アーチファクトを記憶する。
(c)1つ以上の離散的アーチファクトの各々に対してステップ(b)を繰り返す。
(d)優先別名に対して優先別名アーチファクトを追加する。
一実施形態の上記比較ステップで用いられる「マッチする」という用語は、アドレスの1つ以上のアーチファクトを分析して、データ同士間の類似性が「マッチ」を構成するに十分有効であるかどうかを判定するニュアンスを含む。たとえば、次の指針が当てはまる。
1.逐語マッチングは、街路番号と街路名を含む一次アドレスで必要とされる。
2.逐語マッチングは、運送業者データベース32に二次アドレスが存在し、また、それが一次アドレスと関連している場合に二次アドレス(スイート番号など)にしか必要とされない。
3.逐語マッチングは、荷受人が予定データベース134(入力データ)に存在する場合に荷受人名にしか必要とされない。
他のマッチング指針は、応用分野と処理の目的しだいで設定されることを理解すべきである。
5.5.インタフェース
一実施形態では、本発明のデータベース管理システム110は、図3と図5〜9に示すようにインタフェース600とプログラム500の組を含んでいる。一実施形態ではインタフェース600は、アプリケーション(プログラム500の組など)とユーザ(または別のアプリケーション)間の動作可能接続またはインタフェースとなるように設計されたコンピュータプログラムである。インタフェース600は1連のコマンドを提供し、これを用いて、ユーザは、データベーステーブルに記憶されるデータを生成し、読み取り、更新し、削除する。これらの機能(作成、読み取り、更新、削除)はときとして頭字語CRUDを用いて参照され、したがって、このようなコマンドを提供するインタフェースはCRUDインタフェースと呼ばれる。照会機能を含むデータベースはCRUDQインタフェースと呼ばれる。
一実施形態では、インタフェース600はCOMベースのインタフェースとして構成される、ということは、それがコンポーネントオブジェクトモデルに基づいていることを意味する。コンポーネントオブジェクトモデルは、インタフェース600と本発明のシステム10の他のさまざまなコンポーネント間での相互運用性を容易化するオープンソフトウエアアークテクチャである。COMベースのインタフェース600が与えられるとはいえ、他のソフトウエアモデルを用いて所望の機能性を遂行してもよい。
照会機能は本発明の一実施形態によるインタフェース600に含まれる。照会とは、データベースから所望のデータ集合を抽出するために用いられるコマンドまたは命令である。最もよく知られた照会言語は構造化照会言語(SQL、「セルエル」と発音される)であるが、他の照会言語を用いてもよい。照会は1つのコマンドまたは複雑なコマンド連続体を含む。SQLは広い範囲の照会コマンドを含む。再度用いられる照会コマンドの集合は記憶済み手順としてSQLに保存することが可能である。プログラムを実行するのと似て、セクエル中の記憶済み手順をコールすることは個々の照会コマンドを一時に送出するよりは効率的である。また、記憶済み手順は一般に前もって編集され、また、データベース管理システムによってキャッシュされる。この態様では、照会コマンドは強力なプログラムツールとして用いられる。
5.5.1. アプリケーション識別子
一実施形態ではインタフェース600は、使用中のデータベース管理システム110の内部にあるか外部にあるかを問わず、互いに異なったさまざまなプログラムとアプリケーションを操作してこれらと対話するように構成される。インタフェース600は、プログラム500の内部組の各々のコンポーネントで動作するように構成される。インタフェース600はまた、関連のデータベースアプリケーション、補助用報告アプリケーション、スタンドアロン型ビジネスアプリケーションまたは、超集合30や130に記憶されているデータと対話する要望またはビジネス上の必要性を有する他のさまざまなプログラムの内のどれかなどの、データベース管理システムの外部にある1つ以上の外部プログラムまたはアプリケーションで動作するように構成される。
一実施形態では、本発明のインタフェース600は、各々が対応するルール集合を有する1つ以上のアプリケーション識別子を含む。このアプリケーション識別子は、本発明のデータベース管理システムに対するアクセスを求めるアプリケーションを識別するために用いられる。アプリケーション識別子は1つのコマンドまたは複雑なアルゴリズムである。一般に、アプリケーション識別子は、データベースと対話することを求めるアプリケーションを識別するように動作する。
各々のアプリケーション識別子は、特定のアプリケーション270とデータベース管理システム間の対話を統御するために用いられる対応するルール集合を含んでいる。このような対話には、照会要求、加入更新、データ転送もしくは他の通信、出力形式命令または他のいずれかの行為が含まれる。アプリケーション識別子とルール集合はデータベースに記憶したりアクセス可能形式で別様に保存されたりする。
たとえばアドレス管理システム110の文脈においては、特定のアプリケーション270は、照会を送ることによってアドレス超集合130にアクセスを求める。それに応答して、インタフェース600は、アプリケーション270を識別子、適切なアプリケーション識別子を検索し、次に対応するルール集合を検索するように構成されている。次に、インタフェース600は、このルール集合をアドレス管理システム110に渡して、照会の処理やアプリケーション270との他の対話に用いられるようにする。アドレス管理システム110は照会を処理したり、出力データを生成するアプリケーション270に関連した他の動作を実行したりする。この出力データはインタフェース600に返送され、そこで、ルール集合を用いてこの出力データがアプリケーション270からアクセス可能であるような形式であることを確認する。この態様では、アドレス管理システム110とそのインタフェース600は共同して、ルール集合を用いることによってアプリケーション270からの要求を処理する。
この態様では、本発明のインタフェース600は一般的なものである、ということは、インタフェース600はどのアプリケーション270でも動作しまたこれと対話するように構成されていることを意味する。インタフェース自身とは別個にルール集合を維持することによって、インタフェース600におけるプログラミングでは、さまざまなアプリケーション270すべてに対するルールを含む必要はない。それどころか、アプリケーション識別子を用いることによって、インタフェース600は、対応するルール集合を発見して検索する比較的単純なコマンドだけを含む。
管理システム110が新しいアプリケーション270との対話を必要とする場合、インタフェース600を修正する必要はまったくない。必要とされるのは、新しいアプリケーション270のアプリケーション識別子と対応するルール集合とを追加することだけである。インタフェース600は、このような新しい情報を入力するシステムとなる。
5.5.2.データ捕獲の深度
一実施形態では特定のアプリケーション270のルール集合は、データ超集合30からどの特定のアーチファクトを捕獲するかを制御するように構成される。たとえば、使用中、第1のアプリケーションはZIPコードしか必要とせず、その一方で第2のアプリケーションはZIP+4、市および州を必要とする。本発明のルール集合は、使用中の特定のアプリケーション270のデータ要件に関する記憶済み情報を含む。データ捕獲の範囲または深度を制御することによって、ルール集合によって、インタフェース600がシステム10内のデータにアクセスする効率と速度が増す。
6.結論
説明した本発明の実施形態は、単なる例示目的である。当業者には多くの変更例と修正例が明らかであろう。このような変更例や修正例はすべて、添付クレームに定義する本発明の範囲に入る。
上述したように、いくつかの例を述べた。もちろん、データベース管理システムで用いられるシステム、方法、コンピュータ読み取り可能媒体などを説明する目的でコンポーネントや方法の考えられるすべての組み合わせを説明することは不可能である。しかしながら、通常の当業者は、さらなる組み合わせや置き換えが可能であることを認識するであろう。したがって、本出願書は、添付クレームの範囲に入る改変例、修正例および変更例を包含することを意図するものである。さらにそのうえ、前記の説明は本発明の範囲を制限することを意図するものではない。むしろ、本発明の範囲は添付クレームとその投下物によってのみ決定されるべきである。
本書ではシステム、方法および装置を例を説明して解説し、また、これらの例をかなり詳細に説明したが、添付クレームの範囲をこのような詳細にいかようにも制限することは本出願書の意図するところではない。さらなる長所と修正例は当業者には容易に明らかであろう。したがって、本発明はそのより広い意味において、具体的な詳細、代表的なシステムと方法または図示し説明した解説的な例に限られるものではない。したがって、出願者の一般的な創意ある概念の精神や範囲から逸脱することなくこのような詳細から逸脱しえるのである。
本発明の一実施形態によるアドレスの超集合のブロック図である。 本発明の一実施形態による一般的なデータセットのブロック図である。 本発明の一実施形態によるシステムアーキテクチャの図である。 本発明の一実施形態によるスタンドアロンサービスモードのブロック図である。 本発明の一実施形態によるデータテーブルのグラフ表示である。 本発明の一実施形態による、テーブル中の値のグラフ表示である。 本発明の一実施形態によるリンクのブロック図である。 本発明の一実施形態によるリンクされたリストのブロック図である。 本発明の一実施形態によるアドレスデータの表である。 本発明の一実施形態による、レベルとノードを含むグラフ表示である。 本発明の一実施形態による、トークン付きのアドレスデータの表である。 本発明の一実施形態によるマッチングモジュールのフローチャートである。 本発明の一実施形態による別名データの表である。

Claims (45)

  1. 1つ以上の二次データベースに動作可能に接続された一次データベースを含む超集合を備えるデータ構造において、
    前記一次データベースおよび1つ以上の二次データベースの各々が1つ以上の他のテーブルに動作可能に接続された第1のテーブルを含み、
    前記第1のテーブルと1つ以上の他のテーブルの各々が共通のデータ構造を共有する、
    データ構造。
  2. 前記一次データベースと1つ以上の二次データベースの各々がリレーショナルデータベースである請求項1に記載のデータ構造。
  3. 前記共通のデータ構造が疎行列リンクされたリストを含む請求項1に記載のデータ構造。
  4. 前記共通データ構造がデータを含む複数のレコードを含み、前記レコードが、前記データに基づいて、一般的なレベルから特定的なレベルに構成される1連のレベルで階層的順序で配置される請求項1に記載のデータ構造。
  5. 前記一次データベースがソーステーブルを含み、
    第1の二次データベースが別名テーブルを含み、
    第2の二次データベースが標準化テーブルを含み、
    第3の二次データベースが入力データを受け入れて記憶するように構成されている、
    請求項1に記載のデータ構造。
  6. 前記ソーステーブルが、公的なソースまたは私的なソースから得られたデータレコードを含み、
    前記別名テーブルはレコードの等価表現を1つ以上含み、
    前記標準化テーブルがレコードの標準化された表現を1つ以上含む、
    請求項5に記載のデータ構造。
  7. 前記ソーステーブルは、政府の郵政サービスと商用ソースとから得られたアドレスレコードを含む、請求項6に記載のデータ構造。
  8. 前記第1のテーブルが優先レコードを含み、
    第1の他のテーブルが一次別名レコードを含み、
    第2の他のテーブルが二次別名レコードを含む、
    1つ以上のアーチファクトを含むレコードを記憶する請求項1に記載のデータ構造。
  9. 前記優先レコードが1つ以上の優先表現を含み、
    前記一次別名レコードが一次アーチファクトの等価表現を1つ以上含み、
    前記二次別名レコードが二次アーチファクトの等価表現を1つ以上含む、
    請求項8に記載のデータ構造。
  10. 前記優先レコードがアドレスの優先表現を1つ以上含む請求項9に記載のデータ構造。
  11. 最適な探索のためにデータを準備する方法であり、1つ以上のデータベースに記憶されている前記データがレコードから成るリンクされたテーブルを複数個含み、前記方法が、
    前記レコードを、前記データに基づいて、一般的レベルから特定的レベルに構成された1連のレベルで、階層的順序で前記テーブルの各々のテーブル中に配置するステップと、
    前記テーブルの各々を1つ以上の疎行列リンクされたリストテーブルに変換するステップと、
    を含む方法。
  12. 前記1つ以上のデータベースがサーバ・クライアントネットワーク環境下に存在し、前記方法が、前記1つ以上の疎行列リンク済みリストテーブルを1つ以上のクライアントに分配するステップをさらに含む請求項11に記載の方法。
  13. 前記1つ以上のデータベースがデータ超集合を形成するように相互接続されたリレーショナルデータベースである請求項11に記載の方法。
  14. 前記データがアドレスアーチファクトを含む請求項11に記載の方法。
  15. 最適な探索のためにデータを準備する装置であり、1つ以上のデータベースに記憶されている前記データがレコードから成るリンクされたテーブルを複数個含み、前記装置が、
    中央処理装置と、
    メモリーと、
    基本的入/出力システムと、
    前記中方処理装置が実行可能なプログラムモジュールを含むプログラムストレージであり、前記プログラムモジュールが、
    前記レコードを、前記データに基づいて、一般的レベルから特定的レベルに構成された1連のレベルで、階層的順序で前記テーブルの各々のテーブル中に配置する手段と、
    前記テーブルの各々を1つ以上の疎行列リンクされたリストテーブルに変換する手段と、
    を含む前記プログラムストレージと、
    を備える装置。
  16. 前記中央処理装置から遠隔にある1つ以上のクライアントをさらに備える請求項15に記載の装置において、前記プログラムモジュールが、前記1つ以上の疎行列リンク済みリストテーブルの複製をサーバから1つ以上のクライアントに分配する手段をさらに含む、前記装置。
  17. リンクされたテーブルから成るデータベースを用いて主観的表現を優先表現に変換する方法において、前記方法が、
    前記主観的表現を捕獲してそれを前記リンクされたテーブルの内の第1のテーブルに記憶するステップと、
    前記リンクされたテーブルの内の第2のテーブルにソースデータを記憶するステップと、
    前記主観的表現を前記ソースデータと比較することによって前記ソースデータの中から1つ以上の候補となる表現を突き止めるステップと、
    前記1つ以上の候補表現の中から優先表現を選択するステップであり、前記優先表現は前記主観的表現に最も類似している前記ステップと、
    前記優先表現を放出するステップと、
    を含む方法。
  18. 前記ソースデータを見直して、優先データを含む1つ以上の選択レコードを特定するステップと、
    優先トークンを前記1つ以上の選択レコードに付加するステップと、
    をさらに含む請求項17に記載の方法。
  19. 優先表現を選択する前記ステップが、前記1つ以上の候補表現の内の1つと関連する優先トークンを特定するステップを含む請求項17に記載の方法。
  20. 1つ以上の候補表現を突き止める前記ステップが、
    (a)前記主観的表現を1つ以上の離散的アーチファクトに解析するステップと、
    (b)(1)前記1つの離散的アーチファクトを前記ソースデータと比較することによって前記ソースデータの中から1つ以上の候補アーチファクトを突き止めるステップと、
    (2)前記1つ以上の候補アーチファクトの中から優先アーチファクトを選択するステップであり、前記優先アーチファクトは前記1つの離散的アーチファクトに最も類似しているステップと、
    (3)前記優先アーチファクトを記憶するステップと、
    から成る、前記1つ以上の離散的アーチファクトの内から1つを選択するステップと、
    (c)前記1つ以上の離散的アーチファクトの各々に対してステップ(b)を繰り返すステップと、
    (d)前記優先アーチファクトを組み合わせて優先表現を形成するステップと、
    をさらに含む請求項17に記載の方法。
  21. 1つ以上の候補表現を突き止める前記ステップは、
    前記リンクされたテーブルの内の3番目のテーブルに別名データを記憶するステップと、
    前記別名データを見直して、優先別名表現を含む1つ以上の選択別名レコードを特定するステップと、
    優先別名トークンを前記1つ以上の選択別名レコードに付加するステップと、
    前記主観的表現を前記別名データと比較することによって前記別名データの中から1つ以上の候補別名を突き止めるステップと、
    前記1つ以上の候補別名から優先別名を選択するステップであり、前記優先別名は前記優先別名トークンに最も緊密に関連しているステップと、
    前記優先別名を候補表現として放出するステップと、
    をさらに含む請求項17に記載の方法。
  22. 1つ以上の候補別名を突き止める前記ステップは、
    (a)前記主観的表現を1つ以上の離散的アーチファクトに解析するステップと、
    (b)(1)前記1つの離散的アーチファクトを前記別名データと比較することによって前記ソースデータの中から1つ以上の候補別名アーチファクトを突き止めるステップと、
    (2)前記1つ以上の候補別名アーチファクトの中から優先別名アーチファクトを選択するステップであり、前記優先別名アーチファクトは前記優先別名トークンに最も緊密に関連しているステップと、
    (3)前記優先別名アーチファクトを記憶するステップと、
    から成る、前記1つ以上の離散的アーチファクトの中から1つを選択するステップと、
    (c)前記1つ以上の離散的アーチファクトの各々に対してステップ(b)を繰り返すステップと、
    (d)前記優先別名アーチファクトを前記優先別名に付加するテップと、
    をさらに含む請求項21に記載の方法。
  23. リンクされたテーブルから成るデータベースを用いて、主観的表現と優先表現に変換する装置において、前記装置が、
    中央処理装置と、
    メモリーと、
    基本的入/出力システムと、
    前記中方処理装置が実行可能なプログラムモジュールを含むプログラムストレージであり、前記プログラムモジュールが、
    前記主観的表現を捕獲してそれを前記リンクされたテーブルの内の最初のテーブルに記憶する手段と、
    前記リンクされたテーブルの内の2番目のテーブルにソースデータを記憶する手段と、
    前記主観的表現を前記ソースデータと比較することによって前記ソースデータの中から1つ以上の候補となる表現を突き止める手段と
    前記1つ以上の候補表現の中から優先表現を選択する手段であり、前記優先表現は前記主観的表現に最も類似している前記手段と、
    前記優先表現を放出する手段と、
    を備える前記プログラムストレージと、
    を備える装置。
  24. 前記プログラムモジュールが、
    前記ソースデータを見直して、優先データを含む1つ以上の選択レコードを特定する手段と、
    優先トークンを前記1つ以上の選択レコードに付加する手段と、
    をさらに備える請求項23に記載の装置。
  25. 前記プログラムモジュールが、前記1つ以上の候補表現の内の1つと関連する優先トークンを特定する手段をさらに備える請求項23に記載の装置。
  26. 1つ以上の候補表現を突き止める前記手段が、
    (a)前記主観的表現を1つ以上の離散的アーチファクトに解析する手段と、
    (b)(1)前記1つの離散的アーチファクトを前記ソースデータと比較することによって前記ソースデータの中から1つ以上の候補アーチファクトを突き止める手段と、
    (2)前記1つ以上の候補アーチファクトの中から優先アーチファクトを選択する手段であり、前記優先アーチファクトは前記1つの離散的アーチファクトに最も類似している手段と、
    (3)前記優先アーチファクトを記憶する手段と、
    から成る、前記1つ以上の離散的アーチファクトの内から1つを選択する手段と、
    (c)前記1つ以上の離散的アーチファクトの各々に対してステップ(b)を繰り返す手段と、
    (d)前記優先アーチファクトを組み合わせて優先表現を形成する手段と、
    をさらに備える請求項23に記載の装置。
  27. 1つ以上の候補表現を突き止める前記手段が、
    前記リンクされたテーブルの内の3番目のテーブルに別名データを記憶する手段と、
    前記別名データを見直して、優先別名表現を含む1つ以上の選択別名レコードを特定する手段と、
    優先別名トークンを前記1つ以上の選択別名レコードに付加する手段と、
    前記主観的表現を前記別名データと比較することによって前記別名データの中から1つ以上の候補別名を突き止める手段と、
    前記1つ以上の候補別名から優先別名を選択する手段であり、前記優先別名は前記優先別名トークンに最も緊密に関連している手段と、
    前記優先別名を候補表現として放出する手段と、
    をさらに備える請求項23に記載の装置。
  28. 1つ以上の候補別名を突き止める前記手段は、
    (a)前記主観的表現を1つ以上の離散的アーチファクトに解析する手段と、
    (b)(1)前記1つの離散的アーチファクトを前記別名データと比較することによって前記ソースデータの中から1つ以上の候補別名アーチファクトを突き止める手段と、
    (2)前記1つ以上の候補別名アーチファクトの中から優先別名アーチファクトを選択する手段であり、前記優先別名アーチファクトは前記優先別名トークンに最も緊密に関連している手段と、
    (3)前記優先別名アーチファクトを記憶する手段と、
    から成る、前記1つ以上の離散的アーチファクトの中から1つを選択する手段と、
    (c)前記1つ以上の離散的アーチファクトの各々に対してステップ(b)を繰り返す手段と、
    (d)前記優先別名アーチファクトを前記優先別名に付加するテップと、
    をさらに備える請求項27に記載の装置。
  29. 1つ以上の外部アプリケーションによるデータベースに対するアクセスを制御する方法において、前記方法が、
    各々が前記1つ以上の外部アプリケーションの内の1つと相関している複数のルール集合を設定して記憶するステップと、
    第1のアプリケーションから要求を受信するステップと、
    前記第1のアプリケーションと相関している第1のルール集合を検索するステップと、
    前記第1のルール集合を適用して、前記第1のアプリケーションと前記データベース間の対話を制御するステップと、
    を含む方法。
  30. 前記第1のルール集合が、前記第1のアプリケーションによって用いられる前記データベースから捕獲されるように利用可能なデータのリストを含む、請求項29に記載の方法。
  31. 1つ以上の外部アプリケーションからの要求に応答してデータベース内部におけるデータ捕獲の深度を制御する方法において、前記方法が、
    複数のルール集合を設定して記憶するステップであり、その各々が前記1つ以上の外部アプリケーションの内の1つと相関している前記ステップと、
    前記複数のルール集合の各々が前記データベースから捕獲されるデータのリストを含んでおり、
    第1のアプリケーションから要求を受信するステップと、
    前記第1のアプリケーションと相関している第1のルール集合を検索するステップと、
    前記第1のルール集合を適用して、前記データベースから前記第1のアプリケーションにとって利用可能なデータを制限するステップと、
    を含む方法。
  32. 一次テーブルと1つ以上の二次テーブルをリンクするデータベースであり、前記テーブルの各々が共通のデータ構造を共有する前記データベースを含むデータ構造において、前記データベースが、前記テーブルの内の1つ以上を疎行列リンクされたリストに変換するように構成されているデータベース管理システムによって制御される、データ構造。
  33. 前記データベースは、相互接続されたリレーショナルデータベースを1つ以上含む請求項32に記載のデータ構造。
  34. 前記データベース管理システムがインタフェースと確認モジュールとを含む請求項32に記載のデータ構造。
  35. 前記インタフェースは、1つ以上の外部アプリケーションによる前記データベースに対するアクセスを制御する請求項34に記載のデータ構造。
  36. 前記データベース管理システムは、データを主観的表現から優先表現に変換するようにさらに構成される請求項32に記載のデータ構造。
  37. パラメータの優先特徴付けを表す値から成る第1のテーブルと、
    パラメータを特徴付ける入力データを表す値から成る第2のテーブルと、
    前記入力データを対応する優先特徴付けに適合させるプロセスを容易化する階層に配置されている値から成る第3のテーブルと、
    を含み、前記テーブルの各々が疎行列リンクされたリストを含む、データベース管理システムで用いられるデータ構造。
  38. 第1のテーブル中のパラメータを特徴付ける入力データを受信するステップと、
    第2のテーブルに記憶されている別名特徴付けのテーブルにしたがって前記入力データを修正するステップと、
    修正された入力データを第3のテーブルに記憶されている優先特徴付けに整合させるステップと、
    を含む、パラメータを特徴付けする方法。
  39. 1つ以上の二次データベースに動作可能に接続された一次データベースを含む超集合であり、前記データベースの各々が複数のリンクされたテーブルを含み、前記テーブルの各々が共通のデータ構造を共有する前記超集合と、
    前記テーブルの内の1つ以上を疎行列リンクされたリストに変換するように構成されたエンハンスメントモジュールと、
    サーバ・クライアントネットワーク環境下でデータの配分を制御する公開/加入モジュールと、
    アドレスの主観的表現を前記アドレスの優先表現に変換するマッチング/確認モジュールと、
    1つ以上の外部アプリケーションによる前記超集合に対するアクセスを制御するインタフェースと、
    を備えるアドレス管理システム。
  40. 前記エンハンスメントモジュールは、前記データに基づいて、一般的レベルから特定的レベルに構成された1連のレベルで階層的順序で前記テーブルの内の1つ以上のレコードを配置するようにさらに構成される請求項39に記載のシステム。
  41. 前記一次データベースがソーステーブルを含み、
    第1の二次データベースが別名テーブルを含み、
    第2の二次データベースが標準化テーブルを含み、
    第3の二次データベースが入力データを受け入れて記憶するように構成されている、
    請求項39に記載のシステム。
  42. 前記ソーステーブルが、公的なソースまたは私的なソースから得られたデータレコードを含み、
    前記別名テーブルはレコードの等価表現を1つ以上含み、
    前記標準化テーブルがレコードの標準化された表現を1つ以上含む、
    請求項41に記載のシステム。
  43. 前記ソーステーブルは、政府の郵政サービスと商用ソースとから得られたアドレスレコードを含む、請求項42に記載のシステム。
  44. 前記第1のテーブルが優先レコードを含み、
    第2のテーブルが一次別名レコードを含み、
    第3のテーブルが二次別名レコードを含む、
    1つ以上のアドレスアーチファクトを含むレコードを記憶する請求項40に記載のシステム。
  45. 前記優先レコードが1つ以上の優先表現を含み、
    前記一次別名レコードが一次アドレスアーチファクトの等価表現を1つ以上含み、
    前記二次別名レコードが二次アドレスアーチファクトの等価表現を1つ以上含む、
    請求項44に記載のシステム。

JP2005510802A 2003-10-21 2003-10-21 リレーショナルデータベースの超集合のためのデータ構造と管理システム Withdrawn JP2007535009A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2003/033349 WO2005050481A1 (en) 2003-10-21 2003-10-21 Data structure and management system for a superset of relational databases

Publications (1)

Publication Number Publication Date
JP2007535009A true JP2007535009A (ja) 2007-11-29

Family

ID=34618841

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005510802A Withdrawn JP2007535009A (ja) 2003-10-21 2003-10-21 リレーショナルデータベースの超集合のためのデータ構造と管理システム

Country Status (7)

Country Link
EP (1) EP1687741A1 (ja)
JP (1) JP2007535009A (ja)
CN (1) CN100421107C (ja)
AU (1) AU2003284305A1 (ja)
CA (1) CA2543159C (ja)
MX (1) MXPA06004481A (ja)
WO (1) WO2005050481A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7548935B2 (en) * 2002-05-09 2009-06-16 Robert Pecherer Method of recursive objects for representing hierarchies in relational database systems
JP2008529168A (ja) 2005-01-28 2008-07-31 ユナイテッド パーセル サービス オブ アメリカ インコーポレイテッド 地域内の各サービス地点の住所データの登録および維持
CN100367280C (zh) * 2005-11-07 2008-02-06 西安工程科技学院 互联网三维人体测量数据共享系统及数据融合方法
US8204856B2 (en) 2007-03-15 2012-06-19 Google Inc. Database replication
US7822729B2 (en) 2007-08-15 2010-10-26 International Business Machines Corporation Swapping multiple object aliases in a database system
US7788305B2 (en) * 2007-11-13 2010-08-31 Oracle International Corporation Hierarchy nodes derived based on parent/child foreign key and/or range values on parent node
CN105373613B (zh) * 2009-04-16 2019-05-14 泰必高软件公司 基于策略的储存结构分布
US8538934B2 (en) * 2011-10-28 2013-09-17 Microsoft Corporation Contextual gravitation of datasets and data services
CN103093218B (zh) * 2013-01-14 2016-04-06 西南大学 自动识别表格类型的方法及装置
US10223637B1 (en) 2013-05-30 2019-03-05 Google Llc Predicting accuracy of submitted data
EP3633514B1 (en) * 2017-05-24 2022-02-16 Toshin System, Ltd. Data exchange system, data exchange method, and data exchange program
CN107609406A (zh) * 2017-08-09 2018-01-19 南京邮电大学 一种基于地理编码的快递地址加密方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5387783A (en) * 1992-04-30 1995-02-07 Postalsoft, Inc. Method and apparatus for inserting and printing barcoded zip codes
WO1996034354A1 (en) * 1995-04-28 1996-10-31 United Parcel Service Of America, Inc. System and method for validating and geocoding addresses
US5881169A (en) * 1996-09-13 1999-03-09 Ericsson Inc. Apparatus and method for presenting and gathering text entries in a pen-based input device
US6542896B1 (en) * 1999-07-20 2003-04-01 Primentia, Inc. System and method for organizing data

Also Published As

Publication number Publication date
WO2005050481A1 (en) 2005-06-02
EP1687741A1 (en) 2006-08-09
AU2003284305A1 (en) 2005-06-08
CN1879104A (zh) 2006-12-13
CA2543159C (en) 2010-08-10
CN100421107C (zh) 2008-09-24
CA2543159A1 (en) 2005-06-02
MXPA06004481A (es) 2006-07-10

Similar Documents

Publication Publication Date Title
US7305404B2 (en) Data structure and management system for a superset of relational databases
US6389429B1 (en) System and method for generating a target database from one or more source databases
US6470347B1 (en) Method, system, program, and data structure for a dense array storing character strings
KR100688121B1 (ko) 표형식 데이터의 검색,집계,소트방법 및 장치
US9552335B2 (en) Expedited techniques for generating string manipulation programs
JP3883810B2 (ja) 情報管理、検索及び表示システム及び関連方法
JP5306359B2 (ja) 複数言語によるデータ記録を関連付ける方法およびシステム
US20040107189A1 (en) System for identifying similarities in record fields
US20040158562A1 (en) Data quality system
CN100498789C (zh) 基于离散性、交叉性、非完全性的特性字符串匹配方法
US20100017378A1 (en) Enhanced use of tags when storing relationship information of enterprise objects
JP2003044267A (ja) データソート方法、データソート装置およびデータソートプログラム
CN111506621A (zh) 一种数据统计方法及装置
CN110795526B (zh) 一种用于检索系统的数学公式索引创建方法与系统
JP2007535009A (ja) リレーショナルデータベースの超集合のためのデータ構造と管理システム
JP2004030221A (ja) 変更対象テーブル自動検出方法
US20090198647A1 (en) Apparatus and method for identifying locale-specific data based on a total ordering of supported locales
JP4136594B2 (ja) データ処理方法およびデータ処理プログラム
US20050154703A1 (en) Information partitioning apparatus, information partitioning method and information partitioning program
CN110245215B (zh) 一种文本检索方法和装置
JP2000003366A (ja) 文書登録方法と文書検索方法及びその実施装置並びにその処理プログラムを記録した媒体
JP2002032383A (ja) 商品情報データベースシステム
WO2020101470A1 (en) System and method for tree based graph indexing and query processing
JPH0934906A (ja) 図書管理装置
CN117194410B (zh) 一种人工智能语言模型生成业务报表的方法及系统

Legal Events

Date Code Title Description
A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090507