Note: Descriptions are shown in the official language in which they were submitted.
CA 02382884 2002-02-25
WO 02/03239 PCT/USO1/40084
Apparatus And Method For Selecting And
Automating Data Entry Tn Electronic Forms
Field of the Invention
The invention generally relates to presenting data for selection, and
automating entry of selected data into electronic forms, and more particularly
to presenting
a dialog box containing hot-spots for selecting data according to associated
insertion
formats, where selected data can be inserted into a form according to an
associated
insertion format.
Background
The proliferation of affordable computing systems has facilitated
distribution of electronic paperwork such as forms. Such distribution has
recently been
applied to networking contexts, such as delivery of forms through Internet
Browser
application programs including Netscape Navigator, Microsoft Internet
Explorer, Opera,
and others. For example, the hypertext markup language (HTML), the most common
language used to describe "web pages", provides a construction, e.g., the
<FORM> tag,
that can be used to define an electronic form for display by a receiving
browser. Other
languages, such as Java, JavaScript, Visual Basic, etc. also provide methods
for defining
forms for display to a user.
Unfortunately, these forms are typically lengthy, as each site seeks to learn
as much as possible about users, their interests, and other personal and
demographic data
that can be used for later solicitations. And, many sites now require
completing the forms
as a condition precedent to obtaining services from the site. Thus, in a
typical example of
a user browsing Internet vendor web sites for purchasing a gift; the user may
be required
to fill out many, largely duplicative, forms at each vendor's web site.
Repeated filling out
of the forms can get quite tedious.
In an effort to alleviate some of the burden incident to this, some Internet
browsers, such as Microsoft Internet Explorer 5, maintain a history list of
answers a user
has stored in a form. Thus, when a user starts to enter an answer into the
form (or the form
field is double-clicked upon), the browser prompts the user with a list of
possible
completions to the form's field. However, although this technique facilitates
data entry, it
CA 02382884 2002-02-25
WO 02/03239 PCT/USO1/40084
does not provide any centralized location for the inspection and entry of data
into the
form. In particular, this method fails to remove the tedium incident to
addressing every
field entry for which a value is to be inserted. That is, each field needs to
be clicked upon
or typed in to trigger data entry. Further, the list of entries can be very
long as it includes
every entry ever entered into that form's field. And, there is no central
location containing
a single set of current user data that is to be entered into the form. And,
there is no
opportunity to select only a portion of a previously recorded entry.
Summary
The invention provides for completion of forms. In one embodiment, a
form is received. In response to receiving the form, or through manual
invbcation, a
dialog box is displayed containing dialog entries that are inserted into the
form according
to insertion formats associated with the dialog entries. A particular
insertion format for a
dialog entry is selected by a user activating a "hotspot", button, or other
selection region
associated with a dialog entry. Insertion formats are configured to insert an
entire entry or
just a portion thereof into a form.
For example, assume a dialog box has an entry containing a text string, and
it is desired to either select the entire string, or just a portion thereof,
such as for entry into
an electronic form. In one embodiment, a first selection region is defined
proximate the
text string such that its selection (e.g., by clicking on or simply hovering a
pointer over the
selection region) causes the entire string to be highlighted. Second, third,
etc. selection
regions can be defined with respect to portions of the string, such as for
individual words,
where selection causes the portions (e.g., words) of the string to be high-
lighted. In one
embodiment, hovering a pointer over a selection region causes the region's
associated data
to be highlighted, and clicking on a selection region causes its associated
data to be
inserted into an electronic form.
Brief Description of the Drawings
Features. and advantages of the invention will become apparent to one
skilled in the art to which the invention pertains from review of the
following detailed
description and claimed embodiments of the invention, in conjunction with the
drawings
in which:
2
CA 02382884 2002-02-25
WO 02/03239 PCT/USO1/40084
FIG. 1 illustrates an overview of one embodiment for data entry.
FIGS. 2 illustrates a user interface according to one embodiment of the
invention.
FIGS. 3 illustrate selection regions and associated visual cues indicating
insertion format controlling transfer of a helper dialog entry to a form.
FIG. 4 illustrates a suitable computing environment in which certain
aspects of the claimed invention may be practiced.
Detailed Description
FIG. 1 illustrates an overview of one embodiment for data entry, such as
receiving and filling out an electronic form. As used herein, the term "form"
is intended
to include registration forms, login forms, and other structures / data
structures having
entries to be filled out by a recipient of the data structure.
As illustrated, a first operation 100 is to monitor for receipt of a form. It
is
assumed that receipt of a form triggers the invention, however, it will be
appreciated that
other environments may benefit from using the invention as well, such as
aiding
answering queries posed by application programs. It is further assumed a
network
browser, such as Internet Explorer, is receiving and processing data defining
the form,
however, other applications may also be used. In a browser context, a form is
recognized
by scanning received browser data for a form's definition. In the case of
receiving
Hypertext Markup Language (HTML) data, form identification is simply a matter
of
watching for a <FORM> tag definition. However, forms may also be defined
through
other constructions, such as by way of compiled Java programs, JavaScript,
active server
pages (ASP), etc. It may also be necessary to inspect binary data to identify
form
definitions. In an alternate embodiment, the browser provides internal hooks
for
identifying whether received network data contains a form definition.
If a form is identified at 102, in one embodiment a test is performed at 104
to determine if a helper dialog box (containing entries to insert into a form)
is already
visible. The dialog box is expected to remain on the display as one navigates
or browses
to different network locations. If the dialog is not already visible, then the
dialog box is
3
CA 02382884 2002-02-25
WO 02/03239 PCT/USO1/40084
popped up 106 onto the user's display. Once the helper dialog box is
displayed, one has
opportlu~ity to update information stored within the helper dialog box (see
FIGS. 2).
Note that it is assumed a user is manipulating a computing device utilizing
a monitor as an output device, and that program code implementing the
invention is being
executed such that it has access to the user's display. However, it will be
appreciated that
the invention need not be executed by the user's computing device to obtain
access to the
display, e.g., such as in an X Windows environanent. Also, the "user" may be
another
computing,device, and the output "display" may in fact be a data file,
communication
pathway, or the like.
In one embodiment, popping up the dialog box may also be' manually
triggered if a form is not automatically recognized when monitoring 100 the
network. For
example, a service or background executing program can wait 108 for manual
requests to
pop up the dialog box. If at 110 a manual trigger is received, then the helper
dialog is
popped-up. In one embodiment, a Microsoft Windows operating system Tray Icon
service
is used, where displaying the dialog box is triggered by generating a click
event for the
tray icon, e.g., by using a mouse or other pointing device to click on the
tray icon, or by
causing a click event to be generated for the icon. In another embodiment,
keyboard
activity is monitored for pressing of a certain control sequence to trigger
display of the
dialog box.
A test may be performed at 112 to determine if an automatic mode should
be used to fill out the form. Automatic mode means that an attempt is made by
the helper
system to fill the form's fields with data the form is received. If in
automatic mode, a test
is performed at 114 to determine if the current form is being viewed for the
first time. If
so, a user is required to fill out the form, either conventionally by typing
directly into the
form, or as discussed below, and the helper system monitors 116 the entries to
learn
insertion values for subsequent display of the form.
If not visiting the form for the first time, previously used values are known,
and are automatically entered 118 into appropriate locations on the form. In
one
embodiment, the source location or address of a form can be tracked and
associated with
monitored values 116 so that only values for a particular form origin are
available for
4
CA 02382884 2002-02-25
WO 02/03239 PCT/USO1/40084
insertion into the form. Source tracking can also be used when it is known
certain forms
require a particular entry format, e.g., first-name first or last-name first
for a "name" form
field.
If in manual mode at 112, after the helper dialog is displayed 106, the
system waits for a user to select dialog entries to transfer to the form. It
is assumed '
selection is controlled by way of a mouse or equivalent input device, where
one activates,
by way of clicks, drags, etc. a selection region to cause insertion of a
dialog entry or sub-
portion thereof into the form. Insertion is made according to an insertion
format
associated with the activated selection region. Selection regions can be
defined as image
hotspots, buttons, switches, toggles, etc. within the helper dialog, or as
discussed below,
within a dialog entry.
In one embodiment, each dialog entry can have multiple associated
selection regions, so that the same dialog entry may be highlighted and
inserted into a
form, where the highlighting indicates what portion of the entry will be
inserted. Such an
arrangement facilitates compactly displaying the helper dialog, since display
space is not
wasted on separate dialog entries for each of the possible insertion formats
that may be
associated with a single dialog entry (see FIGS. 3). In one embodiment,
selection regions
are automatically defined for each word in multiple-word strings.
As used herein and the claims that follow, the phrase "insertion format"
refers to what portion of a data entry that will be inserted into a form,
where highlighting
an entry provides a cue, before transferring a dialog entry to a form, of the
portion of the
dialog entry to be inserted into the form. Such an arrangement facilitates
compactly
displaying the helper dialog, since display space is not wasted on separate
dialog entries
for each of the possible insertion formats that may be associated with a
single dialog entry
(see FIGS. 3). As used herein and the claims that follow, the term
"highlighting" is
intended to include other methods for calling attention to different formats
for inserting a
dialog box entry, such as generating a visual cue, an audio cue, ~or both, or
taking some
other action as needed or desired by visually or physically impaired
individuals.
If at 112 the helper system is operating in manual mode, a next operation is
to monitor 120 a location of a selection tool, e.g., a mouse pointer or other
device used to
CA 02382884 2002-02-25
WO 02/03239 PCT/USO1/40084
perform selections. It will be appreciated that non-mouse selection tools,
such as those
utilized by visually impaired or physically impaired individuals, may also be
utilized to
select dialog entries. If at 122 the selection tool 304 (FIGS. 3) is near a
selection region
300 (FIGS. 3) for a dialog entry, the dialog entry is highlighted 124
according to the
insertion format for the selection region.
Thus, in the above mufti-word text string example, when the selection tool
304 is near the first selection region 300, the entire name is highlighted
(FIG. 3A), but
when the selection tool is near one of the other selection regions for the
words in the
name, such as a selection region 306 (FIGS. 3) for just the first name, only
the associated
word is highlighted. (Highlighting may be accomplished by drawing a bob around
a
selection region, e.g., a name, changing its color, or performing some other
action to cue
selection.) In one embodiment, selection regions are automatically defined for
each word
in multiple-word strings.
If at 126 activation for a selection region occurs, then the appropriate
dialog
entry or portion thereof is inserted 128 into the form according to the
insertion format
associated with the activated selection region.
In one embodiment, various techniques are available for activating the
transfer of dialog entries to the form. For example, dialog box contents
associated with a
selection region can be dragged and then dropped onto the form. Dropping may
be made
on the form generally, or within a particular form field. It is understood
that "drag and
drop" generally means a selection region is clicked on with a mouse (or a
mouse button-
down event or equivalent generated for the selection region), and without
releasing the
mouse button (or receiving a mouse button-up event), the clicked-on selection
region is
dragged to the form, or to a particular field in the form. The mouse button is
then ,
released, causing transfer of the contents of the selection region for the
dialog entry to the
form according to the insertion format for the dragged and dropped selection
region.
In addition to drag and drop, a selection region for a dialog entry can be
double-clicked to cause activation of the region and insertion of dialog entry
data to the
form according to the insertion format associated with an activated selection
region. It
will be appreciated that other activation techniques, such as shift-single-
click, voice-
6
CA 02382884 2002-02-25
WO 02/03239 PCT/USO1/40084
selected, or some other activation combination depending on user interface
considerations,
may be used to initiate transfer to the form.
In a double-click transfer, a user double-clicks on a selection region. In
response, a field of the form currently having insertion focus (e.g., an input
cursor or
equivalent) receives the dialog entry according to the insertion format. If no
form field
currently has insertion focus, then a default field is chosen. In one
embodiment, the
default field is the first field defined for the form. In another embodiment,
the data
defining the form is inspected to determine whether a default first field is
identified within
the form's definition.
After inserting a. dialog entry into the form, the insertion fodus is advanced
to another field within the form (if any). Advancement may be effected by
sending a next-
field command to the form. A next-field command is typically a tab character,
which is
transmitted to the form and interpreted by the form to cause movement of the
insertion
focus. However, depending on how the form is encoded and the environment
displaying
the form, a different character or control sequence may be required.
It will be appreciated a default field for insertion may be determined in a
number of other ways, including matching dialog entries with form definitions.
For
example, if the dialog entry is known to contain a name, then the form can be
searched for
field tags corresponding to a name. Such searching will facilitated by
encoding the form
in the Extensible Markup Language (xiVIL,), or equivalent languages that
associate
semantic meaning with form field definitions.
FIGS. 2 provide for a user interface according to one embodiment of the
invention. The user interface for storing typical user information to be
inserted into a
form. FIGS. 2 illustrate a "My Info - Update" dialog box 200. This dialog box
is broken
into.two general sections 202, 204, corresponding to contact information 202
and user
credit caxd information 204. As discussed above, the contents of these
sections are used to
fill out electronic forms. As illustrated, different interface sections are
selected by clicking
on a tab for an area of interest.
As illustrated in FIG. 2A, contact information includes field entries for
one's name 206, Email address 208, telephone number 210, facsimile number 212,
and
7
CA 02382884 2002-02-25
WO 02/03239 PCT/USO1/40084
mailing address 214. In FIG. 2B, the billing information 204 includes entries
for a credit
card category 216 (e.g., work card, personal card, etc.), card type 218 (e.g.,
Visa,
MasterCard, Discover, etc.), name on card 220, card number 222, expiration
information
224, and billing address reference 226.
The FIG. 2A contact information 202 includes selectable address radio
buttons 228 (or equivalent) for designating different contact addresses, e.g.,
home, work,
other. The FIG. 2B credit caxd information 204 configures the billing address
reference
226 as a selectable drop down list corresponding to the radio button 228
definitions. As
illustrated, a card category 216 of personal is selected, and a home address
used as the
billing address reference 226. Selecting a personal card category
automatically causes the
home address to be selected as the billing address.
Note that there is no requirement that dialog entries be filled out. One may
individually determine the extent to which private information is retained by
the helper
system.
FIGS. 3 illustrate the above-described mufti-word text string example. As
discussed above for FIG. 1, the illustrated dialogs appear when manually
invoked by a
user or automatically on detection of an electronic form.
FIG. 3A illustrates a first selection region 300 (a daxker box) adjacent a
name field 302. As illustrated, moving a selection tool 304 over (e.g.,
"hovering") the first
selection region causes the entire dialog entry to be highlighted. This
visually cues a user
that the entire dialog entry field is selected and will be transferred to a
form if the first
selection region is then activated. Thus, to drag and drop the entire name in
the name field
302, and enter it into the form, one would click on and then drag and drop the
first
selection region 300 to the form. '
FIG. 3B illustrates a second selection region 306 that has been defined as
the first word of the name string in the name field 302. As illustrated,
moving a selection
tool over the second selection region 306 causes the region to be highlighted.
This visually
cues a user that only the contents of the region will be transferred to a
form, in this case,
the first name Noah. Thus, to insert just the first name of the name field 302
into a form,
the second selection region can be clicked on and then dragged and. dropped
into the form.
CA 02382884 2002-02-25
WO 02/03239 PCT/USO1/40084
In one embodiment, differently configured dialog boxes are presented for
different electronic forms, so that dialog boxes may be tailored to different
types of forms.
For example, a form may be designed to receive non-text data, such as graphics
files,
databases, and other non-text data. Thus, a dialog (not shown) may be
configured with
entries corresponding to such non-text data that may be fully or partially
selected and
inserted into the form.
For example, assume a dialog entry contains a graphics image. Selection
regions can be defined for the image such that it is sub-divided into
different sections (like
an "image map" in a web browser context), where selecting one of the image's
selection
regions causes that selected portion of the image to be inserted into the
form. In one
embodiment, Object Linking and Embedding (OLE) or Microsoft ActiveX controls
are
used to select and manipulate the dialog box image, and then transfer
appropriate image
data to corresponding OLE or ActiveX controls within the form.
In one embodiment, two radio buttons 308, 310 are provided to control
whether a particular user's data is being updated 308 or entered into a form
310. When
the "Update my info" button 308 is selected, the dialog's selection regions
are deactivated
so that the dialog entries may be revised without inadvertent entry into a
form.
FIG. 4 illustrates a suitable computing environment in which certain
aspects of the claimed invention may be practiced. The figure and following
discussion
are intended to provide a brief, general description of a suitable computing
environment in
which portions of the invention may be implemented. The invention may be
described by
reference to different high-level program modules and/or low-level hardware
contexts.
Those skilled in the art will realize that program module references can be
interchanged
with low-level instructions.
Program modules include procedures, functions, programs, components,
data structures, and the like, that perform particular tasks or implement
particular abstract
data types. The modules may be incorporated into single and multi-processor
computing
devices, as well as hand-held devices and controllable consumer devices (e.g.,
Personal
Digital Assistants (PDAs), cellular telephones, etc.). It is understood that
modules may be
implemented on a single computing device, or processed over a distributed
network
9
CA 02382884 2002-02-25
WO 02/03239 PCT/USO1/40084
environment, where modules can be located in both local and remote memory
storage
devices.
An exemplary system for implementing the client computing devices
discussed above includes a computing device 402 having system bus 404 for
coupling
together various components within the computing device. The system bus 404
may be
any of several types of bus structures, such as PCI, AGP, VESA, ISA, etc.
Typically,
attached to the bus 404 are, processors 406 such as those by Intel,
programmable gate
arrays, and the like, volatile and non-volatile memory 408 such' as RAM, ROM,
NVRAM,
etc., storage devices 410, a video interface 412 for presenting output to an
output device
such as a cathode ray tube (CRT) monitor, display panel, projector, etc.,
input/output
interface ports 414 for communicating with devices, and a network interface
420. Storage
devices include computer-readable media such as hard-drives, floppy-disks,
optical
storage, magnetic cassettes, tapes, flash memory cards, memory sticks, digital
video disks,
biological-based storage, and the like, and may communicate with system bus
404 through
a physical and/or logical interface 426. Program modules, such as for a web
browser
configured to display a form, can be stored within the memory 408, storage
devices 410,
or implemented as an ASIC.
Computing device 402 may be a computer, or other device such as a router,
switch, telephone, radio, household appliance, etc. Computing device 402 may
operate in
a networked 424 environment using logical connections to one or more remote
computing
devices 416, 418. Remote computing devices can be configured as having some or
all of
the features of computing device 402. A modem 422 may be used to form network
connections. If we assume a viewpoint of the invention as being implemented in
computing device 402, then remote computing devices.416, 418 include remote
network
servers and other devices utilizing network application protocols such as HTTP
(e.g., web
servers), File Transfer Protocol (FTP), Gopher, Wide Area Information Server
(WAIS),
and the like to deliver forms to the invention. It will be appreciated that
computing
devices 402, 416, 418 may be embodied as single devices, or as a combination
of separate
components.
CA 02382884 2002-02-25
WO 02/03239 PCT/USO1/40084
Having described and illustrated the principles of the invention with
reference to illustrated embodiments, it will be recognized that the
illustrated
embodiments can be modified in arrangement and detail without departing from
such
principles. For example, while the foregoing description focused -- for
expository
convenience - on filling out forms, it will be recognized that the same
techniques for
defining selection regions and visually cueing impending data transfers can be
applied to
other transaction environments.
And, even though the foregoing discussion has focused on particular
embodiments, it is understood that other configurations are contemplated. In
particular,
even though expressions such as "in one embodiment", "in another embodiment",
and the
like are used herein, these phrases are meant to generally reference
embodiment
possibilities, and are not intended to limit the invention to those particular
embodiments.
Unless indicated otherwise, some or all of different indicated embodiments may
be
combined. Consequently, in view of the wide variety of permutations to the
above-
described embodiments, the detailed description is intended to be illustrative
only, and
should not be taken as limiting the scope of the invention.
What is claimed as the invention, is all such modifications as may come within
the scope
and spirit of the following claims and equivalents thereto.
11