Trie-Based User-Agent String Segmentation for Device Identification
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current methods for identifying communication device properties from HTTP headers, particularly User-Agents, are inefficient due to the vast number of varying formats and the increasing computational resources required for pattern matching and database lookups, leading to slow response times and storage constraints for small to medium-sized websites.
Innovation Solution
A method involving the use of trie data structures and regular expressions to efficiently identify substrings within User-Agent strings, associating these substrings with device profiles, and storing them in a structured format to reduce computational complexity and storage needs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If traditional pattern matching and database lookup methods are used to identify device properties from User-Agent strings, then identification accuracy can be maintained, but response time increases significantly and computational resources are excessively consumed
Solution Approach 1:
The patent segments the User-Agent string into multiple substrings at different character positions (e.g., position 0, position 5, position 10). Each substring is independently processed and matched against corresponding data structures. This segmentation allows the system to identify device properties by examining only relevant portions of the User-Agent string rather than performing exhaustive pattern matching on the entire string, thereby reducing computational complexity and response time while maintaining identification accuracy.
2Adaptability or versatility
If comprehensive device information is stored in traditional data structures, then identification coverage is improved, but storage requirements increase significantly
Solution Approach 1:
The patent divides the comprehensive device information database into multiple segmented data structures, where each data structure stores substrings occurring at a specific character position in User-Agent strings. This segmentation allows the system to store only the necessary portions of device information relevant to each position, eliminating redundant data while maintaining comprehensive device identification coverage across various device types and configurations.
3Measurement precision
If exhaustive pattern matching is performed on entire User-Agent strings, then device identification accuracy is maintained, but computational complexity increases
Solution Approach 1:
The patent reduces computational complexity by segmenting the pattern matching process into multiple independent operations. Instead of performing one exhaustive pattern match on the entire User-Agent string, the system performs multiple simpler pattern matches on substrings at different character positions. Each substring match is computationally less intensive, and the combination of these partial matches achieves the same identification accuracy as exhaustive pattern matching would provide.
Solution Approach 2:
The patent extracts and processes only the relevant substrings from the User-Agent string at specific character positions, rather than processing the entire string. This extraction approach eliminates unnecessary computational operations on irrelevant portions of the User-Agent string while maintaining the accuracy needed for device identification, thereby reducing overall computational complexity.
Data Source
AI summary
A method (300) of generating information for use in identifying a property of a communication device (10) includes identifying (304) one or more substrings within a character string that identifies the communication device. For each substring, an entry is added (306) to a respective one of a plurality of data structures (800), each data structure being designated for storing substrings that occur at a particular character position within the character string. Each entry is associated (310) with a profile that includes a value of at least one property of the communication device. Also disclosed is a method (1000) of identifying the properties of a communication device based on such previously-generated information.


