Client-side form filler that populates form fields based on analyzing visible field labels and visible display format hints without previous examination or mapping of the form
First Claim
1. A client-based method for filling out an electronic form automatically without previous form examination or storing of mapping information about said form, comprising the steps of:
- identifying form fields based on analysis of visible field labels proximate said fields, when said visible field labels are present;
evaluating user visible display format hints proximate said fields to determine required display format;
mapping the electronic form based on said analysis; and
populating form fields with correct data in correct format without user intervention, according to said mapping.
8 Assignments
0 Petitions
Accused Products
Abstract
Client side program code examines electronic documents such as web pages and automatically fills out fields of forms contained in the document with the appropriate data from a user profile, without requiring prior mapping or examination of the form. The application maps user data to the appropriate form field by examining label text on the form as the user sees it, i.e. text that is visually nearest the field. For fields lacking labels, the application examines the field context to determine the required data. To enter the information in the correct format, the application parses visual hints concerning, for example, the date format provided to the user and formats the data accordingly. In the absence of any usable visual cues or contextual information, the program code parses the form'"'"'s underlying markup code.
-
Citations
61 Claims
-
1. A client-based method for filling out an electronic form automatically without previous form examination or storing of mapping information about said form, comprising the steps of:
-
identifying form fields based on analysis of visible field labels proximate said fields, when said visible field labels are present;
evaluating user visible display format hints proximate said fields to determine required display format;
mapping the electronic form based on said analysis; and
populating form fields with correct data in correct format without user intervention, according to said mapping. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
traversing form elements in a first sequence.
-
-
3. The method of claim 2, wherein said step of identifying form fields based on analysis of visible field labels further comprises any of the steps of:
-
if a field is positioned in a table cell, analyzing text expressions in adjacent cells;
analyzing a text expression within a predetermined number of words and in at least one predetermined direction from said fields;
based on form coordinates, examining general vicinity of said form in all directions from the field and analyzing text expression closest to said field; and
disregarding text expressions embedded within parentheses or quotation marks.
-
-
4. The method of claim 3, wherein said step of identifying fields based on analysis of visible field labels further comprises the step of:
comparing the analyzed text expressions with entries in a field label dictionary to find closest match with a metadata expression, wherein said field is mapped to correct metadata.
-
5. The method of claim 2, further comprising the step of:
when a field lacks a visible field label, mapping the field according to context.
-
6. The method of claim 5, wherein mapping the field according to context comprises:
-
identifying mapping of at least one field preceding a current field in said first sequence; and
mapping said current field based on said mapping of said preceding field.
-
-
7. The method of claim 2, further comprising the step of:
when a field lacks a visible field label, mapping the field based on analysis of a programmatic field name.
-
8. The method of claim 2, further comprising the step of:
when a field lacks a visible field label, comparing the field'"'"'s default value with entries in a field label dictionary to find closest match with a metadata expression, wherein said field is mapped to correct metadata.
-
9. The method of claim 2, further comprising the step of:
if a field is a select field, comparing selection options with entries in a field label dictionary to find closest match with a metadata expression, wherein said field is mapped to correct metadata.
-
10. The method of claim 2, further comprising the step of:
for sets of radio buttons, creating a new object for each set.
-
11. The method of claim 2, further comprising the step of:
identifying block type, wherein a block comprises a plurality of related fields.
-
12. The method of claim 11, wherein the step of identifying block type comprises one of the steps of:
-
comparing programmatic field name of at least a current field with arrays of metadata expressions for each block type;
comparing visible form elements for at least said current field with arrays of metadata expressions for each block type; and
when said current field occupies a table cell, analyzing text expressions at least from first cell of said table to cell occupied by said current field.
-
-
13. The method of claim 12, said step of identifying block type further comprising the step of:
when a close match is found, mapping said field to said block type.
-
14. The method of claim 11, wherein block type includes any of:
-
billing address;
shipping address;
credit card information; and
email address.
-
-
15. The method of claim 2, further comprising the step of:
-
traversing form elements in a second sequence, said second sequence a reverse of a first sequence;
identifying mapping of at least a field following a current field in said second sequence; and
mapping said current field based on said mapping of said field following the current field.
-
-
16. The method of claim 1, wherein said step of evaluating visible display format hints proximate said fields to determine required display format comprises the steps of:
-
traversing form elements in a first sequence;
analyzing a visible display format hint proximate a field;
comparing said analyzed display format hint with a dictionary of data-entry prompts;
mapping said field to a display format based on said comparison.
-
-
17. The method of claim 16, further comprising the step of:
any of concatenating, truncating and re-formatting said correct data according to said display format.
-
18. The method of claim 16, further comprising the step of:
for a field lacking a proximate visible display format hint, mapping current field to same display format of a preceding field if both fields are the same field type.
-
19. The method of claim 1, further comprising the step of:
identifying a form as a checkout form.
-
20. The method of claim 1, further comprising the step of:
masking confidential data from being displayed.
-
21. A computer program product for filling out an electronic form automatically without previous form examination or storing of mapping information about said form, said computer program product comprising a tangible medium having computer readable code embodied therein, the computer code including program code means for:
-
identifying form fields based on analysis of visible field labels proximate said fields, when said visible field labels are present;
evaluating user visible display format hints proximate said fields to determine required display format;
mapping the electronic form based on said analysis; and
populating form fields with correct data in correct format without user intervention, according to said mapping. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40)
traversing form elements in a first sequence.
-
-
23. The computer program product of claim 22, wherein said code means for identifying form fields based on analysis of visible field labels further comprises code means for any of:
-
if a field is positioned in a table cell, analyzing text expressions in adjacent cells;
analyzing a text expression within a predetermined number of words and in at least one predetermined direction from said fields;
based on form coordinates, examining general vicinity of said form in all directions from the field and analyzing text expression closest to said field; and
disregarding text expressions embedded within parentheses or quotation marks.
-
-
24. The computer program product of claim 23, wherein said code means for identifying fields based on analysis of visible field labels further comprises code means for:
comparing the analyzed text expressions with entries in a field label dictionary to find closest match with a metadata expression, wherein said field is mapped to correct metadata.
-
25. The computer program product of claim 22, further comprising code means for:
when a field lacks a visible field label, mapping the field according to context.
-
26. The computer program product of claim 25, wherein said code means for mapping the field according to context comprises code means for:
-
identifying mapping of at least one field preceding a current field in said first sequence; and
mapping said current field based on said mapping of said preceding field.
-
-
27. The computer program product of claim 22, further comprising code means for:
when a field lacks a visible field label, mapping the field based on analysis of a programmatic field name.
-
28. The computer program product of claim 22, further comprising code means for:
when a field lacks a visible field label, comparing the field'"'"'s default value with entries in a field label dictionary to find closest match with a metadata expression, wherein said field is mapped to correct metadata.
-
29. The computer program product of claim 22, further comprising code means for:
if a field is a select field, comparing selection options with entries in a field label dictionary to find closest match with a metadata expression, wherein said field is mapped to correct metadata.
-
30. The computer program product of claim 22, further comprising code means for:
for sets of radio buttons, creating a new object for each set.
-
31. The computer program product of claim 22, further comprising code means for:
identifying block type, wherein a block comprises a plurality of related fields.
-
32. The computer program product of claim 31, wherein the code means for identifying block type comprises code means for:
-
comparing programmatic field name of at least a current field with arrays of metadata expressions for each block type;
comparing visible form elements for at least said current field with arrays of metadata expressions for each block type; and
when said current field occupies a table cell, analyzing text expressions at least from first cell of said table to cell occupied by said current field.
-
-
33. The computer program product of claim 32, wherein the code means for identifying block type further comprises code means for:
when a close match is found, mapping said field to said block type.
-
34. The computer program product of claim 31, wherein block type includes any of:
-
billing address;
shipping address;
credit card information; and
email address.
-
-
35. The computer program product of claim 22, further comprising code means for:
-
traversing form elements in a second sequence, said second sequence a reverse of a first sequence;
identifying mapping of at least a field following a current field in said second sequence; and
mapping said current field based on said mapping of said field following the current field.
-
-
36. The computer program product of claim 21, wherein said code means for evaluating visible display format hints proximate said fields to determine required display format comprises code means for:
-
traversing form elements in a first sequence;
analyzing a visible display format hint proximate a field;
comparing said analyzed display format hint with a dictionary of data-entry prompts;
mapping said field to a display format based on said comparison.
-
-
38. The computer program product of claim 36, further comprising code means for:
for a field lacking a proximate visible display format hint, mapping current field to same display format of a preceding field if both fields are the same field type.
-
39. The computer program product of claim 21, further comprising code means for:
identifying a form as a checkout form.
-
40. The computer program product of claim 21, further comprising code means for:
masking confidential data from being displayed.
-
37. The computer program product of 36, further comprising the code means for:
any of concatenating, truncating and re-formatting said correct data according to said display format.
-
41. A client-based system for filling out an electronic form automatically without previous form examination or storing of mapping information about said form, comprising:
-
a client;
at least one data file;
rules for mapping visible form elements to correct data from said file; and
computer-readable code means for;
identifying form fields based on analysis of visible field labels proximate said fields, when said visible field labels are present;
evaluating user visible display format hints proximate said fields to determine required display format;
mapping the electronic form based on said analysis; and
populating form fields with correct data in correct format without user intervention, according to said mapping;
wherein said code means are executable on said client, and wherein said rules, and said code means are stored on said client. - View Dependent Claims (42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58, 59, 60, 61)
traversing form elements in a first sequence.
-
-
43. The system of claim 42, wherein said code means for identifying form fields based on analysis of visible field labels further comprises code means for any of:
-
if a field is positioned in a table cell, analyzing text expressions in adjacent cells;
analyzing a text expression within a predetermined number of words and in at least one predetermined direction from said field;
based on form coordinates, examining general vicinity of said form in all directions from the field and analyzing text expression closest to said field; and
disregarding text expressions embedded within parentheses or quotation marks.
-
-
44. The system of claim 43, wherein said code means for identifying fields based on analysis of visible field labels further comprises code means for:
comparing the analyzed text expressions with entries in a field label dictionary to find closest match with a metadata expression, wherein said field is mapped to correct metadata.
-
45. The system of claim 42, further comprising code means for:
when a field lacks a visible field label, mapping the field according to context.
-
46. The system of claim 45, wherein said code means for mapping the field according to context comprises code means for:
-
identifying mapping of at least one field preceding a current field in said first sequence; and
mapping said current field based on said mapping of said preceding field.
-
-
47. The system of claim 42, further comprising code means for:
when a field lacks a visible field label, mapping the field based on analysis of a programmatic field name.
-
48. The system of claim 42, further comprising code means for:
when a field lacks a visible field label, comparing the field'"'"'s default value with entries in a field label dictionary to find closest match with a metadata expression, wherein said field is mapped to correct metadata.
-
49. The system of claim 42, further comprising code means for:
if a field is a select field, comparing selection options with entries in a field label dictionary to find closest match with a metadata expression, wherein said field is mapped to correct metadata.
-
50. The system of claim 42, further comprising code means for:
for sets of radio buttons, creating a new object for each set.
-
51. The system of claim 42, further comprising code means for:
identifying block type, wherein a block comprises a plurality of related fields.
-
52. The system of claim 51, wherein the code means for identifying block type comprises code means for:
-
comparing programmatic field name of at least a current field with arrays of metadata expressions for each block type;
comparing visible form elements for at least said current field with arrays of metadata expressions for each block type; and
when said current field occupies a table cell, analyzing text expressions at least from first cell of said table to cell occupied by said current field.
-
-
53. The system of claim 52, wherein the code means for identifying block type further comprises code means for:
when a close match is found, mapping said field to said block type.
-
54. The system of claim 51, wherein block type includes any of:
-
billing address;
shipping address;
credit card information; and
email address.
-
-
55. The system claim 42, further comprising code means for:
-
traversing form elements in a second sequence, said second sequence a reverse of a first sequence;
identifying mapping of at least a field following a current field in said second sequence; and
mapping said current field based on said mapping of said field following the current field.
-
-
56. The system of claim 41, wherein said code means for evaluating visible display format hints proximate said fields to determine required display format comprises code means for:
-
traversing form elements in a first sequence;
analyzing a visible display format hint proximate a field;
comparing said analyzed display format hint with a dictionary of data-entry prompts;
mapping said field to a display format based on said comparison.
-
-
58. The system of claim 56, further comprising code means for:
for a field lacking a proximate visible display format hint, mapping current field to same display format of a preceding field if both fields are the same field type.
-
59. The system of claim 41, further comprising code means for:
identifying a form as a checkout form.
-
60. The system of claim 41, further comprising code means for:
masking confidential data from being displayed.
-
61. The system of claim 41, wherein said data file resides on said client or on a server.
-
57. The system of 56, further comprising code means for:
any of concatenating, truncating and re-formatting said correct data according to said display format.
Specification