JP2013218554A - Rdf表現の生成方法、プログラム、及びシステム - Google Patents

Rdf表現の生成方法、プログラム、及びシステム Download PDF

Info

Publication number
JP2013218554A
JP2013218554A JP2012089261A JP2012089261A JP2013218554A JP 2013218554 A JP2013218554 A JP 2013218554A JP 2012089261 A JP2012089261 A JP 2012089261A JP 2012089261 A JP2012089261 A JP 2012089261A JP 2013218554 A JP2013218554 A JP 2013218554A
Authority
JP
Japan
Prior art keywords
template
uri
rdf
storage area
path element
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012089261A
Other languages
English (en)
Other versions
JP5871700B2 (ja
Inventor
Hiroaki Nakamura
宏明 中村
Hideki Tai
秀樹 田井
Shunichi Amano
俊一 天野
Takashi Miyashita
尚 宮下
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2012089261A priority Critical patent/JP5871700B2/ja
Priority to US13/850,356 priority patent/US9262447B2/en
Publication of JP2013218554A publication Critical patent/JP2013218554A/ja
Application granted granted Critical
Publication of JP5871700B2 publication Critical patent/JP5871700B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases

Landscapes

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

Abstract

【課題】 既存ツールにアクセスしてRDFに変換する際の、既存ツールへのアクセスを減らす。
【解決手段】 既存ツールのデータのIDの集合をパラメータとして具体化され、複数のデータを1回(あるいは高々数回)で取得するバルクアクセス・テンプレートを用意し、バルクアクセス・テンプレートを介して既存ツールにアクセスするようにする。バルクアクセス・テンプレートは、取得するデータのタイプ毎に用意される。次に、要求されたURIに基づきテンプレートが具体化され、当該具体化されたテンプレートを実行することで、作業テーブルの対応するエントリを充填する。既にアクセスしたのと同一のテンプレートのURIに関してRDF表現が要求されたときは、既にエントリが作業テーブルにあるので、既存ツールへのアクセスを発生させることなくRDF表現を生成することができる。
【選択図】 図9

Description

この発明は、コンピュータの処理により、所定のデータからRDF表現を生成するための方法、プログラム、及びシステムに関するものである。
近年、特開2005−242934号公報、あるいは特開2006−302085号公報に記載されているように、ウェブ上にあるリソースを記述する仕組みとして、RDF(Resource Description Framework)形式が採用されている。また、Christian Bizer, Tom Heath, Tim Berners-Lee, Lined Data-The Story So Far, International Journal on Semantic Web and Information Systems, 5(3), 2009には、RDF形式のデータをウェブの仕組みの上で連携させて使用するLinked Dataが、グローバルな情報公開の仕組みとして記述されている。さらに、Open Services for Lifecycle Collaboration (OSLC), http://open-services.net/には、企業内の情報連携としてLinked Dataを活用することが記述されている。
Linked Dataを提供するツールには、RDFデータを格納しておいて提供するツールと、既存ツールが管理する、RDFになっていないデータをRDFに変換して提供するツールがある。
また、Linked Dataを使用するツールには、ユーザ要求に従ってリンクを辿ってデータを得るツールと、データ・アクセスの効率化のために、予めLinked Data提供ツールをクロールしてインデックスを作成しておくツールとがある。
図1は、このようなツールを利用するための、複数のコンピュータをネットワーク接続した構成の例を示す図である。すなわち、典型的にはLANまたはWANであるネットワーク102には、コンピュータ104、106、108、110、112、114、116、及び118が接続されている。コンピュータ104とコンピュータ110にはRDFデータを格納しておいて提供するツールが格納されている。
コンピュータ106とコンピュータ112には、既存ツールが格納されている。ここでいう既存ツールが扱うデータとは、リレーショナル・データベースに格納されているレコード、既存ツールのAPIでアクセスされるアプリケーション記述言語のオブジェクト、XML、HTML、CSVなどの構造化されたデータである。
コンピュータ108とコンピュータ114には、それぞれコンピュータ106とコンピュータ112上の既存ツールが管理する、RDFになっていないデータをRDFに変換して提供するツール、すなわち、Linked Data変換/提供ツールが格納されている。
コンピュータ116には、ユーザ要求に従ってリンクを辿ってデータを得るツールが格納されている。コンピュータ118には、データ・アクセスの効率化のために、予めLinked Data提供ツールをクロールしてインデックスを作成しておくツールが格納されている。
このような構成においては、コンピュータ116やコンピュータ118から、コンピュータ108やコンピュータ114上のLinked Data変換/提供ツールにアクセスがある度に、応答を返すために、コンピュータ106またはコンピュータ112上の既存ツールにアクセスが行われる。
特に、コンピュータ118上の、予めLinked Data提供ツールをクロールしてインデックスを作成しておくツールがコンピュータ108やコンピュータ114上のLinked Data変換/提供ツールをクロールするとき、リクエストの返答を生成するために多数回のアクセスが集中する。このため、クローラからの要求に対応するための、既存ツールへのアクセスがボトルネックとなって、システム全体としてのスループットが低くなるという問題があった。
Soeren Auer, Sebastian Dietzold, Jens Lehmann, Sebastian Hellmann, David Aumueller, Universitaet Leipzig, Postfach Leipzig, Triplify - Light-Weight Linked Data Publication from Relational Databases, WWW 2009には、マッピング指定に従って既存データベースのデータをRDFに変換する技術が記述されている。ここに記述されている技術によれば、1回の既存データベース問い合わせ結果から複数のトリプルを同時に生成することで、アクセス回数の増加を防いでいる。しかし、変換ツールのアクセスの度に必ず既存データベースへのアクセスが生じるため、システム全体としてのスループットとしては改善されない。
特開2005−242934号公報 特開2006−302085号公報
Christian Bizer, Tom Heath, Tim Berners-Lee, Lined Data-The Story So Far, International Journal on Semantic Web and Information Systems, 5(3), 2009 Open Services for Lifecycle Collaboration (OSLC), http://open-services.net/ Soeren Auer, Sebastian Dietzold, Jens Lehmann, Sebastian Hellmann, David Aumueller, Universitaet Leipzig, Postfach Leipzig, Triplify - Light-Weight Linked Data Publication from Relational Databases, WWW 2009
この発明の目的は、既存ツールにアクセスしてRDFに変換する際の、既存ツールへのアクセスを減らし、以って処理速度を向上することにある。
この発明は、既存ツールのデータのIDの集合をパラメータとして具体化され、複数のデータを1回(あるいは高々数回)で取得するバルクアクセス・テンプレートを用意し、バルクアクセス・テンプレートを介して既存ツールにアクセスするようにすることによって上記目的を解決するものである。バルクアクセス・テンプレートは、SQLのWHERE句をパラメータ化したものでもよいし、APIの組み合わせで実現してもよい。バルクアクセス・テンプレートは、取得するデータのタイプ毎に用意される。
本発明の別の側面によれば、テンプレートに与えるデータの作成と制御が、コンピュータの主記憶中に確保される作業テーブルを使って行われる。すなわち、本発明によれば、生成したRDF表現に含まれるURIは以降にアクセスされる可能性が高いとみなし、これらの個々のURIを、対応するRDF生成のためのデータを取得するテンプレート名とともに作業テーブルに登録するようにする。
本発明によれば次に、要求されたURIに基づきテンプレートが具体化され、当該具体化されたテンプレートを実行することで、作業テーブルの対応するエントリを充填する。これによって対応するRDF表現が得られる。
その後、既にアクセスしたのと同一のテンプレートのURIに関してRDF表現が要求されたときは、既にエントリが作業テーブルにあるので、既存ツールへのアクセスを発生させることなくRDF表現を生成することができる。
以上のように、この発明によれば、バルクアクセス・テンプレートを介して既存ツールにアクセスするようにすることによって、あるURIのテンプレートをもつデータのエントリを一挙に作業テーブルに登録するので、同一テンプレートに関するURIに関してRDF表現が要求されたときに改めて既存ツールへのアクセスを発生させることなく、アクセス頻度を減らすことができる。
Linked Data変換/提供ツールと、Linked Data使用ツールを含む、ネットワーク接続された複数のコンピュータからなるシステム構成の概要図である。 Linked Data変換/提供ツールを格納したコンピュータのハードウェアのブロック図を示す図である。 本発明に係るLinked Data変換/提供ツールの機能ブロック図を示す図である。 対応表を示す図である。 作業テーブルを示す図である。 RDF表現出力の処理のフローチャートを示す図である。 サブルーチンGetTemplatesの処理のフローチャートを示す図である。 サブルーチンFillEntriesの処理のフローチャートを示す図である。 RDF表現出力の処理に従う、作業テーブルに格納されるデータの例を示す図である。 作業テーブルを構成する記憶域1と記憶域2の処理を示す図である。
以下、図面に従って、本発明の実施例を説明する。これらの実施例は、本発明の好適な態様を説明するためのものであり、発明の範囲をここで示すものに限定する意図はないことを理解されたい。また、以下の図を通して、特に断わらない限り、同一符号は、同一の対象を指すものとする。
本発明は、図1に示す構成における、Linked Data変換/提供ツールに対する改良に関するものである。そこで、図2に、図1においてLinked Data変換/提供ツールが格納されるコンピュータ108及び114の例示的なハードウェアのブロック図を示す。なお、コンピュータ108及び114だけでなく、コンピュータ104、106、110、112、116、及び118も、図2に示すハードウェア構成であってもよい。
図2において、システム・バス202には、CPU204と、主記憶(RAM)206と、ハードディスク・ドライブ(HDD)208と、キーボード210と、マウス212と、ディスプレイ214が接続されている。CPU204は、好適には、32ビットまたは64ビットのアーキテクチャに基づくものであり、例えば、インテル社のPentium(商標)4、インテル社のCore(商標) 2 DUO、AMD社のAthlon(商標)などを使用することができる。主記憶206は、好適には、4GB以上の容量、より好ましくは、8GB以上の容量をもつものである。
ハードディスク・ドライブ208には、オペレーティング・システムが、格納されている。オペレーティング・システムは、Linux(商標)、マイクロソフト社のWindows(商標) 7、Windows XP(商標)、Windows(商標)2003サーバ、アップルコンピュータのMac OS(商標)などの、CPU204に適合する任意のものでよい。
ハードディスク・ドライブ208にはさらに、図3に関して後で説明するLinked Data変換/提供ツール300の要素である、メイン・プログラム302、RDF表現出力ルーチン308、GetTemplateルーチン310、FillEntriesルーチン312などが保存されている。これらのルーチンやプログラムは、C、C++、Java(R)などの既存のプログラミング言語処理系により、CPU204に適合する実行可能形式のコードを生成し得るコンパイラによって作成することができる。
キーボード210及びマウス212は、オペレーティング・システムが提供するグラフィック・ユーザ・インターフェースに従い、ディスプレイ214に表示されたアイコン、タスクバー、テキストボックスなどのグラフィック・オブジェクトを操作するために使用される。
ディスプレイ214は、これには限定されないが、好適には、2024×768以上の解像度をもち、32ビットtrue colorのLCDモニタである。ディスプレイ214は例えば、RDF変換処理を操作する画面を表示するために使用される。
通信インターフェース216は、好適には、イーサネット(R)プロトコルにより、ネットワークと接続されている。通信インターフェース216は、Linked Data使用ツールを格納するコンピュータ116やLinked Data使用ツール(クローラ付き)を格納するコンピュータ118からのリクエストを受け取ったり、既存ツールを格納するコンピュータ112にアクセスする等のために使用される。
Linked Data使用ツールは、RDF表現をLinked Data提供ツールから取得し、取得したデータを解析してユーザ(または第三者のツール)に提示し、提示したデータに含まれるURIのうちでユーザ(または第三者のツール)が指定したものについてLinked Data 提供ツールに要求する、という一連の動作を繰り返すことで、ユーザ(または第三者のツール)に情報をアクセスさせるものである。例えば、新聞記事を人名・地名・カテゴリなどで検索する仕組み、ソフトウエア開発における工程・設計・コード・テスト・変更の管理、創薬における医療情報・実験データ・市場情報の管理、などに使われる。
Linked Data使用ツール(クローラ付き)は、検索用のインデックス作成、統計調査、一覧表作成などを目的として、RDF表現に含まれるURIをたどって別のRDFを収集する動作を自動的に繰り返す。この結果、1) 一定の時間に多量のアクセスが発生する、2) 一度アクセスしたデータは次にアクセスしにくい特徴がある、という点が単なるLinked Data使用ツールと異なる。
次に、図3の機能ブロック図を参照して、Linked Data変換/提供ツール300の各機能要素について説明する。
図3において、メイン・プログラム302は、キーボード210あるいはマウス212などの操作によってLinked Data変換/提供ツール300を起動したり、終了したりする機能をもつ。
対応表304は、図4に示すように、タイプ、パス要素名、属性名集合、及びテンプレートからなる表のデータであり、予めLinked Data変換/提供ツール300のオペレータによってハードティスク・ドライブ208に保存され、好適には、動作時に主記憶206にロードされる。
ここでテンプレートとは、あらかじめ作っておいたサブルーチンの名前であり、そのサブルーチンの中では既存ツールに対するSQLやAPIの呼び出しが行われる。
作業テーブル306は、図5に示すように、(URI,アクセステンプレート)と取得済みデータのフィールドをもつ。作業テーブル306は好適には、主記憶206に獲得されたメモリの領域にエントリを配置したものであり、詳しい処理は後述するが、エントリを追加し、あるいはエントリを削除し、獲得しているメモリ領域を開放することにより、サイズを調整される。
RDF表現出力ルーチン308は、通信モジュール314を介してLinked Data使用ツール、あるいはLinked Data使用ツール(クローラ付き)から受け取ったURIに応答して、通信モジュール314を介して既存ツールにアクセスし、RDF表現に変換して、通信モジュール314を介してLinked Data使用ツール、あるいはLinked Data使用ツール(クローラ付き)にRDF表現のデータを送信する処理を行う。RDF表現出力ルーチン308のより詳しい処理は、図6のフローチャートを参照して後で説明する。
GetTemplatesルーチン310は、RDF表現出力ルーチン308から呼ばれて、テンプレート集合を用意する処理を行うものである。GetTemplatesルーチン310のより詳しい処理は、図7のフローチャートを参照して後で説明する。
FillEntriesルーチン312は、RDF表現出力ルーチン308から呼ばれて、作業テーブル306のフィールドを埋める処理を行うものである。FillEntriesルーチン312のより詳しい処理は、図8のフローチャートを参照して後で説明する。
通信モジュール314は、RDF表現出力ルーチン308が、通信インターフェース216を利用して、Linked Data使用ツールを格納するコンピュータ116やLinked Data使用ツール(クローラ付き)を格納するコンピュータ118などと通信するために使用される。通信モジュール314は、オペレーティング・システムに標準装備される通信機能を利用することができる。
次に、図6のフローチャートを参照して、RDF表現出力ルーチン308の処理を説明する。RDF表現出力ルーチン308は、URI uを入力とする。
図6において、RDF表現出力ルーチン308は、ステップ602で、uのRDF表現生成に必要なデータがすべて作業テーブル306に取得済みかどうか判断し、もしそうなら、ステップ604で、作業テーブル306の取得済みデータを使って、uのRDF表現rを生成する。図5の例では、行1の取得済みデータにおける、http://example.com/RedRev/4がuのRDF表現である。
RDF表現出力ルーチン308は、ステップ606で、使ったデータのエントリを記憶域2の先頭に移す。ここで、図10を参照して、未取得データを管理するための記憶域1と、取得済みデータを管理するための記憶域2について説明する。記憶域1も記憶域2も、例えば、オペレーティング・システムの所定のAPI関数を呼び出して、主記憶206にメモリ割り当てした領域である。作業テーブル306は、記憶域1と記憶域2を合わせた領域からなる。
作業テーブル306を、このような記憶域1と記憶域2を合わせた領域とする理由は、作業テーブル306が一定の大きさに収まるようにデータを管理する必要があるからである。取得するデータには次の性質がある。
・先ず、クロールされたデータに対して、データ使用アプリケーションがアクセスを行う。
・クローラは、一度取得したデータを再取得する可能性は低い。作業テーブル306に追加された未取得データのエントリは、時間とともに取得の可能性が低下すると考えられる。
・クロール済みでインデックスされたデータをアプリケーションが参照するとき、アクセスに局所性がある。
このため、記憶域1と記憶域2という2つの記憶域をつかってデータを管理するようにした。記憶域1はキューで、未取得のデータエントリを管理する。エントリ追加はキューの先頭に対して行われる。図10に示されているように、エントリのデータが取得されると記憶域2に移される。登録済みのURIが再出現すると、キューの先頭に戻される。キューがあふれるとき、最後尾のエントリは除去される。記憶域2もキューで、取得済みデータエントリを管理する。データ取得によるエントリ追加はキューの先頭に対して行われる。エントリのデータが要求されると、キューの先頭に戻される。キューには、利用可能な主記憶206の容量に依存する、あるサイズの限界が設定され、キューがあふれるとき、最後尾のエントリは除去される。このような処理を、RDF表現出力ルーチン308が行う。
図6のフローチャートに戻って、ステップ606の次のステップ608では、RDF表現出力ルーチン308は、U := (rに含まれて、uとドメイン名が同じURIの集合) - {u}とする。
RDF表現出力ルーチン308は、ステップ610で、ui ∈ Uに対して、Ti = GetTemplates(ui)を実行して、uiに対するテンプレート集合Tiを得る。GetTemplates()の処理については、図7のフローチャートを参照して、後で説明する。
RDF表現出力ルーチン308は、ステップ612で、uiとtj ∈ Tiの組が作業テーブル360にあるかどうか判断し、もしそうなら、ステップ614で、当該データのエントリを記憶域1の先頭に移動して、ステップ620に至る。
ステップ612で、uiとtj ∈ Tiの組が作業テーブル360にないと判断すると、RDF表現出力ルーチン308は、ステップ616でuiとtj ∈ Tiの組を作業テーブル306に登録し、ステップ618で、エントリを記憶域1の先頭に追加する。このとき、記憶域1があふれる場合、最後尾のエントリを除去して、ステップ620に至る。
RDF表現出力ルーチン308は、ステップ620ですべてのtj ∈ Tiを処理したかどうか判断し、そうでなければ、処理済みのtjを除外してステップ612に戻る。
ステップ620ですべてのtj ∈ Tiを処理したと判断すると、RDF表現出力ルーチン308は、ステップ622ですべてのui ∈ Uを処理したかどうか判断し、もしそうなら処理を終わる。そうでなければ、処理済みのuiを除外してステップ610に戻る。
ステップ602に戻って、uのRDF表現生成に必要なデータが作業テーブル306に取得済みでないと判断すると、RDF表現出力ルーチン308はステップ624で、S := {ti|組(u,ti)が作業テーブルにあって、データ未取得}という集合Sを作成する。
次にステップ626で、RDF表現出力ルーチン308は、Vi = {uj|組(uj,ti) where ti ∈ Sが作業テーブルにあって、データ未取得}という集合Viを作成する。
次にステップ628で、RDF表現出力ルーチン308は、アクセステンプレートtiをViで具体化して実行する。ここでアクセステンプレートの具体化とは、例えば、次のようなアクセステンプレートがあったとする。
SELECT id,title,assembly
FROM part
WHERE [PARAMETERS]
とあるのを、
例えば、[PARAMETERS]を、id in Viで置き換えることである。あるいは、Vi = {n1,n2}なら、、[PARAMETERS]を、id = n1 or id = n2としてもよい。そして、このような問い合わせの結果返ってきた結果集合Oに対して、FillEntries(O)を実行する。FillEntries()の処理については、図7のフローチャートを参照して、後で説明する。
RDF表現出力ルーチン308は次に、ステップ630で、取得したデータのエントリを記憶域1から記憶域2の先頭に移す。記憶域2があふれる場合、最後のエントリを除去する。
RDF表現出力ルーチン308はステップ632で、すべてのti ∈ Sを処理したかどうかを判断し、もしそうならステップ604に移動し、そうでないなら、tiを処理済として、ステップ626に戻る。
次に図7のフローチャートを参照して、サブルーチンGetTemplates(u)の処理について説明する。サブルーチンGetTemplatesは、URI uを入力とする。
ステップ702で、GetTemplatesは、T = {}により、テンプレート集合Tを初期化する。
ステップ704で、GetTemplatesは、対応表304から、uを分解した構成要素をパス要素名として含む行の集合Rを検索する。
ステップ706で、GetTemplatesは、ri ∈ Rに対して、T := T ∪ (行riのテンプレート集合)を実行する。
ステップ708で、GetTemplatesは、すべてのri ∈ Rを処理したかどうか判断し、もしそうなら処理を終わり、そうでないなら、riを処理済みとして、ステップ706に戻る。
次に図8のフローチャートを参照して、サブルーチンFillEntries(O)の処理について説明する。サブルーチンFillEntriesは、オブジェクト集合Oを入力とする。
ステップ802で、FillEntriesは、oi ∈ Oに対して、oiのタイプ名を、動的検査または静的検査で得る。ここで動的検査とは、オブジェクトoに対してo.getType()などのメソッドを呼び出すことによって、実行時にタイプ名を得ることである。また、静的検査では、アクセステンプレートが返すオブジェクト集合のタイプ名を予めAPIを解析するなどによって求めておいて、FillEntries(O)を呼び出すときにはすでにOのタイプ名が分かっているので、それを使うようにする。FillEntriesO)の中でタイプ名にアクセスする方法は、アクセステンプレートを使ったときにタイプ名を大域変数に代入しておいてそれを参照する、タイプ名をFillEnties(O)に引数をひとつとして追加して渡す、などがある。
ステップ804で、FillEntriesは、Pi := (oiの属性集合)を求める。
ステップ806で、FillEntriesは、pj ∈ Piに対して、ti,pjを属性名として含む行rを対応表304から検索する。
ステップ808で、FillEntriesは、rが見つかったかどうか判断する。そして、もし見つかったなら、ステップ810で、対応表304の行rのパス要素名と、pjの属性値を組み合わせて、URI ujを作り、ステップ812でpjとujの組を、作業テーブル306のエントリに追加し、ステップ816に至る。
ステップ808で、rが見つからなかったと判断されると、FillEntriesは、ステップ814で、pjと、pjの属性値の組を作業テーブル306のエントリに追加し、ステップ816に至る。
ステップ816で、FillEntriesは、すべてのpj ∈ Piを処理したかどうか判断し、もしそうなら、ステップ818に進み、そうでないならpjを処理済みとして、ステップ806に戻る。
ステップ818で、FillEntriesは、すべてのoi ∈ Oを処理したかどうか判断し、もしそうなら処理を終わり、そうでないならoiを処理済みとして、ステップ802に戻る。
次に図9を参照して、RDF表現出力ルーチン308の動作の例を説明する。RDF表現出力ルーチン308は、テンプレートに与えるデータの作成と実行の制御を、作業テーブル306を使って行う。これは、生成したRDF表現に含まれるURIは、以降にアクセスされる可能性が高いという着想に基づく。そこで、RDF表現出力ルーチン308は、これらの個々のURIを、対応するRDF生成のためのデータを取得するためのテンプレート名とともに作業テーブル306に登録する。URIに対応するテンプレートは、上述のGetTemplatesで求める。
図9(a)に示すように、生成されたRDF表現に対応して、作業テーブル306の(URI,テンプレート)フィールドにエントリが格納される。
ここで、http://example.com/Req/3が要求されたと仮定する。このURIのRDF表現のためにはデータが未取得である。このとき作業テーブル306において、http://example.com/Req/3を含む行1と同じテンプレートを含む行として行3がある。そこで、行1と行3のURIから得られる値{3,6}をパラメータとしてテンプレートを具体化して実行すると、以下のとおりとなる。
SELECT id,title,assembly
FROM part
WHERE [PARAMETERS]
とあるのを、
[PARAMETERS] → id = {3,6}と具体化し、
SELECT id,title,assembly
FROM part
WHERE id = 3 or id = 6
とする。
このようにして、一回の実行で行1と行3(id=3とid=6)のデータが同時に得られる。得られたデータに対してFillEntriesを実行することで、図9(b)に示すように、結果を行1と行3に記録する。
行1のデータが得られたので、RDF表現出力ルーチン308は、これを使ってhttp://example.com/Req/3のRDF表現を生成する。そして、生成されたRDF表現に含まれるURIを作業テーブルに登録する。このあとhttp://example.com/Req/6が要求されたときは、必要なデータが作業テーブル306に取得されているので、既存ツールへのアクセスを発生させずにRDF表現を生成することができる。
このときの、GetTemplatesとFillEntriesの処理内容は次のとおりである。
サブルーチンGetTemplates:URIuからテンプレート集合Tを求める、すなわち
1. uを受け取る (例:http://example.com/Req/3)
2. uを分解して、構成要素としてパス要素名を得る(例:Req)
3. 対応表から、パス要素名を含む行を検索する(例:{行2})
4. 各行のテンプレート名集合の和を求めて、返す (例:{getReqs})
サブルーチンFillEntries:オブジェクト集合Oを作業テーブルに記録する、すなわち
1. オブジェクト集合Oのうちの1要素をoとする。
2. oのタイプ名を求める (例:Requirement)
3. oの属性集合を求める (例:{id=3,title=shaft,rev=4})
4. 対応表から、oのタイプ名と各属性を組み合わせた属性名を含む行を検索する (例:Requirement.revを含む行3)
5. 行が見つかった場合、行のパス要素名と属性値からURIを生成して、作業テーブルに属性名と生成したURIの組を登録する(例:行3のパス要素名ReqRevと属性値4から、URIhttp://example.com/ReqRev/4を生成して、rev=http://example.com/ReqRev/4を登録)。
6. 行が見つからなかった場合、作業テーブルに属性名と属性値の組を登録する(例:title=shaftを登録)
7. 4から6を、oの全ての属性に対して繰り返す。
8. 1から7を、Oの全ての要素oに対して繰り返す。
以上のように、特定の実施例に従い、本発明を説明してきたが、本発明は、特定のオペレーティング・システムやプラットフォームに限定されず、任意のコンピュータ・システム上で実現可能であることを、この分野の当業者なら理解するであろう。
また、Linked Data変換/提供ツールがアクセスする既存ツールは、リレーショナル・データベースのレコードに限らず、RDFへの変換に対応する任意のデータであってよい。リレーショナル・データベースのレコードでない場合は、SQLでなく、所定のAPIによりデータにアクセスすることになる。
106、112・・・既存ツール
114 ・・・Linked Data変換/提供ツールを格納するコンピュータ
116 ・・・Linked Data使用ツールを格納するコンピュータ
118 ・・・Linked Data使用ツール(クローラ付き)を格納するコンピュータ
204 ・・・CPU
206 ・・・主記憶
208 ・・・ハードディスク・ドライブ
304 ・・・対応表
306 ・・・作業テーブル
308 ・・・RDF表現出力ルーチン
310 ・・・GetTemplatesルーチン
312 ・・・FillEntriesルーチン

Claims (14)

  1. コンピュータの処理により、問い合わせのレコードに対するRDF表現を作成する方法であって、
    RDF表現のURIを生成するためのテンプレートの、少なくともパス要素名と、それに対応するテンプレート名を含む対応表を参照するステップと、
    対応するRDF表現を作成するためのURIを受け取るステップと、
    受け取った前記URIを解析して、パス要素名を得るステップと、
    前記受け取った前記URIと、パス要素名と、前記対応表を参照して得られた該パス要素名に対応するテンプレート名の組み合わせを作業テーブルに保存するステップと、
    前記作業テーブルに複数のエントリが蓄積された段階で、さらに対応するRDF表現を作成するためのURIを受け取ったことに応答して、該受け取ったURIを解析しパス要素名を得て、前記作業テーブルから、同じテンプレート名を持つエントリをまとめて具体化したテンプレートを実行し、実行結果から当該パス要素名をもつ複数のエントリを順次取得して、各エントリにおけるURIとテンプレート名の組に基づき、URIを生成するステップを有する、
    方法。
  2. 前記テンプレートの実行が、非RDFの既存データにアクセスすることを含む、請求項1に記載の方法。
  3. 前記非RDFの既存データがリレーショナル・データベースを含み、前記テンプレートの実行が、SQL式による照会を含む、請求項2に記載の方法。
  4. 前記作業テーブルが、主記憶に確保された領域である、請求項1に記載の方法。
  5. 前記作業テーブルが、未取得データを管理するためのキューを構成する第1の記憶域と、取得済みデータを管理するためのキューを構成する第2の記憶域からなり、取得された前記作業テーブルのエントリを、前記第1の記憶域から前記第2の記憶域の先頭に移動するステップと、前記第1の記憶域と前記第2の記憶域において、エントリの数が所定の限界を超えたことに応答して、キューの末尾のエントリを削除するステップをさらに含む、請求項4に記載の方法。
  6. コンピュータの処理により、問い合わせのレコードに対するRDF表現を作成するプログラムであって、前記コンピュータに、
    RDF表現のURIを生成するためのテンプレートの、少なくともパス要素名と、それに対応するテンプレート名を含む対応表を参照するステップと、
    対応するRDF表現を作成するためのURIを受け取るステップと、
    受け取った前記URIを解析して、パス要素名を得るステップと、
    前記受け取った前記URIと、パス要素名と、前記対応表を参照して得られた該パス要素名に対応するテンプレート名の組み合わせを作業テーブルに保存するステップと、
    前記作業テーブルに複数のエントリが蓄積された段階で、さらに対応するRDF表現を作成するためのURIを受け取ったことに応答して、該受け取ったURIを解析しパス要素名を得て、前記作業テーブルから、同じテンプレート名を持つエントリをまとめて具体化したテンプレートを実行し、実行結果から当該パス要素名をもつ複数のエントリを順次取得して、各エントリにおけるURIとテンプレート名の組に基づき、URIを生成するステップを実行させる、
    プログラム。
  7. 前記テンプレートの実行が、非RDFの既存データにアクセスすることを含む、請求項6に記載のプログラム。
  8. 前記非RDFの既存データがリレーショナル・データベースを含み、前記テンプレートの実行が、SQL式による照会を含む、請求項7に記載のプログラム。
  9. 前記作業テーブルが、主記憶に確保された領域である、請求項6に記載のプログラム。
  10. 前記作業テーブルが、未取得データを管理するためのキューを構成する第1の記憶域と、取得済みデータを管理するためのキューを構成する第2の記憶域からなり、取得された前記作業テーブルのエントリを、前記第1の記憶域から前記第2の記憶域の先頭に移動するステップと、前記第1の記憶域と前記第2の記憶域において、エントリの数が所定の限界を超えたことに応答して、キューの末尾のエントリを削除するステップをさらに含む、請求項9に記載のプログラム。
  11. コンピュータの処理により、問い合わせのレコードに対するRDF表現を作成するシステムであって、
    主記憶と、
    記憶手段と、
    前記記憶手段に保存された、
    RDF表現のURIを生成するためのテンプレートの、少なくともパス要素名と、それに対応するテンプレート名を含む対応表と、
    対応するRDF表現を作成するためのURIを受け取る手段と、
    受け取った前記URIを解析して、パス要素名を得る手段と、
    前記受け取った前記URIと、パス要素名と、前記対応表を参照して得られた該パス要素名に対応するテンプレート名の組み合わせを、前記主記憶中の作業テーブルに保存する手段と、
    前記作業テーブルに複数のエントリが蓄積された段階で、さらに対応するRDF表現を作成するためのURIを受け取ったことに応答して、該受け取ったURIを解析しパス要素名を得て、前記作業テーブルから、同じテンプレート名を持つエントリをまとめて具体化したテンプレートを実行し、実行結果から当該パス要素名をもつ複数のエントリを順次取得して、各エントリにおけるURIとテンプレート名の組に基づき、URIを生成する手段を有する、
    システム。
  12. 前記テンプレートの実行が、非RDFの既存データにアクセスすることを含む、請求項11に記載のシステム。
  13. 前記非RDFの既存データがリレーショナル・データベースを含み、前記テンプレートの実行が、SQL式による照会を含む、請求項12に記載のシステム。
  14. 前記作業テーブルが、未取得データを管理するためのキューを構成する第1の記憶域と、取得済みデータを管理するためのキューを構成する第2の記憶域からなり、取得された前記作業テーブルのエントリを、前記第1の記憶域から前記第2の記憶域の先頭に移動する手段と、前記第1の記憶域と前記第2の記憶域において、エントリの数が所定の限界を超えたことに応答して、キューの末尾のエントリを削除する手段をさらに含む、請求項11に記載のシステム。
JP2012089261A 2012-04-10 2012-04-10 Rdf表現の生成方法、プログラム、及びシステム Expired - Fee Related JP5871700B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012089261A JP5871700B2 (ja) 2012-04-10 2012-04-10 Rdf表現の生成方法、プログラム、及びシステム
US13/850,356 US9262447B2 (en) 2012-04-10 2013-03-26 Generating RDF expression technical field

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012089261A JP5871700B2 (ja) 2012-04-10 2012-04-10 Rdf表現の生成方法、プログラム、及びシステム

Publications (2)

Publication Number Publication Date
JP2013218554A true JP2013218554A (ja) 2013-10-24
JP5871700B2 JP5871700B2 (ja) 2016-03-01

Family

ID=49293176

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012089261A Expired - Fee Related JP5871700B2 (ja) 2012-04-10 2012-04-10 Rdf表現の生成方法、プログラム、及びシステム

Country Status (2)

Country Link
US (1) US9262447B2 (ja)
JP (1) JP5871700B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9940410B2 (en) 2014-05-26 2018-04-10 International Business Machines Corporation Method of searching for relevant node, and computer therefor and computer program

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020174126A1 (en) * 2001-05-15 2002-11-21 Britton Colin P. Methods and apparatus for real-time business visibility using persistent schema-less data storage
JP2006011739A (ja) * 2004-06-24 2006-01-12 Internatl Business Mach Corp <Ibm> オントロジを利用する装置、コンピュータシステムおよびデータ処理方法
JP2006302085A (ja) * 2005-04-22 2006-11-02 Kddi Corp プロファイル管理装置およびコンピュータプログラム
JP2007293838A (ja) * 2006-04-04 2007-11-08 Bruce Henderson コンテンツ変換システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6687781B2 (en) * 2001-05-01 2004-02-03 Zettacom, Inc. Fair weighted queuing bandwidth allocation system for network switch port
JP2005242934A (ja) 2004-02-27 2005-09-08 Kddi Corp プロファイル管理装置およびそのプログラム
US20090043778A1 (en) * 2007-08-08 2009-02-12 Microsoft Corporation Generating etl packages from template
KR101474344B1 (ko) * 2008-07-11 2014-12-18 시게이트 테크놀로지 엘엘씨 캐시 플러시 제어 방법 및 이를 이용한 데이터 저장 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020174126A1 (en) * 2001-05-15 2002-11-21 Britton Colin P. Methods and apparatus for real-time business visibility using persistent schema-less data storage
JP2006011739A (ja) * 2004-06-24 2006-01-12 Internatl Business Mach Corp <Ibm> オントロジを利用する装置、コンピュータシステムおよびデータ処理方法
JP2006302085A (ja) * 2005-04-22 2006-11-02 Kddi Corp プロファイル管理装置およびコンピュータプログラム
JP2007293838A (ja) * 2006-04-04 2007-11-08 Bruce Henderson コンテンツ変換システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6015035365; 本間 維 外2名: '"非標準フォーマットを含む埋め込み型メタデータの抽出と統合によるメタデータ生成手法"' 情報処理学会研究報告 2011(平成23)年度▲4▼ [CD-ROM] , 20111215, pp.1-8, 一般社団法人情報処理学会 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9940410B2 (en) 2014-05-26 2018-04-10 International Business Machines Corporation Method of searching for relevant node, and computer therefor and computer program
US9965551B2 (en) 2014-05-26 2018-05-08 International Business Machines Corporation Method of searching for relevant node, and computer therefor and computer program
US10678824B2 (en) 2014-05-26 2020-06-09 International Business Machines Corporation Method of searching for relevant node, and computer therefor and computer program

Also Published As

Publication number Publication date
US9262447B2 (en) 2016-02-16
JP5871700B2 (ja) 2016-03-01
US20130268566A1 (en) 2013-10-10

Similar Documents

Publication Publication Date Title
US11200229B2 (en) Expansion of a tree hierarchy
US7917463B2 (en) System and method for data warehousing and analytics on a distributed file system
US20140351233A1 (en) System and method for continuous analytics run against a combination of static and real-time data
US7676474B2 (en) Systems and methods for finding log files generated by a distributed computer
US7539669B2 (en) Methods and systems for providing guided navigation
McHugh et al. Integrated access to big data polystores through a knowledge-driven framework
US7844612B2 (en) Method for pruning objects in a service registry and repository
US10120886B2 (en) Database integration of originally decoupled components
US20130318160A1 (en) Device and Method for Sharing Data and Applications in Peer-to-Peer Computing Environment
US20090055367A1 (en) System and program products for pruning objects in a service registry and repository
Rietveld et al. Linked data-as-a-service: the semantic web redeployed
US20110035371A1 (en) Data comparison system
US11294901B1 (en) Isolating the performance of functions included in queries
US6862590B2 (en) Converting expressions to execution plans
JP5871700B2 (ja) Rdf表現の生成方法、プログラム、及びシステム
Frey et al. Managing and compiling data dependencies for semantic applications using databus client
Jannaschk et al. A generic database schema for CIDOC-CRM data management
Shao et al. Federated catalogue for discovering earth observation data
Li et al. Fedsa: A data federation platform for law enforcement management
US20170139982A1 (en) Processing of Data Chunks Using a Database Calculation Engine
Borjigin et al. Dataspace and its application in digital libraries
US20080162553A1 (en) Method and system for generating string-based addresses
Firozbakht et al. Cloud computing service discovery framework for IaaS and PaaS models
May et al. Managed query processing within the SAP HANA database platform
Sarinder et al. Biodiversity information retrieval across networked data sets

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141001

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150811

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150908

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151125

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151217

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160112

R150 Certificate of patent or registration of utility model

Ref document number: 5871700

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees