JP7147258B2 - データ生成方法、データ生成プログラム及び情報処理装置 - Google Patents

データ生成方法、データ生成プログラム及び情報処理装置 Download PDF

Info

Publication number
JP7147258B2
JP7147258B2 JP2018093899A JP2018093899A JP7147258B2 JP 7147258 B2 JP7147258 B2 JP 7147258B2 JP 2018093899 A JP2018093899 A JP 2018093899A JP 2018093899 A JP2018093899 A JP 2018093899A JP 7147258 B2 JP7147258 B2 JP 7147258B2
Authority
JP
Japan
Prior art keywords
data
predicate
node
unit
matching
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.)
Active
Application number
JP2018093899A
Other languages
English (en)
Other versions
JP2019200532A (ja
Inventor
修也 阿部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018093899A priority Critical patent/JP7147258B2/ja
Priority to US16/377,355 priority patent/US11023459B2/en
Publication of JP2019200532A publication Critical patent/JP2019200532A/ja
Application granted granted Critical
Publication of JP7147258B2 publication Critical patent/JP7147258B2/ja
Active 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/24Querying
    • G06F16/242Query formulation
    • G06F16/2423Interactive query statement specification based on a database schema
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • 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/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/244Grouping and aggregation
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24561Intermediate data storage techniques for performance improvement
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2462Approximate or statistical queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データ生成方法、データ生成プログラム及び情報処理装置に関する。
近年、さまざまな知識に関するデータを集め、蓄積し、そして検索することへの関心が高まっている。このようなデータは、何らかのグラフデータモデルで表されると考えられる。このようなグラフデータモデルの一つとして、RDF(Resource Description Framework)が知られている。
RDFのデータモデルでは、トリプル(triple)と称される主語(subject)、述語(predicate)及び目的語(object)の3つの要素でリソースにおける関係が表現される。グラフの分野の用語では、主語と述語がノードに相当し、述語がエッジ又はリンクに相当する。すなわち、トリプルは、グラフにおける二つのノードと、それをつなぐエッジに対応する。RDFでは、このトリプルと呼ばれる主語、述語及び目的語の3つの組が最小単位である。RDFデータセットは、トリプルの集合である。述語は、属性又はプロパティと呼ばれる場合があり、目的語は属性の値又はプロパティの値と呼ばれる場合がある。
例えば、「富士通、業種、電気機器」で表されるトリプルは、主語が「富士通」であり、述語が「業種」であり、目的語が「電気機器」であり、「富士通の業種は電気機器である」ことをあらわす。ここで、主語及び述語はUR(Uniform Resource Identifier)で表され、目的語はUR又は文字列リテラルとも呼ばれる文字列で表される。
ここで、CSV(Comma Separated Values)などで記述されたテーブルの値に対応するトリプルをRDFデータセットから見つける処理が考えられる。この処理を行うことで、テーブルを用いた処理においてテーブルの情報としては存在せずにRDFデータセットとして存在する情報を利用できるようになる。例えば、企業のオープンデータのRDFデータセットに、銀行が保持する融資先企業の財務情報が登録されたテーブルを結合して、融資の可否を決定する場合などに用いられる。
このようなRDFデータセットとテーブルとの結合を行う場合、従来は以下に示す手順で結合が行われてきた。まず、テーブルの値を利用してクエリを構築し、条件を満たす主語及び述語を特定する。次に、特定した各述語について、テーブルの列毎にスコアを計算する。ここで、スコアとは、各述語がテーブルの列に対応する述語であることの正答らしさを表す値であり、各列において述語が出現する頻度を表す。次に、テーブルの行毎に各列のラベルが述語、値が目的語となる共通の主語を見つけるためのクエリを作成し、条件を満たす主語を特定する。そして、最もスコアの高い述語で照合した結果の方が次にスコアの高い述語で照合した結果よりも多く照合できた場合、それを最終的な結果とする。最もスコアの高い述語で照合した結果の方が次にスコアの高い述語で照合した結果よりも照合できた数が少ない場合、2番目にスコアの高い述語で照合した結果と3番目にスコアの高い述語で照合した結果とを比較する。ある特定のスコアの述語で照合した結果がその次にスコアの高い述語で照合した結果よりも多く照合できるまでこの比較を繰り返す。そして、特定のスコアの述語を最終的な結果とする。
ここで、RDFデータセットを用いたデータ収集の技術として、複数のリソース間の関連付けを示すRDF記述の関連付け情報を記憶し、リソースに対する操作に応じて関連付け情報を更新する従来技術がある。また、数値表データにおける数値が入力された入力領域の並びに応じて各数値の属性情報を特定する従来技術がある。
特開2006-221312号公報 特開2017-37486号公報
しかしながら、グラフデータのデータセットは、様々な種類の物や事及びその間の関係を表す。例えば、グラフデータには、グラフ構造の柔軟性を利用して複数のデータベースを統合したような形で様々な種類のデータが混在するデータセットが存在する。具体的な例としては、グラフデータの1つであるRDFのデータセットには、企業、関連企業、人物、製品及びイベントなどの情報がその関係とともに表現されたものもある。
テーブルの値とRDFデータセットにおける目的語との照合による主語及び述語の検出処理では、その値に関係するRDFデータセットに含まれる様々な種類の情報と照合される。例えば、テーブルデータの各行が企業に関する情報の場合、テーブルデータの値をRDFデータセットと照合すると、RDFデータセット中の企業以外にも企業に関する人物や製品なども照合される。照合結果において、テーブルデータの行の情報の種類とRDFデータの種類が同じ場合は答えの確からしさは高くなるが、種類が異なる場合には答えの確からしさが低くなる。そのため、テーブルデータ上の情報に対するRDFデータセット内の情報の単なる出現頻度を表すスコアでは上述の照合においてテーブルの値に対する正しい主語及び述語を導き出せないおそれがある。
また、従来のスコア計算では、照合結果のRDFデータセットにおいて列の値と数多く対応する述語がその列に対応する述語として確からしいという仮説の上で計算が行われる。すなわち、この仮説を表現するスコアを用いて各列に対応する述語が決定される。しかし、照合結果には上述したように様々な述語が混在する。そのため、テーブルデータにおける行の情報の種類とRFDデータセットの種類が異なる述語のスコアが高くなるおそれがある。このことから、上述した仮説の下では正しい述語を導くことは困難である。例えば、テーブルデータで企業の名称を表現する列に対応するRDFデータセットにおける述語は実際には「名称」である。しかし、企業の名称の照合を行う場合に、異なる種類のRDFデータセットとの照合の結果、人物に関連する「所属」のスコアが高くなるといった事態が発生するおそれがある。
また、リソースに対する操作に応じて関連付け情報を更新する従来技術を用いても、異なる種類のRDFデータセットとの照合による述語の選択ミスや従来のスコアの不正確性による述語の選択ミスについては考慮されていない。したがって、この従来技術を用いてもデータの関連付けの確度を向上させることは困難である。また、数値表データにおける入力領域の並びに応じて各数値の属性情報を特定する従来技術は、異なるグループのデータ同士の関連付けへの適応は考慮されておらず、データの関連付けの確度を向上させることは困難である。
開示の技術は、上記に鑑みてなされたものであって、データの関連付けの精度を向上させるデータ生成方法、データ生成プログラム及び情報処理装置を提供することを目的とする。
本願の開示するデータ生成方法、データ生成プログラム及び情報処理装置の一つの態様において、情報処理装置が、第1の軸を表す参照元データ及び第2の軸を表すとともにノードとエッジとで構成されるグラフ構造を有する参照先データを取得し、取得した前記参照元データの値を用いて前記参照先データのノードを照合し、照合された複数の照合ノードとの間でエッジを共有する第1のノードの種類を表す第2のノードを特定し、前記第1のノードと前記照合ノードとの間の第1エッジのドメインの定義を表す第3のノードを特定し、前記第2のノード及び前記第3のノードを基に、前記参照元データと前記参照先データとを対応付ける。
1つの側面では、本発明は、データの関連付けの精度を向上させることができる。
図1は、情報処理装置のブロック図である。 図2は、テーブル型のデータの一例を表す図である。 図3は、RDFデータの一例を表す図である。 図4は、テーブルの値を用いた照合処理を表す図である。 図5は、主語のタイプの取得結果を表す図である。 図6は、述語のドメインの取得結果を表す図である。 図7は、各行に関連する主語の抽出処理を表す図である。 図8は、データの結合処理全体のフローチャートである。 図9は、クエリの構築及びテーブルの値を用いた照合処理のフローチャートである。 図10は、第1照合部により構築されるクエリ及び照合結果の一例を表す図である。 図11は、追加情報の取得処理のフローチャートである。 図12は、追加情報取得のクエリ及び追加情報の取得結果を表す図である。 図13は、述語のスコア計算処理のフローチャートである。 図14は、述語のスコアの算出結果の一例を表す図である。 図15は、クエリの構築並びに述語及び目的語の照合処理のフローチャートである。 図16は、情報処理装置のハードウェア構成の一例を表す図である。
以下に、本願の開示するデータ生成方法、データ生成プログラム及び情報処理装置の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示するデータ生成方法、データ生成プログラム及び情報処理装置が限定されるものではない。
図1は、情報処理装置のブロック図である。本実施例に係る情報処理装置1は、図1に示すように、RDFデータ格納部11、SPARQL処理部12、第1照合部13、追加情報取得部14、中間データ用DB15、スコア計算部16、第2照合部17、一時格納部18及び結果管理部19を有する。
さらに、情報処理装置1は、テーブル2及びRDFデータセット3にアクセスできる。テーブル2は、行列構造を有する。そして、テーブル2の列毎に項目が割り当てられ、各列に並んだ値は項目ごとに分類される。さらに、テーブル2の行毎に対応する値が並べられる。テーブル2は、例えば、CSVファイルなどである。
図2は、テーブル型のデータの一例を表す図である。テーブル2は、例えば、図2に示す形式のデータを保持する。テーブル2は、各列が、例えば、名称、所在地及び創業年などの項目を表す。そして、テーブル2では、項目毎に各項目に応じた値が記載される。そして、テーブル2は、行毎に各項目の値が対応する。このテーブル2が、「参照元データ」の一例にあたる。そして、テーブルの各列に対応する項目で表されるデータの並び、すなわち各行におけるデータの並びが「第1の軸」の一例にあたる。
RDFデータセット3は、ノード間をエッジで結んで関係を表すグラフ構造を有する。エッジはあるノードから他のノードへと延びる。主語、述語及び目的語で表されるトリプルでは、エッジの出発点のノードが主語を表す。また、エッジが述語を表す。そして、エッジの到達点のノードがエッジの出発点のノードである主語からエッジによって導かれる目的語である。このRDFデータセット3が、「参照先データ」の一例にあたる。そして、グラフ構造により表されるデータの並びが「第2の軸」にあたる。
図3は、RDFデータの一例を表す図である。RDFデータセット3は、図3の場合、_:a、_:a1、_:a2、_:b及び_:cといった主語を有する。主語は、URで表される。ここでは、アンダーバー、コロン及び文字の形式で表示された情報は、そこで表示された文字に対応するURを表す。また、RDFデータセット3は、図3の場合、<名称>、<所在地>、<業種>、<主要株主>及び<開設>といった述語を有する。述語も、URで表される。ここでは、<>で囲われた文字は、その文字に対応するURを表す。さらに、RDFデータセット3は、図3の場合、“A社”、“A市”、“製造業”といった目的語を有する。目的語は、UR又はリテラル(文字列)である。ここでは、目的語が文字列で表されるとし、ダブルクォーテーションマークで囲われた文字はその文字列そのものを表す。
さらに、RDFデータには、タイプを表す述語が存在する。タイプとは、特定の主語又は述語の種類である。タイプを表す述語を有するトリプルの場合、目的語は主語のタイプを表す情報である。また、RDFデータには、ドメインを表す述語が存在する。ドメインとは、特定の述語が取りうる主語のタイプの制約である。例えば、特定の述語の定義のドメインとして「XXX」と記述されている場合、その特定の述語の主語のタイプは「XXX」である。また、ドメインが記載されていない場合、その述語の主語のタイプに制限はない。ドメインを表す述語を有するトリプルの場合、目的語はそのリテラルの主語が述語となった場合のドメインを表す情報である。
RDFデータ格納部11は、記憶装置を有する。そして、RDFデータ格納部11は、RDFデータセット3からRDFデータを取得し格納する。以下では、RDFデータ格納部11に格納されたRDFデータの集合をRDFストアとよぶ。
SPARQL処理部12は、RDFデータ格納部11が保持するRDFストアから指定された値を目的語とする主語及び述語の取得を指示するクエリの入力を第1照合部13から受ける。そして、SPARQL処理部12は、第1照合部13から受信したクエリにしたがい、RDFデータ格納部11に格納されたRDFストアから指定された値を目的語とする主語又は述語を表すRDFデータを取得する。ここで、SPARQL処理部12は、RDFデータにおける主語又は述語を取得する場合、値としてURを取得する。また、SPARQL処理部12は、RDFデータにおける目的語を取得する場合、値としてリテラルを取得する。そして、SPARQL処理部12は、取得した値をクエリである出力元の第1照合部13へ出力する。
また、SPARQL処理部12は、RDFデータ格納部11が保持するRDFストアから指定された主語のタイプの情報又は指定された述語のドメインの情報の取得を指示するクエリの入力を追加情報取得部14から受ける。そして、SPARQL処理部12は、追加情報取得部14から受信したクエリにしたがい、RDFデータ格納部11に格納されたRDFストアからタイプの情報又はドメインの情報にあたるRDFデータの値を取得する。そして、SPARQL処理部12は、取得した値をクエリの出力元である追加情報取得部14へ出力する。
第1照合部13は、テーブル2の各値を取得する。そして、第1照合部13は、RDFストアに含まれるデータとテーブル2の各値を照合する。
具体的には、第1照合部13は、取得した各値を目的語とする主語及び述語を取得するクエリを作成する。図4は、テーブルの値を用いた照合処理を表す図である。例えば、図4に示すテーブル2を有する場合で説明する。この場合、テーブル2の値として、富士通株式会社、神奈川県川崎市及び1935という値がある。そこで、第1照合部13は、富士通株式会社、神奈川県川崎市又は1935を目的語とする主語と述語を取得するためのクエリ21を作成する。クエリ21における「?s」は、任意の主語を表す。また、「?p1、?p2、?p3」は、それぞれ任意の述語を表す。さらに、これらの文字列を目的語とする主語及び述語が存在しない場合に無視をするために、クエリ21では、optional句が用いられる。
そして、第1照合部13は、作成したクエリをSPARQL処理部12へ出力し、クエリで指定した語を目的語とする主語及び述語の取得を要求する。その後、第1照合部13は、クエリで指定した語を目的語とする主語及び述語の入力をSPARQL処理部12から受ける。この、第1照合部13によるテーブル2の値を目的語とする主語及び述語の抽出が、テーブル2の値を用いたRDFデータセット3の照合にあたる。そして、テーブル2の値に対応する主語及び述語が抽出できた場合を、照合ができたという。この照合によりテーブル2の値と照合されたRDFデータセットにおける目的語が、「照合ノード」の一例にあたる。
例えば、第1照合部13は、図4に示すクエリ21による取得要求の結果としてRDFデータ22を取得する。例えば、第1照合部13は、富士通株式会社及び神奈川県川崎市という目的語に対して、名称及び所在地を述語とする主語「_:1」を取得する。この場合、「_:1」は、RDFデータ22の補足で示した富士通株式会社を表すURである。また、第1照合部13は、富士通株式会社及び神奈川県川崎市という目的語に対して、名称及び所在地を述語とする主語「_:2」を取得する。この場合、「_:2」は、RDFデータ22の補足で示した川崎フロンターレを表すURである。また、第1照合部13は、1935という目的語に対して、開設を述語とする主語「_:3」を取得する。この場合、「_:3」は、RDFデータ22の補足で示した築地市場を表すURである。
第1照合部13は、取得した主語及び述語を表すデータを中間データ用DB(Data Base)15に格納する。この取得した主語が、「第1のノード」にあたる。そして、取得した述語が、「第1エッジ」の一例にあたる。さらに、この第1照合部が、「照合部」の一例にあたる。
追加情報取得部14は、中間データ用DB15に格納された全ての主語を取得し、重複を取り除く。次に、追加情報取得部14は、重複を取り除いた主語から1つを選択する。次に、追加情報取得部14は、選択した主語のタイプを取得するクエリを作成する。例えば、追加情報取得部14は、選択した主語をそのまま主語とし、主語のタイプを取得する述語を用いることで、目的語として選択した主語のタイプを目的語として取得するクエリを作成できる。
そして、追加情報取得部14は、作成したクエリをSPARQL処理部12へ出力し、選択した主語のタイプの取得を要求する。その後、追加情報取得部14は、選択した主語のタイプの入力をSPARQL処理部12から受ける。次に、追加情報取得部14は、取得した主語のタイプを選択した主語に対応付けて中間データ用DB15に格納する。追加情報取得部14は、重複を取り除いた主語から1つずつ順次選択して、タイプの取得及び中間データ用DB15への格納を、重複を取り除いた主語全てについて繰り返す。
図5は、主語のタイプの取得結果を表す図である。例えば、追加情報取得部14は、主語である「_:1」のタイプとして、タイプ31及び32を取得する。タイプ31は、組織を表すURであり、タイプ32は、会社を表すURである。そして、追加情報取得部14は、「_:1」のタイプとしてタイプ31及び32を中間データ用DB15に格納する。また、追加情報取得部14は、主語である「_:2」のタイプとして、タイプ33を取得する。タイプ33は、組織を表すURである。そして、追加情報取得部14は、「_:2」のタイプとしてタイプ332を中間データ用DB15に格納する。さらに、追加情報取得部14は、主語である「_:3」のタイプとして、タイプ34を取得する。タイプ34は、市場を表すURである。そして、追加情報取得部14は、「_:3」のタイプとしてタイプ33を中間データ用DB15に格納する。この主語のタイプが、「第2のノード」の一例にあたる。
次に、追加情報取得部14は、中間データ用DB15に格納された全ての述語を取得し、重複を取り除く。次に、追加情報取得部14は、重複を取り除いた述語から1つを選択する。次に、追加情報取得部14は、選択した述語のドメインを取得するクエリを作成する。例えば、追加情報取得部14は、選択した述語を主語とし、rdfs:domainというコマンドを述語とすることで、目的語として選択した述語のドメインを目的語として取得するクエリを作成できる。
そして、追加情報取得部14は、作成したクエリをSPARQL処理部12へ出力し、選択した述語のドメインの取得を要求する。その後、追加情報取得部14は、選択した述語のドメインの入力をSPARQL処理部12から受ける。次に、追加情報取得部14は、取得した述語のドメインを選択した述語に対応付けて中間データ用DB15に格納する。追加情報取得部14は、重複を取り除いた述語から1つずつ順次選択して、ドメインの取得及び中間データ用DB15への格納を、重複を取り除いた主語全てについて繰り返す。
図6は、述語のドメインの取得結果を表す図である。例えば、追加情報取得部14は、述語である主要株主のドメインとして、ドメイン41及び42を取得する。ドメイン41は、組織を表すURであり、ドメイン42は、会社を表すURである。そして、追加情報取得部14は、主要株主のドメインとしてドメイン41及び42を中間データ用DB15に格納する。また、追加情報取得部14は、述語である所在地のドメインとして、ドメイン43及び44を取得する。ドメイン43は、組織を表すURであり、ドメイン44は、会社を表すURである。そして、追加情報取得部14は、所在地のドメインとしてドメイン43及び44を中間データ用DB15に格納する。この述語のドメインが、「第3のノード」の一例にあたる。また、この追加情報取得部14が、「特定部」の一例にあたる。
中間データ用DB15は、テーブル2とRDFデータとを対応付ける処理の中間データを格納するためのデータベースである。中間データ用DB15は、予め作成され情報処理装置1に格納されてもよいし、テーブル2とRDFデータとを対応付ける処理の開始時に、情報処理装置1により生成されてもよい。中間データ用DB15は、第1照合部13が取得したテーブル2の各値を目的語とする主語及び述語、並びに、各主語のタイプ及び各述語のドメインが格納される。
スコア計算部16は、中間データ用DB15に格納された主語のタイプとして用いられるタイプを、重複を除いて取得する。以下では、ここで取得されたタイプを「制約タイプ」という。そして、スコア計算部16は、各制約タイプのそれぞれのスコアを算出する。このスコアは、各制約タイプが照合においてどれだけ有力な候補となりうるかを示す値である。以下に、スコア計算部16による各制約タイプのスコアの算出の詳細を説明する。
まず、スコア計算部16は、テーブル2の列数及び行数を取得する。また、スコア計算部16は、RDFデータ格納部11に格納されたRDFストアを参照し、全てのRDFデータの中に含まれる異なる主語の数を表す主語の異なり数を算出する。また、スコア計算部16は、RDFストアに含まれる全てのRDFデータにおいて、各制約タイプを有する主語の異なり数を取得する。また、スコア計算部16は、テーブル2において主語のタイプが各制約タイプであるとの制約のもとで照合できた列の最大数を算出する。
そして、スコア計算部16は、次の数式(1)を用いて各制約タイプのスコアを算出する。ここでは、制約タイプの中から選択した制約タイプをタイプtと表す。
Figure 0007147258000001
ここで、Uは、タイプtのスコアである。Cはテーブル2の列数である。Rは、テーブル2の行数である。Nは、RDFストアに含まれる全てのRDFデータにおける主語の異なり数である。nは、RDFストアに含まれる全てのRDFデータにおいて、タイプtをタイプとして持つ主語の異なり数である。ct,rは、主語がタイプtであるとの制約の下で照合できた列の最大数である。
ここで、数式(1)において、N/nは、頻繁に出現するタイプは抽象的なタイプであると考え、スコアを小さくするために用いられる。また、ct,r/Cは、より多くの列を満たすタイプのスコアを大きくするために用いられる。
次に、スコア計算部16は、全ての述語を、重複を除いて中間データ用DB15から取得する。さらに、スコア計算部16は、各述語のドメインを中間データ用DB15から取得する。そして、スコア計算部16は、算出した各制約タイプのスコアを用いて、次の数式(2)により各列に対応する述語のスコアを算出する。述語のスコアとは、ある列に特定の述語を対応させた場合の確からしさを表す。
Figure 0007147258000002
Tは、制約タイプの種類の数である。Sp,cは、述語pで列cのスコアである。また、ft,p,c,rは、以下の条件を満たす関数である。すなわち、行rの列cに対応するタイプtの主語と述語pが存在し、述語pのドメインの制約を主語のタイプtが満たしている場合、ft,p,c,rは1である。また、行rの列cに対応するタイプtの主語と述語pは存在するが、述語pのドメインの制約を主語のタイプtが満たさない場合、ft,p,c,rは0.5である。また、行rの列cに対応するタイプtの主語と述語pは存在しないが、行rに対応するタイプtの主語が存在し、述語pのドメインの制約を主語のタイプtが満たさない場合、ft,p,c,rは0.5である。以上の上限以外の場合、ft,p,c,rは0である。ft,p,c,rは、特定の述語がドメインの制約をどの程度満たしているかを表す。
その後、スコア計算部16は、算出した各列に対応する述語のスコアを第2照合部17へ出力する。このスコア計算部16により算出された述語のスコアが、「相関の強度」にあたる。
第2照合部17は、テーブル2の各列に対応する述語のスコアの入力をスコア計算部16から受ける。第2照合部17は、テーブル2の列の中から1列を選択する。次に、第2照合部17は、その項目の列における最もスコアの高い述語と2番目にスコアの高い述語を特定する。この最もスコアの高い述語と2番目にスコアの高い述語が、その列を表す述語の最初の候補となる。そして、第2照合部17は、最もスコアの高い述語を述語とし、選択した列の各値が目的語となる主語を取得するクエリを作成する。次に、第2照合部17は、作成したクエリをSPARQL処理部12へ出力し、主語の取得を要求する。その後、第2照合部17は、最もスコアの高い述語を述語とし、選択した列の各値が目的語となる主語の入力をSPARQL処理部12から受ける。同様にして、第2照合部17は、2番目にスコアの高い述語を述語とし、選択した列の各値が目的語となる主語をSPARQL処理部12から取得する。
この、第2照合部17による目的語及び述語に対応する主語の抽出が、テーブル2の値及び選択した目的語による照合にあたる。そして、照合に用いた目的語及び述語に対応する主語が抽出できた場合を、照合ができたという。
そして、最もスコアの高い述語で照合した結果の方が、2番目にスコアの高い述語で照合した結果よりも多く照合できた場合、第2照合部17は、最もスコアの高い述語が、選択した列を表すと決定する。この場合、第2照合部17は、決定した結果を一時格納部18へ格納する。
これに対して、最もスコアの高い述語で照合した結果の方が、2番目にスコアの高い述語で照合した結果よりも少なかった場合、第2照合部17は、3番目にスコアの高い述語で選択した列について照合を行う。そして、2番目にスコアの高い述語で照合した結果の方が、3番目にスコアの高い述語で照合した結果よりも多く照合できた場合、第2照合部17は、2番目に高い述語が、選択した列を表すと決定する。このように、第2照合部17は、特定のスコアの述語で照合した結果が次にスコアの高い述語で照合した結果よりも多く照合できるまで、照合及び比較の処理を繰り返す。
第2照合部17は、列毎に対応する述語の決定結果の一時格納部18への格納を繰りかえす。そして、第2照合部17は、最終的に全ての列について対応する述語の決定結果を一時格納部18へ格納する。ここで、テーブル2の各列が「項目」の一例にあたる。そして、各列について対応する述語の特定が、「各項目に対応する第1エッジの特定」の一例にあたる。
次に、第2照合部17は、一時格納部18に格納された各列に対応する述語の情報を用いて、各列に対応する述語とし各列の各値を目的語とする主語を取得するクエリを列毎に作成する。その後、第2照合部17は、作成したクエリをSPARQL処理部12へ出力する。これにより、第2照合部17は、行毎に、各列に対応する述語を述語とし各列の各値を目的語とする各列に共通の主語の取得を要求する。その後、第2照合部17は、行毎の、各列の各値に対応する各列に共通する主語をSPARQL処理部12から取得する。この主語の取得が、「項目毎に特定された第1エッジを照合ノードとの間で共有し、且つ、各項目で共通する第1のノードの抽出」の一例にあたる。
そして、第2照合部17は、各列の各値に対応する各列に共通の主語の情報及び一時格納部18に格納された各列に対応する述語の情報を結果管理部19へ出力する。この行毎の各列の各値に対応する各列に共通の主語が、各行の関連情報と考えられる。
この第2照合部18が、「特定部」の一例にあたる。また、テーブル2の各行が、「行データ」の一例にあたる。そして、このテーブル2の各行とRDFデータである関連情報との対応付けが、「抽出した各第1のノードと各前記行データとの対応付け」及び「参照元データと参照先データとの対応付け」の一例にあたる。
図7は、各行に関連する主語の抽出処理を表す図である。ここでは、テーブル2の1行目を表す述語が<名称>であり、2行目を表す述語が<所在地>であり、3行目を表す述語が<創業年>であると、第2照合部17が決定した場合で説明する。第2照合部17は、テーブル2の1行目について、1列目では述語が<名称>であり目的語が富士通株式会社となり、2列目では述語が<所在地>であり目的語が神奈川県川崎市となり、3列目では述語が<創業年>であり目的語が1935となる各行共通の主語を取得するクエリ71を作成する。この場合、これらを目的語及び述語とする主語が存在しない場合に無視をするために、クエリ71では、optional句が用いられる。そして、第2照合部17は、作成したクエリ71を用いてSPARQL処理部12に主語の取得を要求する。その結果、第2照合部17は、RDFデータ72で表されるような、<名称>を述語の場合に富士通株式会社を目的語とし、且つ<所在地>が述語の場合に神奈川県川崎市を目的語とする主語として「_:f」を抽出する。ここで、RDFデータ72では、「_:f」は、述語を<業種>とし目的語を電気機器ともするが、これは、照合の対象ではなくRDFデータセット3に存在する情報である。
結果管理部19は、各列の各値に対応する主語の情報及び一時格納部18に格納された各列に対応する述語の情報の入力を第2照合部17から受ける。そして、結果管理部19は、各列の各値に対応する主語の情報及び一時格納部18に格納された各列に対応する述語の情報をテーブル2の各行及び各列の関連情報として記憶する。この関連情報により、テーブル2のデータとRDFデータセット3のデータが結合される。例えば、テーブル2の行を検索する場合に、その行に対応する関連情報及びその関連情報に紐付けられたRDFデータセット3の値が取得される。このように、情報処理装置1によるテーブル2の各行とRDFデータである関連情報との対応づけにより、テーブルデータの値に対応する適切なトリプルをRDFデータの中から確実に検出することができる。すなわち、この対応付けを用いることで、テーブルの情報に無いRDFデータセットの情報を有効に利用することが可能となる。
また、結果管理部19は、テーブル2を用いて処理を行う他の装置へこの記憶した情報を出力し、他の装置がこの関連情報を用いて処理を行ってもよい。さらに、結果管理部19は、関連情報をモニタなどの出力装置に出力させて利用者に関連情報と通知してもよい。
次に、図8を参照して、情報処理装置1によるデータの結合処理全体の流れについて説明する。図8は、データの結合処理全体のフローチャートである。
情報処理装置1の管理者は、テーブル2、中間データを保持するためのDBである中間データ用DB15及び照合結果を格納する一時領域である一時格納部18を用意する。また、管理者は、図示しない入力装置を用いてRDFデータセット3からRDFデータをロードして情報処理装置1のRDFデータ格納部11に格納することで、RDFストアを用意する(ステップS1)。
次に、第1照合部13は、テーブル2の値を目的語とする主語及び述語を取得するクエリを構築し、テーブル2の値を用いたRDFデータの照合を行う(ステップS2)。
次に、追加情報取得部14は、主語のタイプ及び述語のドメインを追加情報として取得する(ステップS3)。
次に、スコア計算部16は、各列に対する述語のスコアを計算する(ステップS4)。
次に、第2照合部17は、列毎にスコアにしたがって述語を選択し、選択した述語によりテーブル2の各列の値が目的語となる主語を取得するクエリを構築し、述語及び目的語の照合を行い、照合結果を用いて各行及び各列の関連情報を抽出する(ステップS5)。
その後、結果管理部19は、第2照合部17により抽出された各行及び各列の関連情報の保管、他の装置への送信、及び、利用者への通知を行う(ステップS6)。
次に、図9及び10を参照して、第1照合部13によるクエリの構築及びテーブル2の値を用いた照合処理の流れについて説明する。図9は、クエリの構築及びテーブルの値を用いた照合処理のフローチャートである。図9で示した処理は、図8におけるステップS2において実行される処理の一例にあたる。また、図10は、第1照合部により構築されるクエリ及び照合結果の一例を表す図である。ここでは、第1照合部13が図10に示すテーブル2及びRDFデータ23を用いて照合を行う場合で説明する。
第1照合部13は、テーブル2における未選択の行を1行選択する(ステップS101)。
次に、第1照合部13は、選択した行の各値を読み込む(ステップS102)。
次に、第1照合部13は、読み込んだ行の各値を用いて、各値を目的語とする主語及び述語を取得するためのクエリを構築する(ステップS103)。例えば、第1照合部13は、図10に示すテーブル2の1行目の各値を目的語とする主語及び述語を取得するためのクエリ24を構築する。クエリ24は、A社、A市及び1935のそれぞれを目的語とする主語及び述語を取得するためのクエリである。クエリ24では、指定した文字列を目的語とする主語及び述語が存在しない場合に無視をするために、optional句が用いられる。
次に、第1照合部13は、構築したクエリをSPARQL処理部12へ出力する。その後、第1照合部13は、RDFデータ格納部11に格納されたRDFストアからデータをSPARQL処理部12を介して取得する(ステップS104)。例えば、第1照合部13は、クエリ24の応答として図10のデータ25を取得する。具体的には、第1照合部13は、A社を目的語とする、主語及び述語として「_:a」及び<名称>を取得する。他にも、第1照合部13は、A社を目的語とする、主語及び述語として「_:a1」及び<主要株主>を取得する。また、第1照合部13は、A市を目的語とする、主語及び述語として「_:a」及び<所在地>を取得する。また、第1照合部13は、1935を目的語とする、主語及び述語として「_:a2」及び<開設>を取得する。
次に、第1照合部13は、取得したデータを中間データ用DB15に格納する(ステップS105)。例えば、第1照合部13は、データ25を中間データ用DB15に格納する。
その後、第1照合部13は、テーブル2における全ての行の選択が完了したか否かを判定する(ステップS106)。選択していない行が残っている場合(ステップS106:否定)、第1照合部13は、ステップS101へ戻る。
これに対して、全ての行の選択が完了した場合(ステップS106:肯定)、第1照合部13は、照合処理を終了する。
次に、図11及び12を参照して、追加情報取得部14による追加情報の取得処理の流れについて説明する。図11は、追加情報の取得処理のフローチャートである。図11は、図8におけるステップS3において実行される処理の一例にあたる。図12は、追加情報取得のクエリ及び追加情報の取得結果を表す図である。ここで、図12に示すデータ25が中間データ用DB15に格納されている場合で説明する。
追加情報取得部14は、中間データ用DB15における主語の重複を取り除く(ステップS202)。例えば、追加情報取得部14は、図12のデータ25では1行目の主語と2行目の主語とが「_:a」であり重複する。そこで、追加情報取得部14は、主語として「_:a」を1つ残す。すなわち、主語は、「_:a」、「_:a1」及び「_:a2」の3つになる。
次に、追加情報取得部14は、重複を除いた主語の中から未選択の主語を1つ選択する(ステップS203)。
次に、追加情報取得部14は、選択した主語のタイプを取得するクエリを構築する(ステップS204)。例えば、追加情報取得部14は、図12におけるクエリ35を構築する。クエリ35は、主語である「_:a」のタイプを取得するためのクエリである。ここで、クエリ35における述語aは、タイプを取得するための述語である。
次に、追加情報取得部14は、構築したクエリをSPARQL処理部12へ出力して、選択した主語のタイプをSPARQL処理部12から取得する(ステップS205)。例えば、追加情報取得部14は、データ25の各主語のタイプとしてデータ50の3~7行目までの目的語を各主語のタイプとして取得する。ここでは、データ50において値が最初に格納されている行を0行とした。追加情報取得部14は、1つの主語に対して複数のタイプを取得する場合もある。
次に、追加情報取得部14は、取得したタイプの情報を中間データ用DB15に格納する(ステップS206)。
その後、追加情報取得部14は、中間データ用DB15に格納された全ての主語のタイプの取得が完了したか否かを判定する(ステップS207)。タイプの取得が完了していない主語が残っている場合(ステップS207:否定)、追加情報取得部14は、ステップS203へ戻る。
これに対して、全ての主語のタイプの取得が完了した場合(ステップS207:肯定)、追加情報取得部14は、中間データ用DB15における述語の重複を取り除く(ステップS208)。例えば、追加情報取得部14は、図12のデータ25では述語の重複が無い。そこで、追加情報取得部14は、重複を除いた述語として、<名称>、<所在地>、<主要株主>及び<開設>の4つを取得する。
次に、追加情報取得部14は、重複を除いた述語の中から未選択の述語を1つ選択する(ステップS209)。
次に、追加情報取得部14は、選択した述語のドメインを取得するクエリを構築する(ステップS210)。例えば、追加情報取得部14は、図12におけるクエリ45を構築する。クエリ45は、述語である<所在地>のドメインを取得するためのクエリである。ここで、rdfs:domainは、主語のドメインを取得するための述語である。
次に、追加情報取得部14は、構築したクエリをSPARQL処理部12へ出力して、選択した述語のドメインをSPARQL処理部12から取得する(ステップS211)。例えば、追加情報取得部14は、データ25の各主語のタイプとしてデータ50の8~12行目までの目的語を各述語のドメインとして取得する。追加情報取得部14は、1つの述語に対して複数のドメインを取得する場合もある。
次に、追加情報取得部14は、取得したドメインの情報を中間データ用DB15に格納する(ステップS212)。
その後、追加情報取得部14は、中間データ用DB15に格納された全ての述語のドメインの取得が完了したか否かを判定する(ステップS213)。ドメインの取得が完了していない述語が残っている場合(ステップS213:否定)、追加情報取得部14は、ステップS209へ戻る。
これに対して、全ての述語のドメインの取得が完了した場合(ステップS213:肯定)、追加情報取得部14は、追加情報の取得処理を終了する。この場合、中間データ用DB15には、データ50が格納される。ここで、データ50では、主語とタイプの関係及び述語とドメインの関係をトリプルの形式で格納したが、格納方法はこれに限らない。
次に、図13及び14を参照して、スコア計算部16による述語のスコア計算処理の流れについて説明する。図13は、述語のスコア計算処理のフローチャートである。図13は、図8におけるステップS4において実行される処理の一例にあたる。図14は、述語のスコアの算出結果の一例を表す図である。
スコア計算部16は、数式(1)を用いて各タイプのスコアを算出する(ステップS301)。
次に、スコア計算部16は、中間データ用DB15から未選択の述語を1つ選択する(ステップS302)。
次に、スコア計算部16は、テーブル2から未選択の列を1つ選択する(ステップS303)。
次に、スコア計算部16は、数式(2)に算出した各タイプのスコアを用いて、選択した述語の選択した列におけるスコアを算出する(ステップS304)。
次に、スコア計算部16は、選択した述語について全ての列のスコアの算出が完了したか否かを判定する(ステップS305)。スコアを算出していない列が残っている場合(ステップS305:否定)、スコア計算部16は、ステップS303へ戻る。
これに対して、全ての列のスコアの算出が完了した場合(ステップS305:肯定)、スコア計算部16は、中間データ用DB15に格納された全ての述語についてスコアの算出が完了したか否かを判定する(ステップS306)。
スコアを算出していない述語が残っている場合(ステップS306:否定)、スコア計算部16は、ステップS302へ戻る。これに対して、全ての述語のスコアの算出が完了した場合(ステップS306:肯定)、スコア計算部16は、スコア算出処理を終了する。
スコア計算部16は、例えば、図14に示すスコア表60に記載した各述語の各列に対するスコアを取得する。例えば、スコア計算部16は、<名称>という述語のテーブル2の0列目におけるスコアを0.3と算出する。また、スコア計算部16は、<名称>という述語のテーブル2の1列目におけるスコアを0.2と算出する。また、スコア計算部16は、<名称>という述語のテーブル2の2列目におけるスコアを0.1と算出する。同様に、スコア計算部16は、<所在地>という述語のテーブル2の0列目におけるスコアを0.2と算出する。また、スコア計算部16は、<所在地>という述語のテーブル2の1列目におけるスコアを0.3と算出する。また、スコア計算部16は、<所在地>という述語のテーブル2の2列目におけるスコアを0.1と算出する。
次に、図15を参照して、第2照合部17によるクエリの構築並びに述語及び目的語の照合処理の流れについて説明する。図15は、クエリの構築並びに述語及び目的語の照合処理のフローチャートである。図15は、図8におけるステップS5において実行される処理の一例にあたる。
第2照合部17は、述語の番号を表すNを-1に設定し、列の番号を表すCを-1に設定する(ステップS401)。
次に、第2照合部17は、Cを1つインクリメントする(ステップS402)。
次に、第2照合部17は、Nを1つインクリメントする(ステップS403)。
次に、第2照合部17は、N番目にスコアの高い述語及びN+1番目にスコアの高い述語を取得する(ステップS404)。
次に、第2照合部17は、N番目にスコアの高い述語が照合できた行数を表すiを0に設定する。また、第2照合部17は、N+1番目にスコアの高い述語が照合できた行数を表すjを0に設定する(ステップS405)。
次に、第2照合部17は、テーブル2の行の中から未選択の行を1つ選択する(ステップS406)。
次に、第2照合部17は、C列目の値とN番目にスコアの高い述語からクエリQ0を構築する(ステップS407)。
次に、第2照合部17は、C列目の値とN+1番目にスコアの高い述語からクエリQ1を構築する(ステップS408)。
次に、第2照合部17は、Q0を用いてRDFストアからデータの取得を実行する(ステップS409)。この場合、第2照合部17は、N番目にスコアの高い述語を用いた場合にC列目の値を目的語とする主語を取得する。
そして、第2照合部17は、データを取得したか否かを判定する(ステップS410)。データを取得しない場合(ステップS410:否定)、第2照合部17は、ステップS412へ進む。
これに対して、データを取得した場合(ステップS410:肯定)、第2照合部17は、iを1つインクリメントする(ステップS411)。
次に、第2照合部17は、Q1を用いてRDFストアからデータの取得を実行する(ステップS412)。この場合、第2照合部17は、N+1番目にスコアの高い述語を用いた場合にC列目の値を目的語とする主語を取得する。
そして、第2照合部17は、データを取得したか否かを判定する(ステップS413)。データを取得しない場合(ステップS413:否定)、第2照合部17は、ステップS415へ進む。
これに対して、データを取得した場合(ステップS413:肯定)、第2照合部17は、jを1つインクリメントする(ステップS414)。
その後、第2照合部17は、テーブル2の全行の選択が完了したか否かを判定する(ステップS415)。テーブル2の行の中にまだ選択していない行が残っている場合(ステップS415:否定)、第2照合部17は、ステップS406へ戻る。
これに対して、テーブル2の全行の選択が完了した場合(ステップS415:肯定)、第2照合部17は、N+1番目にスコアの高い述語のスコアが最低のスコアか否かを判定する(ステップS416)。N+1番目にスコアの高い述語のスコアが最低のスコアの場合、(ステップS416:肯定)、第2照合部17は、Nを0とする(ステップS147)。
これに対して、N+1番目にスコアの高い述語のスコアが最低のスコアでない場合、(ステップS416:否定)、第2照合部17は、行数iが行数j未満か否かを判定する(ステップS418)。行数iが行数j未満の場合(ステップS418:肯定)、第2照合部17は、ステップS403へ戻る。
一方、行数iが行数j以上の場合(ステップS418:否定)、第2照合部17は、N番目に高いスコアの述語がテーブル2のC列目を表すという情報を一時格納部18へ格納する(ステップS419)。
第2照合部17は、Cがテーブル2における最後の列か否か、すなわち全ての列を選択したか否かを判定する(ステップS420)。Cが最後の列でない場合(ステップS420:否定)、第2照合部17は、ステップS402へ戻る。
これに対して、Cが最後の列の場合(ステップS420:肯定)、第2照合部17は、一時格納部18に格納したテーブル2の各列に対応する述語の情報を用いてクエリを構築する(ステップS421)。具体的には、第2照合部17は、各行において、各列に対応する述語を用いた場合に各列の値が目的語となる全ての列に共通の主語を抽出するクエリを構築する。
そして、第2照合部17は、構築したクエリを用いてデータをRDFストアから取得する(ステップS422)。具体的には、行毎に、第2照合部17は、各列に対応する述語を用いた場合に各列の値が目的語となる全ての列に共通の主語の情報を取得する。
以上に説明したように本実施例に係るデータ生成方法は、テーブルの値を用いて照合を行い主語及び述語を取得し、その主語及び述語についての制限を表す追加情報をRDFデータセットから取得する。そして、本実施例に係るデータ生成方法は、取得した制限を用いて列毎に述語のスコアを算出し、算出したスコアを用いて各列に対応する述語を求める。さらに、本実施例に係るデータ生成方法は、求めた述語を用いて照合を行い、行毎に対応する主語を抽出する。
このように、本実施例に係るデータ生成方法は、RDFデータセットの主語のタイプ及び述語のドメインの制約といったオントロジーの情報を用いることで、各列を表す適切な述語を導くことができる。そして、適切な述語を用いて照合を行うことで各行に対応する適切な主語を抽出することができる。これにより、テーブル型のデータとRDFデータセットとを関連付けの精度を向上させることができ、テーブル型のデータとRDFデータセットとを適切に結合することができる。したがって、テーブルデータの値に対応する適切なトリプルをRDFデータの中から確実に検出することができ、テーブルの情報に無いRDFデータセットの情報を有効に利用することが可能となる。
(ハードウェア構成)
上述してきた実施例に係る情報処理装置1は、例えば図16に示すようなハードウェア構成を有する。図16は、情報処理装置のハードウェア構成の一例を表す図である。情報処理装置1は、CPU(Central Processing Unit)91、RAM(Random Access Memory)92、ROM(Read Only Memory)93及びHDD(Hard Disk Drive)94を有する。さらに、情報処理装置1は、通信インターフェイス(I/F:Interface)95、入出力インターフェイス(I/F)96、及びメディアインターフェイス(I/F)97を有する。
CPU91は、ROM93またはHDD94に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM93は、情報処理装置1の起動時にCPU91によって実行されるブートプログラムや、情報処理装置1のハードウェアに依存するプログラム等を格納する。
HDD94は、CPU91によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス95は、ネットワークを介して他の機器からデータを受信してCPU91へ送り、CPU91が生成したデータをネットワークを介して他の機器へ送信する。
CPU91は、入出力インターフェイス96を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU91は、入出力インターフェイス96を介して、入力装置からデータを取得する。また、CPU91は、生成したデータを入出力インターフェイス96を介して出力装置へ出力する。
メディアインターフェイス97は、記録媒体98に格納されたプログラムまたはデータを読み取り、RAM92を介してCPU91に提供する。CPU91は、かかるプログラムを、メディアインターフェイス97を介して記録媒体98からRAM92上にロードし、ロードしたプログラムを実行する。記録媒体98は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、情報処理装置1のRAM92及びHDD94は、RDFデータ格納部11、中間データ用DB15及び一時格納部18の機能を実現する。さらに、情報処理装置1のCPU91は、RAM92上にロードされたプログラムを実行することにより、SPARQL処理部12、第1照合部13、追加情報取得部14、スコア計算部16、第2照合部17及び結果管理部19の機能を実現する。情報処理装置1のCPU91は、これらのプログラムをHDD94から読み取って実行するが、他の例として、記録媒体98からプログラムを読みとってもよいし、他の装置からネットワークを介してこれらのプログラムを取得してもよい。
1 情報処理装置
2 テーブル
3 RDFデータセット
11 RDFデータ格納部
12 SPARQL処理部
13 第1照合部
14 追加情報取得部
15 中間データ用DB
16 スコア計算部
17 第2照合部
18 一時格納部
19 結果管理部

Claims (5)

  1. 情報処理装置が、
    第1の軸を表す参照元データ及び第2の軸を表すとともにノードとエッジとで構成されるグラフ構造を有する参照先データを取得し、
    取得した前記参照元データの値を用いて前記参照先データのノードを照合し、照合された複数の照合ノードとの間で第1エッジを共有する第1のノードの種類を表す第2のノードを特定し、
    前記第1のノードと前記照合ノードとの間の前記第1エッジのドメインの定義を表す第3のノードを特定し、
    前記第2のノード及び前記第3のノードを基に、前記参照元データと前記参照先データとを対応付ける
    ことを特徴とするデータ生成方法。
  2. 前記第2のノード及び前記第3のノード、並びに、前記第1エッジの前記参照元データに対する相関の強度を基に、前記参照元データの値と前記参照先データの値とを対応付けることで、前記参照元データと前記参照先データとを対応付ける
    ことを特徴とする請求項1に記載のデータ生成方法。
  3. 前記参照元データは、前記第1の軸上の値の種類を表す項目毎に分類され、
    前記第2のノード及び前記第3のノードを基に、各前記項目に対応する前記第1エッジを特定し、前記参照元データの前記第1の軸方向に複数の値を有する行データ毎に、前記項目毎に特定された前記第1エッジを前記照合ノードとの間で共有し、且つ、各前記項目で共通する前記第1のノードを抽出し、抽出した各前記第1のノードと各前記行データとを対応付けることで、前記参照元データと前記参照先データとを対応付ける
    ことを特徴とする請求項1又は2に記載のデータ生成方法。
  4. 第1の軸を表す参照元データ及び第2の軸を表すとともにノードとエッジとで構成されるグラフ構造を有する参照先データを取得し、
    取得した前記参照元データの値を用いて前記参照先データのノードを照合し、照合された複数の照合ノードとの間で第1エッジを共有する第1のノードの種類を表す第2のノードを特定し、
    前記第1のノードと前記照合ノードとの間の前記第1エッジのドメインの定義を表す第3のノードを特定し、
    前記第2のノード及び前記第3のノードを基に、前記参照元データと前記参照先データとを対応付ける
    処理をコンピュータに実行させることを特徴とするデータ生成プログラム。
  5. 第1の軸を表す参照元データ及び第2の軸を表すとともにノードとエッジとで構成されるグラフ構造を有する参照先データを取得し、取得した前記参照元データの値を用いて前記参照先データのノードを照合する照合部と、
    前記照合部により照合された複数の照合ノードとの間で第1エッジを共有する第1のノードの種類を表す第2のノードを特定し、且つ、前記第1のノードと前記照合ノードとの間の前記第1エッジのドメインの定義を表す第3のノードを特定する特定部と、
    前記第2のノード及び前記第3のノードを基に、前記参照元データと前記参照先データとを対応付ける結合部と
    を備えたことを特徴とする情報処理装置。
JP2018093899A 2018-05-15 2018-05-15 データ生成方法、データ生成プログラム及び情報処理装置 Active JP7147258B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018093899A JP7147258B2 (ja) 2018-05-15 2018-05-15 データ生成方法、データ生成プログラム及び情報処理装置
US16/377,355 US11023459B2 (en) 2018-05-15 2019-04-08 Method, apparatus for data generation, and non-transitory computer-readable storage medium for storing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018093899A JP7147258B2 (ja) 2018-05-15 2018-05-15 データ生成方法、データ生成プログラム及び情報処理装置

Publications (2)

Publication Number Publication Date
JP2019200532A JP2019200532A (ja) 2019-11-21
JP7147258B2 true JP7147258B2 (ja) 2022-10-05

Family

ID=68532647

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018093899A Active JP7147258B2 (ja) 2018-05-15 2018-05-15 データ生成方法、データ生成プログラム及び情報処理装置

Country Status (2)

Country Link
US (1) US11023459B2 (ja)
JP (1) JP7147258B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021125182A (ja) * 2020-02-10 2021-08-30 富士通株式会社 情報処理プログラム、情報処理方法、情報処理装置、グラフデータのデータ構造及びグラフデータの生成方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060235823A1 (en) 2005-04-18 2006-10-19 Oracle International Corporation Integrating RDF data into a relational database system
US20100036862A1 (en) 2008-08-08 2010-02-11 Oracle International Corporation Representing and manipulating RDF data in a relational database management system
JP2014137820A (ja) 2013-01-15 2014-07-28 Fujitsu Ltd データ記憶システム、データ記憶システムで実行されるプログラム及び方法
US20150347620A1 (en) 2014-05-30 2015-12-03 International Business Machines Corporation Generating a mapping rule for converting relational data into rdf format data
JP2017517069A (ja) 2014-05-30 2017-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation リレーショナル・データベースに対するセマンティック・マッピングの自動生成

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006221312A (ja) 2005-02-09 2006-08-24 Konica Minolta Holdings Inc データ管理システム、およびプログラム
US7680862B2 (en) * 2005-04-18 2010-03-16 Oracle International Corporation Rewriting table functions as SQL strings
US9129038B2 (en) * 2005-07-05 2015-09-08 Andrew Begel Discovering and exploiting relationships in software repositories
US8037108B1 (en) * 2009-07-22 2011-10-11 Adobe Systems Incorporated Conversion of relational databases into triplestores
US9098566B2 (en) * 2011-05-24 2015-08-04 Oracle International Corporation Method and system for presenting RDF data as a set of relational views
JP6716873B2 (ja) 2015-08-10 2020-07-01 富士通株式会社 データ処理方法、データ処理プログラムおよび情報処理装置
US10572485B2 (en) * 2017-04-28 2020-02-25 Oracle International Corporation In-memory denormalized RDF data

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060235823A1 (en) 2005-04-18 2006-10-19 Oracle International Corporation Integrating RDF data into a relational database system
US20100036862A1 (en) 2008-08-08 2010-02-11 Oracle International Corporation Representing and manipulating RDF data in a relational database management system
JP2014137820A (ja) 2013-01-15 2014-07-28 Fujitsu Ltd データ記憶システム、データ記憶システムで実行されるプログラム及び方法
US20150347620A1 (en) 2014-05-30 2015-12-03 International Business Machines Corporation Generating a mapping rule for converting relational data into rdf format data
JP2017517069A (ja) 2014-05-30 2017-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation リレーショナル・データベースに対するセマンティック・マッピングの自動生成

Also Published As

Publication number Publication date
JP2019200532A (ja) 2019-11-21
US20190354520A1 (en) 2019-11-21
US11023459B2 (en) 2021-06-01

Similar Documents

Publication Publication Date Title
US10180992B2 (en) Atomic updating of graph database index structures
US11734233B2 (en) Method for classifying an unmanaged dataset
US10831725B2 (en) Apparatus, systems, and methods for grouping data records
JP5328808B2 (ja) データをクラスタリングする方法、システム、装置およびその方法を適用するためのコンピュータ・プログラム
JP5626733B2 (ja) 個人情報匿名化装置及び方法
US20170255708A1 (en) Index structures for graph databases
US20180357329A1 (en) Supporting tuples in log-based representations of graph databases
US20180144061A1 (en) Edge store designs for graph databases
US10445370B2 (en) Compound indexes for graph databases
CN112116331A (zh) 一种人才推荐方法及装置
US20180357278A1 (en) Processing aggregate queries in a graph database
JP2004030221A (ja) 変更対象テーブル自動検出方法
CN115328883B (zh) 一种数据仓库建模方法和系统
JP4237813B2 (ja) 構造化文書管理システム
US20180357328A1 (en) Functional equivalence of tuples and edges in graph databases
JP7147258B2 (ja) データ生成方法、データ生成プログラム及び情報処理装置
US10216792B2 (en) Automated join detection
US20190243811A1 (en) Generation method, generation device, and computer-readable recording medium
JP2020013413A (ja) 判断支援装置および判断支援方法
US20180144060A1 (en) Processing deleted edges in graph databases
KR102588688B1 (ko) 데이터 분석 방법 및 시스템
JP6655582B2 (ja) データ統合支援システム及びデータ統合支援方法
KR102375668B1 (ko) 그래프 표현 학습 모델의 생성 방법
CN110941952A (zh) 一种完善审计分析模型的方法及装置
KR101083425B1 (ko) 데이터베이스 검출시스템과 이를 이용한 검출방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220407

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: 20220823

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220905

R150 Certificate of patent or registration of utility model

Ref document number: 7147258

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150