Static-analysis-assisted dynamic application crawling architecture
First Claim
1. An apparatus for automated acquisition of content from an application and improved searching of the content in response to a query from a user device, the apparatus comprising:
- a memory; and
at least one processor performing static analysis, the at least one processor being configured to, using static analysis;
identify application state templates of the application, andidentify user interface elements that are configured to transition between states instantiated from different ones of the identified application state templates,wherein the static analysis includes analyzing code of the application independent of executing the code,wherein the at least one processor performs graph creation, the at least one processor being further configured to create a graph data structure including nodes and edges connecting the nodes, wherein the nodes correspond to the identified application state templates, and wherein the edges correspond to transitions between the identified application state templates corresponding to the identified user interface elements,wherein the at least one processor performs link extraction, the at least one processor being further configured to;
execute the application, anddetermine and record paths to application states within the executing application according to the graph data structure,wherein the at least one processor performs scraping, the at least one processor being further configured to, within an executing instance of the application, extract text and metadata from application states corresponding to endpoints of the recorded paths, wherein information based on the extracted text and metadata is stored in the memory of the apparatus, andwherein the at least one processor is further configured to transmit search results in response to the query from the user device.
4 Assignments
0 Petitions
Accused Products
Abstract
A system for automated acquisition of content from an application includes a static analysis module. Using static analysis (analyzing code of the application independent of executing the code), the static analysis module identifies application state templates of the application and identifies user interface elements that, when actuated by a user, transition between states instantiated from different ones of the identified state templates. A graph creation module creates a graph data structure including nodes corresponding to the identified state templates and edges connecting the nodes. The edges are transitions corresponding to the identified user interface elements. A link extractor module executes the application and determines and records paths to states within the executing application according to the graph data structure. A scraper module, within an executing instance of the application, extracts text and metadata from states corresponding to endpoints of the recorded paths.
-
Citations
29 Claims
-
1. An apparatus for automated acquisition of content from an application and improved searching of the content in response to a query from a user device, the apparatus comprising:
-
a memory; and at least one processor performing static analysis, the at least one processor being configured to, using static analysis; identify application state templates of the application, and identify user interface elements that are configured to transition between states instantiated from different ones of the identified application state templates, wherein the static analysis includes analyzing code of the application independent of executing the code, wherein the at least one processor performs graph creation, the at least one processor being further configured to create a graph data structure including nodes and edges connecting the nodes, wherein the nodes correspond to the identified application state templates, and wherein the edges correspond to transitions between the identified application state templates corresponding to the identified user interface elements, wherein the at least one processor performs link extraction, the at least one processor being further configured to; execute the application, and determine and record paths to application states within the executing application according to the graph data structure, wherein the at least one processor performs scraping, the at least one processor being further configured to, within an executing instance of the application, extract text and metadata from application states corresponding to endpoints of the recorded paths, wherein information based on the extracted text and metadata is stored in the memory of the apparatus, and wherein the at least one processor is further configured to transmit search results in response to the query from the user device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A search apparatus for improved acquisition of content and searching of the content in response to a query from a user device, the search apparatus comprising:
-
a memory; and at least one processor performing static analysis, the at least one processor being configured to, using static analysis; identify application state templates of the application, and identify user interface elements that are configured to transition between states instantiated from different ones of the identified application state templates, wherein the static analysis includes analyzing code of the application independent of executing the code, wherein the at least one processor performs graph creation, the at least one processor being further configured to create a graph data structure including nodes and edges connecting the nodes, wherein the nodes correspond to the identified application state templates, and wherein the edges correspond to transitions between the identified application state templates corresponding to the identified user interface elements, wherein the at least one processor performs link extraction, the at least one processor being further configured to; execute the application, and determine and record paths to application states within the executing application according to the graph data structure, wherein the at least one processor performs scraping, the at least one processor being further configured to, within an executing instance of the application, extract text and metadata from application states corresponding to endpoints of the recorded paths, wherein information based on the extracted text and metadata is stored in the memory of the search apparatus; wherein the at least one processor performs set generation, the at least one processor being further configured to, in response to a query from a user device, select records from the memory to form a consideration set of records, wherein the at least one processor performs set processing, the at least one processor being further configured to assign a score to each record of the consideration set of records, wherein the at least one processor performs results generation, the at least one processor being further configured to respond to the user device with a subset of the consideration set of records to display results of the query on the user device, wherein the subset is selected based on the assigned scores, and wherein the at least one processor is further configured to transmit search results in response to the query from the user device.
-
-
15. A method of automated acquisition of content from an application and improved searching of the content in response to a query from a user device, the method comprising:
-
using static analysis, performed by at least one processor of an apparatus for automated content acquisition and provision, the static analysis identifying application state templates of the application, wherein the static analysis includes analyzing code of the application independent of executing the code; using static analysis, performed by the at least one processor, identifying user interface elements that are configured to transition between states instantiated from different ones of the identified application state templates; creating, using the at least one processor, a graph data structure including nodes and edges connecting the nodes, wherein the nodes correspond to the identified application state templates, and wherein the edges correspond to transitions between the identified application state templates corresponding to the identified user interface elements; executing, using the at least one processor the application; determining and recording paths to application states within the executing application according to the graph data structure; within an executing instance of the application, extracting, using the at least one processor, text and metadata from application states corresponding to endpoints of the recorded paths; and storing information based on the extracted text and metadata in a memory of the apparatus, wherein the at least one processor is further configured to transmit search results in response to the query from the user device. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29)
-
-
28. A method of operating a mobile application search apparatus and improved searching of content in response to a query from a user device, the method comprising:
-
using static analysis, performed by at least one processor of the mobile application search apparatus, the static analysis identifying application state templates of the application, wherein the static analysis includes analyzing code of the application independent of executing the code; using static analysis, performed by the at least one processor, identifying user interface elements that are configured to transition between states instantiated from different ones of the identified application state templates; creating, using the at least one processor, a graph data structure including nodes and edges connecting the nodes, wherein the nodes correspond to the identified application state templates, and wherein the edges correspond to transitions between the identified application state templates corresponding to the identified user interface elements; executing, using the at least one processor, the application; determining and recording paths to application states within the executing application according to the graph data structure; within an executing instance of the application, extracting, using the at least one processor, text and metadata from application states corresponding to endpoints of the recorded paths; storing information based on the extracted text and metadata in a memory of the mobile application search apparatus; in response to receiving a query from a user device, selecting records from the data store to form a consideration set of records; assigning a score to each record of the consideration set of records; and responding to the user device, using the at least one processor, with a subset of the consideration set of records to display results of the query on the user device, wherein the subset is selected based on the assigned scores.
-
Specification