WO2019176011A1 - 検索文活用装置および検索文活用方法 - Google Patents

検索文活用装置および検索文活用方法 Download PDF

Info

Publication number
WO2019176011A1
WO2019176011A1 PCT/JP2018/009960 JP2018009960W WO2019176011A1 WO 2019176011 A1 WO2019176011 A1 WO 2019176011A1 JP 2018009960 W JP2018009960 W JP 2018009960W WO 2019176011 A1 WO2019176011 A1 WO 2019176011A1
Authority
WO
WIPO (PCT)
Prior art keywords
directed graph
event
search
graph
subtrees
Prior art date
Application number
PCT/JP2018/009960
Other languages
English (en)
French (fr)
Inventor
淳 西岡
純明 榮
和彦 磯山
悦子 市原
光佑 吉田
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to PCT/JP2018/009960 priority Critical patent/WO2019176011A1/ja
Priority to JP2020506022A priority patent/JP7006769B2/ja
Priority to US16/980,234 priority patent/US11727059B2/en
Publication of WO2019176011A1 publication Critical patent/WO2019176011A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/288Entity relationship models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/322Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3334Selection or weighting of terms from queries, including natural language queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements

Definitions

  • the present invention relates to a search sentence utilization device and a search sentence utilization method for facilitating data retrieval.
  • a searcher When searching a database or the like, a searcher (user) uses DSL (Domain Specific Language) such as SQL (Structured Query Language) to create a search statement that represents the search contents. Taking SQL as an example, the user creates a search statement with a predetermined syntax such as SQL syntax.
  • DSL Domain Specific Language
  • SQL Structured Query Language
  • Patent Document 1 describes a device for visually displaying a search expression so that the user can easily grasp the contents of the search expression representing the search contents and the validity of the search expression.
  • Patent Document 1 displays a graph having a conditional expression constituting a search expression as a node and a search operation expression as an edge on a display unit.
  • the apparatus described in Patent Document 1 displays hierarchically each conditional expression in a search expression including a plurality of conditional expressions forming a nested structure.
  • a search operation expression that associates a plurality of conditional expressions in the search expression is, for example, an expression that represents a logical sum or an expression that represents a logical product. That is, the apparatus described in Patent Document 1 displays a graph including nodes and edges on a display unit, thereby making it easy to visually recognize the relationship among a plurality of conditional expressions forming a nested structure.
  • the present invention makes it possible for a user to easily grasp the meaning of a search sentence, and also enables a user to easily grasp the temporal order of elements constituting the search sentence and a search sentence utilization device It aims to provide a method.
  • the search sentence utilization device includes a search sentence dividing unit that divides a search sentence into a plurality of search contents each including an event, and from each of the search contents, an event is an edge and an event source and an event target
  • the search sentence utilization method divides a search sentence into a plurality of search contents each including an event, and from each of the search contents, a subtree having an event as an edge and an event source and an event target as a node. Are created, and the subtrees are combined to create a directed graph. When the directed graph is created, a plurality of subtrees are arranged in the directed graph in accordance with the occurrence order of events.
  • the search sentence utilization program includes a process for dividing a search sentence into a plurality of search contents each including an event, and a source of the event and an object of the event using the event as an edge from each of the search contents.
  • the user it is possible for the user to easily grasp the content that the search sentence means, and to allow the user to easily grasp the temporal order of the elements constituting the search sentence.
  • FIG. FIG. 1 is a block diagram illustrating a configuration example of the first embodiment of the search sentence utilization device.
  • the search sentence utilization apparatus 100 includes a search sentence input / output unit 101, a graph input / output unit 102, a history information holding unit 103, a graph processing unit 104, a parameter storage unit 105, and a query processing unit 106. .
  • a search query is issued from the search statement utilization apparatus 100 to the database (DB) 110.
  • the input device 130 is used for a user to input a search sentence.
  • the display device 120 is used for displaying a search sentence that is graphed.
  • the search sentence input / output unit 101 receives a search sentence input by the user to the input device 130.
  • the graph input / output unit 102 performs a process of displaying a directed graph on the display device 120 or inputting a designated directed graph.
  • the history information holding unit 103 holds search sentences used in the past.
  • the graph processing unit 104 converts the input search sentence into a directed graph. Further, the graph processing unit 104 converts the search sentence expressed by the directed graph into a DSL supported by the DB 110.
  • the parameter storage unit 105 stores in advance parameter information including the type of event targeted in the search sentence, the content of the event, and the corresponding parameter of the event.
  • the parameter information may include information related to an event generation source (to be described later) (for example, the type and content of the generation source, and the relationship with other generation sources).
  • the events include at least a file access operation (for example, write), a process start or generation or termination (for example, start or exit), and a communication operation (for example, open). It is.
  • the query processing unit 106 issues a query to the DB 110.
  • FIG. 2 is an explanatory diagram illustrating an example of a screen displayed on the display device 120.
  • the screen 200 includes areas of a search sentence input unit 201, a graph display unit 202, a display parameter selection unit 203, a search history display unit 204, and a search result display unit 205.
  • the search text input unit 201 is used by a user to input a search text.
  • the graph display unit 202 is used to display the created directed graph.
  • the display parameter selection unit 203 is used by the user to select a parameter displayed together with the search result.
  • the search history display unit 204 is used to display search sentences used in the past in the form of a directed graph.
  • the search result display unit 205 displays the search result.
  • FIG. 3 is an explanatory diagram showing an example of a search sentence that is graphed.
  • the search sentence is a directed graph.
  • FIG. 3 is a graph showing a search statement representing a series of operations (functions) that “process A writes to file B, generates process C, and process C starts communication with communication destination D”.
  • the series of operations includes an operation “Process A writes to file B”, an operation “Process A generates process C”, and “Process C The operation of “communication with the communication destination D” is included.
  • search content corresponds to the search content constituting the search sentence.
  • search contents one or more operations included in a search sentence are referred to as “search contents” or “occurrence event”.
  • search content includes, for example, [event source, event such as write or start, event target].
  • process 301 corresponds to the source of event 305 (file operation event).
  • the file 302 corresponds to the event 305 target.
  • the process 303 corresponds to the target of the event 306 (process execution event).
  • the communication destination 304 corresponds to the target of the event 307 (communication operation event).
  • the process 303 (process C) is also a source of the event 307 (communication operation event).
  • the event generation source or the event target (in the example shown in FIG. 3, the process A, the file B, the process C, and the communication destination D) are also referred to as “components”.
  • components include at least a file, a process, and a communication destination.
  • components are represented by nodes and events are represented by edges.
  • the directed graph illustrated in FIG. 3 is displayed on the display device 120.
  • the node corresponding to the event object (or event source and event object) that occurs later is displayed as the event object (or event source and event source) that occurred earlier. It is set to a position where the user can intuitively understand that the node corresponding to the event target) occurred later in time. In the example shown in FIG. 3, such a position is on the right side. However, it is an example that the setting position of the node of the event that will occur later is on the right side.
  • a position where the user can intuitively specify that the event occurs after time according to the user's characteristics or the like may be a position other than the right side.
  • search sentence utilization device 100 will be described with reference to the flowchart of FIG. 4 and the explanatory diagrams of FIGS. A description will be given by taking as an example a search statement including a series of search contents that “process A writes to file B, generates process C, and process C starts communication with communication destination D”.
  • FIG. 4 shows an example of the operation of the search sentence utilization device 100.
  • FIG. 5 shows an example of a table 501 in which occurrence events (search contents) are recorded.
  • FIG. 6 shows an example of a graph 502 created based on the dependency relationship between the occurrence events.
  • the table 501 and the graph 502 are stored in a storage device (not shown in FIG. 1) of the search sentence utilization device 100.
  • the graph processing unit 104 parses the search text and divides the search text into one or a plurality of subtrees (step S11).
  • the subtree corresponds to the occurrence event (see FIG. 5).
  • the graph processing unit 104 sets the partial tree and the corresponding identifier in the table 501 (step S12). In addition, the graph processing unit 104 creates a graph in which the subtree is shown so that the dependency relationship can be specified as illustrated in FIG. 6 (step S13). The graph processing unit 104 uses the parameter information stored in the parameter storage unit 105 when executing the processes of steps S12 and S13.
  • the graph processing unit 104 creates a directed graph (step S15). Specifically, the graph processing unit 104 arranges each subtree as illustrated in FIG. 5 according to the dependency relationship illustrated in FIG. The graph processing unit 104 displays the created directed graph on the display device 120 via the graph input / output unit 102. The graph input / output unit 102 displays the directed graph on the graph display unit 202 on the screen 200 of the display device 120 (see FIG. 2).
  • the graph processing unit 104 may determine the position of the subtree in the directed graph using predetermined information when creating the directed graph.
  • the graph processing unit 104 may use information described in the search sentence as the predetermined information. For example, when the temporal context of occurrence events is explicitly described in the search sentence, the graph processing unit 104 arranges the subtrees in the directed graph according to the temporal order (occurrence order).
  • the graph processing unit 104 extracts components that can display parameters in association with the search result using the search sentence from the directed graph (step S16). For example, the graph processing unit 104 reads out parameters corresponding to each component from the parameter storage unit 105. The graph processing unit 104 can display a parameter when, for example, a constituent element in the directed graph matches any of the constituent elements for which the parameter is set.
  • the displayable parameters are used when the search result is displayed on the display device 120 after the search processing by the query processing unit 106 is executed. That is, the query processing unit 106 displays the search result including the parameter on the display device 120. Further, the query processing unit 106 may also display a list of values (for example, operation time) corresponding to the parameters on the display device 120. When the user narrows down the search text (for example, when an occurrence event that seems to be unimportant is deleted from the search text), it is expected that the efficiency of the narrowing-down operation is improved by displaying the list.
  • the graph processing unit 104 may present the parameter candidates to the user when determining the parameters that can be displayed, and allow the user to select the parameters to be displayed.
  • the graph processing unit 104 displays the parameters read from the parameter storage unit 105 on the display device 120 via the graph input / output unit 102 as displayable parameter candidates.
  • the graph input / output unit 102 displays displayable parameter candidates on the display parameter selection unit 203 on the screen 200 of the display device 120 (see FIG. 2).
  • FIG. 2 shows an example in which names of components (Outlook (registered trademark), word, malware) are displayed.
  • the graph processing unit 104 When the user selects a desired parameter from the parameter candidates, the graph processing unit 104 temporarily stores the selected parameter or causes the query processing unit 106 to store the parameter. The user selects a desired parameter via the input device 130.
  • the graph processing unit 104 may aggregate the parameters read from the parameter storage unit 105 when displaying parameter candidates on the display device 120. For example, the graph processing unit 104 aggregates parameters when one component is arranged at a plurality of locations in the directed graph.
  • the query processing unit 106 issues a query based on the search sentence to the DB 110. Thereafter, the graph processing unit 104 records the directed graph corresponding to the used search sentence in the history information holding unit 103.
  • the graph processing unit 104 may calculate the similarity between the directed graph recorded in the history information holding unit 103 and the directed graph already held in the history information holding unit 103. For example, the graph processing unit 104 uses the degree of coincidence of nodes and the degree of coincidence of edges in both directed graphs as similarities.
  • the graph processing unit 104 reads all or a predetermined number of directed graphs held in the history information holding unit 103.
  • the graph processing unit 104 displays the directed graph on the display device 120 via the graph input / output unit 102.
  • the graph input / output unit 102 displays the directed graph on the search history display unit 204 on the screen 200 of the display device 120 (see FIG. 2).
  • the graph processing unit 104 displays the directed graphs in descending order of similarity (for example, the average value of the similarity with one or more other directed graphs is high). Further, for example, the graph processing unit 104 may display a directed graph so that a directed graph with a high degree of similarity is displayed in the search history display unit 204 so as to be close to each other.
  • the search statement utilization apparatus 100 reconstructs a search statement from the selected directed graph. A specific method for reconstructing a search sentence will be described in the second embodiment.
  • the search sentence utilization device 100 presents the search sentence to the user as a directed graph composed of nodes and edges, so that the user can easily grasp the meaning of the search sentence. become. Also, by arranging subtrees in a directed graph according to the temporal order, the user can easily grasp the temporal order of occurrences in the search sentence, in other words, the temporal occurrence order of events. It becomes possible. As a result, the user can easily determine whether or not a search sentence intended by the user is configured.
  • Embodiment 2 When the search sentence utilization device 100 reconstructs a search sentence from the directed graph, the graph processing unit 104 divides the directed graph into subtrees corresponding to the search contents constituting the search sentence. The graph processing unit 104 records the subtree in a table similar to the table 501 illustrated in FIG. In addition, the graph processing unit 104 recognizes the dependency (for example, the order of occurrence of events) of the search content (occurrence event) based on the arrangement position in the directed graph of each subtree. Then, the graph processing unit 104 reconstructs the search sentence by referring to the dependency relationship and describing the search contents.
  • the dependency for example, the order of occurrence of events
  • the search sentence utilization apparatus 100 divides a directed graph into a plurality of subtrees, determines an event generation order in the plurality of subtrees from an arrangement position in the plurality of subtrees, and generates an event generation order. Since the search contents are reconstructed from the plurality of subtrees with reference to the above, the user can easily use the search sentences created by himself or others in the past.
  • FIG. The search sentence utilization apparatus 100 can also integrate a plurality of directed graphs into one.
  • the graph input / output unit 102 inputs the designated directed graph from the history information holding unit 103.
  • the graph input / output unit 102 outputs the input directed graph to the graph processing unit 104.
  • the graph processing unit 104 divides each of the plurality of directed graphs into occurrence events.
  • Each occurrence search content
  • Event sources and event targets are represented as nodes in the directed graph.
  • the graph processing unit 104 selects a combination of search contents with matching nodes from all search contents.
  • the graph processing unit 104 creates a directed graph based on the combinations for all combinations.
  • the graph processing unit 104 deletes the directed graph in which a loop has occurred from the created directed graph.
  • a directed graph having a contradiction in the order of occurrences is deleted.
  • the graph processing unit 104 displays a directed graph group that does not include the deleted directed graph on the display device 120. Note that the directed graph group may include only one directed graph.
  • the user can select a directed graph from the displayed directed graph group via the input device 130.
  • the search sentence utilization device 100 sets the directed graph selected by the user as an integrated directed graph.
  • the directed graph specified in the search history display unit 204 is taken as an example, but the directed graph to be integrated is not limited to such a graph.
  • a plurality of directed graphs input by the user to the input device 130 may be integrated.
  • each block (unit) in the search text utilization device 100 may be provided in one device, or may be provided in a plurality of devices. Good.
  • Example 1 A first example, which is a specific example of the first embodiment, will be described with reference to FIGS.
  • FIG. 7 is an explanatory diagram for explaining a method of creating a directed graph.
  • FIG. 8 is an explanatory diagram illustrating an example of parameter information stored in the parameter storage unit 105.
  • search sentence including a series of search contents “Process A writes to file B, generates process C, and process C starts communication with communication destination D” is input.
  • a search sentence is input as follows.
  • proc A write file B as evt1 (Evt1: process A writes to file B) proc A start proc C as evt2 (Evt2: Process A generates process C) proc C open ip D as evt3 (Evt3: Process C starts communication with communication destination D) with evt2 after evt1, evt3 after evt2 (Evt2 after evt1, evt3 after evt2)
  • the graph processing unit 104 divides the search sentence into one or a plurality of subtrees.
  • three subtrees 601, 602, and 603 are generated.
  • the subtree identifiers are evt1, evt2, and evt3.
  • the graph processing unit 104 arranges the subtrees 601, 602, and 603 in accordance with the order of occurrence events (search contents) described in the search sentence, and creates a graph.
  • a graph 604 is created in which a subtree 601, a subtree 602, and a subtree 603 are arranged in order from the left.
  • the graph processing unit 104 integrates a plurality of subtrees having the same node in the graph 604.
  • proc A of evt1 and proc A of evt2 are the same.
  • proc C of evt2 and proc C of evt3 are the same. Therefore, the graph processing unit 104 integrates the subtree 601 and the subtree 602 without changing the arrangement order of the subtrees as shown in FIG. As a result, a directed graph 605 is created.
  • the arrangement order of the subtrees is not changed” means that the node corresponding to the subtree 603 is arranged on the right side of the nodes corresponding to the subtrees 601 and 602 and the node corresponding to the subtree 602 ( In the example shown in FIG. 7, PROCPROC) is arranged on the right side of the node (FILE ⁇ ⁇ B in the example shown in FIG. 7) corresponding to the subtree 601.
  • the graph processing unit 104 refers to the parameter information stored in the parameter storage unit 105. Then, the graph processing unit 104 displays, for example, the following parameters on the display parameter selection unit 203 on the screen 200 of the display device 120 via the graph input / output unit 102 based on the parameter information.
  • Proc A, C is running-Proc A name (name), pid (process ID (Identification)) ⁇ Proc B name, pid ⁇ Proc C name, pid ⁇ File B name, path ⁇ Ip D address, port -Evt1 occurrence time-evt2 occurrence time-evt3 occurrence time
  • Example 2 A second example, which is a specific example of the second embodiment, will be described with reference to FIGS.
  • FIG. 9 is an explanatory diagram illustrating an example of a directed graph.
  • FIG. 10 is an explanatory diagram for explaining a method of creating a search sentence from a directed graph.
  • the graph processing unit 104 creates (reconstructs) a search sentence from the directed graph shown in FIG.
  • the graph processing unit 104 decomposes the directed graph into a plurality of subtrees. That is, the graph processing unit 104 obtains a subtree composed of one edge and two nodes existing on both sides thereof. As a result, four subtrees (subtrees with identifiers evt1, evt2, evt3, and evt4) as shown in FIG. 10A are obtained.
  • the graph processing unit 104 creates a graph corresponding to the dependency relationship of the four subtrees (see FIG. 10B).
  • the dependency includes the order of occurrence of occurrence events.
  • a node in an occurrence event that occurred later (a node corresponding to an event generation source or a node corresponding to an event target) is arranged on the right side of a node in an occurrence event that occurred earlier. Therefore, the graph processing unit 104 can easily determine the dependency relationship based on the positional relationship in the directed graph.
  • the graph processing unit 104 creates the following search sentence based on evt1, evt2, evt3, and evt4 shown in FIG. Further, based on the graph shown in FIG. 10B, a description related to the dependency relationship (occurrence order) is added to the search sentence.
  • the graph processing unit 104 adds parameters to the search sentence as follows.
  • Process A generates process C after writing to file B, and process C generates process D after reading file E.”
  • Example 3 A third example, which is a specific example of the third embodiment, will be described with reference to FIG.
  • FIG. 11 is an explanatory diagram for explaining a method for integrating a plurality of search sentences.
  • the graph processing unit 104 divides each of the directed graphs 1001 and 1002 into graphs corresponding to the occurrence events.
  • the directed graph 1001 is divided into graphs 1003-1, 1003-2, and 1003-3.
  • the graphs 1003-1, 1003-2, and 1003-3 are referred to as a graph group 1003.
  • the directed graph 1002 is divided into graphs 1004-1, 1004-2, and 1004-3.
  • the graphs 1004-1, 1004-2, and 1004-3 are referred to as a graph group 1004.
  • the graph processing unit 104 compares the graphs 1003-1, 1003-2, and 1003-3 in the graph group 1003 with the graphs 1004-1, 1004-2, and 1004-3 in the graph group 1004. Specifically, the graph processing unit 104 compares an event of each occurrence event (corresponding to a graph) in the graph group 1003 and an event of each occurrence event in the graph group 1004.
  • the event of the graph 1003-1 and the event of the graph 1004-3 are the same.
  • the event of the graph 1003-3 is the same as the event of the graph 1004-1 and the graph 1004-2.
  • the graph processing unit 104 When combining each combination into a graph, in the case of set D and set E, a loop occurs in the graph.
  • the graph processing unit 104 does not generate a new directed graph based on such a combination. That is, the graph processing unit 104 excludes a directed graph based on such a combination from newly generated directed graph candidates.
  • the graph processing unit 104 generates a new directed graph by combining pairs that do not cause a loop.
  • the directed graph 1005 in FIG. 11 is generated.
  • the directed graph 1006 in FIG. 11 is generated.
  • the directed graph 1007 in FIG. 11 is generated.
  • other graphs in the graph group 1003 are also used.
  • the graph processing unit 104 may cause the user to select a directed graph when a plurality of directed graphs are created. In that case, the graph processing unit 104 displays a plurality of directed graphs on the display device 120 via the graph input / output unit 102. When the user makes a selection specification via the input device 130, the graph processing unit 104 sets the specified directed graph as the directed graph selected by the user.
  • the graph processing unit 104 when the graph processing unit 104 generates the directed graphs 1005, 1006, and 1007 from the graph groups 1003 and 1004, it considers that the constituent elements common to the events (open, etc.) in the respective subtrees are the same.
  • the graph processing unit 104 makes the constituent elements of the subtree 1003-3 (PROC C ⁇ IP D) and the constituent elements of the subtree 1004-2 (PROC G ⁇ IP F) the same.
  • (PROC E ⁇ IP F) in the subtree 1004-1 is regarded as (PROC E ⁇ IP D).
  • a directed graph 1007 is generated.
  • the user can easily create a search sentence for searching the history by using the search sentence utilization apparatus 100 of the first to third embodiments. Therefore, even if the user does not have a high skill for creating a search sentence, the user can easily search the history. That is, the user can specify the cause of the attack or intrusion from the outside more easily and in a short time.
  • FIG. 12 is a block diagram illustrating an example of a computer having a CPU.
  • the computer is mounted on the search sentence utilization device 100.
  • the CPU 2000 realizes each function in the above-described embodiment by executing processing according to a program stored in the storage device 2001. That is, the functions of the graph processing unit 104 and the query processing unit 106 in the search sentence utilization apparatus 100 shown in FIG.
  • the storage device 2001 is, for example, a non-transitory computer readable medium.
  • Non-transitory computer readable media include various types of tangible storage media (tangible storage medium).
  • Specific examples of non-transitory computer-readable media include magnetic recording media (for example, flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (for example, magneto-optical disks), CD-ROM (Compact Disc-Read Only Memory). ), CD-R (Compact Disc-Recordable), CD-R / W (Compact Disc-ReWritable), semiconductor memory (for example, mask ROM, PROM (Programmable ROM), EPROM (Erasable-PROM), flash ROM). Further, the storage device 2001 implements the history information holding unit 103 and the parameter storage unit 105.
  • the program may be stored on various types of temporary computer readable media (transitory computer readable medium).
  • the temporary computer-readable medium is supplied with the program via, for example, a wired communication path or a wireless communication path, that is, via an electric signal, an optical signal, or an electromagnetic wave.
  • the memory 2002 is realized by, for example, a RAM (Random Access Memory), and is a storage unit that temporarily stores data when the CPU 2000 executes processing.
  • a mode in which a program held in the storage device 2001 or a temporary computer-readable medium is transferred to the memory 2002 and the CPU 2000 executes processing based on the program in the memory 2002 may be assumed.
  • FIG. 13 is a block diagram showing the main part of the search sentence utilization device 10.
  • the search sentence utilization device 10 divides a search sentence into a plurality of search contents each including an event (in the embodiment, realized by the graph processing unit 104). Then, from each of the search contents, a subtree having an event as an edge and an event generation source and an event target as a node is created, and the digraph is combined to create a directed graph (in the embodiment, a directed graph creation unit 12). And realized by the graph processing unit 104).
  • the directed graph creation unit 12 arranges a plurality of subtrees in the directed graph in association with the occurrence order of events.
  • FIG. 14 is a block diagram illustrating a main part of the search sentence utilization device 10 according to another aspect.
  • the search sentence utilization device 10 shown in FIG. 14 further includes a directed graph storage unit 13 (which is realized by the history information holding unit 103 in the embodiment) that stores the created directed graph, and a directed graph that the directed graph storage unit 13 stores. Is displayed in a selectable graph display unit 14 (implemented by the graph input / output unit 102 and the graph processing unit 104 in the embodiment).
  • FIG. 15 is a block diagram showing a main part of the search sentence utilization device 10 of still another aspect.
  • the search sentence utilization apparatus 10 shown in FIG. 15 further includes a directed graph integration unit 15 that integrates a plurality of directed graphs.
  • the directed graph integration unit 15 divides each directed graph into subtrees, an event corresponding to a partial tree obtained by dividing one directed graph among a plurality of directed graphs, and a partial tree obtained by dividing another directed graph And a new directed graph is generated by combining at least subtrees with common events.
  • FIG. 16 is a block diagram illustrating a main part of the search sentence utilization device 10 according to another aspect.
  • the search sentence utilization apparatus 10 shown in FIG. 16 further refers to one or more parameters of the event generation source and one or more parameters of the event target from the directed graph (in the embodiment, these parameters are referred to). Is stored in the parameter storage unit 105.), a parameter extraction unit 16 (in the embodiment, realized by the graph processing unit 104) that extracts a parameter to be displayed on the display device together with a search result using a search sentence corresponding to the directed graph. Is provided.)
  • Search sentence dividing means for dividing a search sentence into a plurality of search contents each including an event; From each of the search contents, there is provided a directed graph creating means for creating a subtree having the event as an edge and the event source and the event target as a node, and combining the subtrees to create a directed graph.
  • the directed graph creation unit is a retrieval sentence utilization device that arranges a plurality of subtrees in the directed graph in correspondence with the occurrence order of the events.
  • the directed graph creation means can specify that a node corresponding to a target of an event that has occurred later is a node corresponding to a target of an event that has occurred earlier, and that the event generation order is later.
  • the directed graph is divided into a plurality of subtrees, the occurrence order of events corresponding to the plurality of subtrees is determined from the arrangement positions in the directed graph, and the occurrence order of the events is determined.
  • the search sentence utilization device according to supplementary note 1 or supplementary note 2, further comprising a retrieval sentence reconstructing means for reconstructing a retrieval content from the plurality of subtrees.
  • the directed graph storage means which memorize
  • the search sentence utilization device according to any one of supplementary notes 1 to 3, further comprising directed graph display means for displaying a directed graph stored by the directed graph storage means on a display device so that a user can select the directed graph.
  • the directed graph integration means includes: Divide each directed graph into subtrees, Compare an event corresponding to a subtree obtained by dividing one directed graph of multiple directed graphs with an event corresponding to a subtree obtained by dividing another directed graph,
  • the search sentence utilization device according to any one of appendix 1 to appendix 4, wherein a new directed graph is generated by combining at least subtrees having common events.
  • the said directed graph integration means makes the directed graph produced
  • One or a plurality of parameters of an event generation source and one or a plurality of parameters of an event target are referred to from a directed graph, and a display device together with a search result using a search sentence corresponding to the directed graph
  • the search sentence utilization device according to any one of supplementary notes 1 to 6, further comprising parameter extraction means for extracting a parameter to be displayed on the screen.
  • a directed graph node corresponds to one of a file, a process, and a communication destination
  • the edge of the directed graph corresponds to any one of a file access operation, process activation or termination, and a communication operation.
  • the retrieval sentence utilization device according to any one of appendix 1 to appendix 7.
  • the search sentence is divided into a plurality of search contents each including an event, From each of the search contents, create a subtree with the event as an edge and the event source and the event target as a node, combine the subtrees to create a directed graph, A search sentence utilization method of arranging a plurality of the subtrees in the directed graph in correspondence with the occurrence order of the events when creating the directed graph.
  • a search statement utilization program for executing a process of arranging a plurality of the subtrees in the directed graph in correspondence with the occurrence order of the events when creating the directed graph.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

検索文活用装置10は、検索文を構成する要素の時間的な順序をユーザが容易に把握可能になるようにするために、検索文を、各々がイベントを含む複数の検索内容に分割する検索文分割部11と、検索内容の各々から、イベントをエッジとしイベントの発生源およびイベントの対象をノードとする部分木を作成し、それらの部分木を結合して有向グラフを作成する有向グラフ作成部12とを備え、有向グラフ作成部12は、有向グラフにおいて、イベントの発生順序に対応させて複数の部分木を配置する。

Description

検索文活用装置および検索文活用方法
 本発明は、データ検索を容易化するための検索文活用装置および検索文活用方法に関する。
 データベース等の検索を行うときに、検索者(ユーザ)は、SQL(Structured Query Language )等のDSL(Domain Specific Language)を使用して、検索内容を表す検索文を作成する。SQLを例にすると、ユーザは、SQL構文等の所定の構文で検索文を作成する。
 構文の習熟度が低いユーザまたは検索文の作成に慣れていないユーザが、短時間で正確な検索文を作成することは困難である。また、そのようなユーザは、作成した検索文が正しいか否か確認するのに長時間を要すると考えられる。また、そのようなユーザは、作成した検索文において誤りを発見したときに、検索文の修正に長時間を要すると考えられる。さらに、そのようなユーザが、他者が作成した検索文を再利用することも困難である。そのようなユーザは、検索文が何を意味しているのかを直ちに把握できない可能性があるからである。
 特許文献1には、検索内容を表す検索式の内容や検索式の妥当性をユーザが容易に把握できるようにするために、検索式を可視表示する装置が記載されている。
 特許文献1に記載された装置は、検索式を構成する条件式をノードとし、検索演算式をエッジとするグラフを表示部に表示する。
特開2016-218805号公報
 特許文献1に記載された装置は、入れ子構造を形成する複数の条件式を含む検索式における各々の条件式を階層的に表示する。検索式における複数の条件式を関連づける検索演算式は、例えば、論理和を表す式や論理積を表す式である。すなわち、特許文献1に記載された装置は、ノードとエッジとを含むグラフを表示部に表示することによって、入れ子構造を形成する複数の条件式の関係を容易に視認可能にする。
 しかし、複数の条件式には因果関係はない。すなわち、検索式における複数の条件式は、時間的な順序という概念を含んでいない。
 本発明は、検索文が意味する内容をユーザが容易に把握可能になる上に、検索文を構成する要素の時間的な順序をユーザが容易に把握可能になる検索文活用装置および検索文活用方法を提供することを目的とする。
 本発明による検索文活用装置は、検索文を、各々がイベントを含む複数の検索内容に分割する検索文分割手段と、検索内容の各々から、イベントをエッジとしイベントの発生源およびイベントの対象をノードとする部分木を作成し、それらの部分木を結合して有向グラフを作成する有向グラフ作成手段とを備え、有向グラフ作成手段は、イベントの発生順序に対応させて複数の部分木を有向グラフにおいて配置する。
 本発明による検索文活用方法は、検索文を、各々がイベントを含む複数の検索内容に分割し、検索内容の各々から、イベントをエッジとしイベントの発生源およびイベントの対象をノードとする部分木を作成し、それらの部分木を結合して有向グラフを作成し、有向グラフを作成するときに、イベントの発生順序に対応させて複数の部分木を有向グラフにおいて配置する。
 本発明による検索文活用プログラムは、コンピュータに、検索文を、各々がイベントを含む複数の検索内容に分割する処理と、検索内容の各々から、イベントをエッジとしイベントの発生源およびイベントの対象をノードとする部分木を作成し、それらの部分木を結合して有向グラフを作成する処理とを実行させ、有向グラフを作成するときに、イベントの発生順序に対応させて複数の部分木を有向グラフにおいて配置する処理を実行させる。
 本発明によれば、検索文が意味する内容をユーザが容易に把握可能になる上に、検索文を構成する要素の時間的な順序をユーザが容易に把握可能になる。
検索文活用装置の第1の実施形態の構成例を示すブロック図である。 表示装置に表示される画面の一例を示す説明図である。 グラフ化された検索文の一例を示す説明図である。 検索文活用装置の動作を示すフローチャートである。 発生事象(検索内容)が記録されたテーブルの一例を示す説明図である。 発生事象の依存関係に基づいて作成されるグラフの一例を示す説明図である。 有向グラフの作成方法を説明するための説明図である。 パラメータ情報の一例を示す説明図である。 有向グラフの一例を示す説明図である。 有向グラフから検索文を作成する方法を説明するための説明図である。 複数の検索文の統合方法を説明するための説明図である。 CPUを有するコンピュータの一例を示すブロック図である。 検索文活用装置の主要部を示すブロック図である。 他の態様の検索文活用装置の主要部を示すブロック図である。 さらに他の態様の検索文活用装置の主要部を示すブロック図である。 別の態様の検索文活用装置の主要部を示すブロック図である。
 以下、本発明の実施形態を図面を参照して説明する。
実施形態1.
 図1は、検索文活用装置の第1の実施形態の構成例を示すブロック図である。図1に示す例では、検索文活用装置100は、検索文入出力部101、グラフ入出力部102、履歴情報保持部103、グラフ処理部104、パラメータ記憶部105、およびクエリ処理部106を備える。
 なお、図1に示す例では、データベース(DB)110に検索文活用装置100から検索のためのクエリが発行される。
 入力装置130は、ユーザが検索文を入力するため等に使用される。表示装置120は、グラフ化された検索文の表示等のために使用される。
 検索文入出力部101は、ユーザが入力装置130に入力した検索文を受け付ける。グラフ入出力部102は、有向グラフを表示装置120に表示したり、指定された有向グラフを入力する処理を行う。履歴情報保持部103は、過去に使用された検索文を保持する。
 グラフ処理部104は、入力された検索文を有向グラフ化する。また、グラフ処理部104は、有向グラフで表現された検索文を、DB110が対応しているDSLに変換する。パラメータ記憶部105は、検索文において対象とされるイベントの種別、イベントの内容、およびイベントの対応パラメータ等を含むパラメータ情報をあらかじめ記憶する。なお、パラメータ情報は、後述するイベントの発生源に関連する情報(例えば、発生源の種別、内容、他の発生源との関連性)を含んでいてもよい。
 本実施形態および以下の実施形態において、イベントには、少なくとも、ファイルアクセス操作(例えば、write )、プロセスの起動もしくは生成または終了(例えば、start やexit)、および通信操作(例えば、open)が含まれる。
 クエリ処理部106は、DB110にクエリを発行する。
 図2は、表示装置120に表示される画面の一例を示す説明図である。図2に示す例では、画面200は、検索文入力部201、グラフ表示部202、表示パラメータ選択部203、検索履歴表示部204、および検索結果表示部205の各領域を含む。
 検索文入力部201は、ユーザが検索文を入力するために使用される。グラフ表示部202は、作成された有向グラフを表示するために使用される。表示パラメータ選択部203は、検索結果とともに表示されるパラメータをユーザが選択するために使用される。検索履歴表示部204は、過去に使用された検索文を有向グラフの形式で表示するために使用される。検索結果表示部205には、検索結果が表示される。
 図3は、グラフ化された検索文の一例を示す説明図である。検索文は、有向グラフ化されている。
 図3には、「プロセスAが、ファイルBに対して書き込みを行い、プロセスCを生成し、プロセスCが通信先Dと通信を開始する」という一連の動作(機能)を表す検索文がグラフ化された例が示されている。なお、図3に示す例では、一連の動作には、「プロセスAがファイルBに対して書き込みを行う」という動作と、「プロセスAがプロセスCを生成する」という動作と、「プロセスCが通信先Dと通信を開始する」という動作とが含まれている。
 すなわち、「動作」は、検索文を構成する検索内容に相当する。なお、本明細書では、検索文に含まれる1つまたは複数の動作を、「検索内容」または「発生事象」という。また、検索内容は、一例として、[イベントの発生源、write やstart 等のイベント、イベントの対象]で構成される。
 図3に示された有向グラフにおいて、プロセス301(プロセスA)は、イベント305(ファイル操作イベント)の発生源に相当する。ファイル302(ファイルB)は、イベント305の対象に相当する。プロセス303(プロセスC)は、イベント306(プロセス実行イベント)の対象に相当する。通信先304(通信先D)は、イベント307(通信操作イベント)の対象に相当する。プロセス303(プロセスC)は、イベント307(通信操作イベント)の発生源でもある。
 以下、イベントの発生源またはイベントの対象(図3に示す例では、プロセスA、ファイルB、プロセスCおよび通信先D)を、「構成要素」ともいう。
 本実施形態および以下の実施形態において、「構成要素」として、少なくとも、ファイル、プロセス、および通信先がある。
 有向グラフにおいて、構成要素はノードで表され、イベントはエッジで表される。
 図3に例示された有向グラフは、表示装置120に表示される。表示される有向グラフにおいて、後に生ずる発生事象のイベントの対象(または、イベントの発生源およびイベントの対象)に対応するノードが、前に生じた発生事象のイベントの対象(または、イベントの発生源およびイベントの対象)に対応するノードに対して時間的に後に生じたことをユーザが直感的に把握できるような位置に設定される。図3に示された例では、そのような位置は右側である。ただし、後に生ずる発生事象のノードの設定位置が右側であることは一例である。ユーザの特性等に応じて、時間的に後に生ずる発生事象であることをユーザが直感的に特定できるような位置は、右側以外の位置とされてもよい。
 次に、図4のフローチャートと図5および図6の説明図を参照して検索文活用装置100の動作を説明する。「プロセスAが、ファイルBに対して書き込みを行い、プロセスCを生成し、プロセスCが通信先Dと通信を開始する」という一連の検索内容を含む検索文を例にして説明を行う。
 図4には、検索文活用装置100の動作の一例が示されている。図5には、発生事象(検索内容)が記録されたテーブル501の一例が示されている。図6には、発生事象の依存関係に基づいて作成されるグラフ502の一例が示されている。テーブル501およびグラフ502は、検索文活用装置100が有する記憶装置(図1において図示せず)に記憶される。
 検索文入出力部101に検索文が入力されると、グラフ処理部104は、検索文の構文解析を行い、検索文を1つまたは複数の部分木に分割する(ステップS11)。部分木は、発生事象に対応する(図5参照)。
 グラフ処理部104は、図5に例示するように、部分木と対応する識別子とをテーブル501に設定する(ステップS12)。また、グラフ処理部104は、図6に例示するような、依存関係を特定可能に部分木が示されているグラフを作成する(ステップS13)。なお、グラフ処理部104は、ステップS12,S13の処理を実行するときに、パラメータ記憶部105に記憶されているパラメータ情報を利用する。
 全ての部分木についてステップS12,S13の処理を実行すると(ステップS14)、グラフ処理部104は、有向グラフを作成する(ステップS15)。具体的には、グラフ処理部104は、図6に例示されたような依存関係に従って、図5に例示されたような各々の部分木を配置する。グラフ処理部104は、作成した有向グラフを、グラフ入出力部102を介して表示装置120に表示する。なお、グラフ入出力部102は、有向グラフを、表示装置120の画面200におけるグラフ表示部202に表示する(図2参照)。
 グラフ処理部104は、有向グラフを作成するときに、所定の情報を用いて、有向グラフにおける部分木の位置を決定するようにしてもよい。グラフ処理部104は、所定の情報として、検索文に記述された情報を使用してもよい。例えば、検索文において発生事象の時間的な前後関係が明示的に記述されている場合には、グラフ処理部104は、有向グラフにおいて、時間的な順序(発生順序)に従って部分木を配置する。
 さらに、グラフ処理部104は、検索文を用いた検索の結果に付随してパラメータを表示可能な構成要素を、有向グラフから抽出する(ステップS16)。例えば、グラフ処理部104は、各々の構成要素に対応するパラメータを、パラメータ記憶部105から読み出す。そして、グラフ処理部104は、例えば、有向グラフにおける構成要素が、パラメータが設定されている各々の構成要素のいずれかと一致した場合、パラメータを表示可能であるとする。
 表示可能なパラメータは、クエリ処理部106による検索処理が実行された後、検索結果を表示装置120に表示するときに使用される。すなわち、クエリ処理部106は、パラメータを含めた検索結果を表示装置120に表示する。さらに、クエリ処理部106は、パラメータに対応する値(一例として、動作時間)の一覧も、表示装置120に表示してもよい。ユーザが検索文を絞り込む(例えば、重要でないと思われる発生事象を検索文から削除)ときに、一覧が表示されることによって、絞り込み作業の効率が向上することが期待される。
 グラフ処理部104は、表示可能なパラメータを決定するときに、パラメータの候補をユーザに提示し、表示されるパラメータをユーザに選択させるようにしてもよい。その場合、グラフ処理部104は、パラメータ記憶部105から読み出したパラメータを、表示可能なパラメータの候補としてグラフ入出力部102を介して表示装置120に表示する。なお、グラフ入出力部102は、表示可能なパラメータの候補を、表示装置120の画面200における表示パラメータ選択部203に表示する(図2参照)。なお、図2には、構成要素の名称(Outlook(登録商標)、word、malware)が表示された例が示されている。
 ユーザが、パラメータの候補から所望のパラメータを選択すると、グラフ処理部104は、選択されたパラメータを一時記憶するか、または、パラメータをクエリ処理部106に記憶させる。なお、ユーザは、入力装置130を介して、所望のパラメータの選択を行う。
 グラフ処理部104は、パラメータの候補を表示装置120に表示するときに、パラメータ記憶部105から読み出したパラメータを集約してもよい。例えば、グラフ処理部104は、1つの構成要素が有向グラフにおいて複数箇所に配置されている場合、パラメータを集約する。
 ユーザが、作成された有向グラフが表す検索文を用いて検索を実行する場合、クエリ処理部106は、検索文に基づくクエリをDB110に発行する。その後、グラフ処理部104は、使用された検索文に対応する有向グラフを、履歴情報保持部103に記録する。
 グラフ処理部104は、履歴情報保持部103に記録した有向グラフと、既に履歴情報保持部103に保持されている有向グラフとの類似度を計算してもよい。グラフ処理部104は、例えば、双方の有向グラフにおけるノードの一致度およびエッジの一致度を類似度とする。
 グラフ処理部104は、履歴情報保持部103に保持されている全てのまたは所定数の有向グラフを読み出す。グラフ処理部104は、有向グラフを、グラフ入出力部102を介して表示装置120に表示する。グラフ入出力部102は、有向グラフを、表示装置120の画面200における検索履歴表示部204に表示する(図2参照)。グラフ処理部104は、類似度が高い(例えば、他の1つまたは複数の有向グラフとの類似度の平均値が高い)順に、有向グラフを表示する。また、グラフ処理部104は、例えば、検索履歴表示部204において類似度が高い有向グラフが近接するように表示されるように、有向グラフを表示するようにしてもよい。
 ユーザが、検索履歴表示部204に表示されている1つまたは複数の有向グラフを選択した場合、検索文活用装置100は、選択された有向グラフから検索文を再構築する。検索文を再構築するための具体的な方法は、第2の実施形態において説明される。
 以上に説明したように、本実施形態では、検索文活用装置100が、検索文をノードとエッジで構成される有向グラフとしてユーザに提示するので、検索文が意味する内容をユーザが容易に把握可能になる。また、有向グラフにおいて、時間的な順序に従って部分木が配置されるようにすることによって、検索文における発生事象の時間的な順序、換言すれば、イベントの時間的な発生順序をユーザが容易に把握可能になる。その結果、ユーザが意図した検索文が構成されているのか否かを、ユーザが容易に判断できるようになる。
実施形態2.
 検索文活用装置100が有向グラフから検索文を再構築するときに、グラフ処理部104は、有向グラフを、検索文を構成する検索内容に対応する部分木に分ける。グラフ処理部104は、部分木を、図5に例示されたテーブル501と同様のテーブルに記録する。また、グラフ処理部104は、各々の部分木の有向グラフにおける配置位置に基づいて、検索内容(発生事象)の依存関係(例えば、イベントの発生順)を認識する。そして、グラフ処理部104は、依存関係を参照して、検索内容を記述することによって検索文を再構築する。
 本実施形態では、検索文活用装置100は、有向グラフを複数の部分木に分割し、複数の部分木の有向グラフにおける配置位置から、複数の部分木におけるイベントの発生順序を判定し、イベントの発生順序を参照して該複数の部分木から検索内容を再構築するので、ユーザは、過去に自身または他者が作成した検索文を容易に利用することができる。
実施形態3.
 検索文活用装置100は、複数の有向グラフを1つに統合することもできる。
 例えば、ユーザが、検索履歴表示部204に表示されている複数の有向グラフを指定したとする。その場合、グラフ入出力部102は、履歴情報保持部103から、指定された有向グラフを入力する。グラフ入出力部102は、入力した有向グラフをグラフ処理部104に出力する。
 グラフ処理部104は、複数の有向グラフの各々を、発生事象に分割する。それぞれの発生事象(検索内容)には、構成要素として、イベントの発生源とイベントの対象が含まれている。イベントの発生源とイベントの対象は、有向グラフではノードとして表されている。
 グラフ処理部104は、全ての検索内容から、ノードが一致する検索内容の組み合わせを選択する。グラフ処理部104は、全ての組み合わせを対象として、組み合わせに基づく有向グラフを作成する。
 そして、グラフ処理部104は、作成した有向グラフから、ループが生じている有向グラフを削除する。また、発生事象の順番に矛盾がある有向グラフを削除する。グラフ処理部104は、削除された有向グラフを含まない有向グラフ群を、表示装置120に表示する。なお、有向グラフ群に1つの有向グラフしか含まれない場合もあり得る。
 ユーザは、表示された有向グラフ群から、入力装置130を介して有向グラフを選択することができる。検索文活用装置100は、ユーザが選択した有向グラフを、統合された有向グラフとする。
 本実施形態では、検索履歴表示部204において指定された有向グラフを例にしたが、統合対象の有向グラフは、そのようなものに限られない。例えば、ユーザが入力装置130に入力した複数の有向グラフが統合されてもよい。
 なお、第1~第3の実施形態において、検索文活用装置100における各ブロック(ユニット)は、1つの装置内に設けられていてもよいし、複数の装置に分散して設けられていてもよい。
 以下、第1~第3の実施形態の具体的な実施例を説明する。
実施例1.
 第1の実施形態の具体例である第1の実施例を、図7および図8を参照して説明する。図7は、有向グラフの作成方法を説明するための説明図である。図8は、パラメータ記憶部105に記憶されているパラメータ情報の一例を示す説明図である。
 以下、「プロセスAが、ファイルBに対して書き込みを行い、プロセスCを生成し、プロセスCが通信先Dと通信を開始する」という一連の検索内容を含む検索文が入力された場合を例にする。具体的には、以下のように検索文が入力されたとする。
 proc A write file B as evt1
 (evt1 : プロセスAがファイルBに書き込む)
 proc A start proc C as evt2
 (evt2 : プロセスAがプロセスCを生成)
 proc C open ip D as evt3
 (evt3 : プロセスCが通信先Dとの通信を開始)
 with evt2 after evt1, evt3 after evt2
 (evt2がevt1の後, evt3がevt2の後)
 グラフ処理部104は、検索文を1つまたは複数の部分木に分割する。この例では、図7に示されるように、3つの部分木601,602,603が生成される。部分木の識別子は、evt1、evt2、evt3である。
 グラフ処理部104は、検索文に記述されている発生事象(検索内容)の順序に従って、部分木601,602,603を配置してグラフを作成する。この例では、図7に示されるように、部分木601、部分木602および部分木603が左から順に並べられたグラフ604が作成される。
 グラフ処理部104は、グラフ604においてノードが同一である複数の部分木を統合する。この例では、evt1のproc Aとevt2のproc Aとは同一である。また、evt2のproc Cとevt3のproc Cとは同一である。よって、グラフ処理部104は、図7に示されるように、部分木の配置順を変えないようにしつつ、部分木601と部分木602とを統合する。その結果、有向グラフ605が作成される。
 なお、「部分木の配置順を変えない」ということは、部分木603に対応するノードが部分木601,602に対応するノードよりも右側に配置され、かつ、部分木602に対応するノード(図7に示された例では、PROC C)が部分木601に対応するノード(図7に示された例では、FILE B)よりも右側に配置されるということである。
 また、グラフ処理部104は、パラメータ記憶部105に記憶されているパラメータ情報を参照する。そして、グラフ処理部104は、パラメータ情報に基づいて、例えば、以下のようなパラメータを、グラフ入出力部102を介して表示装置120の画面200における表示パラメータ選択部203に表示する。
・Proc A, C が動作しているマシン名
・Proc Aのname(名称), pid(プロセスID(Identification))
・Proc Bのname, pid
・Proc Cのname, pid
・File Bのname, path
・ip Dのaddress, port
・evt1の発生時間
・evt2の発生時間
・evt3の発生時間
実施例2.
 第2の実施形態の具体例である第2の実施例を、図9および図10を参照して説明する。図9は、有向グラフの一例を示す説明図である。図10は、有向グラフから検索文を作成する方法を説明するための説明図である。
 グラフ処理部104が、図9に示す有向グラフから検索文を作成(再構築)する場合を例にする。
 グラフ処理部104は、有向グラフを複数の部分木に分解する。すなわち、グラフ処理部104は、1つのエッジとその両側に存在する2つのノードからなる部分木を得る。その結果、図10(A)に示すような4つの部分木(識別子がevt1,evt2,evt3,evt4 の部分木)が得られる。
 そして、グラフ処理部104は、4つの部分木の依存関係に応じたグラフを作成する(図10(B)参照)。依存関係には、発生事象の発生順が含まれる。有向グラフにおいて、後に生起した発生事象におけるノード(イベントの発生源に応じたノードまたはイベントの対象に応じたノード)は、前に生起した発生事象におけるノードよりも右側に配置されている。よって、グラフ処理部104は、有向グラフにおける位置関係に基づいて、容易に依存関係を判別できる。
 グラフ処理部104は、図10(A)に示されたevt1,evt2,evt3,evt4に基づいて、以下のような検索文を作成する。また、図10(B)に示されたグラフに基づいて、依存関係(生起順)に関する記述を検索文に加える。
proc A write file B as evt1
(evt1 : プロセスAがファイルBに書き込む)
proc A start proc C as evt2
(evt2 : プロセスAがプロセスCを生成)
proc C read file E as evt3
(evt3 : プロセスCがファイルEを読み込む)
proc C start proc D as evt4
(evt4 : プロセスCがプロセスDを生成)
with evt2 after evt1, evt3 after evt2, evt4 after evt3, B.name = E.name
 また、グラフ処理部104は、以下のように、検索文にパラメータを付加する。
・Proc A, C, Dが動作しているマシン名
・Proc Aのname, pid
・Proc Cのname, pid
・Proc Dのname, pid
・File B, E のname
・File Bのpath
・File Eのpath
・evt1の発生時間
・evt2の発生時間
・evt3の発生時間
・evt4の発生時間
 なお、依存関係(生起順)に関する記述は、実質的に以下のような検索文に相当する。
 「プロセスAが、ファイルBに書き込みを行った後プロセスCを生成し、プロセスCが、ファイルEを読み込んだ後プロセスDを生成する。」
実施例3.
 第3の実施形態の具体例である第3の実施例を、図11を参照して説明する。図11は、複数の検索文の統合方法を説明するための説明図である。
 図11に例示する2つの検索文に対応する有向グラフ1001,1002が存在するとする。それらを統合する場合、グラフ処理部104は、有向グラフ1001,1002の各々を、発生事象に対応するグラフに分割する。図11に示す例では、有向グラフ1001は、グラフ1003-1、1003-2、1003-3に分割される。なお、グラフ1003-1、1003-2、1003-3をグラフ群1003という。また、有向グラフ1002は、グラフ1004-1、1004-2、1004-3に分割される。なお、グラフ1004-1、1004-2、1004-3をグラフ群1004という。
 次に、グラフ処理部104は、グラフ群1003におけるグラフ1003-1、1003-2、1003-3と、グラフ群1004におけるグラフ1004-1、1004-2、1004-3とを比較する。具体的には、グラフ処理部104は、グラフ群1003における各発生事象(グラフに相当)のイベントとグラフ群1004における各発生事象のイベントとを比較する。
 図11に示す例では、グラフ1003-1のイベントとグラフ1004-3のイベントとは同じである。また、グラフ1003-3のイベントとグラフ1004-1およびグラフ1004-2のイベントとは同じである。その他にも、イベントが共通するグラフがある。イベントが共通するグラフを組み合わせると、組み合わせは、以下のようになる。すなわち、新たに生成される有向グラフの候補になりうるグラフの組み合わせは、以下のようになる。
・組A:[(1003-1,1004-3)]
・組B:[(1003-3,1004-1)]
・組C:[(1003-3,1004-2)]
・組D:[(1003-1,1004-3),(1003-3,1004-1)]
・組E:[(1003-1,1004-3),(1003-3,1004-2)]
 各々の組み合わせを結合してグラフ化した場合、組Dおよび組Eの場合には、グラフにおいてループが生ずる。グラフ処理部104は、そのような組み合わせに基づいて新たな有向グラフを生成することはしない。すなわち、グラフ処理部104は、そのような組み合わせに基づく有向グラフを、新たに生成される有向グラフの候補から除外する。グラフ処理部104は、ループが生じない組を結合して、新たな有向グラフを生成する。
 組Aに基づいて、図11における有向グラフ1005が生成される。組Bに基づいて、図11における有向グラフ1006が生成される。組Cに基づいて、図11における有向グラフ1007が生成される。なお、図11に示す例では、組A,B,Cに基づく有向グラフを作成するときに、グラフ群1003における他のグラフも活用されている。
 グラフ処理部104は、複数の有向グラフを作成した場合には、ユーザに有向グラフを選択させるようにしてもよい。その場合には、グラフ処理部104は、グラフ入出力部102を介して表示装置120に複数の有向グラフを表示する。ユーザが入力装置130を介して選択指定を行った場合、グラフ処理部104は、指定された有向グラフを、ユーザが選択した有向グラフとする。
 なお、グラフ処理部104は、グラフ群1003,1004から有向グラフ1005,1006,1007を生成するときに、各々の部分木におけるイベント(open等)が共通する構成要素を同じと見なす。
 例えば、有向グラフ1007を例にすると、グラフ処理部104は、部分木1003-3(PROC C→IP D)の構成要素と部分木1004-2(PROC G→IP F)の構成要素とを同じと見なす。すなわち、グラフ処理部104は、PROC C=PROC G、IP D=IP Fと見なす。同様に、部分木1004-1における(PROC E→IP F)は、(PROC E→IP D)と見なされる。そのようにした結果、有向グラフ1007が生成される。
 IT(Information Technology)システムにおいて、外部からの攻撃や侵入を防ぐとともに、侵入や攻撃などを検知するセキュリティシステムが導入されている。セキュリティシステムでは、ルールベースや機械学習による侵入検知および攻撃検知が行われる。侵入や攻撃が検知された後、どういった行動や状態が侵入の原因であったかや、行われた攻撃の深刻度を把握するために、プロセス、ファイル操作、通信等の履歴を検索する機能が求められている。
 ユーザは、第1~第3の実施形態の検索文活用装置100を使用することによって、容易に履歴を検索するための検索文を作成することができる。したがって、検索文を作成するための高いスキルを有していなくても、ユーザは、容易に履歴を検索することができる。すなわち、ユーザは、外部からの攻撃や侵入の原因等を、より容易に、かつ、短時間で特定できるようになる。
 図12は、CPUを有するコンピュータの一例を示すブロック図である。コンピュータは、検索文活用装置100に実装される。CPU2000は、記憶装置2001に格納されたプログラムに従って処理を実行することによって、上記の実施形態における各機能を実現する。すなわち、図1に示された検索文活用装置100における、グラフ処理部104およびクエリ処理部106の機能、ならびにその他のブロックにおける演算に関する機能を実現する。
 記憶装置2001は、例えば、非一時的なコンピュータ可読媒体(non-transitory computer readable medium )である。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium )を含む。非一時的なコンピュータ可読媒体の具体例として、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD-ROM(Compact Disc-Read Only Memory )、CD-R(Compact Disc-Recordable )、CD-R/W(Compact Disc-ReWritable )、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM )、フラッシュROM)がある。また、記憶装置2001は、履歴情報保持部103およびパラメータ記憶部105を実現する。
 また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium )に格納されてもよい。一時的なコンピュータ可読媒体には、例えば、有線通信路または無線通信路を介して、すなわち、電気信号、光信号または電磁波を介して、プログラムが供給される。
 メモリ2002は、例えばRAM(Random Access Memory)で実現され、CPU2000が処理を実行するときに一時的にデータを格納する記憶手段である。メモリ2002に、記憶装置2001または一時的なコンピュータ可読媒体が保持するプログラムが転送され、CPU2000がメモリ2002内のプログラムに基づいて処理を実行するような形態も想定しうる。
 図13は、検索文活用装置10の主要部を示すブロック図である。図13に示すように、検索文活用装置10は、検索文を、各々がイベントを含む複数の検索内容に分割する検索文分割部11(実施形態では、グラフ処理部104で実現される。)と、検索内容の各々から、イベントをエッジとしイベントの発生源およびイベントの対象をノードとする部分木を作成し、それらの部分木を結合して有向グラフを作成する有向グラフ作成部12(実施形態では、グラフ処理部104で実現される。)とを備える。有向グラフ作成部12は、有向グラフにおいて、イベントの発生順序に対応させて複数の部分木を配置する。
 図14は、他の態様の検索文活用装置10の主要部を示すブロック図である。図14に示す検索文活用装置10は、さらに、作成された有向グラフを記憶する有向グラフ蓄積部13(実施形態では、履歴情報保持部103で実現される。)と、有向グラフ蓄積部13が記憶する有向グラフを、ユーザが選択可能に表示する有向グラフ表示部14(実施形態では、グラフ入出力部102およびグラフ処理部104で実現される。)とを備える。
 図15は、さらに他の態様の検索文活用装置10の主要部を示すブロック図である。図15に示す検索文活用装置10は、さらに、複数の有向グラフを統合する有向グラフ統合部15備える。有向グラフ統合部15は、各々の有向グラフを部分木に分割し、複数の有向グラフのうちの一の有向グラフを分割して得た部分木に対応するイベントと、他の有向グラフを分割して得た部分木に対応するイベントとを比較し、少なくとも、イベントが共通する部分木を結合することによって新たな有向グラフを生成する。
 図16は、別の態様の検索文活用装置10の主要部を示すブロック図である。図16に示す検索文活用装置10は、さらに、有向グラフから、イベントの発生源の1つまたは複数のパラメータおよびイベントの対象の1つまたは複数のパラメータを参照して(実施形態では、それらのパラメータはパラメータ記憶部105に記憶されている。)、有向グラフに対応する検索文を用いた検索の結果とともに表示装置に表示するパラメータを抽出するパラメータ抽出部16(実施形態では、グラフ処理部104で実現される。)を備える。
 上記の実施形態の一部または全部は、以下の付記のようにも記載され得るが、以下に限定されるわけではない。
(付記1)検索文を、各々がイベントを含む複数の検索内容に分割する検索文分割手段と、
 前記検索内容の各々から、前記イベントをエッジとし前記イベントの発生源および前記イベントの対象をノードとする部分木を作成し、それらの部分木を結合して有向グラフを作成する有向グラフ作成手段とを備え、
 前記有向グラフ作成手段は、前記イベントの発生順序に対応させて複数の前記部分木を前記有向グラフにおいて配置する
 検索文活用装置。
(付記2)前記有向グラフ作成手段は、前に発生したイベントの対象に対応するノードに対して、後に発生したイベントの対象に対応するノードを、イベントの発生順序が後であることを特定可能に前記有向グラフにおいて配置する
 付記1の検索文活用装置。
(付記3)前記有向グラフを複数の部分木に分割し、該複数の部分木の前記有向グラフにおける配置位置から、該複数の部分木に対応するイベントの発生順序を判定し、該イベントの発生順序を参照して該複数の部分木から検索内容を再構築する検索文再構築手段をさらに備える
 付記1または付記2の検索文活用装置。
(付記4)作成された有向グラフを記憶する有向グラフ蓄積手段と、
 前記有向グラフ蓄積手段が記憶する有向グラフを、ユーザが選択可能に表示装置に表示する有向グラフ表示手段とをさらに備える
 付記1から付記3のうちのいずれかの検索文活用装置。
(付記5)複数の有向グラフを統合する有向グラフ統合手段をさらに備え、
 前記有向グラフ統合手段は、
 各々の有向グラフを部分木に分割し、
 複数の有向グラフのうちの一の有向グラフを分割して得た部分木に対応するイベントと、他の有向グラフを分割して得た部分木に対応するイベントとを比較し、
 少なくとも、イベントが共通する部分木を結合することによって新たな有向グラフを生成する
 付記1から付記4のうちのいずれかの検索文活用装置。
(付記6)前記有向グラフ統合手段は、少なくとも、イベントが共通する部分木を結合することによって生成した有向グラフを新たな有向グラフの候補とし、ループを含む有向グラフが除外された該候補を新たな有向グラフとする
 付記5の検索文活用装置。
(付記7)有向グラフから、イベントの発生源の1つまたは複数のパラメータおよびイベントの対象の1つまたは複数のパラメータを参照して、前記有向グラフに対応する検索文を用いた検索の結果とともに表示装置に表示するパラメータを抽出するパラメータ抽出手段をさらに備える
 付記1から付記6のうちのいずれかの検索文活用装置。
(付記8)有向グラフのノードは、ファイルとプロセスと通信先とのうちのいずれかに対応し、
 有向グラフのエッジは、ファイルアクセス操作とプロセスの起動または終了と、通信操作とのうちのいずれかに対応する
 付記1から付記7のうちのいずれかの検索文活用装置。
(付記9)検索文を、各々がイベントを含む複数の検索内容に分割し、
 前記検索内容の各々から、前記イベントをエッジとし前記イベントの発生源および前記イベントの対象をノードとする部分木を作成し、それらの部分木を結合して有向グラフを作成し、
 前記有向グラフを作成するときに、前記イベントの発生順序に対応させて複数の前記部分木を前記有向グラフにおいて配置する
 検索文活用方法。
(付記10)前記有向グラフを作成するときに、前に発生したイベントの対象に対応するノードに対して、後に発生したイベントの対象に対応するノードを、イベントの発生順序が後であることを特定可能に前記有向グラフにおいて配置する
 付記9の検索文活用方法。
(付記11)コンピュータに、
 検索文を、各々がイベントを含む複数の検索内容に分割する処理と、
 前記検索内容の各々から、前記イベントをエッジとし前記イベントの発生源および前記イベントの対象をノードとする部分木を作成し、それらの部分木を結合して有向グラフを作成する処理とを実行させ、
 前記有向グラフを作成するときに、前記イベントの発生順序に対応させて複数の前記部分木を前記有向グラフにおいて配置する処理を実行させる
 ための検索文活用プログラム。
(付記12)コンピュータに、
 前記有向グラフを作成するときに、前に発生したイベントの対象に対応するノードに対して、後に発生したイベントの対象に対応するノードを、イベントの発生順序が後であることを特定可能に前記有向グラフにおいて配置する処理を実行させる
 付記10の検索文活用プログラム。
(付記13)検索文活用プログラムが記憶された非一時的な記録媒体であって、検索文活用プログラムは、プロセッサで実行されるときに、検索文を、各々がイベントを含む複数の検索内容に分割する処理と、
 前記検索内容の各々から、前記イベントをエッジとし前記イベントの発生源および前記イベントの対象をノードとする部分木を作成し、それらの部分木を結合して有向グラフを作成する処理とを実行させ、
 前記有向グラフを作成するときに、前記イベントの発生順序に対応させて複数の前記部分木を前記有向グラフにおいて配置する処理を実行させる。
(付記14)検索文活用プログラムは、プロセッサで実行されるときに、前に発生したイベントの対象に対応するノードに対して、後に発生したイベントの対象に対応するノードを、イベントの発生順序が後であることを特定可能に前記有向グラフにおいて配置する処理を実行させる
 付記13の記録媒体。
 10   検索文活用装置
 11   検索文分割部
 12   有向グラフ作成部
 13   有向グラフ蓄積部
 14   有向グラフ表示部
 15   有向グラフ統合部
 16   パラメータ抽出部
 100  検索文活用装置
 101  検索文入出力部
 102  グラフ入出力部
 103  履歴情報保持部
 104  グラフ処理部
 105  パラメータ記憶部
 106  クエリ処理部
 110  データベース(DB)
 120  表示装置
 130  入力装置
 2000 CPU
 2001 記憶装置
 2002 メモリ

Claims (12)

  1.  検索文を、各々がイベントを含む複数の検索内容に分割する検索文分割手段と、
     前記検索内容の各々から、前記イベントをエッジとし前記イベントの発生源および前記イベントの対象をノードとする部分木を作成し、それらの部分木を結合して有向グラフを作成する有向グラフ作成手段とを備え、
     前記有向グラフ作成手段は、前記イベントの発生順序に対応させて複数の前記部分木を前記有向グラフにおいて配置する
     検索文活用装置。
  2.  前記有向グラフ作成手段は、前に発生したイベントの対象に対応するノードに対して、後に発生したイベントの対象に対応するノードを、イベントの発生順序が後であることを特定可能に前記有向グラフにおいて配置する
     請求項1記載の検索文活用装置。
  3.  前記有向グラフを複数の部分木に分割し、該複数の部分木の前記有向グラフにおける配置位置から、該複数の部分木に対応するイベントの発生順序を判定し、該イベントの発生順序を参照して該複数の部分木から検索内容を再構築する検索文再構築手段をさらに備える
     請求項1または請求項2記載の検索文活用装置。
  4.  作成された有向グラフを記憶する有向グラフ蓄積手段と、
     前記有向グラフ蓄積手段が記憶する有向グラフを、ユーザが選択可能に表示装置に表示する有向グラフ表示手段とをさらに備える
     請求項1から請求項3のうちのいずれか1項に記載の検索文活用装置。
  5.  複数の有向グラフを統合する有向グラフ統合手段をさらに備え、
     前記有向グラフ統合手段は、
     各々の有向グラフを部分木に分割し、
     複数の有向グラフのうちの一の有向グラフを分割して得た部分木に対応するイベントと、他の有向グラフを分割して得た部分木に対応するイベントとを比較し、
     少なくとも、イベントが共通する部分木を結合することによって新たな有向グラフを生成する
     請求項1から請求項4のうちのいずれか1項に記載の検索文活用装置。
  6.  前記有向グラフ統合手段は、少なくとも、イベントが共通する部分木を結合することによって生成した有向グラフを新たな有向グラフの候補とし、ループを含む有向グラフが除外された該候補を新たな有向グラフとする
     請求項5記載の検索文活用装置。
  7.  有向グラフから、イベントの発生源の1つまたは複数のパラメータおよびイベントの対象の1つまたは複数のパラメータを参照して、前記有向グラフに対応する検索文を用いた検索の結果とともに表示装置に表示するパラメータを抽出するパラメータ抽出手段をさらに備える
     請求項1から請求項6のうちのいずれか1項に記載の検索文活用装置。
  8.  有向グラフのノードは、ファイルとプロセスと通信先とのうちのいずれかに対応し、
     有向グラフのエッジは、ファイルアクセス操作とプロセスの起動または終了と通信操作とのうちのいずれかに対応する
     請求項1から請求項7のうちのいずれか1項に記載の検索文活用装置。
  9.  検索文を、各々がイベントを含む複数の検索内容に分割し、
     前記検索内容の各々から、前記イベントをエッジとし前記イベントの発生源および前記イベントの対象をノードとする部分木を作成し、それらの部分木を結合して有向グラフを作成し、
     前記有向グラフを作成するときに、前記イベントの発生順序に対応させて複数の前記部分木を前記有向グラフにおいて配置する
     検索文活用方法。
  10.  前記有向グラフを作成するときに、前に発生したイベントの対象に対応するノードに対して、後に発生したイベントの対象に対応するノードを、イベントの発生順序が後であることを特定可能に前記有向グラフにおいて配置する
     請求項9記載の検索文活用方法。
  11.  コンピュータに、
     検索文を、各々がイベントを含む複数の検索内容に分割する処理と、
     前記検索内容の各々から、前記イベントをエッジとし前記イベントの発生源および前記イベントの対象をノードとする部分木を作成し、それらの部分木を結合して有向グラフを作成する処理とを実行させ、
     前記有向グラフを作成するときに、前記イベントの発生順序に対応させて複数の前記部分木を前記有向グラフにおいて配置する処理を実行させる
     ための検索文活用プログラム。
  12.  コンピュータに、
     前記有向グラフを作成するときに、前に発生したイベントの対象に対応するノードに対して、後に発生したイベントの対象に対応するノードを、イベントの発生順序が後であることを特定可能に前記有向グラフにおいて配置する処理を実行させる
     請求項10記載の検索文活用プログラム。
PCT/JP2018/009960 2018-03-14 2018-03-14 検索文活用装置および検索文活用方法 WO2019176011A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2018/009960 WO2019176011A1 (ja) 2018-03-14 2018-03-14 検索文活用装置および検索文活用方法
JP2020506022A JP7006769B2 (ja) 2018-03-14 2018-03-14 検索文活用装置および検索文活用方法
US16/980,234 US11727059B2 (en) 2018-03-14 2018-03-14 Retrieval sentence utilization device and retrieval sentence utilization method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/009960 WO2019176011A1 (ja) 2018-03-14 2018-03-14 検索文活用装置および検索文活用方法

Publications (1)

Publication Number Publication Date
WO2019176011A1 true WO2019176011A1 (ja) 2019-09-19

Family

ID=67907009

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/009960 WO2019176011A1 (ja) 2018-03-14 2018-03-14 検索文活用装置および検索文活用方法

Country Status (3)

Country Link
US (1) US11727059B2 (ja)
JP (1) JP7006769B2 (ja)
WO (1) WO2019176011A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113312490B (zh) * 2021-04-28 2023-04-18 乐山师范学院 一种针对突发事件的事件知识图谱构建方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05233397A (ja) * 1992-02-21 1993-09-10 Toshiba Corp 適用プログラム実行管理方法
JP2010108152A (ja) * 2008-10-29 2010-05-13 Hitachi Ltd ストリームデータ処理方法、及びそのシステム
US20110119245A1 (en) * 2009-11-19 2011-05-19 Sargeant Daniel System and method for optimizing pattern query searches on a graph database
JP2017130236A (ja) * 2011-05-02 2017-07-27 アビニシオ テクノロジー エルエルシー データクエリの管理

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7596559B2 (en) * 2004-10-28 2009-09-29 International Business Machines Corporation Constraint-based XML query rewriting for data integration
JP6598291B2 (ja) 2015-05-21 2019-10-30 日本電気株式会社 検索式可視化装置、検索システム、検索式可視化方法および検索式可視化プログラム
EP3446242B1 (en) * 2017-04-25 2024-04-17 Murex S.A.S Query plan generation and execution in a relational database management system with a temporal-relational database

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05233397A (ja) * 1992-02-21 1993-09-10 Toshiba Corp 適用プログラム実行管理方法
JP2010108152A (ja) * 2008-10-29 2010-05-13 Hitachi Ltd ストリームデータ処理方法、及びそのシステム
US20110119245A1 (en) * 2009-11-19 2011-05-19 Sargeant Daniel System and method for optimizing pattern query searches on a graph database
JP2017130236A (ja) * 2011-05-02 2017-07-27 アビニシオ テクノロジー エルエルシー データクエリの管理

Also Published As

Publication number Publication date
US11727059B2 (en) 2023-08-15
US20210342396A1 (en) 2021-11-04
JP7006769B2 (ja) 2022-01-24
JPWO2019176011A1 (ja) 2021-02-04

Similar Documents

Publication Publication Date Title
US11972203B1 (en) Using anchors to generate extraction rules
US10783324B2 (en) Wizard for configuring a field extraction rule
US10783318B2 (en) Facilitating modification of an extracted field
US10733055B1 (en) Methods and apparatus related to graph transformation and synchronization
US11042539B2 (en) Identifying field values based on user-selected extraction mode
US11294963B2 (en) String matching method, string matching apparatus, storage medium, and electronic device
EP1741191A2 (en) Processing data in a computerised system
CN105825137B (zh) 一种确定敏感数据扩散行为的方法及装置
CN104636130A (zh) 用于生成事件树的方法和系统
US11086906B2 (en) System and method for reconciliation of data in multiple systems using permutation matching
CN114969819A (zh) 数据资产风险发现方法和装置
US10346450B2 (en) Automatic datacenter state summarization
WO2019176011A1 (ja) 検索文活用装置および検索文活用方法
JP2005284608A (ja) データ検索システム、データ検索方法
CN108304467B (zh) 用于文本间匹配的方法
US10977282B2 (en) Generating device, generating method, and non-transitory computer-readable recording medium
JP6802109B2 (ja) ソフトウェア仕様分析装置、及びソフトウェア仕様分析方法
CN108920676B (zh) 一种处理图数据的方法及系统
Harding et al. Sequence-RTG: efficient and production-ready pattern mining in system log messages
Brügger et al. Generalized graph matching for data mining and information retrieval
CN111078671A (zh) 数据表字段的修改方法、装置、设备和介质
US20220188339A1 (en) Network environment synchronization apparatus and method
Ohtani et al. On the level of code suggestion for reuse
JP6631139B2 (ja) 検索制御プログラム、検索制御方法および検索サーバ装置
CN115756460A (zh) 一种文件管理页面的生成方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2020506022

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18909576

Country of ref document: EP

Kind code of ref document: A1