The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate presently preferred embodiments of the invention, and together with the general description given above and the detailed description of the preferred embodiments given below, serve to explain the principles of the invention. As shown throughout the drawings, like reference numerals designate like or corresponding parts.
In describing the present invention, reference is made to the drawings, wherein there is seen in Figs. The monitor 100 of the browser based interface includes a text box 102 that will be used to enter information. The user enters the minimum information in the text box 102. This information may be at least 3 digits of a ZIP code, enough of a city name to contain the soundex value for the complete city name, or a combination of city, state and ZIP code information. The soundex value is a phonic algorithm for indexing names by their sound when pronounced in English. Any suitable phonic algorithm can be employed. The user begins to type the address line in the text box 104. The key up event handler sends the contents of the last line field and the address line to a REST-style web service.
A system which follows the REST-style web service has clients that initiate communication, sending request messages to servers, which respond with response messages. The REST-style web service maintains the state of any given session on the client, not on the server; and, communicates the state in request messages at a level sufficient to let a server understand and correctly process the request messages. The web service URL will be in any standard form such as:
http://servername/centrus/lookup?addressline=<input1>&lastline=<input2>. In such case, <input1> and <input2> are replaced by the appropriate values from the text boxes of the web page.
The web service parses the parameter data and passes the information to an addressing module for processing. One such addressing module is Centrus AddressBroker™ which is a Real-time address standardization and geocoding product marketed by Pitney Bowes Group 1 Software. The address information is compared to the reference data and one or more candidate records are found. The returned address list is transformed to JavaScript Object Notation (JSON) and returned to the calling function. The data elements returned include, but are not necessarily limited to, the United States Postal Service (USPS) firm name, address line, last line, longitude, latitude, location code and USPS range record type. In addition, a unique ID is assigned to each address element in the address list.
In the web page, the returned information is parsed and displayed on the web page. The possible candidate records are shown as returned address 106, 108, 110, 112, 114 and 116. The process of the key-up event handler sending the contents until a return occurs is repeated, as described above, for each keystroke in the address text box. Thus the returned matched address information is refined with each alphanumeric entry, keystroke by keystroke. The user may highlight and select one of the returned addresses 106 through 116, or continue to enter further information to get additional address candidates listed on the list of displayed possibilities on monitor 130.
Reference is now made to
Reference is now made to
A determination is made at decision block 142 if the input field contains two tokens (two alphanumeric values) separated by a space. That is, two keystrokes separated by a space. If this not the case, that is, the input field does not contain two tokens, two alphanumeric entries, separated by a space, the program loops back to block 140 and the user enters another alphanumeric such as by a keystroke on a data entry keyboard or other device. If, however, the input field does contain two tokens separated by a space, at block 144, a call such as an AJAX-type call is made from the users processing system, the client, to a web service with the address information from the client's web page. AJAX stands for Asynchronous JavaScript and XML. AJAX is a standard web development technique for creating interactive web applications so that an entire web page does not have to be reloaded each time the user makes a change as is the case with the call at block 144. The web service calls the address look-up server and receives candidate records (i.e. candidate addresses) at block 146. At block 148, the web service formats return information such as in JSON, a JavaScript Object Notation, and returns the formatted information to the browser of the client processing system.
A determination is made at decision block 150 if any candidate records, addresses, were found. If no candidate address has been found, the process loops back to block 140 and the user enters another alphanumeric to enter further data. If candidate addresses have been found at decision block 150, the browser at the client processing system formats the returned address(es) as a list at block 152. The list is displayed for user selection at block 154. This would be in the format of the list of candidate address matches as shown in
The browser-based interface system thus provides an interactive browser-based interface that reacts to user entered keystrokes entering alphanumeric data into the client processing system. The browser-based interface system will return a list of standardized and geocoded addresses to the browser to be displayed to the user. The user can refine the list with further alphanumeric data entry, correct errors, or select a candidate from the list. The browser-based interface system creates an interactive interface that presents options to the user as the user types the address in a natural form. Natural form means that the entry of the address line is based on a scan of the address from left to right in the manner that the address is typically written or spoken. This contrasts with hierarchical form used in most systems where the user enters the street name and then “drills down” to the street type, directional prefix and/or suffix, and house number. This creates an instant feedback mechanism to allow the user to choose the correct address with minimal keystrokes.
In operation, the user types in a ZIP Code or portion of a city and state. The user then begins to enter the street portion of the address in its natural form. After the key is released from each keystroke, the last line information (city & state or ZIP Code) and the address information are sent for processing to a web service. The web service searches for potential matches in a reference dataset. The list of potential matches is returned to the web page where it is displayed for selection by the user. The search is repeated and refined with each keystroke by the user until the user selects one address from the list or only one address is possible.
Information is returned interactively in real time. The user does not have to drill down to the address through a hierarchy of streets and numbers, but merely types the address in its natural form. There is no control needed to display the information—it is handled portably according to browser standards. The look and feel address entry portion of a web page is at the discretion of the web designer, ensuring a consistent experience for users.
The browser-based interface system includes three parts: a JavaScript library to mediate the communication with the web page; a REST-style Web Service to process JavaScript requests; and, a server with point and centerline data loaded for address hygiene and geocoding such as the Centrus AddressBroker™.
The processing proceeds with a key up event handler being registered with the text box that will be used to enter the address line information. The then user enters the minimum information necessary in a first text box. This information as previously noted may be at least three digits of the ZIP code, enough of the city name to contain the soundex value for the complete city name, or a combination of city, state and ZIP information.
The user thereafter begins to type in the address line of the address text box and the key up event handler sends the contents of the last line field and the address line to a REST-style web service. The web service parses the parameter data and passes the information to a server with point and centerline data loaded for address hygiene and geocoding for processing. The address information is compared to the reference data and one or more candidate records are found. The logic used for the lookup is described below.
The logic used for the lookup of candidate records proceeds with the returned address list transformed to JavaScript Object Notation (JSON) and returned to the calling function. As previously noted, the data elements returned include (but are not limited to) USPS Firm Name, Address Line, Last Line, Longitude, Latitude, Location Code, and USPS Range Record Type. In addition, a unique id is assigned to each address element in the address list. In the web page, the returned information is parsed and displayed on the web page. The process is repeated with the event handler through the display of returned information for each user keystroke in the address line text box.
The processing at the server with point and centerline data loaded for address hygiene and geocoding to determine candidates for partial addresses operates as follows. The last line information is parsed, and a ZIP Code is extracted if one exists. If a ZIP Code is found, then that is used to determine a Finance Area for the search. If only 3 digits of a ZIP Code are entered, then all Finance Areas associated with the 3 digit area are used as the search area. A Finance Area is a search area based on a group of ZIP or other postal codes.
If a ZIP Code is not identified, then the city or city and state information is examined. If a complete city and state is entered and that information is matched to data in the city state table from the USPS, then the Finance Area or Areas corresponding to the input city and state are used in the search. If a lone city name or partial city name is entered then the soundex of the city name is computed and all city and state combinations whose city name has a matching soundex value are used as the search area. The address line is parsed and a house number and street name are extracted from the parsing. If the address line does not contain a house number and at least one other token (alphanumeric) to be interpreted as the beginning of the street name, then the process exits and no information is returned to the client.
The soundex value of the partial street name identified above is computed. The portions of the reference data set that corresponds to the Finance Areas are searched for all streets for which the soundex value of the street name match the soundex computed from the input partial street name. The matches are only required on those values contained in the soundex value of the input street name. For example, if the input partial street name contains only one letter, then all street names with the same first letter are accepted.
Each street name found in is filtered by determining whether the house number extracted above is found on the street. Streets whose house ranges do not allow the input house number are discarded. All others are returned to the user. Finally, if the possible addresses for the input partial address belong to multiple locations, then each potential primary address is returned. If the input resolves to a single primary address with no secondary information, then that single result is returned. If the input information resolves to a single primary address, but primary address contains secondary locations according to the reference data, then multiple returns are made corresponding to each range of secondary information present in the reference data.
In above manner, the user is presented with a list of potential addresses that correspond to the typed input. The list becomes more precise as more of the address is entered until only one candidate remains, or the user selects the appropriate address from a list of returned values. In practice, most addresses are resolved after only 2 or 3 letters of the street name are entered.
While the present invention has been described in connection with what is presently considered to be the most practical and preferred embodiments, it is to be understood that the invention is not limited to the disclosed embodiment, but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims.
This application claims the benefit under 35 U.S.C. 119(e) of U.S. provisional patent application Ser. No. 60/843,041 filed Sep. 8, 2006, and entitled “A RICH BROWSER-BASED INTERFACE FOR ADDRESS STANDARDIZATION AND GEOCODING”, which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60843041 | Sep 2006 | US |