JP2003233528A - あるデータスキーマから別のデータスキーマへデータを変換するための変換を導出する方法及びシステム、データスキーマが埋め込まれ得るオントロジーモデルを構築する方法及びシステム、あるデータスキーマから別のデータスキーマへデータを変換するための命令プログラムを収録しておりコンピュータが読込み可能な一つ以上の媒体を含む製品並びにデータスキーマが埋め込まれ得る共通のオントロジーモデルを構築するための命令プログラムを収録しておりコンピュータが読込み可能な一つ以上の媒体を含む製品 - Google Patents

あるデータスキーマから別のデータスキーマへデータを変換するための変換を導出する方法及びシステム、データスキーマが埋め込まれ得るオントロジーモデルを構築する方法及びシステム、あるデータスキーマから別のデータスキーマへデータを変換するための命令プログラムを収録しておりコンピュータが読込み可能な一つ以上の媒体を含む製品並びにデータスキーマが埋め込まれ得る共通のオントロジーモデルを構築するための命令プログラムを収録しておりコンピュータが読込み可能な一つ以上の媒体を含む製品

Info

Publication number
JP2003233528A
JP2003233528A JP2003007391A JP2003007391A JP2003233528A JP 2003233528 A JP2003233528 A JP 2003233528A JP 2003007391 A JP2003007391 A JP 2003007391A JP 2003007391 A JP2003007391 A JP 2003007391A JP 2003233528 A JP2003233528 A JP 2003233528A
Authority
JP
Japan
Prior art keywords
schema
xml
source
xsl
target
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
Application number
JP2003007391A
Other languages
English (en)
Inventor
Ziv Z Hellman
ズィヴ・ズィー・ヘルマン
Marcel Zvi Schreiber
マーセル・ズヴィ・シュライバー
Tom Y Yuval
トム・ワイ・ユーヴァル
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.)
Unicorn Solutions Inc
Original Assignee
Unicorn Solutions 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
Priority claimed from US10/053,045 external-priority patent/US20040216030A1/en
Application filed by Unicorn Solutions Inc filed Critical Unicorn Solutions Inc
Publication of JP2003233528A publication Critical patent/JP2003233528A/ja
Pending legal-status Critical Current

Links

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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database

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

(57)【要約】 (修正有) 【課題】第一のスキーマに従っているデータを第二のス
キーマに従うデータへ変換するための方法及びシステム
を提供する。 【解決手段】 ソースデータスキーマとターゲットデー
タスキーマとを受け取ること、そのソースデータスキー
マをオントロジーモデルへ写像すること、そのターゲッ
トデータスキーマをオントロジーモデルへ写像するこ
と、及び、そのオントロジーモデルを使用して、そのソ
ースデータスキーマに従っているデータをそのターゲッ
トデータスキーマに従うデータへ変換するための変換を
導出することを含む、あるデータスキーマから別のデー
タスキーマへデータを変換するための方法及びシステ
ム。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データスキーマに
関するものであり、詳しくは、あるスキーマから別のス
キーマへデータを変換するための変換を導出することに
関するものである。
【0002】
【従来の技術】オントロジーとは存在するものに関する
哲学である。コンピュータ科学では、オントロジーは、
現実の世界における実体とそれらの間の関係とを議論す
るための共通の辞書を作成するために、これらのモデル
を作るために使用されている。オントロジーの基本的な
概念は、下記に記載されている様に、(i)インスタン
ス/事物のクラスと、(ii)これらのクラスの間の関
係とを含んでいる。オントロジーは、存在する事物につ
いて語るための語彙を提供する。
【0003】インスタンス/事物 世界には多くの種類の「事物」が存在している。自動
車、人、ボート、ねじ、トランジスタの様な物質的な事
物が存在している。物質的に結合されている項目ではな
いかまたは全く物質的でさえもないがそれにも拘らず意
味を定義されてよい他の種類の事物が存在している。例
えば、会社は大いに想像的な事物であり、その唯一の物
質的な現れは会社の登記係での名簿中における掲載であ
る。会社は所有及び雇用してよい。会社は定義された始
まり及び終りをその存続期間に対して有している。
【0004】そのメンバは始まり及び終りを有している
としてもそれ自体は始まり及び終りを有していない概念
であるホモサピエンス種の様に、その他の事物はもっと
抽象的であることがある。
【0005】オントロジーのモデルは、「事物」につい
て語るために使用される。重要な語彙手段は事物間の
「関係」である。オントロジーモデル自体は、「事物」
を含まないが、事物について語り且つ事物を分類するた
めの語彙として使用され得るクラス記号及びプロパティ
記号を取り入れる。
【0006】プロパティ プロパティとは事物と他の事物との特定の関係である。
プロパティは下記のものを含んでいる。 ●互いの一部である事物間の、例えば、パソコンとその
平面パネルスクリーンとの間の関係。 ●事物を作成する過程の様な過程を通して関係付けられ
ている事物間の、例えば、書籍とその著者との間の関
係。 ●事物とそれらの尺度との間の、例えば、事物とその重
さとの間の関係。
【0007】幾つかのプロパティは、自然数または文字
列、例えば、キログラムでの重量値または人の名前の様
な基本的な概念にも事物を関係付ける。
【0008】プロパティはオントロジー中で二重の役割
を演じる。一方では、個々の事物はプロパティによっ
て、例えば、人はその名前によって、または、書籍はそ
の題名及び著者によって参照される。他方では、共有さ
れている知識はしばしば事物のプロパティでもある。事
物は、そのプロパティのあるものの値について問い合わ
せるために、そのプロパティの別のものによって明記さ
れ得る。
【0009】クラス 総てのプロパティが総ての事物に関係しているわけでは
ない。プロパティのソースを事物の「クラス」として議
論することが便利であり、クラスはフレームまたはエン
ドユーザ用にカテゴリーとも呼ばれる。幾つかのプロパ
ティのソースはしばしば一致し、例えば、書籍というク
ラスは著者というプロパティとISBN番号というプロ
パティとの両方のソースである。
【0010】クラスが定義される細かさには柔軟性があ
る。自動車はクラスである。フィアット車も製造者とい
うプロパティについて制約された値を有するクラスであ
り得る。しかし、他の自動車に共通していない重要な特
別のプロパティをフィアット車が有していないかもしれ
ないので、このクラスを扱うことは不要かもしれない。
オントロジーの目的は重要なプロパティを有するクラス
を定義することであるが、原則としては、誰でも個々の
自動車一個と同程度に細かいクラスを定義することがで
きる。
【0011】尺度の様な抽象的な概念も、他の水の塊と
接触した後はその主体性を維持することができない水の
塊の様な媒体も、それらを実数に写像する量というプロ
パティを有するクラスとしてモデルを作られてよい。
【0012】典型的な数学モデルでは、基本的なオント
ロジーは下記のものを備えている。 ●その要素が「クラス記号」と呼ばれる集合C。 ●各々のc∈Cについて、普通の言葉によるそのクラス
cの定義。 ●その要素が「プロパティ記号」と呼ばれる集合P。 ●各々のp∈Pについて、 ○普通の言葉によるpの定義、 ○pのソースと呼ばれるクラス記号、 ○pのターゲットと呼ばれるクラス記号。 ●C×Cについての継承関係と呼ばれる二進他動再帰逆
対称関係I。
【0013】後続の議論では、便利さと明確さとのため
に、「クラス」という用語と「クラス記号」という用語
とが交換可能に使用されている。同様に、「プロパテ
ィ」という用語と「プロパティ記号」という用語とが交
換可能に使用されている。
【0014】もしオントロジーモデルがクラスの中に集
合を包含する様に拡張されれば、c×dについての古典
的な数学関係はcからdの中の集合へのプロパティと考
えられ得ることが、当業者には容易に分かる。
【0015】もしI(c1,c2)であれば、c1はc2
子クラスと呼ばれ、c2はc1の親クラスと呼ばれる。ま
た、c1はc2から継承していると言われる。
【0016】「Being」という著名な普遍的クラスは、
Cの中の総てのクラスの親クラスであることを一般に前
提とされている。
【0017】オントロジーモデルについての変形は下記
のものを含んでよい。 ●最も一般的に使用されているプロパティである単項プ
ロパティへのプロパティの制約。 ●多重度や反転可能性の様なプロパティについてもっと
多くのものを明記する能力。
【0018】クラス記号の観念は、書籍、自動車、会
社、住民の様な種全体のための包括的な属を記述する点
で概念的である。その属内のその種の特定のインスタン
スは、そのクラスの「インスタンス」と呼ばれる。従っ
て、「風と共に去りぬ」は書籍用のクラスのインスタン
スであり、「IBM」は会社用のクラスのインスタンス
である。同様に、プロパティ記号の観念は、クラスのイ
ンスタンスに作用する実際のプロパティのためのテンプ
レートとして利用できる点で概念的である。
【0019】クラス記号及びプロパティ記号は、C++
のクラスの様なコンピュータプログラミングにおけるオ
ブジェクト指向のクラスに似ている。ヘッダファイル中
で定義されているクラスは、それらのメンバ及びフィー
ルド変数と共に、プログラマによって使用される特定の
クラスのインスタンス用のテンプレートとして利用でき
る。コンパイラは、クラスのインスタンスにメモリを振
り当てるためにヘッダファイルを使用して、プログラマ
がクラスのインスタンスを使用することを可能にする。
従って、ヘッダファイルは、左右上下にメンバを有する
矩形クラスを宣言することができる。そのヘッダファイ
ル内の宣言は、実際の「矩形オブジェクト」を例示しな
いが、プログラム中で例示される矩形用のテンプレート
として利用できる。同様に、オントロジーのクラスは、
そのインスタンス用のテンプレートとして利用できる。
【0020】しかし、C++のクラスとオントロジーの
クラスとには差異がある。プログラミングでは、クラス
は、テンプレートであり、プログラミングオブジェクト
を作成するために例示されている。オントロジーでは、
クラスは共通構造を文書化するが、インスタンスは現実
の世界に存在していてそのクラスを通して作成されはし
ない。
【0021】オントロジーは、インスタンスそのものが
識別される前でさえも、そのインスタンスについて語る
ための語彙を提供する。書籍というクラスは、インスタ
ンスが「書籍である」と言うために使用される。著者と
いうプロパティは、インスタンスについて「の著者」と
いう節を人が作成することを可能にする。兄弟というプ
ロパティは、インスタンスについて「兄弟である」とい
う陳述を人が作成することを可能にする。継承は、例え
ば、「総ての書籍は出版作品である」と言うために使用
される。従って、出版作品にとって適切である総ての語
彙が書籍のために使用され得る。
【0022】インスタンスについて語るための語彙を提
供するためにオントロジーモデルが一旦利用できる様に
なれば、そのインスタンスそのものがその語彙中へ嵌め
込まれ得る。各々のクラス記号cについて「cである」
を満たす総てのインスタンスはcのインスタンスの集合
であると見なされ、この集合はB(c)と表示される。
インスタンスの集合は継承と矛盾しないので、c1がc2
の子クラスであればB(c1)⊆B(c2)である。ソー
スc1及びターゲットc2を有するプロパティ記号は、ソ
ースB(c1)及びターゲットB(c2)を有するプロパ
ティに対応する。なお、もしクラスc1がクラスcから
継承していれば、c1の総てのインスタンスもまたcの
インスタンスであり、従って、cの語彙がc1に適用可
能であることがオントロジーの活動範囲で既に知られて
いる。
【0023】オントロジーは、複数のクラスのモデルと
これら複数のモデル間におけるプロパティの図式との作
成を可能にする。クラスが定義されると、関係するクラ
スへの手がかりを使用してそのクラスのプロパティが記
述される。これらのプロパティが今度はその関係するク
ラスのプロパティを調べるために使用されることがで
き、従ってプロパティのプロパティが任意の深さまでア
クセスされ得る。
【0024】クラスと複合クラスとの両方について規定
が作られている。一般に、複合クラスは、論理積、論理
直積、set、list及びbagの様な記号用のタグ
を使用して、もっと単純なクラスから組み立てられる。
「論理積」タグにはクラスまたは複合クラスのリストが
続く。「論理直積」タグにもクラスまたは複合クラスの
リストが続く。set記号はクラスの部分集合を含むク
ラスを記述するために使用され、set記号には単一ク
ラスまたは複合クラスが続く。list記号はクラスの
順序部分集合つまり有限列を含むクラスを記述するため
に使用され、list記号には単一クラスまたは複合ク
ラスが続く。bag記号はクラスの非順序有限列つまり
重複要素を含むことのできる部分集合を記述するために
使用され、bag記号には単一クラスまたは複合クラス
が続く。従って、set[c]はクラスcのインスタン
スの集合のクラスを記述しており、list[c]はク
ラスcのインスタンスのリストのクラスを記述してお
り、bag[c]はクラスcのインスタンスのバッグの
クラスを記述している。
【0025】正式な数学の用語では、集合Sに対して、
set[S]はP(S)つまりSの冪集合であり、ba
g[S]はNS(Nは非負整数の集合)であり、lis
t[S]は次の数式1である。
【数1】 次の数式2の自然写像が存在する。
【数2】 具体的に言うと、列(s1,s2,・・・,sn)∈li
st[S]については、φ(s1,s2,・・・,sn
はf(s)=#{1≦i≦n:si=s}によって定義
される「度数ヒストグラム」である要素f∈bag
[S]であり、f∈bag[S]については、Ψ(f)
∈set[S]はfのサポートによって与えられるSの
部分集合、つまり、supp(f)={s∈S:f
(s)>0}である。なお、合成写像φΨは列(s1
2,・・・,sn)をその要素{s1,s2,・・・,s
n}の集合へ写像する。有限集合Sについては、set
[S]も有限であり、bag[S]及びlist[S]
は可算無限である。
【0026】オントロジー体系についての一般的な参考
文献は、Sowa, John F., "Knowledge Representation,"
Brooks/Cole, Pacific Grove, CA, 2000.である。
【0027】データを表及びフィールドへ編成するため
のテンプレートを定義するために、リレーショナルデー
タベーススキーマ(RDBS)が使用されている。一般
に表結合操作を使用することによって既存の表から表を
設定するためにSQL問い合わせが使用される。データ
を要素及び属性の階層へ編成するための記述文書に、拡
張可能マークアップ言語(XML)スキーマが使用され
ている。一般に、既存の文書中におけるタグ同士の間の
データをインポートすることによって、既存の文書から
XML文書を生成するためにXSLTスクリプトが使用
されている。XSLTは元々はXML文書からHTML
ページを生成するために開発された。
【0028】リレーショナルデータベース及びSQLに
ついての一般的な参考文献は、http://www.oracle.com
においてオンラインで利用できる文書"Oracle 9i: SQL
Reference,"である。XML、XMLスキーマ、XPa
th及びXSLTは、World-Wide Webコンソーシアムの
標準であり、http://www.w3.orgにおいてオンラインで
利用できる。
【0029】同じデータのソースに対してしばしば複数
のスキーマが存在しており、従ってそのデータはあるア
プリケーションから別のアプリケーションへ容易にはイ
ンポートまたはエクスポートされ得ない。例えば、リレ
ーショナルデータベースを処理するアプリケーションを
二つの航空会社が各々実行させているかもしれないが、
これら二つの会社によって使用されている夫々のリレー
ショナルデータベースが二つの異なるスキーマに従って
いれば、何れの会社も他の会社のデータベースを容易に
は使用することができない。これらの会社がデータを共
有するためには、一方のスキーマから他方のスキーマへ
データベースをエクスポートする必要がある。
【0030】従って、第一のスキーマに従っているデー
タを第二のスキーマに従うデータへ変換することのでき
る手段に対する要求がある。
【0031】
【課題を解決するための手段】本発明は、あるスキーマ
から別のスキーマへデータを変換するための変換を導出
する方法及びシステムを提供する。本発明は、入力つま
りソースデータスキーマに従っているデータを出力つま
りターゲットデータスキーマへ変換するための一般的な
方法及びシステムを記載している。好ましい実施形態に
おいては、本発明は、(i)ソースRDBSからリレー
ショナルデータベースに適用されたときにそのリレーシ
ョナルデータベースをターゲットRDBS中に設定する
SQL問い合わせ、及び(ii)ソースXMLスキーマ
に従っている文書に適用されたときにターゲットXML
スキーマに従う文書を生成するXSLTスクリプト、を
提供するために使用され得る。
【0032】本発明は、ソースからターゲットへの望ま
しい変換を完遂する変換を決定するために、オントロジ
ーモデルを使用することが好ましい。具体的に言うと、
本発明は、ソースデータスキーマとターゲットデータス
キーマとの両方が写像され得る共通のオントロジーモデ
ルを用いる。それらのソースデータスキーマ及びターゲ
ットデータスキーマを共通のオントロジーモデルへ写像
することによって、本発明は、それらの成分同士の間の
相互関係を導出し、ソースデータスキーマに従っている
データをターゲットデータスキーマに従うデータへ変換
するための適切な変換を決定するためにその相互関係を
使用する。
【0033】ソースRDBS及びターゲットRDBSが
与えられると、本発明の好ましい実施形態においては、
ターゲットデータベースへのソースデータベースの適切
な変換が下記によって生成される。 (i)ソースRDBS及びターゲットRDBSを共通の
オントロジーモデルへ写像する。 (ii)ソースRDBSの表の列及びターゲットRDB
Sの表の列をそのオントロジーモデルのプロパティの用
語で表現する。 (iii)ソース表の列の用語によるターゲット表の列
用の表現を導出する。 (iv)それらの表現を一つ以上のSQL問い合わせへ
変換する。
【0034】ソースRDBS及びターゲットRDBSは
共通のオントロジーモデルへ写像されるが、本発明の導
出される変換は、オントロジー形式を経由してデータを
変換する必要なしに、ソースRDBSからターゲットR
DBSへ直接に進む。それとは異なって、従来技術のユ
ニバーサルデータモデルは、中立モデルつまり共通のビ
ジネスオブジェクトを経由する変換にアプローチしてい
る。
【0035】本発明は、N≧2であるN個のリレーショ
ナルデータベーススキーマに適用される。本発明を使用
すれば、それらのRDBSを共通のオントロジーモデル
へ写像することによって、データがそれらのRDBSの
何れか一つから他の何れか一つへ移され得る。N2個程
度の写像を必要とする従来技術のアプローチとは異なっ
て、本発明は多くてもN個の写像しか必要としない。
【0036】企業でのアプリケーションのために、本発
明によって生成されるSQL問い合わせは企業アプリケ
ーション統合(EAI)基盤施設内で展開されることが
好ましい。企業アプリケーション基盤施設によって使用
されているSQL以外の変換言語が本発明を使用して生
成され得ることが、当業者には分かる。例えば、IBM
のESQL言語が、その製品のWebSphere MQファミリー
上での展開のために同様に導出され得る。
【0037】ソースXMLスキーマ及びターゲットXM
Lスキーマが与えられると、本発明の好ましい実施形態
においては、ターゲットXML文書へのソースXML文
書の適切な変換が下記によって生成される。 (i)ソースXMLスキーマ及びターゲットXMLスキ
ーマを共通のオントロジーモデルへ写像する。 (ii)ソースXMLスキーマの要素及び属性並びにタ
ーゲットXMLスキーマの要素及び属性をそのオントロ
ジーモデルのプロパティの用語で表現する。 (iii)ソースのXML要素及びXML属性の用語に
よるターゲットのXML要素及びXML属性用の表現を
導出する。 (iv)それらの表現をXSLTスクリプトへ変換す
る。
【0038】従って、本発明の好ましい実施形態によれ
ば、ソースデータスキーマ及びターゲットデータスキー
マを受け取ること、ソースデータスキーマをオントロジ
ーモデルへ写像すること、ターゲットデータスキーマを
オントロジーモデルへ写像すること、及び、オントロジ
ーモデルを使用して、ソースデータスキーマに従ってい
るデータをターゲットデータスキーマに従うデータへ変
換するための変換を導出することを含む、あるデータス
キーマから別のスキーマへデータを変換するための変換
を導出する方法が提供される。
【0039】本発明の好ましい実施形態によれば、ソー
スデータスキーマ及びターゲットデータスキーマを受け
取るスキーマ受取装置、データスキーマをオントロジー
モデルへ写像する写像処理装置、及び、ソースデータス
キーマ及びターゲットデータスキーマを共通のオントロ
ジーモデルへ写像する写像処理装置によって生成される
ソース写像及びターゲット写像に夫々基づいて、ソース
データスキーマに従っているデータをターゲットデータ
スキーマに従うデータへ変換するための変換を導出する
変換処理装置を含む、あるデータスキーマから別のスキ
ーマへデータを変換するための変換を導出するシステム
が更に提供される。
【0040】本発明の好ましい実施形態によれば、少な
くとも一つのデータスキーマを受け取ること、及び、そ
の少なくとも一つのデータスキーマが埋め込まれ得るオ
ントロジーモデルを構築することを含む、データスキー
マが埋め込まれ得るオントロジーモデルを構築する方法
が更に提供される。
【0041】本発明の好ましい実施形態によれば、少な
くとも一つのデータスキーマを受け取るスキーマ受取装
置、及び、その少なくとも一つのデータスキーマが埋め
込まれ得るオントロジーモデルを構築するモデル構築装
置を含む、データスキーマが埋め込まれ得るオントロジ
ーモデルを構築するシステムが更に提供される。
【0042】本発明の好ましい実施形態によれば、ある
スキーマから別のスキーマへデータを変換するための命
令プログラムを収録しておりコンピュータが読込み可能
な一つ以上の媒体を含む製品であって、処理システムに
よって実行されると、命令プログラムが、処理システム
に、ソースデータスキーマ及びターゲットデータスキー
マを受け取られせ、ソースデータスキーマをオントロジ
ーモデルへ写像させ、ターゲットデータスキーマをオン
トロジーモデルへ写像させ、且つ、オントロジーモデル
を使用して、ソースデータスキーマに従っているデータ
をターゲットデータスキーマに従うデータへ変換させる
ための変換を導出させる製品が更に提供される。
【0043】本発明の好ましい実施形態によれば、デー
タスキーマが埋め込まれ得る共通のオントロジーモデル
を構築するための命令プログラムを収録しておりコンピ
ュータが読込み可能な一つ以上の媒体を含む製品であっ
て、処理システムによって実行されると、命令プログラ
ムが、処理システムに、少なくとも一つのデータスキー
マを受け取らせ、且つ、その少なくとも一つのデータス
キーマが埋め込まれ得るオントロジーモデルを構築させ
る製品が更に提供される。
【0044】本発明は、下記の実施の形態から、図面と
共に考えられれば、もっと十分に理解され且つ認識され
る。
【0045】
【発明の実施の形態】本発明は、あるデータスキーマに
従っているデータを別のデータスキーマに従うデータへ
変換するための変換を導出することに関するものであ
る。本発明の好ましい実施形態が、RDBSの様な表系
のデータスキーマ及びXMLスキーマの様な文書系のス
キーマについて、ここに記述されている。
【0046】本発明の好ましい実施形態によって、ある
スキーマから別のスキーマへデータを変換するための変
換を導出する方法の、簡略化された流れ図である図1を
参照する。この流れ図は段階110で始まっている。段
階120で、ソースデータスキーマ及びターゲットデー
タスキーマがインポートされる。これらのソースデータ
スキーマ及びターゲットデータスキーマは、表及び表の
列用のテンプレートの様なデータを格納するためのテン
プレートと構造化文書用のテンプレートとを記述する。
必要であれば、ソースデータスキーマ及び/またはター
ゲットデータスキーマは、標準形式から内部形式へ変換
されてもよい。例えば、それらはOracle形式から内部形
式へ変換されてもよい。
【0047】段階130〜160で、ソースデータスキ
ーマ及びターゲットデータスキーマが共に埋め込まれ得
る共通のオントロジーモデルが得られる。段階130
で、初期のオントロジーモデルがインポートされるべき
か否かが決定される。インポートされるべきでなけれ
ば、論理は段階160へ直接に進む。インポートされる
べきであれば、段階140で初期のオントロジーモデル
がインポートされる。必要であれば、この初期のオント
ロジーモデルは、上述の形式のうちの一つの様な標準形
式から内部形式へ変換されてもよい。
【0048】段階150で、ソースデータスキーマとタ
ーゲットデータスキーマとの両方を埋め込むのにその初
期のオントロジーモデルが適切であるか否かが決定され
る。適切であれば、論理は段階170へ直接に進む。適
切でなければ、段階160で、共通のオントロジーモデ
ルが構築される。初期のオントロジーモデルがエクスポ
ートされていれば、共通のオントロジーモデルは、その
初期のオントロジーモデルを編集することによって、具
体的に言うと、その初期のオントロジーモデルにクラス
及びプロパティを付加することによって、構築されるこ
とが好ましい。初期のオントロジーモデルがエクスポー
トされていなければ、共通のオントロジーモデルは最初
から構築される。共通のオントロジーモデルはユーザの
支援がある状態またはない状態で自動的に構築されてよ
いことが分かる。
【0049】段階170で、ソースデータスキーマ及び
ターゲットデータスキーマが共通のオントロジーモデル
へ写像され、そのための写像が生成される。段階180
で、段階170で導出された写像に基づいて、ソースデ
ータスキーマに従っているデータをターゲットデータス
キーマに従うデータへ変換するための、変換が導出され
る。最後に、この流れ図は段階190で終了する。
【0050】本発明の好ましい実施形態によって、ある
スキーマから別のスキーマへデータを変換するための変
換を導出するシステム200の、簡略化されたブロック
図である図2を参照する。ソースデータスキーマ及びタ
ーゲットデータスキーマをインポートするためのスキー
マ受取装置210が図2に示されている。これらのソー
スデータスキーマ及びターゲットデータスキーマは、表
及び表の列用のテンプレートの様なデータを格納するた
めのテンプレートと構造化文書用のテンプレートとを記
述する。必要であれば、スキーマ受取装置210は、ソ
ースデータスキーマ及びターゲットデータスキーマを外
部形式から内部形式へ変換する。
【0051】ソースデータスキーマ及びターゲットデー
タスキーマが共に埋め込まれ得る共通のオントロジーモ
デルを得るためのオントロジー受取装置/構築装置22
0も、図2に示されている。オントロジー受取装置/構
築装置220の作用は、上記で図1の段階130〜16
0に記載されている。
【0052】ソースデータスキーマを共通のオントロジ
ーモデルへ写像するためのソース写像と、ターゲットデ
ータスキーマを共通のオントロジーモデルへ写像するた
めのターゲット写像とを生成するために、ソースデータ
スキーマ及びターゲットデータスキーマ並びに共通のオ
ントロジーモデルが写像処理装置230によって使用さ
れる。本発明の好ましい実施形態では、写像処理装置2
30は、下記に詳細に記載されている様に、ソースデー
タスキーマ及びターゲットデータスキーマの成分に対応
するオントロジーのクラスを識別するためのクラス識別
装置240と、ソースデータスキーマ及びターゲットデ
ータスキーマの別の成分に対応するオントロジーのプロ
パティを識別するためのプロパティ識別装置250とを
含んでいる。
【0053】ソースデータスキーマに従っているデータ
をターゲットデータスキーマに従うデータへ変換するた
めのソースからターゲットへの変換を導出するために、
写像処理装置によって生成されたソース写像及びターゲ
ット写像並びにインポートされたソースデータスキーマ
及びターゲットデータスキーマが、変換生成装置260
によって使用されることが好ましい。
【0054】本発明の好ましい実施形態によって、一つ
以上のデータスキーマが埋め込まれ得る共通のオントロ
ジーモデルを構築する方法の、簡略化された流れ図であ
る図3を参照する。この流れ図は段階310で始まって
いる。段階120、140及び160は、上記に記載さ
れている通りの図1におけるこれらの同じ段階に似てい
る。最後に、この流れ図は段階320で終了する。
【0055】本発明の好ましい実施形態によって、一つ
以上のデータスキーマが埋め込まれ得る共通のオントロ
ジーモデルを構築するシステム400の、簡略化された
ブロック図である図4を参照する。データスキーマをイ
ンポートする図2からのスキーマ受取装置210が、図
4に示されている。初期のオントロジーモデルをインポ
ートするオントロジー受取装置420も図4に示されて
いる。必要であれば、オントロジー受取装置420は初
期のオントロジーモデルを外部形式から内部形式へ変換
する。
【0056】初期のオントロジーモデル及びインポート
されたデータスキーマは、インポートされたデータスキ
ーマが総て埋め込まれ得る共通のオントロジーモデルを
生成するオントロジー構築装置430によって使用され
る。本発明の好ましい実施形態では、オントロジー構築
装置430は、初期のオントロジーモデルを編集するこ
とによって、具体的に言うと、インポートされたデータ
スキーマの成分に基づいて初期のオントロジーモデルに
クラスを付加するためにクラス構築装置440を使用す
ることによって、及び、インポートされたデータスキー
マの別の成分に基づいて初期のオントロジーモデルにプ
ロパティを付加するためにプロパティ構築装置450を
使用することによって、共通のオントロジーモデルを生
成する。
【0057】本発明の応用は、特に下記のものを含んで
いる。 −データの共有を必要とする二つ以上のアプリケーショ
ン間の統合。 −あるデータベーススキーマから異なるデータベースス
キーマを使用している供給者または顧客へ供給チェーン
を横断してデータを伝送すること。 −二つ以上のデータベースを横断して問い合わせが実行
される様に、異なるスキーマを有する二つ以上のデータ
ベースから共通のデータベースへデータを移すこと。 −データのオフライン分析のために複数のデータベース
からデータウェアハウスデータベースを読み込むこと。 −二つのデータベースを同期させること。 −データベーススキーマが更新されるときにデータを移
動させること。 −古いデータベースまたはデータベースアプリケーショ
ンから後継のデータベースまたはデータベースアプリケ
ーションへ夫々データを移すこと。
【0058】リレーショナルデータベーススキーマ 表定義または幾つかの場合にはメタデータとも呼ばれる
リレーショナルデータベーススキーマ(RDBS)は、
表及びフィールドとも呼ばれている表の列へデータを編
成するテンプレートを定義するために使用される。同じ
ソースのデータ用にしばしば複数のスキーマが存在して
おり、従ってそのデータはあるアプリケーションから別
のアプリケーションへ容易にはインポートまたはエクス
ポートされ得ない。本発明は、入力つまりソースリレー
ショナルデータベーススキーマを出力つまりターゲット
スキーマへ変換する一般的な方法及びシステムを記載し
ている。好ましい実施形態では、本発明は、ソーススキ
ーマからリレーショナルデータベースに適用されたとき
に、ターゲットスキーマでリレーショナルデータベース
を作り出すSQL問い合わせを提供するために使用され
得る。
【0059】下記に詳細に記載されている様に、本発明
は、ソースからターゲットへの望ましい変換を完遂する
SQL問い合わせを決定するために、オントロジーモデ
ルを使用することが好ましい。具体的に言うと、本発明
は、ソースRDBSとターゲットRDBSとの両方が埋
め込まれ得る共通のオントロジーモデルを用いる。ソー
スRDBSとターゲットRDBSとを共通のオントロジ
ーモデルに写像することによって、本発明は、それらの
表及びフィールド間の相互関係を導出し、ソースRDB
Sに従っているデータベースをターゲットRDBSに従
うデータベースへ変換する適切なSQL問い合わせを決
定するためにその相互関係を使用する。
【0060】本発明は、ソースリレーショナルデータベ
ースをターゲットリレーショナルデータベースへ変換す
る実行可能なコードを導出するためにも使用され得る。
好ましい実施形態では、本発明は、JDBC(Java
(登録商標)データベースコネクティビティ)ライブラ
リを使用してSQL問い合わせを実行するJavaプロ
グラムを作成する。別の実施形態では、そのJavaプ
ログラムは、SQL問い合わせを使用せずに、データベ
ースを直接に操作する。
【0061】企業でのアプリケーションのために、本発
明によって生成されるSQL問い合わせは企業アプリケ
ーション統合基盤施設内で展開されることが好ましい。
【0062】ソースRDBS及びターゲットRDBSは
共通のオントロジーモデルに写像されるが、本発明の導
出される変換は、オントロジー形式を経由してデータを
変換する必要なしに、ソースRDBSからターゲットR
DBSへ直接に進む。それとは異なって、従来技術のユ
ニバーサルデータモデルは、中立モデルを経由する変換
にアプローチしている。
【0063】本発明は、N≧2であるN個のリレーショ
ナルデータベーススキーマに適用される。本発明を使用
すれば、それらのRDBSを共通のオントロジーモデル
へ写像することによって、データがそれらのRDBSの
何れか一つから他の何れか一つへ移され得る。N2個程
度の写像を必要とする従来技術のアプローチとは異なっ
て、本発明は多くてもN個の写像しか必要としない。
【0064】RDBSからオントロジーモデルへの「写
像」は下記のものとして定義されている。 (i)RDBSからの表の行がオントロジーモデルにお
けるクラスのインスタンスに対応するという点での、各
々の表とクラスとの関係。 (ii)ソースがRDBSからの与えられた表に対応す
るクラスであり、ターゲットがその表の列のデータ型と
互換性のあるデータ型を有している、RDBSからの各
々の与えられた表については、表の各々の列とオントロ
ジーモデルにおけるプロパティまたはプロパティの合成
物との関係。RDBSからオントロジーモデルへの写像
は、本質的である必要はない。つまり、夫々RDBS中
の表及び列に対応しないクラス及びプロパティがオント
ロジー中に存在してもよい。RDBSの図式表現を提供
するのに写像は有益である。
【0065】一般に、RDBSからオントロジーモデル
への写像は存在するかもしれないが、RDBSで使用さ
れている専門語は、オントロジーモデルで使用されてい
る専門語と全く異なっていてもよい。写像の有益性の一
部は、RDBS言語とオントロジー言語との間で翻訳可
能なことである。RDBSの表/列言語とオントロジー
のクラス/プロパティ言語との間での翻訳に加えて、オ
ントロジー問い合わせ言語からの問い合わせとSQL
(標準的な問い合わせ言語)の様なRDBS言語からの
問い合わせとの間の翻訳にも写像は有益であることが、
当業者には分かる。
【0066】本発明の好ましい実施形態による、RDB
Sからオントロジーモデルへの写像の第一の簡略化され
た図である、図5を参照する。T1と表示されておりC
1、C2、C3、C4と表示されている四列を有する表
500が、図5に示されている。K1と表示されている
クラスとクラスK1について定義されているプロパティ
P1、P2、P3、P4とを有するオントロジーモデル
550も、図1に示されている。この標識付けは、表T
1からクラスK1への及び列C1、C2、C3、C4か
ら夫々のプロパティP1、P2、P3、P4への写像を
示している。
【0067】本発明の好ましい実施形態による、RDB
Sからオントロジーモデルへの写像の第二の簡略化され
た図である、図6を参照する。図5からの表1とT2と
表示されておりD1、D2、D3、D4と表示されてい
る四列を有する第二の表600とが、図6に示されてい
る。表T1の列C1はキーであり、つまり、列C1に対
する各々の記載事項は一意であり且つその記載事項が置
かれている行に対する識別子として使用され得る。表T
2の列D3は、列C1からのキーの使用によって、表T
1を参照している。つまり、列D3の各々の記載事項
は、表T1内の行を参照しており、その行に対する列C
1からのキーの使用によってその様な行を明記してい
る。
【0068】K1、K2と表示されている二つのクラス
を有するオントロジーモデル650も、図6に示されて
いる。クラスK1はそれについて定義されているプロパ
ティP1、P2、P3、P4を有しており、クラスK2
はそれについて定義されているプロパティQ1、Q2、
Q4、Sを有している。プロパティSは、そのソースと
してクラスK1を有しており、そのターゲットとしてク
ラスK2を有している。その標識付けは、表T1からク
ラスK1への及び列C1、C2、C3、C4から夫々の
プロパティP1、P2、P3、P4への写像を示してい
る。C1がキーとして利用できるという事実はプロパテ
ィP1が一対一対応であることに対応しているので、ク
ラスK1の二つの別個のインスタンスがプロパティP1
に対して同じ値を有することはない。
【0069】その標識付けは、表T2からクラスK2へ
の及び列D1、D2、D4から夫々のプロパティQ1、
Q2、Q4への写像をも示している。oが関数合成を表
示しているとすると、列D3は合成プロパティP1oS
に対応している。つまり、列D3はS(K2)のプロパ
ティP1に対応している。
【0070】プロパティP1、P2、P3、P4、Q
1、Q2、Q4は対応する列記載事項のデータ型に対応
する基本型に写像することが好ましいので、これらのプ
ロパティのターゲットは図6に示されていない。例え
ば、P1のターゲットは整数であってよく、P2のター
ゲットは浮動小数点数であってよく、P3のターゲット
は文字列であってよい。オントロジーモデル650のも
っと本質的な部分に焦点を合わせるために、その様な基
本型に対するクラスは示されていない。
【0071】クラスK1、K2及びプロパティSはオン
トロジーモデル650中に点線で示されている。オント
ロジーのこれらの部分は、表T1、T2の基礎になって
いるRDBSに透過である。これらは、RDBS中に直
接には存在しておらずオントロジーモデル中に存在して
いる付加的な構造を示している。
【0072】ソースRDBS及びターゲットRDBSが
与えられると、本発明の好ましい実施形態においては、
ターゲットデータベースへのソースデータベースの適切
な変換が下記によって生成される。 (i)ソースRDBS及びターゲットRDBSを共通の
オントロジーモデルに写像する。 (ii)そのオントロジーモデルのプロパティ用の記号
を使用して、ソースRDBSのフィールド及びターゲッ
トRDBSのフィールドをプロパティの用語で表現す
る。 (iii)ソース記号の用語によるターゲット記号用の
表現を導出する。 (iv)その表現を一つ以上のSQL問い合わせに変換
する。
【0073】本発明の好ましい実施形態による、制約及
び結合を含むリレーショナルデータベース変換の簡略化
された図である、図7を参照する。
【0074】XMLスキーマ 下記に詳細に記載されている様に、本発明は、ソースか
らターゲットへの望ましい変換を完遂するXSLT変換
を決定するために、オントロジーモデルを使用すること
が好ましい。具体的に言うと、本発明は、ソースXML
スキーマとターゲットXMLスキーマとの両方が写像さ
れ得る共通のオントロジーモデルを用いる。ソースXM
Lスキーマ及びターゲットXMLスキーマを共通のオン
トロジーモデルに写像することによって、本発明は、そ
れらの要素及び属性同士の間の相互関係を導出し、ソー
スXMLスキーマに従っている文書からターゲットXM
Lスキーマに従う文書を生成する文書を変換するための
適切なXSLTスクリプトを決定するためにその相互関
係を使用する。
【0075】本発明は、ソースXML文書をターゲット
XML文書へ変換する実行可能なコードを導出するため
にも使用され得る。好ましい実施形態では、本発明は、
その変換を実行し得るJavaコードの実行可能な部分
を提供するために、その導出されたXSLTスクリプト
をJavaXSLTエンジンと共にパッケージする。
【0076】これは、Tibcoの様なEAI製品内で
XSLTを展開するために使用されることが好ましい。
具体的に言うと、本発明の好ましい実施形態では、テキ
スト形式で提供されるXSLTスクリプトを実行させる
ためにXalanXSLTエンジンを使用するTibc
oMessageBroker中に、(プラグ−インに
似ている)関数がインストールされる。最適化として、
そのXSLTスクリプトファイルがJavaクラスファ
イルへコンパイルされることが好ましい。
【0077】Tibcoの様なEAI製品内でXSLT
スクリプトを展開するための、本発明の好ましい実施形
態の使用の簡略化された図である、図8を参照する。
【0078】ユーザインタフェース 出願人は、あるスキーマから別のスキーマへデータを変
換するための本発明の好ましい実施形態を実施するCOHE
RENCETMと名付けられているソフトウェアアプリケーシ
ョンを開発した。Coherenceはユーザに下記のことを可
能にする。 −ソースRDBS及びターゲットRDBSをインポート
する。 −ソースRDBSとターゲットRDBSとの両方が埋め
込まれ得るオントロジーモデルを構築する。 −ソースRDBSとターゲットRDBSとをそのオント
ロジーモデルに写像する。 −そのオントロジーモデルのプロパティに制約を課す
る。その写像が一旦定義されると、Coherenceは、ソー
スRDBSをターゲットRDBSへ変換するためのSQ
L問い合わせを生成する。
【0079】本発明の好ましい実施形態によって、Cohe
renceソフトウェアアプリケーションを使用して、ある
リレーショナルデータベーススキーマから別のリレーシ
ョナルデータベーススキーマへデータを変換するユーザ
インタフェースの図である、図9〜13を参照する。左
枠910及び右枠915付きの主Coherenceウィンドウ
905が、図9に示されている。ウィンドウ905は、
夫々Authoring、Mapping、Transformationsと標識付け
されている三つの主タブ920、925、930を含ん
でいる。Authoringタブ920は、オントロジーモデル
についての情報を表示し且つクラス及びプロパティを付
加、削除及び編集することによってそのオントロジーモ
デルを修正するために、呼び出される。Mappingタブ9
25は、RDBSとオントロジーへのそのRDBSの写
像とについての情報を表示し且つその写像を編集するた
めに、呼び出される。Transformationsタブ930は、
ソースRDBSからターゲットRDBSへのSQL問い
合わせの形式での変換を表示するために、呼び出され
る。図9では、Authoring用のタブ920が選択されて
いることが示されている。
【0080】左枠910は、オントロジーを見る二つの
モード用のアイコン、つまり、継承ツリー表示モードで
見るためのアイコン935と、パッケージ表示モードで
見るためのアイコン940とを含んでいる。
【0081】継承ツリー表示モードは、親クラス関係及
び子クラス関係に対応する階層形式で、オントロジーの
クラスを示す。図9に示されている様に、Date、Numbe
r、Ratio、String、NamedElementの基本的なクラスに加
えて、Cityのクラスが存在している。左枠910で選択
されているクラスに対応して、右枠915はその選択さ
れているクラスについての情報を表示する。右枠915
は、クラス情報表示用の六つのタブ、つまり、General
用のタブ945、Properties用のタブ950、SSubclas
s用のタブ955、Enumerated Values用のタブ960、
Relations用のタブ965及びXMLschema用のタブ970
を含んでいる。図9にはGeneral用のタブ945に基づ
く表示が示されている。この表示は、そのクラスの名前
であるBeingと、そのクラスが属するパッケージつまりf
undametalとを含んでいる。この表示には、クラスBeing
用の空リストであるimmediate superclassesのリストも
示されている。この表示には、そのクラスのテキスト記
述、つまり、Beingは総てのクラスに対するルートクラ
スであるということ、も示されている。
【0082】Enumerated Values用のタブ960は、名
前付き要素を有するクラス、つまり、総ての可能なイン
スタンスのリストを含むクラスに適用される。例えば、
クラスBooleanは計数値"True"及び"False"を有してお
り、クラスGenderは計数値"Male"及び"Female"を有して
いてよい。
【0083】図10は、オントロジー用のパッケージ表
示モードを示している。パッケージは、クラスやプロパ
ティの様な一つ以上のオントロジー概念を含むグループ
である。パッケージは、オントロジーについての情報を
種々の分類に編成するために使用される。図10に示さ
れている様に、Being、Boolean、Date、Integerの様な
基本的なクラスを含む基本的なパッケージが存在してい
る。図10には、WeatherFahrenheitと名付けられてお
りCityと名付けられているクラスを含んでいるパッケー
ジも示されている。
【0084】図10に示されている様に、左枠910で
Cityが選択されており、それに対応して、右枠915は
そのクラスCityについての情報を表示している。右枠9
15は、Properties用のタブ950に基づく情報を表示
している。分かる様に、クラスCityは、パッケージWeat
herFahrenheitに属しており、四つのプロパティ、つま
り、型RealNumberのCelsius、型Stringのname、型RealN
umberのFahrenheit、型RealNumberのyearを有してい
る。図10は、プロパティCelsiusが制約を満足してい
ることを示している。具体的に言うと、Celsius = 5 *
(Fahrenheit - 32) / 9.
【0085】図11には、Mapping用のタブ925が選
択されていることが示されている。図11の左枠に示さ
れている様に、二つのRDBSがCoherenceにインポー
トされている。WeatherCelsiusと名付けられておりTown
sと名付けられている表を含んでいる第一のRDBS
と、WeatherFahrenheitと名付けられておりCitiesと名
付けられている表を含んでいる第二のRDBSとであ
る。
【0086】図11ではCitiesと名付けられている表が
選択されていることが示されており、それに対応して右
枠はオントロジーへのCitiesの写像に関する情報を表示
している。分かる様に、表Citiesは、三つのフィール
ド、つまり、Fahrenheit、city、yearを含んでいる。表
CitiesはオントロジーのクラスCityへ写像されており、
フィールドFahrenheitはオントロジーのプロパティFahr
enheitへ写像されており、フィールドcityはオントロジ
ーのプロパティnameへ写像されており、フィールドyear
はオントロジーのプロパティyearへ写像されている。こ
のRDBSWeatherFahrenheitはソースRDBSと呼ば
れる。
【0087】Mapping用のタブ925が選択されている
と、右枠は、そのRDBSについての情報を表示するた
めの三つのタブ、つまり、Map Info用のタブ975、Ta
bleInfo用のタブ980、Foreign Keys用のタブ985
を含んでいる。
【0088】WeatherCelsiusと名付けられているRDB
Sが図12に表示されている。分かる様に、表Towns
は、三つのフィールド、つまり、town、Celcius、year
を含んでいる。この表TownsはオントロジーのクラスCit
yへ写像されており、フィールドtownはオントロジーの
プロパティnameへ写像されており、フィールドCelcius
はオントロジーのプロパティCelciusへ写像されてお
り、フィールドyearはオントロジーのプロパティyearへ
写像されている。このRDBSWeatherCelciusはターゲ
ットRDBSと呼ばれる。
【0089】従って、ターゲットRDBSは次の表1の
通りである。
【表1】 ソースRDBSは次の表2の通りである。
【表2】
【0090】図13には、Transformations用のタブ9
30が選択されていることが示されている。右枠で分か
る様に、ソース表はCitiesであり、ターゲット表はTown
sである。次のSQL問い合わせが望ましい変換を完遂
する。 INSERT INTO WeatherCelcius.Towns(CELCIUS, TOWN, YEAR) (SELECT (5 * (A.FAHRENHEIT - 32) / 9) AS CELCIUS, A.CITY AS TOWN, A.YEAR AS YEAR FROM WeatherFahrenheit.Cities A);
【0091】本発明の好ましい実施形態によって、Cohe
renceへRDBSをインポートするアプリケーション用
のユーザインタフェースの図である、図14を参照す
る。図14には、スキーマ変換アプリケーション用のウ
ィンドウ1010が示されている。ユーザは次のフィー
ルドを明記することが好ましい。 −Database Name 1020:OracleがSID(System I
dentifier)と呼んでいるもの。 −Host Name 1030:Oracle 8iサーバの名称(また
はGlobal Database Name)。 −Port 1040:ポート番号 −Username 1050:関係のあるスキーマへの特権を
有するユーザのユーザ名称。 −Password 1060:関係のあるスキーマへの特権を
有するユーザのパスワード。 −Oracle Schema 1070:.SML形式へ変換されるべき
Oracle中のスキーマつまりデータベース。この.SML形式
はCoherenceによって使用される内部RDBS形式であ
る。一つよりも多いスキーマをインポートする場合は、
セミコロン(;)がスキーマ名称同士の間に置かれる。 −Coherence Schema 1080:Coherence中のMapping
Tab上に表示されるRDBSを識別する標識。このフィ
ールドは任意であり、もし空白のままであれば、Oracle
スキーマ名称が使用される。 −Output File 1090:生成される.SMLファイル用の
名称。
【0092】本発明の好ましい実施形態によって、Cohe
renceソフトウェアアプリケーションを使用して、ある
XMLスキーマから別のXMLスキーマへデータを変換
するためのユーザインタフェースの図である、図15〜
32を参照する。図15には、Airline Integrationオ
ントロジーモデルのパッケージビューをその左枠に有す
るウィンドウが示されている。この左枠はfundamental
パッケージからのクラスを表示している。クラスDateが
強調されていることが示されており、そのプロパティが
右枠に示されている。fundamentalパッケージが標準デ
ータ型用に使用されている。図16には、Airline Inte
grationオントロジーモデルの階層ビューをその左枠に
有するウィンドウが示されている。この左枠は、Freque
ntFlyerがPassengerの子クラスであり、PassengerがPer
sonの子クラスであり、PersonがBeingの子クラスである
ことを示している。その右枠はクラスFrequentFlyerに
ついての一般的な情報を表示している。
【0093】図17は、既存のオントロジーモデルを開
くために使用されるウィンドウを示している。Coherenc
eソフトウェアアプリケーションでは、オントロジーモ
デルはXMLを使用して記述され.omlファイルに格納さ
れる。この様なファイルは2001年5月25日に出願
されて共同オントロジーモデル化の方法及びシステムと
表題を付けられている本願出願人による共同出願中の米
国特許出願第09/866,101号に記載されてお
り、これによって参照によりその内容が組み入れられて
いる。
【0094】図18は、図16からの階層ビューを示し
ており、FrequentFlyerクラスのプロパティを示してい
る。プロパティfullNameが強調されており、制約情報用
のウィンドウは、オントロジーのプロパティfirstNam
e、lastName、fullName同士の間に関係が存在している
こと、つまり、fullNameが間に空白を有するfirstName
とlastNameとの連結であること、を示している。この関
係はConstraint_5として表示されている。
【0095】図19は、図16からの階層ビューを示し
ており、Passengerクラスのテストインスタンスを示し
ている。インスタンスのリストが、そのリストから選択
された特定のインスタンス用のプロパティ値と共に、右
枠に表示されている。
【0096】図20は、航空会社情報用の二つのインポ
ートされるXMLスキーマを示している。図21は、X
MLスキーマをCoherenceへインポートするためのウィ
ンドウを示している。図22は、British Airways用の
インポートされるXMLスキーマの表示と、そのインポ
ートされるスキーマからの複合型のリストとを有する、
ウィンドウを示している。複合型Journeyが選択されて
おり、右枠は、Journeyとその要素とがオントロジーモ
デルのクラス及びプロパティに現在は写像されていない
ことを示している。
【0097】図23は、British AirwaysXMLスキー
マからAirline Integrationオントロジーモデルへの写
像を生成するためのウィンドウを示している。オントロ
ジーのクラスFlightがXML複合型Journeyに対応する
ために選択されていることが示されている。図24は図
22からの左枠を示しており、その右枠は、今度は、Br
itish AirwaysXMLスキーマからのXML複合型Journ
eyがAirline Integrationオントロジーモデルからのク
ラスFlightへ写像されたことを示している。図25は、
図22からの左枠と、XMLスキーマから要素へ対応す
るためにプロパティ及び間接プロパティ(つまり、プロ
パティの合成物)を選択するためのウィンドウとを示し
ている。図25には、クラスFlightのプロパティdistan
ceInMiles()が選択されていることが示されている。図
26は図22からの左枠を示しており、その右枠は、今
度は、JourneyがFlightに写像され、複合型Journey内の
XML要素distance_in_milesがクラスFlightのプロパ
ティdistanceInMiles()へ写像されたことを、示してい
る。図27は図22からの左枠を示しており、その右枠
は、今度は、写像が複合型Journeyの総てのXML要素
へ拡張されたことを示しており、各々の要素が写像され
ている夫々のプロパティを示している。図28は、複合
型Journey用のスキーマ情報を示しており、その要素と
それらのデータ型とをリストしている。
【0098】図29は、得られる変換を明記するための
ウィンドウを示している。図29には、ソースデータス
キーマつまりインポートされたSwissAirXMLスキーマ
からターゲットデータスキーマつまりインポートされた
British AirwaysXMLスキーマへの変換を導出するた
めの要求が示されている。図30には、SwissAirスキー
マに従っているXML文書をBritish Airwaysスキーマ
に従うXML文書へ変換するために生成されたXSLT
スクリプトが示されている。図31は、図30からの導
出されたXSLTスクリプトを適用することによって得
られた、British AirwaysXML文書へのSwissAirXM
L文書の特定の変換を示している。最後に、図32は、
特定の飛行便及び乗客付きの新しく生成されたBritish
AirwaysXML文書の表示を示している。
【0099】
【実施例】本発明の内容を明快にし且つ展示するため
に、一連の23の実施例を通して本発明の作用が最初に
説明されており、実施の一般的な説明がその後に成され
ている。二つのシリーズの実施例が示されている。最初
の11の実施例から成る第一のシリーズはRDBS変換
に関するものである。これらの実施例の各々に対して、
ソースRDBS及びターゲットRDBSが入力として示
されており、共通のオントロジーモデルへのこれらのス
キーマの写像も示されている。出力は、ソースRDBS
に従っているデータベース表をターゲットRDBSに従
うデータベース表へ変換する適切なSQL問い合わせで
ある。各実施例は、ソース記号及びターゲット記号の導
出、ソース記号の用語によるターゲット記号の表現、及
び、この表現に基づく適切なSQL問い合わせの導出を
通って進む。
【0100】最後の12の実施例から成る第二のシリー
ズはXSLT変換に関するものである。これらの実施例
の各々に対して、ソースXMLスキーマ及びターゲット
XMLスキーマが入力として示されており、共通のオン
トロジーモデルへのこれらのスキーマの写像も示されて
いる。出力は、ソーススキーマに従っているXML文書
をターゲットスキーマに従うXML文書へ変換する適切
なXSLTスクリプトである。
【0101】第一実施例:Schoolchildren 第一実施例では、ターゲット表は次の表3の形式であ
る。
【表3】
【0102】四つのソース表は次の表4〜7の様に与え
られている。
【表4】
【表5】
【表6】
【表7】
【0103】基礎になっているオントロジーが図33に
示されている。図33中のオントロジーの点線部分は、
リレーショナルデータベーススキーマに透過な付加的な
オントロジー構造を示している。図33中に示されてい
るプロパティの番号付けを使用すれば、オントロジーの
一意のプロパティは次の表8の様に識別される。
【表8】
【0104】オントロジーへのターゲットスキーマの写
像は次の表9の通りである。
【表9】
【0105】記号oはプロパティの合成を示すために使
用されている。オントロジーへのソーススキーマの写像
は、次の表10の通りである。
【表10】
【0106】ソースプロパティの索引は次の表11の通
りである。
【表11】
【0107】表11中の記号は、ソース表のフィールド
をキーフィールドに関係付けている。従って、表S1
は、第一フィールドであるS1.Nameがキーフィールドで
ある。第二フィールドであるS1.School_Attendingは合
成物10o9o6-1によって第一フィールドに関係付けられて
おり、第三フィールドであるS1.Mother_NI_Numberは合
成物4o5o6-1によって第一フィールドに関係付けられて
いる。一般に、表が一つよりも多いキーフィールドを含
んでいれば、これらのキーフィールドの各々に関係して
いる表現がリストされる。
【0108】6-1の様な逆記法は、プロパティ6の逆を
示すために使用されている。プロパティ6はオントロジ
ーモデル中の一意のつまり一対一対応のプロパティであ
るので、これは十分に定義されている。Child_Nameにキ
ー付けされているターゲットプロパティの索引は、次の
表12の通りである。
【表12】
【0109】表12に与えられているパスに基づくと、
望ましいSQL問い合わせは次の通りである。 INSERT INTO T(Child_Name, Mother_Name, School_Location, Form) (SELECT S1.Name AS Child_Name, S2.Name AS Mother_Name, S3.Location AS School_Location, S4.Form AS Form FROM S1, S2, S3, S4 WHERE S2.NI_Number = S1.Mother_NI_Number AND S3.Name = S1.School_Attending AND S4.Name = S1.Name);
【0110】実施例で提供される規則は、ソース記号の
用語によるターゲット記号の表現をSQL問い合わせへ
変換する段階に関するものである。一般に、 規則1:ソース表Sからのソース記号を使用してターゲ
ット記号が仮に(aob-1)と表現されていると、aへのS
の列の写像はSQL問い合わせのSELECT節の中で使用さ
れ、bへのSの列の写像はWHERE節の中で使用される。 規則2:ソース記号の合成物としてターゲット記号が表
現されており、仮に、第一のソース表S1からaob-1が取
り出され、第二のソース表S2からboc-1が取り出され
て、(aob-1) o (boc-1)と表現されていると、S1及びS
2はbへの夫々の列写像によってSQL問い合わせ中で
結合されなければならない。 規則3:ソース表Sからのソース記号を使用してターゲ
ット記号が仮に(aob-1)と表現されており、且つ、その
ターゲット記号が形式boc-1の他のソース記号で構成さ
れていなければ、表Sはbへの列写像を介してターゲッ
ト表に結合されなければならない。
【0111】表13、14、15、16である次のサン
プルソースデータに適用されると、上記のSQL問い合
わせは表17中のターゲットデータを作り出す。
【表13】
【表14】
【表15】
【表16】
【表17】
【0112】第二実施例:Employees 第二実施例では、ターゲット表は次の表18の形式であ
る。
【表18】
【0113】四つのソース表は次の表19〜22の様に
与えられている。
【表19】
【表20】
【表21】
【表22】
【0114】基礎になっているオントロジーが、図34
に示されている。図34中のオントロジーの点線部分
は、リレーショナルデータベーススキーマに透過な付加
的なオントロジー構造である。そのオントロジーの一意
のプロパティは、次の表23の通りである。
【表23】
【0115】そのオントロジーへのターゲットスキーマ
の写像は、次の表24の通りである。
【表24】
【0116】そのオントロジーへのソーススキーマの写
像は、次の表25の通りである。
【表25】
【0117】ソースプロパティの索引は、次の表26の
通りである
【表26】
【0118】Nameにキー付けされているターゲットプロ
パティの索引は、次の表27の通りである。
【表27】
【0119】表27に与えられているパスに基づくと、
望ましいSQL問い合わせは次の通りである。 INSERT INTO T(Name, Department, Supervisor, Room#) (SELECT S1.Name AS Name, S1.Department AS Department, S2.Supervisor AS Supervisor, S3.Room_Assignment AS Room# FROM S1, S2, S3 WHERE S2.Employee_Name = S1.Name AND S3.ID# = S1.Emp_ID#);
【0120】なお、表S4はSQL中に必要でない。表
28、29、30である次のサンプルソースデータに適
用されると、上記のSQL問い合わせは表31中のター
ゲットデータを作り出す。
【表28】
【表29】
【表30】
【表31】
【0121】第三実施例:Airline Flights 第三実施例では、ターゲット表は次の表32の形式であ
る。
【表32】
【0122】二つのソース表は次の表33、34の様に
与えられている。
【表33】
【表34】
【0123】基礎になっているオントロジーが、図35
に示されている。図35中のオントロジーの点線部分
は、リレーショナルデータベーススキーマに透過な付加
的なオントロジー構造である。そのオントロジーの一意
のプロパティは、次の表35の通りである。
【表35】
【0124】そのオントロジーへのターゲットスキーマ
の写像は、次の表36の通りである。
【表36】
【0125】オントロジーへのソーススキーマの写像
は、次の表37の通りである。
【表37】
【0126】ソースプロパティの索引は次の表38の通
りである。
【表38】
【0127】FlightIDにキー付けされているターゲット
プロパティの索引は、次の表39の通りである。
【表39】
【0128】パス(2o1-1)が表39の二つの行に現れて
いるので、SQL問い合わせ中のS1のために二つの表
を作成する必要がある。表37に与えられているパスに
基づくと、望ましいSQL問い合わせは次の通りであ
る。 INSERT INTO T(FlightID, DepartingCity, ArrivingCity) (SELECT S2.FlightID AS FlightID, S11.Location AS DepartingCity, S12.Location AS ArrivingCity FROM S1 S11, S1 S12, S2 WHERE S11.APName = S2.FromAirport AND S12.APName = S2.ToAirport);
【0129】一般に、 規則4:ターゲット記号の表現に際して同じソース記号
が複数回使用されていると、ソース記号の各々の発生は
そのソース記号を含んでいるソース表の別個の写しを参
照しなければならない。
【0130】表40、41である次のサンプルソースデ
ータに適用されると、上記のSQL問い合わせは表42
中のターゲットデータを作り出す。
【表40】
【表41】
【表42】
【0131】第四実施例:家系 第四実施例では、ターゲット表は次の表43の形式であ
る。
【表43】
【0132】一つのソース表は次の表44の様に与えら
れている。
【表44】
【0133】基礎になっているオントロジーが、図36
に示されている。図36中のオントロジーの点線部分
は、リレーショナルデータベーススキーマに透過な付加
的なオントロジー構造である。そのオントロジーの一意
のプロパティは、次の表45の通りである。
【表45】
【0134】そのオントロジーへのターゲットスキーマ
の写像は、次の表46の通りである。
【表46】
【0135】そのオントロジーへのソーススキーマの写
像は、次の表47の通りである。
【表47】
【0136】ソースプロパティの索引は、次の表48の
通りである。
【表48】
【0137】IDにキー付けされているターゲットプロパ
ティの索引は、次の表49の通りである。
【表49】
【0138】表49に与えられているパスに基づくと、
望ましいSQL問い合わせは次の通りである。
【0139】第五実施例:家系 第五実施例では、第四実施例中におけるFather_Nameの
ターゲットプロパティがGrandfather_Nameに変更されて
いるので、ターゲット表は次の表50の形式である。
【表50】
【0140】一つのソース表は表44に上記の様に与え
られている。基礎になっているオントロジーも、図36
に示されている。そのオントロジーの一意のプロパティ
は、表45における上記の通りである。
【0141】そのオントロジーへのターゲットスキーマ
の写像は、次の表51の通りである。
【表51】
【0142】そのオントロジーへのソーススキーマの写
像は、上記の表47に与えられている。ソースプロパテ
ィの索引は、上記の表48に与えられている。
【0143】IDにキー付けされているターゲットプロパ
ティの索引は、次の表52の通りである。
【表52】
【0144】表52に与えられているパスに基づくと、
望ましいSQL問い合わせは次の通りである。
【0145】第六実施例:Dog Owners 第六実施例では、ターゲット表は次の表53の形式であ
る。
【表53】
【0146】二つのソース表は次の表54の様に与えら
れている。
【表54】
【表55】
【0147】基礎になっているオントロジーが、図37
に示されている。図37中のオントロジーの点線部分
は、リレーショナルデータベーススキーマに透過な付加
的なオントロジー構造である。そのオントロジーの一意
のプロパティは、次の表56の通りである。
【表56】
【0148】そのオントロジーへのターゲットスキーマ
の写像は、次の表57の通りである。
【表57】
【0149】そのオントロジーへのソーススキーマの写
像は、次の表58の通りである。
【表58】
【0150】ソースプロパティの索引は、次の表59の
通りである。
【表59】
【0151】IDにキー付けされているターゲットプロパ
ティの索引は、次の表60の通りである。
【表60】
【0152】表60に与えられているパスに基づくと、
望ましいSQL問い合わせは次の通りである。 INSERT INTO T(ID, Name, Dogs_Previous_Owner) (SELECT S1.ID AS ID, S1.Name AS Name, S2.Previous_Owner AS Dogs_Previous_Owner FROM S1, S2 WHERE S2.Name = S1.Dog);
【0153】第七実施例:Employees 第七実施例では、ターゲット表は次の表61の形式であ
る。
【表61】
【0154】五つのソース表は次の表62〜66の様に
与えられている。
【表62】
【表63】
【表64】
【表65】
【表66】
【0155】基礎になっているオントロジーが、図38
に示されている。図38中のオントロジーの点線部分
は、リレーショナルデータベーススキーマに透過な付加
的なオントロジー構造である。そのオントロジーの一意
のプロパティは、次の表67の通りである。
【表67】
【0156】そのオントロジーへのターゲットスキーマ
の写像は、次の表68の通りである。
【表68】
【0157】そのオントロジーへのソーススキーマの写
像は、次の表69の通りである。
【表69】
【0158】ソースプロパティの索引は、次の表70の
通りである
【表70】
【0159】IDにキー付けされているターゲットプロパ
ティの索引は、次の表71の通りである。
【表71】
【0160】表71に与えられているパスに基づくと、
望ましいSQL問い合わせは次の通りである。 INSERT INTO T(ID, Name, Email, Department) (SELECT S1.ID AS ID, S3.Name AS Name, S2.Email AS Email, S1.Department AS Department FROM S1, S2, S3 WHERE S2.ID = S1.ID AND S3.ID = S1.ID UNION SELECT S1.ID AS ID, S3.Name AS Name, S4.Email AS Email, S1.Department AS Department FROM S1, S3, S4 WHERE S3.ID = S1.ID AND S4.ID = S1.ID UNION SELECT S1.ID AS ID, S3.Name AS Name, S2.Email AS Email, S5.Department AS Department FROM S1, S2, S3, S5 WHERE S2.ID = S1.ID AND S3.ID = S1.ID AND S5.ID = S1.ID UNION SELECT S1.ID AS ID, S3.Name AS Name, S4.Email AS Email, S5.Department AS Department FROM S1, S3, S4, S5 WHERE S2.ID = S1.ID AND S3.ID = S1.ID AND S4.ID = S1.ID AND S5.ID = S1.ID);
【0161】一般に、 規則5:ターゲット記号を表現するために使用されてい
るソース記号が複数のソース表中に存在していれば、各
々のその様な表はSQL問い合わせ中及び結果として生
じる結合問い合わせ中で参照されなければならない。
【0162】表72、73、74、75、76である次
のサンプルソースデータに適用されると、上記のSQL
問い合わせは表77中のターゲットデータを作り出す。
【表72】
【表73】
【表74】
【表75】
【表76】
【表77】
【0163】第八実施例:Employees 第八実施例では、ターゲット表は次の表78の形式であ
る。
【表78】
【0164】二つのソース表は次の表79、80の様に
与えられている。
【表79】
【表80】
【0165】基礎になっているオントロジーが、図39
に示されている。図39中のオントロジーの点線部分
は、リレーショナルデータベーススキーマに透過な付加
的なオントロジー構造である。そのオントロジーの一意
のプロパティは、次の表81の通りである。
【表81】
【0166】そのオントロジーへのターゲットスキーマ
の写像は、次の表82の通りである。
【表82】
【0167】そのオントロジーへのソーススキーマの写
像は、次の表83の通りである。
【表83】
【0168】ソースプロパティの索引は、次の表84の
通りである
【表84】
【0169】Emp_Nameにキー付けされているターゲット
プロパティの索引は、次の表85の通りである。
【表85】
【0170】ソース表S1、S2の各々がターゲット表T
を生成するのに十分であるので、望ましいSQLはS1
のみを含む問い合わせとS2のみを含む問い合わせとの
和集合である。具体的に言うと、表85に与えられてい
るパスに基づくと、望ましいSQL問い合わせは次の通
りである。
【0171】一般に、 規則6:総てのターゲット記号を生成するのに十分なソ
ース記号を一つ以上のソース表が含んでいれば、各々の
その様なソース表はSQL問い合わせ中及び結果として
生じる結合問い合わせ中で単独で使用されなければなら
ない。(規則6は規則5と矛盾していないことに注意が
必要である。)
【0172】表86、87である次のサンプルソースデ
ータに適用されると、上記のSQL問い合わせは表88
中のターゲットデータを作り出す。
【表86】
【表87】
【表88】
【0173】第九実施例:データ制約 第九実施例では、ターゲット表は次の表89の形式であ
る。
【表89】
【0174】二つのソース表は次の表90、91の様に
与えられている。
【表90】
【表91】
【0175】基礎になっているオントロジーが、図40
に示されている。図40中のオントロジーの点線部分
は、リレーショナルデータベーススキーマに透過な付加
的なオントロジー構造である。プロパティtemperature_
in_Centrigadeとプロパティtemperature_in_Fahrenheit
とは、次の制約によって関係付けられている。 Temperature_in_Centrigade(City) = 5/9 * (temperature_in_Fahrenheit(City) - 32)
【0176】そのオントロジーの一意のプロパティは、
次の表92の通りである。
【表92】
【0177】そのオントロジーへのターゲットスキーマ
の写像は、次の表93の通りである。
【表93】
【0178】オントロジーへのソーススキーマの写像
は、次の表94の通りである。
【表94】
【0179】ソースプロパティの索引は次の表95の通
りである。
【表95】
【0180】Cityにキー付けされているターゲットプロ
パティの索引は、次の表96の通りである。
【表96】
【0181】ソース表S1、S2の各々がターゲット表T
を生成するのに十分であるので、望ましいSQLはS1
のみを含む問い合わせとS2のみを含む問い合わせとの
和集合である。具体的に言うと、表85に与えられてい
るパスに基づくと、望ましいSQL問い合わせは次の通
りである。 INSERT INTO T(City, Temperature) (SELECT S1.City AS City, 5/9 * (S1.Temperature - 32) AS Temperature FROM S1 UNION SELECT S2.City AS City, S2.Temperature AS Temperature FROM S2);
【0182】一般に、 規則7:ターゲット記号が依存関係制約によって一つ以
上のソース記号の用語で表現され得るならば、その様な
制約はターゲット記号のリスト中に現れなければならな
い。
【0183】表97、98である次のサンプルソースデ
ータに適用されると、上記のSQL問い合わせは表99
中のターゲットデータを作り出す。
【表97】
【表98】
【表99】
【0184】第一〇実施例:Pricing 第一〇実施例では、ターゲット表は次の表100の形式
である。
【表100】
【0185】二つのソース表は次の表101、102の
様に与えられている。
【表101】
【表102】
【0186】基礎になっているオントロジーが、図41
に示されている。図41中のオントロジーの点線部分
は、リレーショナルデータベーススキーマに透過な付加
的なオントロジー構造である。プロパティpriceとプロ
パティcost_of_productionとプロパティmarginとは、次
の制約によって関係付けられている。 price(Product) = cost_of_production(Product) * margin(Product).
【0187】そのオントロジーの一意のプロパティは、
次の表103の通りである。
【表103】
【0188】そのオントロジーへのターゲットスキーマ
の写像は、次の表104の通りである。
【表104】
【0189】オントロジーへのソーススキーマの写像
は、次の表105の通りである。
【表105】
【0190】ソースプロパティの索引は次の表106の
通りである。
【表106】
【0191】Productにキー付けされているターゲット
プロパティの索引は、次の表107の通りである。
【表107】
【0192】表107に与えられているパスに基づく
と、望ましいSQL問い合わせは次の通りである。 INSERT INTO T(Product, Price) (SELECT S1.SKU AS Product, (S1.Cost) * (S2.Margin) AS Price FROM S1, S2 WHERE S2.Item = S1.SKU);
【0193】表108、109である次のサンプルソー
スデータに適用されると、上記のSQL問い合わせは表
110中のターゲットデータを作り出す。
【表108】
【表109】
【表110】
【0194】第一一実施例:文字列連結 第一一実施例では、ターゲット表は次の表111の形式
である。
【表111】
【0195】一つのソース表は次の表112の様に与え
られている。
【表112】
【0196】基礎になっているオントロジーが、図42
に示されている。図42中のオントロジーの点線部分
は、リレーショナルデータベーススキーマに透過な付加
的なオントロジー構造である。プロパティfull_nameと
プロパティfirst_nameとプロパティlast_nameとは、次
の制約によって関係付けられている。 full_name(Person) = first_name(Person) ‖ last_name(Person) ‖は文字列連結を表示している。
【0197】そのオントロジーの一意のプロパティは、
次の表113の通りである。
【表113】
【0198】そのオントロジーへのターゲットスキーマ
の写像は、次の表114の通りである。
【表114】
【0199】オントロジーへのソーススキーマの写像
は、次の表115の通りである。
【表115】
【0200】ソースプロパティの索引は次の表116の
通りである。
【表116】
【0201】ID#にキー付けされているターゲットプロ
パティの索引は、次の表117の通りである。
【表117】
【0202】表117に与えられているパスに基づく
と、望ましいSQL問い合わせは次の通りである。 INSERT INTO T(ID#, Full_Name) (SELECT S.ID# AS ID#, (S.First_Name) ‖ (S.Last_Name) AS Full_Name FROM S);
【0203】表118である次のサンプルソースデータ
に適用されると、上記のSQL問い合わせは表119中
のターゲットデータを作り出す。
【表118】
【表119】
【0204】第一二実施例:Books→Documents Books用のソースXMLスキーマが下記によって与えら
れている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/20001/XMLschema"> <xs:element name="book" type="Book"/> <xs:complexType name="Book"> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="author" type="Author"/> </xs:sequence> </xs:complexType> <xs:complexType name="Author"> <xs:attribute name="name"/> </xs:complexType> </xs:schema>
【0205】Documents用のターゲットXMLスキーマ
が下記によって与えられている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLschema"> <xs:element name="document" type="Document"/> <xs:complexType name="Document"> <xs:all> <xs:element name="writer" type="xs:string"/> </xs:all> <xs:attribute name="title"/> </xs:complexType> </xs:schema>
【0206】ソースXMLスキーマ及びターゲットXM
Lスキーマ用の共通のオントロジーモデルが、図43に
示されている。オントロジーモデルへのソースXMLス
キーマの写像は、次の表120によって与えられる。
【表120】
【0207】オントロジーモデルへのターゲットXML
スキーマの写像は、次の表121によって与えられる。
【表121】 表120、121は、XSLの要素及び属性を示すため
にXPathの記法を使用している。
【0208】表120、121に基づくと、ソーススキ
ーマに従っているXML文書をターゲットスキーマに従
う対応文書へ写像するXSLT変換は、次の作業を完遂
しなければならない。 1.document/@title ← book/name/text() 2.document/writer/text() ← book/author/@name
【0209】その様な変換は下記によって与えられる。 <?xml version="1.0" encoding="UTF-8"?> <xsl: stylesheet version="1.0" xmlns:xsl="http ://www.w3.org/1999/XSL/Tr ansform"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <document> <xsl:for-each select=".//book[position() = 1]"> <xsl:attribute name="title"> <xsl:value-of select="name()"/> </xsl:attribute> <xsl:element name="writer"> <xsl:value-of select="author/@name" /> </xsl:element> </xsl:for-each> </document> </xsl:template> </xsl:stylesheet>
【0210】第一三実施例:Books→Documents Books用のソースXMLスキーマが下記によって与えら
れている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLschema"> <xs:element name="book" type="Book"/> <xs:complexType name="Book"> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="author" type="Author" minOccurs="0" maxOccurs="unb ounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="Author"> <xs:attribute name="name"/> </xs:complexType> </xs:schema>
【0211】Documents用のターゲットXMLスキーマ
が下記によって与えられている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLschema"> <xs:element name="document" type="Document"/> <xs:complexType name="Document"> <xs:choice> <xs:element name="writer" type="xs:string" minOccurs="1" maxOccurs=" unbounded"/> <xs:element name="title" type="xs:string"/> <xs:element name="ISBN" type="xs:string" /> </xs:choice> </xs:complexType> </xs:schema>
【0212】ソースXMLスキーマ及びターゲットXM
Lスキーマ用の共通のオントロジーモデルが、図44に
示されている。オントロジーモデルへのソースXMLス
キーマの写像は、上記の表118によって与えられてい
る。オントロジーモデルへのターゲットXMLスキーマ
の写像は、次の表122によって与えられる。
【表122】
【0213】表120、122に基づくと、ソーススキ
ーマに従っているXML文書をターゲットスキーマに従
う対応文書へ写像するXSLT変換は、次の作業を完遂
しなければならない。 1.document/title/text() ← book/name/text() 2.document/writer/text() ← book/author/@name
【0214】その様な変換は下記によって与えられる。 <?xml version="1.0" encoding="UTF-8"?> <xsl: stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Tra nsform"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <document> <xsl:apply-templates select="book" /> </document> </xsl:template> <xsl:template match="book"> <xsl:choose> <xsl:when test="author"> <xsl:for-each select="author"> <xsl: element name="writer"> <xsl:value-of select="@name"/> </xsl:element> </xsl:for-each> </xsl:when> <xsl:when test="name"> <xsl:element name="title"> <xsl:value-of select="name/text()"/> </xsl:element> </xsl:when> </xsl:choose> </xsl:template> </xsl:stylesheet>
【0215】第一四実施例:Document Storage Books用のソースXMLスキーマが下記によって与えら
れている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLschema"> <xs:element name="library" type="Library"/> <xs:complexType name="Library"> <xs:sequence> <xs:element name="source" type="Source" minOccurs="0" maxOccurs="unb ounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="Source"> <xs:sequence> <xs:element name="review" type="Review" minOccurs="0" maxOccurs="unb ounded"/> <xs:element name="article" type="Article" minOccurs="0" maxOccurs="u nbounded"/> <xs:element name="letter" type="Letter" minOccurs="0" maxOccurs="unb ounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="Review"> <xs:sequence> <xs:element name="author" type="xs:string" minOccurs="0" maxOccurs=" unbounded"/> </xs:sequence> <xs:attribute name="title"/> </xs:complexType> <xs:complexType name="Article"> <xs:sequence> <xs:element name="writer" type="xs:string" minOccurs="0" maxOccurs=" unbounded"/> </xs:sequence> <xs:attribute name="name"/> </xs:complexType> <xs:complexType name="Letter"> <xs:sequence> <xs:element name="sender" type="xs:string" minOccurs="0" maxOccurs=" unbounded"/> </xs:sequence> <xs:attribute name="name"/> <xs:attribute name="subject"/> <xs:attribute name="receiver"/> </xs:complexType> </xs:schema>
【0216】Documents用の第一のターゲットXMLス
キーマが下記によって与えられている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLschema"> <xs:element name="storage" type="Storage"/> <xs:complexType name="Storage"> <xs:sequence> <xs:element name="articles" type="Documents"/> <xs:element name="reviews" type="Documents"/> <xs:element name="letters" type="Letters"/> </xs:sequence> </xs:complexType> <xs:complexType name="Documents"> <xs:sequence> <xs:element name="document" type="Document" minOccurs="0" maxOccurs= "unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="Letters"> <xs:sequence> <xs:element name="letter" type="Letter" minOccurs="0" maxOccurs="unb ounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="Document"> <xs:sequence> <xs:element name="author" type="xs:string" minOccurs="0" maxOccurs=" unbounded"/> </xs:sequence> <xs:attribute name="title"/> </xs:complexType> <xs:complexType name="Letter"> <xs:sequence> <xs:element name="author" type="xs:string" minOccurs="0" maxOccurs=" unbounded"/> </xs:sequence> <xs:attribute name="name"/> <xs:attribute name="subject"/> <xs:attribute name="receiver"/> </xs:complexType> </xs:schema>
【0217】ソースXMLスキーマ及び第一のターゲッ
トXMLスキーマ用の共通のオントロジーモデルが、図
45に示されている。オントロジーモデルへのソースX
MLスキーマの写像は、次の表123によって与えられ
る。
【表123】
【0218】オントロジーモデルへの第一のターゲット
XMLスキーマの写像は、次の表124によって与えら
れる。
【表124】
【0219】表123、124に基づくと、ソーススキ
ーマに従っているXML文書をターゲットスキーマに従
う対応文書へ写像するXSLT変換は、次の作業を完遂
しなければならない。 1.storage ← library 2.letter/author/text() ← letter/sender/text()
【0220】その様な変換は下記によって与えられる。 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Tran sform"> <xsl:template match="/"> <xsl:apply-templates select="/library"/> </xsl:template> <xsl:template match="/library"> <storage> <articles> <xsl:apply-templates select="source[not(letter)]/article | source[no t(review)]/article"/> </articles> <reviews> <xsl:apply-templates select="source[not(letter)]/review"/> </reviews> <letters> <xsl:apply-templates select="source [not(review)]/letter"/> </letters> </storage> </xsl:template> <xsl:template match="article"> <article> <xsl:attribute name="title"><xsl:value-of select="@name"/></xsl:attrib ute> <xsl:apply-templates select="writer"/> </article> </xsl:template> <xsl:template match="review"> <review> <xsl:attribute name="title"><xsl:value-of select="@title"/></xsl:attri bute> <xsl:apply-templates select="author"/> </review> </xsl:template> <xsl:template match="letter"> <review> <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribu te> <xsl:attribute name="subject"><xsl:value-of select="@subject"/></xsl:a ttribute> <xsl:attribute name="receiver"><xsl:value-of select="@receiver"/></xsl :attribute> <xsl:apply-templates select="sender"/> </review> </xsl:template> <xsl:template match="article/writer | review/author | letter/sender"> <author> <xsl:value-of select="text()"/> </author> </xsl:template> </xsl:stylesheet>
【0221】Documents用の第二のターゲットXMLス
キーマが下記によって与えられている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLschema"> <xs:element name="storage" type="Storage"/> <xs:complexType name="Storage"> <xs:sequence> <xs:element name="books" type="Books"/> <xs:element name="magazines" type="Magazines"/> </xs:sequence> </xs:complexType> <xs:complexType name="Books"> <xs:sequence> <xs:element name="articles" type="Documents"/> <xs:element name="reviews" type="Documents"/> </xs:sequence> </xs:complexType> <xs:complexType name="Magazines"> <xs:sequence> <xs:element name="articles" type="Documents"/> <xs:element name="letters" type="Letters"/> </xs:sequence> </xs:complexType> <xs:complexType name="Documents"> <xs:sequence> <xs:element name="document" type="Document" minOccurs="0" maxOccurs= "unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="Letters"> <xs:sequence> <xs:element name="letter" type="Letter" minOccurs="0" maxOccurs="unb ounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="Document"> <xs:sequence> <xs:element name="author" type="xs:string" minOccurs="0" maxOccurs=" unbounded"/> </xs:sequence> <xs:attribute name="title"/> </xs:complexType> <xs:complexType name="Letter"> <xs:sequence> <xs:element name="author" type="xs:string" minOccurs="0" maxOccurs="un bounded"/> </xs:sequence> <xs:attribute name="name"/> <xs:attribute name="subject"/> <xs:attribute name="receiver"/> </xs:complexType> </xs:schema>
【0222】オントロジーモデルへの第二のターゲット
XMLスキーマの写像は、次の表125によって与えら
れる。
【表125】
【0223】表123、125に基づくと、ソーススキ
ーマに従っているXML文書をターゲットスキーマに従
う対応文書へ写像するXSLT変換は、次の作業を完遂
しなければならない。 1.storage ← library 2.letter/author/text() ← letter/sender/text()
【0224】その様な変換は下記によって与えられる。 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Tran sform"> <xsl:template match="/"> <xsl:apply-templates select="/library"/> </xsl:template> <xsl:template match="/library"> <storage> <books> <articles> <xsl:apply-templates select="source[not(letter)]/article"/> </articles> <reviews> <xsl:apply-templates select="source[not(letter)]/review"/> </reviews> </books> <magazines> <articles> <xsl:apply-templates select="source[not(review)]/article"/> </articles> <letters> <xsl:apply-templates select="source[not(review)]/letter"/> </letters> </magazines> </storage> </xsl:template> <xsl:template match="article"> <article> <xsl:attribute name="title"><xsl:value-of select="@name"/></xsl:attrib ute> <xsl:apply-templates select="writer"/> </article> </xsl:template> <xsl:template match="review"> <review> <xsl:attribute name="title"><xsl:value-of select="@title"/></xsl:attri bute> <xsl:apply-templates select="author"/> </review> </xsl:template> <xsl:template match="letter"> <review> <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribu te> <xsl:attribute name="subject"><xsl:value-of select="@subject"/></xsl:a ttribute> <xsl:attribute name="receiver"><xsl:value-of select="@receiver"/></xsl :attribute> <xsl:apply-templates select="sender"/> </review> </xsl:template> <xsl:template match="article/writer | review/author | letter/sender"> <author> <xsl:value-of select="text()"/> </author> </xsl:template> </xsl:stylesheet>
【0225】Documents用の第三のターゲットXMLス
キーマが下記によって与えられている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLschema"> <xs:element name="storage" type="Storage"/> <xs:complexType name="Storage"> <xs:sequence> <xs:element name="article_from_books" type="AB" minOccurs="0" maxOcc urs="unbounded"/> <xs:element name="article_from_magazines" type="AM" minOccurs="0" ma xOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="AB"> <xs:sequence> <xs:element name="authors" type="xs:string" minOccurs="0" maxOccurs= "unbounded"/> </xs:sequence> <xs:attribute name="title"/> </xs:complexType> <xs:complexType name="AM"> <xs:sequence> <xs:element name="writers" type="xs:string" minOccurs="0" maxOccurs= "unbounded"/> </xs:sequence> <xs:attribute name="name"/> </xs:complexType> </xs:schema>
【0226】オントロジーモデルへの第三のターゲット
XMLスキーマの写像は、次の表126によって与えら
れる。
【表126】
【0227】表123、126に基づくと、ソーススキ
ーマに従っているXML文書をターゲットスキーマに従
う対応文書へ写像するXSLT変換は、次の作業を完遂
しなければならない。 1.storage ← library 2.letter/author/text() ← letter/sender/text()
【0228】その様な変換は下記によって与えられる。 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Tran sform"> <xsl:template match="/"> <xsl:apply-templates select="/library"/> </xsl:template> <xsl:template match="/library"> <storage> <xsl:apply-templates select="source[not(letter)]/article" mode="AB"/> <xsl:apply-templates select="source[not(review)]/article" mode="AM"/> </storage> </xsl:template> <xsl:template match="article" mode="AB"> <article_from_books> <xsl:attribute name="title"><xsl:value-of select="@name"/></xsl:attrib ute> <xsl:apply-templates select="writer" mode="AB"/> </article_from_books> </xsl:template> <xsl:template match="article" mode="AM"> <article_from_magazines> <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribu te> <xsl:apply-templates select="writer" mode="AM"/> </article_from_magazines> </xsl:template> <xsl:template match="article/writer" mode="AB"> <author> <xsl:value-of select="text()"/> </author> </xsl:template> <xsl:template match="article/writer" mode="AM"> <writer> <xsl:value-of select="text()"/> </writer> </xsl:template> </xsl:stylesheet>
【0229】第一五実施例:文字列変換 People用のソースXMLスキーマが下記によって与えら
れている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLschema" elementFormDefaul t="qualified" attributeFormDefault="unqualified"> <xs:element name="Person" type="Person"/> <xs:complexType name="Person"> <xs:sequence> <xs:element name="name" type="xs:string"/> <!-- name expected input in format firstName#LastName --> <xs:element name="ID" type="xs:string"/> <!-- ID expected input in format XXXXXXXXX-X --> <xs:element name="age" type="xs:string"/> <!-- age expected input in exponential form XXXeX --> </xs:sequence> </xs:complexType> </xs:schema>
【0230】People用のターゲットXMLスキーマが下
記によって与えられている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLschema" elementFormDefaul t="qualified" attributeFormDefault="unqualified"> <xs:element name="Person" type="Person"/> <xs:complexType name="Person"> <xs:sequence> <xs:element name="name" type="xs:string"/> <!-- name expected input in format LastName, FirstName --> <xs:element name="ID" type="xs:string"/> <!-- ID expected input in format 12XX-XXXXXXXX3E --> </xs:sequence> </xs:complexType> </xs:schema>
【0231】ソーススキーマをターゲットスキーマへ写
像するXSLT変換は、下記によって与えられる。 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Tran sform"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <Person> <xsl:for-each select="Person"> <xsl: element name="name"> <xsl:value-of select="concat(substring-after(name,'#'), ', ', su bstring-before(name,'#'))"/> </xsl:element> <xsl:element name="ID"> <xsl:variable name="plainID" select="concat(substring-before(ID/ text(),'-'),substring-after(ID/text(),'-'))"/> <xsl:value-of select="concat('12',substring($plainID,1,2),'-',su bstring($plainID,3),'3E')"/> </xsl:element> <xsl:element name="age"> <xsl:call-template name="exponentiate"> <xsl:with-param name="power" select="substring-after(age,'e')" /> <xsl:with-param name="digit" select="substring-before(age,'e') "/> <xsl:with-param name="ten" select="1"/> </xsl:call-template> </xsl:element> </xsl:for-each> </Person> </xsl:template> <xsl:template name="exponentiate"> <xsl:param name="power"/> <xsl:param name="digit"/> <xsl:param name="ten"/> <xsl:choose> <xsl:when test="$power &gt; O"> <xsl:call-template name="exponentiate"> <xsl:with-param name="power" select="$power - 1"/> <xsl:with-param name="digit" select="$digit"/> <xsl:with-param name="ten" select="$ten * 10"/> </xsl:call-template> </xsl:when> <xsl:when test="$power &lt; 0"> <xsl:call-template name="exponentiate"> <xsl:with-param name="power" select="$power + 1"/> <xsl:with-param name="digit" select="$digit"/> <xsl:with-param name="ten" select="$ten div 10"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="format-number($digit * $ten, ',###.###') " /> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet>
【0232】第一六実施例:文字列変換 People用のソースXMLスキーマが下記によって与えら
れている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs=http://www.w3.org/2001/XMLschema elementFormDefault= "qualified" attributeFormDefault="unqualified"> <xs:element name="Person" type="Person"/> <xs:complexType name="Person"> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="homeTown" type="xs:string"/> </xs:sequence> <xs:attribute name="dog_name"/> </xs:complexType> </xs:schema>
【0233】People用のターゲットXMLスキーマが下
記によって与えられている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLschema" elementFormDefaul t="qualified" attributeFormDefault="unqualified"> <xs:element name="Person" type="Person"/> <xs:complexType name="Person"> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="homeTown" type="xs:string"/> </xs:sequence> <xs:attribute name="dog_name"/> </xs:complexType> </xs:schema>
【0234】ソーススキーマをターゲットスキーマへ写
像するXSLT変換は、下記によって与えられる。 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Tran sform"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <Person> <xsl:for-each select="Person"> <xsl:attribute name="dog"> <xsl:value-of select="@dog_name"/> </xsl:attribute> <xsl:element name="name"> <xsl:value-of select="name/text()"/> </xsl:element> <xsl:element name="indexOfcarString_CaseInSensitive"> <xsl:variable name="case_neutral" select="translate(name, 'ABCDE FGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')"/> <xsl:value-of select="string-length(substring-before($case_neutr al, 'car')) - 1"/> </xsl:element> <xsl:element name="indexOfcarString_CaseSensitive"> <xsl:value-of select="string-length(substring-before(name, 'car' )) - 1"/> </xsl:element> <xsl:element name="homeTown"> <xsl:value-of select="homeTown"/> </xsl:element> </xsl:for-each> </Person> </xsl:template> </xsl:stylesheet>
【0235】第一七実施例:Library→Storage Librarys用のソースXMLスキーマが下記によって与え
られている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLschema"> <xs:element name="library" type="Library"/> <xs:complexType name="Library"> <xs:sequence> <xs:element name="book" type="Book" minOccurs="0" maxOccurs="unbound ed"/> </xs:sequence> </xs:complexType> <xs:complexType name="Book"> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="author" type="Author" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="Author"> <xs:attribute name="name"/> </xs:complexType> </xs:schema>
【0236】Storage用のターゲットXMLスキーマが
下記によって与えられている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLschema"> <xs:element name="storage" type="Storage"/> <xs:complexType name="Storage"> <xs:sequence> <xs:element name="document" type="Document" minOccurs="0" maxOccurs= "unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="Document"> <xs:sequence> <xs:element name="writer" type="xs:string" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="title"/> </xs:complexType> </xs:schema>
【0237】ソースXMLスキーマ及びターゲットXM
Lスキーマ用の共通のオントロジーモデルが、図43に
示されている。オントロジーモデルへのソースXMLス
キーマの写像は、複合型とコンテナクラスset[Book]と
の間の付加的な対応と共に、表120によって与えられ
ている。オントロジーモデルへのターゲットXMLスキ
ーマの写像は、複合型storageとコンテナクラスset[Boo
k]との間の付加的な対応と共に、表121によって与え
られている。
【0238】表120、121に基づくと、ソーススキ
ーマに従っているXML文書をターゲットスキーマに従
う対応文書へ写像するXSLT変換は、次の作業を完遂
しなければならない。 1.document/@title ← book/name/text() 2.document/writer/text() ← book/author/@name
【0239】その様な変換は下記によって与えられる。 <?xml version="1.0" encoding="UTF-8"?> <xsl: stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Tra nsform"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <storage> <xsl:for-each select=".//library"> <xsl:for-each select="book"> <document> <xsl:attribute name="title"> <xsl:value-of select="name"/> </xsl:attribute> <writer> <xsl:for-each select="author/@name"> <xsl:value-of select="."/> </xsl:for-each> </writer> </document> </xsl:for-each> </xsl:for-each> </storage> </xsl:template> </xsl:stylesheet>
【0240】第一八実施例:事情変更 普通の文用のソースXMLスキーマが下記によって与え
られている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs=http://www.w3.org/2001/XMLschema elementFormDefault= "qualified" attributeFormDefault="unqualified"> <xs:element name="Person" type="Person"/> <xs:complexType name="Person"> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="homeTown" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:schema>
【0241】機密文用のターゲットXMLスキーマが下
記によって与えられている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLschema" elementFormDefaul t="qualified" attributeFormDefault="unqualified"> <xs:element name="Person" type="Person"/> <xs:complexType name="Person"> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="homeTown" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:schema>
【0242】ソーススキーマをターゲットスキーマへ写
像するXSLT変換は、下記によって与えられる。 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Tran sform"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <Person> <xsl:for-each select="Person"> <xsl:element name="low_name"> <xsl:value-of select="translate(name, 'ABCDEFGHIJKLMNOPQRSTUVWXY Z', 'abcdefghijklmnopqrstuvwxyz')"/> </xsl:element> <xsl:element name="upper_homeTown"> <xsl:value-of select="translate(homeTown, 'abcdefghijklmnopqrstu vwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/> </xsl:element> </xsl:for-each> </Person> </xsl:template> </xsl:stylesheet>
【0243】第一九実施例:番号操作 番号リスト用のソースXMLスキーマが下記によって与
えられている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLschema" elementFormDefaul t="qualified" attributeFormDefault="unqualified"> <xs:element name="List_o_Numbers" type="NumList"/> <xs:complexType name="NumList"> <xs:sequence> <xs:element name="first" type="xs:string"/> <xs:element name="second" type="xs:float"/> <xs:element name="third" type="xs:float"/> <xs:element name="fourth" type="xs:float"/> <xs:element name="fifth" type="xs:float"/> <xs:element name="sixth" type="xs:float"/> <xs:element name="seventh" type="xs:float"/> </xs:sequence> </xs:complexType> </xs:schema>
【0244】番号リスト用のターゲットXMLスキーマ
が下記によって与えられている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLschema" elementFormDefaul t="qualified" attributeFormDefault="unqualified"> <xs:element name="List_o_Numbers" type="NumList"/> <xs:complexType name="NumList"> <xs:sequence> <xs:element name="first_as_num" type="xs:decimal"/> <!-- first_as _num - take a string and return a numerical value. Exemplifies use of th e operator value(string) --> <xs:element name="second_floor" type="xs:decimal"/> <!-- second f loor return nearest integer less than number. Exemplifies use of the ope rator floor(number) --> <xs:element name="second_firstDecimal_floor" type="xs:decimal"/> <!-- second_firstDecimal_floor - return nearest first decimal place less than number. Exemplifies use of the operator floor(number, signific ance) --> <xs:element name="third_ceil" type="xs:decimal"/> <!-- third_ceil - return nearest integer greater than number. Exemplifies use of the op erator ceil(number) --> <xs:element name="third_secondDecimal_ceil" type="xs:decimal"/> <!-- third_secondDecimal_ceil - return nearest second decimal place greater than number. Exemplifies use of the operator ceil(number, signif icance) --> <xs:element name="fourth_round" type="xs:decimal"/> <!--fourth_ro und - round the number in integers. Exemplifies use of the operator roun d(number) --> <xs:element name="fourth_thirdDecimal_round" type="xs:decimal"/> <!-- fourth_thirdDecimal_round - round the number up to third decima l. Exemplifies use of the operator round(number, significance) --> <xs:element name="fifth_roundToThousand" type="xs:decimal"/> <!-- fifth_roundToThousand - round the number up to nearest ten to t he third. Exemplifies use of the operator roundToPower(number, power) -- > <xs:element name="abs_sixth type="xs:decimal"/> <!-- abs_sixth - return absolute value of number. Exemplifies use of operator abs(number) --> <xs:element name="seventh" type="xs:string"/> <!-- seventh - retu rn number as string. Exemplifies use of operator string(number) --> </xs:sequence> </xs:complexType> </xs:schema>
【0245】ソーススキーマをターゲットスキーマへ写
像するXSLT変換は、下記によって与えられる。 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Tran sform"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <List_o_Numbers> <xsl:for-each select="List_o_Numbers"> <xsl:element name="first_as_num"> <xsl:value-of select="number(first)"/> </xsl:element> <!-- first as num - take a string and return a n umerical value. Exemplifies use of the operator value(string) --> <xsl:element name="second_floor"> <xsl:value-of select="floor(second)"/> </xsl:element> <!-- second_floor return nearest integer less th an number. Exemplifies use of the operator floor(number) --> <xsl:element name="second_firstDecimal_floor"> <xsl:value-of select="floor(second*10) div 10"/> </xsl:element> <!-- second_firstDecimal_floor - return nearest first decimal place less than number. Exemplifies use of the operator fl oor(number, significance) --> <xsl:element name="third_ceil"> <xsl:value-of select="ceiling(third)"/> </xsl:element> <xsl:element name="third_secondDecimal_ceil"> <xsl:value-of select="ceiling(third*100) div 100"/> </xsl:element> <!-- third_ceil - return nearest integer greater than number. Exemplifies use of the operator ceil(number) --> <xsl:element name="fourth_round"> <xsl:value-of select="round(fourth)"/> </xsl:element> <!-- fourth_round - round the number in integers . Exemplifies use of the operator round(number) --> <xsl:element name="fourth_thirdDecimal_round"> <xsl:value-of select="round(fourth*1000) div 1000" /> </xsl:element> <!-- fourth_thirdDecimal_round - round the numbe r up to third decimal. Exemplifies use of the operator round(number, sig nificance) --> <xsl:element name="fifth_roundToThousand"> <xsl:value-of select="round(fifth div 1000) * 1000" /> </xsl:element> <!-- fifth_roundToThousand - round the number up to nearest ten to the third. Exemplifies use of the operator roundToPow er(number, power) --> <xsl:element name="abs_sixth"> <xsl:choose> <xsl:when test="sixth &lt; 0"> <xsl:value-of select="sixth * -1 "/> </xsl:when> <xsl:otherwise> <xsl:value-of select="sixth"/> </xsl:otherwise> </xsl:choose> </xsl:element> <!-- abs_sixth - return absolute value of number . Exemplifies use of operator abs(number) --> <xsl:element name="seventh"> <xsl:value-of select="concat(' ',string(seventh),' ')"/> </xsl:element> <!-- seventh - return number as string. Exemplif ies use of operator string(number) --> </xsl:for-each> </List_o_Numbers> </xsl:template> </xsl:stylesheet>
【0246】第二〇実施例:文字列操作 Person用のソースXMLスキーマが下記によって与えら
れている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLschema" elementFormDefaul t="qualified" attributeFormDefault="unqualified"> <xs:element name="Person" type="Person"/> <xs:complexType name="Person"> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="homeTown" type="xs:string"/> </xs:sequence> <xs:attribute name="dog_name" /> </xs:complexType> </xs:schema>
【0247】Person用のターゲットXMLスキーマが下
記によって与えられている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLschema" elementFormDefaul t="qualified" attributeFormDefault="unqualified"> <xs:element name="Person" type="Person"/> <xs:complexType name="Person"> <xs:sequence> <xs:element name="four_name" type="xs:string"/> <xs:element name="capital_homeTown" type="xs:string"/> <!-- four-Name is only four characters long, please. This exempl ifies use of the substring(string, start, length) operator--> <!-- capital_homeTown - we must insist you capitalize the first letter of a town, out of respect. This exemplifies use of the capital op erator--> </xs:sequence> <xs:attribute name="dog_trim"/> <xs:attribute name="dog_length"/> <!-- dog_trim - keep your dog trim - no blank spaces in front or after the name. This exemplifies use of the trim operator --> <!--dog_length - gives the number of characters (in integers, no t dog years) in your dog's name. This exemplifies use of the length(stri ng) operator --> </xs:complexType> </xs:schema>
【0248】ソーススキーマをターゲットスキーマへ写
像するXSLT変換は、下記によって与えられる。 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Tran sform"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <Person> <xsl:for-each select="Person"> <xsl:attribute name="dog_trim"> <xsl:value-of select="normalize-space(@dog_name)"/> </xsl:attribute> <xsl:attribute name="dog_length"> <xsl:value-of select="string-length(normalize-space(@dog_name))" /> </xsl:attribute> <!-- dog_trim - This exemplifies use of the trim operator --> <!--dog_length - This exemplifies use of the length(string) operat or --> <xsl:element name="four_name"> <xsl:value-of select="substring(name,1, 4)"/> </xsl:element> <xsl:element name="capital_homeTown"> <xsl:value-of select="concat(translate(substring(normalize-space (homeTown),1,1), 'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXY Z'), substring(normalize-space(homeTown),2))" /> </xsl:element> <!-- four-Name. This exemplifies use of the substring(string, star t, length) operator--> <!-- capital_hometown. This exemplifies use of the capital operato r--> </xsl:for-each> </Person> </xsl:template> </xsl:stylesheet>
【0249】第二一実施例:温度変換 華氏温度用のソースXMLスキーマが下記によって与え
られている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLschema" elementFormDefaul t="qualified" attributeFormDefault="unqualified"> <xs:element name="city" type="city"/> <xs:complexType name="city"> <xs:sequence> <xs:element name="temperatureF" type="xs:string"/> </xs:sequence> <xs:attribute name="name" /> </xs:complexType> </xs:schema>
【0250】摂氏温度用のターゲットXMLスキーマが
下記によって与えられている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLschema" elementFormDefaul t="qualified" attributeFormDefault="unqualified"> <xs:element name="town" type="town" /> <xs:complexType name="town"> <xs:sequence> <xs:element name="temperatureC" type="xs:string" /> </xs:sequence> </xs:complexType> <xs:attribute name="name" /> </xs:schema>
【0251】ソーススキーマをターゲットスキーマへ写
像するXSLT変換は、下記によって与えられる。 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Tran sform"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <town> <xsl:for-each select="city"> <xsl:attribute name="name"> <xsl:value-of select="@name"/> </xsl:attribute> <xsl:element name="temperatureC"> <xsl:value-of select="floor( (temperatureF - 32) * (5 div 9) )" /> </xsl:element> </xsl:for-each> </town> </xsl:template> </xsl:stylesheet>
【0252】第二二実施例:Town with Books Town with books用のソースXMLスキーマが下記によ
って与えられている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLschema" elementFormDefaul t="qualified" attributeFormDefault="unqualified"> <xs:element name="town" type="Town" /> <xs:complexType name="Town"> <xs:sequence> <xs:element name="library" type="Library" minOccurs="0" maxOccurs="u nbounded" /> </xs:sequence> <xs:attribute name="name" type="xs:string" /> </xs:complexType> <xs:complexType name="Library"> <xs:sequence> <xs:element name="book" type="Book" minOccurs="0" maxOccurs="unbound ed" /> </xs:sequence> <xs:attribute name="name" type="xs:string" /> </xs:complexType> <xs:complexType name="Book"> <xs:sequence> <xs:element name="title" type="xs:string" /> <xs:element name="author_name" type="xs:string" minOccurs="1" maxOcc urs="unbounded" /> </xs:sequence> </xs:complexType> </xs:schema>
【0253】List of books用のターゲットXMLスキ
ーマが下記によって与えられている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLschema" elementFormDefaul t="qualified" attributeFormDefault="unqualified"> <xs:element name="list_of_books" type="books"/> <xs:complexType name="books"> <xs:sequence> <xs:element name="book" type="book" minOccurs="0" maxOccurs="unbound ed" /> </xs:sequence> </xs:complexType> <xs:complexType name="book"> <xs:sequence> <xs:element name="title" type="xs:string" /> <xs:element name="author_name" type="xs:string" minOccurs="1" maxOcc urs="unbounded" /> </xs:sequence> </xs:complexType> </xs:schema>
【0254】ソースXMLスキーマ及びターゲットXM
Lスキーマ用の共通のオントロジーモデルが、図46に
示されている。オントロジーモデルへのソースXMLス
キーマの写像は、次の表127によって与えられる。
【表127】
【0255】オントロジーモデルへのターゲットXML
スキーマの写像は、次の表128に与えられる。
【表128】
【0256】表127、128に基づくと、ソーススキ
ーマに従っているXML文書をターゲットスキーマに従
う対応文書へ写像するXSLT変換は、下記によって与
えられる。 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Tran sform"> <xsl:output method="xml" version="1.0" encoding="UTF-8 " indent="yes"/> <xsl:template match="/"> <books> <xsl:for-each select=".//book"> <book> <xsl:element name="title"> <xsl:value-of select="title/text()"/> </xsl:element> <xsl:for-each select="author_name"> <xsl:element name="author_name"> <xsl:value-of select="."/> </xsl:element> </xsl:for-each> </book> </xsl:for-each> </books> </xsl:template> </xsl:stylesheet>
【0257】第二三実施例:Town with Books Town用のソースXMLスキーマが下記によって与えられ
ている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLschema" elementFormDefaul t="qualified" attributeFormDefault="unqualified"> <xs:element name="town" type="Town"/> <xs:complexType name="Town"> <xs:sequence> <xs:element name="library" type="Library" minOccurs="0" maxOccurs="u nbounded"/> <xs:element name="police_station" type="PoliceStation" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="name" type="xs:string"/> </xs:complexType> <xs:complexType name="Library"> <xs:sequence> <xs:element name="book" type="Book" minOccurs="0" maxOccurs="unbound ed"/> </xs:sequence> <xs:attribute name="name" type="xs:string"/> </xs:complexType> <xs:complexType name="Book"> <xs:sequence> <xs:element name="title" type="xs:string"/> <xs:element name="author_name" type="xs:string" maxOccurs="unbounded "/> </xs:sequence> </xs:complexType> <xs:complexType name="PoliceStation"> <xs:sequence> <xs:element name="Officers" type="Officers"/> </xs:sequence> <xs:attribute name="identifier" type="xs:string"/> </xs:complexType> <xs:complexType name="Officers"> <xs:sequence> <xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="un bounded"/> </xs:sequence> </xs:complexType> </xs:schema>
【0258】Police stations用の第一のターゲットX
MLスキーマが下記によって与えられている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLschema" elementFormDefaul t="qualified" attributeFormDefault="unqualified"> <xs:element name="PoliceStations" type="PoliceStations"/> <xs:complexType name="PoliceStations"> <xs:sequence> <xs:element name="Station" type="Station" minOccurs="0" maxOccurs="u nbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="Station"> <xs:sequence> <xs:element name="Officers" type="Officers"/> </xs:sequence> <xs:attribute name="identifier" type="xs:string"/> </xs:complexType> <xs:complexType name="Officers"> <xs:sequence> <xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="10 "/> </xs:sequence> </xs:complexType> </xs:schema>
【0259】ソースXMLスキーマ及びターゲットXM
Lスキーマ用の共通のオントロジーモデルが、図47に
示されている。オントロジーモデルへのソースXMLス
キーマの写像は、次の表129によって与えられる。
【表129】
【0260】オントロジーモデルへの第一のターゲット
XMLスキーマの写像は、次の表130によって与えら
れる。
【表130】
【0261】表129、130に基づくと、ソーススキ
ーマに従っているXML文書を第一のターゲットスキー
マに従う対応文書へ写像するXSLT変換は、下記によ
って与えられる。 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Tran sform"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <PoliceStations> <xsl:for-each select=".//PoliceStation"> <Station> <xsl:attribute name="identifier"> <xsl:value-of select="@identifier"/> </xsl:attribute> <xsl:for-each select="Officers"> <Officers> <xsl:for-each select="name[position() &lt; 11]"> <xsl:element name="name"> <xsl:value-of select="."/> </xsl:element> </xsl:for-each> </Officers> </xsl:for-each> </Station> </xsl:for-each> </PoliceStations> </xsl:template> </xsl:stylesheet>
【0262】摂氏温度用の第二のターゲットXMLスキ
ーマが下記によって与えられている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLschema" elementFormDefaul t="qualified" attributeFormDefault="unqualified"> <xs:element name="PoliceStations" type="PoliceStations"/> <xs:complexType name="PoliceStations"> <xs:sequence> <xs:element name="Station" type="Station" minOccurs="0" maxOccurs="u nbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="Station"> <xs:sequence> <xs:element name="Officers" type="Officers"/> </xs:sequence> <xs:attribute name="identifier" type="xs:string"/> </xs:complexType> <xs:complexType name="Officers"> <xs:sequence> <xs:element name="name" type="xs:string" minOccurs="10" maxOccurs="u nbounded"/> </xs:sequence> </xs:complexType> </xs:schema>
【0263】表129、130に基づくと、ソーススキ
ーマに従っているXML文書を第二のターゲットスキー
マに従う対応文書へ写像するXSLT変換は、下記によ
って与えられる。 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Tran sform"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <PoliceStations> <xsl:for-each select=".//PoliceStation"> <Station> <xsl:attribute name="identifier"> <xsl:value-of select="@identifier"/> </xsl:attribute> <xsl:for-each select="Officers"> <Officers> <xsl:for-each select="name"> <xsl:element name="name"> <xsl:value-of select="."/> </xsl:element> </xsl:for-each> </Officers> </xsl:for-each> <xsl:call-template name="generate_officer"> <xsl:with-param name="so_far" select="count(name)"/> </xsl:call-template> </Station> </xsl:for-each> </PoliceStations> </xsl:template> <xsl:template name="generate_officer"> <xsl:param name="so_far"/> <xsl:if test="$so_far &lt; 10"> <bar> </bar> <xsl:call-template name="generate_officer"> <xsl:with-param name="so_far" select="$so_far + 1"/> </xsl:call-template> </xsl:if> </xsl:template> </xsl:stylesheet>
【0264】摂氏温度用の第三のターゲットXMLスキ
ーマが下記によって与えられている。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLschema" elementFormDefaul t="qualified" attributeFormDefault="unqualified"> <xs:element name="PoliceStations" type="PoliceStations"/> <xs:complexType name="PoliceStations"> <xs:sequence> <xs:element name="Station" type="Station" minOccurs="0" maxOccurs="u nbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="Station"> <xs:sequence> <xs:element name="Officers" type="Officers"/> </xs:sequence> <xs:attribute name="identifier" type="xs:string"/> </xs:complexType> <xs:complexType name="Officers"> <xs:sequence> <xs:element name="name" type="xs:string" minOccurs="10" maxOccurs="2 0"/> </xs:sequence> </xs:complexType> </xs:schema>
【0265】表129、130に基づくと、ソーススキ
ーマに従っているXML文書を第一のターゲットスキー
マに従う対応文書へ写像するXSLT変換は、下記によ
って与えられる。 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Tran sform"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <PoliceStations> <xsl:for-each select=".//PoliceStation"> <Station> <xsl:attribute name="identifier"> <xsl:value-of select="@identifier"/> </xsl:attribute> <xsl:for-each select="Officers"> <Officers> <xsl:for-each select="name[position() &lt; 11]"> <xsl:element name="name"> <xsl:value-of select="."/> </xsl:element> </xsl:for-each> </Officers> </xsl:for-each> <xsl:call-template name="generate_officer"> <xsl:with-param name="so_far" select="count(name)"/> </xsl:call-template> </Station> </xsl:for-each> </PoliceStations> </xsl:template> <xsl:template name="generate_officer"> <xsl:param name="so_far"/> <xsl:if test="$so_far &lt; 20"> <bar> </bar> <xsl:call-template name="generate_officer"> <xsl:with-param name="so_far" select="$so_far + 1"/> </xsl:call-template> </xsl:if> </xsl:template> </xsl:stylesheet>
【0266】実施詳細−SQL生成 上述の様に、且つ上記の一連の実施例を通して記載され
ている様に、本発明の好ましい実施形態によると、ソー
スRDBSからターゲットRDBSへの望ましい変換が
下記によって生成される。 (i)ソースRDBS及びターゲットRDBSを共通の
オントロジーモデルへ写像する。 (ii)そのオントロジーモデルのプロパティ用の記号
を使用して、ソースRDBSのフィールド及びターゲッ
トRDBSのフィールドをプロパティの用語で表現す
る。 (iii)ソース記号の用語によるターゲット記号用の
表現を導出する。 (iv)その表現を一つ以上のSQL問い合わせに変換
する。
【0267】共通のオントロジーモデルは、ソースRD
BS及びターゲットRDBSからの表及びフィールドを
包含することを必要とされているので、初期のオントロ
ジーモデルにクラス及びプロパティを付加することによ
って構築されることが好ましい。クラス及びプロパティ
の付加は、ユーザによって手作業で、コンピュータによ
って自動的に、またはユーザ及びコンピュータの共同に
よって半自動的に、実行され得る。
【0268】共通のオントロジーモデルが構築されてい
る間に、ソースRDBS及びターゲットRDBSの表及
びフィールドをオントロジーモデルの対応するクラス及
びプロパティと同一であるとみなすことによって、ソー
スRDBS及びターゲットRDBSからオントロジーモ
デルへの写像も構築されることが好ましい。フィールド
は、単純なプロパティかまたはプロパティの合成物かの
何れかであるとして認識されることが好ましい。
【0269】本発明の好ましい実施形態では、ソースR
DBS及びターゲットRDBSの写像の便宜を図るため
に、共通のオントロジーモデルを構築する際に、自動ユ
ーザガイダンスが提供される。具体的に言うと、ソース
RDBS及びターゲットRDBSを共通のオントロジー
モデルへ写像している間に、表に対応するクラスがオン
トロジー内で既に定義されていなければ、本発明はその
様なクラスを作成する能力をユーザに自動的に提供する
ことが好ましい。同様に、フィールドに対応するプロパ
ティがオントロジー内で既に定義されていなければ、本
発明はその様なプロパティを作成する能力をユーザに自
動的に提供することが好ましい。
【0270】本発明のこの自動ガイダンス機能は、ユー
ザが、ソースRDBS及びターゲットRDBSを写像し
ている間に、共通のオントロジーを急いで構築すること
を可能にする。
【0271】本発明の好ましい実施形態では、自動ガイ
ダンスは、与えられた表の列が写像されてよいプロパテ
ィの選択をユーザに提供するために使用される。プロパ
ティの選択は、与えられた表の列のデータ型と互換性の
あるターゲット型を有するプロパティのみを含むことが
好ましい。例えば、与えられた表の列がデータ型VARCHA
R2を有していれば、プロパティの選択はターゲット型文
字列を有するプロパティのみを含む。同様に、与えられ
た表の列が外部表への外部キーであれば、プロパティの
選択はそのターゲットが外部表に対応するクラスである
プロパティのみを含む。
【0272】本発明の好ましい実施形態では、自動ガイ
ダンスは、共通のオントロジーのクラス間における継承
を決定する際に提供される。一方を他方から継承する二
つのクラスに二つの表が写像されるべきであると本発明
が推論する状態が識別される。その様な状態は、表T1
が表T2への外部キーである主キーを含んでいる場合に
生じる。その様な状態では、本発明は、T1に対応する
クラスがT2に対応するクラスから継承すると推論する
ことが好ましい。
【0273】例えば、T1は、citizens用の表T2用の外
部キーである主キーSocial_Security_Noを有するemploy
ees用の表であってよい。Social_Security_NoがT1用の
主キー及びT2用の外部キーの両方として利用できると
いう事実は、クラスEmployeesがクラスCitizensから継
承していることを意味している。
【0274】本発明が継承関係を推論する場合は、確認
または拒否するための機会をユーザが与えられることが
好ましい。しかし、ユーザがその様な機会を与えられな
くてもよい。
【0275】ソースRDBSのフィールド及びターゲッ
トRDBSのフィールドをオントロジーモデルのプロパ
ティの用語で表現することは、表の幾つかのフィールド
の中でキーフィールドを識別することと、その識別され
たキーフィールド用の逆プロパティ記号を使用してその
キーフィールドの用語で別のフィールドを表現すること
と、によって実行されることが好ましい。例えば、1で
表示されているプロパティにキーフィールドが対応して
おり、且つ、2で表示されているプロパティに第二のフ
ィールドが対応していれば、その第一のフィールドに対
するその第二のフィールドの関係は2o1-1で表示され
る。二つ以上のキーフィールドを表が有していれば、そ
れらのキーフィールドの各々に対して記号がリストされ
て、別のフィールドがそれらのキーフィールドにどの様
に関係しているのかを示すことが好ましい。例えば、上
記の第二のフィールドもキーフィールドであれば、その
第二のフィールドに対するその第一のフィールドの関係
は1o2-1で表示され、記号2o1-1と記号1o2-1
の両方がリストされる。
【0276】ソース記号の用語によるターゲット記号用
の表現を導出することは、ターゲット記号で終わるパス
をソース記号中で検索することによって実施されること
が好ましい。例えば、ターゲット記号が3o1-1で与え
られれば、形式ao1-1のソース記号で始まり、合成物
の連鎖中における最も左のプロパティを反転させる連続
記号がその合成物の連鎖に付加されている、その様な合
成物の連鎖が形成される。従って、a-1で終わっている
記号が記号ao1-1の左に付加され、プロパティ3がそ
の連鎖の左端に現れるまでこれが続く。
【0277】記号表現をSQL問い合わせへ変換するこ
とは、実施例に関連して上記に記載されている規則1〜
7を使用することによって完遂されることが好ましい。
【0278】表をクラスに写像する時は、その表がその
クラスの総てのインスタンスを含んでいると思われるか
否かを示すフラグが設定されることが好ましい。
【0279】実施詳細−XSLT生成アルゴリズム 1.ターゲットスキーマから始まる。候補ルート要素を
識別することが最初の段階であることが好ましい。次
に、一つのその様な要素が識別されたとする。もし、二
つ以上のその様な候補が存在していれば、どれがXSL
T変換のルートであるべきかをユーザが決定することが
好ましい。この様にして<root>要素が識別されたとす
る。変換によって作り出される何れの文書も先頭タグ及
び最終タグがrootで識別されるという要求に最低でも従
うことを確立するために、次のXSLTスクリプトを作
成する。
【0280】2.オントロジーのクラスに写像されたタ
ーゲットスキーマ中の要素を識別することが次の段階で
あることが好ましい。最も簡単な事例であって且つ多分
実際上は最もしばしば遭遇される事例は、ルートそのも
のがクラス(それが、単純なクラス、コンテナクラスま
たはクロス乗積であっても)に写像されている事例であ
る。ルートそのものがクラスに写像されていなければ、
コード生成装置はクラスに写像されている要素に遭遇す
るまで数レベル下がることが好ましい。従って、クラス
に写像されていない要素は、クラスへの写像が始まる位
置まで、正しい順序で、上記の<root>タグ同士の間のX
SLT中に配置されるべきことが好ましい。
【0281】3.本発明の内容を明快にし且つ展示する
ために、今後は、ターゲットXML文書中に現れること
を予期されており且つオントロジーのクラスに写像され
ている要素<fu>(それが、ルート要素を意味しているの
かそのルートから出ているツリー内における要素の平行
集合を意味しているのかに拘らず)の用語でXSLTス
クリプト生成アルゴリズムが記載される。この扱いは、
今後の何れの事象においても同じである。
【0282】4.このXSLT生成アルゴリズムは、下
記に詳述されている様に、条件の数に依存して異なる事
例に分かれることが好ましい。
【表131】
【0283】事例C、Dに対しては、XMLスキーマコ
ードは下記に似ていることが好ましい。 <xsd:complexType name="fus"> <xsd:sequence> <xsd:element name="fu" type="fu_view" minOccurs="0" maxOccurs="unbou nded"/> </xsd:sequence> </xsd:complexType>
【0284】事例E、Fに対しては、XMLスキーマコ
ードは下記に似ていることが好ましい。 <xsd:complexType name="fus"> <xsd:sequence> <xsd:element name="fu" type="fu_view" minOccurs="0" maxOccurs="n"> </xsd:sequence> </xsd:complexType>
【0285】事例G、Hに対しては、XMLスキーマコ
ードは下記に似ていることが好ましい。 <xsd:complexType name="fus"> <xsd:sequence> <xsd:element name="fu" type="fu_view" minOccurs="0" maxOccurs="n"> </xsd:sequence> </xsd:complexType>
【0286】<for-each>タグ同士の間に何が現れるべき
かについての規則に関しては、下記の段階5を参照のこ
と。 事例A: <fu> <xsl:for-each select=".//foo[position() = 1]"> </xsl:for-each> </fu>
【0287】
【0288】
【0289】
【0290】 事例E: <xsl:template match="/"> <fus> <xsl:call-template name="find_foos1"> <xsl:with-param name="so_far" select="0"/> </xsl:call-template> </fus> </xsl:template> <xsl:template name="find_foos1"> <xsl:param name="so_far"/> <xsl:if test="$so_far &lt; n+1"> <xsl:for-each select=".//foos1/foo"> <xsl:if test="$so_far+position() &lt; n+1"> <fu> </fu> </xsl:if> </xsl:for-each> </xsl:if> <xsl:call-template name="find_foos2"> <xsl:with-param name="so_far" select="$so_far+count(.//foos1/foo)" /> </xsl:call-template> </xsl:template> <xsl:template name="find_foos2"> <xsl:param name="so_far"/> <xsl:if test="$so_far &lt; n+1"> <xsl: for-each select=".//foos2/foo"> <xsl:if test="$so_far+position() &lt; n+1"> <fu> </fu> </xsl:if> </xsl:for-each> </xsl:if> <xsl:call-template name="find_foos3"> <xsl:with-param name="so_far" select="$so_far+count(.//foos2/foo)" /> </xsl:call-template> </xsl:template> <xsl:template name="find_foosk"> <xsl:param name="so_far"/> <xsl:if test="$so_far &lt; n+1"> <xsl:for-each select=".//foosn/foo"> <xsl:if test="$so_far+position() &lt; n+1"> <fu> </fu> </xsl:if> </xsl:for-each> </xsl:if> </xsl:template>
【0291】 事例F: <xsl:template match="/"> <fus> <xsl:call-template name="find_foo1"> <xsl:with-param name="so_far" select="0"/> </xsl:call-template> </fus> </xsl:template> <xsl:template name="find_foo1"> <xsl:param name="so_far"/> <xsl:if test="$so_far &lt; n+1"> <xsl:for-each select=".//foo1 "> <xsl:if test="$so_far+position() &lt; n+1"> <fu> </fu> </xsl:if> </xsl:for-each> </xsl:if> <xsl:call-template name="find_foo2"> <xsl:with-param name="so_far" select="$so_far+count(.//foo1)"/> </xsl:call-template> </xsl:template> <xsl :template name="find_foo2"> <xsl:param name="so_far"/> <xsl:if test="$so_far &lt; n+1"> <xsl:for-each select=".//foo2"> <xsl:if test="$so_far+position() &lt; n+1"> <fu> </fu> </xsl:if> </xsl:for-each> </xsl:if> <xsl:call-template name="find_foo3"> <xsl:with-param name="so_far" select="$so_far+count(.//foo2)"/> </xsl:call-template> </xsl:template> <xsl:template name="find_fook"> <xsl:param name="so_far"/> <xsl:if test="$so_far &lt; n+1"> <xsl: for-each select=".//fook"> <xsl:if test="$so_far+position() &lt; n+1"> <fu> </fu> </xsl:if> </xsl:for-each> </xsl:if> </xsl:template>
【0292】 事例G: <xsl:template match="/"> <fus> <xsl:call-template name="find_foos1"> <xsl:with-param name="so_far" select="0"/> </xsl:call-template> </fus> </xsl:template> <xsl:template name="find_foos1"> <xsl:param name="so_far"/> <xsl:if test="$so_far &lt; n+1"> <xsl:for-each select=".//foos1/foo"> <xsl:if test="$so_far+position() &lt; n+1"> <fu> </fu> </xsl:if> </xsl:for-each> </xsl:if> <xsl:call-template name="find_foos2"> <xsl:with-param name="so_far" select="$so_far+count(.//foos1/foo)" /> </xsl:call-template> </xsl:template> <xsl:template name="find foos2"> <xsl:param name="so_far"/> <xsl:if test="$so_far &lt; n+1"> <xsl:for-each select=".//foos2/foo"> <xsl:if test="$so_far+position() &lt; n+1"> <fu> </fu> </xsl:if> </xsl:for-each> </xsl:if> <xsl:call-template name="find_foos3"> <xsl:with-param name="so_far" select="$so_far+count(.//foos2/foo)" /> </xsl:call-template> </xsl:template> <xsl:template name="find_foosn"> <xsl:param name="so_far"/> <xsl:if test="$so_far &lt; k+1"> <xsl:for-each select=".//foosn/foo"> <xsl:if test="$so_far+position() &lt; n+1"> <fu> </fu> </xsl:if> </xsl:for-each> </xsl:if> <xsl:call-template name="generate_fus"> <xsl:with-param name="so_far" select="$so_far+count(.//foosk/foo)" /> </xsl:call-template> </xsl:template> <xsl:template name="generate_fus"> <xsl:param name="so_far"/> <xsl:if test="$so_far &lt; m"> <fu> </fu> <xsl:call-template name="generate_fus"> <xsl:with-param name="so_far" select="$so_far + 1"/> </xsl:call-template> </xsl:if> </xsl:template>
【0293】 事例H: <xsl:template match="/"> <fus> <xsl:call-template name="find_foo1"> <xsl:with-param name="so_far" select="0"/> </xsl:call-template> </fus> </xsl:template> <xsl:template name="find_foo1"> <xsl:param name="so_far"/> <xsl:if test="$so_far &lt; n+1"> <xsl:for-each select=".//foo1"> <xsl:if test="$so_far+position() &lt; n+1"> <fu> </fu> </xsl:if> </xsl:for-each> </xsl:if> <xsl:call-template name="find_foo2"> <xsl:with-param name="so_far" select="$so_far+count(.//foo1)"/> </xsl:call-template> </xsl:template> <xsl:template name="find_foo2"> <xsl:param name="so_far"/> <xsl:if test="$so_far &lt; n+1"> <xsl:for-each select=".//foo2"> <xsl:if test="$so_far+position() &lt; n+1"> <fu> </fu> </xsl:if> </xsl:for-each> </xsl:if> <xsl:call-template name="find_foo3"> <xsl:with-param name="so_far" select="$so_far+count(.//foo2)"/> </xsl:call-template> </xsl:template> <xsl:template name="find_foon"> <xsl:param name="so_far"/> <xsl:if test="$so_far &lt; k+1"> <xsl:for-each select=".//foon"> <xsl:if test="$so_far+position() &lt; n+1"> <fu> </fu> </xsl:if> </xsl:for-each> </xsl:if> <xsl:call-template name="generate_fus"> <xsl:with-param name="so_far" select="$so_far+count(.//fook)"/> </xsl:call-template> </xsl:template> <xsl:template name="generate_fus"> <xsl:param name="so_far"/> <xsl:if test="$so_far &lt; m"> <fu> </fu> <xsl:call-template name="generate_fus"> <xsl:with-param name="so_far" select="$so_far + 1"/> </xsl:call-template> </xsl:if> </xsl:template>
【0294】5.次に、上記に段階4で詳述されている
通りにクラスが処理されたとする。今後は、XSLT生
成アルゴリズムはクラスよりもむしろプロパティと連動
することによって進むことが好ましい。XSLT生成ア
ルゴリズムは再び事例に分けられる。<fu>タグ及び</fu
>タグが処理されて、今や主な問題は<fu>のプロパティ
である要素<bar>を処理することである、とする。
【0295】Sequenceリスト <fu>のプロパティがターゲットスキーマ中のsequence複
合型中にリストされているとする。明確さのために、複
合型fuがオントロジーのクラスFooに写像されており、
要素bariが夫々のプロパティFoo.bariに写像されている
とする。更に、オントロジーのクラスFooに写像するX
Path様式fu1をソースXMLスキーマが有してお
り、関係のあるプロパティパスに更なる子様式fu1/barr
1、fu1/barr2等が写像しているとする。
【0296】本発明の好ましい実施形態では、異なる最
大出現回数及び最小出現回数を処理するためにコードの
特定の部分が生成される。コードのその様な部分は、上
記に記載されている様に生成された<fu>タグと</fu>タ
グとの内側に生成される。コードのその様な部分を作り
出すための一般的な規則は、下記の表132の通りであ
ることが好ましい。
【表132】
【0297】
【0298】
【0299】
【0300】 事例L: <xsl:for-each select="barr"> <bar> <xsl:value-of select="."/> </bar> </xsl:for-each> <xsl:call-template name="generate_bar"> <xsl:with-param name="so_far" select="count(barr)"/> </xsl:call-template> <xsl:template name="generate_bar"> <xsl:param name="so_far"/> <xsl:if test="$so_far &lt; m"> <bar> </bar> <xsl:call-template name="generate_bar"> <xsl:with-param name="so_far" select="$so_far + 1"/> </xsl:call-template> </xsl:if> </xsl:template>
【0301】 事例M: <xsl:for-each select="barr[position() &lt; n+1]"> <bar> <xsl:value-of select="."/> </bar> </xsl:for-each> <xsl:call-template name="generate_bar"> <xsl:with-param name="so_far" select="count(barr)"/> </xsl:call-template> <xsl:template name="generate_bar"> <xsl:param name="so_far"/> <xsl:if test="$so_far &lt; m"> <bar> </bar> <xsl:call-template name="generate_bar"> <xsl:with-param name="so_far" select="$so_far + 1"/> </xsl:call-template> </xsl:if> </xsl:template>
【0302】
【0303】代表例として、複合型がターゲットスキー
マ中で下記の様に現れるとする。 <xs:complexType name="fu"> <xs:sequence> <xs:element name="bar1" type="xs:string" /> <xs:element name="bar2" type="xs:string" minOccurs="0" maxOccurs="7"/> <xs:element name="bar3" type="xs:string" minOccurs="1" maxOccurs="8"/> <xs:element name="bar4" type="xs:string" minOccurs="3" maxOccurs="unbo unded"/> <xs:element name="bar5" type="xs:string" minOccurs="0" maxOccurs="unbo unded"/> <xs:element name="barn" type="xs:string" /> </xs:sequence> </xs:complexType>
【0304】その場合には、上記の事例に基づいて、次
のXSLTスクリプトが生成される。 <fu> <barr1> <xsl:value-of select="bar1"/> </barr1> <xsl:for-each select="bar2[position() &lt; 5]"> <barr2> <xsl:value-of select="."/> </barr2> </xsl:for-each> <xsl:for-each select="bar3[position() &lt; 9]"> <barr3> <xsl:value-of select="."/> </barr3> </xsl:for-each> <xsl:call-template name="generate_barr3"> <xsl:with-param name="so_far" select="count(bar3)"/> </xsl:call-template> <xsl:for-each select="bar4"> <barr4> <xsl:value-of select="."/> </barr4> </xsl:for-each> <xsl:call-template name="generate_barr4"> <xsl:with-param name="so_far" select="count(bar4)"/> </xsl:call-template> <xsl:for-each select="bar5"> <barr5> <xsl:value-of select="."/> </barr5> </xsl:for-each> </xsl:if> </fu> </xsl:template> <xsl:template match="text()|@*"/> <xsl:template name="generate_barr3"> <xsl:param name="so_far"/> <xsl:if test="$so_far &lt; 1"> <barr3> </barr3> <xsl:call-template name="generate_barr3"> <xsl:with-param name="so_far" select="$so_far + 1"/> </xsl:call-template> </xsl:if> </xsl:template> <xsl:template name="generate_barr4"> <xsl:param name="so_far"/> <xsl:if test="$so_far &lt; 3"> <barr4> </barr4> <xsl:call-template name="generate_barr4"> <xsl:with-param name="so_far" select="$so_far + 1"/> </xsl:call-template> </xsl:if> </xsl:template>
【0305】Choiceリスト <fu>のプロパティがターゲットスキーマ中のchoice複合
型中にリストされているとする。また、上述の様に、fu
がオントロジーのクラスFooに写像されており、bari
各々がプロパティFoo.bariに写像されているとする。更
に、上述の様に、オントロジーのクラスFooに写像する
XPath様式fooをソースXMLスキーマが有してお
り、関係のあるプロパティパスに更なる子様式foo/barr
1、foo/barr2等が写像しているとする。
【0306】ターゲットchoiceブロックに関係するXS
LTスクリプトを作り出すための一般的な規則は、下記
の通りであることが好ましい。タグ<xsl:choose>及びタ
グ</xsl:choose>で始まる。choiceシーケンス中の各々
の要素に対して、<xsl:when test="barr">、</xsl:when
>をchooseブロック中に挿入し、sequenceブロックに対
して上記に正確に記載されている様にその要素の出現回
数制約に適切なコードをそのchooseブロック中に挿入
し、必要であれば新しいテンプレートを作成する。最後
に、minOccurs="0"を有する要素がそのchoiceブロック
中に存在していなければ、そのchoiceブロック中で任意
のタグ<barr>をでたらめに選択して、このタグ<barr>を
最終の</xsl:choose>、<xsl:otherwise>、<barr>、</ba
rr>、</xsl:otherwise>の直前でXSLT中に挿入す
る。
【0307】代表例として、複合型がターゲットスキー
マ中で下記の様に現れるとする。 <xs:choice> <xs:element name="bar1" type="xs:string" /> <xs:element name="bar2" type="xs:string" minOccurs="0" maxOccurs="7"/> <xs:element name="bar3" type="xs:string" minOccurs="1" maxOccurs="8"/> <xs:element name="bar4" type="xs:string" minOccurs="3" maxOccurs="unbo unded"/> <xs:element name="bar5" type="xs:string" minOccurs="0" maxOccurs="unbo unded"/> <xs:element name="barn" type="xs:string" /> </xs:choice>
【0308】その場合には、上記の事例に基づいて、次
のXSLTスクリプトが生成される。 <fu> <xsl:choose> <xsl:when test="bar1"> <barr1> <xsl:value-of select="bar1"/> </barr1> </xsl:when> <xsl:when test="bar2"> <xsl:for-each select="bar2[position() &lt; 8]"> <barr2> <xsl:value-of select="."/> </barr2> </xsl:for-each> </xsl:when> <xsl:when test="bar3"> <xsl:for-each select="bar3[position() &lt; 9]"> <barr3> <xsl:value-of select="."/> </barr3> </xsl:for-each> <xsl:call-template name="generate_barr3"> <xsl:with-param name="so_far" select="count(bar3)"/> </xsl:call-template> </xsl:when> <xsl:when test="bar4"> <xsl:for-each select="bar4"> <barr4> <xsl:value-of select="."/> </barr4> </xsl:for-each> <xsl:call-template name="generate_barr4"> <xsl:with-param name="so_far" select="count(bar4)"/> </xsl:call-template> </xsl:when> <xsl:when test="bar5"> <xsl:for-each select="bar5"> <barr5> <xsl:value-of select="."/> </barr5> </xsl:for-each> </xsl:when> <xsl:otherwise> </xsl:otherwise> </xsl:choose> </fu> </xsl:template> <xsl:template match="text()|@*"/> <xsl:template name="generate_barr3"> <xsl:param name="so_far"/> <xsl:if test="$so_far &lt; 1"> <barr3> </barr3> <xsl:call-template name="generate_barr3"> <xsl:with-param name="so_far" select="$so_far + 1"/> </xsl:call-template> </xsl:if> </xsl:template> <xsl:template name="generate_barr4"> <xsl:param name="so_far"/> <xsl:if test="$so_far &lt; 3"> <barr4> </barr4> <xsl:call-template name="generate_barr4"> <xsl:with-param name="so_far" select="$so_far + 1"/> </xsl:call-template> </xsl:if> </xsl:template>
【0309】Allリスト <fu>のプロパティがターゲットスキーマ中のall複合型
中にリストされているとする。また、上述の様に、foo
がオントロジーのクラスFooに写像されており、bari
各々がプロパティFoo.bariに写像されているとする。更
に、オントロジーのクラスFooに写像するXPath様
式fooをソースXMLスキーマが有しており、関係のあ
るプロパティパスに更なる子様式foo/barr1、foo/barr2
等が写像しているとする。
【0310】本発明の好ましい実施形態では、ターゲッ
トタグに関係する各々のソースタグの存在を下記によっ
て検査することが一般的な規則である。
【0311】何れかの要素がminOccurs="1"を有してい
れば、否定検査も行われることが好ましい。
【0312】代表例として、複合型がターゲットスキー
マ中で下記の様に現れるとする。 <xs:complexType name="bar"> <xs:all> <xs:element name="bar2" type="xs:string" minOccurs="0" maxOccurs="1" /> <xs:element name="bar3" type="xs:string" minOccurs="1" maxOccurs="1" /> </xs:all> </xs:complexType>
【0313】その場合には、次のXSLTスクリプトが
生成される。
【0314】6.本発明の好ましい実施形態では、foo/
bar1、foo/bar2等の要素が段階5で上記の通りに処理さ
れていると、bari要素の各々に関係付けられているプロ
パティ分だけ総てのものが再帰的方法で繰り返す。つま
り、ターゲットXMLスキーマがbar1、bar2等の子であ
る更なるタグを有していれば、これらのタグの各々がba
r1、bar2等の夫々のターゲットクラスのプロパティとし
て処理され且つ上記の規則が再帰的に適用されることが
好ましい。
【0315】追加的考察 上記の説明を読めば、当業者は、記載されている方法及
びシステムに適用され得る容易に分かる多くの変形が存
在することを理解できる。本発明が適用される第一の変
形は、ソースリレーショナルデータベースの表が二つ以
上のデータベース中に存在する構成である。そのソース
データベースがOracleデータベースであれば、本発明は
Oracleのクロス−データベース結合を使用することによ
って作動することが好ましい。別の実施形態において、
本発明は、第一のソースデータベース用の第一のSQL
問い合わせを生成するために適用されることができ、且
つ、その結果を第二のソースデータベース用の第二のS
QL問い合わせを生成するために使用することができ
る。一緒に使用されるこれら二つの問い合わせは、ター
ゲットデータベースを提供することができる。
【0316】上述の説明では、本発明はその特定の代表
的実施形態に関して記載された。しかし、特許請求の範
囲で述べられている通りの本発明のもっと広い真意及び
範囲から逸脱することなく、それら特定の代表的実施形
態に種々の修正及び変更が施されてよいことは、明らか
である。従って、明細書及び図面は、制約的な意味より
も説明的な意味で考慮に入れられるべきである。
【図面の簡単な説明】
【図1】本発明の好ましい実施形態によって、あるスキ
ーマから別のスキーマへデータを変換するための変換を
導出する方法の簡略化された流れ図である。
【図2】本発明の好ましい実施形態によって、あるスキ
ーマから別のスキーマへデータを変換するための変換を
導出するシステムの簡略化されたブロック図である。
【図3】本発明の好ましい実施形態によって、一つ以上
のデータスキーマが埋め込まれ得る共通のオントロジー
モデルを構築する方法の簡略化された流れ図である。
【図4】本発明の好ましい実施形態によって、一つ以上
のデータスキーマが埋め込まれ得る共通のオントロジー
モデルを構築するシステムの簡略化されたブロック図で
ある。
【図5】本発明の好ましい実施形態による、RDBSか
らオントロジーモデルへの写像の簡略化された図であ
る。
【図6】本発明の好ましい実施形態による、RDBSか
らオントロジーモデルへの写像の第二の簡略化された図
である。
【図7】本発明の好ましい実施形態による、制約及び結
合を含むリレーショナルデータベース変換の簡略化され
た図である。
【図8】Tibcoの様なEAI製品内でXSLTスク
リプトを展開するための、本発明の好ましい実施形態の
使用の簡略化された図である。
【図9】本発明の好ましい実施形態によって、あるリレ
ーショナルデータベーススキーマから別のリレーショナ
ルデータベーススキーマへデータを変換するソフトウェ
アアプリケーション用のユーザインタフェースの図であ
る。
【図10】本発明の好ましい実施形態によって、あるリ
レーショナルデータベーススキーマから別のリレーショ
ナルデータベーススキーマへデータを変換するソフトウ
ェアアプリケーション用のユーザインタフェースの図で
ある。
【図11】本発明の好ましい実施形態によって、あるリ
レーショナルデータベーススキーマから別のリレーショ
ナルデータベーススキーマへデータを変換するソフトウ
ェアアプリケーション用のユーザインタフェースの図で
ある。
【図12】本発明の好ましい実施形態によって、あるリ
レーショナルデータベーススキーマから別のリレーショ
ナルデータベーススキーマへデータを変換するソフトウ
ェアアプリケーション用のユーザインタフェースの図で
ある。
【図13】本発明の好ましい実施形態によって、あるリ
レーショナルデータベーススキーマから別のリレーショ
ナルデータベーススキーマへデータを変換するソフトウ
ェアアプリケーション用のユーザインタフェースの図で
ある。
【図14】本発明の好ましい実施形態によって、図9〜
13に示されているソフトウェアアプリケーションへR
DBSをインポートするアプリケーション用のユーザイ
ンタフェースの図である。
【図15】本発明の好ましい実施形態によって、あるX
MLスキーマから別のXMLスキーマへデータを変換す
るソフトウェアアプリケーション用のユーザインタフェ
ースの図である。
【図16】本発明の好ましい実施形態によって、あるX
MLスキーマから別のXMLスキーマへデータを変換す
るソフトウェアアプリケーション用のユーザインタフェ
ースの図である。
【図17】本発明の好ましい実施形態によって、あるX
MLスキーマから別のXMLスキーマへデータを変換す
るソフトウェアアプリケーション用のユーザインタフェ
ースの図である。
【図18】本発明の好ましい実施形態によって、あるX
MLスキーマから別のXMLスキーマへデータを変換す
るソフトウェアアプリケーション用のユーザインタフェ
ースの図である。
【図19】本発明の好ましい実施形態によって、あるX
MLスキーマから別のXMLスキーマへデータを変換す
るソフトウェアアプリケーション用のユーザインタフェ
ースの図である。
【図20】本発明の好ましい実施形態によって、あるX
MLスキーマから別のXMLスキーマへデータを変換す
るソフトウェアアプリケーション用のユーザインタフェ
ースの図である。
【図21】本発明の好ましい実施形態によって、あるX
MLスキーマから別のXMLスキーマへデータを変換す
るソフトウェアアプリケーション用のユーザインタフェ
ースの図である。
【図22】本発明の好ましい実施形態によって、あるX
MLスキーマから別のXMLスキーマへデータを変換す
るソフトウェアアプリケーション用のユーザインタフェ
ースの図である。
【図23】本発明の好ましい実施形態によって、あるX
MLスキーマから別のXMLスキーマへデータを変換す
るソフトウェアアプリケーション用のユーザインタフェ
ースの図である。
【図24】本発明の好ましい実施形態によって、あるX
MLスキーマから別のXMLスキーマへデータを変換す
るソフトウェアアプリケーション用のユーザインタフェ
ースの図である。
【図25】本発明の好ましい実施形態によって、あるX
MLスキーマから別のXMLスキーマへデータを変換す
るソフトウェアアプリケーション用のユーザインタフェ
ースの図である。
【図26】本発明の好ましい実施形態によって、あるX
MLスキーマから別のXMLスキーマへデータを変換す
るソフトウェアアプリケーション用のユーザインタフェ
ースの図である。
【図27】本発明の好ましい実施形態によって、あるX
MLスキーマから別のXMLスキーマへデータを変換す
るソフトウェアアプリケーション用のユーザインタフェ
ースの図である。
【図28】本発明の好ましい実施形態によって、あるX
MLスキーマから別のXMLスキーマへデータを変換す
るソフトウェアアプリケーション用のユーザインタフェ
ースの図である。
【図29】本発明の好ましい実施形態によって、あるX
MLスキーマから別のXMLスキーマへデータを変換す
るソフトウェアアプリケーション用のユーザインタフェ
ースの図である。
【図30】本発明の好ましい実施形態によって、あるX
MLスキーマから別のXMLスキーマへデータを変換す
るソフトウェアアプリケーション用のユーザインタフェ
ースの図である。
【図31】本発明の好ましい実施形態によって、あるX
MLスキーマから別のXMLスキーマへデータを変換す
るソフトウェアアプリケーション用のユーザインタフェ
ースの図である。
【図32】本発明の好ましい実施形態によって、あるX
MLスキーマから別のXMLスキーマへデータを変換す
るソフトウェアアプリケーション用のユーザインタフェ
ースの図である。
【図33】第一実施例に対応するオントロジーモデルの
図である。
【図34】第二実施例に対応するオントロジーモデルの
図である。
【図35】第三実施例に対応するオントロジーモデルの
図である。
【図36】第四実施例に対応するオントロジーモデルの
図である。
【図37】第五及び第六実施例に対応するオントロジー
モデルの図である。
【図38】第七実施例に対応するオントロジーモデルの
図である。
【図39】第八実施例に対応するオントロジーモデルの
図である。
【図40】第九実施例に対応するオントロジーモデルの
図である。
【図41】第一〇実施例に対応するオントロジーモデル
の図である。
【図42】第一一実施例に対応するオントロジーモデル
の図である。
【図43】第一二及び一七実施例に対応するオントロジ
ーモデルの図である。
【図44】第一三実施例に対応するオントロジーモデル
の図である。
【図45】第一四実施例に対応するオントロジーモデル
の図である。
【図46】第二二実施例に対応するオントロジーモデル
の図である。
【図47】第二三実施例に対応するオントロジーモデル
の図である。
【符号の説明】
200…システム、210…スキーマ受取装置、220
…オントロジー受取装置/構築装置、230…写像処理
装置、260…変換生成装置、400…システム、42
0…オントロジー受取装置、430…オントロジー構築
装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ズィヴ・ズィー・ヘルマン イスラエル国、92504 エルサレム、アル フ シムホニー ストリート 6/1 (72)発明者 マーセル・ズヴィ・シュライバー イスラエル国、96406 エルサレム、アリ ー ドルズィン ストリート 26シー (72)発明者 トム・ワイ・ユーヴァル イスラエル国、96306 エルサレム、ラビ ー ビニャミン ストリート 1/10 Fターム(参考) 5B082 GA07 (54)【発明の名称】 あるデータスキーマから別のデータスキーマへデータを変換するための変換を導出する方法及び システム、データスキーマが埋め込まれ得るオントロジーモデルを構築する方法及びシステム、 あるデータスキーマから別のデータスキーマへデータを変換するための命令プログラムを収録し ておりコンピュータが読込み可能な一つ以上の媒体を含む製品並びにデータスキーマが埋め込ま れ得る共通のオントロジーモデルを構築するための命令プログラムを収録しておりコンピュータ が読込み可能な一つ以上の媒体を含む製品

Claims (140)

    【特許請求の範囲】
  1. 【請求項1】 あるデータスキーマから別のデータスキ
    ーマへデータを変換するための変換を導出する方法であ
    って、 ソースデータスキーマとターゲットデータスキーマとを
    受け取ることと、 前記ソースデータスキーマをオントロジーモデルへ写像
    することと、 前記ターゲットデータスキーマを前記オントロジーモデ
    ルへ写像することと、 前記オントロジーモデルを使用して、前記ソースデータ
    スキーマに従っているデータを前記ターゲットデータス
    キーマに従うデータへ変換するための変換を導出するこ
    ととを具備する方法。
  2. 【請求項2】 前記ソースデータスキーマ及び前記ター
    ゲットデータスキーマの少なくとも一つを外部形式から
    内部形式へ変換することを更に具備する請求項1に記載
    の方法。
  3. 【請求項3】 前記オントロジーモデルを受け取ること
    を更に具備する請求項1に記載の方法。
  4. 【請求項4】 前記オントロジーモデルを外部形式から
    内部形式へ変換することを更に具備する請求項1に記載
    の方法。
  5. 【請求項5】 前記オントロジーモデルを生成すること
    を更に具備する請求項1に記載の方法。
  6. 【請求項6】 初期のオントロジーモデルを受け取るこ
    とを更に具備し、前記生成は前記初期のオントロジーモ
    デルから前記オントロジーモデルを生成する請求項5に
    記載の方法。
  7. 【請求項7】 前記初期のオントロジーモデルを外部形
    式から内部形式へ変換することを更に具備する請求項6
    に記載の方法。
  8. 【請求項8】 前記ソースデータスキーマに従っている
    データを前記ターゲットデータスキーマに従うデータへ
    変換する実行可能なプログラムコードを生成することを
    更に具備する請求項1に記載の方法。
  9. 【請求項9】 前記ソースデータスキーマはソースデー
    タの表を記述しているソース表スキーマであり、前記タ
    ーゲットデータスキーマはターゲットデータの表を記述
    しているターゲット表スキーマであり、前記ソース表ス
    キーマ及び前記ターゲット表スキーマは列を有する少な
    くとも一つの表を各々記述している請求項1に記載の方
    法。
  10. 【請求項10】 前記ソース表スキーマはソースリレー
    ショナルデータベースの表を記述しているソースリレー
    ショナルデータベーススキーマであり、前記ターゲット
    表スキーマはターゲットリレーショナルデータベースの
    表を記述しているターゲットリレーショナルデータベー
    ススキーマであり、前記変換はSQL問い合わせである
    請求項9に記載の方法。
  11. 【請求項11】 ソースデータスキーマの前記写像及び
    ターゲットデータスキーマの前記写像は、 少なくとも一つの表に対応する前記オントロジーモデル
    中における少なくとも一つのクラスを識別することと、 表の少なくとも一つの列に対応する前記オントロジーモ
    デル中における少なくとも一つのプロパティまたはプロ
    パティの合成物を識別することとを各々具備する請求項
    10に記載の方法。
  12. 【請求項12】 前記導出は、 前記オントロジーモデルのプロパティを記号で標識付け
    することと、 前記ソースリレーショナルデータベーススキーマ中にお
    ける少なくとも一つの列を少なくとも一つのソース記号
    へ変換することと、 前記ターゲットリレーショナルデータベーススキーマ中
    における少なくとも一つの列を少なくとも一つのターゲ
    ット記号へ変換することと、 前記少なくとも一つのターゲット記号を少なくとも一つ
    のソース記号の用語で表現することとを具備する請求項
    11に記載の方法。
  13. 【請求項13】 前記表現はプロパティの合成物を含む
    表現を使用する請求項12に記載の方法。
  14. 【請求項14】 前記オントロジーモデル中のプロパテ
    ィ間に少なくとも一つの依存関係が存在し、前記導出は
    前記オントロジーモデル中のプロパティ間における前記
    少なくとも一つの依存関係をターゲットリレーショナル
    データベースの列とソースリレーショナルデータベース
    の列との間における少なくとも一つの依存関係であると
    解釈することを更に具備し、前記表現はターゲットリレ
    ーショナルデータベースの列とソースリレーショナルデ
    ータベースの列との間に前記少なくとも一つの依存関係
    を組み入れる請求項12に記載の方法。
  15. 【請求項15】 前記表現は算術演算を含む表現を使用
    する請求項14に記載の方法。
  16. 【請求項16】 前記表現は文字列演算を含む表現を使
    用する請求項14に記載の方法。
  17. 【請求項17】 少なくとも一つのターゲットリレーシ
    ョナルデータベースの表を設定するために、少なくとも
    一つのソースリレーショナルデータベースの表に前記S
    QL問い合わせを適用することを更に具備する請求項1
    0に記載の方法。
  18. 【請求項18】 前記少なくとも一つのソースリレーシ
    ョナルデータベースの表が単一のデータベース中に存在
    する請求項17に記載の方法。
  19. 【請求項19】 前記少なくとも一つのソースリレーシ
    ョナルデータベースの表が複数のデータベース中に存在
    する請求項17に記載の方法。
  20. 【請求項20】 前記ソースデータスキーマはソース文
    書を記述しているソース文書スキーマであり、前記ター
    ゲットデータスキーマはターゲット文書を記述している
    ターゲット文書スキーマである請求項1に記載の方法。
  21. 【請求項21】 前記ソース文書スキーマはソースXM
    L文書を記述しているソースDTDであり、前記ターゲ
    ット文書スキーマはターゲットXML文書を記述してい
    るターゲットDTDであり、前記ソースDTD及び前記
    ターゲットDTDは少なくとも一つのXML要素または
    XML属性を各々記述している請求項20に記載の方
    法。
  22. 【請求項22】 前記変換はXQueryである請求項
    21に記載の方法。
  23. 【請求項23】 前記変換はXSLTスクリプトである
    請求項21に記載の方法。
  24. 【請求項24】 前記ソース文書スキーマはソースXM
    L文書を記述しているソースXMLスキーマであり、前
    記ターゲット文書スキーマはターゲットXML文書を記
    述しているターゲットXMLスキーマであり、前記ソー
    スXMLスキーマ及び前記ターゲットXMLスキーマは
    少なくとも一つのXML要素またはXML属性を有する
    少なくとも一つのXML複合型を各々記述している請求
    項20に記載の方法。
  25. 【請求項25】 前記変換はXQueryである請求項
    24に記載の方法。
  26. 【請求項26】 前記変換はXSLTスクリプトである
    請求項24に記載の方法。
  27. 【請求項27】 ソースデータスキーマの前記写像とタ
    ーゲットデータスキーマの前記写像とは、 少なくとも一つのXML複合型に対応する前記オントロ
    ジーモデル中における少なくとも一つのクラスを識別す
    ることと、 少なくとも一つのXML要素またはXML属性に対応す
    る前記オントロジーモデル中における少なくとも一つの
    プロパティまたはプロパティの合成物を識別することと
    を各々具備する請求項24に記載の方法。
  28. 【請求項28】 前記導出は、前記ソースXMLスキー
    マのXML要素及びXML属性の用語で前記ターゲット
    XMLスキーマのXML要素及びXML属性を表現する
    ことを具備する請求項24に記載の方法。
  29. 【請求項29】 前記表現はXPathパスを介して再
    帰的に実行される請求項28に記載の方法。
  30. 【請求項30】 前記オントロジーモデル中のプロパテ
    ィ間に少なくとも一つの依存関係が存在し、前記導出は
    前記オントロジーモデル中のプロパティ間における前記
    少なくとも一つの依存関係をターゲットXML要素とソ
    ースXML要素との間における少なくとも一つの依存関
    係であると解釈することを更に具備する請求項27に記
    載の方法。
  31. 【請求項31】 少なくとも一つのターゲットXML文
    書を生成するために、少なくとも一つのソースXML文
    書に前記XSLTスクリプトを適用することを更に具備
    する請求項26に記載の方法。
  32. 【請求項32】 前記少なくとも一つのソースXML文
    書が単一のデータベース中に存在する請求項31に記載
    の方法。
  33. 【請求項33】 前記少なくとも一つのソースXML文
    書が複数のデータベース中に存在する請求項31に記載
    の方法。
  34. 【請求項34】 あるデータスキーマから別のデータス
    キーマへデータを変換するための変換を導出するシステ
    ムであって、 ソースデータスキーマとターゲットデータスキーマとを
    受け取るスキーマ受取装置と、 データスキーマをオントロジーモデルへ写像する写像処
    理装置と、 前記ソースデータスキーマ及び前記ターゲットデータス
    キーマを共通のオントロジーモデルへ写像する前記写像
    処理装置によって生成される夫々のソース写像及びター
    ゲット写像に基づいて、前記ソースデータスキーマに従
    っているデータを前記ターゲットデータスキーマに従う
    データへ変換するための変換を導出する変換処理装置と
    を具備するシステム。
  35. 【請求項35】 前記ソースデータスキーマ及び前記タ
    ーゲットデータスキーマの少なくとも一つを外部形式か
    ら内部形式へ変換するスキーマ形式変換装置を更に具備
    する請求項34に記載のシステム。
  36. 【請求項36】 前記オントロジーモデルを受け取るオ
    ントロジー受取装置を更に具備する請求項34に記載の
    システム。
  37. 【請求項37】 前記オントロジーモデルを外部形式か
    ら内部形式へ変換するオントロジー形式変換装置を更に
    具備する請求項36に記載のシステム。
  38. 【請求項38】 前記オントロジーモデルを生成するオ
    ントロジー構築装置を更に具備する請求項34に記載の
    システム。
  39. 【請求項39】 初期のオントロジーモデルを受け取る
    オントロジー受取装置を更に具備しており、前記オント
    ロジー構築装置は前記初期のオントロジーモデルから前
    記オントロジーモデルを生成する請求項38に記載のシ
    ステム。
  40. 【請求項40】 前記初期のオントロジーモデルを外部
    形式から内部形式へ変換するオントロジー形式変換装置
    を更に具備する請求項39に記載のシステム。
  41. 【請求項41】 前記ソースデータスキーマに従ってい
    るデータを前記ターゲットデータスキーマに従うデータ
    へ変換する実行可能なプログラムコードを生成するプロ
    グラムコード生成装置を更に具備する請求項34に記載
    のシステム。
  42. 【請求項42】 前記ソースデータスキーマはソースデ
    ータの表を記述しているソース表スキーマであり、前記
    ターゲットデータスキーマはターゲットデータの表を記
    述しているターゲット表スキーマであり、前記ソース表
    スキーマ及び前記ターゲット表スキーマは列を有する少
    なくとも一つのデータ表を各々記述している請求項34
    に記載のシステム。
  43. 【請求項43】 前記ソース表スキーマはソースリレー
    ショナルデータベースの表を記述しているソースリレー
    ショナルデータベーススキーマであり、前記ターゲット
    表スキーマはターゲットリレーショナルデータベースの
    表を記述しているターゲットリレーショナルデータベー
    ススキーマであり、前記変換はSQL問い合わせである
    請求項42に記載のシステム。
  44. 【請求項44】 前記写像処理装置は、 少なくとも一つの表に対応する前記共通のオントロジー
    モデル中における少なくとも一つのクラスを識別するク
    ラス識別装置と、 表の少なくとも一つの列に対応する前記共通のオントロ
    ジーモデル中における少なくとも一つのプロパティまた
    はプロパティの合成物を識別するプロパティ識別装置と
    を具備する請求項43に記載のシステム。
  45. 【請求項45】 前記プロパティ識別装置は、与えられ
    た表の列に対応するかもしれない前記共通のオントロジ
    ーモデル中における少なくとも一つのプロパティの選択
    をユーザに与える請求項44に記載のシステム。
  46. 【請求項46】 前記少なくとも一つのプロパティの選
    択は、前記与えられた表の列のデータ型と互換性のある
    ターゲットを有するプロパティのみを含む請求項45に
    記載のシステム。
  47. 【請求項47】 外部表への外部キーである与えられた
    表の列に対しては、前記少なくとも一つのプロパティの
    選択は、そのターゲットが前記外部表に対応するクラス
    であるプロパティのみを含む請求項46に記載のシステ
    ム。
  48. 【請求項48】 前記変換処理装置は、 前記共通のオントロジーモデルのプロパティに記号で標
    識付けするオントロジー標識付け装置と、 前記ソースリレーショナルデータベーススキーマ中にお
    ける少なくとも一つの列を少なくとも一つのソース記号
    へ変換し、前記ターゲットリレーショナルデータベース
    スキーマ中における少なくとも一つの列を少なくとも一
    つのターゲット記号へ変換する列変換装置と、 前記少なくとも一つのターゲット記号を少なくとも一つ
    のソース記号の用語で表現する記号処理装置とを具備す
    る請求項43に記載のシステム。
  49. 【請求項49】 前記記号処理装置はプロパティの合成
    物を含む表現を使用する請求項48に記載のシステム。
  50. 【請求項50】 前記オントロジーモデル中のプロパテ
    ィ間に少なくとも一つの依存関係が存在し、前記変換処
    理装置は前記オントロジーモデル中のプロパティ間にお
    ける前記少なくとも一つの依存関係をターゲットリレー
    ショナルデータベースの列とソースリレーショナルデー
    タベースの列との間における少なくとも一つの依存関係
    であると解釈する依存関係処理装置を更に具備し、前記
    記号処理装置はターゲットリレーショナルデータベース
    の列とソースリレーショナルデータベースの列との間に
    前記少なくとも一つの依存関係を組み入れる請求項48
    に記載のシステム。
  51. 【請求項51】 前記記号処理装置は算術演算を含む表
    現を使用する請求項50に記載のシステム。
  52. 【請求項52】 前記記号処理装置は文字列演算を含む
    表現を使用する請求項50に記載のシステム。
  53. 【請求項53】 少なくとも一つのソースリレーショナ
    ルデータベースの表を受け取るデータ受取装置と、 少なくとも一つのターゲットリレーショナルデータベー
    スの表を設定するために、前記少なくとも一つのソース
    リレーショナルデータベースの表に前記SQL問い合わ
    せを適用するデータ処理装置とを更に具備する請求項4
    3に記載のシステム。
  54. 【請求項54】 前記少なくとも一つのソースリレーシ
    ョナルデータベースの表が単一のデータベース中に存在
    する請求項53に記載のシステム。
  55. 【請求項55】 前記少なくとも一つのソースリレーシ
    ョナルデータベースの表が複数のデータベース中に存在
    する請求項53に記載のシステム。
  56. 【請求項56】 前記ソースデータスキーマはソース文
    書を記述しているソース文書スキーマを含んでおり、前
    記ターゲットデータスキーマはターゲット文書を記述し
    ているターゲット文書スキーマを含んでいる請求項34
    に記載のシステム。
  57. 【請求項57】 前記ソース文書スキーマはソースXM
    L文書を記述しているソースDTDであり、前記ターゲ
    ット文書スキーマはターゲットXML文書を記述してい
    るターゲットDTDであり、前記ソースDTD及び前記
    ターゲットDTDは少なくとも一つのXML要素または
    XML属性を各々記述している請求項56に記載のシス
    テム。
  58. 【請求項58】 前記変換はXQueryである請求項
    57に記載のシステム。
  59. 【請求項59】 前記変換はXSLTスクリプトである
    請求項57に記載のシステム。
  60. 【請求項60】 前記ソース文書スキーマはソースXM
    L文書を記述しているソースXMLスキーマを含んでお
    り、前記ターゲット文書スキーマはターゲットXML文
    書を記述しているターゲットXMLスキーマを含んでお
    り、前記ソースXMLスキーマ及び前記ターゲットXM
    Lスキーマは少なくとも一つのXML要素またはXML
    属性を有する少なくとも一つのXML複合型を各々含ん
    でいる請求項56に記載のシステム。
  61. 【請求項61】 前記変換はXQueryである請求項
    60に記載のシステム。
  62. 【請求項62】 前記変換はXSLTスクリプトである
    請求項60に記載のシステム。
  63. 【請求項63】 前記写像処理装置は、 少なくとも一つのXML複合型に対応する前記オントロ
    ジーモデル中における少なくとも一つのクラスを識別す
    るクラス識別装置と、 少なくとも一つのXML要素またはXML属性に対応す
    る前記オントロジーモデル中における少なくとも一つの
    プロパティまたはプロパティの合成物を識別するプロパ
    ティ識別装置とを具備する請求項60に記載のシステ
    ム。
  64. 【請求項64】 前記変換処理装置は、前記ソースXM
    LスキーマのXML要素及びXML属性の用語で前記タ
    ーゲットXMLスキーマのXML要素及びXML属性を
    表現するXML処理装置を具備する請求項60に記載の
    システム。
  65. 【請求項65】 前記XML処理装置はXPathパス
    を介して再帰的に作動する請求項64に記載のシステ
    ム。
  66. 【請求項66】 前記オントロジーモデル中のプロパテ
    ィ間に少なくとも一つの依存関係が存在し、前記変換処
    理装置は前記オントロジーモデル中のプロパティ間にお
    ける前記少なくとも一つの依存関係をターゲットXML
    要素またはターゲットXML属性とソースXML要素ま
    たはソースXML属性との間における少なくとも一つの
    依存関係であると解釈する依存関係処理装置を更に具備
    しており、前記XML処理装置はターゲットXML要素
    またはターゲットXML属性とソースXML要素または
    ソースXML属性との間に前記少なくとも一つの依存関
    係を組み入れる請求項64に記載のシステム。
  67. 【請求項67】 少なくとも一つのソースXML文書を
    受け取るデータ受取装置と、 少なくとも一つのターゲットXML文書を生成するため
    に、前記少なくとも一つのソースXML文書に前記XS
    LTスクリプトを適用するデータ処理装置とを更に具備
    する請求項60に記載のシステム。
  68. 【請求項68】 前記少なくとも一つのソースXML文
    書が単一のデータベース中に存在する請求項67に記載
    のシステム。
  69. 【請求項69】 前記少なくとも一つのソースXML文
    書が複数のデータベース中に存在する請求項67に記載
    のシステム。
  70. 【請求項70】 データスキーマが埋め込まれ得るオン
    トロジーモデルを構築する方法であって、 少なくとも一つのデータスキーマを受け取ることと、 前記少なくとも一つのデータスキーマが埋め込まれ得る
    オントロジーモデルを構築することとを具備する方法。
  71. 【請求項71】 前記少なくとも一つのデータスキーマ
    の少なくとも一つを外部形式から内部形式へ変換するこ
    とを更に具備する請求項70に記載の方法。
  72. 【請求項72】 前記少なくとも一つのデータスキーマ
    は、列を有するデータの表を記述している少なくとも一
    つの表スキーマである請求項70に記載の方法。
  73. 【請求項73】 前記少なくとも一つの表スキーマは、
    リレーショナルデータベースの表を記述している少なく
    とも一つのリレーショナルデータベーススキーマである
    請求項72に記載の方法。
  74. 【請求項74】 前記オントロジーモデルの構築は、 初期のオントロジーモデルを提供することと、 前記少なくとも一つのリレーショナルデータベーススキ
    ーマ中に記述されている表に対応するクラスを前記初期
    のオントロジーモデルに付加することと、 前記少なくとも一つのリレーショナルデータベーススキ
    ーマ中に記述されている列に対応するプロパティを前記
    初期のオントロジーモデルに付加することとを具備する
    請求項73に記載の方法。
  75. 【請求項75】 前記初期のオントロジーモデルは空で
    ある請求項74に記載の方法。
  76. 【請求項76】 前記初期のオントロジーモデルは空で
    ない請求項74に記載の方法。
  77. 【請求項77】 前記初期のオントロジーモデルを外部
    形式から内部形式へ変換することを更に具備する請求項
    76に記載の方法。
  78. 【請求項78】 前記クラスの付加はユーザと連携する
    コンピュータによって実行される請求項74に記載の方
    法。
  79. 【請求項79】 前記クラスの付加は、前記少なくとも
    一つのリレーショナルデータベーススキーマ中に記述さ
    れているが前記オントロジーモデル中の既存のクラスに
    対応しない表が存在する場合に、ユーザに前記オントロ
    ジーモデルへクラスを付加させる請求項78に記載の方
    法。
  80. 【請求項80】 前記クラスの付加はコンピュータによ
    って自動的に実行される請求項74に記載の方法。
  81. 【請求項81】 前記クラスの付加は、前記少なくとも
    一つのリレーショナルデータベーススキーマ中に記述さ
    れているが前記オントロジーモデル中の既存のクラスに
    対応しない表が存在する場合に、前記オントロジーモデ
    ルへクラスを自動的に付加する請求項80に記載の方
    法。
  82. 【請求項82】 前記プロパティの付加はユーザと連携
    するコンピュータによって実行される請求項74に記載
    の方法。
  83. 【請求項83】 前記プロパティの付加は、前記少なく
    とも一つのリレーショナルデータベーススキーマ中に記
    述されているが前記オントロジーモデル中の既存のプロ
    パティまたはプロパティの合成物に対応しない表の列が
    存在する場合に、ユーザに前記オントロジーモデルへプ
    ロパティを付加させる請求項82に記載の方法。
  84. 【請求項84】 前記プロパティの付加はコンピュータ
    によって自動的に実行される請求項74に記載の方法。
  85. 【請求項85】 前記プロパティの付加は、前記少なく
    とも一つのリレーショナルデータベーススキーマ中に記
    述されているが前記オントロジーモデル中の既存のプロ
    パティまたはプロパティの合成物に対応しない表の列が
    存在する場合に、前記オントロジーモデルへプロパティ
    を自動的に付加する請求項84に記載の方法。
  86. 【請求項86】 前記オントロジーモデルの構築は、前
    記少なくとも一つのリレーショナルデータベーススキー
    マ中に記述されている表間の関係に基づいて、前記オン
    トロジーモデル中のクラス間における継承関係を推論す
    ることを具備する請求項70に記載の方法。
  87. 【請求項87】 前記オントロジーモデル中の第一のク
    ラスに対応する表が前記オントロジーモデル中の第二の
    クラスに対応する表にとっての外部キーである主キーを
    有している場合に、前記第一のクラスが前記第二のクラ
    スから継承していると推論される請求項86に記載の方
    法。
  88. 【請求項88】 前記継承関係の推論は、推論された継
    承関係をユーザに確認させることを含む請求項86に記
    載の方法。
  89. 【請求項89】 前記少なくとも一つのデータスキーマ
    は、文書を記述している少なくとも一つの文書スキーマ
    である請求項70に記載の方法。
  90. 【請求項90】 前記少なくとも一つの文書スキーマ
    は、少なくとも一つのXML要素またはXML属性を含
    む少なくとも一つのXML複合型を有するXML文書を
    記述しているXMLスキーマである請求項89に記載の
    方法。
  91. 【請求項91】 前記オントロジーモデルの構築は、初
    期のオントロジーモデルを提供することと、 前記少なくとも一つのXMLスキーマ中に記述されてい
    るXML複合型に対応するクラスを前記初期のオントロ
    ジーモデルに付加することと、 前記少なくとも一つのXMLスキーマ中に記述されてい
    るXML要素及びXML属性に対応するプロパティを前
    記初期のオントロジーモデルに付加することとを具備す
    る請求項90に記載の方法。
  92. 【請求項92】 前記初期のオントロジーモデルは空で
    ある請求項91に記載の方法。
  93. 【請求項93】 前記初期のオントロジーモデルは空で
    ない請求項91に記載の方法。
  94. 【請求項94】 前記クラスの付加はユーザと連携する
    コンピュータによって実行される請求項91に記載の方
    法。
  95. 【請求項95】 前記クラスの付加は、前記少なくとも
    一つのXMLスキーマ中に記述されているが前記オント
    ロジーモデル中の既存のクラスに対応しないXML複合
    型が存在する場合に、ユーザに前記オントロジーモデル
    へクラスを付加させる請求項94に記載の方法。
  96. 【請求項96】 前記クラスの付加はコンピュータによ
    って自動的に実行される請求項91に記載の方法。
  97. 【請求項97】 前記クラスの付加は、前記少なくとも
    一つのXMLスキーマ中に記述されているが前記オント
    ロジーモデル中の既存のクラスに対応しないXML複合
    型が存在する場合に、前記オントロジーモデルへクラス
    を自動的に付加する請求項96に記載の方法。
  98. 【請求項98】 前記プロパティの付加はユーザと連携
    するコンピュータによって実行される請求項91に記載
    の方法。
  99. 【請求項99】 前記プロパティの付加は、前記少なく
    とも一つのXMLスキーマ中に記述されているが前記オ
    ントロジーモデル中の既存のプロパティまたはプロパテ
    ィの合成物に対応しないXML要素またはXML属性が
    存在する場合に、ユーザに前記オントロジーモデルへプ
    ロパティを付加させる請求項98に記載の方法。
  100. 【請求項100】 前記プロパティの付加はコンピュー
    タによって自動的に実行される請求項91に記載の方
    法。
  101. 【請求項101】 前記プロパティの付加は、前記少な
    くとも一つのXMLスキーマ中に記述されているが前記
    オントロジーモデル中の既存のプロパティまたはプロパ
    ティの合成物に対応しないXML要素またはXML属性
    が存在する場合に、前記オントロジーモデルへプロパテ
    ィを自動的に付加する請求項100に記載の方法。
  102. 【請求項102】 データスキーマが埋め込まれ得るオ
    ントロジーモデルを構築するシステムであって、 少なくとも一つのデータスキーマを受け取るスキーマ受
    取装置と、 前記少なくとも一つのデータスキーマが埋め込まれ得る
    オントロジーモデルを構築するモデル構築装置とを具備
    するシステム。
  103. 【請求項103】 前記少なくとも一つのデータスキー
    マの少なくとも一つを外部形式から内部形式へ変換する
    スキーマ形式変換装置を更に具備する請求項102に記
    載のシステム。
  104. 【請求項104】 前記少なくとも一つのデータスキー
    マは、列を有するデータの表を記述している少なくとも
    一つの表スキーマである請求項102に記載のシステ
    ム。
  105. 【請求項105】 前記少なくとも一つの表スキーマ
    は、リレーショナルデータベースの表を記述している少
    なくとも一つのリレーショナルデータベーススキーマで
    ある請求項104に記載のシステム。
  106. 【請求項106】 初期のオントロジーモデルを受け取
    るオントロジー受取装置を更に具備しており、前記モデ
    ル構築装置は、 前記少なくとも一つのリレーショナルデータベーススキ
    ーマ中に記述されている表に対応するクラスを前記初期
    のオントロジーモデルに付加するクラス付加装置と、 前記少なくとも一つのリレーショナルデータベーススキ
    ーマ中に記述されている表の列に対応するプロパティを
    前記初期のオントロジーモデルに付加するプロパティ付
    加装置とを具備する請求項105に記載のシステム。
  107. 【請求項107】 前記初期のオントロジーモデルは空
    である請求項106に記載のシステム。
  108. 【請求項108】 前記初期のオントロジーモデルは空
    でない請求項106に記載のシステム。
  109. 【請求項109】 前記初期のオントロジーモデルを外
    部形式から内部形式へ変換するオントロジー形式変換装
    置を更に具備する請求項108に記載のシステム。
  110. 【請求項110】 前記クラス付加装置はコンピュータ
    と連携するユーザによってガイドされる請求項106に
    記載のシステム。
  111. 【請求項111】 前記クラス付加装置は、前記少なく
    とも一つのリレーショナルデータベーススキーマ中に記
    述されているが前記オントロジーモデル中の既存のクラ
    スに対応しない表が存在する場合に、ユーザに前記オン
    トロジーモデルへクラスを付加させる請求項110に記
    載のシステム。
  112. 【請求項112】 前記クラス付加装置はコンピュータ
    によって自動的にガイドされる請求項106に記載のシ
    ステム。
  113. 【請求項113】 前記クラス付加装置は、前記少なく
    とも一つのリレーショナルデータベーススキーマ中に記
    述されているが前記オントロジーモデル中の既存のクラ
    スに対応しない表が存在する場合に、前記オントロジー
    モデルへクラスを自動的に付加する請求項112に記載
    のシステム。
  114. 【請求項114】 前記プロパティ付加装置はコンピュ
    ータと連携するユーザによってガイドされる請求項10
    6に記載のシステム。
  115. 【請求項115】 前記プロパティ付加装置は、前記少
    なくとも一つのリレーショナルデータベーススキーマ中
    に記述されているが前記オントロジーモデル中の既存の
    プロパティまたはプロパティの合成物に対応しない表の
    列が存在する場合に、ユーザに前記オントロジーモデル
    へプロパティを付加させる請求項114に記載のシステ
    ム。
  116. 【請求項116】 前記プロパティ付加装置がコンピュ
    ータによって自動的にガイドされる請求項106に記載
    のシステム。
  117. 【請求項117】 前記プロパティ付加装置は、前記少
    なくとも一つのリレーショナルデータベーススキーマ中
    に記述されているが前記オントロジーモデル中の既存の
    プロパティまたはプロパティの合成物に対応しない表の
    列が存在する場合に、前記オントロジーモデルへプロパ
    ティを自動的に付加する請求項116に記載のシステ
    ム。
  118. 【請求項118】 前記モデル構築装置は、前記少なく
    とも一つのリレーショナルデータベーススキーマ中にお
    ける表間の関係に基づいて、前記オントロジーモデル中
    のクラス間における継承関係を推論する継承処理装置を
    具備する請求項105に記載のシステム。
  119. 【請求項119】 前記継承処理装置は、前記オントロ
    ジーモデル中の第一のクラスに対応する表が前記オント
    ロジーモデル中の第二のクラスに対応する表にとっての
    外部キーである主キーを有している場合に、前記第一の
    クラスが前記第二のクラスから継承していると推論する
    請求項118に記載のシステム。
  120. 【請求項120】 前記モデル構築装置は、前記少なく
    とも一つのリレーショナルデータベーススキーマ中の表
    に対応するクラスが前記推論された継承関係に従うこと
    を保証する請求項118に記載のシステム。
  121. 【請求項121】 前記継承処理装置は、推論された継
    承関係をユーザに確認させる請求項120に記載のシス
    テム。
  122. 【請求項122】 前記少なくとも一つのデータスキー
    マは、文書を記述している少なくとも一つの文書スキー
    マを含んでいる請求項102に記載のシステム。
  123. 【請求項123】 前記少なくとも一つの文書スキーマ
    は、少なくとも一つのXML要素またはXML属性を含
    む少なくとも一つのXML複合型を有するXML文書を
    記述している少なくとも一つのXMLスキーマを含んで
    いる請求項122に記載のシステム。
  124. 【請求項124】 初期のオントロジーモデルを受け取
    るオントロジー受取装置を更に具備しており、前記モデ
    ル構築装置は、 前記少なくとも一つのXMLスキーマ中に記述されてい
    るXML複合型に対応するクラスを前記初期のオントロ
    ジーモデルに付加するクラス付加装置と、 前記少なくとも一つのXMLスキーマ中に記述されてい
    るXML要素及びXML属性に対応するプロパティを前
    記初期のオントロジーモデルに付加するプロパティ付加
    装置とを具備する請求項123に記載のシステム。
  125. 【請求項125】 前記初期のオントロジーモデルは空
    である請求項124に記載のシステム。
  126. 【請求項126】 前記初期のオントロジーモデルは空
    でない請求項124に記載のシステム。
  127. 【請求項127】 前記クラス付加装置はコンピュータ
    と連携するユーザによってガイドされる請求項124に
    記載のシステム。
  128. 【請求項128】 前記クラス付加装置は、前記少なく
    とも一つのXMLスキーマ中に記述されているが前記オ
    ントロジーモデル中の既存のクラスに対応しないXML
    複合型が存在する場合に、ユーザに前記オントロジーモ
    デルへクラスを付加させる請求項127に記載のシステ
    ム。
  129. 【請求項129】 前記クラス付加装置はコンピュータ
    によって自動的にガイドされる請求項124に記載のシ
    ステム。
  130. 【請求項130】 前記クラス付加装置は、前記少なく
    とも一つのXMLスキーマ中に記述されているが前記オ
    ントロジーモデル中の既存のクラスに対応しないXML
    複合型が存在する場合に、前記オントロジーモデルへク
    ラスを自動的に付加する請求項129に記載のシステ
    ム。
  131. 【請求項131】 前記プロパティ付加装置はコンピュ
    ータと連携するユーザによってガイドされる請求項12
    4に記載のシステム。
  132. 【請求項132】 前記プロパティ付加装置は、前記少
    なくとも一つのXMLスキーマ中に記述されているが前
    記オントロジーモデル中の既存のプロパティまたはプロ
    パティの合成物に対応しないXML要素またはXML属
    性が存在する場合に、ユーザに前記オントロジーモデル
    へプロパティを付加させる請求項131に記載のシステ
    ム。
  133. 【請求項133】 前記プロパティ付加装置がコンピュ
    ータによって自動的にガイドされる請求項124に記載
    のシステム。
  134. 【請求項134】 前記プロパティ付加装置は、前記少
    なくとも一つのXMLスキーマ中に記述されているが前
    記オントロジーモデル中の既存のプロパティまたはプロ
    パティの合成物に対応しないXML要素またはXML属
    性が存在する場合に、前記オントロジーモデルへプロパ
    ティを自動的に付加する請求項133に記載のシステ
    ム。
  135. 【請求項135】 あるデータスキーマから別のデータ
    スキーマへデータを変換するための命令プログラムを収
    録しておりコンピュータが読込み可能な一つ以上の媒体
    を含む製品であって、処理システムによって実行される
    と、前記命令プログラムが、前記処理システムに、 ソースデータスキーマとターゲットデータスキーマとを
    受け取られせ、 前記ソースデータスキーマをオントロジーモデルへ写像
    させ、 前記ターゲットデータスキーマを前記オントロジーモデ
    ルへ写像させ、 前記オントロジーモデルを使用して、前記ソースデータ
    スキーマに従っているデータを前記ターゲットデータス
    キーマに従うデータへ変換させるための変換を導出させ
    る製品。
  136. 【請求項136】 前記コンピュータが読込み可能な一
    つ以上の媒体は、一つ以上の不揮発性記憶装置を含む請
    求項135に記載の製品。
  137. 【請求項137】 前記コンピュータが読込み可能な一
    つ以上の媒体は、データ信号によって変調されている搬
    送波を含む請求項135に記載の製品。
  138. 【請求項138】 データスキーマが埋め込まれ得る共
    通のオントロジーモデルを構築するための命令プログラ
    ムを収録しておりコンピュータが読込み可能な一つ以上
    の媒体を含む製品であって、処理システムによって実行
    されると、前記命令プログラムが、前記処理システム
    に、 前記少なくとも一つのデータスキーマを受け取らせ、 前記少なくとも一つのデータスキーマが埋め込まれ得る
    オントロジーモデルを構築させる製品。
  139. 【請求項139】 前記コンピュータが読込み可能な一
    つ以上の媒体は、一つ以上の不揮発性記憶装置を含む請
    求項138に記載の製品。
  140. 【請求項140】 前記コンピュータが読込み可能な一
    つ以上の媒体は、データ信号によって変調されている搬
    送波を含む請求項138に記載の製品。
JP2003007391A 2002-01-15 2003-01-15 あるデータスキーマから別のデータスキーマへデータを変換するための変換を導出する方法及びシステム、データスキーマが埋め込まれ得るオントロジーモデルを構築する方法及びシステム、あるデータスキーマから別のデータスキーマへデータを変換するための命令プログラムを収録しておりコンピュータが読込み可能な一つ以上の媒体を含む製品並びにデータスキーマが埋め込まれ得る共通のオントロジーモデルを構築するための命令プログラムを収録しておりコンピュータが読込み可能な一つ以上の媒体を含む製品 Pending JP2003233528A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/053,045 US20040216030A1 (en) 2001-05-25 2002-01-15 Method and system for deriving a transformation by referring schema to a central model
US10/053,045 2002-01-15

Publications (1)

Publication Number Publication Date
JP2003233528A true JP2003233528A (ja) 2003-08-22

Family

ID=21981575

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003007391A Pending JP2003233528A (ja) 2002-01-15 2003-01-15 あるデータスキーマから別のデータスキーマへデータを変換するための変換を導出する方法及びシステム、データスキーマが埋め込まれ得るオントロジーモデルを構築する方法及びシステム、あるデータスキーマから別のデータスキーマへデータを変換するための命令プログラムを収録しておりコンピュータが読込み可能な一つ以上の媒体を含む製品並びにデータスキーマが埋め込まれ得る共通のオントロジーモデルを構築するための命令プログラムを収録しておりコンピュータが読込み可能な一つ以上の媒体を含む製品

Country Status (3)

Country Link
EP (1) EP1327941A3 (ja)
JP (1) JP2003233528A (ja)
CA (1) CA2416102A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005327232A (ja) * 2003-08-29 2005-11-24 Microsoft Corp 任意のデータモデル用のマッピングアーキテクチャ
JP2009087339A (ja) * 2007-09-27 2009-04-23 Nec (China) Co Ltd オントロジーデータのインポート/エクスポートのための方法および装置
JP2010509667A (ja) * 2006-11-02 2010-03-25 ビ−エイイ− システムズ パブリック リミテッド カンパニ− データ統合環境の構築方法
JP2012511766A (ja) * 2008-12-12 2012-05-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ターゲットデータベースに対してデータソースのデータをリンクするための方法及びモジュール

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050131920A1 (en) * 2003-10-17 2005-06-16 Godfrey Rust Computer implemented methods and systems for representing multiple data schemas and transferring data between different data schemas within a contextual ontology
US8874614B2 (en) * 2004-05-28 2014-10-28 Infor (Us), Inc. Method and system for enforcing ontological context rules for object-oriented programs
US8645434B2 (en) * 2008-03-18 2014-02-04 Apple Inc. Techniques for schema production and transformation
EP2246811A1 (en) * 2009-04-30 2010-11-03 Collibra NV/SA Method for improved ontology engineering
US8918709B2 (en) * 2009-05-29 2014-12-23 Microsoft Corporation Object templates for data-driven applications
US9946777B1 (en) * 2016-12-19 2018-04-17 Palantir Technologies Inc. Systems and methods for facilitating data transformation
EP3457665A1 (en) * 2017-09-18 2019-03-20 Thomson Licensing Method and device for transforming data

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5970490A (en) * 1996-11-05 1999-10-19 Xerox Corporation Integration platform for heterogeneous databases

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005327232A (ja) * 2003-08-29 2005-11-24 Microsoft Corp 任意のデータモデル用のマッピングアーキテクチャ
JP2010509667A (ja) * 2006-11-02 2010-03-25 ビ−エイイ− システムズ パブリック リミテッド カンパニ− データ統合環境の構築方法
JP2009087339A (ja) * 2007-09-27 2009-04-23 Nec (China) Co Ltd オントロジーデータのインポート/エクスポートのための方法および装置
JP2012511766A (ja) * 2008-12-12 2012-05-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ターゲットデータベースに対してデータソースのデータをリンクするための方法及びモジュール
US10878945B2 (en) 2008-12-12 2020-12-29 Koninklijke Philips, N.V. Method and module for linking data of a data source to a target database
US11688490B2 (en) 2008-12-12 2023-06-27 Koninklijke Philips N.V. Method and module for linking data of a data source to a target database

Also Published As

Publication number Publication date
EP1327941A3 (en) 2006-02-08
EP1327941A2 (en) 2003-07-16
CA2416102A1 (en) 2003-07-15

Similar Documents

Publication Publication Date Title
US20220179876A1 (en) Metadata hub for metadata models of database objects
US7930293B2 (en) Run-time architecture for enterprise integration with transformation generation
US8060531B2 (en) Data query and location through a central ontology model
US8417513B2 (en) Representation of objects and relationships in databases, directories, web services, and applications as sentences as a method to represent context in structured data
US7877421B2 (en) Method and system for mapping enterprise data assets to a semantic information model
US7921098B2 (en) Data query and location through a central ontology model
Nigro et al. Data mining with ontologies: Implementations, findings, and frameworks: Implementations, findings, and frameworks
Dimou et al. Mapping hierarchical sources into RDF using the RML mapping language
CN104598635A (zh) 一种基于xml描述的复杂文档自动生成方法
US20080228782A1 (en) Apparatus, Method, and Computer Program Product for Creating Hierarchical Dictionary
Bowers et al. Representing and transforming model-based information
Vavliakis et al. RDOTE–publishing relational databases into the semantic web
US20230091845A1 (en) Centralized metadata repository with relevancy identifiers
Michel et al. Translation of Heterogeneous Databases into RDF, and Application to the Construction of a SKOS Taxonomical Reference
JP2003233528A (ja) あるデータスキーマから別のデータスキーマへデータを変換するための変換を導出する方法及びシステム、データスキーマが埋め込まれ得るオントロジーモデルを構築する方法及びシステム、あるデータスキーマから別のデータスキーマへデータを変換するための命令プログラムを収録しておりコンピュータが読込み可能な一つ以上の媒体を含む製品並びにデータスキーマが埋め込まれ得る共通のオントロジーモデルを構築するための命令プログラムを収録しておりコンピュータが読込み可能な一つ以上の媒体を含む製品
Alter et al. Provenance metadata for statistical data: An introduction to Structured Data Transformation Language (SDTL)
JPH10187680A (ja) 単語、文、部分の粒度で管理するドキュメントリポジトリ装置
Salas et al. Stdtrip: Promoting the reuse of standard vocabularies in open government data
CN104598636A (zh) 复杂文档分离组织方法以及复杂文档自动生成方法
Connolly et al. Business database systems
De Troyer A formalization of the binary object-role model based on logic
Mandal MultiTes: a knowledge organization thesaurus construction tool for college libraries under the University of Burdwan
Kwakye A Practical Approach to Merging Multidimensional Data Models
EP1274018A2 (en) Instance browser for ontology
Forster et al. Exploiting XML technologies in medical information systems

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060113

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20070531

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081216

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090602