JP2004527830A - 仮想データバンクオブジェクト - Google Patents
仮想データバンクオブジェクト Download PDFInfo
- Publication number
- JP2004527830A JP2004527830A JP2002570116A JP2002570116A JP2004527830A JP 2004527830 A JP2004527830 A JP 2004527830A JP 2002570116 A JP2002570116 A JP 2002570116A JP 2002570116 A JP2002570116 A JP 2002570116A JP 2004527830 A JP2004527830 A JP 2004527830A
- Authority
- JP
- Japan
- Prior art keywords
- databank
- virtual
- query
- result set
- definition module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 12
- 238000004590 computer program Methods 0.000 claims description 6
- 241000571697 Icarus Species 0.000 description 10
- 238000007726 management method Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 241000282412 Homo Species 0.000 description 3
- 241000282320 Panthera leo Species 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000002354 daily effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 108090000623 proteins and genes Proteins 0.000 description 2
- 102000004190 Enzymes Human genes 0.000 description 1
- 108090000790 Enzymes Proteins 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 102000004169 proteins and genes Human genes 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/256—Integrating or interfacing systems involving database management systems in federated or virtual databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
(発明の分野)
本発明は、データバンクに関し、特に、現存のデータバンクに基づいて生成される仮想データバンクオブジェクトに関する。
(発明の背景)
データバンクは現在のコンピュータ技術においては一般的なツールであり、これらは、注文どおりの形で大量のデータを管理し、格納し、検索するために、ほとんどあらゆる分野で使われている。例えば科学におけるデータバンク、金融データバンク、経済におけるデータバンクなど、膨大な種類のデータバンクが存在する。
【0002】
ユーザは、データベース管理システムと呼ばれる特定のソフトウェアを使ってデータバンクを検索するが、このデータベース管理システムは、データバンクのコンテンツおよび新しいデータセットの記憶を管理するタスクを実行し、これによりユーザが一定の検索基準にしたがって特定の情報を選択することができるようになる。しばしばユーザは、所望の情報を全て得るために、いくつかのデータバンクを検索する必要がある。
【0003】
これは、特に、生物学および生化学の分野の場合があてはまり、ここでは、膨大な種類のデータバンクが存在しており、これら全ては異なるコンテンツを有するが、しかし、互いにいくらか関係がある。例えば、酵素のデータを含むデータバンク、たんぱく質のデータを含むデータバンク、遺伝子に関するデータを含むデータバンクなどがある。これらのデータバンクにアクセスするための1つのツールとして、ドイツのLion bioscience AGによって開発され製造されるソフトウェアシーケンス検索システムSRSがある。
【0004】
SRSとは、高度な自由度があり、上述のあらゆるデータバンクの検索に対して使うことができる、いわゆる検索ソフトウェアのことである。これはICARUSと呼ばれるスクリプト言語に基づいている。ICARUSは、強力な解析能力とメタ定義能力(meta−definition capabilities)とを有している。これらにより、一定の情報を、典型的な単層ファイルデータバンク(flat−file databank)である上述のデータバンクから抽出することができる。
【0005】
しかし、データベース管理システムもしくは検索システムは、今のところ、(SRSのような)1つより多くのデータバンクを検索できるものでさえ、既存のままのデータバンクの検索にたよっている。これは、クエリーを発送したときに抽出することができる情報コンテンツ(informational content)が、それ自体が変形しにくい既存のデータバンクによって制限されるということを意味する。
【0006】
本発明は、この制限を取り除き、既存のデータバンクにクエリーを発送することによってどの情報コンテンツを得ることができるかについてより大きな自由度を提供することを目指す。
(発明の概要)
本発明によれば、1つもしくはそれより多いデータバンクから生成される仮想データバンクオブジェクトが提供され、ここでは、この仮想データバンクオブジェクト自体をその他のデータバンクのように検索できるが、この方法は、
仮想データバンクの構成要素を形成する1つもしくはそれより多いメンバーデータバンクの組合せとして仮想データバンクオブジェクトを定義するメンバー定義モジュールであって、仮想データバンクオブジェクト自体は、動作の点でメンバーデータバンクと似ており、ユーザクエリーによってこの構成要素を形成するメンバーデータバンクの1つのように検索でき、仮想データバンクオブジェクトがユーザクエリーによって検索されているとき、そのメンバーデータバンクはユーザクエリーを受信して第1の結果セットをリターンするようなメンバー定義モジュールを備え、この仮想データバンクオブジェクトは、
仮想データバンクの構成要素を形成する1つもしくはそれより多いメンバーデータバンクに適用されるクエリーを定義する定義モジュールであって、このクエリーは、実行されたとき、1つもしくはそれより多いメンバーデータバンクのエントリのサブセットによって形成される第2の結果セットをリターンするような定義モジュール、をさらに備え、
この定義モジュールは、ブール演算子を定義するクエリーリンク演算子であって、仮想データバンクオブジェクトに対するユーザクエリーから生じる第1の結果セットと定義モジュールにおいて定義されたクエリーから生じる第2の結果セットとがクエリーリンク演算子によって接続されてそれによって最終の結果セットが形成されるようなクエリーリンク演算子をさらに備え、この最終の結果セットは、それ自体がメンバーデータバンクの1つのようなデータバンクであったかのように、仮想データバンクオブジェクトを検索するよう仮想データバンクオブジェクトに向けられるユーザクエリーから生じる有効な結果である。
【0007】
1つもしくはそれより多いデータバンクに対して生成される仮想データバンクオブジェクトが提供される。仮想データバンクオブジェクトは、1つもしくはそれより多いメンバーデータバンクの組合せとして仮想データオブジェクトを定義するメンバー定義モジュールを備える。それによって形成された仮想データオブジェクトは、動作の点でメンバーデータバンクと似ており、あたかもそのメンバーデータバンクの1つであるかのように検索することができる。さらに、1つもしくはそれより多いメンバーデータバンクに適用されるクエリーを定義するための定義モジュールが提供される。このクエリーは、1つもしくはそれより多いメンバーデータバンクのエントリのサブセットを備える結果セット(result set)をリターンする。さらに、定義モジュールは、ブール関係を定義するクエリーリンク演算子を定義するが、このクエリーリンク演算子によって、定義モジュールのクエリーの結果生じる結果セットが、仮想データバンクオブジェクトに適用されるユーザクエリーの結果生じる別の結果セットに接続もしくはリンクされることになる。このユーザクエリーが仮想データバンクオブジェクトへ発送されるとき、このクエリーはメンバーデータバンクに効果的に発送され、それによってメンバーデータバンクからの(第1の)結果セットをリターンし、そしてこの結果セットは、ブールリンク演算子によって定義モジュールのクエリーからの(第2の)結果セットに結合され、最終の結果セットが得られる。それによって、仮想データバンクオブジェクトは、メンバーデータバンクのエントリのサブセットを効果的に構成し、にもかかわらず外部からあたかもメンバーデータバンク自体の1つのように検索することができる。
【0008】
このことは、上述の構成により、ユーザはより高度に自由度のある手法で既存のデータバンクに基づいて仮想データバンクオブジェクトを定義することができるということを意味している。このように生成された仮想データバンクオブジェクトは、外部からはそれら自体が(単一の)データバンクのように見える。定義モジュールにおいて定義されたクエリーと定義モジュールにおいて定義されたクエリーリンク演算子によって定義されるある一定の制限を適用する間は、仮想データバンクオブジェクトは、そのメンバーデータバンクの組合せによって形成される。
【0009】
特定の実施例によれば、定義モジュールのクエリーは、メンバーデータバンクのうちの1つのエントリをリターンするが、このメンバーデータバンクのうちの1つのエントリは、メンバーモジュールのうちの1つ以外におけるエントリのリファレンスを含む。これは、例えばメンバーデータバンクのうちの1つのエントリであって、メンバーデータバンクのうちの別のものにおいて更新されたエントリ、を取り除くために使うことができる。
【0010】
特定の実施例によれば、定義モジュールのクエリーは、更新時間に従ってエントリのセットを選択する。これにより、データバンクの更新時間に従ってアクセス制限を適用することが容易となる。例えば、制限が適用されれば、ユーザは、少なくとも1年経ったエントリのみにアクセスすることができ、より最近に更新されたエントリにアクセスすることはない。
【0011】
特定の実施例によれば、定義モジュールのクエリーによって適用された制限により、メンバーデータバンクのエントリを選択するが、あるデータフィールドが、このメンバーデータバンクのためのあるコンテンツを有する。これは例えば、生物学に適用する場合、例えば人間のようなある生命体に関係するエントリだけを選択するのに使ってもよい。
【0012】
特定の実施例によれば、クエリーモジュールのクエリーが、プログラミング言語で書かれた指示のセットを備える。これにより、クエリー定義モジュールにおいて非常に複雑なクエリーを作成するのが容易となる。
【0013】
さらに特定の実施例によれば、複数のクエリーは、クエリー定義モジュールにおいて定義される。この複数のクエリーにより、仮想データバンクオブジェクト上に種々のビュー(view)を定義することができるようになる。
【0014】
特定の実施例によれば、種々のビューは、種々のユーザ、種々の権限レベルに割り当てることができ、あるいは、他のいくつかの分類スキームに従って分類することができる。
【0015】
さらに特定の実施例によれば、仮想データバンクオブジェクトのメンバーデータバンクは互いに完全に独立しており、これらは互いに独立に別々のインデックスがつけられていて、かつ、仮想データバンクオブジェクトのために共通のインデックスが構築されることはない。これにより、2つの既存のデータバンクを仮想データバンクオブジェクトに結合して仮想データバンクオブジェクトに対して共通のインデックスをさらに構築するときに生じ得るインデックスをつけるというオーバーヘッドを回避することが容易となる。
【0016】
さらに特定の実施例によれば、仮想データバンクオブジェクトのメンバーデータバンクは、それ自体が仮想データバンクオブジェクトとなり得る。これにより、仮想データバンクオブジェクト構造の入れ子(nesting)が可能であり、さらには、この入れ子構造において継承(inheritance)の概念を使うことも可能である。
【0017】
仮想データバンクオブジェクトを、ユーザクエリーをメンバーデータバンクのいずれかにも似た仮想データバンクオブジェクトに発送することによって検索することができる。クエリーは、その後仮想データバンクオブジェクトの個々のメンバーデータバンクに配送され、メンバーデータバンクオブジェクト上で実行される。これは、第1の結果セットをリターンする。さらなる(すなわち第2の)結果セットは、クエリー定義モジュールにおいて定義されたクエリーによってリターンされる。このクエリーはまた、メンバーデータバンクに適用され、仮想データバンクオブジェクトに発送されたユーザクエリーとは典型的に異なる結果セットをリターンする。そして、2つの結果セットを結合するためのクエリーリンク演算子のようなクエリーを適用することによって、2つの結果セットは結合される。そしてこれにより、仮想データバンクオブジェクトに発送されたクエリーに応答してリターンされた最終の結果セットが生じる。
【0018】
本発明は、添付の図面を参照して詳細に説明される。
(詳細な説明)
図1は、別々に検索することができる2つのデータバンク100、110を概略的に例示する。ここで、データバンクAはあるコンテンツを有し、そしてデータバンクBは、データバンクAにも存在するがそのコンテンツがいくつかのさらなる情報、もしくは、データバンクAにおいて対応するエントリのコンテンツと比較されたときいくらか修正されたものである更新されたエントリを含むものと仮定する。このデータバンク構造の1つの例は、データバンクEMBLおよびEMBLNEWであり、後者は、EMBLにも存在するエントリの更新されたエントリを含む。これらデータバンクは、生物学のデータバンクであり、生物学および生物情報学の分野でよく知られているものである。
【0019】
ユーザが2つのデータバンクからある情報を得ることを望む場合、両方のデータバンクは、図1に例示されたように、同じクエリーを使って別々に検索されなければならない。データバンクAに適用されたクエリーは結果セットA’をもたらし、データバンクBに適用された同じクエリーは結果セットA’とはコンテンツが異なる結果セットB’をもたらす。これは、データバンクBへのクエリーに応答してリターンされたデータバンクエントリが、更新された情報、補足された情報などのようなさらなる情報を含むことができるからである。
【0020】
したがって、ユーザには2つの異なる結果セットが提供され、完全な結果情報を得るために、ユーザは、両方のデータをマニュアルで分析しなければならない。このマニュアルでの結果分析は、結果セットA’にも存在する結果セットB’のメンバーの識別を含んでいるが、その後、識別された結果セットA’のメンバーを削除し、更新された結果が結果セットB’に存在することになる。
【0021】
図1に示された時間のかかるマニュアルでの分析を回避するために考えられるのは、2つのデータバンク100および110を結合して新しいデータバンクを作るということである。しかしこれは、結合されたデータバンクに対して新しいインデックスを構築することを含んでいる。しかし、このインデックスの構築はだいぶ時間がかかり、特に両方のデータバンクが非常に大きい場合はそうである。
【0022】
結合されたデータバンクの構築では、別のデータバンクに存在する対応の識別子かどうかについて、個々のデータセットの識別子全てをチェックする必要があり、もしそうであるならば、両方のデータバンクに存在するということがわかったデータセットに対して、データバンクAの未更新のフィールド情報を、データバンクBの更新されたフィールド情報によって置き換えなければならない。
【0023】
本発明の第1の実施例による異なるアプローチを、図2を参照して説明する。図2には、いわゆる仮想オブジェクト200が概略的に例示される。ここで「仮想」という用語は、このオブジェクトが、仮想データバンクオブジェクト200のメンバーである既存のデータバンク210および220に基づいて形成されるということを意味している。仮想データバンクオブジェクト200は、それ自体が仮想データバンクオブジェクトのメンバー(もしくはライブラリ)であるデータバンク210および220のようなデータバンクであるかのように外部に対して現れる。
【0024】
外部に現れることを容易にするために、仮想データバンクオブジェクト200は、クエリー240およびクエリーリンク演算子250を定義する定義モジュール230をさらに備える。仮想データバンクオブジェクト200を形成するためのメンバーデータバンク210および220に接続される定義モジュール230の動作について次に説明する。
【0025】
定義モジュール230は、両方のデータバンク210および220に適用されるクエリー240を定義するが、後者は更新された情報を含む。クエリーをデータバンクに適用することで、データバンク210および220からそれぞれリターンされる結果A’および結果B’を含む結果セットがもたらされる。
【0026】
図2の情報には、(ユーザ)クエリー265が例示されている。クエリー265は、図1の例に示したようなデータバンク210および220へユーザが発送することを望むクエリーである。しかし、本実施例では、クエリー265は、個々のデータバンクへ発送される代わりに、仮想データバンクオブジェクト200に発送される。なぜなら、外部に対しては(ユーザに対しては)データバンクそのものとして現れるからである。
【0027】
その後、クエリーは、図2に示されるような結合された結果セット270をともに形成する結果セットB”およびA”をそれぞれリターンする個々のデータバンク210および220へリダイレクトされる。
【0028】
結合された結果セット270は、クエリーリンク演算子250を適用することによって結果セット260と結合される。そして、これにより最終の結果セット290がリターンされる。ここで、クエリーリンク演算子は、ブール演算子であってよく、このブール演算子によって2つの結果セット260および270が接続(リンク)され最終の結果セットが形成される。それは例えばブール演算子ORであり、そのとき最終の結果セットは、2つの結果セット260および270を結合することにより生じるセットである。また、それはブール演算子ANDでもよく、両方のセットに存在するセット260および270のエントリのみが最終の結果としてもたらされる。別の可能性としてはBUT NOT接続があり、これは、例えば、第2の結果セットではなく第1の結果セットに存在するエントリだけが最終の結果として選択される。
【0029】
データバンクBはデータバンクAに存在する更新されたエントリを含むという上記の特定の例に話を戻す。新しいインデックスを構築する間にデータバンクAおよびBを結合して新しいデータバンクを生成する場合に、リターンされたものと同じ結果セット290をリターンするという目標を達成するためには、仮想データバンクオブジェクト200は、クエリー265によって検索されるとき、次の特定のセッティングをクエリー240およびクエリーリンク演算子250で実行すべきである。
【0030】
この場合、クエリー240は、データバンクBにも対応のエントリを有するデータバンクAからのエントリをリターンするクエリーである。これらのエントリだけがクエリー240の結果としてリターンされる。このクエリーは、Lion bioscience AGのソフトウェアシーケンス検索システムSRSに存在しており、演算子「>」を利用することで実行される。SRSでは、この演算は「リンク」と呼ばれる。この例では、クエリー文字列は「databank B>databank A」である。このクエリー文字列240は、データバンク210および220に適用されたとき、データバンクBにも存在するデータバンクAのエントリだけを含む結果セット260をリターンする。したがって、この特定の例では、結果セットB’は空であろう。
【0031】
このようにして、データバンクBに対応のエントリを有するデータバンクAのエントリを含む結果セット260が得られた。さらに、結果セット270では、両方のデータバンク210および220へのクエリー265の発送に応答してリターンされた検索結果の完全なセットが得られた。そのようにして得られた結果セット270は、クエリーリンク演算子250を適用することによって結果セット260に結合される。この特定のケースでは、クエリーリンク演算子250は、「butnot」タイプであり、これは、最終結果セット290は、結果セット270のエントリ全てを含むが、既に結果セット260に存在しているものは含まないということを意味する。それによって、結果セット270からのデータバンクAのエントリを取り除くことができるようになり、それに対し更新されたエントリが結果セット270に存在する。したがって、最終の結果セット290は、結合されたデータバンクに対して新しいインデックスを構築することによって両方のデータバンクAおよびBが結合されて新しいデータバンクとなる場合にもたらされる結果セットと同じである。
【0032】
このことは、仮想データバンクオブジェクト200は、図1を参照して説明したように結果セットをマニュアルで分析する必要なしに両方のデータバンクAおよびBから矛盾のない結果セットを単一のクエリーで得る可能性をユーザに提供する。
【0033】
上述の仮想データバンクオブジェクトは、オブジェクト指向プログラミング技術を使うことによって簡単に実現できる。生物学におけるより詳細な例について次に説明する。
【0034】
生物学のデータベースの分野では、数ヶ月ごとに定期的に、しばしば毎日、一般リリースが更新されるので、多くのデータベースがリリースされる。更新は、新しいエントリだけではなく、メインリリースに既に存在するエントリに対する更新も含む。このように維持されるデータベースの例としては、SWISSPROT、GENBANKおよびEMBLがある。毎日全ライブラリにインデックスをつけることに加え、毎日のリリース内の更新エントリはメインのリリースから削除する必要があるので、更新がリリースされるごとにこれらを結合して1つのライブラリとすることは、非実用的である。それゆえ、例えばLion bioscienceのSRS検索ソフトウェアを使う多くのデータバンクサーバ上では、これらのデータバンクは、2つのデータベースとして、すなわち、メインリリース(SWISSPROT、GENBANK)について1つおよび更新分(SWISSNEW、GENBANKNEW)について1つとして、取り扱われる。仮想データバンクオブジェクトは、こうすることの必要性を除去する。
【0035】
メンバーとしてメインリリースおよび更新データバンク(ライブラリ)を有する仮想データバンクオブジェクトでは、メインリリースに一度だけインデックスをつける必要があるが、更新ライブラリについては、更新されるときはいつでもインデックスが付けられる。リリースと更新されるエントリを定義する更新ライブラリとの間でリンクを定義できる。このリンクは、既に説明したSRSクエリー言語のリンク演算子を使って定義することができる。このリンクは、もう使われてなくて、仮想ライブラリから取り除くべきエントリを定義するクエリーとして使うことができる。リンクという用語は、ブール演算子によって2つの結果セットをリンクする「クエリーリンク演算子」ではなく、上述のSRSクエリー言語におけるリンク演算子を指しているということに注目すべきである。
【0036】
上述の例では、一般的なSWISSPROTデータバンクリリースとSWISSNEWインターナショナルデータバンクリリースとが結合されて単一の仮想データバンクオブジェクトになる。個々のデータバンクはまだ存在しているが、しかし、SWISSPROTALL仮想データバンクオブジェクトのサーチでは、SWISSPROTリリースデータバンク(ライブラリ)およびSWISSNEW更新データバンク(ライブラリ)の両方をサーチする。リンク演算子であるクエリーは、両方のデータバンクにおけるエントリの結合セットをリターンするが、エントリのセットから、更新ライブラリにおいて既に更新されているリリースライブラリにおけるエントリを取り除く。
【0037】
このようにして形成されたSWISSPROTALL仮想データバンクオブジェクトは、メンバー(もしくはメンバーデータバンク)として、SWISSPROTおよびSWISSNEWの2つのライブラリを有する。これは、仮想ライブラリをさらに定義するクエリー定義モジュールにおけるクエリー240を導くが、これは「(swissnew>swissprot)」という形を取る。このクエリーは、クエリーリンク演算子「BUT NOT」によってユーザクエリーから生じる結果セット270に接続される結果セット260をもたらす。SRSシステムにけるこの演算子のシンボルは、「!」である。したがって、実質的に、SWISSPROTALLライブラリに対する各ユーザクエリーは、「!」が添付されたクエリー「!(swissnew>swissprot)」を有する。
【0038】
SWISSPROTALLデータバンクは、SWISSPROTライブラリと同じフォーマットの定義$SWISSPROT_FORMATを使う。ライブラリオブジェクトのvirtualInfoアトリビュートはライブラリの仮想情報を定義し、それゆえ、仮想ライブラリとして(換言すれば、仮想データバンクオブジェクトとして)ライブラリを定義する。これは、SRSデータバンクサーバの場合、次のとおりである。
【0039】
【数1】
【0040】
Icarusオブジェクト「LibVirtual」は、ライブラリと、クエリー240(ここでは、「swissnew>swissprot」)と、仮想ライブラリを定義するのに使われるクエリーリンク演算子(ここでは、butnot)とを指定する。この場合、メンバーライブラリもしくはメンバーデータバンクは、$SWISSPROT_DBおよび$SWISSNEW_DBである。Icarucオブジェクト「LibVirtualQuery」は、クエリー240と、さらなるライブラリの定義に使われるクエリーリンク演算子定義250とを含む。この場合、SWISSNEWからSWISSPROTへのリンクは、メインリリースに既に存在していた新しい更新リリースにおけるエントリを定義する。このクエリーのタイプは、butnotであり、したがって仮想クエリーはbutnot(!)演算子を使ってユーザクエリーと結合される。
【0041】
ユーザがSWISSPROTALLライブラリをサーチするときはいつも、SWISSPROTおよびSWISSNEWの両ライブラリがサーチされ、一致したエントリのセットが、仮想クエリータイプ演算子と呼ばれるクエリーリンク演算子250(この場合は(!))を使って、クエリー240(「仮想クエリー」と称する)からの結果に結合される。
【0042】
本発明のさらなる実施例について図2を参照して説明する。
【0043】
データバンク210および220の両方とも種々の生命体に関するエントリを含み、各データバンクにおけるデータフィールドの1つが対応のエントリが属する生命体を指定するものと仮定する。そして、一緒に結合された2つのデータバンク210および220の生命体特有のバージョンを提供するように、仮想データバンクオブジェクト200を定義することができる。例えば、人間に関するエントリだけを含むよう仮想データバンクオブジェクト200を定義したいと仮定しよう。すると、クエリー240は、データフィールド「生命体」はこのエントリが人間に関するということを指定するこれらのエントリのみをデータバンク210および220がクエリー240に応答してリターンするよう、構築されるであろう。
【0044】
そして、結合された結果セット260は、各結果セットA’およびB’において人間に関するデータバンク210および220のエントリのみを含むであろう。このような場合、クエリーリンク演算子250は、論理AND演算子となり、このクエリーリンク演算子250によって結果セット270および260をリンクすることにより、結果セット270から人間に関係のないエントリを取り除くことができる。その結果、最終の結果セット290は、仮想データバンクオブジェクト200に向けて発送されていたクエリー265に応答して人間に関するエントリのみを含むことになる。
【0045】
当然、この例は、仮想データバンクオブジェクト200は単一のメンバーバンクとしてデータバンクAのみを含むといったより単純なやり方でも使うことができる。この場合、結合された結果セット260は、結果セットA’のみを含み、結果セット270は同様に結果セットA”のみを含む。
【0046】
この場合の定義モジュール230の例は次のとおりである。
【0047】
上記例において、仮想データバンクオブジェクト200は、単一のメンバーバンクとして、良く知られたデータバンクEMBLを含み、クエリー240は人間に関するエントリに対してクエリーを指定する(SRS言語で)EMBL−ORG:HUMAN*という形式をとり、クエリーリンク演算子は論理AND演算子である。このとき定義は次式のようになる。
【0048】
【数2】
【0049】
データ管理システムあるいは、クエリー240を定義するデータバンクを処理する検索システムによって提供されたクエリー言語を使うという可能性を有するだけでなく、クエリーの定義に関してより自由度があるという利点を有する。このことは、あらゆる他のプログラミング言語もしくはスクリプト言語においてクエリー定義240を実行することができることによって可能となる。この場合、このコマンドに従うものはあるプログラミング言語におけるもしくはあるスクリプト言語におけるクエリー定義であるということをコンパイラもしくはインタープリタに認識させるコマンドをクエリー定義は含み、これにより、コンパイラもしくはインタープリタが、プログラミング言語もしくはスクリプト言語でクエリー定義を処理するジョブをすることができる別のコンパイラもしくはインタープリタをコールすることができる。
【0050】
この例では、下記のように、クエリー240を定義するのにICARUSスクリプトが使われる。ここで、「QerySrt」は、ICARUS言語においてどのようなクエリーコマンドであってもよい。
【0051】
以下の例では、単純なクエリーが使われる。ICARUSの「@」演算子がICARUSスクリプトを定義するのにどのように使われるか注目すべきである。この演算子に従う全てのものは、クエリー240を定義するためのスクリプトとして解釈される。
【0052】
【数3】
【0053】
この例では、クエリーを行うために新しいセッションを作る代わりに、ICARUSコマンド$CurrSession:[]が使われる。これは、現在のセッションをリターンする。現在のセッションが存在しない場合、そのときは新しいセッションが作られる。クエリーは、結果セット260を作るセットである$setをリターンする。
【0054】
次の例では、ICARUSファイルが含まれる。これは、とても複雑なICARUSスクリプトとなり得る。上述と同じ$CurrSession:[]を再び使うべきである。
【0055】
【数4】
【0056】
仮想データバンクオブジェクトは、クエリーのユーザ依存の定義に基づいてデータベース上のあるエントリにアクセスすることを制限するのにも使うことができる。これは、種々のユーザについて種々のクエリー240が定義され、それによって、種々のユーザに対して種々の結合された結果セット260をリターンすることを意味している。結合された結果セット260を結果セット270にリンクするとき、ユーザ依存の最終の結果セットが得られる。
【0057】
これについて、SWISSPROTデータバンクを例にとり、より詳細に説明する。
【0058】
SWISSPROTライブラリはフィールド$DF_LUPDateを有しており、これは、各エントリの最後の更新日にインデックスをつける。このフィールドは仮想ライブラリを定義するのに使うことができ、これによりユーザは、エントリの最後の更新日に依存して、様々なエントリにアクセスすることができる。
【0059】
次の例の仮想データバンクオブジェクトであるSWISSPROTAGE仮想ライブラリは、ちょうど1つのデータバンクであるSWISSPROTALL_DB(よってSWISSPROTおよびSWISSNEWが上述のようにサーチされる)を含む。ライブラリ定義は次を含む。
【0060】
【数5】
【0061】
これは、ライブラリが一定のユーザに限定されることを示している。$LibVirtual定義は、ユーザに依存する2つの異なる仮想クエリーを含む。ユーザ1については、アクセスが全てのエントリに対して許される(なぜならクエリーが与えられないからである)。ユーザ2については、1999年1月1日移行の更新のみが含まれる。
【0062】
【数6】
【0063】
この場合、virtualQueryType(クエリーリンク演算子250)は、「butnot」ではなく「and」(&)であることに注目されたい。
【0064】
上述したように仮想データバンクオブジェクトの生成および使用は、これらが、データバンクの組合せを定義すること、および単一のデータバンクおよびデータバンクの組合せでの制限された使用をさらに定義すること、に使用することについて自由度をもたらす一方で、インデックスを付けるというオーバーヘッドを著しく低減させるということは、上述の例から当業者には明白であろう。仮想データバンクオブジェクトにより、ユーザは、既存のデータバンクのあらゆる組合せもしくはサブセットを定義することができ、そのようにして生成された仮想データバンクオブジェクトを、既存のデータバンクのように検索することができる。
【0065】
仮想データバンクオブジェクトは、それ自体がまたデータバンクオブジェクトであるメンバーデータバンクを含んでもよい。このことは、仮想データバンクオブジェクトが入れ子にされ、オブジェクト指向プログラミング技術で知られた継承の概念を使用することもできるということを意味する。
【0066】
一度この仮想データバンクオブジェクトが作られると、この仮想データバンクオブジェクトを、データバンク管理システムによってもしくは、仮想データバンクオブジェクト上でクエリーを実行する検索システムによって使うことができる。データベース管理システムもしくは検索システムに関連して前述の仮想データバンクオブジェクトを使う方法を、図3を参照して説明する。
【0067】
図3は、仮想データバンクオブジェクトがデータベース管理システムもしくは検索システムによって使われるときに実行されるステップを概略的に例示する。図3の右上部分のステップ300および310は、図2のクエリー定義モジュール230の動作に関する。図3の左上部分のステップ320、330および340は、図2に例示したようにメンバーバンク210および220にユーザクエリー265を発送することに関する。そして最後に、図3の動作350は、図2に例示したようにクエリーリンク演算子250に関する。
【0068】
ステップ300は、図2のクエリー定義モジュール230で定義したクエリーが実行されるが、このことは、仮想データバンクオブジェクトのメンバーデータバンクに発送され、ステップ310において、結合された結果セットがメンバーデータバンクから得られるということを意味する。ステップ300および310は、通常は予め定義されクエリー定義モジュールにセットされる定義に関するので、これらのステップは一度実行され、ステップ310においてリターンされる結合された結果セットがディスクにセーブされる。これは、後述するリンク演算350を実行するために後でディスクから検索されることもできる。
【0069】
これに対し、ステップ320は、図2に例示されたユーザクエリー265の入力に関する。ステップ320においてユーザによって入力されたクエリーは、ステップ330において仮想データバンクオブジェクトのメンバーオブジェクトに分配される。図2においてメンバーデータバンク210および220が例示される。これらデータバンク上にクエリーを実行することで、ステップ340においてメンバーデータバンクから結合された結果セットがリターンされる。これは、図2においては結合された結果セット270として例示される。
【0070】
ステップ300〜340が実行された後は、2つの結合された結果セットが存在するが、1つはユーザクエリーからメンバーバンクへ、もう1つはステップ300にいてクエリー定義モジュールで定義され発送されたクエリーからメンバーバンクへ、である。これら2つの結合された結果セットはステップ350においてブール演算によってリンクされる。ブール演算は、図2のクエリーリンク演算子250に対応する。
【0071】
結果として、ステップ360では、ステップ350でクエリーリンク演算子を使ってリンク演算を実行することによって得られる最終の結果セットがリターンされる。この最終の結果セットは、図2に例示される結果セット290に対応する。
【0072】
上述のように、ステップ300および310を予め実行してもよく、ステップ310で得られる結果をディスクにセーブしてもよい。ステップ350でクエリーリンク演算を実行したとき、2つの結合された結果セットは、例えば、2つの結合された結果セット260および270において結果の個々のデータセット識別子を検索することによってブールリンク演算子を使って簡単に実行できる。これら2つの結合された結果セットはそれぞれ、データバンク210および220からのデータバンクエントリのセットを含み、一般的には、データバンクエントリのそれぞれはユニークな識別子を有する。このユニークな識別子を使って、ブールリンク演算を、2つの結合された結果セットで実行することができ、これによって最終の結果セットが得られる。
【0073】
上述の本発明の実施例は、コンピュータ上で動作するコンピュータプログラムによって実現可能であることは当業者にとって容易に明らかであろう。特に、仮想データバンクオブジェクトは、コンピュータプログラム(もしくはその一部)によって実現でき、また、データベース管理システムあるいは、仮想データバンクオブジェクトを処理する検索システムは、同様にコンピュータプログラムを使って実現することができる。さらに、本発明の実施例は、記録メディア、あるいは、送信リンク、インターネット接続、もしくはローカルエリアネットワーク接続などのような搬送メディアにおいて実施されるコンピュータプログラムの形式をとることができる。このコンピュータプログラムが動作できるコンピュータは、商業的に入手できるパーソナルコンピュータ、ワークステーション、スーパーコンピュータもしくは特殊用途のコンピュータなど、汎用のコンピュータの形式をとることができる。
【0074】
本発明は、図4Aに概略的に例示されるパーソナルコンピュータもしくはワークステーションのようなハードウェア構成に適用可能である。このコンピュータは、中央処理ユニットCPU26、入出力I/Oユニット21、内部メモリ22および外部メモリ24を備えてもよい。このコンピュータは、キーボード23、マウス28もしくは音声処理手段(図示せず)のような標準的な入力デバイスをさらに備えてもよい。
【0075】
しかし、本発明は、図4Bに例示するようなクライアント−サーバ構成に適用してもよい。ユーザクエリーの最終結果を、クライアント装置60のディスプレイスクリーンに表示することができ、図4を参照して説明した方法のいつくかもしくは全ての方法が、ブラウザアプリケーションなどを使ってインターネットのようなデータネットワークを介してクライアント装置によってアクセス可能な1つもしくはそれより多いサーバコンピュータ上で実行される。
【図面の簡単な説明】
【図1】
従来技術による複数のデータバンクの検索を示す図である。
【図2】
本発明の実施例による仮想データバンクオブジェクトの動作を概略的に例示する図である。
【図3】
本発明の実施例による方法を概略的に例示する図である。
【図4A】
本発明の実施例に関連して使うことができるコンピュータシステムを概略的に例示する図である。
【図4B】
本発明の実施例に関連して使うことができるコンピュータシステムを例示する図である。
Claims (15)
- 1つもしくはそれより多いデータバンクから生成される仮想データバンクオブジェクトであって、それ自体が他のデータバンクのように検索できる仮想データバンクオブジェクトにおいて、前記方法は、
仮想データバンクの構成要素を形成する1つもしくはそれより多いメンバーデータバンクの組合せとして仮想データバンクオブジェクトを定義するメンバー定義モジュールであって、前記仮想データバンクオブジェクトはメンバーデータバンクと動作の点で似ており、ユーザクエリーによってこの構成要素を形成するメンバーデータバンクの1つのように検索でき、前記仮想データバンクオブジェクトがユーザクエリーによって検索されているとき、そのメンバーデータバンクは前記ユーザクエリーを受信して第1の結果セットをリターンするようなメンバー定義モジュール、を備え、前記仮想データバンクオブジェクトは、
前記仮想データバンクの構成要素を形成する前記1つもしくはそれより多いメンバーデータバンクに適用されるクエリーを定義する定義モジュールであって、前記クエリーは、実行されたとき、前記1つもしくはそれより多いメンバーデータバンクのエントリのサブセットによって形成される第2の結果セットをリターンするような定義モジュール、をさらに備え、
前記定義モジュールは、ブール演算子を定義するクエリーリンク演算子であって、前記仮想データバンクオブジェクトに対する前記ユーザクエリーから生じる前記第1の結果セットと前記定義モジュールにおいて定義されたクエリーから生じる前記第2の結果セットとが前記クエリーリンク演算子によって接続されてそれによって最終の結果セットが形成されるようなクエリーリンク演算子、をさらに備え、前記最終の結果セットは、それ自体がメンバーデータバンクの1つのようなデータバンクであったかのように、前記仮想データバンクオブジェクトを検索するよう前記仮想データバンクオブジェクトに向けられるユーザクエリーから生じる有効な結果である、仮想データバンクオブジェクト。 - 前記仮想データバンクオブジェクトの前記構成要素は、複数のメンバーデータバンクであり、前記定義モジュールで定義された前記クエリーが、前記メンバーデータバンクの1つにおけるエントリをリターンし、該前記メンバーデータバンクの1つは、前記メンバーデータバンクの1つ以外のエントリに対するリファレンスを備える請求項1に記載の仮想データバンクオブジェクト。
- 前記定義モジュールにおいて定義される前記クエリーは、前記定義モジュールにおいてクエリーを定義する1つもしくはそれより多い検索基準に適合した前記メンバーデータバンクにおけるエントリをリターンする請求項1または2に記載の仮想データバンクオブジェクト。
- 前記定義モジュールにおいて定義される前記クエリーは、前記1つもしくはそれより多いメンバーデータバンクのエントリのセットをそれらの更新時間に従って選択する請求項1〜3のいずれか一項に記載の仮想データバンクオブジェクト。
- 前記定義モジュールにおいて定義される前記クエリーは、前記1つもしくはそれより多いメンバーデータバンクのエントリのセットを選択するが、あるデータフィールドが該メンバーデータのためのあるコンテンツを有する請求項1〜4のいずれか一項に記載の仮想データバンクオブジェクト。
- 前記メンバーデータバンクは生物学もしくは生化学のデータバンクであり、前記定義モジュールで定義された前記クエリーは、1つもしくはそれより多い生物学の検索基準に適合した前記1つもしくはそれより多いメンバーデータバンクのエントリのセットを選択する請求項1〜5のいずれか一項に記載の仮想データバンクオブジェクト。
- 前記定義モジュールにおいて定義される前記クエリーは、プログラミング言語もしくはスクリプト言語での指示のセットを備える請求項1〜6のいずれか一項に記載の仮想データバンクオブジェクト。
- 複数のクエリーが前記定義モジュールで定義され、該複数のクエリーのそれぞれが、前記仮想データバンクオブジェクト上に種々のビューを定義する請求項1〜7のいずれか一項に記載の仮想データバンクオブジェクト。
- 前記種々のクエリーは、種々の権限もしくは優先レベルの種々のユーザに割り当てられる請求項8に記載の仮想データバンクオブジェクト。
- 種々のユーザもしくは種々の権限レベルは、前記メンバーデータバンクのエントリの種々のサブセットへのアクセスを与え、それによって、仮想データバンクオブジェクトを検索するユーザもしくは権限に依存する仮想データバンクオブジェクトに対する差別化されたアクセスが可能となる請求項9に記載の仮想データバンクオブジェクト。
- 前記メンバーデータバンクは、互いに独立にインデックスが付けられた独立データバンクであり、仮想データバンクオブジェクトについてはインデックスが構築されない請求項1〜10のいずれか一項に記載の仮想データバンクオブジェクト。
- 請求項1〜11のいずれか一項に記載の仮想データバンクオブジェクトを問い合わせる方法であって、該方法は、
ユーザクエリーを前記仮想データバンクオブジェクトに発送することと、
前記仮想データバンクオブジェクトのメンバーデータバンクに前記クエリーを配送して前記メンバーバンク上で前記クエリーを実行して、それによって第1の結果セットを得ることと、
前記第1の結果セットを、定義モジュールで定義されたクエリーの結果生じる第2の結果セットと結合することと、を備え、前記の結合は、前記定義モジュールで定義されたクエリーリンク演算子に基づいて実行され、前記クエリーリンク演算子はブール関係を定義し、このクエリーリンク演算子によって前記第1の結果セットと前記第2の結果セットは結合されることになり、それによって最終の結果が得られ、該最終の結果は、前記仮想データバンクオブジェクトに前記ユーザクエリーを発送することによって生じる有効な結果となる方法。 - 請求項2〜11のいずれか一項もしくは組合せによって規定される特徴をさらに備える請求項12に記載の方法。
- 前記定義モジュールにおいて定義される前記クエリーは予め実行され、そして前記第1の結果セットは、記憶され、前記第2の結果セットと結合されるべきときに取り出される請求項12または13に記載の方法。
- コンピュータが、請求項1〜11のいずれか一項に記載の仮想データバンクオブジェクトを実現できるようにするか、もしくは請求項12〜14のいずれか一項に記載の方法を実行できるようにするコンピュータが実行可能な指示を備えるコンピュータプログラムプロダクト。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US26559301P | 2001-02-02 | 2001-02-02 | |
EP01105910A EP1229456A3 (en) | 2001-02-02 | 2001-03-09 | Virtual databank objects |
PCT/EP2002/001020 WO2002071261A2 (en) | 2001-02-02 | 2002-01-31 | Virtual databank objects |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004527830A true JP2004527830A (ja) | 2004-09-09 |
Family
ID=26076505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002570116A Pending JP2004527830A (ja) | 2001-02-02 | 2002-01-31 | 仮想データバンクオブジェクト |
Country Status (3)
Country | Link |
---|---|
US (1) | US20040064468A1 (ja) |
JP (1) | JP2004527830A (ja) |
WO (1) | WO2002071261A2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7472111B2 (en) * | 2001-10-18 | 2008-12-30 | Siemens Aktiengesellschaft | Method and computer for the provision of additional information |
US20160210353A1 (en) * | 2015-01-20 | 2016-07-21 | Avaya Inc. | Data lookup and operator for excluding unwanted speech search results |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000082080A (ja) * | 1993-08-05 | 2000-03-21 | Hitachi Ltd | 分散デ―タベ―ス管理システム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4853843A (en) * | 1987-12-18 | 1989-08-01 | Tektronix, Inc. | System for merging virtual partitions of a distributed database |
US5506984A (en) * | 1993-06-30 | 1996-04-09 | Digital Equipment Corporation | Method and system for data retrieval in a distributed system using linked location references on a plurality of nodes |
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 |
US5859972A (en) * | 1996-05-10 | 1999-01-12 | The Board Of Trustees Of The University Of Illinois | Multiple server repository and multiple server remote application virtual client computer |
US6189013B1 (en) * | 1996-12-12 | 2001-02-13 | Incyte Genomics, Inc. | Project-based full length biomolecular sequence database |
-
2002
- 2002-01-31 WO PCT/EP2002/001020 patent/WO2002071261A2/en active Application Filing
- 2002-01-31 US US10/470,774 patent/US20040064468A1/en not_active Abandoned
- 2002-01-31 JP JP2002570116A patent/JP2004527830A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000082080A (ja) * | 1993-08-05 | 2000-03-21 | Hitachi Ltd | 分散デ―タベ―ス管理システム |
Non-Patent Citations (1)
Title |
---|
HAAS L M: "DiscoveryLink: A system for integrated access to life sciences data sources", IBM SYSTEMS JOURNAL, vol. V40 N2, JPN6008016719, 1 February 2001 (2001-02-01), US, pages 489 - 511, ISSN: 0001020397 * |
Also Published As
Publication number | Publication date |
---|---|
WO2002071261A3 (en) | 2003-10-09 |
US20040064468A1 (en) | 2004-04-01 |
WO2002071261A2 (en) | 2002-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0647909B1 (en) | Information catalog system with object-dependent functionality | |
US5557793A (en) | In an object oriented repository, a method for treating a group of objects as a single object during execution of an operation | |
Ćurčin et al. | Discovery net: towards a grid of knowledge discovery | |
US6314430B1 (en) | System and method for accessing a database from a task written in an object-oriented programming language | |
JP5710851B2 (ja) | 影響分析のためのシステムおよび方法 | |
US20020194201A1 (en) | Systems, methods and computer program products for integrating biological/chemical databases to create an ontology network | |
US20020194154A1 (en) | Systems, methods and computer program products for integrating biological/chemical databases using aliases | |
US8326848B2 (en) | Proactive analytic data set reduction via parameter condition injection | |
US6886016B2 (en) | Method and system for supporting multivalue attributes in a database system | |
US20070038658A1 (en) | Communication optimization for parallel execution of user-defined table functions | |
JP2001527243A (ja) | オブジェクト指向アプリケーション内のクラスに対応するリレーショナル・データベース内のインデックスを生成するための方法及び装置 | |
US9824128B1 (en) | System for performing single query searches of heterogeneous and dispersed databases | |
US6421666B1 (en) | Mechanism for sharing ancillary data between a family of related functions | |
CN109343833B (zh) | 数据处理平台以及数据处理方法 | |
US7213014B2 (en) | Apparatus and method for using a predefined database operation as a data source for a different database operation | |
US8051091B2 (en) | Parallelizing data manipulation by data set abstraction | |
US6768989B2 (en) | Collection recognizer | |
Wittenburg et al. | An adaptive document management system for shared multimedia data | |
Hancock et al. | Publishing large proteome datasets: scientific policy meets emerging technologies | |
JP2004527830A (ja) | 仮想データバンクオブジェクト | |
EP1229456A2 (en) | Virtual databank objects | |
US20060143167A1 (en) | System and method for providing access to data with user defined table functions | |
US7657417B2 (en) | Method, system and machine readable medium for publishing documents using an ontological modeling system | |
Hsu et al. | Reconfigurable Web wrapper agents for biological information integration | |
CN114780528B (zh) | 一种数据实体识别方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050131 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20060615 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20060615 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080415 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080930 |