Patent Document ID: 8495050
Application ID: 13099887

Base Claim:
1. A computer program product for identifying universal resource locator rewriting rules, the computer program product comprising: a non-transitory computer readable storage medium including computer executable program code stored thereon, the computer executable program code comprising: computer executable program code for receiving input of universal resource locators of an application, to form received universal resource locators; computer executable program code for representing the received universal resource locators in a graph; computer executable program code for applying analysis algorithms and heuristics to properties of the graph; computer executable program code for identifying universal resource locator rewriting patterns using the graph to form detected patterns, including if a switch has a complexity value greater than a predetermined value “Q”, grouping identified switches into Left Switches and Right Switches according to a connection set; and computer executable program code for generating rewrite rules corresponding to the detected patterns.

---

Claim 3:
3. The computer program product of claim 1 , wherein computer executable program code for representing the received universal resource locators in a graph further comprises: computer executable program code for receiving a list of accepted path delimiters; computer executable program code for assigning a respective integer value greater than zero to each different path delimiter; computer executable program code for receiving a list of universal resource locators; computer executable program code for selecting a next universal resource locator; computer executable program code for identifying all delimiters and all path elements; computer executable program code for selecting a next path element; computer executable program code for calculating a depth characteristic according to all previous delimiter codes and a defined edge hash function; computer executable program code for calculating a hash value according to the depth characteristic and an element value; computer executable program code for determining whether the hash value is unique; computer executable program code responsive to a determination that the hash value is not unique for making an existing node a current node; computer executable program code responsive to a determination that the hash value is unique for creating a new node and adding the new node to a list of graph nodes; computer executable program code for creating connections from the current node to a previous node and from the previous node to the current node; computer executable program code for storing connection information and associated delimiter information accordingly as connections to Left and connections to Right; computer executable program code for determining whether any path elements remain; computer executable program code responsive to a determination no path elements remain, for determining whether any URLs remain; and computer executable program code responsive to a determination that more URLs remain, for selecting a next URL.