Conditional String Search Engine for Data Stream Pattern Matching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing string search methods in data streams are inefficient when dealing with complex patterns and fail to account for positional correlations among strings, leading to increased search effort and reduced throughput.

Innovation Solution

A method that groups string patterns into sets based on predetermined criteria, defines parameterized search states, and associates each pattern with search actions and domains, allowing for efficient location and processing of string patterns by adjusting search domains and states based on found patterns.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If string patterns are searched sequentially in a data stream, then all patterns can be detected, but the search time increases significantly

Engineering Contradiction:
Improvepattern detection completenessVSAvoidsearch time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent pre-processes the pattern set during initialization to compute failure functions and build transition tables before actual string search begins. This preliminary computation stores preprocessing information that enables efficient pattern matching during the search phase, reducing the time required for each pattern match while ensuring complete detection of all patterns in the data stream.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the entire data stream is searched for each pattern, then no patterns are missed, but the search effort increases

Engineering Contradiction:
Improvepattern detection accuracyVSAvoidsearch throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the search process into distinct phases: initialization where the pattern set is pre-processed and organized into a finite automaton structure, and search execution where the pre-built structure is utilized for efficient pattern matching. This segmentation allows the system to maintain high detection accuracy while improving throughput by avoiding redundant processing during the search phase.

Inventive Principle:
Principle #1Segmentation

3Ease of manufacture

If simple string search methods are used, then the implementation is straightforward, but complex patterns cannot be effectively detected

Engineering Contradiction:
Improveimplementation simplicityVSAvoidpattern complexity handling
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The patent implements a universal pattern matching system based on finite automata that can handle both simple and complex patterns through the same computational framework. The AC automaton structure provides a multi-functional solution that accommodates various pattern types including simple strings, complex patterns with wildcards, and hierarchical patterns, all within a unified algorithmic approach that maintains implementation efficiency.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10346456B2Conditional string search
Publication Date: 2019.07.09 TREND MICRO INC
  • US10346456B2 patent drawing
  • US10346456B2 patent drawing
  • US10346456B2 patent drawing

AI summary

A method and a system for efficient search of string patterns characterized by positional relationships in a character stream are disclosed. The method is based on grouping string patterns of a dictionary into at least two string sets and performing string search processes of a text of the character stream based on individual string sets with the outcome of a search process influencing a subsequent search process. A system implementing the method comprises a dictionary processor for generating string sets with corresponding text actions and search actions, a conditional search engine for locating string patterns belonging to at least one string set in a text according to a current search state, a text operator for producing an output text according to search results, and a search operator for determining a subsequent search state.