Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6790905B2 - Detection method, detection device and detection program - Google Patents
[go: Go Back, main page]

JP6790905B2 - Detection method, detection device and detection program - Google Patents

Detection method, detection device and detection program Download PDF

Info

Publication number
JP6790905B2
JP6790905B2 JP2017029419A JP2017029419A JP6790905B2 JP 6790905 B2 JP6790905 B2 JP 6790905B2 JP 2017029419 A JP2017029419 A JP 2017029419A JP 2017029419 A JP2017029419 A JP 2017029419A JP 6790905 B2 JP6790905 B2 JP 6790905B2
Authority
JP
Japan
Prior art keywords
common
data
predicates
dataset
data set
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
JP2017029419A
Other languages
Japanese (ja)
Other versions
JP2018136640A (en
Inventor
阿部 修也
修也 阿部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2017029419A priority Critical patent/JP6790905B2/en
Publication of JP2018136640A publication Critical patent/JP2018136640A/en
Application granted granted Critical
Publication of JP6790905B2 publication Critical patent/JP6790905B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)

Description

本発明は、データセット間で共通する値の検出技術に関する。 The present invention relates to a technique for detecting values common to datasets.

LOD(Linked Open Data)とは、コンピュータの処理に適したデータをウェブ上で公開および共有することであり、LODを実現するための技術としてRDF(Resource Description Framework)が知られている。RDFのデータモデルにおいては、主語、述語及び目的語を含むトリプルの形でウェブ上の資源(resource)に関する情報が記述される。 LOD (Linked Open Data) is to publish and share data suitable for computer processing on the Web, and RDF (Resource Description Framework) is known as a technology for realizing LOD. In the RDF data model, information about resources on the Web is described in the form of triples containing subjects, predicates and objects.

ウェブ上に公開されたRDFのデータセットは更新されることがあり、更新前のデータセットと更新後のデータセットとの間で共通するトリプル(或いは差分のトリプル)を検出する作業が発生することがある。 RDF datasets published on the web may be updated, and work will be required to detect common triples (or differential triples) between the dataset before update and the dataset after update. There is.

2つのデータセット間で共通するトリプルの検出には、RDB(Relational DataBase)のハッシュ結合(hash join)等において結合キーを見つける技術を使用することができる。但し、ハッシュ結合においてはメモリ使用量が膨大になるので、ハッシュ結合を使用することが適切ではない場合がある。 For the detection of triples common between two data sets, a technique of finding a join key in a hash join of RDB (Relational DataBase) or the like can be used. However, since the memory usage becomes enormous in hash join, it may not be appropriate to use hash join.

特開2016−184400号公報Japanese Unexamined Patent Publication No. 2016-184400 国際公開第2013/111287号International Publication No. 2013/111287 特開2013−246828号公報Japanese Unexamined Patent Publication No. 2013-246828

本発明の目的は、1つの側面では、複数のデータセットに共通するトリプルを、記憶領域の使用量を抑えつつ高速で検出するための技術を提供することである。 An object of the present invention is, in one aspect, to provide a technique for detecting triples common to a plurality of data sets at high speed while reducing the amount of storage area used.

一態様に係る検出方法は、主語、述語および目的語を含むトリプルを複数含む第1のデータセットおよび第2のデータセットから、第1のデータセットおよび第2のデータセットのいずれにも含まれる複数の共通主語および複数の共通述語を抽出し、複数の共通主語のいずれかを含み且つ複数の共通述語のいずれかを含むトリプルを、第1のデータセット及び第2のデータセットのそれぞれから抽出し、複数の共通主語の各々に対して複数の共通述語の各々が対応付けられ且つ当該複数の共通述語の各々に対して目的語の集合が対応付けられた第1のデータを、第1のデータセットから抽出したトリプルから生成し、複数の共通主語の各々に対して複数の共通述語の各々が対応付けられ且つ当該複数の共通述語の各々に対して目的語の集合が対応付けられた第2のデータを、第2のデータセットから抽出したトリプルから生成し、第1のデータおよび第2のデータのそれぞれについて、目的語の集合の各々から符号を生成する処理を実行する処理を含む。 The detection method according to one aspect is included in both the first data set and the second data set from the first data set and the second data set including a plurality of triples including a subject, a predicate and an object. Extract a plurality of common predicates and a plurality of common predicates, and extract a triple containing one of the plurality of common predicates and containing any of the plurality of common predicates from each of the first data set and the second data set. Then, the first data in which each of the plurality of common predicates is associated with each of the plurality of common subjects and the set of target words is associated with each of the plurality of common predicates is used as the first data. A first generated from a triple extracted from a data set, each of a plurality of common predicates is associated with each of a plurality of common subjects, and a set of target words is associated with each of the plurality of common predicates. The process of generating the data of 2 from the triple extracted from the second data set and executing the process of generating a code from each of the set of predicates for each of the first data and the second data is included.

1つの側面では、複数のデータセットに共通するトリプルを、記憶領域の使用量を抑えつつ高速で検出できるようになる。 On one side, triples common to multiple datasets can be detected at high speed while reducing storage space usage.

図1は、検出装置の機能ブロック図である。FIG. 1 is a functional block diagram of the detection device. 図2は、データセットDAの一例を示す図である。FIG. 2 is a diagram showing an example of the data set DA. 図3は、データセットDBの一例を示す図である。FIG. 3 is a diagram showing an example of a data set DB. 図4は、メインの処理フローを示す図である。FIG. 4 is a diagram showing a main processing flow. 図5は、第1抽出処理の処理フローを示す図である。FIG. 5 is a diagram showing a processing flow of the first extraction process. 図6は、ハッシュテーブルh1に登録される述語の一例を示す図である。FIG. 6 is a diagram showing an example of a predicate registered in the hash table h1. 図7は、ハッシュテーブルh2に登録される述語の一例を示す図である。FIG. 7 is a diagram showing an example of a predicate registered in the hash table h2. 図8は、第2抽出処理の処理フローを示す図である。FIG. 8 is a diagram showing a processing flow of the second extraction process. 図9は、ハッシュテーブルh3に登録される主語の一例を示す図である。FIG. 9 is a diagram showing an example of the subject registered in the hash table h3. 図10は、ハッシュテーブルh4に登録される主語の一例を示す図である。FIG. 10 is a diagram showing an example of a subject registered in the hash table h4. 図11は、生成処理の処理フローを示す図である。FIG. 11 is a diagram showing a processing flow of the generation process. 図12は、テーブルtの一例を示す図である。FIG. 12 is a diagram showing an example of the table t. 図13は、ハッシュテーブルhpの一例を示す図である。FIG. 13 is a diagram showing an example of the hash table hp. 図14は、処理対象のトリプルを示す図である。FIG. 14 is a diagram showing triples to be processed. 図15は、生成処理の処理フローを示す図である。FIG. 15 is a diagram showing a processing flow of the generation process. 図16は、テーブルtの一例を示す図である。FIG. 16 is a diagram showing an example of the table t. 図17は、テーブルtaの一例を示す図である。FIG. 17 is a diagram showing an example of the table ta. 図18は、テーブルtbの一例を示す図である。FIG. 18 is a diagram showing an example of the table tb. 図19は、比較処理の処理フローを示す図である。FIG. 19 is a diagram showing a processing flow of comparison processing. 図20は、共通するトリプルの一例を示す図である。FIG. 20 is a diagram showing an example of a common triple. 図21は、共通するトリプルの一例を示す図である。FIG. 21 is a diagram showing an example of a common triple. 図22は、共通するトリプルの一例を示す図である。FIG. 22 is a diagram showing an example of a common triple. 図23は、ハッシュ結合について説明するための図である。FIG. 23 is a diagram for explaining a hash join. 図24は、ソートマージ結合について説明するための図である。FIG. 24 is a diagram for explaining a sort merge join. 図25は、ネステッドループ結合について説明するための図である。FIG. 25 is a diagram for explaining a nested loop coupling. 図26は、コンピュータの機能ブロック図である。FIG. 26 is a functional block diagram of the computer.

図1に、本実施の形態の検出装置1の機能ブロック図を示す。例えばパーソナルコンピュータ或いはサーバ等である検出装置1は、第1抽出部101と、第2抽出部103と、生成部105と、比較部107と、データセット格納部111と、共通述語格納部113と、共通主語格納部115と、テーブル格納部117と、共通トリプル格納部119とを含む。 FIG. 1 shows a functional block diagram of the detection device 1 of the present embodiment. For example, the detection device 1 such as a personal computer or a server includes a first extraction unit 101, a second extraction unit 103, a generation unit 105, a comparison unit 107, a data set storage unit 111, and a common predicate storage unit 113. , The common subject storage unit 115, the table storage unit 117, and the common triple storage unit 119.

第1抽出部101、第2抽出部103、生成部105および比較部107は、図26におけるメモリ2501にロードされたプログラムが図26におけるCPU(Central Processing Unit)により実行されることで実現される。データセット格納部111、共通述語格納部113、共通主語格納部115、テーブル格納部117および共通トリプル格納部119は、メモリ2501又は図26におけるHDD(Hard Disk Drive)2505に設けられる。 The first extraction unit 101, the second extraction unit 103, the generation unit 105, and the comparison unit 107 are realized by executing the program loaded in the memory 2501 in FIG. 26 by the CPU (Central Processing Unit) in FIG. 26. .. The data set storage unit 111, the common predicate storage unit 113, the common subject storage unit 115, the table storage unit 117, and the common triple storage unit 119 are provided in the memory 2501 or the HDD (Hard Disk Drive) 2505 in FIG. 26.

第1抽出部101は、データセット格納部111に格納されているデータセットに基づき処理を実行し、処理結果を共通述語格納部113に格納する。第2抽出部103は、データセット格納部111に格納されているデータセット及び共通述語格納部113に格納されているデータに基づき処理を実行し、処理結果を共通主語格納部115に格納する。生成部105は、データセット格納部111に格納されているデータセット、共通述語格納部113に格納されているデータ及び共通主語格納部115に格納されているデータに基づき処理を実行し、処理結果をテーブル格納部117に格納する。比較部107は、テーブル格納部117に格納されているデータに基づき処理を実行し、処理結果を共通トリプル格納部119に格納する。 The first extraction unit 101 executes processing based on the data set stored in the data set storage unit 111, and stores the processing result in the common predicate storage unit 113. The second extraction unit 103 executes processing based on the data set stored in the data set storage unit 111 and the data stored in the common predicate storage unit 113, and stores the processing result in the common subject storage unit 115. The generation unit 105 executes processing based on the data set stored in the data set storage unit 111, the data stored in the common predicate storage unit 113, and the data stored in the common subject storage unit 115, and the processing result is obtained. Is stored in the table storage unit 117. The comparison unit 107 executes processing based on the data stored in the table storage unit 117, and stores the processing result in the common triple storage unit 119.

以下で説明する本実施の形態によれば、複数のデータセット(例えば、バージョンが異なる複数のデータセット)について、より少ない時間計算量で共通トリプルを見つけることができる。ここでは、データセットが以下のような特徴を有することが仮定される。
(1)トリプルの種類数が非常に多い(例えば数十億)
(2)述語の種類数が少ない(多くても100)
(3)主語の種類数および目的語の種類数の桁数は、トリプルの種類数の桁数と比較して数桁少ない
According to the present embodiment described below, a common triple can be found for a plurality of data sets (for example, a plurality of data sets having different versions) with a smaller amount of time calculation. Here, it is assumed that the dataset has the following characteristics.
(1) The number of types of triples is very large (for example, billions)
(2) The number of types of predicates is small (at most 100)
(3) The number of digits of the number of types of subject and the number of types of object is several orders of magnitude smaller than the number of digits of the number of types of triple.

以上の(1)乃至(3)の特徴は、一般的なRDFのデータが有する特徴であり、特に特徴的なデータセットであることが仮定されているわけではない。 The above features (1) to (3) are features of general RDF data, and are not assumed to be a particularly characteristic data set.

また、データセットのバージョン変更においては、以下のような変更を行うことが仮定される。
(4)いくつかの主語が追加または削除される(主語の数が2倍程度以上に増えることはない)
(5)いくつかの述語が追加または削除されることがある(述語の数が2倍程度以上に増えることはない)
(6)いくつかの目的語が追加または削除される(バージョン間の相違であるため、全体の一部の目的語が変更される)
In addition, when changing the version of the data set, it is assumed that the following changes are made.
(4) Some subjects are added or deleted (the number of subjects does not more than double)
(5) Some predicates may be added or deleted (the number of predicates will not more than double)
(6) Some objects are added or deleted (because of the difference between versions, some of the objects are changed)

以上の(4)乃至(6)の特徴は、RDFのデータのバージョン変更の特徴として一般的であり、特に特徴的な変更を行うことが仮定されているわけではない。 The above features (4) to (6) are general as features of changing the version of RDF data, and it is not assumed that a particularly characteristic change is made.

説明を簡単にするため、以下では、図2に示したデータセット(データセットDAと呼ぶ)と図3に示したデータセット(データセットDBと呼ぶ)とを例として説明を行う。データセットDAとデータセットDBとを比較すると、5つのトリプル((s1,p1,o1)、(s1,p2,o2)、(s1,p2,o3)、(s2,p1,o4)、(s2,p2,o5))が共通している。 In order to simplify the explanation, the data set shown in FIG. 2 (referred to as data set DA) and the data set shown in FIG. 3 (referred to as data set DB) will be described below as examples. Comparing the dataset DA and the dataset DB, five triples ((s1, p1, o1), (s1, p2, o2), (s1, p2, o3), (s2, p1, o4), (s2) , P2, o5)) are common.

図4乃至図21を用いて、検出装置1が実行する処理について説明する。 The process executed by the detection device 1 will be described with reference to FIGS. 4 to 21.

まず、第1抽出部101は、第1抽出処理を実行する(図4:ステップS1)。第1抽出処理については、図5乃至図7を用いて説明する。 First, the first extraction unit 101 executes the first extraction process (FIG. 4: step S1). The first extraction process will be described with reference to FIGS. 5 to 7.

まず、第1抽出部101は、メモリ2501におけるハッシュテーブルh1及びh2を初期化(例えば、値が登録されている場合にはクリア)する(図5:ステップS21)。 First, the first extraction unit 101 initializes the hash tables h1 and h2 in the memory 2501 (for example, clears the values if they are registered) (FIG. 5: step S21).

第1抽出部101は、データセット格納部111に格納されているデータセットDAから未処理のトリプルを1つ特定する(ステップS23)。 The first extraction unit 101 identifies one unprocessed triple from the data set DA stored in the data set storage unit 111 (step S23).

第1抽出部101は、ステップS23において特定したトリプルに含まれる述語と同じ述語がハッシュテーブルh1に登録されていない場合、ステップS23において特定したトリプルに含まれる述語をハッシュテーブルh1に登録する(ステップS25)。ステップS25の処理により、ハッシュテーブルh1に登録される述語のそれぞれがハッシュテーブルh1においてユニークになる。つまり、同じ種類の複数の述語がハッシュテーブルh1に登録されることはない。ハッシュテーブルh1には、図6に示すように述語が登録される。 When the same predicate as the predicate included in the triple specified in step S23 is not registered in the hash table h1, the first extraction unit 101 registers the predicate included in the triple specified in step S23 in the hash table h1 (step). S25). By the process of step S25, each of the predicates registered in the hash table h1 becomes unique in the hash table h1. That is, a plurality of predicates of the same type are not registered in the hash table h1. Predicates are registered in the hash table h1 as shown in FIG.

第1抽出部101は、データセットDAに未処理のトリプルが有るか判定する(ステップS27)。未処理のトリプルが有る場合(ステップS27:Yesルート)、処理はステップS23に戻る。 The first extraction unit 101 determines whether the data set DA has an unprocessed triple (step S27). If there are unprocessed triples (step S27: Yes route), processing returns to step S23.

一方、未処理のトリプルが無い場合(ステップS27:Noルート)、第1抽出部101は、データセット格納部111に格納されているデータセットDBから未処理のトリプルを1つ特定する(ステップS29)。 On the other hand, when there is no unprocessed triple (step S27: No route), the first extraction unit 101 identifies one unprocessed triple from the data set DB stored in the data set storage unit 111 (step S29). ).

第1抽出部101は、ステップS29において特定したトリプルに含まれる述語と同じ述語がハッシュテーブルh1に登録されており且つハッシュテーブルh2に登録されていない場合、ステップS29において特定したトリプルに含まれる述語をハッシュテーブルh2に登録する(ステップS31)。ステップS31の処理により、ハッシュテーブルh2に登録される述語のそれぞれがハッシュテーブルh2においてユニークになる。ハッシュテーブルh2には、図7に示すように述語が登録される。 When the same predicate as the predicate included in the triple specified in step S29 is registered in the hash table h1 and is not registered in the hash table h2, the first extraction unit 101 includes the predicate included in the triple specified in step S29. Is registered in the hash table h2 (step S31). By the process of step S31, each of the predicates registered in the hash table h2 becomes unique in the hash table h2. Predicates are registered in the hash table h2 as shown in FIG.

第1抽出部101は、データセットDBに未処理のトリプルが有るか判定する(ステップS33)。未処理のトリプルが有る場合(ステップS33:Yesルート)、処理はステップS29に戻る。一方、未処理のトリプルが無い場合(ステップS33:Noルート)、第1抽出部101は、ハッシュテーブルh2をハッシュテーブルhpとして共通述語格納部113に格納する。そして処理は呼び出し元に戻る。 The first extraction unit 101 determines whether or not there are unprocessed triples in the data set DB (step S33). If there are unprocessed triples (step S33: Yes route), processing returns to step S29. On the other hand, when there is no unprocessed triple (step S33: No route), the first extraction unit 101 stores the hash table h2 as the hash table hp in the common predicate storage unit 113. Then the process returns to the caller.

以上のような処理を実行すれば、データセットDAとデータセットDBに共通する述語(以下、共通述語と呼ぶ)を抽出することができるようになる。 By executing the above processing, a predicate common to the dataset DA and the dataset DB (hereinafter referred to as a common predicate) can be extracted.

図4の説明に戻り、第2抽出部103は、第2抽出処理を実行する(ステップS3)。第2抽出処理については、図8乃至図10を用いて説明する。 Returning to the description of FIG. 4, the second extraction unit 103 executes the second extraction process (step S3). The second extraction process will be described with reference to FIGS. 8 to 10.

まず、第2抽出部103は、メモリ2501におけるハッシュテーブルh3及びh4を初期化する(図8:ステップS41)。 First, the second extraction unit 103 initializes the hash tables h3 and h4 in the memory 2501 (FIG. 8: step S41).

第2抽出部103は、データセットDAから未処理のトリプルを1つ特定する(ステップS43)。 The second extraction unit 103 identifies one unprocessed triple from the dataset DA (step S43).

第2抽出部103は、ステップS43において特定したトリプルに含まれる述語と同じ述語がハッシュテーブルhpに登録されており且つステップS43において特定したトリプルに含まれる主語と同じ主語がハッシュテーブルh3に登録されていない場合、ステップS43において特定したトリプルに含まれる主語をハッシュテーブルh3に登録する(ステップS45)。ステップS45の処理により、ハッシュテーブルh3に登録される主語のそれぞれがハッシュテーブルh3においてユニークになる。ハッシュテーブルh3には、図9に示すように主語が登録される。 In the second extraction unit 103, the same predicate as the predicate included in the triple specified in step S43 is registered in the hash table hp, and the same subject as the subject included in the triple specified in step S43 is registered in the hash table h3. If not, the subject included in the triple specified in step S43 is registered in the hash table h3 (step S45). By the process of step S45, each of the subjects registered in the hash table h3 becomes unique in the hash table h3. The subject is registered in the hash table h3 as shown in FIG.

第2抽出部103は、データセットDAに未処理のトリプルが有るか判定する(ステップS47)。未処理のトリプルが有る場合(ステップS47:Yesルート)、処理はステップS43に戻る。 The second extraction unit 103 determines whether the data set DA has unprocessed triples (step S47). If there are unprocessed triples (step S47: Yes route), processing returns to step S43.

一方、未処理のトリプルが無い場合(ステップS47:Noルート)、第2抽出部103は、データセットDBから未処理のトリプルを1つ特定する(ステップS49)。 On the other hand, when there is no unprocessed triple (step S47: No route), the second extraction unit 103 identifies one unprocessed triple from the data set DB (step S49).

第2抽出部103は、ステップS49において特定したトリプルに含まれる述語と同じ述語がハッシュテーブルhpに登録されており、ステップS49において特定したトリプルに含まれる主語と同じ主語がハッシュテーブルh3に登録されており且つステップS49において特定したトリプルに含まれる主語と同じ主語がハッシュテーブルh4に登録されていない場合、ステップS49において特定したトリプルに含まれる主語をハッシュテーブルh4に登録する(ステップS51)。ステップS51の処理により、ハッシュテーブルh4に登録される主語のそれぞれがハッシュテーブルh4においてユニークになる。ハッシュテーブルh4には、図10に示すように主語が登録される。 In the second extraction unit 103, the same predicate as the predicate included in the triple specified in step S49 is registered in the hash table hp, and the same subject as the subject included in the triple specified in step S49 is registered in the hash table h3. If the same subject as the subject included in the triple specified in step S49 is not registered in the hash table h4, the subject included in the triple specified in step S49 is registered in the hash table h4 (step S51). By the process of step S51, each of the subjects registered in the hash table h4 becomes unique in the hash table h4. The subject is registered in the hash table h4 as shown in FIG.

第2抽出部103は、データセットDBに未処理のトリプルが有るか判定する(ステップS53)。未処理のトリプルが有る場合(ステップS53:Yesルート)、処理はステップS49に戻る。一方、未処理のトリプルが無い場合(ステップS53:Noルート)、第2抽出部103は、ハッシュテーブルh4をハッシュテーブルhsとして共通主語格納部115に格納する。そして処理は呼び出し元に戻る。 The second extraction unit 103 determines whether or not there are unprocessed triples in the data set DB (step S53). If there are unprocessed triples (step S53: Yes route), processing returns to step S49. On the other hand, when there is no unprocessed triple (step S53: No route), the second extraction unit 103 stores the hash table h4 as the hash table hs in the common subject storage unit 115. Then the process returns to the caller.

以上のような処理を実行すれば、データセットDAとデータセットDBに共通する主語であって且つ共通述語を含むトリプルに含まれる主語(以下、共通主語と呼ぶ)を抽出することができるようになる。 By executing the above processing, the subject (hereinafter referred to as the common subject) that is the subject common to the dataset DA and the dataset DB and is included in the triple containing the common predicate can be extracted. Become.

図4の説明に戻り、生成部105は、データセットDAとデータセットDBとのうち未処理のデータセットを1つ特定する(ステップS5)。そして、生成部105は、ステップS5において特定したデータセットについて生成処理を実行する(ステップS7)。生成処理については、図11乃至図18を用いて説明する。 Returning to the description of FIG. 4, the generation unit 105 identifies one unprocessed data set from the data set DA and the data set DB (step S5). Then, the generation unit 105 executes the generation process for the data set specified in step S5 (step S7). The generation process will be described with reference to FIGS. 11 to 18.

まず、生成部105は、共通主語格納部115に格納されたハッシュテーブルhsの要素数(すなわち、共通主語の数)を行数とし且つ共通述語格納部113に格納されたハッシュテーブルhpの要素数(すなわち、共通述語の数)の2倍に1を加えた数を列数とするテーブルtをメモリ2501において初期化する(図11:ステップS61)。 First, the generation unit 105 uses the number of elements of the hash table hs stored in the common subject storage unit 115 (that is, the number of common subjects) as the number of rows and the number of elements of the hash table hp stored in the common predicate storage unit 113. Initialize in the memory 2501 a table t whose number of columns is the number obtained by adding 1 to twice the number of common predicates (that is, FIG. 11: step S61).

生成部105は、ハッシュテーブルhsに登録された各共通主語を、テーブルtの1列目に設定する(ステップS63)。ここまでの処理によって、テーブルtには、例えば図12に示すようにデータが格納される。 The generation unit 105 sets each common subject registered in the hash table hs in the first column of the table t (step S63). By the processing up to this point, data is stored in the table t, for example, as shown in FIG.

生成部105は、0を開始とする連番nをハッシュテーブルhpの要素に対応付けて共通述語格納部113に格納する(ステップS65)。ステップS65の処理により、ハッシュテーブルhpの形式は、例えば図13に示すようになる。 The generation unit 105 stores the serial number n starting from 0 in the common predicate storage unit 113 in association with the elements of the hash table hp (step S65). By the processing of step S65, the format of the hash table hp becomes as shown in FIG. 13, for example.

生成部105は、テーブルtの1列目(すなわち共通主語)についてインデックス(例えばB−tree)を生成する(ステップS67)。生成されたインデックスは、例えばステップS89において使用される。 The generation unit 105 generates an index (for example, B-tree) for the first column (that is, the common subject) of the table t (step S67). The generated index is used, for example, in step S89.

生成部105は、ステップS5において特定したデータセットから未処理のトリプルを1つ特定する(ステップS69)。 The generation unit 105 identifies one unprocessed triple from the dataset identified in step S5 (step S69).

生成部105は、ステップS69において特定したトリプルに含まれる主語がハッシュテーブルhsに登録され且つステップS69において特定したトリプルに含まれる述語がハッシュテーブルhpに登録されているか判定する(ステップS71)。 The generation unit 105 determines whether the subject included in the triple specified in step S69 is registered in the hash table hs and the predicate included in the triple specified in step S69 is registered in the hash table hp (step S71).

ステップS69において特定したトリプルに含まれる主語がハッシュテーブルhsに登録されていないか又はステップS69において特定したトリプルに含まれる述語がハッシュテーブルhpに登録されていない場合(ステップS71:Noルート)、処理はステップS77に移行する。 If the subject included in the triple specified in step S69 is not registered in the hash table hs, or the predicate included in the triple specified in step S69 is not registered in the hash table hp (step S71: No route), the process Goes to step S77.

共通主語および共通述語の両方を含むトリプル以外のトリプルは、ステップS71の処理により、ステップS73及びS75の処理の対象から外される。例えばデータセットDAの場合、図14に示すように、4行目のトリプルと8行目のトリプルとがステップS73及びS75の処理の対象から外される。 Triples other than triples containing both a common subject and a common predicate are excluded from the processing of steps S73 and S75 by the processing of step S71. For example, in the case of the data set DA, as shown in FIG. 14, the triple in the fourth row and the triple in the eighth row are excluded from the processing of steps S73 and S75.

一方、ステップS69において特定したトリプルに含まれる主語がハッシュテーブルhsに登録され且つステップS69において特定したトリプルに含まれる述語がハッシュテーブルhpに登録されている場合(ステップS71:Yesルート)、生成部105は、以下の処理を実行する。具体的には、生成部105は、ステップS69において特定したトリプルに含まれる述語に対応するnを、ハッシュテーブルhpから取得する(ステップS73)。 On the other hand, when the subject included in the triple specified in step S69 is registered in the hash table hs and the predicate included in the triple specified in step S69 is registered in the hash table hp (step S71: Yes root), the generation unit. 105 executes the following processing. Specifically, the generation unit 105 acquires n corresponding to the predicate included in the triple specified in step S69 from the hash table hp (step S73).

生成部105は、ステップS69において特定したトリプルに含まれる主語が1列目に含まれる行の(n*2+3)列目に、ステップS69において特定したトリプルに含まれる目的語を登録する(ステップS75)。 The generation unit 105 registers the object included in the triple specified in step S69 in the (n * 2 + 3) column of the row in which the subject included in the triple specified in step S69 is included in the first column (step S75). ).

生成部105は、ステップS5において特定したデータセットに未処理のトリプルが有るか判定する(ステップS77)。未処理のトリプルが有る場合(ステップS77:Yesルート)、処理はステップS69に戻る。一方、未処理のトリプルが無い場合(ステップS77:Noルート)、処理は端子Aを介して図15のステップS79に移行する。 The generation unit 105 determines whether the data set specified in step S5 has an unprocessed triple (step S77). If there are unprocessed triples (step S77: Yes route), processing returns to step S69. On the other hand, when there is no unprocessed triple (step S77: No route), the process proceeds to step S79 of FIG. 15 via the terminal A.

図15の説明に移行し、生成部105は、テーブルtから未処理の行を1つ特定する(図15:ステップS79)。 Moving on to the description of FIG. 15, the generation unit 105 identifies one unprocessed row from the table t (FIG. 15: step S79).

生成部105は、mの各値(m=0,1,2,...,M)について、ステップS79において特定した行における(m*2+3)列目に登録された目的語の種類の集合を特定する(ステップS81)。Mは共通述語の数から1を引いた数に相当する。ステップS77までの処理によると重複する目的語が登録される可能性があるので、目的語の種類の集合(すなわち、ユニークな目的語の集合)が特定される。 The generation unit 105 sets the types of objects registered in the (m * 2 + 3) column in the row specified in step S79 for each value of m (m = 0, 1, 2, ..., M). Is specified (step S81). M corresponds to the number of common predicates minus one. Since there is a possibility that duplicate objects are registered according to the processing up to step S77, a set of object types (that is, a set of unique objects) is specified.

生成部105は、mの各値について、特定した集合内の目的語をソートしてチェックサムを生成する(ステップS83)。なお、ステップS83においてはチェックサム以外の符号を生成してもよい。 The generation unit 105 sorts the objects in the specified set for each value of m and generates a checksum (step S83). In step S83, a code other than the checksum may be generated.

生成部105は、mの各値について、チェックサムを(m*2+2)列目に登録する(ステップS85)。ステップS85までの処理によって、例えば図16に示すようなテーブルtが生成される。 The generation unit 105 registers a checksum in the (m * 2 + 2) column for each value of m (step S85). By the processing up to step S85, for example, the table t as shown in FIG. 16 is generated.

生成部105は、テーブルtに未処理の行が有るか判定する(ステップS87)。テーブルtに未処理の行が有る場合(ステップS87:Yesルート)、処理はステップS79に戻る。 The generation unit 105 determines whether or not there are unprocessed rows in the table t (step S87). If there are unprocessed rows in the table t (step S87: Yes route), the process returns to step S79.

一方、テーブルtに未処理の行が無い場合(ステップS87:Noルート)、生成部105は、テーブルtの1列目の値に基づき、テーブルtの行をソートする(ステップS89)。ステップS89においては、例えば、1列目の共通主語が辞書順になるようにソートが行われる。そして処理は終了する。 On the other hand, when there are no unprocessed rows in the table t (step S87: No route), the generation unit 105 sorts the rows in the table t based on the values in the first column of the table t (step S89). In step S89, for example, sorting is performed so that the common subjects in the first column are in lexicographic order. And the process ends.

なお、ステップS89の処理が実行されると、図16に示したテーブルtは、図17に示すテーブルtに更新される。また、データセットDBについて生成処理を実行すると、例えば図18に示すテーブルtが生成される。以下では、データセットDAについて生成したテーブルtをテーブルtaとし、データセットDBについて生成したテーブルtをテーブルtbとする。生成部105は、テーブルta及びテーブルtbをテーブル格納部117に格納する。 When the process of step S89 is executed, the table t shown in FIG. 16 is updated to the table t shown in FIG. Further, when the generation process is executed for the data set DB, for example, the table t shown in FIG. 18 is generated. In the following, the table t generated for the dataset DA will be referred to as the table ta, and the table t generated for the dataset DB will be referred to as the table tb. The generation unit 105 stores the table ta and the table tb in the table storage unit 117.

なお、以下で説明する比較処理をソートマージ結合ではなくネステッドループ結合と同様の方法で実行する場合には、ステップS89の処理を省略してもよい。 When the comparison process described below is executed by the same method as the nested loop join instead of the sort merge join, the process in step S89 may be omitted.

以上のように、共通主語および共通述語の両方を含むトリプルの集合を、共通主語ごとのデータに変換することで、後で実行する比較処理を高速に実行することができるようになる。 As described above, by converting the set of triples including both the common subject and the common predicate into the data for each common subject, the comparison process to be executed later can be executed at high speed.

図4の説明に戻り、生成部105は、データセットDAとデータセットDBとのうち未処理のデータセットが有るか判定する(ステップS9)。データセットDAとデータセットDBとのうち未処理のデータセットが有る場合(ステップS9:Yesルート)、処理はステップS5に戻る。 Returning to the description of FIG. 4, the generation unit 105 determines whether there is an unprocessed data set among the data set DA and the data set DB (step S9). If there is an unprocessed data set among the data set DA and the data set DB (step S9: Yes route), the process returns to step S5.

一方、データセットDAとデータセットDBとのうち未処理のデータセットが無い場合(ステップS9:Noルート)、比較部107は、比較処理を実行する(ステップS11)。比較処理については、図19乃至図22を用いて説明する。 On the other hand, when there is no unprocessed data set in the data set DA and the data set DB (step S9: No route), the comparison unit 107 executes the comparison process (step S11). The comparison process will be described with reference to FIGS. 19 to 22.

まず、比較部107は、テーブルtaの行番号を表す変数αを0に設定し且つテーブルtbの行番号を表す変数βを0に設定する(図19:ステップS91)。 First, the comparison unit 107 sets the variable α representing the row number of the table ta to 0 and sets the variable β representing the row number of the table tb to 0 (FIG. 19: step S91).

比較部107は、テーブルtaをテーブル格納部117から読み出す。そして、比較部107は、αがテーブルtaの行数より大きいか判定する(ステップS93)。αがテーブルtaの行数より大きい場合(ステップS93:Yesルート)、処理は呼び出し元に戻り終了する。 The comparison unit 107 reads the table ta from the table storage unit 117. Then, the comparison unit 107 determines whether α is larger than the number of rows in the table ta (step S93). When α is larger than the number of rows in the table ta (step S93: Yes route), the process returns to the caller and ends.

αがテーブルtaの行数より大きくない場合(ステップS93:Noルート)、比較部107は、テーブルtbをテーブル格納部117から読み出す。そして、比較部107は、βがテーブルtbの行数より大きいか判定する(ステップS95)。βがテーブルtbの行数より大きい場合(ステップS95:Yesルート)、処理は呼び出し元に戻り終了する。 When α is not larger than the number of rows in the table ta (step S93: No route), the comparison unit 107 reads the table tb from the table storage unit 117. Then, the comparison unit 107 determines whether β is larger than the number of rows in the table tb (step S95). If β is larger than the number of rows in table tb (step S95: Yes route), the process returns to the caller and ends.

βがテーブルtbの行数より大きくない場合(ステップS95:Noルート)、比較部107は、テーブルtaのα行目の1列目とテーブルtbのβ行目の1列目とが同じであるか判定する(ステップS97)。 When β is not larger than the number of rows in the table tb (step S95: No route), the comparison unit 107 has the same first column in the α row of the table ta and the first column in the β row of the table tb. (Step S97).

テーブルtaのα行目の1列目とテーブルtbのβ行目の1列目とが同じではない場合(ステップS97:Noルート)、比較部107は、以下の処理を実行する。具体的には、比較部107は、テーブルtaのα行目がテーブルtbのβ行目より辞書順で後である場合にはβを1インクリメントし、テーブルtbのβ行目がテーブルtaのα行目より辞書順で後である場合にはαを1インクリメントする(ステップS99)。そして処理はステップS93に戻る。なお、ステップS91乃至ステップS99の処理は、ソートマージ結合に基づく。 When the first column of the α-th row of the table ta and the first column of the β-th row of the table tb are not the same (step S97: No route), the comparison unit 107 executes the following processing. Specifically, the comparison unit 107 increments β by 1 when the α-th row of the table ta is later than the β-th row of the table tb in the lexical order, and the β-th row of the table tb is the α of the table ta. If it is later in the lexical order than the line, α is incremented by 1 (step S99). Then, the process returns to step S93. The processing of steps S91 to S99 is based on the sort-merge join.

一方、テーブルtaのα行目の1列目とテーブルtbのβ行目の1列目とが同じである場合(ステップS97:Yesルート)、比較部107は、以下の処理を実行する。具体的には、比較部107は、mの各値(m=0,1,2,...,M)について、テーブルtaのα行目の(m*2+2)列目のチェックサムと、テーブルtbのβ行目の(m*2+2)列目のチェックサムとを比較する(ステップS101)。 On the other hand, when the first column of the α-th row of the table ta and the first column of the β-th row of the table tb are the same (step S97: Yes route), the comparison unit 107 executes the following processing. Specifically, the comparison unit 107 sets the checksum of the αth row (m * 2 + 2) column of the table ta for each value of m (m = 0, 1, 2, ..., M). Compare with the checksum in the βth row (m * 2 + 2) column of the table tb (step S101).

テーブルtaのα行目の(m*2+2)列目のチェックサムと、テーブルtbのβ行目の(m*2+2)列目のチェックサムとが同じである場合(ステップS103:Yesルート)、比較部107は、以下の処理を実行する。具体的には、比較部107は、テーブルtaのα行目(またはテーブルtbのβ行目の)の(m*2+3)列目における目的語の各々と、(m*2+2)列目のチェックサムに対応する共通述語と、1列目における共通主語とを含むトリプルを、共通トリプル格納部119に格納する(ステップS105)。そして処理はステップS93に戻る。 When the checksum in the α-th row (m * 2 + 2) column of the table ta and the checksum in the β-th row (m * 2 + 2) column of the table tb are the same (step S103: Yes route). The comparison unit 107 executes the following processing. Specifically, the comparison unit 107 checks each of the objects in the (m * 2 + 3) column of the αth row (or the βth row of the table tb) of the table ta and the (m * 2 + 2) column. A triple including the common predicate corresponding to the sum and the common subject in the first column is stored in the common triple storage unit 119 (step S105). Then, the process returns to step S93.

一方、テーブルtaのα行目の(m*2+2)列目のチェックサムと、テーブルtbのβ行目の(m*2+2)列目のチェックサムとが同じではない場合(ステップS103:Noルート)、比較部107は、以下の処理を実行する。具体的には、比較部107は、テーブルtaのα行目の(m*2+3)列目における目的語の各々と、テーブルtbのβ行目の(m*2+3)列目における目的語の各々とを比較する。そして、比較部107は、目的語が一致する場合には、一致した目的語と、(m*2+2)列目のチェックサムに対応する共通述語と、1列目における共通主語とを含むトリプルを、共通トリプル格納部119に格納する(ステップS107)。そして処理はステップS93に戻る。 On the other hand, when the checksum in the αth row (m * 2 + 2) column of the table ta and the checksum in the βth row (m * 2 + 2) column of the table tb are not the same (step S103: No route). ), The comparison unit 107 executes the following processing. Specifically, the comparison unit 107 includes each of the objects in the α-th row (m * 2 + 3) column of the table ta and each of the objects in the β-th row (m * 2 + 3) column of the table tb. Compare with. Then, when the objects match, the comparison unit 107 includes a triple including the matched object, the common predicate corresponding to the checksum in the (m * 2 + 2) column, and the common subject in the first column. , Stored in the common triple storage unit 119 (step S107). Then, the process returns to step S93.

例えば図17に示したテーブルtaと図18に示したテーブルtbとを対象とする場合、ステップS103においては、主語がs1であり且つ述語がp1である場合と、主語がs1であり且つ述語がp2である場合と、主語がs2であり且つ述語がp1である場合とについて、チェックサムが一致すると判定される。従って、ステップS105においては、図20に示すように、主語がs1であり、述語がp1であり且つ目的語がo1であるトリプルと、主語がs1であり、述語がp2であり且つ目的語がo2であるトリプルと、主語がs1であり、述語がp2であり且つ目的語がo3であるトリプルと、主語がs2であり、述語がp1であり且つ目的語がo4であるトリプルとが共通トリプル格納部119に格納される。また、ステップS103においては、主語がs2であり且つ述語がp2である場合についてはチェックサムが一致しないと判定されるが、ステップS107において目的語o5が一致すると判定される。従って、図21に示すように、主語がs2であり、述語がp2であり且つ目的語がo5であるトリプルが共通トリプル格納部119に格納される。よって、最終的には、図22に示す5つのトリプルが共通トリプル格納部119に格納される。 For example, when the table ta shown in FIG. 17 and the table tb shown in FIG. 18 are targeted, in step S103, the subject is s1 and the predicate is p1, and the subject is s1 and the predicate is. It is determined that the checksums match when the subject is p2 and when the subject is s2 and the predicate is p1. Therefore, in step S105, as shown in FIG. 20, a triple in which the subject is s1 and the predicate is p1 and the object is o1, and the subject is s1 and the predicate is p2 and the object is A common triple is a triple that is o2, a triple that has a subject of s1 and a predicate of p2 and an object of o3, and a triple that has a subject of s2 and a predicate of p1 and an object of o4. It is stored in the storage unit 119. Further, in step S103, when the subject is s2 and the predicate is p2, it is determined that the checksums do not match, but in step S107, it is determined that the object o5 matches. Therefore, as shown in FIG. 21, a triple having a subject of s2, a predicate of p2, and an object of o5 is stored in the common triple storage unit 119. Therefore, finally, the five triples shown in FIG. 22 are stored in the common triple storage unit 119.

共通トリプル格納部119に格納されたトリプルは、例えば、検出装置1の表示装置に表示され、ユーザにより確認される。 The triple stored in the common triple storage unit 119 is displayed on the display device of the detection device 1, for example, and is confirmed by the user.

以上のように、本実施の形態においては、共通主語でデータセットをまとめあげ、さらにチェックサムの比較をすることで目的語同士の比較を行うことを可能な限り回避しているので、共通するトリプルを高速で検出することができる。また、テーブルtの形式で中間データを保持することで、ハッシュ結合等を実行した場合と比較して記憶領域の使用量を少なくすることができるようになる。 As described above, in the present embodiment, the data sets are put together with a common subject, and the comparison between the objects is avoided as much as possible by comparing the checksums. Therefore, a common triple. Can be detected at high speed. Further, by holding the intermediate data in the format of the table t, the amount of the storage area used can be reduced as compared with the case where the hash join or the like is executed.

なお、データセットのバージョン変更が(4)乃至(6)の特徴を有することは、データセット間の相違が軽微であることを意味しており、このような場合、変更前後のチェックサムは多くの場合同じである。従って、目的語同士の比較を回避できる可能性が高くなる。 It should be noted that the fact that the version change of the data set has the characteristics of (4) to (6) means that the difference between the data sets is slight, and in such a case, there are many checksums before and after the change. The same is true for. Therefore, there is a high possibility that comparison between objects can be avoided.

ここで、本実施の形態の処理を実行した場合の処理時間と通常のソートマージ結合を実行した場合の処理時間との比較結果を示す。 Here, the comparison result between the processing time when the processing of the present embodiment is executed and the processing time when the normal sort merge join is executed is shown.

前提として、対象のデータセットに含まれるトリプルの種類数が1,159,975,820であり、主語の種類数が58,841,774であり、述語の種類数が68,894であり、目的語の種類数が232,911,608であるとする。また、時間計算量が線形オーダーである処理および入力データ量が多い処理は実行時間に与える影響が大きいため、これらの処理のみを時間計測の対象とする。具体的には、本実施の形態の場合はデータセットの主語をソートする処理を対象とし、通常のソートマージ結合の場合はデータセットのトリプルをソートする処理を対象とする。 As a premise, the number of types of triples contained in the target data set is 1,159,975,820, the number of types of subject is 58,841,774, the number of types of predicate is 68,894, and the purpose is It is assumed that the number of types of words is 232,911,608. Further, since the processing in which the time calculation amount is in the linear order and the processing in which the input data amount is large have a large influence on the execution time, only these processings are targeted for time measurement. Specifically, in the case of the present embodiment, the process of sorting the subject of the data set is targeted, and in the case of the normal sort merge join, the process of sorting the triples of the data set is targeted.

そして、トリプルの種類数と同数の行を有するデータセットおよび主語の種類数と同数の行を有するデータセットをそれぞれ作成し、作成したデータセットに対して利用可能なメモリ量を1ギガバイトとしてGNUソートを実行した場合の処理時間が計測されるものとする。 Then, a dataset having the same number of rows as the number of triple types and a dataset having the same number of rows as the number of subject types are created, and the amount of memory available for the created dataset is set to 1 gigabyte for GNU sorting. It is assumed that the processing time when is executed is measured.

このケースの場合、トリプルの種類数と同数の行を有するデータセットのソートに要する時間は26分57秒であるのに対して、主語の種類数と同数の行を有するデータセットのソートに要する時間は49秒であった。従って、本実施の形態の処理を実行することで、ソートに要する時間を大幅に短縮可能であることが確認された。 In this case, it takes 26 minutes 57 seconds to sort a dataset that has the same number of rows as the number of triple types, whereas it takes 26 minutes 57 seconds to sort a dataset that has the same number of rows as the number of subject types. The time was 49 seconds. Therefore, it was confirmed that the time required for sorting can be significantly shortened by executing the process of the present embodiment.

以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した検出装置1の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。 Although one embodiment of the present invention has been described above, the present invention is not limited thereto. For example, the functional block configuration of the detection device 1 described above may not match the actual program module configuration.

また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。 Further, the configuration of each table described above is an example, and does not have to be the configuration as described above. Further, also in the processing flow, it is possible to change the order of processing if the processing result does not change. Further, it may be executed in parallel.

また、比較処理を、ソートマージ結合ではなくネステッドループ結合と同様の方法で実行してもよい。 Further, the comparison process may be executed in the same manner as the nested loop join instead of the sort merge join.

[付録]
本付録においては、ハッシュ結合、ソートマージ結合およびネステッドループ結合のそれぞれを用いて共通するレコードを特定する処理について説明する。
[appendix]
This appendix describes the process of identifying common records using hash joins, sort merge joins, and nested loop joins.

1.ハッシュ結合
図23は、ハッシュ結合について説明するための図である。図23に示した例においては、データセットT1とデータセットT2との間で共通するトリプルが抽出される。ハッシュテーブルには、データセットT1の比較対象列(この例では、列1、列2及び列3)の値からハッシュ関数により算出されたハッシュ値と、比較対象列の値とが登録される。そして、ハッシュテーブルを参照しながら、データセットT2の各レコードの比較対象列がデータセットT1のレコードと一致するか確認される。
1. 1. Hash Join FIG. 23 is a diagram for explaining a hash join. In the example shown in FIG. 23, a common triple is extracted between the dataset T1 and the dataset T2. In the hash table, the hash value calculated by the hash function from the values of the comparison target column (column 1, column 2 and column 3 in this example) of the data set T1 and the value of the comparison target column are registered. Then, while referring to the hash table, it is confirmed whether the comparison target column of each record of the data set T2 matches the record of the data set T1.

2.ソートマージ結合
図24は、ソートマージ結合について説明するための図である。ソートマージ結合においては、まず各データセットのレコードがソートされる。図24に示した例においては、比較対象列は列1、列2及び列3であり、まずデータセットT1の最初のレコードの値とデータセットT2の最初のレコード値とが比較される。両者が等しければ、共通するレコードであるとして抽出される。データセットT1の最初のレコードの値がデータセットT2の最初のレコードの値より大きい場合(或いは、辞書順で後である場合)、データセットT2の次のレコードの値とデータセットT1の最初のレコードの値とが比較される。逆に、データセットT1の最初のレコードの値がデータセットT2の最初のレコードの値より小さい場合(或いは、辞書順で前である場合)、データセットT1の次のレコードの値とデータセットT2の最初のレコードの値とが比較される。以上のような処理が繰り返される。
2. 2. Sort-Merge Join FIG. 24 is a diagram for explaining a sort-merge join. In a sort-merge join, the records in each dataset are first sorted. In the example shown in FIG. 24, the comparison target columns are column 1, column 2, and column 3, and the value of the first record of the data set T1 and the value of the first record of the data set T2 are first compared. If they are equal, they are extracted as common records. If the value of the first record of dataset T1 is greater than the value of the first record of dataset T2 (or later in lexical order), then the value of the next record of dataset T2 and the first of dataset T1 The value of the record is compared. Conversely, if the value of the first record in dataset T1 is less than the value of the first record in dataset T2 (or is earlier in lexical order), then the value of the next record in dataset T1 and dataset T2 The value of the first record of is compared. The above process is repeated.

3.ネステッドループ結合
図25は、ネステッドループ結合について説明するための図である。図25に示した例においては、データセットT1における最初のレコードの比較対象列(ここでは、列1、列2及び列3)の値と、データセットT2における各レコードの比較対象列の値とが比較される。この処理が、データセットT1における2番目のレコードから最後のレコードまで実行されることで、共通するレコードが抽出される。
3. 3. Nested Loop Coupling FIG. 25 is a diagram for explaining a nested loop coupling. In the example shown in FIG. 25, the value of the comparison target column (here, column 1, column 2 and column 3) of the first record in the data set T1 and the value of the comparison target column of each record in the data set T2. Are compared. By executing this process from the second record to the last record in the data set T1, a common record is extracted.

以上で付録を終了する。 This is the end of the appendix.

なお、上で述べた検出装置1は、コンピュータ装置であって、図26に示すように、メモリ2501とCPU2503とHDD2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。 The detection device 1 described above is a computer device, and as shown in FIG. 26, is a drive for the memory 2501, the CPU 2503, the HDD 2505, the display control unit 2507 connected to the display device 2509, and the removable disk 2511. The device 2513, the input device 2515, and the communication control unit 2517 for connecting to the network are connected by a bus 2519. The operating system (OS: Operating System) and the application program for executing the processing in this embodiment are stored in the HDD 2505, and are read from the HDD 2505 to the memory 2501 when executed by the CPU 2503. The CPU 2503 controls the display control unit 2507, the communication control unit 2517, and the drive device 2513 according to the processing contents of the application program to perform a predetermined operation. Further, although the data in the process of processing is mainly stored in the memory 2501, it may be stored in the HDD 2505. In the embodiment of the present invention, the application program for performing the above-described processing is stored and distributed on the computer-readable removable disk 2511 and installed from the drive device 2513 to the HDD 2505. It may be installed on the HDD 2505 via a network such as the Internet and a communication control unit 2517. Such a computer device realizes various functions as described above by organically collaborating with the hardware such as the CPU 2503 and the memory 2501 described above and the program such as the OS and the application program. ..

以上述べた本発明の実施の形態をまとめると、以下のようになる。 The embodiments of the present invention described above can be summarized as follows.

本実施の形態の第1の態様に係る検出方法は、(A)主語、述語および目的語を含むトリプルを複数含む第1のデータセットおよび第2のデータセットから、第1のデータセットおよび第2のデータセットのいずれにも含まれる複数の共通主語および複数の共通述語を抽出し、(B)複数の共通主語のいずれかを含み且つ複数の共通述語のいずれかを含むトリプルを、第1のデータセット及び第2のデータセットのそれぞれから抽出し、(C)複数の共通主語の各々に対して複数の共通述語の各々が対応付けられ且つ当該複数の共通述語の各々に対して目的語の集合が対応付けられた第1のデータを、第1のデータセットから抽出したトリプルから生成し、(D)複数の共通主語の各々に対して複数の共通述語の各々が対応付けられ且つ当該複数の共通述語の各々に対して目的語の集合が対応付けられた第2のデータを、第2のデータセットから抽出したトリプルから生成し、(E)第1のデータおよび第2のデータのそれぞれについて、目的語の集合の各々から符号を生成する処理を実行する処理を含む。 The detection method according to the first aspect of the present embodiment is (A) from the first data set and the second data set including a plurality of triples including a subject, a predicate, and an object, the first data set and the first data set. A plurality of common predicates and a plurality of common predicates included in any of the two data sets are extracted, and (B) a triple containing any of the plurality of common predicates and containing any of the plurality of common predicates is obtained. Extracted from each of the data set and the second data set, (C) each of the plurality of common predicates is associated with each of the plurality of common subjects, and the object is associated with each of the plurality of common predicates. The first data to which the set of is associated is generated from the triple extracted from the first dataset, and (D) each of the plurality of common predicates is associated with each of the plurality of common subject and the relevant The second data in which the set of target words is associated with each of the plurality of common predicates is generated from the triple extracted from the second dataset, and (E) the first data and the second data. For each, it includes a process of executing a process of generating a code from each of the set of predicates.

複数のデータセットに共通するトリプルを、記憶領域の使用量を抑えつつ高速で検出することができるようになる。 Triples common to multiple data sets can be detected at high speed while reducing the amount of storage space used.

また、本検出方法は、(F)第1のデータに含まれる目的語の集合の各々から生成した符号と、第2のデータに含まれる目的語の集合の各々から生成した符号との比較に基づき、第1のデータセットと第2のデータセットとのいずれにも含まれるトリプルを抽出する処理をさらに含んでもよい。 Further, this detection method is used to compare (F) a code generated from each of the sets of target words included in the first data with a code generated from each of the sets of target words included in the second data. Based on this, a process of extracting triples contained in both the first data set and the second data set may be further included.

目的語同士の比較をしなくてもよいので、たとえ目的語の数が多い場合であっても検出にかかる時間が長くならないようにすることができる。 Since it is not necessary to compare the objects, it is possible to prevent the detection time from becoming long even when the number of objects is large.

また、第1のデータセットと第2のデータセットとのいずれにも含まれるトリプルを抽出する処理において、(f1)第1のデータに含まれる目的語の第1の集合から生成した符号と、第2のデータに含まれる目的語の第2の集合から生成した符号とが同一である場合、第1の集合又は第2の集合に含まれる各目的語と、当該目的語に対応する共通主語および共通述語とを含むトリプルを抽出し、(f2)第1のデータに含まれる目的語の第3の集合から生成した符号と、第2のデータに含まれる目的語の第4の集合から生成した符号とが同一ではない場合、第3の集合に含まれる各目的語と、第4の集合に含まれる各目的語との比較に基づき、第1のデータセットと第2のデータセットとのいずれにも含まれるトリプルを抽出してもよい。 Further, in the process of extracting triples included in both the first data set and the second data set, (f1) a code generated from the first set of objects included in the first data and a code. When the code generated from the second set of objects included in the second data is the same, each object included in the first set or the second set and the common subject corresponding to the object. And a triple containing a common predicate is extracted, and (f2) a code generated from a third set of objects contained in the first data and a fourth set of objects contained in the second data are generated. If the codes are not the same, the first data set and the second data set are based on the comparison between each object contained in the third set and each object contained in the fourth set. Triples contained in any of them may be extracted.

目的語同士の比較が行われるのは符号が同一ではない場合に限られるので、検出にかかる時間が長くなることを抑制できるようになる。 Since the comparison between the objects is performed only when the symbols are not the same, it is possible to suppress a long time required for detection.

また、複数の共通主語および複数の共通述語を抽出する処理において、(a1)第1のデータセットに含まれる複数の述語のうち第2のデータセットに含まれる述語である複数の共通述語を抽出し、(a2)第2のデータセットに含まれるトリプルのうち、抽出された複数の共通述語のいずれかと同じ述語を含み且つ第1のデータセットに含まれる主語と同じ主語を含むトリプルを特定し、特定した当該トリプルに含まれる主語である複数の共通主語を抽出してもよい。 Further, in the process of extracting a plurality of common subjects and a plurality of common predicates, (a1) a plurality of common predicates that are predicates included in the second dataset among the plurality of predicates included in the first dataset are extracted. Then, (a2), among the triples contained in the second data set, the triples containing the same predicate as any of the extracted common predicates and the same subject as the subject contained in the first data set are specified. , A plurality of common subjects that are the subjects included in the specified triple may be extracted.

また、目的語の集合から生成される符号はチェックサムであってもよい。 Further, the code generated from the set of objects may be a checksum.

本実施の形態の第2の態様に係る検出装置は、(G)述語および目的語を含むトリプルを複数含む第1のデータセットおよび第2のデータセットから、第1のデータセットおよび第2のデータセットのいずれにも含まれる複数の共通主語および複数の共通述語を抽出する抽出部(例えば、第1抽出部101及び第2抽出部103)と、(H)複数の共通主語のいずれかを含み且つ複数の共通述語のいずれかを含むトリプルを、第1のデータセット及び第2のデータセットのそれぞれから抽出し、複数の共通主語の各々に対して複数の共通述語の各々が対応付けられ且つ当該複数の共通述語の各々に対して目的語の集合が対応付けられた第1のデータを、第1のデータセットから抽出したトリプルから生成し、複数の共通主語の各々に対して複数の共通述語の各々が対応付けられ且つ当該複数の共通述語の各々に対して目的語の集合が対応付けられた第2のデータを、第2のデータセットから抽出したトリプルから生成し、第1のデータおよび第2のデータのそれぞれについて、目的語の集合の各々から符号を生成する処理を実行する生成部(例えば生成部105)とを有する。 The detection device according to the second aspect of the present embodiment is the first data set and the second data set from the first data set and the second data set including a plurality of triples including the (G) predicate and the object. An extraction unit (for example, the first extraction unit 101 and the second extraction unit 103) that extracts a plurality of common subjects and a plurality of common predicates included in any of the data sets, and (H) one of the plurality of common subjects. A triple containing and containing any one of the plurality of common predicates is extracted from each of the first data set and the second data set, and each of the plurality of common predicates is associated with each of the plurality of common subjects. Moreover, the first data in which the set of the object words is associated with each of the plurality of common predicates is generated from the triple extracted from the first data set, and a plurality of data are generated for each of the plurality of common subjects. Second data, in which each of the common predicates is associated and a set of objectives is associated with each of the plurality of common predicates, is generated from the triple extracted from the second dataset, and the first Each of the data and the second data has a generation unit (for example, a generation unit 105) that executes a process of generating a code from each of the set of predicates.

なお、上記方法による処理をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。 A program for causing a computer to execute the processing by the above method can be created, and the program can be a computer-readable storage medium such as a flexible disk, a CD-ROM, a magneto-optical disk, a semiconductor memory, or a hard disk. Stored in storage. The intermediate processing result is temporarily stored in a storage device such as a main memory.

以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。 The following additional notes will be further disclosed with respect to the embodiments including the above embodiments.

(付記1)
コンピュータに、
主語、述語および目的語を含むトリプルを複数含む第1のデータセットおよび第2のデータセットから、前記第1のデータセットおよび前記第2のデータセットのいずれにも含まれる複数の共通主語および複数の共通述語を抽出し、
前記複数の共通主語のいずれかを含み且つ前記複数の共通述語のいずれかを含むトリプルを、前記第1のデータセット及び前記第2のデータセットのそれぞれから抽出し、
前記複数の共通主語の各々に対して前記複数の共通述語の各々が対応付けられ且つ当該複数の共通述語の各々に対して目的語の集合が対応付けられた第1のデータを、前記第1のデータセットから抽出したトリプルから生成し、
前記複数の共通主語の各々に対して前記複数の共通述語の各々が対応付けられ且つ当該複数の共通述語の各々に対して目的語の集合が対応付けられた第2のデータを、前記第2のデータセットから抽出したトリプルから生成し、
前記第1のデータおよび前記第2のデータのそれぞれについて、目的語の集合の各々から符号を生成する処理を実行する、
処理を実行させる検出プログラム。
(Appendix 1)
On the computer
From the first dataset and the second dataset containing a plurality of triples containing a subject, a predicate, and an object, a plurality of common subjects and a plurality of common subjects included in both the first dataset and the second dataset. Extract the common predicate of
A triple containing any of the plurality of common subjects and containing any of the plurality of common predicates is extracted from each of the first data set and the second data set.
The first data in which each of the plurality of common predicates is associated with each of the plurality of common subjects and a set of objects is associated with each of the plurality of common predicates is obtained from the first data. Generated from triples extracted from the dataset of
The second data in which each of the plurality of common predicates is associated with each of the plurality of common subjects and a set of objects is associated with each of the plurality of common predicates is obtained. Generated from triples extracted from the dataset of
For each of the first data and the second data, a process of generating a code from each of the set of objects is executed.
A detection program that executes processing.

(付記2)
前記コンピュータに、
前記第1のデータに含まれる目的語の集合の各々から生成した符号と、前記第2のデータに含まれる目的語の集合の各々から生成した符号との比較に基づき、前記第1のデータセットと前記第2のデータセットとのいずれにも含まれるトリプルを抽出する、
処理をさらに実行させる付記1記載の検出プログラム。
(Appendix 2)
On the computer
The first data set is based on a comparison between the codes generated from each of the sets of objects included in the first data and the codes generated from each of the sets of objects included in the second data. And the triples contained in both of the second dataset,
The detection program according to Appendix 1 for further executing the process.

(付記3)
前記第1のデータセットと前記第2のデータセットとのいずれにも含まれるトリプルを抽出する処理において、
第1のデータに含まれる目的語の第1の集合から生成した符号と、前記第2のデータに含まれる目的語の第2の集合から生成した符号とが同一である場合、前記第1の集合又は前記第2の集合に含まれる各目的語と、当該目的語に対応する共通主語および共通述語とを含むトリプルを抽出し、
前記第1のデータに含まれる目的語の第3の集合から生成した符号と、前記第2のデータに含まれる目的語の第4の集合から生成した符号とが同一ではない場合、前記第3の集合に含まれる各目的語と、前記第4の集合に含まれる各目的語との比較に基づき、前記第1のデータセットと前記第2のデータセットとのいずれにも含まれるトリプルを抽出する、
付記2記載の検出プログラム。
(Appendix 3)
In the process of extracting triples contained in both the first data set and the second data set,
When the code generated from the first set of objects included in the first data and the code generated from the second set of objects included in the second data are the same, the first A triple containing a set or each object included in the second set and a common subject and a common predicate corresponding to the object is extracted.
When the code generated from the third set of target words included in the first data and the code generated from the fourth set of target words included in the second data are not the same, the third set is described. Based on the comparison between each object included in the set of and each object included in the fourth set, triples included in both the first data set and the second data set are extracted. To do
The detection program described in Appendix 2.

(付記4)
前記複数の共通主語および前記複数の共通述語を抽出する処理において、
前記第1のデータセットに含まれる複数の述語のうち前記第2のデータセットに含まれる述語である前記複数の共通述語を抽出し、
前記第2のデータセットに含まれるトリプルのうち、抽出された前記複数の共通述語のいずれかと同じ述語を含み且つ前記第1のデータセットに含まれる主語と同じ主語を含むトリプルを特定し、特定した当該トリプルに含まれる主語である前記複数の共通主語を抽出する、
付記1乃至3のいずれか1つ記載の検出プログラム。
(Appendix 4)
In the process of extracting the plurality of common subjects and the plurality of common predicates,
From the plurality of predicates included in the first dataset, the plurality of common predicates that are predicates included in the second dataset are extracted.
Among the triples included in the second dataset, the triples containing the same predicate as any of the extracted common predicates and the same subject as the subject included in the first dataset are identified and specified. Extract the plurality of common subjects that are the subjects included in the triple.
The detection program according to any one of Supplementary notes 1 to 3.

(付記5)
目的語の集合から生成される符号はチェックサムである、
付記1乃至4のいずれか1つ記載の検出プログラム。
(Appendix 5)
The code generated from the set of objects is a checksum,
The detection program according to any one of Supplementary notes 1 to 4.

(付記6)
コンピュータが、
主語、述語および目的語を含むトリプルを複数含む第1のデータセットおよび第2のデータセットから、前記第1のデータセットおよび前記第2のデータセットのいずれにも含まれる複数の共通主語および複数の共通述語を抽出し、
前記複数の共通主語のいずれかを含み且つ前記複数の共通述語のいずれかを含むトリプルを、前記第1のデータセット及び前記第2のデータセットのそれぞれから抽出し、
前記複数の共通主語の各々に対して前記複数の共通述語の各々が対応付けられ且つ当該複数の共通述語の各々に対して目的語の集合が対応付けられた第1のデータを、前記第1のデータセットから抽出したトリプルから生成し、
前記複数の共通主語の各々に対して前記複数の共通述語の各々が対応付けられ且つ当該複数の共通述語の各々に対して目的語の集合が対応付けられた第2のデータを、前記第2のデータセットから抽出したトリプルから生成し、
前記第1のデータおよび前記第2のデータのそれぞれについて、目的語の集合の各々から符号を生成する処理を実行する、
処理を実行する検出方法。
(Appendix 6)
The computer
From the first dataset and the second dataset containing a plurality of triples containing a subject, a predicate, and an object, a plurality of common subjects and a plurality of common subjects included in both the first dataset and the second dataset. Extract the common predicate of
A triple containing any of the plurality of common subjects and containing any of the plurality of common predicates is extracted from each of the first data set and the second data set.
The first data in which each of the plurality of common predicates is associated with each of the plurality of common subjects and a set of objects is associated with each of the plurality of common predicates is obtained from the first data. Generated from triples extracted from the dataset of
The second data in which each of the plurality of common predicates is associated with each of the plurality of common subjects and a set of objects is associated with each of the plurality of common predicates is obtained. Generated from triples extracted from the dataset of
For each of the first data and the second data, a process of generating a code from each of the set of objects is executed.
A detection method that performs processing.

(付記7)
主語、述語および目的語を含むトリプルを複数含む第1のデータセットおよび第2のデータセットから、前記第1のデータセットおよび前記第2のデータセットのいずれにも含まれる複数の共通主語および複数の共通述語を抽出する抽出部と、
前記複数の共通主語のいずれかを含み且つ前記複数の共通述語のいずれかを含むトリプルを、前記第1のデータセット及び前記第2のデータセットのそれぞれから抽出し、前記複数の共通主語の各々に対して前記複数の共通述語の各々が対応付けられ且つ当該複数の共通述語の各々に対して目的語の集合が対応付けられた第1のデータを、前記第1のデータセットから抽出したトリプルから生成し、前記複数の共通主語の各々に対して前記複数の共通述語の各々が対応付けられ且つ当該複数の共通述語の各々に対して目的語の集合が対応付けられた第2のデータを、前記第2のデータセットから抽出したトリプルから生成し、前記第1のデータおよび前記第2のデータのそれぞれについて、目的語の集合の各々から符号を生成する処理を実行する生成部と、
を有する検出装置。
(Appendix 7)
From the first dataset and the second dataset containing a plurality of triples containing a subject, a predicate, and an object, a plurality of common subjects and a plurality of common subjects included in both the first dataset and the second dataset. And the extraction part that extracts the common predicate of
A triple containing any of the plurality of common subjects and containing any of the plurality of common predicates is extracted from each of the first data set and the second data set, and each of the plurality of common subjects. A triple obtained from the first data set, the first data in which each of the plurality of common predicates is associated with the data and a set of target words is associated with each of the plurality of common predicates. Second data generated from, each of the plurality of common predicates is associated with each of the plurality of common subjects, and a set of target words is associated with each of the plurality of common predicates. , A generation unit that generates a code from each of the set of predicates for each of the first data and the second data, which is generated from the triple extracted from the second data set.
Detection device having.

1 検出装置 101 第1抽出部
103 第2抽出部 105 生成部
107 比較部 111 データセット格納部
113 共通述語格納部 115 共通主語格納部
117 テーブル格納部 119 共通トリプル格納部
1 Detection device 101 1st extraction unit 103 2nd extraction unit 105 Generation unit 107 Comparison unit 111 Data set storage unit 113 Common predicate storage unit 115 Common subject storage unit 117 Table storage unit 119 Common triple storage unit

Claims (6)

コンピュータに、
主語、述語および目的語を含むトリプルを複数含む第1のデータセットおよび第2のデータセットから、前記第1のデータセットおよび前記第2のデータセットのいずれにも含まれる複数の共通主語および複数の共通述語を抽出し、
前記複数の共通主語のいずれかを含み且つ前記複数の共通述語のいずれかを含むトリプルを、前記第1のデータセット及び前記第2のデータセットのそれぞれから抽出し、
前記複数の共通主語の各々に対して前記複数の共通述語の各々が対応付けられ且つ当該複数の共通述語の各々に対して目的語の集合が対応付けられた第1のデータを、前記第1のデータセットから抽出したトリプルから生成し、
前記複数の共通主語の各々に対して前記複数の共通述語の各々が対応付けられ且つ当該複数の共通述語の各々に対して目的語の集合が対応付けられた第2のデータを、前記第2のデータセットから抽出したトリプルから生成し、
前記第1のデータおよび前記第2のデータのそれぞれについて、目的語の集合の各々から符号を生成する処理を実行する、
処理を実行させる検出プログラム。
On the computer
From the first dataset and the second dataset containing a plurality of triples containing a subject, a predicate, and an object, a plurality of common subjects and a plurality of common subjects included in both the first dataset and the second dataset. Extract the common predicate of
A triple containing any of the plurality of common subjects and containing any of the plurality of common predicates is extracted from each of the first data set and the second data set.
The first data in which each of the plurality of common predicates is associated with each of the plurality of common subjects and a set of objects is associated with each of the plurality of common predicates is obtained from the first data. Generated from triples extracted from the dataset of
The second data in which each of the plurality of common predicates is associated with each of the plurality of common subjects and a set of objects is associated with each of the plurality of common predicates is obtained. Generated from triples extracted from the dataset of
For each of the first data and the second data, a process of generating a code from each of the set of objects is executed.
A detection program that executes processing.
前記コンピュータに、
前記第1のデータに含まれる目的語の集合の各々から生成した符号と、前記第2のデータに含まれる目的語の集合の各々から生成した符号との比較に基づき、前記第1のデータセットと前記第2のデータセットとのいずれにも含まれるトリプルを抽出する、
処理をさらに実行させる請求項1記載の検出プログラム。
On the computer
The first data set is based on a comparison between the codes generated from each of the sets of objects included in the first data and the codes generated from each of the sets of objects included in the second data. And the triples contained in both of the second dataset,
The detection program according to claim 1, wherein the processing is further executed.
前記第1のデータセットと前記第2のデータセットとのいずれにも含まれるトリプルを抽出する処理において、
第1のデータに含まれる目的語の第1の集合から生成した符号と、前記第2のデータに含まれる目的語の第2の集合から生成した符号とが同一である場合、前記第1の集合又は前記第2の集合に含まれる各目的語と、当該目的語に対応する共通主語および共通述語とを含むトリプルを抽出し、
前記第1のデータに含まれる目的語の第3の集合から生成した符号と、前記第2のデータに含まれる目的語の第4の集合から生成した符号とが同一ではない場合、前記第3の集合に含まれる各目的語と、前記第4の集合に含まれる各目的語との比較に基づき、前記第1のデータセットと前記第2のデータセットとのいずれにも含まれるトリプルを抽出する、
請求項2記載の検出プログラム。
In the process of extracting triples contained in both the first data set and the second data set,
When the code generated from the first set of objects included in the first data and the code generated from the second set of objects included in the second data are the same, the first A triple containing a set or each object included in the second set and a common subject and a common predicate corresponding to the object is extracted.
When the code generated from the third set of target words included in the first data and the code generated from the fourth set of target words included in the second data are not the same, the third set is described. Based on the comparison between each object included in the set of and each object included in the fourth set, triples included in both the first data set and the second data set are extracted. To do
The detection program according to claim 2.
前記複数の共通主語および前記複数の共通述語を抽出する処理において、
前記第1のデータセットに含まれる複数の述語のうち前記第2のデータセットに含まれる述語である前記複数の共通述語を抽出し、
前記第2のデータセットに含まれるトリプルのうち、抽出された前記複数の共通述語のいずれかと同じ述語を含み且つ前記第1のデータセットに含まれる主語と同じ主語を含むトリプルを特定し、特定した当該トリプルに含まれる主語である前記複数の共通主語を抽出する、
請求項1乃至3のいずれか1つ記載の検出プログラム。
In the process of extracting the plurality of common subjects and the plurality of common predicates,
From the plurality of predicates included in the first data set, the plurality of common predicates that are predicates included in the second data set are extracted.
Among the triples included in the second dataset, the triples containing the same predicate as any of the extracted common predicates and the same subject as the subject included in the first dataset are identified and specified. Extract the plurality of common subjects that are the subjects included in the triple.
The detection program according to any one of claims 1 to 3.
コンピュータが、
主語、述語および目的語を含むトリプルを複数含む第1のデータセットおよび第2のデータセットから、前記第1のデータセットおよび前記第2のデータセットのいずれにも含まれる複数の共通主語および複数の共通述語を抽出し、
前記複数の共通主語のいずれかを含み且つ前記複数の共通述語のいずれかを含むトリプルを、前記第1のデータセット及び前記第2のデータセットのそれぞれから抽出し、
前記複数の共通主語の各々に対して前記複数の共通述語の各々が対応付けられ且つ当該複数の共通述語の各々に対して目的語の集合が対応付けられた第1のデータを、前記第1のデータセットから抽出したトリプルから生成し、
前記複数の共通主語の各々に対して前記複数の共通述語の各々が対応付けられ且つ当該複数の共通述語の各々に対して目的語の集合が対応付けられた第2のデータを、前記第2のデータセットから抽出したトリプルから生成し、
前記第1のデータおよび前記第2のデータのそれぞれについて、目的語の集合の各々から符号を生成する処理を実行する、
処理を実行する検出方法。
The computer
From the first dataset and the second dataset containing a plurality of triples containing a subject, a predicate, and an object, a plurality of common subjects and a plurality of common subjects included in both the first dataset and the second dataset. Extract the common predicate of
A triple containing any of the plurality of common subjects and containing any of the plurality of common predicates is extracted from each of the first data set and the second data set.
The first data in which each of the plurality of common predicates is associated with each of the plurality of common subjects and a set of objects is associated with each of the plurality of common predicates is obtained from the first data. Generated from triples extracted from the dataset of
The second data in which each of the plurality of common predicates is associated with each of the plurality of common subjects and a set of objects is associated with each of the plurality of common predicates is obtained. Generated from triples extracted from the dataset of
For each of the first data and the second data, a process of generating a code from each of the set of objects is executed.
A detection method that performs processing.
主語、述語および目的語を含むトリプルを複数含む第1のデータセットおよび第2のデータセットから、前記第1のデータセットおよび前記第2のデータセットのいずれにも含まれる複数の共通主語および複数の共通述語を抽出する抽出部と、
前記複数の共通主語のいずれかを含み且つ前記複数の共通述語のいずれかを含むトリプルを、前記第1のデータセット及び前記第2のデータセットのそれぞれから抽出し、前記複数の共通主語の各々に対して前記複数の共通述語の各々が対応付けられ且つ当該複数の共通述語の各々に対して目的語の集合が対応付けられた第1のデータを、前記第1のデータセットから抽出したトリプルから生成し、前記複数の共通主語の各々に対して前記複数の共通述語の各々が対応付けられ且つ当該複数の共通述語の各々に対して目的語の集合が対応付けられた第2のデータを、前記第2のデータセットから抽出したトリプルから生成し、前記第1のデータおよび前記第2のデータのそれぞれについて、目的語の集合の各々から符号を生成する処理を実行する生成部と、
を有する検出装置。
From the first dataset and the second dataset containing a plurality of triples containing a subject, a predicate, and an object, a plurality of common subjects and a plurality of common subjects included in both the first dataset and the second dataset. And the extraction part that extracts the common predicate of
A triple containing any of the plurality of common subjects and containing any of the plurality of common predicates is extracted from each of the first data set and the second data set, and each of the plurality of common subjects. A triple obtained from the first data set, the first data in which each of the plurality of common predicates is associated with the data and a set of target words is associated with each of the plurality of common predicates. Second data generated from, each of the plurality of common predicates is associated with each of the plurality of common subjects, and a set of target words is associated with each of the plurality of common predicates. , A generation unit that generates a code from each of the set of predicates for each of the first data and the second data, which is generated from the triple extracted from the second data set.
Detection device having.
JP2017029419A 2017-02-20 2017-02-20 Detection method, detection device and detection program Active JP6790905B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017029419A JP6790905B2 (en) 2017-02-20 2017-02-20 Detection method, detection device and detection program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017029419A JP6790905B2 (en) 2017-02-20 2017-02-20 Detection method, detection device and detection program

Publications (2)

Publication Number Publication Date
JP2018136640A JP2018136640A (en) 2018-08-30
JP6790905B2 true JP6790905B2 (en) 2020-11-25

Family

ID=63365858

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017029419A Active JP6790905B2 (en) 2017-02-20 2017-02-20 Detection method, detection device and detection program

Country Status (1)

Country Link
JP (1) JP6790905B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220112765A (en) 2019-12-06 2022-08-11 이데미쓰 고산 가부시키가이샤 Polycarbonate-polyorganosiloxane copolymer and resin composition comprising the copolymer
CN111274391B (en) * 2020-01-15 2023-09-01 北京百度网讯科技有限公司 A SPO extraction method, device, electronic equipment and storage medium

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4913360B2 (en) * 2005-04-22 2012-04-11 Kddi株式会社 Profile management apparatus and computer program
JP4587908B2 (en) * 2005-08-19 2010-11-24 日本電信電話株式会社 Metadata generation device, metadata constraint definition processing device, and control method thereof
EP2631817A1 (en) * 2012-02-23 2013-08-28 Fujitsu Limited Database, apparatus, and method for storing encoded triples
EP2755148A1 (en) * 2013-01-15 2014-07-16 Fujitsu Limited Data storage system, and program and method for execution in a data storage system
CN104077297B (en) * 2013-03-27 2017-05-17 日电(中国)有限公司 Query method and query device based on body
CN105138526B (en) * 2014-05-30 2019-02-22 国际商业机器公司 For automatically generating the method and system of Semantic mapping for relevant database

Also Published As

Publication number Publication date
JP2018136640A (en) 2018-08-30

Similar Documents

Publication Publication Date Title
US11693839B2 (en) Parser for schema-free data exchange format
US10521441B2 (en) System and method for approximate searching very large data
US20130013597A1 (en) Processing Repetitive Data
Wang et al. Semantic-aware blocking for entity resolution
AU2014201516A1 (en) Resolving similar entities from a transaction database
JP4997856B2 (en) Database analysis program, database analysis apparatus, and database analysis method
Davardoost et al. Extracting OLAP cubes from document-oriented NoSQL database based on parallel similarity algorithms
JP6790905B2 (en) Detection method, detection device and detection program
US7761458B1 (en) Segmentation of a data sequence
CN102214248A (en) Multi-layer frequent pattern discovery algorithm with high space extensibility and high time efficiency for mining mass data
Millham et al. Pattern mining algorithms
US20070239663A1 (en) Parallel processing of count distinct values
US20200142910A1 (en) Data clustering apparatus and method based on range query using cf tree
Koh et al. Finding non-coincidental sporadic rules using apriori-inverse
JP6123372B2 (en) Information processing system, name identification method and program
Wang et al. MapReduce based personalized locality sensitive hashing for similarity joins on large scale data
JP6457290B2 (en) Method for pruning a graph, non-transitory computer-readable storage medium storing instructions for causing a computer to perform the method for pruning the graph, and a computer system for pruning a graph
US20070174306A1 (en) Data extraction and conversion methods and apparatuses
WO2018096686A1 (en) Verification program, verification device, verification method, index generation program, index generation device, and index generation method
Marchet Advances in practical k-mer sets: essentials for the curious
KR20110001448A (en) System and Method for Creating Clusters Using Seeds along Links
KR102900653B1 (en) Apparatus and method for extracting graph
WO2014168199A1 (en) Logical operation method and information processing device
US12141124B1 (en) Discovering candidate referential integrities in a database
Haj Rachid Two efficient techniques to find approximate overlaps between sequences

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200831

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201019

R150 Certificate of patent or registration of utility model

Ref document number: 6790905

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150