JP5998942B2 - Update method, update program, and verification processing apparatus - Google Patents

Update method, update program, and verification processing apparatus Download PDF

Info

Publication number
JP5998942B2
JP5998942B2 JP2013001412A JP2013001412A JP5998942B2 JP 5998942 B2 JP5998942 B2 JP 5998942B2 JP 2013001412 A JP2013001412 A JP 2013001412A JP 2013001412 A JP2013001412 A JP 2013001412A JP 5998942 B2 JP5998942 B2 JP 5998942B2
Authority
JP
Japan
Prior art keywords
path
state
automaton
matching
condition
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.)
Expired - Fee Related
Application number
JP2013001412A
Other languages
Japanese (ja)
Other versions
JP2014134901A (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 JP2013001412A priority Critical patent/JP5998942B2/en
Publication of JP2014134901A publication Critical patent/JP2014134901A/en
Application granted granted Critical
Publication of JP5998942B2 publication Critical patent/JP5998942B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、更新方法、更新プログラム、および照合処理装置に関する。   The present invention relates to an update method, an update program, and a verification processing device.

従来、入力ストリームに対して、オートマトンを用いて、パス・キーワードを含むクエリの照合を行う技術がある。オートマトンは、初期のオートマトンから照合に必要な部分ごとに段階的に更新される。オートマトンの更新では、オートマトンを記憶する記憶領域の使用量を抑制するため、オートマトンに規定された状態が削除されることがある。   Conventionally, there is a technique for matching a query including a path keyword to an input stream using an automaton. The automaton is updated step by step from the initial automaton for each part required for verification. In the automaton update, the state defined in the automaton may be deleted in order to suppress the use amount of the storage area for storing the automaton.

関連する技術としては、例えば、複数の分岐XPath式ごとにターゲットパスおよび述語それぞれの絶対パスおよびスコープパスを抽出し、各パスをノードとして部分的に等しいノードまたはノード間のリンクを共有可能部分として共有化するものがある。また、例えば、ノードまたはノード間のリンクを共有化して、複数の分岐XPath式から1つの共有化インデックスを構築し、共有化インデックスのノードごとに設定された参照カウンタをもとに、分岐XPath式の登録および削除を行う技術がある。また、例えば、構造化文書の構造情報から検索式で指定された要素が出現しなくなる条件を求め、中断条件が満たされた場合には検索オートマトンの状態遷移を削除し、すべての有効な状態遷移がなくなった場合には解析を終了する技術がある。   As a related technique, for example, an absolute path and a scope path of a target path and a predicate are extracted for each of a plurality of branch XPath expressions, and a partially equal node or a link between nodes is shared as a shareable part. There is something to share. Further, for example, a node or a link between nodes is shared to construct one shared index from a plurality of branch XPath expressions, and the branch XPath expression is based on a reference counter set for each node of the shared index. There is a technology to register and delete. In addition, for example, the condition that the element specified by the search expression does not appear is obtained from the structure information of the structured document, and when the interruption condition is satisfied, the state transition of the search automaton is deleted and all the valid state transitions are deleted. There is a technique for ending the analysis when there is no more.

特開2007−249724号公報JP 2007-249724 A 国際公開第2006/080469International Publication No. 2006/080469

しかしながら、上述した従来技術では、オートマトンから削除した状態と同一の状態に遷移する場合に行われる、削除した状態と同一の状態を再作成してオートマトンに追加する更新処理の処理量が増大して、クエリの照合処理にかかる処理時間が増大してしまう。   However, in the above-described conventional technology, the amount of update processing that is performed when transitioning to the same state as the state deleted from the automaton and re-creating the same state as the deleted state and adding to the automaton is increased. The processing time required for query matching processing increases.

1つの側面では、本発明は、オートマトンを用いたクエリの照合処理の高速化を図ることを目的とする。   In one aspect, an object of the present invention is to speed up a query matching process using an automaton.

本発明の一側面によれば、オートマトンを用いて、タグにより階層化された入力ストリームに対して、キーワードとキーワードに対応するパスの条件とを含むクエリの照合を行うコンピュータが、入力ストリームから条件を満たすパスを検出するたびに、条件を満たすパスごとの検出回数を計数し、初期状態と、開始タグ記号を示す開始状態と、終了タグ記号を示す終了状態とが規定され、条件を満たすパスを示すパス照合状態が複数規定されたオートマトンに、条件を満たすパスを示す新たなパス照合状態を追加する場合、計数した条件を満たすパスごとの検出回数に基づいて、オートマトンを更新する更新方法、更新プログラム、および照合処理装置が提案される。   According to one aspect of the present invention, a computer that performs matching of a query including a keyword and a path condition corresponding to the keyword with respect to an input stream hierarchized by tags using an automaton, Each time a path that satisfies the condition is detected, the number of detections for each path that satisfies the condition is counted, and an initial state, a start state that indicates a start tag symbol, and an end state that indicates an end tag symbol are defined. An update method for updating the automaton based on the number of detections for each path satisfying the counted condition when adding a new path matching state indicating a path satisfying the condition to the automaton in which a plurality of path matching states indicating An update program and a verification processing device are proposed.

本発明の一側面によれば、オートマトンを用いたクエリの照合処理の高速化を図ることができるという効果を奏する。   According to one aspect of the present invention, it is possible to increase the speed of query matching processing using an automaton.

図1は、本実施の形態にかかるオートマトン更新例を示す説明図である。FIG. 1 is an explanatory diagram showing an example of automaton update according to the present embodiment. 図2は、入力ストリームSとクエリQとの照合例を示す説明図である。FIG. 2 is an explanatory diagram showing an example of collation between the input stream S and the query Q. 図3は、入力ストリームSの変換例を示す説明図である。FIG. 3 is an explanatory diagram illustrating an example of conversion of the input stream S. 図4は、入力ストリームSのパスを示す説明図である。FIG. 4 is an explanatory diagram showing the path of the input stream S. 図5は、パスID管理テーブルの一例を示す説明図である。FIG. 5 is an explanatory diagram showing an example of the path ID management table. 図6は、頻度管理テーブルの一例を示す説明図である。FIG. 6 is an explanatory diagram showing an example of the frequency management table. 図7は、初期オートマトンA0の構築例を示す説明図である。FIG. 7 is an explanatory diagram showing a construction example of the initial automaton A0. 図8は、ノード構造体の一例を示す説明図である。FIG. 8 is an explanatory diagram illustrating an example of a node structure. 図9は、初期オートマトンA0における各状態のノード構造体Nの一例を示す説明図である。FIG. 9 is an explanatory diagram showing an example of the node structure N in each state in the initial automaton A0. 図10は、照合処理装置100の第1の動作例を示す説明図(その1)である。FIG. 10 is an explanatory diagram (part 1) of the first operation example of the verification processing device 100. 図11は、照合処理装置100の第1の動作例を示す説明図(その2)である。FIG. 11 is an explanatory diagram (part 2) of the first operation example of the collation processing device 100. 図12は、照合処理装置100の第1の動作例を示す説明図(その3)である。FIG. 12 is an explanatory diagram (part 3) illustrating a first operation example of the collation processing device 100. 図13は、照合処理装置100の第1の動作例を示す説明図(その4)である。FIG. 13 is an explanatory diagram (part 4) illustrating a first operation example of the collation processing device 100. 図14は、照合処理装置100の第1の動作例を示す説明図(その5)である。FIG. 14 is an explanatory diagram (No. 5) illustrating a first operation example of the matching processing device 100. 図15は、照合処理装置100の第1の動作例を示す説明図(その6)である。FIG. 15 is an explanatory diagram (No. 6) illustrating a first operation example of the matching processing device 100. 図16は、照合処理装置100の第1の動作例を示す説明図(その7)である。FIG. 16 is an explanatory diagram (No. 7) illustrating a first operation example of the matching processing device 100. 図17は、照合処理装置100の第1の動作例を示す説明図(その8)である。FIG. 17 is an explanatory diagram (No. 8) illustrating a first operation example of the matching processing device 100. 図18は、照合処理装置100の第1の動作例を示す説明図(その9)である。FIG. 18 is an explanatory diagram (No. 9) illustrating a first operation example of the matching processing device 100. 図19は、照合処理装置100の第1の動作例を示す説明図(その10)である。FIG. 19 is an explanatory diagram (No. 10) illustrating a first operation example of the matching processing device 100. 図20は、照合処理装置100の第1の動作例を示す説明図(その11)である。FIG. 20 is an explanatory diagram (part 11) illustrating the first operation example of the matching processing device 100. 図21は、照合処理装置100の第1の動作例を示す説明図(その12)である。FIG. 21 is an explanatory diagram (No. 12) illustrating a first operation example of the matching processing device 100. 図22は、照合処理装置100の第1の動作例を示す説明図(その13)である。FIG. 22 is an explanatory diagram (No. 13) illustrating a first operation example of the matching processing device 100. 図23は、照合処理装置100の第1の動作例を示す説明図(その14)である。FIG. 23 is an explanatory diagram (No. 14) illustrating a first operation example of the matching processing device 100. 図24は、照合処理装置100の第1の動作例を示す説明図(その15)である。FIG. 24 is an explanatory diagram (No. 15) illustrating a first operation example of the matching processing device 100. 図25は、照合処理装置100の第1の動作例を示す説明図(その16)である。FIG. 25 is an explanatory diagram (No. 16) illustrating a first operation example of the matching processing device 100. 図26は、照合処理装置100の第1の動作例を示す説明図(その17)である。FIG. 26 is an explanatory diagram (No. 17) illustrating a first operation example of the matching processing device 100. 図27は、照合処理装置100の第1の動作例を示す説明図(その18)である。FIG. 27 is an explanatory diagram (No. 18) illustrating a first operation example of the matching processing device 100. 図28は、照合処理装置100の第1の動作例を示す説明図(その19)である。FIG. 28 is an explanatory diagram (No. 19) illustrating a first operation example of the matching processing device 100. 図29は、照合処理装置100の第1の動作例を示す説明図(その20)である。FIG. 29 is an explanatory diagram (No. 20) illustrating a first operation example of the matching processing device 100. 図30は、照合処理装置100の第1の動作例を示す説明図(その21)である。FIG. 30 is an explanatory diagram (No. 21) illustrating a first operation example of the matching processing device 100. 図31は、照合処理装置100の第2の動作例を示す説明図(その1)である。FIG. 31 is an explanatory diagram (part 1) illustrating a second operation example of the matching processing device 100. 図32は、照合処理装置100の第2の動作例を示す説明図(その2)である。FIG. 32 is an explanatory diagram (part 2) of the second operation example of the collation processing device 100. 図33は、照合処理装置100の第2の動作例を示す説明図(その3)である。FIG. 33 is an explanatory diagram (part 3) of the second operation example of the matching processing device 100. 図34は、照合処理装置100の第2の動作例を示す説明図(その4)である。FIG. 34 is an explanatory diagram (part 4) of the second operation example of the matching processing device 100. 図35は、照合処理装置100の第2の動作例を示す説明図(その5)である。FIG. 35 is an explanatory diagram (No. 5) illustrating a second operation example of the matching processing device 100. 図36は、照合処理装置100の第2の動作例を示す説明図(その6)である。FIG. 36 is an explanatory diagram (No. 6) illustrating a second operation example of the matching processing device 100. 図37は、照合処理装置100の第3の動作例を示す説明図(その1)である。FIG. 37 is an explanatory diagram (No. 1) illustrating a third operation example of the matching processing device 100. 図38は、照合処理装置100の第3の動作例を示す説明図(その2)である。FIG. 38 is an explanatory diagram (part 2) of the third operation example of the collation processing device 100. 図39は、照合処理装置100の第3の動作例を示す説明図(その3)である。FIG. 39 is an explanatory diagram (part 3) of the third operation example of the collation processing device 100. 図40は、照合処理装置100の第3の動作例を示す説明図(その4)である。FIG. 40 is an explanatory diagram (part 4) of the third operation example of the collation processing device 100. 図41は、照合処理装置100の第3の動作例を示す説明図(その5)である。FIG. 41 is an explanatory diagram (No. 5) illustrating a third operation example of the matching processing device 100. 図42は、照合処理装置100のハードウェア構成例を示すブロック図である。FIG. 42 is a block diagram illustrating a hardware configuration example of the collation processing device 100. 図43は、照合処理装置100の機能的構成例を示すブロック図である。FIG. 43 is a block diagram illustrating a functional configuration example of the collation processing device 100. 図44は、照合処理装置100の更新処理の処理手順の一例を示すフローチャートである。FIG. 44 is a flowchart illustrating an example of a processing procedure of update processing of the verification processing device 100. 図45は、図44に示した初期オートマトン構築処理(ステップS4403)の処理手順の一例を示すフローチャートである。FIG. 45 is a flowchart showing an example of the processing procedure of the initial automaton construction process (step S4403) shown in FIG. 図46は、図44に示した第1の走査処理(ステップS4409)の処理手順の一例を示すフローチャートである。FIG. 46 is a flowchart illustrating an example of a processing procedure of the first scanning process (step S4409) illustrated in FIG. 図47は、図46に示した第1の更新処理(ステップS4606)の処理手順の一例を示すフローチャートである。FIG. 47 is a flowchart illustrating an example of a processing procedure of the first update processing (step S4606) illustrated in FIG. 図48は、図47に示した削除処理(ステップS4702)の処理手順の一例を示すフローチャートである。FIG. 48 is a flowchart illustrating an example of a processing procedure of the deletion process (step S4702) illustrated in FIG. 図49は、図46に示した第2の更新処理(ステップS4607)の処理手順の一例を示すフローチャートである。FIG. 49 is a flowchart illustrating an example of a processing procedure of the second update process (step S4607) illustrated in FIG. 図50は、図46に示した累計回数更新処理(ステップS4609)の処理手順の一例を示すフローチャートである。FIG. 50 is a flowchart illustrating an example of a processing procedure of the cumulative number updating process (step S4609) illustrated in FIG. 図51は、図44に示した第2の走査処理(ステップS4410)の処理手順の一例を示すフローチャートである。FIG. 51 is a flowchart showing an example of the processing procedure of the second scanning process (step S4410) shown in FIG. 図52は、図44に示した第3の走査処理(ステップS4411)の処理手順の一例を示すフローチャートである。FIG. 52 is a flowchart showing an example of the processing procedure of the third scanning process (step S4411) shown in FIG.

以下に添付図面を参照して、本発明にかかる更新方法、更新プログラム、および照合処理装置の実施の形態を詳細に説明する。なお、本実施の形態では、オートマトンを総称する符号として「A」を用いるが、更新の状態を特定するために、「A0」,「A1」,「A2」…「An」の符号を付すことがある。「A0」は初期のオートマトンを示す符号であり、「A1」は1回目の更新後のオートマトンを示す符号であり、「A2」は2回目の更新後のオートマトンを示す符号であり、「An」はn回目の更新後のオートマトンを示す符号である。   Exemplary embodiments of an update method, an update program, and a verification processing device according to the present invention will be described below in detail with reference to the accompanying drawings. In the present embodiment, “A” is used as a code that collectively refers to automata, but “A0”, “A1”, “A2”... “An” are added in order to specify the update state. There is. “A0” is a code indicating the initial automaton, “A1” is a code indicating the automaton after the first update, “A2” is a code indicating the automaton after the second update, and “An” Is a code indicating the automaton after the nth update.

<オートマトン更新例>
図1は、本実施の形態にかかるオートマトン更新例を示す説明図である。図1に示すように、照合処理装置100は、入力ストリームSに対して、オートマトンAを用いて、クエリQの照合を行うコンピュータである。照合処理装置100は、クエリQの照合を行う際に、クエリQの照合に用いる各種状態がオートマトンAに規定されていなければ、クエリQの照合に用いる各種状態を新たにオートマトンAに追加することにより、オートマトンAを更新する。
<Example of automaton update>
FIG. 1 is an explanatory diagram showing an example of automaton update according to the present embodiment. As shown in FIG. 1, the matching processing device 100 is a computer that performs query Q matching on an input stream S using an automaton A. When collation processing apparatus 100 performs collation of query Q, if various states used for collation of query Q are not defined in automaton A, various states used for collation of query Q are newly added to automaton A. Thus, the automaton A is updated.

ここで、入力ストリームSとは、タグにより階層化されたデータ列であって、発生源Gとなるコンピュータからネットワーク101を介して受信されるデータ列である。入力ストリームSとは、例えば、XML(Extensible Markup Language)データやHTML(HyperText Markup Language)データである。以下の説明では、XMLデータを例に挙げて説明する。   Here, the input stream S is a data string that is hierarchized by tags, and is a data string that is received from the computer that is the source G via the network 101. The input stream S is, for example, XML (Extensible Markup Language) data or HTML (HyperText Markup Language) data. In the following description, XML data will be described as an example.

タグとは、要素の集合が存在する位置を示す情報であって、例えば、開始タグや終了タグである。位置とは、例えば、入力ストリームS内の階層である。開始タグとは、要素の集合の開始位置を示す情報であって、図1の例では、開始タグ<news>や開始タグ<name>などである。終了タグとは、要素の集合の終了位置を示す情報であって、図1の例では、終了タグ</news>や終了タグ</name>などである。要素とは、開始タグと終了タグとの間に含まれる文字列や開始タグや終了タグである。   A tag is information indicating a position where a set of elements exists, and is, for example, a start tag or an end tag. The position is, for example, a hierarchy in the input stream S. The start tag is information indicating the start position of a set of elements, and in the example of FIG. 1, is a start tag <news>, a start tag <name>, or the like. The end tag is information indicating the end position of the set of elements. In the example of FIG. 1, the end tag is an end tag </ news>, an end tag </ name>, or the like. An element is a character string, a start tag, or an end tag included between a start tag and an end tag.

クエリQとは、例えば、キーワードとキーワードに対応するパスの条件とを含む情報である。クエリQは、図1の例では、クエリDB102に記憶される。キーワードとは、入力ストリームS内の文字列と照合される文字列であって、図1の例では、文字列「Bob」である。パスとは、例えば、入力ストリームSの最上階層から任意のタグが示す階層までの経路である。以下の説明では、パスは、最上階層から任意のタグが示す階層までの経路上にある各タグのタグ内文字列を「/」で接続した形式で表記される。図1の例では、開始タグ<news>のパスは、最上階層であるルートが示す第0階層から開始タグ<news>が示す第1階層までの経路上の各タグのタグ内文字列を「/」で接続した「/news」である。同様に、開始タグ<date>のパスは、最上階層であるルートが示す第0階層⇒開始タグ<news>が示す第1階層⇒開始タグ<date>が示す第2階層の経路上の各タグのタグ内文字列を「/」で接続した「/news/date」である。   The query Q is information including, for example, a keyword and a path condition corresponding to the keyword. The query Q is stored in the query DB 102 in the example of FIG. The keyword is a character string that is collated with the character string in the input stream S, and is the character string “Bob” in the example of FIG. The path is, for example, a path from the top layer of the input stream S to a layer indicated by an arbitrary tag. In the following description, the path is expressed in a format in which the character strings in the tags of each tag on the route from the top layer to the layer indicated by an arbitrary tag are connected by “/”. In the example of FIG. 1, the path of the start tag <news> is a character string in the tag of each tag on the route from the 0th hierarchy indicated by the root that is the highest hierarchy to the 1st hierarchy indicated by the start tag <news>. “/ News” connected with “/”. Similarly, the path of the start tag <date> includes each tag on the route of the second hierarchy indicated by the start hierarchy <date> of the 0th hierarchy indicated by the root which is the highest hierarchy → the start tag <news> This is “/ news / date” in which the character strings in the tag are connected by “/”.

パスの条件とは、キーワードが存在する階層を示すパスの条件であって、図1の例では、「/news//name」である。「/news//name」は、第0階層⇒第1階層「news」⇒任意の階層「name」のパスを示す。「//」は、第1階層「news」から任意の階層「name」までの経路上に、どのような階層があってもよいことを示す。したがって、例えば、パス「/news/name」やパス「/news/write/name」やパス「/news/name/write/name」などが、クエリQ内のパスの条件を満たす。   The path condition is a path condition indicating a hierarchy in which a keyword exists, and is “/ news // name” in the example of FIG. “/ News // name” indicates a path from the 0th layer → the first layer “news” → an arbitrary layer “name”. “//” indicates that there may be any hierarchy on the route from the first hierarchy “news” to an arbitrary hierarchy “name”. Therefore, for example, the path “/ news / name”, the path “/ news / write / name”, the path “/ news / name / write / name”, and the like satisfy the conditions of the path in the query Q.

オートマトンAとは、例えば、少なくとも、初期状態と、開始タグ記号を示す開始状態と、終了タグ記号を示す終了状態とが規定された情報である。開始タグ記号とは、開始タグからタグ内文字列を除いた「<>」である。終了タグ記号とは、終了タグからタグ内文字列を除いた「</>」である。   The automaton A is information defining, for example, at least an initial state, a start state indicating a start tag symbol, and an end state indicating an end tag symbol. The start tag symbol is “<>” obtained by removing the character string in the tag from the start tag. The end tag symbol is “</>” obtained by removing the character string in the tag from the end tag.

オートマトンAには、さらに、クエリQの照合に用いる各種状態が規定されていてもよい。クエリQの照合に用いる各種状態とは、例えば、クエリQ内の条件を満たすパスを示すパス照合状態と、パス照合状態からクエリQ内のキーワードによって順次遷移されるキーワード照合途中状態およびキーワード照合完了状態と、である。また、オートマトンAの記憶領域には上限があるため、オートマトンAに規定することができる状態の数には上限があるとする。   In the automaton A, various states used for matching the query Q may be further defined. The various states used for query Q verification include, for example, a path verification status indicating paths that satisfy the condition in query Q, a keyword verification intermediate state that is sequentially shifted from the path verification status by a keyword in query Q, and keyword verification completion. State. Further, since the storage area of the automaton A has an upper limit, it is assumed that the number of states that can be defined in the automaton A has an upper limit.

以下の説明では、まず、オートマトンAの更新例1として、照合処理装置100が、オートマトンAの空き領域がなくなるまで、クエリQの照合に用いる各種状態を新たにオートマトンAに追加する場合の例を示す。次に、オートマトンAの更新例2として、照合処理装置100が、オートマトンAの空き領域がない時に、クエリQの照合に用いる各種状態を新たにオートマトンAに追加することにより、オートマトンAを更新する場合の例を示す。   In the following description, first, as an update example 1 of the automaton A, an example in which the collation processing apparatus 100 newly adds various states used for collation of the query Q to the automaton A until there is no free space in the automaton A. Show. Next, as an update example 2 of the automaton A, the collation processing apparatus 100 updates the automaton A by adding various states used for collation of the query Q to the automaton A when there is no free space in the automaton A. An example of the case is shown.

(オートマトン更新例1)
オートマトンAの更新例1においては、照合処理装置100は、入力ストリームSの先頭から読み込んで、クエリQの条件を満たすパスを検出する。照合処理装置100は、クエリQの条件を満たすパスを検出するごとに、クエリQの条件を満たすパスごとの検出回数を計数すると共に、クエリQのキーワードの照合に用いるパス照合状態を生成する。
(Automata update example 1)
In the update example 1 of the automaton A, the matching processing device 100 reads from the head of the input stream S and detects a path that satisfies the condition of the query Q. Each time the verification processing device 100 detects a path that satisfies the query Q condition, the verification processing apparatus 100 counts the number of times of detection for each path that satisfies the query Q condition and generates a path verification state used for matching the keyword of the query Q.

例えば、照合処理装置100は、クエリQの条件を満たすパス「/news/write/name」を検出し、検出したパスを示すパス照合状態を生成する。ここで、パス照合状態には、クエリQの条件を満たすパス「/news/write/name」に固有なパスIDが割り当てられる。図1の例では、「4」が割り当てられる。   For example, the verification processing apparatus 100 detects a path “/ news / write / name” that satisfies the condition of the query Q, and generates a path verification state indicating the detected path. Here, a path ID unique to a path “/ news / write / name” that satisfies the condition of the query Q is assigned to the path verification state. In the example of FIG. 1, “4” is assigned.

また、照合処理装置100は、開始状態からの遷移先の変更を行う。具体的には、照合処理装置100は、開始状態からパス照合状態への遷移、パス照合状態から開始状態や終了状態への遷移、パス照合状態からクエリQ内のキーワードへの遷移、その遷移先状態を生成する。   Further, the verification processing device 100 changes the transition destination from the start state. Specifically, the verification processing device 100 changes the transition from the start state to the path verification state, the transition from the path verification state to the start state or the end state, the transition from the path verification state to the keyword in the query Q, and the transition destination. Generate state.

また、照合処理装置100は、入力ストリームSの走査位置がパス照合状態の時に「Bob」を読み込んだ場合に、クエリQのキーワードと照合できるよう、パス照合状態からの遷移先状態を生成する。遷移先状態は、第1のキーワード照合途中状態と、パス照合状態から第1のキーワード照合途中状態への遷移「B」と、である。また、照合処理装置100は、第1のキーワード照合途中状態からの遷移先になる第2のキーワード照合途中状態と、第1のキーワード照合途中状態から第2のキーワード照合途中状態への遷移「o」と、を生成する。また、照合処理装置100は、第2のキーワード照合途中状態からの遷移先になるキーワード照合完了状態と、第2のキーワード照合途中状態からキーワード照合完了状態への遷移「b」と、を生成する。   Further, the matching processing device 100 generates a transition destination state from the path matching state so that it can be matched with the keyword of the query Q when “Bob” is read when the scanning position of the input stream S is in the path matching state. The transition destination state is a first keyword matching intermediate state and a transition “B” from the path matching state to the first keyword matching intermediate state. The matching processing device 100 also includes a second keyword matching intermediate state that is a transition destination from the first keyword matching intermediate state, and a transition “o” from the first keyword matching intermediate state to the second keyword matching intermediate state. Is generated. Further, the matching processing device 100 generates a keyword matching completed state that is a transition destination from the second keyword matching intermediate state and a transition “b” from the second keyword matching intermediate state to the keyword matching completed state. .

また、照合処理装置100は、パス「/news/write/name」の検出回数を計数する。ここでは、照合処理装置100は、パス「/news/write/name」の検出回数「1」を計数したとする。   Further, the verification processing device 100 counts the number of times the path “/ news / write / name” is detected. Here, it is assumed that the collation processing apparatus 100 counts the number of detections “1” of the path “/ news / write / name”.

照合処理装置100は、同様に、パス「/news/edit/name」を検出し、パス「/news/edit/name」のパスID「7」が割り当てられたパス照合状態を生成してオートマトンAに規定する。また、照合処理装置100は、キーワード照合途中状態と、キーワード照合完了状態と、を生成してオートマトンAに規定する。また、照合処理装置100は、パス「/news/edit/name」の検出回数「1」を計数する。   Similarly, the verification processing apparatus 100 detects the path “/ news / edit / name”, generates a path verification state to which the path ID “7” of the path “/ news / edit / name” is assigned, and generates the automaton A. Stipulate. Further, the matching processing device 100 generates a keyword matching in-progress state and a keyword matching completed state and defines them in the automaton A. In addition, the verification processing device 100 counts the number of detections “1” of the path “/ news / edit / name”.

また、照合処理装置100は、同様に、パス「/news/prev/name」を検出し、パス「/news/prev/name」のパスID「9」が割り当てられたパス照合状態を生成してオートマトンAに規定する。また、照合処理装置100は、キーワード照合途中状態と、キーワード照合完了状態と、を生成してオートマトンAに規定する。また、照合処理装置100は、パス「/news/prev/name」の検出回数「1」を計数する。ここで、オートマトンAの空き領域がなくなるとする。   Similarly, the verification processing apparatus 100 detects the path “/ news / prev / name” and generates a path verification state to which the path ID “9” of the path “/ news / prev / name” is assigned. Automaton A is specified. Further, the matching processing device 100 generates a keyword matching in-progress state and a keyword matching completed state and defines them in the automaton A. Further, the verification processing apparatus 100 counts the number of detections “1” of the path “/ news / prev / name”. Here, it is assumed that there is no free space in the automaton A.

その後、同様に、照合処理装置100は、入力ストリームSを順次読み込んで処理を行い、パス「/news/write/name」の検出回数「3」を計数し、パス「/news/edit/name」の検出回数「3」を計数したとする。また、パス「/news/prev/name」の検出回数は「1」のままであるとする。これにより、オートマトンAの更新例1が終了する。   Thereafter, similarly, the matching processing apparatus 100 sequentially reads and processes the input stream S, counts the detection number “3” of the path “/ news / write / name”, and passes the path “/ news / edit / name”. Assume that the number of detections “3” is counted. Further, the number of detections of the path “/ news / prev / name” remains “1”. Thereby, the update example 1 of the automaton A ends.

(オートマトン更新例2)
オートマトンAの更新例2において、照合処理装置100は、クエリQの条件を満たすパス「/news/ghost/name」を検出する。ここで、オートマトンAには、空き領域がないため、検出したパス「/news/ghost/name」のパスID「10」が割り当てられたパス照合状態を、新たにオートマトンAに規定することができない。
(Automata update example 2)
In the update example 2 of the automaton A, the verification processing apparatus 100 detects a path “/ news / host / name” that satisfies the condition of the query Q. Here, since the automaton A has no free space, the path collation state to which the path ID “10” of the detected path “/ news / host / name” is assigned cannot be newly defined in the automaton A. .

そこで、照合処理装置100は、オートマトンAに規定されたパス照合状態のうち、いずれかのパス照合状態を削除することにより、パスID「10」が割り当てられたパス照合状態を新たにオートマトンAに規定する。具体的には、照合処理装置100は、パスごとに計数した検出回数に基づいて、検出回数が少ないパスのパスIDが割り当てられたパス照合状態を削除する。そして、照合処理装置100は、パスID「10」が割り当てられたパス照合状態を生成してオートマトンAに新たに規定する。また、照合処理装置100は、キーワード照合途中状態と、キーワード照合完了状態と、を生成してオートマトンAに規定する。これにより、オートマトンAの更新例2が終了する。   Therefore, the verification processing apparatus 100 deletes one of the path verification states defined in the automaton A, so that the path verification state to which the path ID “10” is assigned is newly assigned to the automaton A. Stipulate. Specifically, the verification processing apparatus 100 deletes the path verification state to which the path ID of the path with the low detection count is assigned based on the detection count counted for each path. Then, the verification processing device 100 generates a path verification state to which the path ID “10” is assigned, and newly defines it in the automaton A. Further, the matching processing device 100 generates a keyword matching in-progress state and a keyword matching completed state and defines them in the automaton A. Thereby, the update example 2 of the automaton A ends.

このように、照合処理装置100は、オートマトンAの更新において、オートマトンAに規定されたパス照合状態のうち、クエリQの条件を満たすと検出された検出回数が相対的に多いパス照合状態を残す。したがって、照合処理装置100は、オートマトンAに規定されたパス照合状態のうち、後に再び走査する可能性が相対的に高いパス照合状態を残すことができる。換言すれば、照合処理装置100は、後に再び走査する可能性が相対的に高いパス照合状態を削除してしまって、後に再び同一のパス照合状態を生成することになってしまうことを防止することができる。結果として、照合処理装置100は、オートマトン更新処理の負荷を低減し、オートマトンAにパス照合状態を生成することによって生じる処理遅延時間を抑制し、オートマトンAを用いたクエリQの照合処理を高速化することができる。   Thus, in the update of the automaton A, the matching processing apparatus 100 leaves a path matching state in which the number of detections detected when the condition of the query Q is satisfied among the path matching states defined in the automaton A is relatively large. . Therefore, the verification processing apparatus 100 can leave a path verification state that is relatively likely to be scanned again later among the path verification states defined in the automaton A. In other words, the matching processing device 100 prevents a path matching state that is relatively likely to be scanned again later from being deleted, and subsequently generating the same path matching state again. be able to. As a result, the matching processing device 100 reduces the load of automaton update processing, suppresses processing delay time caused by generating a path matching state in the automaton A, and speeds up the query Q matching processing using the automaton A. can do.

<入力ストリームSとクエリQとの照合例>
図2は、入力ストリームSとクエリQとの照合例を示す説明図である。照合処理装置100は、入力ストリームSにおいて、クエリQ内のパスの条件を満たすパスが示す階層にキーワード「Bob」が含まれる場合に、キーワード「Bob」を出力する。ここで、照合処理装置100は、文字列「Bob」と共に、文字列「Bob」の位置を示す情報を出力してもよい。文字列「Bob」の位置を示す情報とは、例えば、パスであってもよいし、文字列「Bob」が存在する行番号であってもよい。
<Example of collation between input stream S and query Q>
FIG. 2 is an explanatory diagram showing an example of collation between the input stream S and the query Q. The collation processing apparatus 100 outputs the keyword “Bob” when the keyword “Bob” is included in the hierarchy indicated by the path satisfying the path condition in the query Q in the input stream S. Here, the collation processing apparatus 100 may output information indicating the position of the character string “Bob” together with the character string “Bob”. The information indicating the position of the character string “Bob” may be, for example, a path or a line number where the character string “Bob” exists.

図3は、入力ストリームSの変換例を示す説明図である。照合処理装置100は、入力ストリームSを先頭の<news>から末尾の</news>まで順次読み込む。照合処理装置100は、タグについて変換を行う。これにより、タグが圧縮されるため、オートマトンAの縮小化を図ることができる。   FIG. 3 is an explanatory diagram illustrating an example of conversion of the input stream S. The verification processing apparatus 100 sequentially reads the input stream S from the first <news> to the last </ news>. The verification processing device 100 performs conversion on the tag. Thereby, since the tag is compressed, the automaton A can be reduced.

図3の例では、開始タグ記号「<>」は「[」に変換される。また、終了タグ記号「</>」は「]」に変換される。また、タグ内文字列は、各々固有な番号に変換される。本例では、読み込み順に、「1」、「2」、…に変換される。例えば、「news」が「1」に、「date」が「2」に、「write」が「3」に、「name」が「4」に変換される。以下の説明では、変換された入力ストリームSを、「変換ストリームs」と表記する場合がある。   In the example of FIG. 3, the start tag symbol “<>” is converted to “[”. Also, the end tag symbol “</>” is converted to “]”. In addition, each character string in the tag is converted into a unique number. In this example, they are converted into “1”, “2”,. For example, “news” is converted into “1”, “date” is converted into “2”, “write” is converted into “3”, and “name” is converted into “4”. In the following description, the converted input stream S may be referred to as “converted stream s”.

図4は、入力ストリームSのパスを示す説明図である。パスとは、入力ストリームSの最上階層から各タグが示す階層までの経路を示す情報である。図4の例では、理解の容易のため、便宜上、入力ストリームSについてのパススキーマを用いてパスを説明するが、入力ストリームSがどのように構成されているかは、入力ストリームSを読み込んで自ら解析するまで照合処理装置100は認識していない。   FIG. 4 is an explanatory diagram showing the path of the input stream S. The path is information indicating a route from the top layer of the input stream S to the layer indicated by each tag. In the example of FIG. 4, for ease of understanding, the path will be described using a path schema for the input stream S for convenience. However, how the input stream S is configured is determined by reading the input stream S The collation processing apparatus 100 does not recognize until analysis.

パススキーマは、入力ストリームSの階層構造を示すツリー構造体である。入力ストリームSでは、「news」が第1階層、「date」および「write」が第2階層、「name」が第3階層となる。第0階層のルートから第1階層の「news」に至るまでの経路がパスp1、ルートから「date」に至るまでの経路がパスp2、ルートから「write」に至るまでの経路がパスp3、ルートから「name」に至るまでの経路がパスp4である。   The path schema is a tree structure indicating the hierarchical structure of the input stream S. In the input stream S, “news” is the first hierarchy, “date” and “write” are the second hierarchy, and “name” is the third hierarchy. The path from the root of the 0th hierarchy to the "news" of the 1st hierarchy is the path p1, the path from the root to "date" is the path p2, the path from the root to "write" is the path p3, The path from the route to “name” is the path p4.

各パスp1〜p4に割り当てた数字は、図3で変換した固有な番号に対応する。具体的には、パスp#(#は数字)は、#に変換されたタグ文字列のタグが示す階層に到達するパスである。例えば、パスp2は、「2」に変換されたタグ内文字列「date」に到達するパスである。また、パスp4は、「4」に変換されたタグ内文字列「name」に到達するパスである。#は、後述するパスIDとなる。照合処理装置100は、入力ストリームSの読み込み中に、現在読み込んでいるタグを末尾とするパスを検出することになる。   The numbers assigned to the paths p1 to p4 correspond to the unique numbers converted in FIG. Specifically, the path p # (# is a number) is a path that reaches the hierarchy indicated by the tag of the tag character string converted to #. For example, the path p2 is a path that reaches the in-tag character string “date” converted to “2”. The path p4 is a path that reaches the in-tag character string “name” converted to “4”. # Is a path ID described later. While reading the input stream S, the verification processing apparatus 100 detects a path that ends with the tag currently being read.

図5は、パスID管理テーブルの一例を示す説明図である。パスID管理テーブルTは、パスIDを管理するテーブルである。パスID管理テーブルTは、パスID項目と、パス項目と、累計項目と、前回項目と、を有し、パスごとに、各項目の値がレコードとして格納される。   FIG. 5 is an explanatory diagram showing an example of the path ID management table. The path ID management table T is a table for managing path IDs. The path ID management table T includes a path ID item, a path item, a cumulative item, and a previous item, and the value of each item is stored as a record for each path.

パスID管理テーブルTは、デフォルトではレコードがない空の状態である。パスID項目には、パスIDが格納される。パスIDとは、パスを一意に特定する識別情報であり、上述した#となる。パス項目には、パスが格納される。例えば、パスID「4」のパスp4の場合、「/news/write/name」が格納される。   The path ID management table T is empty by default with no records. The path ID item stores a path ID. The path ID is identification information for uniquely specifying a path, and is # described above. A path is stored in the path item. For example, in the case of the path p4 with the path ID “4”, “/ news / write / name” is stored.

累計項目には、パスがクエリQの条件に一致した累計回数が格納される。累計回数とは、例えば、そのパスにより到達したタグがクエリQの条件に一致した回数であって、そのパスに対応するパス照合状態の生成や削除に関わらず、累計される。   The cumulative number field stores the cumulative number of times that the path matches the query Q condition. The cumulative number of times is, for example, the number of times that the tag reached by the path matches the query Q condition, and is cumulative regardless of the generation or deletion of the path matching state corresponding to the path.

前回項目には、フラグが格納される。フラグとは、例えば、そのパスにより到達したタグが開始タグとして出現したか終了タグとして出現したかを示す識別子である。フラグは、未出現の場合が「(なし)」であり、開始タグとして出現すれば「開始」に設定され、開始タグとして出現した後に終了タグとして出現すれば「終了」に設定される。   A flag is stored in the previous item. The flag is an identifier indicating, for example, whether a tag reached by the path has appeared as a start tag or an end tag. The flag is “(none)” when it does not appear, and is set to “start” if it appears as a start tag, and is set to “end” if it appears as a start tag after appearing as a start tag.

例えば、入力ストリームSの読み込み中に開始タグ<name>が出現すると、照合処理装置100は、パスp4を検出して、パスID管理テーブルTの新規レコードに、パスID「4」と、パスp4(/news/write/name)、累計回数「1」、フラグ「開始」を登録する。その後、終了タグ</name>が出現すると、照合処理装置100は、パスp4のフラグを「開始」から「終了」に変更する。   For example, when the start tag <name> appears while the input stream S is being read, the verification processing apparatus 100 detects the path p4, and the path ID “4” and the path p4 are included in the new record of the path ID management table T. (/ News / write / name), cumulative count “1”, and flag “start” are registered. Thereafter, when the end tag </ name> appears, the collation processing device 100 changes the flag of the path p4 from “start” to “end”.

このようにして、パスID管理テーブルTには、パスが検出される都度レコードが追加され、その終了タグが検出されると、フラグが更新される。これにより、パスの累計回数を検出することができる。また、終了タグの直後に読み込まれた開始タグは、その終了タグのパスよりも1階層上の階層から辿ることにより、パスを検出できることになる。例えば、パスp2の終了タグ</date>の後に開始タグ<write>が出現するが、1つ上の階層の<news>に戻ってから<write>に辿ることにより、パスp3を検出することができる。   In this way, a record is added to the path ID management table T every time a path is detected, and the flag is updated when the end tag is detected. Thereby, the cumulative number of passes can be detected. In addition, the start tag read immediately after the end tag can be detected by tracing from the layer one level higher than the path of the end tag. For example, the start tag <write> appears after the end tag </ date> of the path p2, but the path p3 is detected by going back to <new> after returning to <news> one level above. Can do.

図6は、頻度管理テーブルの一例を示す説明図である。頻度管理テーブルFは、パスIDの出現頻度を管理するテーブルである。頻度管理テーブルFは、パスID項目を有し、パスが出現するごとに、パスID項目の値がレコードとして格納される。   FIG. 6 is an explanatory diagram showing an example of the frequency management table. The frequency management table F is a table for managing the appearance frequency of the path ID. The frequency management table F has a path ID item, and each time a path appears, the value of the path ID item is stored as a record.

頻度管理テーブルFは、デフォルトではレコードがない空の状態である。パスID項目には、パスIDが格納される。パスIDとは、上述したように、パスを一意に特定する識別情報であり、#となる。   The frequency management table F is empty by default with no records. The path ID item stores a path ID. As described above, the path ID is identification information that uniquely identifies a path, and is #.

例えば、入力ストリームSの読み込み中に開始タグ<name>が出現すると、照合処理装置100は、パスp4を検出して、頻度管理テーブルFの新規レコードに、パスID「4」を登録する。   For example, when the start tag <name> appears while the input stream S is being read, the verification processing apparatus 100 detects the path p4 and registers the path ID “4” in the new record of the frequency management table F.

頻度管理テーブルFは、レコード数の上限が決定されたテーブルであって、レコード数が上限に達した場合に新たにレコードを格納する時は、最古のレコードを削除して新たにレコードを格納する。このようにして、頻度管理テーブルFには、パスが検出される都度レコードが追加される。   The frequency management table F is a table in which the upper limit of the number of records is determined. When a new record is stored when the number of records reaches the upper limit, the oldest record is deleted and a new record is stored. To do. In this way, a record is added to the frequency management table F every time a path is detected.

図7は、初期オートマトンA0の構築例を示す説明図である。図1に示したように、照合処理装置100は、初期オートマトンA0を記憶する。初期オートマトンA0は、どの入力ストリームSにも適用可能であるため、或るタイミングで構築して照合処理装置100内に保存しておけばよい。初期オートマトンA0が未構築の場合、照合処理装置100は、(A)において、初期状態N0と、開始タグ記号「<>」から変換された開始タグ記号「[」を示す開始状態N1を生成する。また、照合処理装置100は、終了タグ記号「</>」から変換された終了タグ記号「]」を示す終了状態N2を生成する。   FIG. 7 is an explanatory diagram showing a construction example of the initial automaton A0. As shown in FIG. 1, the verification processing apparatus 100 stores an initial automaton A0. Since the initial automaton A0 can be applied to any input stream S, it may be constructed at a certain timing and stored in the verification processing apparatus 100. When the initial automaton A0 is not yet constructed, the verification processing apparatus 100 generates an initial state N0 and a start state N1 indicating the start tag symbol “[” converted from the start tag symbol “<>” in (A). . In addition, the verification processing device 100 generates an end state N2 indicating the end tag symbol “]” converted from the end tag symbol “</>”.

そして、照合処理装置100は、初期状態N0自身のループとなる遷移t00と、開始状態N1から初期状態N0への遷移t10と、終了状態N2から初期状態N0への遷移t20を生成する。「Σ」は、すべての記号を示す。なお、以下の図面中の遷移の符号txyにおいて、xは遷移元の状態の状態IDを示し、yは遷移先の状態の状態IDを示す。   Then, the verification processing device 100 generates a transition t00 that is a loop of the initial state N0 itself, a transition t10 from the start state N1 to the initial state N0, and a transition t20 from the end state N2 to the initial state N0. “Σ” indicates all symbols. Note that, in a transition code txy in the following drawings, x indicates a state ID of a transition source state, and y indicates a state ID of a transition destination state.

照合処理装置100は、(B)において、初期状態N0自身のループとなる遷移t00から「[」および「]」を削除し、初期状態N0から開始状態N1への遷移t01と、初期状態N0から終了状態N2への遷移t02を生成する。これにより、初期オートマトンA0が構築される。構築された初期オートマトンA0は、照合処理装置100内の記憶領域に格納され、入力ストリームSの受信が開始される都度、読み出される。   In (B), the verification processing device 100 deletes “[” and “]” from the transition t00 that is the loop of the initial state N0 itself, and the transition t01 from the initial state N0 to the start state N1 and the initial state N0. A transition t02 to the end state N2 is generated. Thereby, the initial automaton A0 is constructed. The constructed initial automaton A0 is stored in a storage area in the verification processing apparatus 100, and is read each time reception of the input stream S is started.

図8は、ノード構造体の一例を示す説明図である。ノード構造体Nとは、オートマトンAの状態の特徴を記憶するデータ構造体である。具体的には、ノード構造体Nは、状態ごとに、状態IDと、状態の種類と、ノードカウンタと、リストLとを記憶する。状態IDとは、状態を一意に特定する識別情報である。各状態には、状態IDとして固有の識別情報が割り当てられる。状態の種類とは、その状態が、どのような種類なのかを特定する属性情報である。例えば、上述した「初期状態」、「開始状態」、「終了状態」がある。このほか、「パス照合状態」、「キーワード照合途中状態」、「キーワード照合完了状態」がある。「パス照合状態」、「キーワード照合途中状態」、「キーワード照合完了状態」については、後述する。   FIG. 8 is an explanatory diagram illustrating an example of a node structure. The node structure N is a data structure that stores the characteristics of the state of the automaton A. Specifically, the node structure N stores a state ID, a state type, a node counter, and a list L for each state. The state ID is identification information that uniquely identifies the state. Each state is assigned unique identification information as a state ID. The type of state is attribute information that identifies what type the state is. For example, there are “initial state”, “start state”, and “end state” described above. In addition, there are a “path verification state”, a “keyword verification in progress”, and a “keyword verification completion status”. The “path verification status”, “keyword verification in progress”, and “keyword verification completion status” will be described later.

ノードカウンタとは、開始状態からノードに遷移した遷移回数である。リストLとは、状態の遷移先状態を特定する遷移を保持するデータ構造である。具体的には、リストLには、記号ごとに領域が用意されており、その領域に遷移先状態の状態IDが格納される。以下、図9に、初期オートマトンA0に規定された各状態のノード構造体Nを示す。   The node counter is the number of transitions from the start state to the node. The list L is a data structure that holds a transition that specifies a state transition destination state. Specifically, an area is prepared for each symbol in the list L, and the state ID of the transition destination state is stored in the area. FIG. 9 shows the node structure N in each state defined in the initial automaton A0.

図9は、初期オートマトンA0における各状態のノード構造体Nの一例を示す説明図である。図9において、(A)に初期状態N0のノード構造体N、(B)に開始状態N1のノード構造体N、(C)に終了状態N2のノード構造体Nを示す。   FIG. 9 is an explanatory diagram showing an example of the node structure N in each state in the initial automaton A0. 9A shows the node structure N in the initial state N0, FIG. 9B shows the node structure N in the start state N1, and FIG. 9C shows the node structure N in the end state N2.

(A)において、初期状態N0の状態IDは「0」である。また、初期状態N0であるため、状態の種類は「初期」である。また、初期状態N0において、「[」が出現すると開始状態N1に遷移することになるため、リストLの記号「[」の領域には、開始状態N1の状態ID「1」が格納される。同様に、初期状態N0において、「]」が出現すると終了状態N2に遷移することになるため、リストLの記号「]」の領域には、終了状態N2の状態ID「2」が格納される。また、全記号Σのうち「[」および「]」を除いた「Σ\{[,]}」の各々については、初期状態N0自身にループするため、「Σ\{[,]}」の各記号の領域には、初期状態N0の状態ID「0」が格納される。   In (A), the state ID of the initial state N0 is “0”. Further, since the state is the initial state N0, the state type is “initial”. In addition, when “[” appears in the initial state N0, the state transitions to the start state N1, and thus the state ID “1” of the start state N1 is stored in the area of the symbol “[” in the list L. Similarly, when “]” appears in the initial state N0, the state transitions to the end state N2, and thus the state ID “2” of the end state N2 is stored in the area of the symbol “]” of the list L. . Further, each of “Σ \ {[,]}” excluding “[” and “]” among all symbols Σ loops to the initial state N0 itself, and therefore “Σ \ {[,]}” In each symbol area, the state ID “0” of the initial state N0 is stored.

(B)において、開始状態N1の状態IDは「1」である。また、開始状態N1であるため、状態の種類は「開始」である。また、開始状態N1において、全記号Σのいずれの記号が出現しても初期状態N0に遷移することになるため、リストLの各記号の領域には、初期状態N0の状態ID「0」が格納される。   In (B), the state ID of the start state N1 is “1”. Further, since the state is the start state N1, the state type is “start”. In addition, since any symbol of all symbols Σ appears in the start state N1, the state transitions to the initial state N0. Therefore, the state ID “0” of the initial state N0 is set in each symbol area of the list L. Stored.

(C)において、終了状態N2の状態IDは「2」である。また、終了状態N2であるため、状態の種類は「終了」である。また、終了状態N2において、全記号Σのいずれの記号が出現しても初期状態N0に遷移することになるため、リストLの各記号の領域には、初期状態N0の状態ID「0」が格納される。初期オートマトンA0に含まれていないパス照合状態、キーワード照合途中状態、およびキーワード照合完了状態も、(A)〜(C)と同様のノード構造体Nである。   In (C), the state ID of the end state N2 is “2”. Further, since the state is the end state N2, the state type is “end”. In addition, since any symbol of all symbols Σ appears in the end state N2, the state transitions to the initial state N0. Therefore, the state ID “0” of the initial state N0 is set in each symbol area of the list L. Stored. The path matching state, the keyword matching in progress state, and the keyword matching completion state that are not included in the initial automaton A0 are also the node structures N similar to (A) to (C).

<照合処理装置100の動作例>
次に、照合処理装置100の動作例について具体的に説明する。以下の図において、図中、旗印は、オートマトンAの現在位置を示し、太矢印は走査を示す。
<Operation Example of Collation Processing Device 100>
Next, an operation example of the verification processing apparatus 100 will be specifically described. In the following figures, the flag indicates the current position of the automaton A, and the thick arrow indicates scanning.

照合処理装置100は、例えば、パスID管理テーブルTの累計回数を用いてオートマトンAを更新する動作を行うことができる。以下の説明では、照合処理装置100によって行われる、パスID管理テーブルTの累計回数を用いてオートマトンAを更新する動作を、「第1の動作例」と表記する場合がある。   The verification processing apparatus 100 can perform an operation of updating the automaton A using, for example, the cumulative number of times of the path ID management table T. In the following description, the operation of updating the automaton A using the cumulative number of the path ID management table T performed by the matching processing apparatus 100 may be referred to as “first operation example”.

また、照合処理装置100は、例えば、パスID管理テーブルTの累計回数を頻度管理テーブルFにより修正し、修正した累計回数を用いてオートマトンAを更新する動作を行うことができる。以下の説明では、修正した累計回数を用いてオートマトンAを更新する動作を、「第2の動作例」と表記する場合がある。   Further, for example, the verification processing apparatus 100 can perform an operation of correcting the automaton A using the corrected cumulative number of times by correcting the cumulative number of the path ID management table T by the frequency management table F. In the following description, the operation of updating the automaton A using the corrected cumulative number may be referred to as “second operation example”.

また、照合処理装置100は、例えば、パスID管理テーブルTの累計回数とフラグとを用いてオートマトンAを更新する動作を行うことができる。以下の説明では、パスID管理テーブルTの累計回数とフラグとを用いてオートマトンAを更新する動作を、「第3の動作例」と表記する場合がある。   In addition, the verification processing apparatus 100 can perform an operation of updating the automaton A by using, for example, the cumulative number of times in the path ID management table T and the flag. In the following description, the operation of updating the automaton A using the cumulative number of times in the path ID management table T and the flag may be referred to as “third operation example”.

(照合処理装置100の第1の動作例)
まず、図10〜図30を用いて、照合処理装置100の第1の動作例について説明する。図10〜図30は、照合処理装置100の第1の動作例を示す説明図である。第1の動作例においては、パスID管理テーブルTの前回項目がなくてもよいし、頻度管理テーブルFがなくてもよい。したがって、図10〜図30では、パスID管理テーブルTの前回項目と、頻度管理テーブルFと、の表記を省略する。
(First operation example of collation processing apparatus 100)
First, a first operation example of the verification processing apparatus 100 will be described with reference to FIGS. 10 to 30 are explanatory diagrams illustrating a first operation example of the collation processing device 100. In the first operation example, the previous item of the path ID management table T may not be present, and the frequency management table F may not be present. Therefore, in FIG. 10 to FIG. 30, the notation of the previous item of the path ID management table T and the frequency management table F is omitted.

図10は、初期オートマトンA0の走査開始前の状態を示している。図10では、クエリQと初期オートマトンA0が用意されている。また、入力ストリームSの各入力データが格納される第1バッファb1と、入力データから変換された変換入力データが格納される第2バッファb2と、現在のパスが登録される第3バッファb3と、が用意されている。図10は走査前であるため、第1バッファb1と第2バッファb2と第3バッファb3とは空である。また、パスID管理テーブルTにもレコードは存在しない。   FIG. 10 shows a state before the scanning of the initial automaton A0. In FIG. 10, a query Q and an initial automaton A0 are prepared. Also, a first buffer b1 in which each input data of the input stream S is stored, a second buffer b2 in which converted input data converted from the input data is stored, and a third buffer b3 in which the current path is registered , Is prepared. Since FIG. 10 is before scanning, the first buffer b1, the second buffer b2, and the third buffer b3 are empty. Further, there is no record in the path ID management table T.

次に、図11の説明に移行する。図11は、図10の状態から入力ストリームSのレコード1の先頭データである開始タグ<news>が受信された場合の処理を示している。   Next, the description proceeds to FIG. FIG. 11 shows processing when the start tag <news>, which is the top data of the record 1 of the input stream S, is received from the state of FIG.

図11において、入力ストリームSの先頭データである開始タグ<news>が第1バッファb1に書き込まれると、照合処理装置100は、<news>を読み出して「[1」に変換し、第2バッファb2に書き込む。また、開始タグ<news>が受信されたため、照合処理装置100は、現在のパスpとして、「/news」を検出して第3バッファb3に書き込む。   In FIG. 11, when the start tag <news>, which is the top data of the input stream S, is written to the first buffer b1, the verification processing apparatus 100 reads <news>, converts it to "[1", and converts it to the second buffer. Write to b2. Also, since the start tag <news> has been received, the verification processing apparatus 100 detects “/ news” as the current path p and writes it to the third buffer b3.

そして、照合処理装置100は、パスID管理テーブルTに、パスID「1」、第3バッファb3内のパス「/news」、累計回数「(なし)」のレコードを登録する。   Then, the verification processing apparatus 100 registers a record of the path ID “1”, the path “/ news” in the third buffer b3, and the cumulative number “(none)” in the path ID management table T.

第3バッファb3のパスp1はクエリQの条件に一致しないため、照合処理装置100は、第2バッファb2の「[」により、走査位置である初期状態N0から開始状態N1に走査し、第2バッファb2の「1」により、開始状態N1から初期状態N0に走査する。   Since the path p1 of the third buffer b3 does not match the condition of the query Q, the collation processing device 100 scans from the initial state N0 that is the scanning position to the start state N1 by “[” of the second buffer b2, and the second Scanning from the start state N1 to the initial state N0 is performed by "1" in the buffer b2.

次に、図12の説明に移行する。図12は、図11の状態から入力ストリームSのレコード1の開始タグ<date>が受信された場合の処理を示している。   Next, the description proceeds to FIG. FIG. 12 shows processing when the start tag <date> of the record 1 of the input stream S is received from the state of FIG.

図12において、入力ストリームSの開始タグ<date>が第1バッファb1に書き込まれると、照合処理装置100は、<date>を読み出して「[2」に変換し、第2バッファb2に書き込む。また、開始タグ<date>が受信されたため、照合処理装置100は、第3バッファb3の「/news」の末尾に「/date」を書き込む。   In FIG. 12, when the start tag <date> of the input stream S is written to the first buffer b1, the verification processing device 100 reads <date>, converts it to “[2”, and writes it to the second buffer b2. Also, since the start tag <date> has been received, the verification processing apparatus 100 writes “/ date” at the end of “/ news” in the third buffer b3.

そして、照合処理装置100は、パスID管理テーブルTに、パスID「2」、第3バッファb3内のパス「/news/date」、累計回数「(なし)」のレコードを登録する。   Then, the verification processing apparatus 100 registers a record of the path ID “2”, the path “/ news / date” in the third buffer b3, and the cumulative number “(none)” in the path ID management table T.

また、第3バッファb3のパスp2はクエリQの条件に一致しない。このため、照合処理装置100は、第2バッファb2の「[」により、走査位置である初期状態N0から開始状態N1に走査し、第2バッファb2の「2」により、開始状態N1から初期状態N0に走査する。   Further, the path p2 of the third buffer b3 does not match the condition of the query Q. Therefore, the collation processing device 100 scans from the initial state N0, which is the scanning position, to the start state N1 by “[” of the second buffer b2, and from the start state N1 to the initial state by “2” of the second buffer b2. Scan to N0.

次に、図13の説明に移行する。図13は、図12の状態から入力ストリームSのレコード1の文字列「2011−12−01」が受信された場合の処理を示している。   Next, the description proceeds to FIG. FIG. 13 shows processing when the character string “2011-12-01” of the record 1 of the input stream S is received from the state of FIG.

図13において、入力ストリームSの文字列「2011−12−01」が第1バッファb1に書き込まれると、照合処理装置100は、文字列「2011−12−01」を読み出して変換せずに第2バッファb2に書き込む。また、文字列が受信された場合、パスID管理テーブルTへの登録は実行されない。   In FIG. 13, when the character string “2011-12-01” of the input stream S is written to the first buffer b1, the collation processing device 100 reads the character string “2011-12-01” and converts the character string “2011-12-01” without conversion. 2 Write to buffer b2. When a character string is received, registration in the path ID management table T is not executed.

そして、照合処理装置100は、第2バッファb2の文字列「2011−12−01」のうちの先頭文字「2」により、走査位置である初期状態N0から初期状態N0に走査する。また、照合処理装置100は、第2バッファの文字列「2011−12−01」の先頭以降の文字により、同様に初期状態N0から初期状態N0に走査する。   Then, the collation processing device 100 scans from the initial state N0 that is the scanning position to the initial state N0 by the first character “2” of the character string “2011-12-01” in the second buffer b2. The collation processing apparatus 100 similarly scans from the initial state N0 to the initial state N0 by the characters after the head of the character string “2011-12-01” in the second buffer.

次に、図14の説明に移行する。図14は、図13の状態から入力ストリームSのレコード1の終了タグ</date>が受信された場合の処理を示している。   Next, the description proceeds to FIG. FIG. 14 shows processing when the end tag </ date> of the record 1 of the input stream S is received from the state of FIG.

図14において、入力ストリームSの終了タグ</date>が第1バッファb1に書き込まれると、照合処理装置100は、</date>を読み出して「]2」に変換し、第2バッファb2に書き込む。また、照合処理装置100は、第3バッファb3のパスp2:「/news/date」から「/」および終了タグ</date>のタグ内文字列「date」を削除して、パスp1:「/news」に戻す。   In FIG. 14, when the end tag </ date> of the input stream S is written to the first buffer b1, the verification processing apparatus 100 reads </ date>, converts it to "] 2", and stores it in the second buffer b2. Write. Further, the verification processing device 100 deletes the character string “date” of “/” and the end tag </ date> from the path p2: “/ news / date” of the third buffer b3, and passes the path p1: “ / News ".

また、第3バッファb3のパスp1はクエリQの条件に一致しない。このため、照合処理装置100は、第2バッファb2の「]」により、走査位置である初期状態N0から終了状態N2に走査し、第2バッファb2の「2」により、終了状態N2から初期状態N0に走査する。   Further, the path p1 of the third buffer b3 does not match the query Q condition. For this reason, the collation processing device 100 scans from the initial state N0, which is the scanning position, to the end state N2 by “]” of the second buffer b2, and from the end state N2 to the initial state by “2” of the second buffer b2. Scan to N0.

次に、図15の説明に移行する。図15は、図14の状態から入力ストリームSのレコード1の開始タグ<write>が受信された場合の処理を示している。   Next, the description proceeds to FIG. FIG. 15 shows processing when the start tag <write> of the record 1 of the input stream S is received from the state of FIG.

図15において、入力ストリームSの開始タグ<write>が第1バッファb1に書き込まれると、照合処理装置100は、<write>を読み出して「[3」に変換し、第2バッファb2に書き込む。また、開始タグ<write>が受信されたため、照合処理装置100は、第3バッファb3の「/news」の末尾に「/」およびタグ内文字列「write」を書き込む。   In FIG. 15, when the start tag <write> of the input stream S is written to the first buffer b1, the verification processing apparatus 100 reads <write>, converts it to “[3”, and writes it to the second buffer b2. Also, since the start tag <write> has been received, the verification processing apparatus 100 writes “/” and the in-tag character string “write” at the end of “/ news” in the third buffer b3.

そして、照合処理装置100は、パスID管理テーブルTに、パスID「3」、第3バッファb3内のパス「/news/write」、累計回数「(なし)」のレコードを登録する。   Then, the verification processing apparatus 100 registers a record of the path ID “3”, the path “/ news / write”, and the cumulative number “(none)” in the third buffer b3 in the path ID management table T.

また、第3バッファb3のパスp3はクエリQの条件に一致しない。このため、照合処理装置100は、第2バッファb2の「[」により、走査位置である初期状態N0から開始状態N1に走査し、第2バッファb2の「3」により、開始状態N1から初期状態N0に走査する。   Further, the path p3 of the third buffer b3 does not match the query Q condition. Therefore, the collation processing device 100 scans from the initial state N0, which is the scanning position, to the start state N1 by “[” of the second buffer b2, and from the start state N1 to the initial state by “3” of the second buffer b2. Scan to N0.

次に、図16の説明に移行する。図16は、図15の状態から入力ストリームSのレコード1の開始タグ<name>が受信された場合の処理を示している。   Next, the description proceeds to FIG. FIG. 16 shows processing when the start tag <name> of the record 1 of the input stream S is received from the state of FIG.

図16において、入力ストリームSの開始タグ<name>が第1バッファb1に書き込まれると、照合処理装置100は、<name>を読み出して「[4」に変換し、第2バッファb2に書き込む。また、開始タグ<name>が受信されたため、照合処理装置100は、第3バッファb3の「/news/write」の末尾に「/」およびタグ内文字列「name」を書き込む。   In FIG. 16, when the start tag <name> of the input stream S is written to the first buffer b1, the verification processing device 100 reads <name>, converts it to “[4”, and writes it to the second buffer b2. Further, since the start tag <name> has been received, the verification processing apparatus 100 writes “/” and the in-tag character string “name” at the end of “/ news / write” in the third buffer b3.

そして、照合処理装置100は、パスID管理テーブルTに、パスID「4」、第3バッファb3内のパス「/news/write/name」、累計回数「(なし)」のレコードを登録する。ここで、第3バッファb3のパスp4はクエリQの条件に一致する。このため、照合処理装置100は、レコードの累計回数を「(なし)」から「1」に更新する。   Then, the verification processing apparatus 100 registers a record of the path ID “4”, the path “/ news / write / name” in the third buffer b3, and the cumulative number “(none)” in the path ID management table T. Here, the path p4 of the third buffer b3 matches the query Q condition. For this reason, the collation processing apparatus 100 updates the cumulative number of records from “(none)” to “1”.

また、第3バッファb3のパスp4はクエリQの条件に一致する。このため、照合処理装置100は、オートマトンAの1回目の更新を実行する。具体的には、照合処理装置100は、まず、新規状態を生成する。新規状態は、パスID「4」を示す状態である。この状態はクエリQの条件を満たすパスp4を特定する状態であるため、以下の説明では、この状態を「パス照合状態」と表記する場合がある。   The path p4 of the third buffer b3 matches the query Q condition. For this reason, the collation processing apparatus 100 executes the first update of the automaton A. Specifically, the verification processing device 100 first generates a new state. The new state is a state indicating the path ID “4”. Since this state is a state that specifies the path p4 that satisfies the condition of the query Q, in the following description, this state may be referred to as a “path verification state”.

また、第2バッファb2には、「[4」が書き込まれたため、パス照合状態N3は、開始状態N1からの遷移先状態となる。このとき、具体的には、開始状態N1のリストLの記号「4」の領域に、パス照合状態N3の状態IDが格納される。以下の説明では、簡単のため、各状態のリストLの更新についての説明は省略する。したがって、記号ΣのうちパスID「4」を除いた記号「Σ\{4}」で遷移される場合は、開始状態N1の遷移先は初期状態N0となる。一方で、パスID「4」で遷移される場合は、開始状態N1の遷移先はパス照合状態N3となる。   Further, since “[4” is written in the second buffer b2, the path verification state N3 becomes the transition destination state from the start state N1. At this time, specifically, the state ID of the path matching state N3 is stored in the area of the symbol “4” in the list L of the start state N1. In the following description, for the sake of simplicity, description of updating the list L in each state is omitted. Accordingly, when transition is made with the symbol “Σ \ {4}” excluding the path ID “4” in the symbol Σ, the transition destination of the start state N1 is the initial state N0. On the other hand, when the transition is made with the path ID “4”, the transition destination of the start state N1 is the path verification state N3.

また、パス照合状態N3が生成されると、照合処理装置100は、クエリQのキーワードを構成する文字によりパス照合状態N3から順次遷移される遷移先状態を生成する。以下の説明では、キーワードを構成する文字により遷移される遷移先状態のうち、末尾文字以外の文字により遷移される遷移先状態を、「キーワード照合途中状態」と表記する場合がある。以下の説明では、末尾文字により遷移される遷移先状態を、「キーワード照合完了状態」と表記する場合がある。   In addition, when the path matching state N3 is generated, the matching processing device 100 generates a transition destination state that is sequentially shifted from the path matching state N3 by characters constituting the keyword of the query Q. In the following description, a transition destination state that is transitioned by a character other than the last character among transition destination states that are transitioned by characters constituting the keyword may be referred to as a “keyword matching intermediate state”. In the following description, the transition destination state that is transitioned by the end character may be referred to as a “keyword matching completion state”.

図16の例では、先頭文字「B」および2番目の文字「o」により遷移される遷移先状態は、キーワード照合途中状態N4,N5となり、末尾文字「b」により遷移される遷移先状態は、キーワード照合完了状態N6となる。   In the example of FIG. 16, the transition destination states that are transitioned by the first character “B” and the second character “o” are the keyword matching intermediate states N4 and N5, and the transition destination state that is transitioned by the last character “b” is The keyword collation completion state N6 is entered.

また、照合処理装置100は、パス照合状態N3から開始状態N1への遷移(不図示)と終了状態N2への遷移(不図示)を生成する。また、照合処理装置100は、パス照合状態N3が自身にループする遷移(不図示)も生成する。この遷移は、全記号Σから開始タグ記号「[」、終了タグ記号「]」およびキーワードの先頭文字「B」を除いた記号「Σ\{[,],B}」となる。これにより、1回目のオートマトンAの更新が完了する。   Further, the matching processing device 100 generates a transition (not shown) from the path matching state N3 to the start state N1 and a transition (not shown) to the end state N2. The matching processing device 100 also generates a transition (not shown) in which the path matching state N3 loops to itself. This transition is a symbol “Σ \ {[,], B}” obtained by removing the start tag symbol “[”, the end tag symbol “]” and the first character “B” of the keyword from all symbols Σ. Thereby, the first update of the automaton A is completed.

照合処理装置100は、更新後のオートマトンAにより走査を開始する。照合処理装置100は、第2バッファb2の「[4」の「[」により、走査位置である初期状態N0から開始状態N1に走査し、第2バッファb2の「4」により、開始状態N1からパス照合状態N3に走査する。走査位置は、パス照合状態N3となる。照合処理装置100は、パス照合状態N3に走査すると、パス照合状態N3のノードカウンタを「0」から「1」に更新する。図16〜図42において、パス照合状態の右上に示した数字は当該パス照合状態のノードカウンタの値を示す。   The verification processing device 100 starts scanning with the updated automaton A. The collation processing device 100 scans from the initial state N0 which is the scanning position to the start state N1 by “[” of “[4” of the second buffer b2, and from the start state N1 by “4” of the second buffer b2. Scan to the path verification state N3. The scanning position is in a path verification state N3. When the verification processing device 100 scans the path verification state N3, the node counter in the path verification state N3 is updated from “0” to “1”. 16 to 42, the numbers shown at the upper right of the path verification state indicate the values of the node counters in the path verification state.

次に、図17の説明に移行する。図17は、図16の状態から入力ストリームSのレコード1の文字列「Alice」が受信された場合の処理を示している。   Next, the description proceeds to FIG. FIG. 17 shows processing when the character string “Alice” of the record 1 of the input stream S is received from the state of FIG.

図17において、入力ストリームSの文字列「Alice」が第1バッファb1に書き込まれると、照合処理装置100は、文字列「Alice」を読み出して変換せずに第2バッファb2に書き込む。また、文字列が受信された場合、パスID管理テーブルTへの登録は実行されない。   In FIG. 17, when the character string “Alice” of the input stream S is written into the first buffer b1, the verification processing apparatus 100 reads the character string “Alice” and writes it into the second buffer b2 without conversion. When a character string is received, registration in the path ID management table T is not executed.

また、第2バッファb2の文字列「Alice」のうち先頭文字「A」はキーワードの先頭文字「B」と異なるため、照合処理装置100は、文字「A」により、走査位置であるパス照合状態N3からパス照合状態N3に走査する。また、照合処理装置100は、第2バッファの文字列「Alice」の先頭以降の文字により、同様にパス照合状態N3からパス照合状態N3に走査する。   In addition, since the first character “A” in the character string “Alice” in the second buffer b2 is different from the first character “B” of the keyword, the collation processing device 100 uses the character “A” to determine the path collation state that is the scanning position. Scan from N3 to path verification state N3. Further, the matching processing device 100 similarly scans from the path matching state N3 to the path matching state N3 by the characters after the head of the character string “Alice” in the second buffer.

次に、図18の説明に移行する。図18は、図17の状態から入力ストリームSのレコード1の終了タグ</name>が受信された場合の処理を示している。   Next, the description proceeds to FIG. FIG. 18 shows processing when the end tag </ name> of the record 1 of the input stream S is received from the state of FIG.

図18において、入力ストリームSの終了タグ</name>が第1バッファb1に書き込まれると、照合処理装置100は、</name>を読み出して「]4」に変換し、第2バッファb2に書き込む。また、照合処理装置100は、第3バッファb3のパスp4:「/news/write/name」から「/」および終了タグ</name>のタグ内文字列「name」を削除して、パスp3:「/news/write」に戻す。   In FIG. 18, when the end tag </ name> of the input stream S is written to the first buffer b1, the verification processing device 100 reads </ name>, converts it to "] 4", and stores it in the second buffer b2. Write. Further, the verification processing apparatus 100 deletes the character string “name” in the tag “/” and the end tag </ name> from the path p4: “/ news / write / name” of the third buffer b3, and passes the path p3. : Return to “/ news / write”.

また、第3バッファb3のパスp3はクエリQの条件に一致しない。このため、照合処理装置100は、第2バッファb2の「]」により、走査位置であるパス照合状態N3から終了状態N2に走査し、第2バッファb2の「4」により、終了状態N2から初期状態N0に走査する。   Further, the path p3 of the third buffer b3 does not match the query Q condition. For this reason, the collation processing apparatus 100 scans from the path collation state N3 that is the scanning position to the end state N2 by “]” of the second buffer b2, and from the end state N2 by “4” of the second buffer b2. Scan to state N0.

次に、図19の説明に移行する。図19は、図18の状態から入力ストリームSのレコード1の終了タグ</write>が受信された場合の処理を示している。   Next, the description shifts to the description of FIG. FIG. 19 shows processing when the end tag </ write> of the record 1 of the input stream S is received from the state of FIG.

図19において、入力ストリームSの終了タグ</write>が第1バッファb1に書き込まれると、照合処理装置100は、</write>を読み出して「]3」に変換し、第2バッファb2に書き込む。また、照合処理装置100は、第3バッファb3のパスp3:「/news/write」から「/」および終了タグ</write>のタグ内文字列「write」を削除して、パスp1:「/news」に戻す。   In FIG. 19, when the end tag </ write> of the input stream S is written to the first buffer b1, the verification processing device 100 reads </ write>, converts it to "] 3", and stores it in the second buffer b2. Write. Further, the verification processing apparatus 100 deletes “/” and the character string “write” in the tag of the end tag </ write> from the path p3: “/ news / write” of the third buffer b3, and passes the path p1: “ / News ".

また、第3バッファb3のパスp1はクエリQの条件に一致しない。このため、照合処理装置100は、第2バッファb2の「]」により、走査位置である初期状態N0から終了状態N2に走査し、第2バッファb2の「3」により、終了状態N2から初期状態N0に走査する。   Further, the path p1 of the third buffer b3 does not match the query Q condition. Therefore, the collation processing apparatus 100 scans from the initial state N0, which is the scanning position, to the end state N2 by “]” of the second buffer b2, and from the end state N2 to the initial state by “3” of the second buffer b2. Scan to N0.

次に、図20の説明に移行する。図20は、図19の状態から入力ストリームSのレコード1の開始タグ<edit>が受信された場合の処理を示している。   Next, the description shifts to the description of FIG. FIG. 20 shows a process when the start tag <edit> of the record 1 of the input stream S is received from the state of FIG.

図20において、入力ストリームSの開始タグ<edit>が第1バッファb1に書き込まれると、照合処理装置100は、<edit>を読み出して「[5」に変換し、第2バッファb2に書き込む。また、開始タグ<edit>が受信されたため、照合処理装置100は、第3バッファb3の「/news」の末尾に「/」およびタグ内文字列「edit」を書き込む。   In FIG. 20, when the start tag <edit> of the input stream S is written to the first buffer b1, the verification processing apparatus 100 reads <edit>, converts it to “[5”, and writes it to the second buffer b2. Also, since the start tag <edit> has been received, the verification processing apparatus 100 writes “/” and the in-tag character string “edit” at the end of “/ news” in the third buffer b3.

そして、照合処理装置100は、パスID管理テーブルTに、パスID「5」、第3バッファb3内のパス「/news/edit」、累計回数「(なし)」のレコードを登録する。   Then, the verification processing apparatus 100 registers a record of the path ID “5”, the path “/ news / edit” in the third buffer b3, and the cumulative number “(none)” in the path ID management table T.

また、第3バッファb3のパスp3はクエリQの条件に一致しない。このため、照合処理装置100は、第2バッファb2の「[」により、走査位置である初期状態N0から開始状態N1に走査し、第2バッファb2の「5」により、開始状態N1から初期状態N0に走査する。   Further, the path p3 of the third buffer b3 does not match the query Q condition. For this reason, the collation processing device 100 scans from the initial state N0, which is the scanning position, to the start state N1 by “[” of the second buffer b2, and from the start state N1 to the initial state by “5” of the second buffer b2. Scan to N0.

次に、図21の説明に移行する。図21は、図20の状態から入力ストリームSのレコード1の開始タグ<name>が受信された場合の処理を示している。   Next, the description proceeds to FIG. FIG. 21 shows processing when the start tag <name> of the record 1 of the input stream S is received from the state of FIG.

図21において、入力ストリームSの開始タグ<name>が第1バッファb1に書き込まれると、照合処理装置100は、<name>を読み出して「[6」に変換し、第2バッファb2に書き込む。また、開始タグ<name>が受信されたため、照合処理装置100は、第3バッファb3の「/news/edit」の末尾に「/」およびタグ内文字列「name」を書き込む。   In FIG. 21, when the start tag <name> of the input stream S is written to the first buffer b1, the verification processing device 100 reads <name>, converts it to “[6”, and writes it to the second buffer b2. Since the start tag <name> has been received, the verification processing apparatus 100 writes “/” and the in-tag character string “name” at the end of “/ news / edit” in the third buffer b3.

そして、照合処理装置100は、パスID管理テーブルTに、パスID「6」、第3バッファb3内のパス「/news/edit/name」、累計回数「(なし)」のレコードを登録する。ここで、第3バッファb3のパスp6はクエリQの条件に一致する。このため、照合処理装置100は、レコードの累計回数を「(なし)」から「1」に更新する。   Then, the verification processing apparatus 100 registers a record of the path ID “6”, the path “/ news / edit / name” in the third buffer b3, and the cumulative number “(none)” in the path ID management table T. Here, the path p6 of the third buffer b3 matches the query Q condition. For this reason, the collation processing apparatus 100 updates the cumulative number of records from “(none)” to “1”.

また、第3バッファb3のパスp6はクエリQの条件に一致する。このため、照合処理装置100は、オートマトンAの2回目の更新を実行する。具体的には、照合処理装置100は、クエリQの条件を満たすパスp6を特定するパス照合状態N7を生成する。また、パス照合状態N7が生成されると、照合処理装置100は、クエリQのキーワードの各文字によりパス照合状態N7から順次遷移される遷移先状態として、キーワード照合途中状態N8,N9とキーワード照合完了状態N10とを生成する。   The path p6 of the third buffer b3 matches the query Q condition. For this reason, the collation processing apparatus 100 executes the second update of the automaton A. Specifically, the matching processing device 100 generates a path matching state N7 that identifies the path p6 that satisfies the condition of the query Q. When the path matching state N7 is generated, the matching processing device 100 sets the keyword matching intermediate states N8, N9 and the keyword matching as the transition destination states that are sequentially shifted from the path matching state N7 by the characters of the keyword of the query Q. A completion state N10 is generated.

また、照合処理装置100は、パス照合状態N7から開始状態N1への遷移(不図示)と終了状態N2への遷移(不図示)を生成する。また、照合処理装置100は、パス照合状態N7が自身にループする遷移(不図示)も生成する。この遷移は、全記号Σから開始タグ記号「[」、終了タグ記号「]」およびキーワードの先頭文字「B」を除いた記号「Σ\{[,],B}」となる。これにより、2回目のオートマトンAの更新が完了する。   Further, the matching processing device 100 generates a transition (not shown) from the path matching state N7 to the start state N1 and a transition (not shown) to the end state N2. The matching processing device 100 also generates a transition (not shown) in which the path matching state N7 loops to itself. This transition is a symbol “Σ \ {[,], B}” obtained by removing the start tag symbol “[”, the end tag symbol “]” and the first character “B” of the keyword from all symbols Σ. This completes the second update of the automaton A.

照合処理装置100は、更新後のオートマトンAにより走査を開始する。照合処理装置100は、第2バッファb2の「[6」の「[」により、走査位置である初期状態N0から開始状態N1に走査し、第2バッファb2の「6」により、開始状態N1からパス照合状態N7に走査する。走査位置は、パス照合状態N7となる。照合処理装置100は、パス照合状態N7に走査すると、パス照合状態N7のノードカウンタを「0」から「1」に更新する。   The verification processing device 100 starts scanning with the updated automaton A. The collation processing device 100 scans from the initial state N0 which is the scanning position to the start state N1 by “[” of “[6” of the second buffer b2, and from the start state N1 by “6” of the second buffer b2. Scan to the path verification state N7. The scanning position is in a path verification state N7. When the verification processing device 100 scans the path verification state N7, the node counter of the path verification state N7 is updated from “0” to “1”.

次に、図22の説明に移行する。図22は、図21の状態から入力ストリームSのレコード1の文字列「Bob」が受信された場合の処理を示している。   Next, the description shifts to the description of FIG. FIG. 22 shows processing when the character string “Bob” of the record 1 of the input stream S is received from the state of FIG.

図22において、入力ストリームSの文字列「Bob」が第1バッファb1に書き込まれると、照合処理装置100は、文字列「Bob」を読み出して変換せずに第2バッファb2に書き込む。また、文字列が受信された場合、パスID管理テーブルTへの登録は実行されない。   In FIG. 22, when the character string “Bob” of the input stream S is written to the first buffer b1, the verification processing apparatus 100 reads the character string “Bob” and writes it to the second buffer b2 without conversion. When a character string is received, registration in the path ID management table T is not executed.

また、第2バッファb2の文字列「Bob」のうち先頭文字「B」はキーワードの先頭文字「B」と一致するため、照合処理装置100は、文字「B」により、走査位置であるパス照合状態N7からキーワード照合途中状態N8に走査する。次に、照合処理装置100は、文字列「Bob」のうち2番目の文字「o」により、走査位置であるキーワード照合途中状態N8から次のキーワード照合途中状態N9に走査する。   In addition, since the first character “B” in the character string “Bob” in the second buffer b2 matches the first character “B” of the keyword, the verification processing device 100 uses the character “B” to verify the path verification that is the scanning position. Scan from the state N7 to the keyword collation intermediate state N8. Next, the matching processing device 100 scans from the keyword matching intermediate state N8 that is the scanning position to the next keyword matching intermediate state N9 by the second character “o” in the character string “Bob”.

そして、照合処理装置100は、文字列「Bob」のうち末尾文字「b」により、キーワード照合途中状態N9からキーワード照合完了状態N10に走査する。ここで、キーワード照合完了状態N10に走査したため、照合処理装置100は、クエリQのキーワード「Bob」を出力する。   Then, the matching processing device 100 scans from the keyword matching in-progress state N9 to the keyword matching completed state N10 by the end character “b” in the character string “Bob”. Here, since the keyword matching completion state N10 is scanned, the matching processing device 100 outputs the keyword “Bob” of the query Q.

次に、図23の説明に移行する。図23は、図22の状態から入力ストリームSのレコード1の終了タグ</name>が受信された場合の処理を示している。   Next, the description proceeds to FIG. FIG. 23 shows processing when the end tag </ name> of the record 1 of the input stream S is received from the state of FIG.

図23において、入力ストリームSの終了タグ</name>が第1バッファb1に書き込まれると、照合処理装置100は、</name>を読み出して「]6」に変換し、第2バッファb2に書き込む。また、照合処理装置100は、第3バッファb3のパスp6:「/news/edit/name」から「/」および終了タグ</name>のタグ内文字列「name」を削除して、パスp5:「/news/edit」に戻す。   In FIG. 23, when the end tag </ name> of the input stream S is written to the first buffer b1, the verification processing device 100 reads </ name>, converts it to "] 6", and stores it in the second buffer b2. Write. Further, the collation processing device 100 deletes “/” and the in-tag character string “name” of the end tag </ name> from the path p6: “/ news / edit / name” of the third buffer b3, and passes the path p5. : Return to “/ news / edit”.

ここで、第3バッファb3のパスp5はクエリQの条件に一致しない。このため、照合処理装置100は、第2バッファb2の「]」により、走査位置であるキーワード照合完了状態N10から終了状態N2に走査し、第2バッファb2の「6」により、終了状態N2から初期状態N0に走査する。   Here, the path p5 of the third buffer b3 does not match the query Q condition. For this reason, the collation processing device 100 scans from the keyword collation completion state N10 that is the scanning position to the end state N2 by “]” of the second buffer b2, and from the end state N2 by “6” of the second buffer b2. Scan to the initial state N0.

次に、図24の説明に移行する。図24は、図23の状態から、入力ストリームSのレコード1の残りの各データが受信され、照合処理装置100によって図10〜図23と同様にして処理された場合の処理結果を示している。   Next, the description proceeds to FIG. FIG. 24 shows a processing result when each remaining data of the record 1 of the input stream S is received from the state of FIG. 23 and processed in the same manner as FIGS. .

図24において、開始タグ<prev>が受信されると、照合処理装置100によって、開始タグ<prev>を変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新される。また、パスID管理テーブルTにパスID「7」に関するレコードが登録され、オートマトンAが走査される。   In FIG. 24, when the start tag <prev> is received, the collation processing device 100 writes the data obtained by converting the start tag <prev> into the second buffer b2, and the third buffer b3 is updated by the current path. The Further, a record relating to the path ID “7” is registered in the path ID management table T, and the automaton A is scanned.

次に、開始タグ<write>が受信されると、照合処理装置100によって、開始タグ<write>を変換したデータが第2バッファb2に書き込まれ、第3バッファb3が更新される。また、パスID管理テーブルTにパスID「8」に関するレコードが登録され、オートマトンAが走査される。   Next, when the start tag <write> is received, the collation processing device 100 writes the data obtained by converting the start tag <write> into the second buffer b2, and updates the third buffer b3. Further, a record related to the path ID “8” is registered in the path ID management table T, and the automaton A is scanned.

そして、開始タグ<name>が受信されると、照合処理装置100によって、開始タグ<name>を変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新される。また、パスID管理テーブルTにパスID「9」に関するレコードが登録され、オートマトンAが走査される。また、オートマトンAにパス照合状態N11と、キーワード照合途中状態N12,N13と、キーワード照合完了状態N14と、が生成される。また、パス照合状態N11のノードカウンタは「0」から「1」に更新される。   When the start tag <name> is received, the collation processing device 100 writes the data obtained by converting the start tag <name> into the second buffer b2, and the third buffer b3 is updated by the current path. Further, a record related to the path ID “9” is registered in the path ID management table T, and the automaton A is scanned. Further, a path collation state N11, keyword collation intermediate states N12 and N13, and a keyword collation completion state N14 are generated in the automaton A. Further, the node counter in the path verification state N11 is updated from “0” to “1”.

次に、文字列「Carol」が受信され、終了タグ</name>が受信され、終了タグ</write>が受信され、終了タグ</prev>が受信され、終了タグ</news>が受信される。ここで、各データが受信されるごとに、照合処理装置100によって、各データを変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新され、オートマトンAが走査される。走査位置は、初期状態N0となる。   Next, the character string “Carol” is received, the end tag </ name> is received, the end tag </ write> is received, the end tag </ prev> is received, and the end tag </ news> is received. Is done. Here, each time each data is received, the data obtained by converting each data is written into the second buffer b2 by the verification processing device 100, the third buffer b3 is updated by the current pass, and the automaton A is scanned. The The scanning position is in the initial state N0.

次に、図25の説明に移行する。図25は、図24の状態から、入力ストリームSのレコード2の各データが受信され、照合処理装置100によって図10〜図24と同様にして処理された場合の処理結果を示している。   Next, the description proceeds to FIG. FIG. 25 shows a processing result when each data of the record 2 of the input stream S is received from the state of FIG. 24 and processed in the same manner as in FIGS.

図25において、開始タグ<news>が受信され、開始タグ<date>が受信され、文字列「2011−12−02」が受信され、終了タグ</date>が受信され、開始タグ<write>が受信される。ここで、各データが受信されるごとに、照合処理装置100によって、各データを変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新され、オートマトンAが走査される。   In FIG. 25, the start tag <news> is received, the start tag <date> is received, the character string “2011-12-02” is received, the end tag </ date> is received, and the start tag <write> is received. Is received. Here, each time each data is received, the data obtained by converting each data is written into the second buffer b2 by the verification processing device 100, the third buffer b3 is updated by the current pass, and the automaton A is scanned. The

次に、開始タグ<name>が受信されると、照合処理装置100によって、開始タグ<name>を変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新される。また、パスID管理テーブルTのパスID「4」に関する累計回数が「1」から「2」に更新され、オートマトンAが走査される。また、パスID「4」を特定するパス照合状態N3のノードカウンタが「1」から「2」に更新される。   Next, when the start tag <name> is received, the collation processing device 100 writes the data obtained by converting the start tag <name> into the second buffer b2, and the third buffer b3 is updated by the current path. . Further, the cumulative number related to the path ID “4” in the path ID management table T is updated from “1” to “2”, and the automaton A is scanned. Further, the node counter of the path verification state N3 that specifies the path ID “4” is updated from “1” to “2”.

次に、文字列「Carol」が受信され、終了タグ</name>が受信され、終了タグ</write>が受信され、開始タグ<edit>が受信される。ここで、各データが受信されるごとに、照合処理装置100によって、各データを変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新され、オートマトンAが走査される。   Next, the character string “Carol” is received, the end tag </ name> is received, the end tag </ write> is received, and the start tag <edit> is received. Here, each time each data is received, the data obtained by converting each data is written into the second buffer b2 by the verification processing device 100, the third buffer b3 is updated by the current pass, and the automaton A is scanned. The

次に、開始タグ<name>が受信されると、照合処理装置100によって、開始タグ<name>を変換したデータが第2バッファb2に書き込まれ、第3バッファb3が更新される。また、パスID管理テーブルTのパスID「6」に関する累計回数が「1」から「2」に更新され、オートマトンAが走査される。また、パスID「6」を特定するパス照合状態N7のノードカウンタが「1」から「2」に更新される。   Next, when the start tag <name> is received, the collation processing device 100 writes the data obtained by converting the start tag <name> into the second buffer b2, and updates the third buffer b3. In addition, the cumulative number related to the path ID “6” in the path ID management table T is updated from “1” to “2”, and the automaton A is scanned. In addition, the node counter of the path verification state N7 that specifies the path ID “6” is updated from “1” to “2”.

次に、文字列「Dick」が受信され、終了タグ</name>が受信され、終了タグ</edit>が受信され、終了タグ</news>が受信される。ここで、各データが受信されるごとに、照合処理装置100によって、各データを変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新され、オートマトンAが走査される。走査位置は、初期状態N0となる。   Next, the character string “Dick” is received, the end tag </ name> is received, the end tag </ edit> is received, and the end tag </ news> is received. Here, each time each data is received, the data obtained by converting each data is written into the second buffer b2 by the verification processing device 100, the third buffer b3 is updated by the current pass, and the automaton A is scanned. The The scanning position is in the initial state N0.

次に、図26の説明に移行する。図26は、図25の状態から、入力ストリームSのレコード3の途中までの各データが受信され、照合処理装置100によって図10〜図24と同様にして処理された場合の処理結果を示している。   Next, the description proceeds to FIG. FIG. 26 shows a processing result when each piece of data from the state of FIG. 25 to the middle of the record 3 of the input stream S is received and processed in the same manner as in FIGS. Yes.

図26において、開始タグ<news>が受信され、開始タグ<date>が受信され、文字列「2011−12−03」が受信され、終了タグ</date>が受信され、開始タグ<write>が受信される。ここで、各データが受信されるごとに、照合処理装置100によって、各データを変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新され、オートマトンAが走査される。   In FIG. 26, the start tag <news> is received, the start tag <date> is received, the character string “2011-12-03” is received, the end tag </ date> is received, and the start tag <write> is received. Is received. Here, each time each data is received, the data obtained by converting each data is written into the second buffer b2 by the verification processing device 100, the third buffer b3 is updated by the current pass, and the automaton A is scanned. The

次に、開始タグ<name>が受信されると、照合処理装置100によって、開始タグ<name>を変換したデータが第2バッファb2に書き込まれ、第3バッファb3が更新される。また、パスID管理テーブルTのパスID「4」に関する累計回数が「2」から「3」に更新され、オートマトンAが走査される。また、パスID「4」を特定するパス照合状態N3のノードカウンタが「2」から「3」に更新される。   Next, when the start tag <name> is received, the collation processing device 100 writes the data obtained by converting the start tag <name> into the second buffer b2, and updates the third buffer b3. In addition, the cumulative number related to the path ID “4” in the path ID management table T is updated from “2” to “3”, and the automaton A is scanned. Further, the node counter in the path verification state N3 that specifies the path ID “4” is updated from “2” to “3”.

次に、文字列「Alice」が受信され、終了タグ</name>が受信され、終了タグ</write>が受信され、開始タグ<edit>が受信される。ここで、各データが受信されるごとに、照合処理装置100によって、各データを変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新され、オートマトンAが走査される。   Next, the character string “Alice” is received, the end tag </ name> is received, the end tag </ write> is received, and the start tag <edit> is received. Here, each time each data is received, the data obtained by converting each data is written into the second buffer b2 by the verification processing device 100, the third buffer b3 is updated by the current pass, and the automaton A is scanned. The

次に、開始タグ<name>が受信されると、照合処理装置100によって、開始タグ<name>を変換したデータが第2バッファb2に書き込まれ、第3バッファb3が更新される。また、パスID管理テーブルTのパスID「6」に関する累計回数が「2」から「3」に更新され、オートマトンAが走査される。また、パスID「6」を特定するパス照合状態N7のノードカウンタが「2」から「3」に更新される。   Next, when the start tag <name> is received, the collation processing device 100 writes the data obtained by converting the start tag <name> into the second buffer b2, and updates the third buffer b3. Further, the cumulative number related to the path ID “6” in the path ID management table T is updated from “2” to “3”, and the automaton A is scanned. In addition, the node counter in the path verification state N7 that specifies the path ID “6” is updated from “2” to “3”.

次に、文字列「Dick」が受信され、終了タグ</name>が受信され、終了タグ</edit>が受信され、開始タグ<prev>が受信され、開始タグ<write>が受信される。ここで、各データが受信されるごとに、照合処理装置100によって、各データを変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新され、オートマトンAが走査される。   Next, the character string “Dick” is received, the end tag </ name> is received, the end tag </ edit> is received, the start tag <prev> is received, and the start tag <write> is received. . Here, each time each data is received, the data obtained by converting each data is written into the second buffer b2 by the verification processing device 100, the third buffer b3 is updated by the current pass, and the automaton A is scanned. The

次に、開始タグ<name>が受信されると、照合処理装置100によって、開始タグ<name>を変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新される。また、パスID管理テーブルTのパスID「9」に関する累計回数が「1」から「2」に更新され、オートマトンAが走査される。また、パスID「9」を特定するパス照合状態N11のノードカウンタが「1」から「2」に更新される。   Next, when the start tag <name> is received, the collation processing device 100 writes the data obtained by converting the start tag <name> into the second buffer b2, and the third buffer b3 is updated by the current path. . In addition, the cumulative number related to the path ID “9” in the path ID management table T is updated from “1” to “2”, and the automaton A is scanned. Further, the node counter of the path verification state N11 that specifies the path ID “9” is updated from “1” to “2”.

次に、文字列「Carol」が受信され、終了タグ</name>が受信され、終了タグ</write>が受信される。ここで、各データが受信されるごとに、照合処理装置100によって、各データを変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新され、オートマトンAが走査される。   Next, the character string “Carol” is received, the end tag </ name> is received, and the end tag </ write> is received. Here, each time each data is received, the data obtained by converting each data is written into the second buffer b2 by the verification processing device 100, the third buffer b3 is updated by the current pass, and the automaton A is scanned. The

次に、開始タグ<edit>が受信されると、照合処理装置100によって、開始タグ<edit>を変換したデータが第2バッファb2に書き込まれ、第3バッファb3が更新される。また、パスID管理テーブルTにパスID「10」に関するレコードが登録され、オートマトンAが走査される。   Next, when the start tag <edit> is received, the collation processing device 100 writes the data obtained by converting the start tag <edit> into the second buffer b2, and updates the third buffer b3. Further, a record related to the path ID “10” is registered in the path ID management table T, and the automaton A is scanned.

次に、図27の説明に移行する。図27は、図26の状態から入力ストリームSのレコード3の開始タグ<name>が受信された場合の処理を示している。   Next, the description proceeds to FIG. FIG. 27 shows processing when the start tag <name> of the record 3 of the input stream S is received from the state of FIG.

図27において、入力ストリームSの開始タグ<name>が第1バッファb1に書き込まれると、照合処理装置100は、<name>を読み出して「[11」に変換し、第2バッファb2に書き込む。また、開始タグ<name>が受信されたため、照合処理装置100は、第3バッファb3の「/news/prev/edit」の末尾に「/」およびタグ内文字列「name」を書き込む。   In FIG. 27, when the start tag <name> of the input stream S is written to the first buffer b1, the verification processing apparatus 100 reads <name>, converts it to “[11”, and writes it to the second buffer b2. Also, since the start tag <name> has been received, the verification processing apparatus 100 writes “/” and the in-tag character string “name” at the end of “/ news / prev / edit” in the third buffer b3.

そして、照合処理装置100は、パスID管理テーブルTに、パスID「11」、第3バッファb3内のパス「/news/prev/edit/name」、累計回数「(なし)」のレコードを登録する。ここで、第3バッファb3のパスp11はクエリQの条件に一致する。このため、照合処理装置100は、レコードの累計回数を「(なし)」から「1」に更新する。   Then, the verification processing apparatus 100 registers a record of the path ID “11”, the path “/ news / prev / edit / name” in the third buffer b3, and the cumulative number “(none)” in the path ID management table T. To do. Here, the path p11 of the third buffer b3 matches the query Q condition. For this reason, the collation processing apparatus 100 updates the cumulative number of records from “(none)” to “1”.

また、第3バッファb3のパスp11はクエリQの条件に一致する。このため、照合処理装置100は、オートマトンAの3回目の更新を実行する。具体的には、照合処理装置100は、クエリQの条件を満たすパスp11を特定するパス照合状態N15を生成する。このとき、オートマトンAには、既に最大規定数のパス照合状態が規定されているため、照合処理装置100は、オートマトンAに規定されているパス照合状態N3,N7,N11のうち、いずれかのパス照合状態を削除して、パス照合状態N15を生成する。   The path p11 of the third buffer b3 matches the query Q condition. For this reason, the collation processing apparatus 100 executes the third update of the automaton A. Specifically, the matching processing device 100 generates a path matching state N15 that identifies the path p11 that satisfies the condition of the query Q. At this time, since the maximum specified number of path verification states are already specified in the automaton A, the verification processing apparatus 100 selects one of the path verification states N3, N7, and N11 specified in the automaton A. The path verification state is deleted and a path verification state N15 is generated.

例えば、照合処理装置100は、パスID管理テーブルTの累計回数が最小になるパスID「9」を特定する。次に、照合処理装置100は、特定したパスID「9」を特定するパス照合状態N11を削除する。そして、照合処理装置100は、パス照合状態N11の削除に伴って、パス照合状態N11から順次遷移されるキーワード照合途中状態N12,N13とキーワード照合完了状態N14とを削除する。次に、照合処理装置100は、パス照合状態N15を生成する。また、パス照合状態N15が生成されると、照合処理装置100は、クエリQのキーワードを構成する文字によりパス照合状態N15から順次遷移される遷移先状態として、キーワード照合途中状態N16,N17とキーワード照合完了状態N18とを生成する。   For example, the verification processing apparatus 100 specifies the path ID “9” that minimizes the cumulative number of times in the path ID management table T. Next, the verification processing apparatus 100 deletes the path verification state N11 that specifies the specified path ID “9”. Then, with the deletion of the path verification state N11, the verification processing device 100 deletes the keyword verification intermediate states N12 and N13 and the keyword verification completion state N14 that are sequentially shifted from the path verification state N11. Next, the matching processing device 100 generates a path matching state N15. When the path matching state N15 is generated, the matching processing device 100 sets the keyword matching intermediate states N16, N17 and the keyword as transition destination states that are sequentially shifted from the path matching state N15 by the characters constituting the keyword of the query Q. A verification completion state N18 is generated.

また、照合処理装置100は、パス照合状態N15から開始状態N1への遷移(不図示)と終了状態N2への遷移(不図示)を生成する。また、照合処理装置100は、パス照合状態N15が自身にループする遷移(不図示)も生成する。この遷移は、全記号Σから開始タグ記号「[」、終了タグ記号「]」およびキーワードの先頭文字「B」を除いた記号「Σ\{[,],B}」となる。これにより、3回目のオートマトンAの更新が完了する。   Further, the matching processing device 100 generates a transition (not shown) from the path matching state N15 to the start state N1 and a transition (not shown) to the end state N2. The matching processing device 100 also generates a transition (not shown) in which the path matching state N15 loops to itself. This transition is a symbol “Σ \ {[,], B}” obtained by removing the start tag symbol “[”, the end tag symbol “]” and the first character “B” of the keyword from all symbols Σ. Thus, the third update of the automaton A is completed.

照合処理装置100は、更新後のオートマトンAにより走査を開始する。照合処理装置100は、第2バッファb2の「[11」の「[」により、走査位置である初期状態N0から開始状態N1に走査し、第2バッファb2の「11」により、開始状態N1からパス照合状態N15に走査する。走査位置は、パス照合状態N15となる。照合処理装置100は、パス照合状態N15に走査すると、パス照合状態N15のノードカウンタを「0」から「1」に更新する。   The verification processing device 100 starts scanning with the updated automaton A. The collation processing device 100 scans from the initial state N0 which is the scanning position to the start state N1 by “[” of “[11” of the second buffer b2, and from the start state N1 by “11” of the second buffer b2. Scan to the path verification state N15. The scanning position is in a path verification state N15. When the verification processing device 100 scans the path verification state N15, the node counter of the path verification state N15 is updated from “0” to “1”.

ここでは、照合処理装置100は、パス照合状態N11を削除してパス照合状態N15を生成したが、これに限らない。例えば、照合処理装置100は、パス照合状態N15を生成してから、パス照合状態N11を削除してもよい。また、例えば、照合処理装置100は、パス照合状態N11にパス照合状態N15を上書きすることにより、パス照合状態N11の削除とパス照合状態N15の生成とを行ってもよい。この場合、照合処理装置100は、キーワード照合途中状態N12,N13とキーワード照合完了状態N14とを、キーワード照合途中状態N16,N17とキーワード照合完了状態N18として、流用してもよい。   Here, the verification processing device 100 deletes the path verification status N11 and generates the path verification status N15, but this is not a limitation. For example, the verification processing apparatus 100 may delete the path verification state N11 after generating the path verification state N15. Further, for example, the verification processing apparatus 100 may delete the path verification state N11 and generate the path verification state N15 by overwriting the path verification state N15 on the path verification state N11. In this case, the matching processing device 100 may divert the keyword matching intermediate states N12 and N13 and the keyword matching completion state N14 as the keyword matching intermediate states N16 and N17 and the keyword matching completion state N18.

次に、図28の説明に移行する。図28は、図27の状態から、入力ストリームSのレコード3の残りの各データが受信され、照合処理装置100によって図10〜図24と同様にして処理された場合の処理結果を示している。   Next, the description proceeds to FIG. FIG. 28 shows a processing result when each remaining data of the record 3 of the input stream S is received from the state of FIG. 27 and processed by the matching processing device 100 in the same manner as in FIGS. .

図28において、文字列「Bob」が受信され、終了タグ</name>が受信され、終了タグ</edit>が受信され、終了タグ</prev>が受信され、終了タグ</news>が受信される。ここで、各データが受信されるごとに、照合処理装置100によって、各データを変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新され、オートマトンAが走査される。図28において、パスID管理テーブルTは更新されない。また、オートマトンAは更新されない。走査位置は、初期状態N0となる。   In FIG. 28, the character string “Bob” is received, the end tag </ name> is received, the end tag </ edit> is received, the end tag </ prev> is received, and the end tag </ news> is set. Received. Here, each time each data is received, the data obtained by converting each data is written into the second buffer b2 by the verification processing device 100, the third buffer b3 is updated by the current pass, and the automaton A is scanned. The In FIG. 28, the path ID management table T is not updated. Also, automaton A is not updated. The scanning position is in the initial state N0.

次に、図29の説明に移行する。図29は、図28の状態から、入力ストリームSのレコード4の各データが受信され、照合処理装置100によって図10〜図24と同様にして処理された場合の処理結果を示している。   Next, the description proceeds to FIG. FIG. 29 shows a processing result when each data of the record 4 of the input stream S is received from the state of FIG. 28 and processed in the same way as in FIGS.

図29において、開始タグ<news>が受信され、開始タグ<date>が受信され、文字列「2011−12−04」が受信され、終了タグ</date>が受信され、開始タグ<write>が受信される。ここで、各データが受信されるごとに、照合処理装置100によって、各データを変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新され、オートマトンAが走査される。   In FIG. 29, the start tag <news> is received, the start tag <date> is received, the character string “2011-12-04” is received, the end tag </ date> is received, and the start tag <write> is received. Is received. Here, each time each data is received, the data obtained by converting each data is written into the second buffer b2 by the verification processing device 100, the third buffer b3 is updated by the current pass, and the automaton A is scanned. The

次に、開始タグ<name>が受信されると、照合処理装置100によって、開始タグ<name>を変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新される。また、パスID管理テーブルTのパスID「4」に関する累計回数が「3」から「4」に更新され、オートマトンAが走査される。また、パスID「4」を特定するパス照合状態N3のノードカウンタが「3」から「4」に更新される。   Next, when the start tag <name> is received, the collation processing device 100 writes the data obtained by converting the start tag <name> into the second buffer b2, and the third buffer b3 is updated by the current path. . In addition, the cumulative number related to the path ID “4” in the path ID management table T is updated from “3” to “4”, and the automaton A is scanned. In addition, the node counter in the path verification state N3 that specifies the path ID “4” is updated from “3” to “4”.

次に、文字列「Carol」が受信され、終了タグ</name>が受信され、終了タグ</write>が受信され、開始タグ<prev>が受信され、開始タグ<write>が受信される。ここで、各データが受信されるごとに、照合処理装置100によって、各データを変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新され、オートマトンAが走査される。   Next, the character string “Carol” is received, the end tag </ name> is received, the end tag </ write> is received, the start tag <prev> is received, and the start tag <write> is received. . Here, each time each data is received, the data obtained by converting each data is written into the second buffer b2 by the verification processing device 100, the third buffer b3 is updated by the current pass, and the automaton A is scanned. The

次に、開始タグ<name>が受信されると、照合処理装置100によって、開始タグ<name>を変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新される。また、パスID管理テーブルTのパスID「9」に関する累計回数が「2」から「3」に更新され、オートマトンAが走査される。また、パスID管理テーブルTの累積回数に基づいて、パスID「11」のパスを特定するパス照合状態N15が削除され、パスID「9」のパスを特定するパス照合状態N11が再作成される。また、パスID「9」を特定するパス照合状態N11のノードカウンタが「0」から「1」に更新される。   Next, when the start tag <name> is received, the collation processing device 100 writes the data obtained by converting the start tag <name> into the second buffer b2, and the third buffer b3 is updated by the current path. . In addition, the cumulative number related to the path ID “9” in the path ID management table T is updated from “2” to “3”, and the automaton A is scanned. Also, based on the cumulative number of times in the path ID management table T, the path verification state N15 that specifies the path with the path ID “11” is deleted, and the path verification state N11 that specifies the path with the path ID “9” is recreated. The Further, the node counter of the path verification state N11 that specifies the path ID “9” is updated from “0” to “1”.

次に、文字列「Alice」が受信され、終了タグ</name>が受信され、終了タグ</write>が受信され、開始タグ<write>が受信される。ここで、各データが受信されるごとに、照合処理装置100によって、各データを変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新され、オートマトンAが走査される。   Next, the character string “Alice” is received, the end tag </ name> is received, the end tag </ write> is received, and the start tag <write> is received. Here, each time each data is received, the data obtained by converting each data is written into the second buffer b2 by the verification processing device 100, the third buffer b3 is updated by the current pass, and the automaton A is scanned. The

次に、開始タグ<name>が受信されると、照合処理装置100によって、開始タグ<name>を変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新される。また、パスID管理テーブルTのパスID「9」に関する累計回数が「3」から「4」に更新され、オートマトンAが走査される。また、パスID「9」を特定するパス照合状態N11のノードカウンタが「1」から「2」に更新される。   Next, when the start tag <name> is received, the collation processing device 100 writes the data obtained by converting the start tag <name> into the second buffer b2, and the third buffer b3 is updated by the current path. . In addition, the cumulative number related to the path ID “9” in the path ID management table T is updated from “3” to “4”, and the automaton A is scanned. Further, the node counter of the path verification state N11 that specifies the path ID “9” is updated from “1” to “2”.

次に、文字列「Bob」が受信され、終了タグ</name>が受信され、終了タグ</write>が受信され、終了タグ</prev>が受信され、終了タグ</news>が受信される。ここで、各データが受信されるごとに、照合処理装置100によって、各データを変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新され、オートマトンAが走査される。走査位置は、初期状態N0となる。   Next, the character string “Bob” is received, the end tag </ name> is received, the end tag </ write> is received, the end tag </ prev> is received, and the end tag </ news> is received. Is done. Here, each time each data is received, the data obtained by converting each data is written into the second buffer b2 by the verification processing device 100, the third buffer b3 is updated by the current pass, and the automaton A is scanned. The The scanning position is in the initial state N0.

次に、図30の説明に移行する。図30は、図29の状態から、入力ストリームSのレコード5の各データが受信され、照合処理装置100によって図10〜図24と同様にして処理された場合の処理結果を示している。   Next, the description proceeds to FIG. FIG. 30 shows a processing result when each data of the record 5 of the input stream S is received from the state of FIG. 29 and processed in the same manner as in FIGS.

図30において、開始タグ<news>が受信され、開始タグ<date>が受信され、文字列「2011−12−05」が受信され、終了タグ</date>が受信され、開始タグ<prev>が受信され、開始タグ<edit>が受信される。ここで、各データが受信されるごとに、照合処理装置100によって、各データを変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新され、オートマトンAが走査される。   In FIG. 30, the start tag <news> is received, the start tag <date> is received, the character string “2011-12-05” is received, the end tag </ date> is received, and the start tag <prev> Is received and the start tag <edit> is received. Here, each time each data is received, the data obtained by converting each data is written into the second buffer b2 by the verification processing device 100, the third buffer b3 is updated by the current pass, and the automaton A is scanned. The

次に、開始タグ<name>が受信され、照合処理装置100によって、開始タグ<name>を変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新される。また、パスID管理テーブルTのパスID「11」に関する累計回数が「1」から「2」に更新される。また、パスID管理テーブルTの累積回数に基づいて、パスID「6」のパスを特定するパス照合状態N7が削除され、パスID「11」のパスを特定するパス照合状態N15が再作成される。また、パスID「11」を特定するパス照合状態N15のノードカウンタが「0」から「1」に更新される。   Next, the start tag <name> is received, the collation processing device 100 writes the data obtained by converting the start tag <name> into the second buffer b2, and the third buffer b3 is updated by the current path. Further, the cumulative number of times related to the path ID “11” in the path ID management table T is updated from “1” to “2”. Further, based on the cumulative number of times in the path ID management table T, the path verification state N7 that specifies the path with the path ID “6” is deleted, and the path verification state N15 that specifies the path with the path ID “11” is recreated. The Further, the node counter in the path verification state N15 that specifies the path ID “11” is updated from “0” to “1”.

次に、文字列「Dick」が受信され、終了タグ</name>が受信され、終了タグ</edit>が受信され、終了タグ</prev>が受信され、終了タグ</news>が受信される。ここで、各データが受信されるごとに、照合処理装置100によって、各データを変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新され、オートマトンAが走査される。走査位置は、初期状態N0となる。   Next, the character string “Dick” is received, the end tag </ name> is received, the end tag </ edit> is received, the end tag </ prev> is received, and the end tag </ news> is received. Is done. Here, each time each data is received, the data obtained by converting each data is written into the second buffer b2 by the verification processing device 100, the third buffer b3 is updated by the current pass, and the automaton A is scanned. The The scanning position is in the initial state N0.

このように、照合処理装置100は、オートマトンAの更新において、オートマトンAに規定されたパス照合状態のうち、クエリQの条件を満たすと検出された検出回数が相対的に多いパス照合状態を残す。したがって、照合処理装置100は、オートマトンAに規定されたパス照合状態のうち、後に再び走査する可能性が相対的に高いパス照合状態を残すことができる。換言すれば、照合処理装置100は、後に再び走査する可能性が相対的に高いパス照合状態を削除してしまって、後に再び同一のパス照合状態を生成することになってしまうことを防止することができる。結果として、照合処理装置100は、オートマトン更新処理の負荷を低減し、オートマトンAにパス照合状態を生成することによって生じる処理遅延時間を抑制し、オートマトンAを用いたクエリQの照合処理を高速化することができる。   Thus, in the update of the automaton A, the matching processing apparatus 100 leaves a path matching state in which the number of detections detected when the condition of the query Q is satisfied among the path matching states defined in the automaton A is relatively large. . Therefore, the verification processing apparatus 100 can leave a path verification state that is relatively likely to be scanned again later among the path verification states defined in the automaton A. In other words, the matching processing device 100 prevents a path matching state that is relatively likely to be scanned again later from being deleted, and subsequently generating the same path matching state again. be able to. As a result, the matching processing device 100 reduces the load of automaton update processing, suppresses processing delay time caused by generating a path matching state in the automaton A, and speeds up the query Q matching processing using the automaton A. can do.

(照合処理装置100の第2の動作例)
次に、図31〜図36を用いて、照合処理装置100の第2の動作例について説明する。図31〜図36は、照合処理装置100の第2の動作例を示す説明図である。第2の動作例においては、パスID管理テーブルTの前回項目がなくてもよい。したがって、図31〜図36では、パスID管理テーブルTの前回項目の表記を省略する。
(Second operation example of collation processing apparatus 100)
Next, a second operation example of the verification processing device 100 will be described with reference to FIGS. FIGS. 31 to 36 are explanatory diagrams illustrating a second operation example of the verification processing device 100. In the second operation example, the previous item of the path ID management table T may not be present. Therefore, in FIG. 31 to FIG. 36, the previous item of the path ID management table T is not shown.

図31は、第2の動作例における初期オートマトンAの走査開始前の状態を示している。図31においては、図10に示したクエリQと初期オートマトンAと第1バッファb1と第2バッファb2と第3バッファb3とに加えて、クエリQの条件に一致した過去5回分のパスIDを格納する頻度管理テーブルFが用意されている。   FIG. 31 shows a state before the scanning of the initial automaton A in the second operation example. In FIG. 31, in addition to the query Q, the initial automaton A, the first buffer b1, the second buffer b2, and the third buffer b3 shown in FIG. A frequency management table F to be stored is prepared.

図31は走査前であるため、第1バッファb1と第2バッファb2と第3バッファb3とは空である。また、パスID管理テーブルTと頻度管理テーブルFにもレコードは存在しない。この後、照合処理装置100は、入力ストリームSのレコード1の各データを図11〜図15と同様にして処理する。   Since FIG. 31 is before scanning, the first buffer b1, the second buffer b2, and the third buffer b3 are empty. Further, there is no record in the path ID management table T and the frequency management table F. Thereafter, the collation processing apparatus 100 processes each data of the record 1 of the input stream S in the same manner as in FIGS.

次に、図32の説明に移行する。図32は、図16と同様に入力ストリームSのレコード1の開始タグ<name>が受信された場合の処理を示している。   Next, the description shifts to the description of FIG. FIG. 32 shows processing when the start tag <name> of the record 1 of the input stream S is received as in FIG.

図32において、入力ストリームSの開始タグ<name>が第1バッファb1に書き込まれると、照合処理装置100は、<name>を読み出して「[4」に変換し、第2バッファb2に書き込む。また、開始タグ<name>が受信されたため、照合処理装置100は、第3バッファb3の「/news/write」の末尾に「/」およびタグ内文字列「name」を書き込む。   In FIG. 32, when the start tag <name> of the input stream S is written to the first buffer b1, the verification processing device 100 reads <name>, converts it to “[4”, and writes it to the second buffer b2. Further, since the start tag <name> has been received, the verification processing apparatus 100 writes “/” and the in-tag character string “name” at the end of “/ news / write” in the third buffer b3.

そして、照合処理装置100は、パスID管理テーブルTに、パスID「4」、第3バッファb3内のパス「/news/write/name」、累計回数「(なし)」のレコードを登録する。ここで、第3バッファb3のパスp4はクエリQの条件に一致する。このため、照合処理装置100は、レコードの累計回数を「(なし)」から「1」に更新する。また、第3バッファb3のパスp4はクエリQの条件に一致する。このため、照合処理装置100は、頻度管理テーブルFにパスID「4」を登録する。   Then, the verification processing apparatus 100 registers a record of the path ID “4”, the path “/ news / write / name” in the third buffer b3, and the cumulative number “(none)” in the path ID management table T. Here, the path p4 of the third buffer b3 matches the query Q condition. For this reason, the collation processing apparatus 100 updates the cumulative number of records from “(none)” to “1”. The path p4 of the third buffer b3 matches the query Q condition. Therefore, the verification processing apparatus 100 registers the path ID “4” in the frequency management table F.

また、第3バッファb3のパスp4はクエリQの条件に一致する。このため、照合処理装置100は、オートマトンAの更新を実行する。具体的には、照合処理装置100は、まず、パスID「4」を示すパス照合状態N3を生成する。また、パス照合状態N3が生成されると、照合処理装置100は、クエリQのキーワードを構成する文字によりパス照合状態N3から順次遷移される遷移先状態として、キーワード照合途中状態N4,N5と、キーワード照合完了状態N6と、を生成する。   The path p4 of the third buffer b3 matches the query Q condition. For this reason, the collation processing apparatus 100 updates the automaton A. Specifically, the matching processing device 100 first generates a path matching state N3 indicating the path ID “4”. When the path matching state N3 is generated, the matching processing device 100 sets the keyword matching in-progress states N4 and N5 as transition destination states that are sequentially shifted from the path matching state N3 by the characters constituting the keyword of the query Q. A keyword matching completion state N6 is generated.

また、照合処理装置100は、パス照合状態N3から開始状態N1への遷移(不図示)と終了状態N2への遷移(不図示)を生成する。また、照合処理装置100は、パス照合状態N3が自身にループする遷移(不図示)も生成する。この遷移は、全記号Σから開始タグ記号「[」、終了タグ記号「]」およびキーワードの先頭文字「B」を除いた記号「Σ\{[,],B}」となる。これにより、1回目のオートマトンAの更新が完了する。   Further, the matching processing device 100 generates a transition (not shown) from the path matching state N3 to the start state N1 and a transition (not shown) to the end state N2. The matching processing device 100 also generates a transition (not shown) in which the path matching state N3 loops to itself. This transition is a symbol “Σ \ {[,], B}” obtained by removing the start tag symbol “[”, the end tag symbol “]” and the first character “B” of the keyword from all symbols Σ. Thereby, the first update of the automaton A is completed.

照合処理装置100は、更新後のオートマトンAにより走査を開始する。照合処理装置100は、第2バッファb2の「[4」の「[」により、走査位置である初期状態N0から開始状態N1に走査し、第2バッファb2の「4」により、開始状態N1からパス照合状態N3に走査する。走査位置は、パス照合状態N3となる。   The verification processing device 100 starts scanning with the updated automaton A. The collation processing device 100 scans from the initial state N0 which is the scanning position to the start state N1 by “[” of “[4” of the second buffer b2, and from the start state N1 by “4” of the second buffer b2. Scan to the path verification state N3. The scanning position is in a path verification state N3.

照合処理装置100は、パス照合状態N3に走査すると、パス照合状態N3のノードカウンタを「0」から「1」に更新する。この後、照合処理装置100は、入力ストリームSのレコード1の各データを図17〜図20と同様にして処理する。   When the verification processing device 100 scans the path verification state N3, the node counter in the path verification state N3 is updated from “0” to “1”. Thereafter, the collation processing apparatus 100 processes each data of the record 1 of the input stream S in the same manner as in FIGS.

次に、図33の説明に移行する。図33は、図21と同様に入力ストリームSのレコード1の開始タグ<name>が受信された場合の処理を示している。   Next, the description proceeds to FIG. FIG. 33 shows processing when the start tag <name> of the record 1 of the input stream S is received as in FIG.

図33において、入力ストリームSの開始タグ<name>が第1バッファb1に書き込まれると、照合処理装置100は、<name>を読み出して「[6」に変換し、第2バッファb2に書き込む。また、開始タグ<name>が受信されたため、照合処理装置100は、第3バッファb3の「/news/edit」の末尾に「/」およびタグ内文字列「name」を書き込む。   In FIG. 33, when the start tag <name> of the input stream S is written to the first buffer b1, the verification processing device 100 reads <name>, converts it to “[6”, and writes it to the second buffer b2. Since the start tag <name> has been received, the verification processing apparatus 100 writes “/” and the in-tag character string “name” at the end of “/ news / edit” in the third buffer b3.

そして、照合処理装置100は、パスID管理テーブルTに、パスID「6」、第3バッファb3内のパス「/news/edit/name」、累計回数「(なし)」のレコードを登録する。ここで、第3バッファb3のパスp6はクエリQの条件に一致する。このため、照合処理装置100は、レコードの累計回数を「(なし)」から「1」に更新する。また、第3バッファb3のパスp6はクエリQの条件に一致する。このため、照合処理装置100は、頻度管理テーブルFにパスID「6」を登録する。   Then, the verification processing apparatus 100 registers a record of the path ID “6”, the path “/ news / edit / name” in the third buffer b3, and the cumulative number “(none)” in the path ID management table T. Here, the path p6 of the third buffer b3 matches the query Q condition. For this reason, the collation processing apparatus 100 updates the cumulative number of records from “(none)” to “1”. The path p6 of the third buffer b3 matches the query Q condition. For this reason, the verification processing apparatus 100 registers the path ID “6” in the frequency management table F.

また、第3バッファb3のパスp6はクエリQの条件に一致する。このため、照合処理装置100は、オートマトンAの更新を実行する。具体的には、照合処理装置100は、クエリQの条件を満たすパスp6を特定するパス照合状態N7を生成する。また、パス照合状態N7が生成されると、照合処理装置100は、クエリQのキーワードを構成する文字によりパス照合状態N7から順次遷移される遷移先状態として、キーワード照合途中状態N8,N9とキーワード照合完了状態N10とを生成する。   The path p6 of the third buffer b3 matches the query Q condition. For this reason, the collation processing apparatus 100 updates the automaton A. Specifically, the matching processing device 100 generates a path matching state N7 that identifies the path p6 that satisfies the condition of the query Q. When the path matching state N7 is generated, the matching processing device 100 sets the keyword matching intermediate states N8, N9 and the keyword as transition destination states that are sequentially shifted from the path matching state N7 by the characters constituting the keyword of the query Q. A verification completion state N10 is generated.

また、照合処理装置100は、パス照合状態N7から開始状態N1への遷移(不図示)と終了状態N2への遷移(不図示)を生成する。また、照合処理装置100は、パス照合状態N7が自身にループする遷移(不図示)も生成する。この遷移は、全記号Σから開始タグ記号「[」、終了タグ記号「]」およびキーワードの先頭文字「B」を除いた記号「Σ\{[,],B}」となる。これにより、2回目のオートマトンAの更新が完了する。   Further, the matching processing device 100 generates a transition (not shown) from the path matching state N7 to the start state N1 and a transition (not shown) to the end state N2. The matching processing device 100 also generates a transition (not shown) in which the path matching state N7 loops to itself. This transition is a symbol “Σ \ {[,], B}” obtained by removing the start tag symbol “[”, the end tag symbol “]” and the first character “B” of the keyword from all symbols Σ. This completes the second update of the automaton A.

照合処理装置100は、更新後のオートマトンAにより走査を開始する。照合処理装置100は、第2バッファb2の「[6」の「[」により、走査位置である初期状態N0から開始状態N1に走査し、第2バッファb2の「6」により、開始状態N1からパス照合状態N7に走査する。走査位置は、パス照合状態N7となる。照合処理装置100は、パス照合状態N7に走査すると、パス照合状態N7のノードカウンタを「0」から「1」に更新する。この後、照合処理装置100は、入力ストリームSのレコード1の各データを図22および図23と同様にして処理する。   The verification processing device 100 starts scanning with the updated automaton A. The collation processing device 100 scans from the initial state N0 which is the scanning position to the start state N1 by “[” of “[6” of the second buffer b2, and from the start state N1 by “6” of the second buffer b2. Scan to the path verification state N7. The scanning position is in a path verification state N7. When the verification processing device 100 scans the path verification state N7, the node counter of the path verification state N7 is updated from “0” to “1”. Thereafter, the collation processing apparatus 100 processes each data of the record 1 of the input stream S in the same manner as in FIG. 22 and FIG.

次に、図34の説明に移行する。図34は、図24と同様に入力ストリームSのレコード1の残りの各データが受信され、照合処理装置100によって処理された場合の処理結果を示している。   Next, the description shifts to the description of FIG. FIG. 34 shows the processing result when the remaining data of the record 1 of the input stream S is received and processed by the matching processing device 100 as in FIG.

図34において、開始タグ<prev>が受信されると、照合処理装置100によって、開始タグ<prev>を変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新される。また、パスID管理テーブルTにパスID「7」に関するレコードが登録され、オートマトンAが走査される。   In FIG. 34, when the start tag <prev> is received, the collation processing device 100 writes the data obtained by converting the start tag <prev> into the second buffer b2, and the third buffer b3 is updated by the current path. The Further, a record relating to the path ID “7” is registered in the path ID management table T, and the automaton A is scanned.

次に、開始タグ<write>が受信されると、照合処理装置100によって、開始タグ<write>を変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新される。また、パスID管理テーブルTにパスID「8」に関するレコードが登録され、オートマトンAが走査される。   Next, when the start tag <write> is received, the collation processing device 100 writes the data obtained by converting the start tag <write> into the second buffer b2, and the third buffer b3 is updated by the current path. . Further, a record related to the path ID “8” is registered in the path ID management table T, and the automaton A is scanned.

次に、開始タグ<name>が受信されると、照合処理装置100によって、開始タグ<name>を変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新される。また、パスID管理テーブルTにパスID「9」に関するレコードが登録され、オートマトンAが走査される。また、頻度管理テーブルFにパスID「9」が登録される。また、オートマトンAにパス照合状態N11と、キーワード照合途中状態N12,N13と、キーワード照合完了状態N14と、が生成される。パス照合状態N11のノードカウンタは「0」から「1」に更新されている。   Next, when the start tag <name> is received, the collation processing device 100 writes the data obtained by converting the start tag <name> into the second buffer b2, and the third buffer b3 is updated by the current path. . Further, a record related to the path ID “9” is registered in the path ID management table T, and the automaton A is scanned. Further, the path ID “9” is registered in the frequency management table F. Further, a path collation state N11, keyword collation intermediate states N12 and N13, and a keyword collation completion state N14 are generated in the automaton A. The node counter in the path verification state N11 is updated from “0” to “1”.

次に、文字列「Carol」が受信され、終了タグ</name>が受信され、終了タグ</write>が受信され、終了タグ</prev>が受信され、終了タグ</news>が受信される。ここで、各データが受信されるごとに、照合処理装置100によって、各データを変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新され、オートマトンAが走査される。走査位置は、初期状態N0となる。   Next, the character string “Carol” is received, the end tag </ name> is received, the end tag </ write> is received, the end tag </ prev> is received, and the end tag </ news> is received. Is done. Here, each time each data is received, the data obtained by converting each data is written into the second buffer b2 by the verification processing device 100, the third buffer b3 is updated by the current pass, and the automaton A is scanned. The The scanning position is in the initial state N0.

次に、図35の説明に移行する。図35は、図34の状態から、図25と同様に入力ストリームSのレコード2の各データが受信され、照合処理装置100によって処理された場合の処理結果を示している。   Next, the description proceeds to FIG. FIG. 35 shows a processing result when each data of the record 2 of the input stream S is received from the state of FIG. 34 and processed by the collation processing device 100 as in FIG.

図35において、開始タグ<news>が受信され、開始タグ<date>が受信され、文字列「2011−12−02」が受信され、終了タグ</date>が受信され、開始タグ<write>が受信される。ここで、各データが受信されるごとに、照合処理装置100によって、各データを変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新され、オートマトンAが走査される。   35, the start tag <news> is received, the start tag <date> is received, the character string “2011-12-02” is received, the end tag </ date> is received, and the start tag <write> is received. Is received. Here, each time each data is received, the data obtained by converting each data is written into the second buffer b2 by the verification processing device 100, the third buffer b3 is updated by the current pass, and the automaton A is scanned. The

次に、開始タグ<name>が受信されると、照合処理装置100によって、開始タグ<name>を変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新される。また、パスID管理テーブルTのパスID「4」に関する累計回数が「1」から「2」に更新され、オートマトンAが走査される。また、頻度管理テーブルFにパスID「4」が登録される。また、パスID「4」を特定するパス照合状態N3のノードカウンタが「1」から「2」に更新される。   Next, when the start tag <name> is received, the collation processing device 100 writes the data obtained by converting the start tag <name> into the second buffer b2, and the third buffer b3 is updated by the current path. . Further, the cumulative number related to the path ID “4” in the path ID management table T is updated from “1” to “2”, and the automaton A is scanned. Further, the path ID “4” is registered in the frequency management table F. Further, the node counter of the path verification state N3 that specifies the path ID “4” is updated from “1” to “2”.

次に、文字列「Carol」が受信され、終了タグ</name>が受信され、終了タグ</write>が受信され、開始タグ<edit>が受信される。ここで、各データが受信されるごとに、照合処理装置100によって、各データを変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新され、オートマトンAが走査される。   Next, the character string “Carol” is received, the end tag </ name> is received, the end tag </ write> is received, and the start tag <edit> is received. Here, each time each data is received, the data obtained by converting each data is written into the second buffer b2 by the verification processing device 100, the third buffer b3 is updated by the current pass, and the automaton A is scanned. The

次に、開始タグ<name>が受信されると、照合処理装置100によって、開始タグ<name>を変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新される。また、パスID管理テーブルTのパスID「6」に関する累計回数が「1」から「2」に更新され、オートマトンAが走査される。また、頻度管理テーブルFにパスID「6」が登録される。ここで、頻度管理テーブルFのレコード数は上限に達する。また、パスID「6」を特定するパス照合状態N7のノードカウンタが「1」から「2」に更新される。   Next, when the start tag <name> is received, the collation processing device 100 writes the data obtained by converting the start tag <name> into the second buffer b2, and the third buffer b3 is updated by the current path. . In addition, the cumulative number related to the path ID “6” in the path ID management table T is updated from “1” to “2”, and the automaton A is scanned. Further, the path ID “6” is registered in the frequency management table F. Here, the number of records in the frequency management table F reaches the upper limit. In addition, the node counter of the path verification state N7 that specifies the path ID “6” is updated from “1” to “2”.

次に、文字列「Dick」が受信され、終了タグ</name>が受信され、終了タグ</edit>が受信され、終了タグ</news>が受信される。ここで、各データが受信されるごとに、照合処理装置100によって、各データを変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新され、オートマトンAが走査される。走査位置は、初期状態N0となる。   Next, the character string “Dick” is received, the end tag </ name> is received, the end tag </ edit> is received, and the end tag </ news> is received. Here, each time each data is received, the data obtained by converting each data is written into the second buffer b2 by the verification processing device 100, the third buffer b3 is updated by the current pass, and the automaton A is scanned. The The scanning position is in the initial state N0.

次に、図36の説明に移行する。図36は、図35の状態から、入力ストリームSのレコード3の途中までの各データが受信され、照合処理装置100によって処理された場合の処理結果を示している。   Next, the description shifts to the description of FIG. FIG. 36 shows a processing result when each piece of data from the state of FIG. 35 to the middle of the record 3 of the input stream S is received and processed by the collation processing device 100.

図36において、開始タグ<news>が受信され、開始タグ<date>が受信され、文字列「2011−12−03」が受信され、終了タグ</date>が受信され、開始タグ<write>が受信される。ここで、各データが受信されるごとに、照合処理装置100によって、各データを変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新され、オートマトンAが走査される。   In FIG. 36, the start tag <news> is received, the start tag <date> is received, the character string “2011-12-03” is received, the end tag </ date> is received, and the start tag <write> is received. Is received. Here, each time each data is received, the data obtained by converting each data is written into the second buffer b2 by the verification processing device 100, the third buffer b3 is updated by the current pass, and the automaton A is scanned. The

次に、開始タグ<name>が受信されると、照合処理装置100によって、開始タグ<name>を変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新される。また、パスID管理テーブルTのパスID「4」に関する累計回数が「2」から「3」に更新され、オートマトンAが走査される。   Next, when the start tag <name> is received, the collation processing device 100 writes the data obtained by converting the start tag <name> into the second buffer b2, and the third buffer b3 is updated by the current path. . In addition, the cumulative number related to the path ID “4” in the path ID management table T is updated from “2” to “3”, and the automaton A is scanned.

また、頻度管理テーブルFがレコード数の上限に達しているため、頻度管理テーブルFから最古のパスID「4」が削除され、頻度管理テーブルFにパスID「4」が登録される。ここで、頻度管理テーブルFから削除されたパスID「4」に関するパスID管理テーブルTの累計回数を「3」から「2」に更新する。照合処理装置100は、入力ストリームSの以降の文字列について同様に処理を行う。入力ストリームSの以降の文字列についての処理の説明は省略する。   Further, since the frequency management table F has reached the upper limit of the number of records, the oldest path ID “4” is deleted from the frequency management table F, and the path ID “4” is registered in the frequency management table F. Here, the cumulative number of times in the path ID management table T related to the path ID “4” deleted from the frequency management table F is updated from “3” to “2”. The collation processing device 100 performs the same processing on the subsequent character strings of the input stream S. A description of the processing for the subsequent character strings of the input stream S is omitted.

上述した第2の動作例においては、パスID管理テーブルTの前回項目のフラグをオートマトンAの更新に使用しない例を示したが、これに限らない。例えば、第2の動作例においては、第3の動作例と同様の動作を行ってパスID管理テーブルTの前回項目を更新してもよい。そして、上述したようにパスID管理テーブルTの累計回数を頻度管理テーブルFにより修正し、修正した累計回数とフラグとを用いてオートマトンAを更新してもよい。   In the second operation example described above, an example in which the flag of the previous item in the path ID management table T is not used for updating the automaton A is shown, but the present invention is not limited to this. For example, in the second operation example, the previous item of the path ID management table T may be updated by performing the same operation as in the third operation example. Then, as described above, the cumulative number of times of the path ID management table T may be corrected by the frequency management table F, and the automaton A may be updated using the corrected cumulative number of times and the flag.

このように、照合処理装置100は、パスIDごとのクエリQの条件を満たす累計回数を、頻度を考慮して計数する。例えば、照合処理装置100は、過去にクエリQの条件を満たすと検出された所定回数の中でのパスIDごとのクエリQの条件を満たす累計回数を計数する。したがって、照合処理装置100は、オートマトンAに規定されたパス照合状態のうち、近々、再び走査する可能性が相対的に高いパス照合状態を残すことができる。換言すれば、照合処理装置100は、後に再び走査する可能性が相対的に高いパス照合状態を削除してしまって、後に再び同一のパス照合状態を生成することになってしまうことを防止することができる。結果として、照合処理装置100は、オートマトン更新処理の負荷を低減し、オートマトンAにパス照合状態を生成することによって生じる処理遅延時間を抑制し、オートマトンAを用いたクエリQの照合処理を高速化することができる。   In this way, the verification processing device 100 counts the cumulative number that satisfies the query Q condition for each path ID in consideration of the frequency. For example, the matching processing device 100 counts the total number of times that satisfies the condition of the query Q for each path ID in the predetermined number of times detected when the condition of the query Q is satisfied in the past. Therefore, the verification processing apparatus 100 can leave a path verification state that is relatively likely to be scanned again soon, among the path verification states defined in the automaton A. In other words, the matching processing device 100 prevents a path matching state that is relatively likely to be scanned again later from being deleted, and subsequently generating the same path matching state again. be able to. As a result, the matching processing device 100 reduces the load of automaton update processing, suppresses processing delay time caused by generating a path matching state in the automaton A, and speeds up the query Q matching processing using the automaton A. can do.

(照合処理装置100の第3の動作例)
次に、図37〜図41を用いて、照合処理装置100の第3の動作例について説明する。図37〜図41は、照合処理装置100の第3の動作例を示す説明図である。第3の動作例においては、頻度管理テーブルFがなくてもよい。したがって、図37〜図41では、頻度管理テーブルFの表記を省略する。
(Third Operation Example of Collation Processing Device 100)
Next, a third operation example of the verification processing apparatus 100 will be described with reference to FIGS. 37 to 41 are explanatory diagrams illustrating a third operation example of the matching processing device 100. FIG. In the third operation example, the frequency management table F may not be provided. Therefore, the description of the frequency management table F is omitted in FIGS.

図37は、第3の動作例におけるオートマトンAの状態の一例を示している。図37において、第2バッファb2と第3バッファb3とは空である。また、パスID管理テーブルTは、図示した状態である。以下では、第1バッファb1に示す入力ストリームSのレコード6が受信された場合に、照合処理装置100によってレコード6の各データが処理された場合の処理結果について説明する。   FIG. 37 shows an example of the state of the automaton A in the third operation example. In FIG. 37, the second buffer b2 and the third buffer b3 are empty. Further, the path ID management table T is in the illustrated state. Hereinafter, the processing result when each data of the record 6 is processed by the collation processing device 100 when the record 6 of the input stream S shown in the first buffer b1 is received will be described.

次に、図38の説明に移行する。図38は、図37の状態から、入力ストリームSのレコード6の途中までの各データが、照合処理装置100によって処理された場合の処理結果を示している。   Next, the description shifts to the description of FIG. FIG. 38 shows a processing result when each data from the state of FIG. 37 to the middle of the record 6 of the input stream S is processed by the collation processing device 100.

図38において、開始タグ<news>が受信され、開始タグ<date>が受信され、文字列「2011−12−06」が受信され、終了タグ</date>が受信され、開始タグ<write>が受信される。ここで、各データが受信されるごとに、照合処理装置100によって、各データを変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新され、オートマトンAが走査される。   In FIG. 38, the start tag <news> is received, the start tag <date> is received, the character string “2011-12-06” is received, the end tag </ date> is received, and the start tag <write> is received. Is received. Here, each time each data is received, the data obtained by converting each data is written into the second buffer b2 by the verification processing device 100, the third buffer b3 is updated by the current pass, and the automaton A is scanned. The

次に、開始タグ<name>が受信されると、照合処理装置100によって、開始タグ<name>を変換したデータが第2バッファb2に書き込まれ、現在のパスにより第3バッファb3が更新される。また、パスID管理テーブルTのパスID「4」に関する累計回数が「6」から「7」に更新され、オートマトンAが走査される。また、パスID「4」を特定するパス照合状態N3のノードカウンタが「6」から「7」に更新される。   Next, when the start tag <name> is received, the collation processing device 100 writes the data obtained by converting the start tag <name> into the second buffer b2, and the third buffer b3 is updated by the current path. . Further, the cumulative number related to the path ID “4” in the path ID management table T is updated from “6” to “7”, and the automaton A is scanned. Further, the node counter in the path verification state N3 that specifies the path ID “4” is updated from “6” to “7”.

次に、図39の説明に移行する。図39は、図38の状態から、入力ストリームSのレコード6の開始タグ<ghost>が受信された場合の処理を示している。   Next, the description shifts to the description of FIG. FIG. 39 shows a process when the start tag <host> of the record 6 of the input stream S is received from the state of FIG.

図39において、入力ストリームSの開始タグ<ghost>が第1バッファb1に書き込まれると、照合処理装置100は、<ghost>を読み出して「[9」に変換し、第2バッファb2に書き込む。また、開始タグ<ghost>が受信されたため、照合処理装置100は、第3バッファb3の「/news/write/name」の末尾に「/」およびタグ内文字列「ghost」を書き込む。   In FIG. 39, when the start tag <host> of the input stream S is written to the first buffer b1, the verification processing device 100 reads <host>, converts it to “[9”, and writes it to the second buffer b2. Also, since the start tag <ghost> has been received, the verification processing apparatus 100 writes “/” and the in-tag character string “ghost” at the end of “/ news / write / name” in the third buffer b3.

そして、照合処理装置100は、パスID管理テーブルTに、パスID「9」、第3バッファb3内のパス「/news/write/name/ghost」、累計回数「(なし)」のレコードを登録する。ここで、パスp9の親パスとなるパスp4を示すパス照合状態N3がオートマトンAに規定されているため、終了状態N2からパス照合状態N3への遷移を生成すると共に、パスID「4」に関するパスID管理テーブルTの前回項目に「開始」を設定する。   Then, the verification processing apparatus 100 registers a record of the path ID “9”, the path “/ news / write / name / host” in the third buffer b3, and the cumulative number “(none)” in the path ID management table T. To do. Here, since the path collation state N3 indicating the path p4 which is the parent path of the path p9 is defined in the automaton A, a transition from the end state N2 to the path collation state N3 is generated and the path ID “4” is related. “Start” is set in the previous item of the path ID management table T.

ここで、第3バッファb3のパスp9はクエリQの条件に一致しない。このため、照合処理装置100は、第2バッファb2の「[」により、走査位置である初期状態N0から開始状態N1に走査し、第2バッファb2の「9」により、開始状態N1から初期状態N0に走査する。次に、図40の説明に移行する。図40は、図39の状態から、入力ストリームSのレコード6の開始タグ<name>が受信された場合の処理を示している。   Here, the path p9 of the third buffer b3 does not match the query Q condition. Therefore, the collation processing device 100 scans from the initial state N0 that is the scanning position to the start state N1 by “[” of the second buffer b2, and from the start state N1 to the initial state by “9” of the second buffer b2. Scan to N0. Next, the description proceeds to FIG. FIG. 40 shows processing when the start tag <name> of the record 6 of the input stream S is received from the state of FIG.

図40において、入力ストリームSの開始タグ<name>が第1バッファb1に書き込まれると、照合処理装置100は、<name>を読み出して「[10」に変換し、第2バッファb2に書き込む。また、開始タグ<name>が受信されたため、照合処理装置100は、第3バッファb3の「/news/write/name/ghost」の末尾に「/」およびタグ内文字列「name」を書き込む。   In FIG. 40, when the start tag <name> of the input stream S is written to the first buffer b1, the verification processing device 100 reads <name>, converts it to “[10”, and writes it to the second buffer b2. Since the start tag <name> has been received, the verification processing apparatus 100 writes “/” and the character string “name” in the tag at the end of “/ news / write / name / host” in the third buffer b3.

そして、照合処理装置100は、パスID管理テーブルTに、パスID「10」、第3バッファb3内のパス「/news/write/name/ghost/name」、累計回数「(なし)」のレコードを登録する。ここで、第3バッファb3のパスp10はクエリQの条件に一致する。このため、照合処理装置100は、レコードの累計回数を「(なし)」から「1」に更新する。   Then, the verification processing apparatus 100 records in the path ID management table T the path ID “10”, the path “/ news / write / name / host / name” in the third buffer b3, and the cumulative number “(none)”. Register. Here, the path p10 of the third buffer b3 matches the query Q condition. For this reason, the collation processing apparatus 100 updates the cumulative number of records from “(none)” to “1”.

また、第3バッファb3のパスp10はクエリQの条件に一致する。このため、照合処理装置100は、オートマトンAの更新を実行する。具体的には、照合処理装置100は、クエリQの条件を満たすパスp10を特定するパス照合状態N15を生成する。このとき、オートマトンAには、既に最大規定数のパス照合状態が規定されているため、照合処理装置100は、オートマトンAに規定されているパス照合状態のうち、いずれかのパス照合状態を削除してから、パスp10を特定するパス照合状態N15を生成する。   The path p10 of the third buffer b3 matches the query Q condition. For this reason, the collation processing apparatus 100 updates the automaton A. Specifically, the matching processing device 100 generates a path matching state N15 that identifies the path p10 that satisfies the condition of the query Q. At this time, since the maximum specified number of path verification states are already specified in the automaton A, the verification processing apparatus 100 deletes any path verification status from among the path verification states specified in the automaton A. Then, a path verification state N15 that specifies the path p10 is generated.

例えば、照合処理装置100は、パスID管理テーブルTの累計回数が最小になるパスID「4」を特定する。しかしながら、パスID「4」に対応する前回項目に「開始」が設定されているため、パスID「4」のパスを特定するパス照合状態N3は、近々、走査されるパス照合状態である。したがって、照合処理装置100は、パスID「4」のパスを特定するパス照合状態N3を削除しない。   For example, the verification processing apparatus 100 identifies the path ID “4” that minimizes the cumulative number of times in the path ID management table T. However, since “start” is set in the previous item corresponding to the path ID “4”, the path verification state N3 for specifying the path with the path ID “4” is a path verification state to be scanned soon. Therefore, the verification processing apparatus 100 does not delete the path verification state N3 that specifies the path with the path ID “4”.

そこで、照合処理装置100は、パスID管理テーブルTの累積回数が2番目に小さいパスID「8」を特定する。次に、照合処理装置100は、パスID「8」に対応する前回項目に「開始」が設定されていないため、特定したパスID「8」を特定するパス照合状態N11を削除する。   Therefore, the verification processing apparatus 100 identifies the path ID “8” with the second smallest cumulative number in the path ID management table T. Next, since “start” is not set in the previous item corresponding to the path ID “8”, the verification processing apparatus 100 deletes the path verification state N11 that specifies the specified path ID “8”.

そして、照合処理装置100は、パスID「8」を特定するパス照合状態N11の削除に伴って、パスID「8」を特定するパス照合状態から順次遷移されるキーワード照合途中状態N12,N13とキーワード照合完了状態N14とを削除する。次に、照合処理装置100は、パスp10を特定するパス照合状態N15を生成する。また、パスp10を特定するパス照合状態N15が生成されると、照合処理装置100は、クエリQのキーワードを構成する文字によりパスp10を特定するパス照合状態N15から順次遷移される遷移先状態を生成する。遷移先状態は、キーワード照合途中状態N16,N17とキーワード照合完了状態N18とである。   Then, the collation processing apparatus 100 includes the keyword collation intermediate states N12 and N13 that are sequentially shifted from the path collation state that specifies the path ID “8” with the deletion of the path collation state N11 that identifies the path ID “8”. The keyword matching completion state N14 is deleted. Next, the matching processing device 100 generates a path matching state N15 that identifies the path p10. Further, when the path matching state N15 that identifies the path p10 is generated, the matching processing device 100 displays the transition destination state that is sequentially shifted from the path matching state N15 that identifies the path p10 by the characters constituting the keyword of the query Q. Generate. The transition destination states are keyword collation intermediate states N16 and N17 and keyword collation completion state N18.

また、照合処理装置100は、パスp10を特定するパス照合状態N15から開始状態N1への遷移(不図示)と終了状態N2への遷移(不図示)を生成する。また、照合処理装置100は、パスp10を特定するパス照合状態N15が自身にループする遷移(不図示)も生成する。この遷移は、全記号Σから開始タグ記号「[」、終了タグ記号「]」およびキーワードの先頭文字「B」を除いた記号「Σ\{[,],B}」となる。これにより、1回目のオートマトンAの更新が完了する。   In addition, the matching processing device 100 generates a transition (not shown) from the path matching state N15 that specifies the path p10 to the start state N1 and a transition (not shown) to the end state N2. The matching processing device 100 also generates a transition (not shown) in which the path matching state N15 that specifies the path p10 loops on itself. This transition is a symbol “Σ \ {[,], B}” obtained by removing the start tag symbol “[”, the end tag symbol “]” and the first character “B” of the keyword from all symbols Σ. Thereby, the first update of the automaton A is completed.

照合処理装置100は、更新後のオートマトンAにより走査を開始する。照合処理装置100は、第2バッファb2の「[10」の「[」により、走査位置である初期状態N0から開始状態N1に走査し、第2バッファb2の「10」により、開始状態N1からパスp10を特定するパス照合状態N15に走査する。走査位置は、パスp10を特定するパス照合状態N15となる。   The verification processing device 100 starts scanning with the updated automaton A. The collation processing device 100 scans from the initial state N0 that is the scanning position to the start state N1 by “[” of “[10” of the second buffer b2, and from the start state N1 by “10” of the second buffer b2. Scan to the path verification state N15 that identifies the path p10. The scanning position is in a path collation state N15 that specifies the path p10.

照合処理装置100は、パスp10を特定するパス照合状態N15に走査すると、パスp10を特定するパス照合状態N15のノードカウンタを「0」から「1」に更新する。この後、文字列「Emily」が受信され、終了タグ</name>が受信される。   When the verification processing device 100 scans the path verification state N15 that specifies the path p10, the node counter of the path verification state N15 that specifies the path p10 is updated from “0” to “1”. Thereafter, the character string “Emily” is received, and the end tag </ name> is received.

次に、図41の説明に移行する。図41は、図40の状態から、入力ストリームSのレコード6の終了タグ</ghost>が受信された場合の処理を示している。   Next, the description proceeds to FIG. FIG. 41 shows the processing when the end tag </ host> of the record 6 of the input stream S is received from the state of FIG.

図41において、入力ストリームSの終了タグ</ghost>が第1バッファb1に書き込まれると、照合処理装置100は、</ghost>を読み出して「]9」に変換し、第2バッファb2に書き込む。また、照合処理装置100は、第3バッファb3のパスp9:「/news/write/name/ghost」から「/」および終了タグ</ghost>のタグ内文字列「ghost」を削除して、パスp4:「/news/write/name」に戻す。ここで、パスp4を示すパス照合状態N3がオートマトンAに規定されているため、パスID「4」に関するパスID管理テーブルTの前回項目を「開始」から「終了」に更新する。   In FIG. 41, when the end tag </ host> of the input stream S is written to the first buffer b1, the verification processing device 100 reads </ host>, converts it to “] 9”, and stores it in the second buffer b2. Write. Further, the verification processing device 100 deletes “/” and the in-tag character string “ghost” of the end tag </ host> from the path p9: “/ news / write / name / host” of the third buffer b3, Path p4: Return to “/ news / write / name”. Here, since the path verification state N3 indicating the path p4 is defined in the automaton A, the previous item of the path ID management table T regarding the path ID “4” is updated from “start” to “end”.

ここで、第3バッファb3のパスp4はクエリQの条件に一致する。このため、照合処理装置100は、第2バッファb2の「]」により、走査位置である初期状態N0から終了状態N2に走査し、第2バッファb2の「9」により、終了状態N2からパスp4を特定するパス照合状態N3に走査する。   Here, the path p4 of the third buffer b3 matches the query Q condition. For this reason, the collation processing device 100 scans from the initial state N0, which is the scanning position, to the end state N2 by “]” of the second buffer b2, and passes from the end state N2 to the path p4 by “9” of the second buffer b2. To the path verification state N3 that specifies

上述した第3の動作例においては、頻度管理テーブルFをオートマトンAの更新に使用しない例を示したが、これに限らない。例えば、第3の動作例においては、第2の動作例と同様の動作を行ってパスID管理テーブルTの累計回数を頻度管理テーブルFにより修正し、修正した累計回数とフラグとを用いてオートマトンAを更新してもよい。   In the third operation example described above, the example in which the frequency management table F is not used for updating the automaton A is shown, but the present invention is not limited thereto. For example, in the third operation example, the same operation as in the second operation example is performed to correct the cumulative number of the path ID management table T by the frequency management table F, and the automaton using the corrected cumulative number and flag. A may be updated.

このように、開始状態N1から走査された後であって、かつ、終了状態N2から走査される前であるパス照合状態があると、照合処理装置100は、当該パス照合状態を、近々、終了状態N2から走査されるとして、残しておく。したがって、照合処理装置100は、オートマトンAに規定されたパス照合状態のうち、近々、再び走査する可能性が相対的に高いパス照合状態を残すことができる。換言すれば、照合処理装置100は、後に再び走査する可能性が相対的に高いパス照合状態を削除してしまって、後に再び同一のパス照合状態を生成することになってしまうことを防止することができる。結果として、照合処理装置100は、オートマトン更新処理の負荷を低減し、オートマトンAにパス照合状態を生成することによって生じる処理遅延時間を抑制し、オートマトンAを用いたクエリQの照合処理を高速化することができる。   As described above, when there is a path matching state after scanning from the start state N1 and before scanning from the end state N2, the matching processing device 100 ends the path matching state soon. It is left as it is scanned from state N2. Therefore, the verification processing apparatus 100 can leave a path verification state that is relatively likely to be scanned again soon, among the path verification states defined in the automaton A. In other words, the matching processing device 100 prevents a path matching state that is relatively likely to be scanned again later from being deleted, and subsequently generating the same path matching state again. be able to. As a result, the matching processing device 100 reduces the load of automaton update processing, suppresses processing delay time caused by generating a path matching state in the automaton A, and speeds up the query Q matching processing using the automaton A. can do.

<照合処理装置100のハードウェア構成例>
図42は、照合処理装置100のハードウェア構成例を示すブロック図である。図42において、照合処理装置100は、プロセッサ4201、記憶装置4202、入力装置4203、出力装置4204、および通信装置4205が、バス4206に接続されて構成されるコンピュータである。
<Hardware Configuration Example of Collation Processing Device 100>
FIG. 42 is a block diagram illustrating a hardware configuration example of the collation processing device 100. In FIG. 42, the collation processing apparatus 100 is a computer configured by connecting a processor 4201, a storage device 4202, an input device 4203, an output device 4204, and a communication device 4205 to a bus 4206.

プロセッサ4201は、コンピュータの全体の制御を司る。また、プロセッサ4201は、記憶装置4202に記憶されている各種プログラムを実行することにより、記憶装置4202内のデータを読み出したり、実行結果となるデータを記憶装置4202に書き込んだりする。各種プログラムには、例えば、OS(Operating System)や本実施の形態の更新プログラムがある。   The processor 4201 controls the entire computer. In addition, the processor 4201 executes various programs stored in the storage device 4202 to read data in the storage device 4202 and write data as an execution result to the storage device 4202. Examples of the various programs include an OS (Operating System) and an update program according to the present embodiment.

記憶装置4202は、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリ、磁気ディスクドライブなどで構成され、プロセッサ4201のワークエリアになったり、各種プログラムや各種プログラムの実行により得られたデータを含む各種データを記憶したりする。   The storage device 4202 includes a ROM (Read Only Memory), a RAM (Random Access Memory), a flash memory, a magnetic disk drive, and the like. The storage device 4202 becomes a work area of the processor 4201, and is obtained by executing various programs and various programs. Various data including data is stored.

入力装置4203は、キーボード、マウス、タッチパネルなどユーザの操作により、各種データの入力を行うインターフェースである。出力装置4204は、プロセッサ4201の指示により、データを出力するインターフェースである。出力装置4204には、例えば、ディスプレイやプリンタが挙げられる。通信装置4205は、ネットワーク101を介して外部からデータを受信したり、外部にデータを送信したりするインターフェースである。   The input device 4203 is an interface for inputting various data by a user operation such as a keyboard, a mouse, and a touch panel. The output device 4204 is an interface that outputs data in accordance with an instruction from the processor 4201. Examples of the output device 4204 include a display and a printer. The communication device 4205 is an interface that receives data from the outside via the network 101 and transmits data to the outside.

<照合処理装置100の機能的構成例>
図43は、照合処理装置100の機能的構成例を示すブロック図である。照合処理装置100は、読込部4301と、特定部4302と、検出部4303と、第1の計数部4304と、第2の計数部4305と、更新部4306と、を有する。
<Example of Functional Configuration of Collation Processing Device 100>
FIG. 43 is a block diagram illustrating a functional configuration example of the collation processing device 100. The verification processing apparatus 100 includes a reading unit 4301, a specifying unit 4302, a detecting unit 4303, a first counting unit 4304, a second counting unit 4305, and an updating unit 4306.

照合処理装置100は、オートマトンAを用いて、入力ストリームSに対して、クエリQの照合を行うコンピュータである。ここで、入力ストリームSとは、タグにより階層化されたデータ列であって、発生源Gとなるコンピュータからネットワーク101を介して受信されるデータ列である。入力ストリームSとは、例えば、図2に示したようなXMLデータである。入力ストリームSとは、例えば、HTMLデータであってもよい。   The collation processing apparatus 100 is a computer that collates the query Q against the input stream S using the automaton A. Here, the input stream S is a data string that is hierarchized by tags, and is a data string that is received from the computer that is the source G via the network 101. The input stream S is, for example, XML data as shown in FIG. The input stream S may be, for example, HTML data.

タグとは、要素の集合が存在する位置を示す情報であって、例えば、開始タグや終了タグである。位置とは、例えば、入力ストリームS内の階層である。開始タグとは、要素の集合の開始位置を示す情報であって、例えば、図2に示した開始タグ<news>や開始タグ<name>などである。終了タグとは、要素の集合の終了位置を示す情報であって、例えば、図2に示した終了タグ</news>や終了タグ</name>などである。要素とは、開始タグと終了タグとの間に含まれる文字列や別の開始タグや別の終了タグである。   A tag is information indicating a position where a set of elements exists, and is, for example, a start tag or an end tag. The position is, for example, a hierarchy in the input stream S. The start tag is information indicating the start position of the set of elements, and is, for example, the start tag <news> or the start tag <name> shown in FIG. The end tag is information indicating the end position of the set of elements, and is, for example, the end tag </ news> or the end tag </ name> shown in FIG. The element is a character string included between the start tag and the end tag, another start tag, or another end tag.

クエリQとは、キーワードとキーワードに対応するパスの条件とを含む情報である。キーワードとは、入力ストリームSの文字列と照合される文字列であって、例えば、図2に示した文字列「Bob」である。パスとは、任意のタグの位置を示す情報であって、入力ストリームSの最上階層から任意のタグが示す階層までの経路である。例えば、図2に示した開始タグ<news>のパスは、最上階層である第0階層を示すルートから開始タグ<news>が示す第1階層までの経路「/news」である。パスの条件とは、キーワードが存在する階層を示すパスの条件であって、例えば、図2に示した「/news//name」である。   The query Q is information including a keyword and a path condition corresponding to the keyword. The keyword is a character string that is collated with the character string of the input stream S, and is, for example, the character string “Bob” illustrated in FIG. The path is information indicating the position of an arbitrary tag, and is a path from the top layer of the input stream S to the layer indicated by the arbitrary tag. For example, the path of the start tag <news> shown in FIG. 2 is a path “/ news” from the root indicating the 0th hierarchy, which is the highest hierarchy, to the first hierarchy indicated by the start tag <news>. The path condition is a path condition indicating a hierarchy in which the keyword exists, and is, for example, “/ news // name” illustrated in FIG.

「/news//name」は、第0階層のルート⇒第1階層「news」⇒任意の階層「name」のパスを示す。したがって、例えば、パス「/news/name」やパス「/news/write/name」やパス「/news/name/write/name」などが、クエリQ内のキーワードに対応するパスの条件を満たす。   “/ News // name” indicates the path of the root of the 0th layer → the first layer “news” → the arbitrary layer “name”. Therefore, for example, the path “/ news / name”, the path “/ news / write / name”, the path “/ news / name / write / name”, and the like satisfy the conditions of the path corresponding to the keyword in the query Q.

オートマトンAとは、例えば、少なくとも、初期状態と、開始タグ記号を示す開始状態と、終了タグ記号を示す終了状態とが規定された情報である。オートマトンAには、さらに、条件を満たすパスを示すパス照合状態が複数規定されていてもよいし、パス照合状態からの遷移先状態としてキーワード照合途中状態とキーワード照合完了状態とが規定されていてもよい。   The automaton A is information defining, for example, at least an initial state, a start state indicating a start tag symbol, and an end state indicating an end tag symbol. The automaton A may further include a plurality of path collation states indicating paths that satisfy the condition, and a keyword collation intermediate state and a keyword collation completion state are defined as transition destination states from the path collation state. Also good.

読込部4301は、入力ストリームSを先頭から読み込む。読込部4301は、例えば、図11に示したように、入力ストリームSのレコード1の先頭データである開始タグ<news>が受信され、第1バッファb1に書き込まれると、<news>を読み込む。そして、読込部4301は、読み込んだ開始タグ<news>を、「[1」に変換して、第2バッファb2に書き込む。   The reading unit 4301 reads the input stream S from the top. For example, as illustrated in FIG. 11, the reading unit 4301 receives <news> when the start tag <news>, which is the first data of the record 1 of the input stream S, is received and written to the first buffer b1. Then, the reading unit 4301 converts the read start tag <news> into “[1” and writes it in the second buffer b2.

読込部4301は、例えば、図42に示した記憶装置4202に記憶されたプログラムをプロセッサ4201に実行させることにより、その機能を実現する。これにより、読込部4301は、特定部4302に処理させるデータを読み込むことができる。   The reading unit 4301 realizes its function by causing the processor 4201 to execute a program stored in the storage device 4202 illustrated in FIG. 42, for example. Thereby, the reading unit 4301 can read data to be processed by the specifying unit 4302.

特定部4302は、読込部4301によって入力ストリームS内の開始タグが読み込まれると、入力ストリームSの最上階層から開始タグが示す階層までのパスを特定する。特定部4302は、例えば、開始タグ<news>が受信され、読込部4301によって第2バッファに書き込まれると、現在のパス「/news」を特定して、第3バッファb3に書き込む。また、特定部4302は、特定したパスが、パスID管理テーブルTに登録されていないパスである場合は、パスID管理テーブルTに、パスID「1」、第3バッファb3内のパス「/news」、累計回数「(なし)」、フラグ「(なし)」のレコードを登録する。   When the start tag in the input stream S is read by the reading unit 4301, the specifying unit 4302 specifies a path from the highest layer of the input stream S to the layer indicated by the start tag. For example, when the start tag <news> is received and written to the second buffer by the reading unit 4301, the specifying unit 4302 specifies the current path “/ news” and writes it to the third buffer b3. If the identified path is not registered in the path ID management table T, the identifying unit 4302 stores the path ID “1” and the path “/” in the third buffer b3 in the path ID management table T. records of “news”, cumulative number of times “(none)”, and flag “(none)” are registered.

また、特定部4302は、読込部4301によって入力ストリームS内の終了タグが読み込まれると、現在のパスが示す階層の上位階層を示すパスを特定する。特定部4302は、例えば、終了タグ</news>が受信され、読込部4301によって第2バッファに書き込まれると、第3バッファに書き込まれた現在のパス「/news」を取得する。次に、特定部4302は、取得した現在のパス「/news」から、「/」と終了タグ</news>のタグ内文字列「news」とを削除して、上位階層である第0階層を示すパス「(なし)」を特定して、第3バッファb3に書き込む。   Further, when the reading unit 4301 reads the end tag in the input stream S, the specifying unit 4302 specifies a path indicating an upper layer of the layer indicated by the current path. For example, when the end tag </ news> is received and written to the second buffer by the reading unit 4301, the specifying unit 4302 obtains the current path “/ news” written to the third buffer. Next, the identifying unit 4302 deletes “/” and the in-tag character string “news” of the end tag </ news> from the acquired current path “/ news”, and the 0th hierarchy that is the upper hierarchy. The path “(None)” indicating is written to the third buffer b3.

特定部4302は、例えば、図42に示した記憶装置4202に記憶されたプログラムをプロセッサ4201に実行させることにより、その機能を実現する。これにより、検出部4303は、特定部4302によって特定されたパスを取得して、クエリQのパスの条件を満たすか否かを判定することができる。   The specifying unit 4302 realizes its function by causing the processor 4201 to execute a program stored in the storage device 4202 illustrated in FIG. 42, for example. Thus, the detection unit 4303 can acquire the path specified by the specifying unit 4302 and determine whether or not the path condition of the query Q is satisfied.

検出部4303は、特定部4302によって特定されたパスが条件を満たすか否かを判定することにより、条件を満たすパスを検出する。検出部4303は、例えば、特定部4302によって特定されたパスが「/news」である場合には、パスの条件「/news//name」を満たさないと判定して、検出しない。一方で、検出部4303は、例えば、特定部4302によって特定されたパスが「/news/name」である場合には、パスの条件「/news//name」を満たすと判定して、パス「/news/name」を検出する。   The detection unit 4303 detects a path that satisfies the condition by determining whether the path specified by the specifying unit 4302 satisfies the condition. For example, when the path specified by the specifying unit 4302 is “/ news”, the detection unit 4303 determines that the path condition “/ news // name” is not satisfied, and does not detect it. On the other hand, for example, when the path specified by the specifying unit 4302 is “/ news / name”, the detection unit 4303 determines that the path condition “/ news // name” is satisfied, and the path “ / News / name "is detected.

検出部4303は、例えば、図42に示した記憶装置4202に記憶されたプログラムをプロセッサ4201に実行させることにより、その機能を実現する。これにより、第1の計数部4304は、検出部4303によってパスが検出された累積回数を計数することができる。   The detection unit 4303 realizes its function by causing the processor 4201 to execute a program stored in the storage device 4202 illustrated in FIG. 42, for example. Accordingly, the first counting unit 4304 can count the cumulative number of times that the path is detected by the detecting unit 4303.

第1の計数部4304は、検出部4303によって入力ストリームSから条件を満たすパスが検出されるたびに、条件を満たすパスごとの検出回数を計数する。第1の計数部4304は、例えば、検出部4303によって開始タグが示すパス「/news/name」が検出された場合には、パスID管理テーブルTのパス「/news/name」に対応する累積回数をインクリメントする。一方で、第1の計数部4304は、検出部4303によって終了タグが示すパス「/news/name」が検出された場合には、パスID管理テーブルTのパス「/news/name」に対応する累積回数をインクリメントしなくてもよい。   The first counting unit 4304 counts the number of detections for each path that satisfies the condition every time the detection unit 4303 detects a path that satisfies the condition from the input stream S. For example, if the detection unit 4303 detects the path “/ news / name” indicated by the start tag, the first counting unit 4304 accumulates corresponding to the path “/ news / name” in the path ID management table T. Increment the number of times. On the other hand, when the detection unit 4303 detects the path “/ news / name” indicated by the end tag, the first counting unit 4304 corresponds to the path “/ news / name” in the path ID management table T. It is not necessary to increment the cumulative number.

また、第1の計数部4304は、検出部4303によって開始タグが示すパス「/news/name」が検出された場合には、パスID管理テーブルTのパス「/news/name」に対応するフラグに「開始」を設定する。第1の計数部4304は、例えば、検出部4303によって終了タグが示すパス「/news/name」が検出された場合には、パスID管理テーブルTのパス「/news/name」に対応するフラグを「終了」に設定する。また、第1の計数部4304は、最新の所定回数分の条件を満たすパスの検出回数のうちの条件を満たすパスごとの検出回数を計数してもよい。第1の計数部4304は、例えば、上述したようにパスID管理テーブルTの累計回数を頻度管理テーブルFにより修正する。   In addition, when the detection unit 4303 detects the path “/ news / name” indicated by the start tag, the first counting unit 4304 has a flag corresponding to the path “/ news / name” in the path ID management table T. Set to “Start”. For example, when the detection unit 4303 detects the path “/ news / name” indicated by the end tag, the first counting unit 4304 has a flag corresponding to the path “/ news / name” in the path ID management table T. Set to “End”. The first counting unit 4304 may count the number of detections for each path that satisfies the condition among the number of detections of the path that satisfy the latest predetermined number of times. For example, the first counting unit 4304 corrects the cumulative number of times in the path ID management table T by the frequency management table F as described above.

第1の計数部4304は、例えば、図42に示した記憶装置4202に記憶されたプログラムをプロセッサ4201に実行させることにより、その機能を実現する。これにより、更新部4306は、第1の計数部4304によって計数された検出回数に基づいてオートマトンAを更新することができる。   The first counting unit 4304 realizes its function by causing the processor 4201 to execute a program stored in the storage device 4202 illustrated in FIG. 42, for example. Accordingly, the update unit 4306 can update the automaton A based on the number of detections counted by the first counting unit 4304.

第2の計数部4305は、オートマトンAに規定されたパス照合状態ごとに開始状態から当該パス照合状態に遷移が行われた遷移回数を計数する。第2の計数部4305は、照合処理装置100によってオートマトンAが走査され、オートマトンAに規定されたパス照合状態に遷移が行われた場合に、遷移が行われたパス照合状態のノードカウンタをインクリメントする。   The second counting unit 4305 counts the number of times of transition from the start state to the path matching state for each path matching state defined in the automaton A. When the automaton A is scanned by the matching processing device 100 and a transition is made to the path matching state defined in the automaton A, the second counting unit 4305 increments the node counter in the path matching state in which the transition has been performed. To do.

第2の計数部4305は、例えば、図42に示した記憶装置4202に記憶されたプログラムをプロセッサ4201に実行させることにより、その機能を実現する。これにより、更新部4306は、第2の計数部4305によって計数された遷移回数に基づいてオートマトンAを更新することができる。   For example, the second counting unit 4305 realizes its function by causing the processor 4201 to execute a program stored in the storage device 4202 illustrated in FIG. 42. Accordingly, the update unit 4306 can update the automaton A based on the number of transitions counted by the second counting unit 4305.

更新部4306は、オートマトンAに、条件を満たすパスを示す新たなパス照合状態を追加する場合、計数した検出回数に基づいて、オートマトンAを更新する。更新部4306は、例えば、オートマトンAに規定されたパス照合状態が所定数以上ある場合には、オートマトンAを更新する。更新部4306は、具体的には、オートマトンAに規定されたパス照合状態のうち、計数した検出回数が相対的に少ない条件を満たすパスを示すパス照合状態を削除する   The update unit 4306 updates the automaton A based on the counted number of detections when adding a new path matching state indicating a path that satisfies the condition to the automaton A. The update unit 4306 updates the automaton A when, for example, there are a predetermined number or more of path collation states defined in the automaton A. Specifically, the update unit 4306 deletes a path matching state indicating a path satisfying a condition with a relatively small number of detected counts among the path matching states defined in the automaton A.

また、更新部4306は、条件を満たすパスを検出した場合であって、オートマトンAに規定されたパス照合状態が所定数より少ない場合には、検出した条件を満たすパスを示すパス照合状態をオートマトンAに追加することにより、オートマトンAを更新する。   In addition, when the update unit 4306 detects a path satisfying the condition and the number of path matching states defined in the automaton A is smaller than a predetermined number, the update unit 4306 sets the path matching state indicating the detected path to the automaton. By adding to A, automaton A is updated.

上述したパス照合状態をオートマトンAから削除する処理と、上述したパス照合状態をオートマトンAに追加する処理と、を実行する順序は、削除する処理が先であってもよいし、追加する処理が先であってもよい。更新部4306は、例えば、図42に示した記憶装置4202に記憶されたプログラムをプロセッサ4201に実行させることにより、その機能を実現する。これにより、更新部4306は、照合処理装置100の第1の動作例を実現することができる。   The process of deleting the path matching state described above from the automaton A and the process of adding the path matching state described above to the automaton A may be executed first or the process of adding may be performed. It may be the destination. The update unit 4306 realizes its function by causing the processor 4201 to execute a program stored in the storage device 4202 illustrated in FIG. 42, for example. As a result, the update unit 4306 can realize the first operation example of the verification processing apparatus 100.

また、更新部4306は、計数した遷移回数に基づいて、オートマトンAに規定されたパス照合状態のうちで、計数した検出回数が同一の第1および第2のパス照合状態のいずれかを削除することにより、オートマトンAを更新してもよい。これにより、更新部4306は、照合処理装置100の第2の動作例を実現することができる。   Further, the update unit 4306 deletes one of the first and second path matching states having the same counted number of detections among the path matching states defined in the automaton A based on the counted number of transitions. Accordingly, the automaton A may be updated. Thereby, the update unit 4306 can realize the second operation example of the verification processing apparatus 100.

更新部4306は、例えば、オートマトンAに規定されたパス照合状態が所定数以上ある場合には、オートマトンAを更新する。更新部4306は、具体的には、オートマトンAに規定されたパス照合状態であって、読み込まれた開始タグに対応する終了タグが読み込まれたパス照合状態のうち、計数した検出回数が相対的に少ないパスを示すパス照合状態を削除する。これにより、更新部4306は、照合処理装置100の第3の動作例を実現することができる。   The update unit 4306 updates the automaton A when, for example, there are a predetermined number or more of path collation states defined in the automaton A. Specifically, the update unit 4306 is in a path matching state defined in the automaton A, and among the path matching states in which the end tag corresponding to the read start tag is read, the counted number of detections is relative. Delete path verification states that indicate fewer paths. Thereby, the update unit 4306 can realize the third operation example of the verification processing apparatus 100.

<更新処理手順>
図44は、照合処理装置100の更新処理の処理手順の一例を示すフローチャートである。
<Update procedure>
FIG. 44 is a flowchart illustrating an example of a processing procedure of update processing of the verification processing device 100.

まず、照合処理装置100は、初期オートマトンA0があるか否かを判断する(ステップS4401)。初期オートマトンA0がない場合(ステップS4401:No)、照合処理装置100は、初期化を実行する(ステップS4402)。初期化では、照合処理装置100は、記憶装置内のパスID管理テーブルTを空にする。   First, the verification processing apparatus 100 determines whether or not there is an initial automaton A0 (step S4401). When there is no initial automaton A0 (step S4401: No), the collation processing apparatus 100 executes initialization (step S4402). In initialization, the verification processing device 100 empties the path ID management table T in the storage device.

次に、照合処理装置100は、初期オートマトン構築処理を実行して(ステップS4403)、ステップS4405に移行する。初期オートマトン構築処理(ステップS4403)では、初期オートマトンA0が構築される。初期オートマトン構築処理(ステップS4403)の処理については図45を用いて後述する。   Next, the matching processing device 100 executes an initial automaton construction process (step S4403), and proceeds to step S4405. In the initial automaton construction process (step S4403), the initial automaton A0 is constructed. The initial automaton construction process (step S4403) will be described later with reference to FIG.

一方で、初期オートマトンA0がある場合(ステップS4401:Yes)、照合処理装置100は、記憶装置から初期オートマトンA0を取得して(ステップS4404)、ステップS4405に移行する。ステップS4405において、照合処理装置100は、初期オートマトンA0を走査対象のオートマトンAに決定する(ステップS4405)。   On the other hand, if there is an initial automaton A0 (step S4401: YES), the verification processing apparatus 100 acquires the initial automaton A0 from the storage device (step S4404), and proceeds to step S4405. In step S4405, the collation processing apparatus 100 determines the initial automaton A0 as the automaton A to be scanned (step S4405).

このあと、照合処理装置100は、入力ストリームSを待ち受ける(ステップS4406:No)。入力ストリームSが受信された場合(ステップS4406:Yes)、照合処理装置100は、入力ストリームSの先頭位置を現在の読込位置Scurに設定する(ステップS4407)。   Thereafter, the verification processing apparatus 100 waits for the input stream S (step S4406: No). When the input stream S is received (step S4406: YES), the collation processing apparatus 100 sets the head position of the input stream S to the current reading position Scur (step S4407).

そして、照合処理装置100は、現在の読込位置Scurのデータが、開始タグか文字か終了タグかを判断する(ステップS4408)。開始タグである場合(ステップS4408:開始タグ)、照合処理装置100は、第1の走査処理を実行して(ステップS4409)ステップS4408に戻る。第1の走査処理(ステップS4409)の詳細については図46を用いて後述する。   Then, the verification processing apparatus 100 determines whether the data at the current reading position Scur is a start tag, a character, or an end tag (step S4408). If it is a start tag (step S4408: start tag), the collation processing apparatus 100 executes the first scanning process (step S4409) and returns to step S4408. Details of the first scanning process (step S4409) will be described later with reference to FIG.

文字である場合(ステップS4408:文字)、照合処理装置100は、第2の走査処理を実行して(ステップS4410)ステップS4408に戻る。第2の走査処理(ステップS4410)の詳細については図51を用いて後述する。   If it is a character (step S4408: character), the collation processing apparatus 100 executes the second scanning process (step S4410) and returns to step S4408. Details of the second scanning process (step S4410) will be described later with reference to FIG.

終了タグである場合(ステップS4408:終了タグ)、照合処理装置100は、第3の走査処理を実行して(ステップS4411)ステップS4408に戻る。第3の走査処理(ステップS4411)の詳細については図52を用いて後述する。   If it is an end tag (step S4408: end tag), the collation processing device 100 executes a third scanning process (step S4411) and returns to step S4408. Details of the third scanning process (step S4411) will be described later with reference to FIG.

一方で、ステップS4408において、現在の読込位置Scurがない場合(ステップS4408:なし)、照合処理装置100は、現在の読込位置がない状態から一定時間が経過したか否かを判断する(ステップS4412)。一定時間経過していない場合(ステップS4412:No)、ステップS4408に戻る。これにより、入力ストリームSのデータ受信を待ち受けることになる。一方で、一定時間経過した場合(ステップS4412:Yes)、照合処理装置100は、更新処理を終了する。   On the other hand, in step S4408, when there is no current reading position Scur (step S4408: none), the collation processing device 100 determines whether or not a certain time has elapsed since there is no current reading position (step S4412). ). If the predetermined time has not elapsed (step S4412: NO), the process returns to step S4408. As a result, data reception of the input stream S is awaited. On the other hand, when the fixed time has elapsed (step S4412: Yes), the matching processing device 100 ends the update process.

<初期オートマトン構築処理>
図45は、図44に示した初期オートマトン構築処理(ステップS4403)の処理手順の一例を示すフローチャートである。
<Initial automaton construction process>
FIG. 45 is a flowchart showing an example of the processing procedure of the initial automaton construction process (step S4403) shown in FIG.

照合処理装置100は、初期状態N0、開始状態N1および終了状態N2を作成し(ステップS4501)、作成した各状態の遷移先の初期値を初期状態N0に設定する(ステップS4502)。これにより、図7に示したように、初期オートマトンA0が構築される。構築された初期オートマトンA0は、記憶装置に記憶される。   The verification processing device 100 creates an initial state N0, a start state N1, and an end state N2 (step S4501), and sets the initial value of the created transition destination of each state to the initial state N0 (step S4502). As a result, the initial automaton A0 is constructed as shown in FIG. The constructed initial automaton A0 is stored in the storage device.

<第1の走査処理>
図46は、図44に示した第1の走査処理(ステップS4409)の処理手順の一例を示すフローチャートである。
<First scanning process>
FIG. 46 is a flowchart illustrating an example of a processing procedure of the first scanning process (step S4409) illustrated in FIG.

照合処理装置100は、読み込まれた開始タグをバイナリ変換する(ステップS4601)。例えば、図3に示したように、開始タグ<news>が読み込まれた場合、「[1」に変換する。   The verification processing apparatus 100 performs binary conversion on the read start tag (step S4601). For example, as shown in FIG. 3, when the start tag <news> is read, it is converted to "[1".

照合処理装置100は、現在のパスpに、「/t」を追加する(ステップS4602)。「/」は階層の境界を示す記号である。tはタグ内文字列である。例えば、開始タグ<news>が読み込まれた場合、pは、p=/newsとなる。また、現在のパスが「/news/write」である場合に、開始タグ<name>が読み込まれた場合、pは、p=/news/write/nameとなる。   The verification processing apparatus 100 adds “/ t” to the current path p (step S4602). “/” Is a symbol indicating a hierarchy boundary. t is a character string in the tag. For example, when the start tag <news> is read, p becomes p = / news. When the current path is “/ news / write” and the start tag <name> is read, p becomes p = / news / write / name.

そして、照合処理装置100は、パスID管理テーブルTを参照して、パスID管理テーブルTに、現在のパスpが存在するか否かを判断する(ステップS4603)。パスID管理テーブルTに現在のパスpがある場合(ステップS4603:Yes)、ステップS4608に移行する。   Then, the verification processing device 100 refers to the path ID management table T and determines whether or not the current path p exists in the path ID management table T (step S4603). If the current path p is present in the path ID management table T (step S4603: YES), the process proceeds to step S4608.

一方で、パスID管理テーブルTに現在のパスpがない場合(ステップS4603:No)、照合処理装置100は、パスID管理テーブルTに現在のパスpを追加して、パスpに新たなパスIDを割り当てる(ステップS4604)。例えば、パスID管理テーブルTが空の状態で開始タグ<news>が読み込まれた場合、パスID「1」、パスp=/newsを追加する。   On the other hand, when there is no current path p in the path ID management table T (step S4603: No), the verification processing apparatus 100 adds the current path p to the path ID management table T and adds a new path to the path p. An ID is assigned (step S4604). For example, when the start tag <news> is read while the path ID management table T is empty, the path ID “1” and the path p = / news are added.

そして、照合処理装置100は、現在のパスpがクエリQの条件にマッチするか否かを判断する(ステップS4605)。マッチする場合(ステップS4605:Yes)、照合処理装置100は、第1の更新処理を実行して(ステップS4606)、ステップS4608に移行する。第1の更新処理(ステップS4606)の詳細については図47を用いて後述する。   Then, the verification processing apparatus 100 determines whether or not the current path p matches the query Q condition (step S4605). If a match is found (step S4605: YES), the collation processing device 100 executes the first update process (step S4606), and proceeds to step S4608. Details of the first update process (step S4606) will be described later with reference to FIG.

一方で、マッチしない場合(ステップS4605:No)、照合処理装置100は、第2の更新処理を実行して(ステップS4607)、ステップS4608に移行する。第2の更新処理(ステップS4607)の詳細については図49を用いて後述する。   On the other hand, when there is no match (step S4605: No), the collation processing device 100 executes the second update process (step S4607), and proceeds to step S4608. Details of the second update process (step S4607) will be described later with reference to FIG.

次に、照合処理装置100は、走査対象のオートマトンAの現在の読込位置Acurから「[i」について遷移させ、遷移先を新たな読込位置Acurにする(ステップS4608)。iは、pに対応するパスIDである。そして、照合処理装置100は、累計回数更新処理を実行する(ステップS4609)。累計回数更新処理の詳細については図50を用いて後述する。   Next, the collation processing device 100 makes a transition for “[i” from the current reading position Acur of the automaton A to be scanned, and sets the transition destination to a new reading position Acur (step S4608). i is a path ID corresponding to p. Then, the verification processing device 100 executes the cumulative number update process (step S4609). Details of the cumulative number update process will be described later with reference to FIG.

次に、照合処理装置100は、パスID管理テーブルTにおける現在のパスIDに対応する前回項目に「開始」を設定する(ステップS4610)。そして、照合処理装置100は、入力ストリームSの現在の読込位置Scurを開始タグの文字列長分加算して現在の読込位置Scurを更新し(ステップS4611)、第1の走査処理を終了する。   Next, the verification processing apparatus 100 sets “start” in the previous item corresponding to the current path ID in the path ID management table T (step S4610). Then, the verification processing apparatus 100 adds the current reading position Scur of the input stream S by the character string length of the start tag to update the current reading position Scur (step S4611), and ends the first scanning process.

<第1の更新処理>
図47は、図46に示した第1の更新処理(ステップS4606)の処理手順の一例を示すフローチャートである。
<First update process>
FIG. 47 is a flowchart illustrating an example of a processing procedure of the first update processing (step S4606) illustrated in FIG.

照合処理装置100は、オートマトンAに新規状態を追加できるか否かを判定する(ステップS4701)。ここで、追加できない場合(ステップS4701:No)、照合処理装置100は、削除処理を実行し(ステップS4702)、ステップS4703に移行する。削除処理の詳細については図48を用いて後述する。一方で、追加できる場合(ステップS4701:Yes)、照合処理装置100は、ステップS4703に移行する。   The verification processing apparatus 100 determines whether or not a new state can be added to the automaton A (step S4701). Here, when it cannot add (step S4701: No), the collation processing apparatus 100 performs a deletion process (step S4702), and transfers to step S4703. Details of the deletion process will be described later with reference to FIG. On the other hand, when it can add (step S4701: Yes), collation processing device 100 shifts to step S4703.

ステップS4703において、照合処理装置100は、パスID「i」に対応するパス照合状態Vを作成する(ステップS4703)。次に、照合処理装置100は、作成したパス照合状態Vからの「[」に関する遷移先を開始状態N1に設定し、「]」に関する遷移先を終了状態N2に設定する。そして、照合処理装置100は、作成したパス照合状態Vからのそれ以外の遷移先として、自分自身を設定する(ステップS4704)。   In step S4703, the matching processing apparatus 100 creates a path matching state V corresponding to the path ID “i” (step S4703). Next, the verification processing apparatus 100 sets the transition destination related to “[” from the created path verification status V to the start state N1, and sets the transition destination related to “]” to the end state N2. Then, the matching processing device 100 sets itself as the other transition destination from the created path matching state V (step S4704).

次に、照合処理装置100は、開始状態N1のパスID「i」に関する遷移先を初期状態N0からパス照合状態Vに変更する(ステップS4705)。また、照合処理装置100は、クエリQ内のキーワードkに関するキーワード状態を作成し、キーワード状態の間の遷移を設定する(ステップS4706)。キーワード状態とは、キーワードの各文字を遷移とした場合の遷移先状態であり、例えば、キーワード照合途中状態N4,N5およびキーワード照合完了状態N6である。   Next, the verification processing device 100 changes the transition destination for the path ID “i” in the start state N1 from the initial state N0 to the path verification state V (step S4705). In addition, the matching processing device 100 creates a keyword state related to the keyword k in the query Q and sets a transition between the keyword states (step S4706). The keyword state is a transition destination state when each character of the keyword is transitioned, and is, for example, a keyword collation intermediate state N4, N5 and a keyword collation completion state N6.

次に、照合処理装置100は、パス照合状態Vからキーワードkの先頭文字に対応する状態への遷移を設定する(ステップS4707)。そして、照合処理装置100は、キーワードkの末尾文字に対応する状態を、キーワード照合完了状態N6として設定する(ステップS4708)。これにより、図16に示したように、初期オートマトンA0がオートマトンA1に更新される。   Next, the matching processing device 100 sets a transition from the path matching state V to a state corresponding to the first character of the keyword k (step S4707). Then, the matching processing device 100 sets the state corresponding to the last character of the keyword k as the keyword matching completion state N6 (step S4708). As a result, as shown in FIG. 16, the initial automaton A0 is updated to the automaton A1.

<削除処理>
図48は、図47に示した削除処理(ステップS4702)の処理手順の一例を示すフローチャートである。
<Delete processing>
FIG. 48 is a flowchart illustrating an example of a processing procedure of the deletion process (step S4702) illustrated in FIG.

照合処理装置100は、現在のオートマトンAに規定されたパス照合状態を取得し、パス照合状態により特定されるパスIDの集合Sを取得する(ステップS4801)。次に、照合処理装置100は、集合Sのうち、パスID管理テーブルTの累積回数が最小になるパスIDを特定する(ステップS4802)。   The verification processing apparatus 100 acquires the path verification status defined in the current automaton A, and acquires a set S of path IDs specified by the path verification status (step S4801). Next, the verification processing device 100 identifies a path ID that minimizes the cumulative number of times in the path ID management table T in the set S (step S4802).

そして、照合処理装置100は、特定したパスIDが2つ以上あるか否かを判定する(ステップS4803)。ここで、パスIDが1つである場合(ステップS4803:No)、照合処理装置100は、ステップS4806に移行する。   Then, the verification processing apparatus 100 determines whether there are two or more specified path IDs (step S4803). Here, when there is one path ID (step S4803: No), the verification processing apparatus 100 proceeds to step S4806.

一方で、パスIDが2つ以上ある場合(ステップS4803:Yes)、照合処理装置100は、特定した2つ以上のパスIDのうち、ノードカウンタが最小になるパスIDを特定する(ステップS4804)。次に、照合処理装置100は、特定したパスIDのうち、ランダムに一つのパスIDを特定する(ステップS4805)。そして、照合処理装置100は、ステップS4806に移行する。   On the other hand, when there are two or more path IDs (step S4803: Yes), the collation processing apparatus 100 identifies a path ID that minimizes the node counter among the identified two or more path IDs (step S4804). . Next, the verification processing device 100 randomly specifies one path ID among the specified path IDs (step S4805). Then, the verification processing apparatus 100 proceeds to step S4806.

ステップS4806において、照合処理装置100は、特定したパスIDを特定するパス照合状態を削除する(ステップS4806)。次に、照合処理装置100は、削除処理を終了する。   In step S4806, the matching processing device 100 deletes the path matching status that identifies the identified path ID (step S4806). Next, the verification processing apparatus 100 ends the deletion process.

<第2の更新処理>
図49は、図46に示した第2の更新処理(ステップS4607)の処理手順の一例を示すフローチャートである。
<Second update process>
FIG. 49 is a flowchart illustrating an example of a processing procedure of the second update process (step S4607) illustrated in FIG.

照合処理装置100は、現在のパスpから末尾のタグである「/t」を取り除いて得られるパスをパスparとし、パスparに対応するパスIDをjとする(ステップS4901)。   The verification processing apparatus 100 sets a path obtained by removing the last tag “/ t” from the current path p as a path par, and sets a path ID corresponding to the path par as j (step S4901).

次に、照合処理装置100は、パスID「j」を特定するパス照合状態がオートマトンAに規定されているか否かを判定する(ステップS4902)。ここで、規定されていない場合(ステップS4902:No)、照合処理装置100は、第2の更新処理を終了する。   Next, the matching processing device 100 determines whether or not the path matching state for specifying the path ID “j” is defined in the automaton A (step S4902). Here, when not prescribed | regulated (step S4902: No), the collation processing apparatus 100 complete | finishes a 2nd update process.

一方で、規定されている場合(ステップS4902:Yes)、照合処理装置100は、パスID「j」に対応するパス照合状態N3をwとし(ステップS4903)、終了状態N2のiに関する遷移先を、初期状態N0からパス照合状態wに変更する(ステップS4904)。これにより、図20に示したように、オートマトンAがオートマトンA1からオートマトンA2に更新される。   On the other hand, when defined (step S4902: Yes), the verification processing device 100 sets the path verification state N3 corresponding to the path ID “j” to w (step S4903), and sets the transition destination for i in the end state N2. Then, the initial state N0 is changed to the path verification state w (step S4904). Accordingly, as shown in FIG. 20, the automaton A is updated from the automaton A1 to the automaton A2.

<累計回数更新処理>
図50は、図46に示した累計回数更新処理(ステップS4609)の処理手順の一例を示すフローチャートである。
<Cumulative number update process>
FIG. 50 is a flowchart illustrating an example of a processing procedure of the cumulative number updating process (step S4609) illustrated in FIG.

照合処理装置100は、AcurがパスID照合状態か否かを判定する(ステップS5001)。ここで、パスID照合状態でない場合(ステップS5001:No)、照合処理装置100は、累計回数更新処理を終了する。   The verification processing apparatus 100 determines whether Acur is in the path ID verification state (step S5001). Here, when it is not in the path ID collation state (step S5001: No), the collation processing apparatus 100 ends the cumulative number update process.

一方で、パスID照合状態である場合(ステップS5001:Yes)、照合処理装置100は、Acurのノードカウンタを更新する(ステップS5002)。次に、照合処理装置100は、パスID管理テーブルTにおけるAcurのパスIDに対応する累計回数を更新する(ステップS5003)。   On the other hand, when it is in the path ID collation state (step S5001: Yes), the collation processing apparatus 100 updates the Acur node counter (step S5002). Next, the verification processing apparatus 100 updates the cumulative number corresponding to the Acur path ID in the path ID management table T (step S5003).

そして、照合処理装置100は、頻度管理テーブルFに空き領域があるか否かを判定する(ステップS5004)。ここで、空き領域がない場合(ステップS5004:No)、照合処理装置100は、頻度管理テーブルFの先頭データを取得する(ステップS5005)。次に、照合処理装置100は、パスID管理テーブルTにおける先頭データが示すパスIDに対応する累計回数を更新する(ステップS5006)。そして、照合処理装置100は、ステップS5007に移行する。   Then, the verification processing device 100 determines whether or not there is a free area in the frequency management table F (step S5004). Here, when there is no free space (step S5004: No), the collation processing apparatus 100 acquires the top data of the frequency management table F (step S5005). Next, the verification processing apparatus 100 updates the cumulative number corresponding to the path ID indicated by the head data in the path ID management table T (step S5006). Then, the verification processing apparatus 100 proceeds to step S5007.

一方で、空き領域がある場合(ステップS5004:Yes)、照合処理装置100は、ステップS5007に移行する。ステップS5007において、照合処理装置100は、AcurのパスIDを頻度管理テーブルFに末尾データとして追加する(ステップS5007)。ここで、頻度管理テーブルFのレコード数が上限に達している場合、パスIDが末尾データとして追加されると、先頭データが削除される。そして、照合処理装置100は、累計回数更新処理を終了する。   On the other hand, when there is a free area (step S5004: Yes), the verification processing apparatus 100 proceeds to step S5007. In step S5007, the verification processing apparatus 100 adds the Acur path ID as tail data to the frequency management table F (step S5007). Here, when the number of records in the frequency management table F has reached the upper limit, the head data is deleted when the path ID is added as the tail data. Then, the verification processing device 100 ends the cumulative number update process.

<第2の走査処理>
図51は、図44に示した第2の走査処理(ステップS4410)の処理手順の一例を示すフローチャートである。
<Second scanning process>
FIG. 51 is a flowchart showing an example of the processing procedure of the second scanning process (step S4410) shown in FIG.

照合処理装置100は、オートマトンAの現在の読込位置Acurから、今回読み込まれた文字について遷移させ、遷移先を新たなAcurにする(ステップS5101)。以下の説明では、今回読み込まれた文字を、「文字c」と表記する場合がある。そして、照合処理装置100は、現在の読込位置Acurが示す状態がキーワード照合完了状態N6であるか否かを判断する(ステップS5102)。   The verification processing device 100 makes a transition for the character read this time from the current reading position Acur of the automaton A, and sets the transition destination to a new Acur (step S5101). In the following description, the character read this time may be referred to as “character c”. Then, the matching processing device 100 determines whether or not the state indicated by the current reading position Acur is the keyword matching completed state N6 (step S5102).

キーワード照合完了状態N6である場合(ステップS5102:Yes)、照合処理装置100は、クエリQ照合結果AnsとなるクエリQのキーワードkを出力して(ステップS5103)、ステップS5104に移行する。   When it is the keyword collation completion state N6 (step S5102: Yes), the collation processing apparatus 100 outputs the keyword k of the query Q that becomes the query Q collation result Ans (step S5103), and proceeds to step S5104.

一方で、キーワード照合完了状態N6でない場合(ステップS5102:No)、ステップS5104に移行する。ステップS5104において、照合処理装置100は、入力ストリームSの現在の読込位置ScurをScur=Scur+1に更新する(ステップS5104)。すなわち、照合処理装置100は、1文字分読込位置Scurを進める。これにより、第2の走査処理(ステップS4410)を終了する。   On the other hand, when it is not the keyword matching completion state N6 (step S5102: No), the process proceeds to step S5104. In step S5104, the collation processing apparatus 100 updates the current reading position Scur of the input stream S to Scur = Scur + 1 (step S5104). That is, the verification processing apparatus 100 advances the reading position Scur for one character. Thus, the second scanning process (step S4410) is terminated.

<第3の走査処理>
図52は、図44に示した第3の走査処理(ステップS4411)の処理手順の一例を示すフローチャートである。
<Third scanning process>
FIG. 52 is a flowchart showing an example of the processing procedure of the third scanning process (step S4411) shown in FIG.

照合処理装置100は、読み込まれた終了タグをバイナリ変換する(ステップS5201)。例えば、図3に示したように、終了タグ</news>が読み込まれた場合、「]1」に変換する。   The verification processing apparatus 100 performs binary conversion on the read end tag (step S5201). For example, as shown in FIG. 3, when the end tag </ news> is read, it is converted to "] 1".

照合処理装置100は、オートマトンAの現在の読込位置Acurから「]i」について遷移させ、遷移先を新たな読込位置Acurにする(ステップS5202)。iはpに対応するパスIDである。そして、照合処理装置100は、現在のパスIDに関する前回項目が「開始」であれば、「終了」に更新する(ステップS5203)。   The verification processing device 100 makes a transition from the current reading position Acur of the automaton A to “] i”, and sets the transition destination to a new reading position Acur (step S5202). i is a path ID corresponding to p. If the previous item regarding the current path ID is “start”, the verification processing apparatus 100 updates it to “end” (step S5203).

次に、照合処理装置100は、入力ストリームSの現在の読込位置Scurを終了タグの文字列長分加算して現在の読込位置Scurを更新する(ステップS5204)。そして、照合処理装置100は、現在のパスpの末尾から「/t」を削除したものを新たなパスpとし(ステップS5205)、第3の走査処理を終了する。   Next, the verification processing apparatus 100 updates the current reading position Scur by adding the current reading position Scur of the input stream S by the character string length of the end tag (step S5204). Then, the collation processing device 100 sets a path obtained by deleting “/ t” from the end of the current path p as a new path p (step S5205), and ends the third scanning process.

このように、照合処理装置100によれば、照合処理においてクエリQの条件を満たすパスが検出されるごとにクエリQの条件を満たすパスごとの検出回数を計数し、検出回数に基づいてオートマトンAを更新することができる。これにより、照合処理装置100は、オートマトンAに規定されたパス照合状態のうち、後に走査する可能性が高いパス照合状態を把握して、オートマトンAを更新することができる。   As described above, according to the matching processing device 100, every time a path satisfying the query Q condition is detected in the matching process, the number of detections for each path satisfying the query Q is counted, and the automaton A is based on the number of detections. Can be updated. Thereby, the collation processing apparatus 100 can grasp the path collation state that is highly likely to be scanned later among the path collation states defined in the automaton A, and can update the automaton A.

例えば、照合処理装置100によれば、検出回数が最小のパスを示すパス照合状態を削除することができる。これにより、照合処理装置100は、オートマトンAに規定されたパス照合状態のうち、後に再び走査する可能性が相対的に高いパス照合状態を残すことができる。換言すれば、照合処理装置100は、後に再び走査する可能性が相対的に高いパス照合状態を削除してしまって、後に再び同一のパス照合状態を生成することになってしまうことを防止することができる。結果として、照合処理装置100は、オートマトン更新処理の負荷を低減し、オートマトンAにパス照合状態を生成することによって生じる処理遅延時間を抑制し、オートマトンAを用いたクエリQの照合処理を高速化することができる。   For example, according to the matching processing device 100, the path matching state indicating the path with the smallest number of detections can be deleted. As a result, the verification processing apparatus 100 can leave a path verification state that is relatively likely to be scanned again later among the path verification states defined in the automaton A. In other words, the matching processing device 100 prevents a path matching state that is relatively likely to be scanned again later from being deleted, and subsequently generating the same path matching state again. be able to. As a result, the matching processing device 100 reduces the load of automaton update processing, suppresses processing delay time caused by generating a path matching state in the automaton A, and speeds up the query Q matching processing using the automaton A. can do.

また、例えば、照合処理装置100によれば、検出回数が同一の第1および第2のパスを示す第1および第2のパス照合状態があっても、ノードカウンタが少ないパス照合状態を削除することができる。これにより、照合処理装置100は、オートマトンAに規定されたパス照合状態のうち、後に再び走査する可能性が相対的に高いパス照合状態を残すことができる。換言すれば、照合処理装置100は、後に再び走査する可能性が相対的に高いパス照合状態を削除してしまって、後に再び同一のパス照合状態を生成することになってしまうことを防止することができる。結果として、照合処理装置100は、オートマトン更新処理の負荷を低減し、オートマトンAにパス照合状態を生成することによって生じる処理遅延時間を抑制し、オートマトンAを用いたクエリQの照合処理を高速化することができる。   Further, for example, according to the matching processing device 100, even if there are first and second path matching states indicating the first and second paths having the same number of detections, the path matching state with a small node counter is deleted. be able to. As a result, the verification processing apparatus 100 can leave a path verification state that is relatively likely to be scanned again later among the path verification states defined in the automaton A. In other words, the matching processing device 100 prevents a path matching state that is relatively likely to be scanned again later from being deleted, and subsequently generating the same path matching state again. be able to. As a result, the matching processing device 100 reduces the load of automaton update processing, suppresses processing delay time caused by generating a path matching state in the automaton A, and speeds up the query Q matching processing using the automaton A. can do.

また、例えば、照合処理装置100によれば、前回項目のフラグが「終了」になっているパスを示すパス照合状態のうちで、検出回数が最小のパス照合状態を削除することができる。これにより、照合処理装置100は、近々、終了状態N2から走査されるパス照合状態をオートマトンAに残しておく。したがって、照合処理装置100は、オートマトンAに規定されたパス照合状態のうち、近々、再び走査する可能性が相対的に高いパス照合状態を残すことができる。換言すれば、照合処理装置100は、後に再び走査する可能性が相対的に高いパス照合状態を削除してしまって、後に再び同一のパス照合状態を生成することになってしまうことを防止することができる。結果として、照合処理装置100は、オートマトン更新処理の負荷を低減し、オートマトンAにパス照合状態を生成することによって生じる処理遅延時間を抑制し、オートマトンAを用いたクエリQの照合処理を高速化することができる。   Further, for example, according to the matching processing device 100, the path matching status with the smallest number of detections can be deleted from among the path matching statuses indicating the paths whose previous item flag is “finished”. Thereby, the collation processing apparatus 100 leaves the automaton A in a path collation state scanned from the end state N2 in the near future. Therefore, the verification processing apparatus 100 can leave a path verification state that is relatively likely to be scanned again soon, among the path verification states defined in the automaton A. In other words, the matching processing device 100 prevents a path matching state that is relatively likely to be scanned again later from being deleted, and subsequently generating the same path matching state again. be able to. As a result, the matching processing device 100 reduces the load of automaton update processing, suppresses processing delay time caused by generating a path matching state in the automaton A, and speeds up the query Q matching processing using the automaton A. can do.

また、例えば、照合処理装置100によれば、パスID管理テーブルTの累計回数を頻度管理テーブルFにより修正することができる。これにより、照合処理装置100は、パスIDごとのクエリQの条件を満たす累計回数を、頻度を考慮して計数することができる。例えば、照合処理装置100は、過去にクエリQの条件を満たすと検出された所定回数の中での、パスIDごとのクエリQの条件を満たす累計回数を計数することができる。   Further, for example, according to the verification processing apparatus 100, the cumulative number of times of the path ID management table T can be corrected by the frequency management table F. Thereby, the collation processing apparatus 100 can count the cumulative number that satisfies the condition of the query Q for each path ID in consideration of the frequency. For example, the verification processing apparatus 100 can count the cumulative number of times that satisfy the query Q condition for each path ID among the predetermined number of times detected when the query Q condition is satisfied in the past.

上述した実施の形態に関し、さらに以下の付記を開示する。   The following additional notes are disclosed with respect to the embodiment described above.

(付記1)オートマトンを用いて、タグにより階層化された入力ストリームに対して、キーワードと前記キーワードに対応するパスの条件とを含むクエリの照合を行うコンピュータが、
前記入力ストリームから前記条件を満たすパスを検出するたびに、前記条件を満たすパスごとの検出回数を計数し、
初期状態と、開始タグ記号を示す開始状態と、終了タグ記号を示す終了状態とが規定され、前記条件を満たすパスを示すパス照合状態が複数規定されたオートマトンに、前記条件を満たすパスを示す新たなパス照合状態を追加する場合、計数した前記条件を満たすパスごとの検出回数に基づいて、前記オートマトンを更新する、
処理を実行することを特徴とする更新方法。
(Additional remark 1) The computer which collates the query containing the keyword and the conditions of the path | pass corresponding to the said keyword with respect to the input stream hierarchized by the tag using an automaton,
Each time a path satisfying the condition is detected from the input stream, the number of detections for each path satisfying the condition is counted,
An automaton in which an initial state, a start state indicating a start tag symbol, and an end state indicating an end tag symbol are defined, and a plurality of path matching states indicating paths satisfying the condition are indicated, indicates a path satisfying the condition. When adding a new path matching state, the automaton is updated based on the number of detections for each path that satisfies the counted condition.
An update method characterized by executing processing.

(付記2)前記更新する処理は、
前記オートマトンに規定されたパス照合状態が所定数以上ある場合には、前記オートマトンに規定されたパス照合状態のうち、計数した検出回数が相対的に少ない前記条件を満たすパスを示すパス照合状態を削除することにより、前記オートマトンを更新することを特徴とする付記1に記載の更新方法。
(Appendix 2) The update process is as follows:
When there are a predetermined number or more of path matching states defined for the automaton, among path matching states defined for the automaton, a path matching state indicating a path satisfying the condition with a relatively small number of detected counts. The update method according to appendix 1, wherein the automaton is updated by deleting.

(付記3)前記コンピュータが、
前記入力ストリームを先頭から読み込み、
前記入力ストリーム内の開始タグを読み込むと、前記入力ストリームの最上階層から前記開始タグが示す階層までのパスを特定し、
特定したパスが前記条件を満たすか否かを判定することにより、前記条件を満たすパスを検出する、処理を実行し、
前記計数する処理は、
前記条件を満たすパスを検出した場合には、検出した前記条件を満たすパスの検出回数を計数し、
前記更新する処理は、
前記オートマトンに規定されたパス照合状態が所定数以上ある場合には、前記オートマトンに規定されたパス照合状態であって、読み込まれた開始タグに対応する終了タグが読み込まれたパス照合状態のうち、計数した検出回数が相対的に少ないパスを示すパス照合状態を削除することにより、前記オートマトンを更新する、
ことを特徴とする付記1または2に記載の更新方法。
(Supplementary note 3)
Read the input stream from the beginning,
When the start tag in the input stream is read, the path from the top layer of the input stream to the layer indicated by the start tag is specified,
Detecting a path that satisfies the condition by determining whether or not the identified path satisfies the condition,
The counting process is:
If a path that satisfies the condition is detected, the number of detections of the detected path that satisfies the condition is counted,
The update process is as follows:
If there are a predetermined number or more of path matching states defined in the automaton, the path matching state defined in the automaton is a path matching state in which an end tag corresponding to the read start tag is read. Updating the automaton by deleting a path matching state indicating a path with a relatively small number of detected counts,
The update method according to appendix 1 or 2, characterized in that:

(付記4)前記更新する処理は、
前記条件を満たすパスを検出した場合であって、前記オートマトンに規定されたパス照合状態が所定数より少ない場合には、検出した前記条件を満たすパスを示すパス照合状態を前記オートマトンに追加することにより、前記オートマトンを更新する、
ことを特徴とする付記1〜3のいずれか一つに記載の更新方法。
(Appendix 4) The update process is as follows:
When a path satisfying the condition is detected and the number of path matching states defined in the automaton is less than a predetermined number, a path matching state indicating a path that satisfies the detected condition is added to the automaton. To update the automaton,
The update method according to any one of appendices 1 to 3, wherein:

(付記5)前記コンピュータが、
前記オートマトンに規定されたパス照合状態ごとに前記開始状態から当該パス照合状態に遷移が行われた遷移回数を計数する処理を実行し、
前記更新する処理は、
計数した遷移回数に基づいて、前記オートマトンに規定されたパス照合状態のうちで、計数した検出回数が同一の第1および第2のパス照合状態のいずれかを削除することにより、前記オートマトンを更新することを特徴とする付記1〜4のいずれか一つに記載の更新方法。
(Appendix 5) The computer
For each path matching state defined in the automaton, execute a process of counting the number of transitions made from the start state to the path matching state,
The update process is as follows:
Based on the counted number of transitions, the automaton is updated by deleting one of the first and second path matching states with the same number of detected counts among the path matching states defined for the automaton. The update method according to any one of appendices 1 to 4, wherein:

(付記6)前記検出回数を計数する処理は、前記条件を満たすパスを検出するたびに、最新の所定回数分の前記条件を満たすパスの検出回数のうちの前記条件を満たすパスごとの検出回数を計数することを特徴とする付記1〜5のいずれか一つに記載の更新方法。 (Supplementary Note 6) The process of counting the number of detections is performed every time a path satisfying the condition is detected, the number of detections for each path satisfying the condition among the latest predetermined number of detections of the path satisfying the condition. The update method according to any one of appendices 1 to 5, wherein the update method is counted.

(付記7)オートマトンを用いて、タグにより階層化された入力ストリームに対して、キーワードと前記キーワードに対応するパスの条件とを含むクエリの照合を行うコンピュータに、
前記入力ストリームから前記条件を満たすパスを検出するたびに、前記条件を満たすパスごとの検出回数を計数し、
初期状態と、開始タグ記号を示す開始状態と、終了タグ記号を示す終了状態とが規定され、前記条件を満たすパスを示すパス照合状態が複数規定されたオートマトンに、前記条件を満たすパスを示す新たなパス照合状態を追加する場合、計数した前記条件を満たすパスごとの検出回数に基づいて、前記オートマトンを更新する、
処理を実行させることを特徴とする更新プログラム。
(Supplementary Note 7) A computer that performs matching of a query including a keyword and a path condition corresponding to the keyword on an input stream hierarchized by tags using an automaton,
Each time a path satisfying the condition is detected from the input stream, the number of detections for each path satisfying the condition is counted,
An automaton in which an initial state, a start state indicating a start tag symbol, and an end state indicating an end tag symbol are defined, and a plurality of path matching states indicating paths satisfying the condition are indicated, indicates a path satisfying the condition. When adding a new path matching state, the automaton is updated based on the number of detections for each path that satisfies the counted condition.
An update program characterized by causing a process to be executed.

(付記8)オートマトンを用いて、タグにより階層化された入力ストリームに対して、キーワードと前記キーワードに対応するパスの条件とを含むクエリの照合を行う照合処理装置であって、
前記入力ストリームから前記条件を満たすパスを検出するたびに、前記条件を満たすパスごとの検出回数を計数する計数部と、
初期状態と、開始タグ記号を示す開始状態と、終了タグ記号を示す終了状態とが規定され、前記条件を満たすパスを示すパス照合状態が複数規定されたオートマトンに、前記条件を満たすパスを示す新たなパス照合状態を追加する場合、前記計数部によって計数された前記条件を満たすパスごとの検出回数に基づいて、前記オートマトンを更新する更新部と、
を有することを特徴とする照合処理装置。
(Supplementary note 8) A collation processing device for collating a query including a keyword and a path condition corresponding to the keyword against an input stream hierarchized by a tag using an automaton,
A counter that counts the number of detections for each path that satisfies the condition each time a path that satisfies the condition is detected from the input stream;
An automaton in which an initial state, a start state indicating a start tag symbol, and an end state indicating an end tag symbol are defined, and a plurality of path matching states indicating paths satisfying the condition are indicated, indicates a path satisfying the condition. When adding a new path verification state, an updating unit that updates the automaton based on the number of detections for each path that satisfies the condition counted by the counting unit;
The collation processing apparatus characterized by having.

100 照合処理装置
4301 読込部
4302 特定部
4303 検出部
4304 第1の計数部
4305 第2の計数部
4306 更新部
A オートマトン
T パスID管理テーブル
DESCRIPTION OF SYMBOLS 100 Collation processing apparatus 4301 Reading part 4302 Identification part 4303 Detection part 4304 1st counting part 4305 2nd counting part 4306 Update part A Automaton T Path ID management table

Claims (6)

オートマトンを用いて、タグにより階層化された入力ストリームに対して、キーワードと前記キーワードに対応するパスの条件とを含むクエリの照合を行うコンピュータが、
前記入力ストリームから前記条件を満たすパスを検出するたびに、前記条件を満たすパスごとの検出回数を計数し、
初期状態と、開始タグ記号を示す開始状態と、終了タグ記号を示す終了状態とが規定され、前記条件を満たすパスを示すパス照合状態が複数規定されたオートマトンに、前記条件を満たすパスを示す新たなパス照合状態を追加する場合、計数した前記条件を満たすパスごとの検出回数に基づいて、前記オートマトンを更新する、
処理を実行することを特徴とする更新方法。
A computer that performs matching of a query including a keyword and a path condition corresponding to the keyword with respect to an input stream layered by tags using an automaton,
Each time a path satisfying the condition is detected from the input stream, the number of detections for each path satisfying the condition is counted,
An automaton in which an initial state, a start state indicating a start tag symbol, and an end state indicating an end tag symbol are defined, and a plurality of path matching states indicating paths satisfying the condition are indicated, indicates a path satisfying the condition. When adding a new path matching state, the automaton is updated based on the number of detections for each path that satisfies the counted condition.
An update method characterized by executing processing.
前記更新する処理は、
前記オートマトンに規定されたパス照合状態が所定数以上ある場合には、前記オートマトンに規定されたパス照合状態のうち、計数した検出回数が相対的に少ない前記条件を満たすパスを示すパス照合状態を削除することにより、前記オートマトンを更新することを特徴とする請求項1に記載の更新方法。
The update process is as follows:
When there are a predetermined number or more of path matching states defined for the automaton, among path matching states defined for the automaton, a path matching state indicating a path satisfying the condition with a relatively small number of detected counts. The update method according to claim 1, wherein the automaton is updated by deleting.
前記コンピュータが、
前記入力ストリームを先頭から読み込み、
前記入力ストリーム内の開始タグを読み込むと、前記入力ストリームの最上階層から前記開始タグが示す階層までのパスを特定し、
特定したパスが前記条件を満たすか否かを判定することにより、前記条件を満たすパスを検出する、処理を実行し、
前記計数する処理は、
前記条件を満たすパスを検出した場合には、検出した前記条件を満たすパスの検出回数を計数し、
前記更新する処理は、
前記オートマトンに規定されたパス照合状態が所定数以上ある場合には、前記オートマトンに規定されたパス照合状態であって、読み込まれた開始タグに対応する終了タグが読み込まれたパス照合状態のうち、計数した検出回数が相対的に少ないパスを示すパス照合状態を削除することにより、前記オートマトンを更新する、
ことを特徴とする請求項1または2に記載の更新方法。
The computer is
Read the input stream from the beginning,
When the start tag in the input stream is read, the path from the top layer of the input stream to the layer indicated by the start tag is specified,
Detecting a path that satisfies the condition by determining whether or not the identified path satisfies the condition,
The counting process is:
If a path that satisfies the condition is detected, the number of detections of the detected path that satisfies the condition is counted,
The update process is as follows:
If there are a predetermined number or more of path matching states defined in the automaton, the path matching state defined in the automaton is a path matching state in which an end tag corresponding to the read start tag is read. Updating the automaton by deleting a path matching state indicating a path with a relatively small number of detected counts,
The update method according to claim 1 or 2, characterized in that:
前記コンピュータが、
前記オートマトンに規定されたパス照合状態ごとに前記開始状態から当該パス照合状態に遷移が行われた遷移回数を計数する処理を実行し、
前記更新する処理は、
計数した遷移回数に基づいて、前記オートマトンに規定されたパス照合状態のうちで、計数した検出回数が同一の第1および第2のパス照合状態のいずれかを削除することにより、前記オートマトンを更新することを特徴とする請求項1〜3のいずれか一つに記載の更新方法。
The computer is
For each path matching state defined in the automaton, execute a process of counting the number of transitions made from the start state to the path matching state,
The update process is as follows:
Based on the counted number of transitions, the automaton is updated by deleting one of the first and second path matching states with the same number of detected counts among the path matching states defined for the automaton. The update method according to claim 1, wherein the update method is performed.
オートマトンを用いて、タグにより階層化された入力ストリームに対して、キーワードと前記キーワードに対応するパスの条件とを含むクエリの照合を行うコンピュータに、
前記入力ストリームから前記条件を満たすパスを検出するたびに、前記条件を満たすパスごとの検出回数を計数し、
初期状態と、開始タグ記号を示す開始状態と、終了タグ記号を示す終了状態とが規定され、前記条件を満たすパスを示すパス照合状態が複数規定されたオートマトンに、前記条件を満たすパスを示す新たなパス照合状態を追加する場合、計数した前記条件を満たすパスごとの検出回数に基づいて、前記オートマトンを更新する、
処理を実行させることを特徴とする更新プログラム。
Using an automaton, to a computer that performs matching of a query including a keyword and a path condition corresponding to the keyword against an input stream hierarchized by tags,
Each time a path satisfying the condition is detected from the input stream, the number of detections for each path satisfying the condition is counted,
An automaton in which an initial state, a start state indicating a start tag symbol, and an end state indicating an end tag symbol are defined, and a plurality of path matching states indicating paths satisfying the condition are indicated, indicates a path satisfying the condition. When adding a new path matching state, the automaton is updated based on the number of detections for each path that satisfies the counted condition.
An update program characterized by causing a process to be executed.
オートマトンを用いて、タグにより階層化された入力ストリームに対して、キーワードと前記キーワードに対応するパスの条件とを含むクエリの照合を行う照合処理装置であって、
前記入力ストリームから前記条件を満たすパスを検出するたびに、前記条件を満たすパスごとの検出回数を計数する計数部と、
初期状態と、開始タグ記号を示す開始状態と、終了タグ記号を示す終了状態とが規定され、前記条件を満たすパスを示すパス照合状態が複数規定されたオートマトンに、前記条件を満たすパスを示す新たなパス照合状態を追加する場合、前記計数部によって計数された前記条件を満たすパスごとの検出回数に基づいて、前記オートマトンを更新する更新部と、
を有することを特徴とする照合処理装置。
A collation processing device that performs collation of a query including a keyword and a path condition corresponding to the keyword with respect to an input stream hierarchized by tags using an automaton,
A counter that counts the number of detections for each path that satisfies the condition each time a path that satisfies the condition is detected from the input stream;
An automaton in which an initial state, a start state indicating a start tag symbol, and an end state indicating an end tag symbol are defined, and a plurality of path matching states indicating paths satisfying the condition are indicated, indicates a path satisfying the condition. When adding a new path verification state, an updating unit that updates the automaton based on the number of detections for each path that satisfies the condition counted by the counting unit;
The collation processing apparatus characterized by having.
JP2013001412A 2013-01-08 2013-01-08 Update method, update program, and verification processing apparatus Expired - Fee Related JP5998942B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013001412A JP5998942B2 (en) 2013-01-08 2013-01-08 Update method, update program, and verification processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013001412A JP5998942B2 (en) 2013-01-08 2013-01-08 Update method, update program, and verification processing apparatus

Publications (2)

Publication Number Publication Date
JP2014134901A JP2014134901A (en) 2014-07-24
JP5998942B2 true JP5998942B2 (en) 2016-09-28

Family

ID=51413129

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013001412A Expired - Fee Related JP5998942B2 (en) 2013-01-08 2013-01-08 Update method, update program, and verification processing apparatus

Country Status (1)

Country Link
JP (1) JP5998942B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110019261B (en) * 2017-09-30 2021-11-23 北京国双科技有限公司 Data query method and device

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3832830B2 (en) * 2003-04-25 2006-10-11 インターナショナル・ビジネス・マシーンズ・コーポレーション XPath evaluation method, XPath evaluation apparatus and information processing apparatus using the same
JP4365162B2 (en) * 2003-08-20 2009-11-18 富士通株式会社 Apparatus and method for retrieving structured document data
JP5320697B2 (en) * 2007-07-26 2013-10-23 富士通株式会社 Collation processing program and collation processing apparatus

Also Published As

Publication number Publication date
JP2014134901A (en) 2014-07-24

Similar Documents

Publication Publication Date Title
US11769003B2 (en) Web element rediscovery system and method
US9858628B2 (en) Systems and computer-implemented methods to compare and identify duplicative presentations of comparable data files including imagery and data representations of rental property listings
US10671661B2 (en) Graph query logic
US7992081B2 (en) Streaming validation of XML documents
US9131000B2 (en) Methods, systems, and computer readable media for heuristics-based adaptive protocol parsing
CA2901695C (en) Api version testing based on query schema
US7490078B2 (en) Stream data processing system and method for avoiding duplication of data process
JP5375413B2 (en) Data conversion apparatus, data conversion method, and data conversion program
US9223815B2 (en) Method, apparatus, and program for supporting creation and management of metadata for correcting problem in dynamic web application
US8219901B2 (en) Method and device for filtering elements of a structured document on the basis of an expression
US20100257440A1 (en) High precision web extraction using site knowledge
US11106757B1 (en) Framework for augmenting document object model trees optimized for web authoring
US20170068732A1 (en) Multi-system segmented search processing
US20090204889A1 (en) Adaptive sampling of web pages for extraction
JP3205406B2 (en) Reference target variable determination processing method and translation processing system
US11138289B1 (en) Optimizing annotation reconciliation transactions on unstructured text content updates
JP5998942B2 (en) Update method, update program, and verification processing apparatus
US20070028163A1 (en) Lightweight application program interface (API) for extensible markup language (XML)
US9483578B2 (en) Computer-readable storage medium storing update program, update method, and update device
JP4954674B2 (en) Software development support method, software development support device, software development support program, and computer system
CN110188432B (en) System architecture verification method, electronic device and computer-readable storage medium
US20210200833A1 (en) Health diagnostics and analytics for object repositories
KR20110094804A (en) Semantic tagging server for supporting reuse of software artifacts, and methods thereof
CN113177391B (en) Method for redirecting operation cursor in streaming interface, computing equipment and storage medium
CN115796146A (en) File comparison method and device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150903

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160711

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160815

R150 Certificate of patent or registration of utility model

Ref document number: 5998942

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees