WO2019046143A1 - Systems and methods for providing automatic document filling functionality - Google Patents

Systems and methods for providing automatic document filling functionality Download PDF

Info

Publication number
WO2019046143A1
WO2019046143A1 PCT/US2018/048050 US2018048050W WO2019046143A1 WO 2019046143 A1 WO2019046143 A1 WO 2019046143A1 US 2018048050 W US2018048050 W US 2018048050W WO 2019046143 A1 WO2019046143 A1 WO 2019046143A1
Authority
WO
WIPO (PCT)
Prior art keywords
document
user
computing device
data
editing
Prior art date
Application number
PCT/US2018/048050
Other languages
French (fr)
Inventor
Eric Platow
Original Assignee
Lexisnexis, A Division Of Reed Elsevier Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lexisnexis, A Division Of Reed Elsevier Inc. filed Critical Lexisnexis, A Division Of Reed Elsevier Inc.
Priority to EP18849701.0A priority Critical patent/EP3676730A4/en
Priority to CN201880056790.1A priority patent/CN111417950B/en
Publication of WO2019046143A1 publication Critical patent/WO2019046143A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0489Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using dedicated keyboard keys or combinations thereof
    • G06F3/04895Guidance during keyboard input operation, e.g. prompting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/106Display of layout of documents; Previewing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging

Definitions

  • the present specification generally relates to providing an add-in for an existing software program and, more particularly, to systems and methods that provide an add-in to assist a user in generating and modifying a document in an existing software program.
  • a method for providing automatic document filling functionality includes providing, by a processing device, an integrated interface that includes a document editing component having a document display area for displaying a document and one or more document editing features for editing a document and a document fill component having contents that elicit one or more inputs that are used to fill the document.
  • the method further includes receiving, via the document fill component of the integrated interface, one or more inputs that correspond to data to be inputted into the document, determining, by the processing device, one or more locations within the document to input the data, and inserting the data into the one or more locations within the document.
  • a system for providing automatic document filling functionality includes a processing device and a non-transitory, processor-readable storage medium.
  • the non-transitory, processor-readable storage medium comprising one or more programming instructions that, when executed, cause the processing device to provide an integrated interface that includes a document editing component having a document display area for displaying a document and one or more document editing features for editing a document and a document fill component having contents that elicit one or more inputs that are used to fill the document.
  • the non-transitory, processor- readable storage medium further comprises one or more programming instructions that, when executed, cause the processing device to receive, via the document fill component of the integrated interface, one or more inputs that correspond to data to be inputted into the document, determine one or more locations within the document to input the data, and insert the data into the one or more locations within the document.
  • a system for providing automatic document filling functionality includes a user computing device that provides a first portion of an integrated interface, the first portion of the integrated interface having a document editing component with a document display area for displaying a document and one or more document editing features for editing a document and a server computing device that is remote from the user computing device, the server computing device providing a second portion of the integrated interface having a document fill component with contents that elicit one or more inputs that are used to fill the document.
  • the user computing device includes a display that displays the first portion and the second portion of the integrated interface and an input device that receives one or more inputs at one or more of the first portion and the second portion of the integrated interface.
  • the user computing device receives, via the document fill component, one or more document editing inputs that correspond to data to be inputted into the document.
  • the server computing device determines one or more locations within the document to input the data.
  • the server computing device inserts the data into the one or more locations within the document.
  • FIG. 1 schematically depicts an illustrative computing network for a system providing automatic document filling functionality according to one or more embodiments shown and described herein;
  • FIG. 2 schematically depicts the server computing device from FIG. 1, further illustrating hardware and software that may be used in providing automatic document filling functionality according to one or more embodiments shown and described herein;
  • FIG. 3 depicts a flow diagram of an illustrative general overview method of providing automatic document filling functionality according to one or more embodiments shown and described herein;
  • FIG. 4 depicts a screen shot of an illustrative user interface for providing automatic document filling functionality according to one or more embodiments shown and described herein;
  • FIG. 5 depicts a screen shot of an illustrative user interface for providing automatic document filling functionality in an initial state according to one or more embodiments shown and described herein
  • FIG. 6 depicts a screen shot of an illustrative user interface for providing automatic document filling functionality when interacting with a user according to one or more embodiments shown and described herein;
  • FIG. 7 depicts a screen shot of another illustrative user interface for providing automatic document filling functionality when interacting with a user according to one or more embodiments shown and described herein;
  • FIG. 8 depicts a screen shot of yet another illustrative user interface for providing automatic document filling functionality when interacting with a user according to one or more embodiments shown and described herein;
  • FIG. 9 depicts a screen shot of yet another illustrative user interface for providing automatic document filling functionality when interacting with a user according to one or more embodiments shown and described herein;
  • FIG. 10 depicts a screen shot of an illustrative user interface for providing automatic document filling functionality when sending a completed document according to one or more embodiments shown and described herein;
  • FIG. 11 depicts a flow diagram of an illustrative detailed method of generating content within a document fill component and receiving a user input for the purposes of providing automatic document filling functionality according to one or more embodiments shown and described herein;
  • FIG. 12A depicts code of an illustrative XML file that is used to fill particular fields within a document according to one or more embodiments shown and described herein;
  • FIG. 12B depicts additional code of an illustrative XML file that is used to fill particular fields within a document according to one or more embodiments shown and described herein;
  • FIG. 12C depicts more code of an illustrative XML file that is used to fill particular fields within a document according to one or more embodiments shown and described herein;
  • FIG. 12D depicts more code of an illustrative XML file that is used to fill particular fields within a document according to one or more embodiments shown and described herein. DESCRIPTION OF EMBODIMENTS
  • embodiments described herein are directed to systems, methods, and computer-readable media for providing a software addition (e.g., an add-in, a plugin, or the like) to an existing software program, such as a word processing program.
  • the software addition generally provides document fill functionality that allows a user of the existing software program to provide answers to a series of questions and/or complete a plurality of sections of a document to be edited in addition to, or instead of, directly editing the document within the existing software program.
  • a plurality of fields within the document that correspond to the series of questions are populated based on the user's entries. As a result, the populated document is correctly filled with accurate information that is consistent throughout the document.
  • the user may be less confused about what information to put in particular fields in the document.
  • the user has an ability to remain within his/her preferred document editing program without having to switch back and forth with a different and unfamiliar software program, and can instantly view all of the changes that are made to the document to ensure they align with what the user desires.
  • the user is free to make any and all text or formatting changes as they see fit.
  • the user also can lock the document down entirely or in parts in order to collaborate with others.
  • there is only one system generating the document and integrating document filling capabilities there are no conversions made between any systems and thus no loss of content/formatting .
  • a "document” generally refers to any electronic file that contains information and is editable by a user using a software program. That is, a "document” may be a text document (e.g., a word processing file), a spreadsheet, a slide presentation, or the like.
  • a "document” may be a text document (e.g., a word processing file), a spreadsheet, a slide presentation, or the like.
  • an illustrative document is a Microsoft® Word document file (e.g., a file appended with the .docx file extension).
  • the document can be opened with a corresponding program (e.g., Microsoft® Word) and edited by a user.
  • the document may contain one or more fields that are editable by a user (e.g., a form document having one or more form fields).
  • the document may be a template document or derived from a template document.
  • the present disclosure uses legal documents as an example, but this is merely illustrative. That is, the present disclosure is not limited to legal documents, and can be used for other types of documents, including invoices, medical forms, and the like.
  • document filling generally refers to a population of an electronic document with data and/or information.
  • a text document may be populated with text, images, numbers, equations, and/or the like.
  • a legal document such as a contract, which may be populated with one or more contract sections including, but not limited to, textual identification of the parties, textual identification of the terms, fields for comments and/or revisions, fields for signatures and dates, and/or the like.
  • FIG. 1 depicts an illustrative computing network that depicts components for a system for providing document filling functionality according to embodiments shown and described herein.
  • a computer network 10 may include a wide area network (WAN), such as the Internet, a local area network (LAN), a mobile communications network, a public service telephone network (PSTN), a personal area network (PAN), a metropolitan area network (MAN), a virtual private network (VPN), and/or another network.
  • the computer network 10 may generally be configured to electronically connect one or more computing devices and/or components thereof.
  • Illustrative computing devices may include, but are not limited to, a user computing device 12a, a server computing device 12b, an administrator computing device 12c, and an external data source computing device 12d.
  • the user computing device 12a may generally be used as an interface between a user and the other components connected to the computer network 10.
  • the user computing device 12a may be used to perform one or more user-facing functions, such as receiving one or more inputs from a user or providing information to the user, as described in greater detail herein.
  • the user computing device 12a may include at least a display and/or user input hardware.
  • the user computing device 12a may contain the software and/or the software addition that provides the document filling functionality and/or connects to a remote computing device that provides the document filling functionality, as described herein. Additionally, included in FIG. 1 is the administrator computing device 12c. In the event that the server computing device 12b requires oversight, updating, or correction, the administrator computing device 12c may be configured to provide the desired oversight, updating, and/or correction. The administrator computing device 12c may also be used to input additional data into a corpus of data stored on the server computing device 12b.
  • the server computing device 12b may receive data from one or more sources, generate data, store data, index data, search data, and/or provide data to the user computing device 12a in the form of a software program, document fills, an embedded webpage, and/or the like.
  • the external data source computing device 12d may generally be a repository for saving search strings, corresponding search results, user-stored data, data from third party providers, and/or the like.
  • the user computing device 12a and the administrator computing device 12c are depicted as personal computers and the server computing device 12b and the external data source computing device 12d are depicted as servers, these are nonlimiting examples. More specifically, in some embodiments, any type of computing device (e.g., mobile computing device, personal computer, server, etc.) may be used for any of these components. Additionally, while each of these computing devices is illustrated in FIG. 1 as a single piece of hardware, this is also merely an example. More specifically, each of the user computing device 12a, the server computing device 12b, the administrator computing device 12c, and the external data source computing device 12d may represent a plurality of computers, servers, databases, components, and/or the like. FIG.
  • FIG. 2 depicts the server computing device 12b, from FIG. 1, further illustrating a system for providing automatic document filling functionality. While the components depicted in FIG. 2 are described with respect to the server computing device 12b, it should be understood that similar components may also be used for the user computing device 12a, the administrator computing device 12c, and/or the external data source computing device 12d (FIG. 1) without departing from the scope of the present disclosure.
  • the server computing device 12b may include a non-transitory computer- readable medium for searching and providing data embodied as hardware, software, and/or firmware, according to embodiments shown and described herein. While in some embodiments the server computing device 12b may be configured as a general purpose computer with the requisite hardware, software, and/or firmware, in other embodiments, the server computing device 12b may also be configured as a special purpose computer designed specifically for performing the functionality described herein. In embodiments where the server computing device 12b is a general purpose computer, the methods described herein generally provide a means of improving a matter that resides wholly within the realm of computers and the internet. More specifically, the server computing device 12b improves the user facing functions available to a user of the user computing device 12a (FIG.
  • the user computing device 12a (FIG. 1) by presenting a combined interface that is partially provided by the user computing device 12a and partially provided by the server computing device 12b, but appears as a single integrated interface to a user of the user computing device 12a. That is, the user computing device 12a (FIG. 1) provides document editing software (e.g., a word processing program, a spreadsheet editing program, a presentation program, and/or the like) that is installed on the user computing device 12a (or from a source other than the server computing device 12b) alongside an add-in that connects to the server computing device 12b to receive the automatic document filling functionality, processing logic, and/or a rules engine, but appears as a pane within the document editing software, as described in greater detail herein.
  • document editing software e.g., a word processing program, a spreadsheet editing program, a presentation program, and/or the like
  • the user views a single interface that includes elements from the user computing device 12a (FIG. 1) and elements from the server computing device 12b, where the elements from the respective devices may not be apparent to the user, but together provide the functionality described herein.
  • the server computing device 12b may include a processor 30, input/output hardware 32, network interface hardware 34, a data storage component 36 (which may store document processing data 38a, extensible markup language (XML) data 38b, document fill data 38c, and/or other data 38d), and a non-transitory memory component 40.
  • the non-transitory memory component 40 may be configured as a volatile and/or a nonvolatile computer-readable medium and, as such, may include random access memory (including SRAM, DRAM, and/or other types of random access memory), flash memory, registers, compact discs (CD), digital versatile discs (DVD), and/or other types of storage components.
  • the non-transitory memory component may be referred to as a non-transitory, processor-readable storage medium.
  • the non-transitory memory component 40 may be configured to store various processing logic, such as, for example, operating logic 41, document processing logic 42, XML mapping logic 43, document fill logic 44, and/or processing/rules logic 45 (each of which may be embodied as a computer program, firmware, or hardware, as an example).
  • a local interface 50 is also included in FIG. 2 and may be implemented as a bus or other interface to facilitate communication among the components of the server computing device 12b.
  • the processor 30 may include any processing component configured to receive and execute instructions (such as from the data storage component 36 and/or the non- transitory memory component 40).
  • the input/output hardware 32 may include a monitor, keyboard, mouse, printer, camera, microphone, speaker, touch-screen, and/or other device for receiving, sending, and/or presenting data (e.g., a device that allows for direct or indirect user interaction with the server computing device 12b alongside the user computing device 12a (FIG. 1)).
  • the network interface hardware 34 may include any wired or wireless networking hardware, such as a modem, LAN port, wireless fidelity (Wi-Fi) card, WiMax card, mobile communications hardware, and/or other hardware for communicating with other networks and/or devices.
  • the data storage component 36 may reside local to and/or remote from the server computing device 12b and may be configured to store one or more pieces of data and selectively provide access to the one or more pieces of data.
  • the data storage component 36 may store document processing data 38a, XML data 38b, document fill data 38c, and/or other data 38d.
  • the document processing data 38a may generally be data and/or information regarding one or more documents that are edited and/or created by a user via the user computing device 12a (FIG. 1). That is, the document processing data 38a may include word processing documents, spreadsheet documents, presentation documents, template documents, and/or the like.
  • the document processing data 38a may further include data associated with the various documents, including XML data 38b and/or the like.
  • certain document file formats e.g., the .docx and .xlsx document file formats
  • the XML data 38b may generally be data and/or rules that are used to define the software program and/or the add-in or plugin that is provided to a user via the user computing device 12a (FIG. 1).
  • the XML data 38b may be stored within the data storage component 36 and/or within a similar component within the user computing device 12a (FIG. 1).
  • the document fill data 38c is generally data that pertains to one or more options, questions, or the like that are provided to a user at the user computing device 12a (FIG. 1) for the purposes of filling out portions of documents edited by users at the user computing device 12a, such as, for example, portions of the documents stored in the document processing data 38a. That is, the document fill data 38c may contain one or more questions, one or more prepopulated answer options, data pertaining to responses that are typed in by a user (or otherwise selected by a user) at the user computing device 12a (FIG.
  • each question in a document fill pane may be appropriately mapped to one or more sections of a document such that, when a user enters a response to the question in the document fill pane, the appropriate one or more sections of the document will be populated accordingly, as described in further detail herein.
  • the other data 38d may generally encompass any other data that may be generated and/or stored for the purposes of providing automatic document filling functionality as described herein.
  • the other data 38d may include prior answers that are used to fill a document with data that a particular user has previously provided so that the user need to provide the information again, data pertaining to a suite of documents such that a supplied input from a user is applied to each document in a suite, audit history data, data relating to calculations that may be performed, user-entered data that is supplied directly in a document and automatically populated accordingly throughout the document, and/or the like.
  • the operating logic 41 may include an operating system and/or other software for managing components of the server computing device 12b.
  • the document processing logic 42 may generally provide instructions for retreiving a document and/or a template, setting up the document and/or template for use by the user, determining which fields within the document can be edited by the user, and/or the like, as described in greater detail herein.
  • the XML mapping logic 43 may generally contain instructions for accessing and/or reading XML code associated with a particular document for the purposes of determining which fields within the document can be edited directly by a user, which fields can be populated using a document fill component or the like, mapping one or more questions and answers within a document fill component with one or more fields in the document, and/or the like, as described in greater detail herein.
  • the document fill logic 44 may generally provide programming instructions for generating a document fill component with contents that can be used to elicit particular user responses that are then used to populate a document.
  • the document fill logic 44 may provide one or more document fill component areas (including generating one or more questions and/or answers or answer fields within the document fill component that correspond to fields within a document, based on XML data), providing a document fill component to a user via the integrated user interface presented on the user computing device 12a (FIG. 1), receiving a selected response from a user and/or an inputted text response from a user, and/or the like.
  • the processing/rules logic 45 may provide one or more rules for processing a document, including rules for where particular fields are located, which fields can be modified, which fields cannot be modified, and/or the like.
  • FIG. 2 is merely illustrative and are not intended to limit the scope of this disclosure. More specifically, while the components in FIG. 2 are illustrated as residing within the server computing device 12b, this is a nonlimiting example. In some embodiments, one or more of the components may reside external to the server computing device 12b. Similarly, as previously described herein, while FIG. 2 is directed to the server computing device 12b, other components such as the user computing device 12a, the administrator computing device 12c, and the external data source computing device 12d (FIG. 1) may include similar hardware, software, and/or firmware. As mentioned above, the various components described with respect to FIGS. 1 and 2 may be used to carry out one or more processes and/or provide document filling functionality. An illustrative example of the various processes that may be carried out by the various components described with respect to FIGS. 1 and 2 is described with respect to FIGS. 3 and 11.
  • FIG. 3 relates to a general method of providing automatic document filling functionality.
  • the interface may be provided to the user at the user computing device 12a at block 305.
  • an integrated user interface 400 may be provided to the user at the user computing device 12a. That is, the user may view a single interface that includes a document editing program (e.g., Microsoft® Word, Microsoft® Excel, Microsoft® PowerPoint) as well as a window, pane, and/or the like presented within or alongside the document editing program that contains contents that are provided for the purposes of eliciting one or more responses from a user that can be used to populate the document.
  • a document editing program e.g., Microsoft® Word, Microsoft® Excel, Microsoft® PowerPoint
  • the integrated user interface 400 may include a document editing component 401 and a document fill component 410.
  • the content within the document editing component 401 may be locally provided by the user computing device 12a and the document fill component 410 is remotely provided by the server computing device 12b in some embodiments.
  • both the document editing component 401 and the document fill component 410 may be locally provided by the user computing device 12a or remotely provided by the server computing device 12b.
  • the document editing component 401 may be provided by a first server computing device and the document fill component 410 may be provided by a second server computing device (e.g., a software program provided over the Internet, such as a cloud-based word processing program), and are displayed on a screen of the user computing device 12a.
  • a second server computing device e.g., a software program provided over the Internet, such as a cloud-based word processing program
  • the various steps described herein can be completed while "offline" (i.e., completed without a network connection) in some embodiments.
  • the program may be accessed remotely via a network or may contain certain features that are accessed remotely via a network.
  • the program may be a word processor that has basic functionality from software that is locally installed on a device, but accesses documents and/or software pertaining to enhanced functionality from a network server.
  • the document editing component 401 and the document fill component 410 may generally be provided in any arrangement or configuration within the integrated user interface 400.
  • the document editing component 401 and the document fill component 410 may be provided in a side-by-side arrangement such that a user is able to view the changes to the document displayed within the document editing component 401 when selecting items within the document fill component 410, as described in greater detail herein.
  • the document fill component 410 may be arranged such that it overlays at least a portion of the document editing component 401.
  • the document editing component 401 includes a document display area 402 and one or more document editing features 403, such as buttons, menus, and/or the like that a user can utilize to change various characteristics of the document in the document display area 402. For example, a user may select one or more buttons, menus, and/or the like to cut, copy, and/or paste text, utilize a format painter tool, change font settings, change paragraph and spacing settings, select styles, and/or the like within the document editing component 401. The user may also select portions of the document within the document display area 402, such as, for example, document sections 404, editable fields 406, and/or the like.
  • the user may also view one or more callouts 408 that may not be part of the document, but may be displayed alongside the document (or overtop the document) in the document display area 402 (or even shown within the document fill component 410), and may provide information with respect to portions of the document display area 402, the document, and/or the like.
  • the document displayed in the document display area 402 is a legal contract that contains a field for entering a start date and the one or more callouts 408 provide information that may be useful to a user in filling the start date, such as, for example, explaining what the start date is.
  • These callouts can also suggest alternate wording, optional clauses or other potential language and/or phrases or clauses that can be used.
  • the document fill component 410 may also provide the callouts 408 to provide additional information that is generated as a result of acquisition of additional real time insights.
  • one or more searches may be run to determine how often a clause is litigated and how successful the lawsuits are in upholding or ruling against certain clauses.
  • the software that provides the document editing component 401 may generally be installed locally on the user computing device 12a (e.g., within a memory component and/or a data storage component of the user computing device 12a).
  • the document fill component 410 may generally provide one or more fields for assisting the user in filling out the document within the document display area 402 of the document editing component 401.
  • the document fill component 410 may include an authentication screen 412.
  • the authentication screen 412 may include, for example, one or more fields for entering a user name and/or a password, and/or one or more other fields for identifying and/or authenticating the user. It should be understood that the authentication screen 412 is optional and may not be provided in some embodiments.
  • the document fill component 410 may also have other components or the like for providing automatic document filling functionality, as shown and described hereinbelow.
  • the document fill component 410 may generally be an add-in or a plugin to the document editing component 401 provided via software stored on the server computing device 12b and/or another remote computing device, and may generally not be generated from software stored locally on the user computing device 12a.
  • the user may perceive the interface to be a single interface on the user computing device 12a and may not be aware that a portion of the interface (e.g., the document fill component 410) is actually provided remotely by the server computing device 12b.
  • the integrated user interface 400 has many benefits over systems and methods that only provide a single interface that is local to the user computing device 12a or remote from the user computing device 12a (e.g., at the server computing device 12b).
  • the integrated user interface 400 ensures that there is no lag time or perceivable delay due to data transmission over the network when the user is editing a document at the user computing device 12a, but still allows the content within the document fill component 410 to be populated and/or updated automatically and continuously (e.g., on the fly) by more powerful server computing devices.
  • the integrated user interface 400 arranged as described herein allows user-inputted data to be stored on the server computing device 12b if so desired for secure storage or for re-use of answers and accessed at a later time on the same user computing device and/or a different user computing device by the user, particularly in instances where the user may desire to fill out certain portions of different documents in the same manner.
  • a user may access stored information regarding that client and/or that client's preferences for certain sections of the legal document via the document fill portion of the interface and have those portions of the document automatically populated (e.g., the client's name, address, etc., the clients preferred contract terms, and/or the like).
  • a user's inputs may also be stored with the document being edited as part of the document' s XML data, in some embodiments.
  • an administrator or other entity that has control over the server computing device 12b can actively monitor the generation of the document fill component 410 as well as the use of the document fill component 410 by a user to ensure the document fill component 410 is being correctly utilized, to troubleshoot issues, and/or the like.
  • This provides an advantage of software programming that is built into software that is installed directly on a user's computing device, as such software cannot be accessed without first gaining access to the user's computing device.
  • providing the document fill component 410 on the server computing device 12b also allows for the software that generates and provides the document fill component 410 to be actively updated as needed to ensure that users always have the most up-to-date software without the need to have to locally install updates, as is necessary with other software programs. This arrangement also allows for regular document editing in the event that the server component is offline for any reason.
  • the user may access the document to be edited, filled, and/or the like at block 310. That is, the user may access one or more portions of the integrated user interface 400 such as, for example, the document editing component 401 and/or the one or more document editing features 403 to start a new document, to open an existing document, to open a document template, and/or the like.
  • the user may access the document or a document template directly from within the user computing device 12a user interface (e.g., by selecting a file in a file browser or the like), which causes the integrated user interface 400 to open automatically to open the document.
  • the document (or a portion thereof) may be locked from manual editing by the user at block 315. That is, the user may be prevented from directly editing the document (or a portion thereof) within the document display area 402 and/or via the document editing component 401 and may only edit the document (or certain portions thereof) by providing one or more inputs in the document fill component 410, as described in greater detail herein. It should be understood that the process described with respect to block 315 is optional, and that the user may have the ability to directly edit the document within the document display area 402 as well as by providing responses to the questions in the document fill component 410 in some embodiments.
  • the document may be displayed in the document display area 402 of the document editing component 401. That is, once the document is accessed by the user, the document is viewable by the user within the document display area 402 of the document editing component 401 such that the user can view the contents of the document, scroll through the document, play multimedia files within the document, and/or edit the document, as described in greater detail herein.
  • the document fill component 410 may also be displayed as part of the integrated user interface 400 at block 325, as described herein.
  • one or more inputs may be received at the integrated user interface 400, and as a result, one or more actions may be completed at block 335.
  • one or more user inputs e.g., text input, touch inputs, mouse clicks, voice inputs, haptic inputs, and/or the like
  • a portion of the integrated user interface 400 e.g., within the document editing component 401 and/or within the document fill component 410.
  • one or more actions that correspond to user inputs may be carried out as a result (e.g., determining one or more locations within the document to input data and/or inserting the data into the one or more locations).
  • a user may generate and/or amend portions of a legal document such as a contractual agreement that is displayed in the document display area 402 of the document editing component 401 by providing inputs within the document editing component 401 and/or the document fill component 410.
  • a legal document such as a contractual agreement
  • this is merely an example, and any type of document may be edited with any kind of data.
  • the user may be provided with one or more menus, selectable items, questions, response boxes, calendars, drop down response items, and/or the like and may present the same via the integrated user interface 400 within the document fill component 410.
  • the server computing device 12b may present the document fill component 410 as shown in FIG. 5.
  • the document fill component 410 includes a plurality of primary tabs 502 that relate to various editing functions that are available within the document fill component 410.
  • the plurality of primary tabs 502 may include a draft tab 504, a related content tab 506, and a collaboration tab 508.
  • the draft tab 504 when selected, may generally provide information, questions, and/or the like that are used to elicit a response from the user for the purposes of completing and/or filling out portions of the document displayed in the document display area 402 of the document editing component 401, as described in greater detail herein.
  • the related content tab 506, when selected, may provide information contained within the document and/or external content (e.g., website content) that relates to the document displayed in the document display area 402 of the document editing component 401 (or portions thereof). For example, if a user selects and highlights text from the document within the document display area 402 of the document editing component 401 and then clicks on the related content tab 506, the document fill component 410 may provide information that corresponds to the highlighted text.
  • external content e.g., website content
  • the collaboration tab 508, when selected, may generally display components that provide functionality for collaborating with others on a document.
  • a section of the collaboration tab 508 may be used in legal documents when multiple parties may collaborate to amend the same document to achieve a collective goal (e.g., multiple parties to a contractual agreement may amend the contract document).
  • the draft tab 504 is selected in the embodiment depicted in FIG. 5.
  • one or more of a plurality of action selectors 510 may be displayed to a user within the document fill component 410.
  • the action selectors 510 may generally relate to particular actions that can be completed to fill portions of the document within the document display area 402 of the document editing component 401.
  • selectable action selectors 510 include an automate action button 512, a clauses action button 514, a load terms action button 516, and a finalize action button 518.
  • the automate action button 512 when selected, may generally cause the document fill component 410 provide a user with an ability to automatically fill particular portions of the document displayed within the document display area 402 of the document editing component 401 when particular submenus are selected, as described in greater detail hereinbelow.
  • the clauses action button 514 when selected, may generally provide a user with an ability to fill standard clauses in the document displayed in the document display area 402 of the document editing component 401. For example, the user may select the clauses action button 514 and subsequently select particular contract clauses (including boilerplate clauses and/or user preferred clauses) into the document at a particular location thereof.
  • the user may select the clauses action button 514 and select a saved clause that specifically pertains to restrictions on flying for entry within the document displayed in the document display area 402 of the document editing component 401.
  • the finalize action button 518 when selected, may generally cause the document fill component 410 to display one or more document finalization functions.
  • one or more document finalization functions may be used to lock a document from further editing, complete final verification checks, and/or the like.
  • another document finalization function may be to remove all of the editable fields from the document in the document editing component 401, remove any pre-created callouts from the document, and/or the like to create the final version of the document.
  • electronic signature e.g., e- signature
  • blocks may also be added during the finalization step to adhere to more electronic agreements.
  • the automate action button 512 is selected.
  • a plurality of groups that correspond to various sections of the document displayed in the document display area 402 of the document editing component 401 that can be edited and/or populated from selections in the document fill component 410.
  • One such illustrative group is a date group 520.
  • the date group 520 may generally include one or more dates that are to be populated within the document displayed in the document editing component 401.
  • editable field 406 as indicated by the box surrounding the text, relates to a start date at which the service provider will commence the provision of services.
  • the server computing device 12b analyzes the editable fields of the document and the associated XML information as described herein and associates various questions within the date group 520 that correspond to the editable field 406.
  • the server computing device may use artificial intelligence and/or machine learning to analyze the fields and associate questions. As such, the user may be asked questions such as the date the agreement will be made, the start date, the completion date, specific dates that services will be provided, and/or the like. Referring now to FIG.
  • an answer field 522 (e.g., a first answer field 522a, a second answer field 522b, a third answer field 522c, etc.), which may be a text box, a selection menu, a popup calendar, or the like.
  • a calendar may be displayed. The user may then select a date from the calendar, which may cause one or more corresponding editable fields 406 within the document displayed in the document display area 402 of the document editing component 401. As shown in FIG. 6, the user has selected April 13, 2017 in the calendar that is displayed in the first answer field 522a. As such, the corresponding date field 600 in the document displayed in the document display area 402 of the document editing component 401 is populated with the same date.
  • FIG. 6 further illustrates other groups that may be displayed in addition to the date group 520. More specifically, FIG. 6 depicts a party group 530, a service group 540, and a payment group 550, each of which is in a collapsed configuration. When one of the other groups is selected by the user by clicking on the group, the group may be expanded to reveal the contents of the group. For example, as shown in FIG. 7, the party group 530 is expanded to show information regarding the parties to the contract document displayed by the document display area 402 of the document editing component 401.
  • the party group 530 includes questions asking a user "Who is the Buyer?" and "Who is the Service Provider?", both of which were generated as a result of the process completed at block 325 described herein with respect to FIG. 3.
  • each question is preceded with an answer block (e.g., a first answer block 532 and a second answer block 534), which are configured to receive text from the user.
  • an answer block e.g., a first answer block 532 and a second answer block 5304.
  • corresponding text 700 is automatically populated anywhere it is found within the corresponding areas of the document displayed in the document display area 402 of the document editing component 401.
  • the service group 540 when the service group 540 is expanded, particular questions that specifically relate to services may be displayed, as shown in the embodiment depicted in FIG. 8. That is, the service group 540 is expanded to show information regarding the services that are the subject of the contract agreement displayed by the document display area 402 of the document editing component 401. More specifically, the service group 540 includes questions asking a user "What services will be provided?" and "At what site will the services be provided?", both of which were generated as a result of the process completed at block 325 described herein with respect to FIG. 3. Still referring to the embodiment depicted in FIG. 8, each question is preceded with an answer block (e.g., a third answer block 542 and/or a fourth answer block 544), which are configured to receive text from the user. When a user inputs text in the third answer block 542 and/or the fourth answer block 544, corresponding text 800 is automatically populated in the corresponding areas of the document displayed in the document display area 402 of the document editing component 401.
  • an answer block
  • the payment group 550 when the payment group 550 is expanded, particular questions that specifically relate to payments may be displayed, as shown in the embodiment depicted in FIG. 9. That is, the payment group 550 is expanded to show information regarding the payments that are the subject of the contract agreement displayed by the document display area 402 of the document editing component 401. More specifically, the payment group 550 includes questions asking a user "Will the expenses of the service provider be covered by the buyer?, "What type of expenses will be covered?", “Specify the payment details", "How often will the Service Provider bill the Buyer?", and “How will the payment be remitted to the Service Provider?", each of which were generated as a result of the process completed at block 325 described herein with respect to FIG. 3. Still referring to the embodiment depicted in FIG.
  • each question is preceded with an answer block 552 (e.g., a fifth answer block 552a, a sixth answer block 552b, a seventh answer block 552c, an eighth answer block 552d and/or a ninth answer block 552e), which are configured to receive text from the user, be drop down boxes with selectable text, and/or the like.
  • answer block 552 e.g., a fifth answer block 552a, a sixth answer block 552b, a seventh answer block 552c, an eighth answer block 552d and/or a ninth answer block 552e
  • corresponding text 900, 902 is automatically populated in the corresponding areas of the document displayed in the document display area 402 of the document editing component 401.
  • various questions, answer blocks 552, groups, and/or the like may be displayed, hidden, or otherwise rendered active or inactive based on inputs supplied by a user to other areas of the document fill component 410.
  • the party group 530 displayed in the document fill component 410 may be initially configured to accept an unlimited number of party names (e.g., for filling contract documents having more than two parties to an agreement).
  • a user input within the document fill component 410 and/or the document displayed in the document display area 402 of the document editing component 401 is indicative of only two parties (e.g., the user specifies that a particular agreement has one buyer and one seller), the options within the party group 530 that pertain to a single party or more than two parties may be hidden, greyed out, or otherwise inactivated such that a user input cannot be received in those options.
  • the payment group 550 may be hidden, greyed out, unable to expand, or otherwise rendered inaccessible to the user since payment information need not be entered by the user.
  • the document fill component 410 may further include one or more additional options for a user, as shown for example in the embodiment depicted in FIG. 10.
  • the document fill component 410 may include an option to clear data, as indicated by the "Clear Data” button 1000 and/or an option to send the document to another person, as indicated by the "Send To Client” button 1010.
  • the user may also be provided with an option to save certain portions of the content within the document fill component 410 for later use, such as commonly used clauses, commonly used names and addresses, and/or the like.
  • a user may enter text or other data directly into the document displayed in the document display area 402 of the document editing component 401 instead of (or in addition to) providing inputs in the document fill component.
  • the server computing device 12b may recognize the inputs as being modifications to previously identified fields within the document (e.g. by monitoring the changes to the XML data), and may automatically populate other portions of the document accordingly in a manner that is the same as if the user had entered the data into the document fill component 410. For example, if a user enters a date in a particular field of the document in the document display area 402 that is recognized as being identical to other areas of the document where the same date is to be entered, the same date may be automatically populated within the remainder of the document accordingly.
  • FIG. 11 also with reference to FIGS. 1 and 4
  • additional details regarding the processes completed by the server computing device 12b and/or the user computing device 12a to provide automatic document filling functionality is described.
  • the processes described with respect to FIG. 11 can be completed entirely by the server computing device 12b, entirely by the user computing device 12a, or by a combination of the server computing device 12b and the user computing device 12a, unless specifically provided.
  • a document is accessed.
  • the document may be accessed by the user computing device 12a and/or the server computing device 12b.
  • the document may be stored on any storage device, including storage devices that are local to the user computing device 12a, storage devices that are local to the server computing device 12b, and storage devices that are remote from the user computing device 12a and the server computing device 12b.
  • the document may generally be accessed such that the contents of the document can be analyzed, including any associated XML data.
  • the XML information within the document may be extracted. That is, the document file or a portion thereof may be provided to the server computing device 12b such that XML information therein (e.g., embedded within the document) can be obtained.
  • the document is a .docx file format document
  • the compressed XML files within the .docx file may be extracted and transmitted to the server computing device in part or in full and may be sent real time as the user interacts with the document. 12b.
  • the entire document may be transmitted to the server computing device 12b such that the pertinent XML information or other related information is extracted therefrom.
  • the server computing device 12b may determine the contents of the document and/or arrangement of features within the document. That is, the server computing device 12b may analyze the XML information and determine whether sections of the document can be populated and/or generated using one or more questions and user responses. For example, if the XML information indicates that at least a portion of the document contains one or more text entry fields for entering a user's name and mailing address, the server computing device 12b may determine that one or more questions pertaining to the user's name and mailing address may be included in the document fill.
  • the server computing device 12b may determine that one or more questions pertaining to the parties' names may be included in the document fill. In some embodiments, such a determination may be made based on saved user preferences. For example, if a user desires each document that is opened to be appended with a particular clause at a particular location within the document, the server computing device 12b may determine the contents and/or arrangement of features from the XML information to determine the particular location therein to insert the clause, and to determine whether to provide a question in the document fill asking the user to affirm the insertion and/or location of the clause. Illustrative examples of XML information is depicted in FIGS. 12A-12D.
  • user saved data may be retrieved at block 1120 in some embodiments. That is, if the user has previously saved data in a storage device (e.g., within the data storage component 36 of the server computing device 12b) or elsewhere such as a document management system or an online storage provider, the data may be accessed for the purposes of ensuring the content that is provided to the user corresponds to the saved data, such as user preferences, previously prepared document sections 404, and/or the like.
  • a storage device e.g., within the data storage component 36 of the server computing device 12b
  • the data may be accessed for the purposes of ensuring the content that is provided to the user corresponds to the saved data, such as user preferences, previously prepared document sections 404, and/or the like.
  • the saved boilerplate clauses, party names, and/or the like may be retrieved for the purposes of populating the document fill component 410 in the event the user desires to use the saved data.
  • block 1120 is optional and may not be utilized in some embodiments.
  • content for the document fill component 410 may be generated and populated within the document fill component 410. That is, one or more menus, selection boxes, text entry boxes, questions, and/or the like may be generated and used to populate the document fill component 410.
  • the date group 520, the party group 530, the service group 540, and the payment group 550 may be generated, as well as certain options and selectable entries that allow the user to fill in information that is used to populate a document, as described herein.
  • the content for the document fill component 410 may be provided to the user at block 1130. That is, the generated document fill component 410 may be presented alongside the document display area 402 of the document editing component 401, as described herein.
  • one or more user inputs may be received.
  • the user inputs are not limited by this disclosure and may include one or more mouse clicks, keyboard inputs, touch inputs, haptic inputs, voiced inputs, gestures, and/or the like.
  • the input may be in the form of text entry, numeric figure entry, selection/deselection of a check box or radio button, calendar selector, date selector, uploading or embedding of a file (including an image file), and/or the like.
  • the one or more user inputs may generally correspond to a user's interaction with the integrated user interface 400, including the document editing component 401 and the document fill component 410. For example, if a user desires to select the date group 520 (FIG.
  • the inputs that are received may generally be inputs that correspond to an area within the integrated user interface 400 that includes the date group 520 and the content within the date group 520.
  • the user may enter information directly into the document displayed by the document display area 402 of the document editing component 401.
  • a determination may be made as to the one or more fields within the document displayed in the document display area 402 of the document editing component 401 that corresponds to the one or more inputs. For example, if a user clicks on the date group 520 and then selects a calendar entry for April 13, 2017 as the date of the agreement (as shown and described herein with respect to FIG. 6), the system may determine a location in the document where such a date should be entered (e.g., the upper right hand corner of the document, as depicted in FIG. 6). In some embodiments, this process may include determining document content and/or arrangement from the XML information, as previously described herein with respect to block 1115.
  • such a determination may also be based on the inputs received directly within the document displayed by the document display area 402 of the document editing component 401. That is, a determination may be made as to one or more additional locations within the document to input data based on the inputs received directly within the document, and then the data may be inserted into those additional locations.
  • a further determination may be made as to whether the format provided by the user corresponds to the format that is used for the document at block 1145. For example, if a text entry box is provided in the document fill component 410 for a user to manually enter a date (e.g., by typing a date via a keyboard input) and the inputs received from the user indicate a different format (e.g., text other than the standard MM/DD/YYYY format or other similar format, such as a person's name), the determination at block 1145 may be that the format provided by the user does not correspond to the format that is used for the document. Such a determination may be based on, for example, information within the associated XML data for a particular form field.
  • the response format is not correct, another determination may be made at block 1150 as to whether the format can be derived from the response. For example, if a user clicks on a date group 520 (FIG. 5) and manually inputs "April thirteenth of this year" into a text box requiring a date, the system may be configured to recognize that while the inputted text does not correspond to a correct format (e.g., the MM/DD/YYYY format), the date can still be determined and adjusted accordingly (e.g., "04/13/2017"). Conversely, if the user manually inputs "Bob Smith" into the same text box, the system may not be able to derive a corrected format response from the input because "Bob Smith" does not correspond to any known date.
  • a correct format e.g., the MM/DD/YYYYY format
  • the system may not be able to derive a corrected format response from the input because "Bob Smith" does not correspond to any known date.
  • the format may be derived from the response by performing one or more calculations to arrive at the correct format based on the input that was received. For example, if the correct format is a numerical entry but the supplied input is (e.g., 540 x 15), it may be recognized that the supplied input is an equation that can be calculated. Accordingly, the calculation may be completed and the correct format response (e.g., 8100) may be generated.
  • the process may return to block 1135 to receive additional user inputs. If the format can be derived from the response, the correct format response (e.g., "04/13/2017" as used in the example above) may be generated at block 1160 and the process may move to block 1165.
  • the correct format response e.g., "04/13/2017" as used in the example above
  • the system may insert the text and/or data into the corresponding fields within the document displayed in the document display area 402 of the document editing component 401 at block 1165.
  • the date may be inserted into the corresponding area (upper right hand corner of the document depicted in FIG. 6 for example).
  • the document displayed in the document display area 402 of the document editing component 401 may have a plurality of fields that receive the same entry (e.g., a party's name may be inserted throughout a document).
  • text that is provided in the text box via the user inputs in the document fill component 410 may be populated in each area of the document that corresponds to the text box (e.g., each location in a document where a party name is to be placed).
  • the content within the document fill component 410 may be modified (e.g. dynamically updated) as one or more inputs are received from a user at block 1170. That is, if a user provides one or more inputs at first section of the document fill component 410 that negate the need for additional information in a second section of the document fill component 410, the second section of the document fill component 410 may by dynamically removed or otherwise deactivated so that the user cannot provide inputs at the second section.
  • the system may automatically determine that a section within the document fill component 410 that requests a contract end date is unnecessary because the contract end date can be automatically determined from the start date (e.g., April 13, 2018). As such, the section relating to the contract end date may be removed, greyed out, or otherwise locked so that the user cannot provide inputs at that section. Accordingly, the revised content within the document fill component 410 may be provided to the user at block 1175.
  • the document fill component 410 is customized to each particular document that is displayed within the document display area 402 of the document editing component 401 and/or customized to a particular user and/or user's preferences. That is, the contents within the document fill component 410 are not a large, unwieldy decision tree that has several irrelevant questions and response entries that may not have anything to do with the document that is displayed within the document display area 402 of the document editing component 401 and/or are not aligned with a particular user's preferences.
  • a change log of the inputs that were supplied by the user may be maintained.
  • the change log may track information, such as, but not limited to, the user's identity, the identity of fields in which the user entered or removed data, a time stamp of when data was added/removed, and/or the like.
  • the change log may be maintained for each user of the form to be filled. As such, information regarding the changes to the form can be maintained as the form is passed around from user to user or in instances where the form is a shared document supplied by a shared document editor (e.g., Google® Docs, Microsoft® Office 365®, etc.).
  • a shared document editor e.g., Google® Docs, Microsoft® Office 365®, etc.
  • the change log may be stored locally with the form, as an appended file, as a portion of the XML file, and/or at an offsite location (e.g., a DMS system, a blockchain, and/or the like) such that it can be accessed to style the form as needed, used to compare various edits as a black line document, used to compare various edits as a red line document, used to view tracked changes, and/or the like.
  • the change log may be stored at a central location for the purposes of backup, entity recognition, reuse of answers across multiple documents (i.e., in a suite or set of related documents), and/or the like.
  • the change log may be stored at a distributed locations (e.g., in a blockchain).
  • the systems and methods described herein may also allow the form to be saved as a document that is "frozen in time” such that all edits to the form at a particular time are captured at that particular time.
  • a software addition e.g., an add-in, a plugin, or the like
  • the software addition generally allows a user of the software program to provide answers to a series of questions and/or complete a plurality of sections of a document by filling in a dynamic form, which results in an automatic population of the document in particular areas.
  • the populated form is correctly filled with accurate information and the document has consistent entries where necessary.
  • the user may be less confused about what information to put in particular fields in a document and may be able to fill a document more accurately in less time.
  • the user never has to leave his/her primary document editing program when editing a document, and need not be concerned as to whether the document will read and/or be formatted appropriately because all changes can be viewed within the document editing program at the same time the edits are made, regardless of whether the edits are made directly within the document or via the document fill component.
  • the document is edited directly by the user and/or the document fill component, all information is stored directly within the document and does not require any special software, plugins, and/or the like to be installed when the document is subsequently viewed on a different computing device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Document Processing Apparatus (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Systems and methods for providing automatic document filling funcitonality are described. A method includes providing, by a processing device, an integrated interface that includes a document editing component having a document display area for displaying a document and one or more document editing features for editing a document and a document fill component having contents that elicit one or more inputs that are used to fill the document. The method further includes receiving, via the document fill component of the integrated interface, one or more inputs that correspond to data to be inputted into the document, determining, by the processing device, one or more locations within the document to input the data, and inserting the data into the one or more locations within the document.

Description

SYSTEMS AND METHODS FOR PROVIDING AUTOMATIC DOCUMENT
FILLING FUNCTIONALITY
CROSS-REFERENCE TO RELATED APPLICATION
The present application claims priority to United States Provisional Patent Application No. 62/551,553, filed August 29, 2017 and entitled "Systems And Methods For Providing An Automatic Form Fill," the contents of which is incorporated herein in its entirety.
BACKGROUND
Field The present specification generally relates to providing an add-in for an existing software program and, more particularly, to systems and methods that provide an add-in to assist a user in generating and modifying a document in an existing software program.
Technical Background
Currently, users of software programs, such as word processing programs, spreadsheet programs, and/or the like, must generate and modify documents within those programs by manually entering data into each field within the document. Certain documents may be lengthy and have several fields that must be completed. Some of those fields may have repetitive information within them, but nevertheless must be completed by a user. Certain documents may also include fields that may not clearly direct a user to fill the field, or may not accurately specify the information that is to be included in the form. In addition, users may accidentally enter incorrect information in a particular field, enter information into the wrong field, use an incorrect format, enter information into fields that are not intended to have data entered therein, and/or the like. SUMMARY
In one embodiment, a method for providing automatic document filling functionality includes providing, by a processing device, an integrated interface that includes a document editing component having a document display area for displaying a document and one or more document editing features for editing a document and a document fill component having contents that elicit one or more inputs that are used to fill the document. The method further includes receiving, via the document fill component of the integrated interface, one or more inputs that correspond to data to be inputted into the document, determining, by the processing device, one or more locations within the document to input the data, and inserting the data into the one or more locations within the document.
In another embodiment, a system for providing automatic document filling functionality includes a processing device and a non-transitory, processor-readable storage medium. The non-transitory, processor-readable storage medium comprising one or more programming instructions that, when executed, cause the processing device to provide an integrated interface that includes a document editing component having a document display area for displaying a document and one or more document editing features for editing a document and a document fill component having contents that elicit one or more inputs that are used to fill the document. The non-transitory, processor- readable storage medium further comprises one or more programming instructions that, when executed, cause the processing device to receive, via the document fill component of the integrated interface, one or more inputs that correspond to data to be inputted into the document, determine one or more locations within the document to input the data, and insert the data into the one or more locations within the document. In yet another embodiment, a system for providing automatic document filling functionality includes a user computing device that provides a first portion of an integrated interface, the first portion of the integrated interface having a document editing component with a document display area for displaying a document and one or more document editing features for editing a document and a server computing device that is remote from the user computing device, the server computing device providing a second portion of the integrated interface having a document fill component with contents that elicit one or more inputs that are used to fill the document. The user computing device includes a display that displays the first portion and the second portion of the integrated interface and an input device that receives one or more inputs at one or more of the first portion and the second portion of the integrated interface. The user computing device receives, via the document fill component, one or more document editing inputs that correspond to data to be inputted into the document. The server computing device determines one or more locations within the document to input the data. The server computing device inserts the data into the one or more locations within the document.
These and additional features provided by the embodiments described herein will be more fully understood in view of the following detailed description, in conjunction with the drawings. BRIEF DESCRIPTION OF DRAWINGS
The embodiments set forth in the drawings are illustrative and exemplary in nature and not intended to limit the subject matter defined by the claims. The following detailed description of the illustrative embodiments can be understood when read in conjunction with the following drawings, wherein like structures are indicated with like reference numerals and in which:
FIG. 1 schematically depicts an illustrative computing network for a system providing automatic document filling functionality according to one or more embodiments shown and described herein;
FIG. 2 schematically depicts the server computing device from FIG. 1, further illustrating hardware and software that may be used in providing automatic document filling functionality according to one or more embodiments shown and described herein; FIG. 3 depicts a flow diagram of an illustrative general overview method of providing automatic document filling functionality according to one or more embodiments shown and described herein;
FIG. 4 depicts a screen shot of an illustrative user interface for providing automatic document filling functionality according to one or more embodiments shown and described herein;
FIG. 5 depicts a screen shot of an illustrative user interface for providing automatic document filling functionality in an initial state according to one or more embodiments shown and described herein; FIG. 6 depicts a screen shot of an illustrative user interface for providing automatic document filling functionality when interacting with a user according to one or more embodiments shown and described herein;
FIG. 7 depicts a screen shot of another illustrative user interface for providing automatic document filling functionality when interacting with a user according to one or more embodiments shown and described herein;
FIG. 8 depicts a screen shot of yet another illustrative user interface for providing automatic document filling functionality when interacting with a user according to one or more embodiments shown and described herein;
FIG. 9 depicts a screen shot of yet another illustrative user interface for providing automatic document filling functionality when interacting with a user according to one or more embodiments shown and described herein;
FIG. 10 depicts a screen shot of an illustrative user interface for providing automatic document filling functionality when sending a completed document according to one or more embodiments shown and described herein; FIG. 11 depicts a flow diagram of an illustrative detailed method of generating content within a document fill component and receiving a user input for the purposes of providing automatic document filling functionality according to one or more embodiments shown and described herein;
FIG. 12A depicts code of an illustrative XML file that is used to fill particular fields within a document according to one or more embodiments shown and described herein;
FIG. 12B depicts additional code of an illustrative XML file that is used to fill particular fields within a document according to one or more embodiments shown and described herein;
FIG. 12C depicts more code of an illustrative XML file that is used to fill particular fields within a document according to one or more embodiments shown and described herein; and
FIG. 12D depicts more code of an illustrative XML file that is used to fill particular fields within a document according to one or more embodiments shown and described herein. DESCRIPTION OF EMBODIMENTS
Referring generally to the figures, embodiments described herein are directed to systems, methods, and computer-readable media for providing a software addition (e.g., an add-in, a plugin, or the like) to an existing software program, such as a word processing program. The software addition generally provides document fill functionality that allows a user of the existing software program to provide answers to a series of questions and/or complete a plurality of sections of a document to be edited in addition to, or instead of, directly editing the document within the existing software program. A plurality of fields within the document that correspond to the series of questions are populated based on the user's entries. As a result, the populated document is correctly filled with accurate information that is consistent throughout the document. In addition, the user may be less confused about what information to put in particular fields in the document. Moreover, the user has an ability to remain within his/her preferred document editing program without having to switch back and forth with a different and unfamiliar software program, and can instantly view all of the changes that are made to the document to ensure they align with what the user desires. The user is free to make any and all text or formatting changes as they see fit. The user also can lock the document down entirely or in parts in order to collaborate with others. Finally, since there is only one system generating the document and integrating document filling capabilities, there are no conversions made between any systems and thus no loss of content/formatting .
As used herein, a "document" generally refers to any electronic file that contains information and is editable by a user using a software program. That is, a "document" may be a text document (e.g., a word processing file), a spreadsheet, a slide presentation, or the like. For example, an illustrative document is a Microsoft® Word document file (e.g., a file appended with the .docx file extension). The document can be opened with a corresponding program (e.g., Microsoft® Word) and edited by a user. In some embodiments, the document may contain one or more fields that are editable by a user (e.g., a form document having one or more form fields). In some embodiments, the document may be a template document or derived from a template document. The present disclosure uses legal documents as an example, but this is merely illustrative. That is, the present disclosure is not limited to legal documents, and can be used for other types of documents, including invoices, medical forms, and the like.
As used herein, "document filling" generally refers to a population of an electronic document with data and/or information. For example, a text document may be populated with text, images, numbers, equations, and/or the like. One particular example is a legal document such as a contract, which may be populated with one or more contract sections including, but not limited to, textual identification of the parties, textual identification of the terms, fields for comments and/or revisions, fields for signatures and dates, and/or the like.
Referring now to the drawings, FIG. 1 depicts an illustrative computing network that depicts components for a system for providing document filling functionality according to embodiments shown and described herein. As illustrated in FIG. 1, a computer network 10 may include a wide area network (WAN), such as the Internet, a local area network (LAN), a mobile communications network, a public service telephone network (PSTN), a personal area network (PAN), a metropolitan area network (MAN), a virtual private network (VPN), and/or another network. The computer network 10 may generally be configured to electronically connect one or more computing devices and/or components thereof. Illustrative computing devices may include, but are not limited to, a user computing device 12a, a server computing device 12b, an administrator computing device 12c, and an external data source computing device 12d. The user computing device 12a may generally be used as an interface between a user and the other components connected to the computer network 10. Thus, the user computing device 12a may be used to perform one or more user-facing functions, such as receiving one or more inputs from a user or providing information to the user, as described in greater detail herein. Accordingly, the user computing device 12a may include at least a display and/or user input hardware. In some embodiments, the user computing device 12a may contain the software and/or the software addition that provides the document filling functionality and/or connects to a remote computing device that provides the document filling functionality, as described herein. Additionally, included in FIG. 1 is the administrator computing device 12c. In the event that the server computing device 12b requires oversight, updating, or correction, the administrator computing device 12c may be configured to provide the desired oversight, updating, and/or correction. The administrator computing device 12c may also be used to input additional data into a corpus of data stored on the server computing device 12b.
The server computing device 12b may receive data from one or more sources, generate data, store data, index data, search data, and/or provide data to the user computing device 12a in the form of a software program, document fills, an embedded webpage, and/or the like. The external data source computing device 12d may generally be a repository for saving search strings, corresponding search results, user-stored data, data from third party providers, and/or the like.
It should be understood that while the user computing device 12a and the administrator computing device 12c are depicted as personal computers and the server computing device 12b and the external data source computing device 12d are depicted as servers, these are nonlimiting examples. More specifically, in some embodiments, any type of computing device (e.g., mobile computing device, personal computer, server, etc.) may be used for any of these components. Additionally, while each of these computing devices is illustrated in FIG. 1 as a single piece of hardware, this is also merely an example. More specifically, each of the user computing device 12a, the server computing device 12b, the administrator computing device 12c, and the external data source computing device 12d may represent a plurality of computers, servers, databases, components, and/or the like. FIG. 2 depicts the server computing device 12b, from FIG. 1, further illustrating a system for providing automatic document filling functionality. While the components depicted in FIG. 2 are described with respect to the server computing device 12b, it should be understood that similar components may also be used for the user computing device 12a, the administrator computing device 12c, and/or the external data source computing device 12d (FIG. 1) without departing from the scope of the present disclosure.
The server computing device 12b may include a non-transitory computer- readable medium for searching and providing data embodied as hardware, software, and/or firmware, according to embodiments shown and described herein. While in some embodiments the server computing device 12b may be configured as a general purpose computer with the requisite hardware, software, and/or firmware, in other embodiments, the server computing device 12b may also be configured as a special purpose computer designed specifically for performing the functionality described herein. In embodiments where the server computing device 12b is a general purpose computer, the methods described herein generally provide a means of improving a matter that resides wholly within the realm of computers and the internet. More specifically, the server computing device 12b improves the user facing functions available to a user of the user computing device 12a (FIG. 1) by presenting a combined interface that is partially provided by the user computing device 12a and partially provided by the server computing device 12b, but appears as a single integrated interface to a user of the user computing device 12a. That is, the user computing device 12a (FIG. 1) provides document editing software (e.g., a word processing program, a spreadsheet editing program, a presentation program, and/or the like) that is installed on the user computing device 12a (or from a source other than the server computing device 12b) alongside an add-in that connects to the server computing device 12b to receive the automatic document filling functionality, processing logic, and/or a rules engine, but appears as a pane within the document editing software, as described in greater detail herein. As a result of this atypical arrangement, the user views a single interface that includes elements from the user computing device 12a (FIG. 1) and elements from the server computing device 12b, where the elements from the respective devices may not be apparent to the user, but together provide the functionality described herein.
Still referring to FIG. 2, the server computing device 12b may include a processor 30, input/output hardware 32, network interface hardware 34, a data storage component 36 (which may store document processing data 38a, extensible markup language (XML) data 38b, document fill data 38c, and/or other data 38d), and a non-transitory memory component 40. The non-transitory memory component 40 may be configured as a volatile and/or a nonvolatile computer-readable medium and, as such, may include random access memory (including SRAM, DRAM, and/or other types of random access memory), flash memory, registers, compact discs (CD), digital versatile discs (DVD), and/or other types of storage components. As such, the non-transitory memory component may be referred to as a non-transitory, processor-readable storage medium. Additionally, the non-transitory memory component 40 may be configured to store various processing logic, such as, for example, operating logic 41, document processing logic 42, XML mapping logic 43, document fill logic 44, and/or processing/rules logic 45 (each of which may be embodied as a computer program, firmware, or hardware, as an example). A local interface 50 is also included in FIG. 2 and may be implemented as a bus or other interface to facilitate communication among the components of the server computing device 12b. The processor 30 may include any processing component configured to receive and execute instructions (such as from the data storage component 36 and/or the non- transitory memory component 40). The input/output hardware 32 may include a monitor, keyboard, mouse, printer, camera, microphone, speaker, touch-screen, and/or other device for receiving, sending, and/or presenting data (e.g., a device that allows for direct or indirect user interaction with the server computing device 12b alongside the user computing device 12a (FIG. 1)). The network interface hardware 34 may include any wired or wireless networking hardware, such as a modem, LAN port, wireless fidelity (Wi-Fi) card, WiMax card, mobile communications hardware, and/or other hardware for communicating with other networks and/or devices.
It should be understood that the data storage component 36 may reside local to and/or remote from the server computing device 12b and may be configured to store one or more pieces of data and selectively provide access to the one or more pieces of data. As illustrated in FIG. 2, the data storage component 36 may store document processing data 38a, XML data 38b, document fill data 38c, and/or other data 38d. The document processing data 38a may generally be data and/or information regarding one or more documents that are edited and/or created by a user via the user computing device 12a (FIG. 1). That is, the document processing data 38a may include word processing documents, spreadsheet documents, presentation documents, template documents, and/or the like. In addition, the document processing data 38a may further include data associated with the various documents, including XML data 38b and/or the like. For example, certain document file formats (e.g., the .docx and .xlsx document file formats) may be compressed files that, when uncompressed, contain a plurality of interrelated files and/or data, such as XML files, document property data, comments data, fonts data, settings data, style data, effects data, web settings data, theme data, content data, and/or -l ithe like. The XML data 38b may generally be data and/or rules that are used to define the software program and/or the add-in or plugin that is provided to a user via the user computing device 12a (FIG. 1). Accordingly, the XML data 38b may be stored within the data storage component 36 and/or within a similar component within the user computing device 12a (FIG. 1). Still referring to FIG. 2, the document fill data 38c is generally data that pertains to one or more options, questions, or the like that are provided to a user at the user computing device 12a (FIG. 1) for the purposes of filling out portions of documents edited by users at the user computing device 12a, such as, for example, portions of the documents stored in the document processing data 38a. That is, the document fill data 38c may contain one or more questions, one or more prepopulated answer options, data pertaining to responses that are typed in by a user (or otherwise selected by a user) at the user computing device 12a (FIG. 1), map data that is used to correlate the one or more questions with one or more areas of an edited document, and/or the like. As such, each question in a document fill pane may be appropriately mapped to one or more sections of a document such that, when a user enters a response to the question in the document fill pane, the appropriate one or more sections of the document will be populated accordingly, as described in further detail herein. Still referring to FIG. 2, the other data 38d may generally encompass any other data that may be generated and/or stored for the purposes of providing automatic document filling functionality as described herein. For example, the other data 38d may include prior answers that are used to fill a document with data that a particular user has previously provided so that the user need to provide the information again, data pertaining to a suite of documents such that a supplied input from a user is applied to each document in a suite, audit history data, data relating to calculations that may be performed, user-entered data that is supplied directly in a document and automatically populated accordingly throughout the document, and/or the like.
Still referring to FIG. 2, included in the non-transitory memory component 40 are the operating logic 41, the document processing logic 42, the XML mapping logic 43, the document fill logic 44, and/or the processing/rules logic 45. The operating logic 41 may include an operating system and/or other software for managing components of the server computing device 12b. The document processing logic 42 may generally provide instructions for retreiving a document and/or a template, setting up the document and/or template for use by the user, determining which fields within the document can be edited by the user, and/or the like, as described in greater detail herein. The XML mapping logic 43 may generally contain instructions for accessing and/or reading XML code associated with a particular document for the purposes of determining which fields within the document can be edited directly by a user, which fields can be populated using a document fill component or the like, mapping one or more questions and answers within a document fill component with one or more fields in the document, and/or the like, as described in greater detail herein. The document fill logic 44 may generally provide programming instructions for generating a document fill component with contents that can be used to elicit particular user responses that are then used to populate a document. For example, the document fill logic 44 may provide one or more document fill component areas (including generating one or more questions and/or answers or answer fields within the document fill component that correspond to fields within a document, based on XML data), providing a document fill component to a user via the integrated user interface presented on the user computing device 12a (FIG. 1), receiving a selected response from a user and/or an inputted text response from a user, and/or the like. The processing/rules logic 45 may provide one or more rules for processing a document, including rules for where particular fields are located, which fields can be modified, which fields cannot be modified, and/or the like.
It should be understood that the components illustrated in FIG. 2 are merely illustrative and are not intended to limit the scope of this disclosure. More specifically, while the components in FIG. 2 are illustrated as residing within the server computing device 12b, this is a nonlimiting example. In some embodiments, one or more of the components may reside external to the server computing device 12b. Similarly, as previously described herein, while FIG. 2 is directed to the server computing device 12b, other components such as the user computing device 12a, the administrator computing device 12c, and the external data source computing device 12d (FIG. 1) may include similar hardware, software, and/or firmware. As mentioned above, the various components described with respect to FIGS. 1 and 2 may be used to carry out one or more processes and/or provide document filling functionality. An illustrative example of the various processes that may be carried out by the various components described with respect to FIGS. 1 and 2 is described with respect to FIGS. 3 and 11.
FIG. 3 relates to a general method of providing automatic document filling functionality. Referring now to FIGS. 1-4, the interface may be provided to the user at the user computing device 12a at block 305. More specifically, an integrated user interface 400 may be provided to the user at the user computing device 12a. That is, the user may view a single interface that includes a document editing program (e.g., Microsoft® Word, Microsoft® Excel, Microsoft® PowerPoint) as well as a window, pane, and/or the like presented within or alongside the document editing program that contains contents that are provided for the purposes of eliciting one or more responses from a user that can be used to populate the document. For example, as shown in the embodiment depicted in FIG. 4, the integrated user interface 400 may include a document editing component 401 and a document fill component 410. As previously described herein, the content within the document editing component 401 may be locally provided by the user computing device 12a and the document fill component 410 is remotely provided by the server computing device 12b in some embodiments. However, in other embodiments, both the document editing component 401 and the document fill component 410 may be locally provided by the user computing device 12a or remotely provided by the server computing device 12b. In yet other embodiments, the document editing component 401 may be provided by a first server computing device and the document fill component 410 may be provided by a second server computing device (e.g., a software program provided over the Internet, such as a cloud-based word processing program), and are displayed on a screen of the user computing device 12a. As such, the various steps described herein can be completed while "offline" (i.e., completed without a network connection) in some embodiments. In other embodiments, the program may be accessed remotely via a network or may contain certain features that are accessed remotely via a network. For example, the program may be a word processor that has basic functionality from software that is locally installed on a device, but accesses documents and/or software pertaining to enhanced functionality from a network server.
The document editing component 401 and the document fill component 410 may generally be provided in any arrangement or configuration within the integrated user interface 400. For example, the document editing component 401 and the document fill component 410 may be provided in a side-by-side arrangement such that a user is able to view the changes to the document displayed within the document editing component 401 when selecting items within the document fill component 410, as described in greater detail herein. In another example, the document fill component 410 may be arranged such that it overlays at least a portion of the document editing component 401.
The document editing component 401 includes a document display area 402 and one or more document editing features 403, such as buttons, menus, and/or the like that a user can utilize to change various characteristics of the document in the document display area 402. For example, a user may select one or more buttons, menus, and/or the like to cut, copy, and/or paste text, utilize a format painter tool, change font settings, change paragraph and spacing settings, select styles, and/or the like within the document editing component 401. The user may also select portions of the document within the document display area 402, such as, for example, document sections 404, editable fields 406, and/or the like. The user may also view one or more callouts 408 that may not be part of the document, but may be displayed alongside the document (or overtop the document) in the document display area 402 (or even shown within the document fill component 410), and may provide information with respect to portions of the document display area 402, the document, and/or the like. In the embodiment depicted in FIG. 4, the document displayed in the document display area 402 is a legal contract that contains a field for entering a start date and the one or more callouts 408 provide information that may be useful to a user in filling the start date, such as, for example, explaining what the start date is. These callouts can also suggest alternate wording, optional clauses or other potential language and/or phrases or clauses that can be used. The document fill component 410 may also provide the callouts 408 to provide additional information that is generated as a result of acquisition of additional real time insights. In the example of a legal document, one or more searches may be run to determine how often a clause is litigated and how successful the lawsuits are in upholding or ruling against certain clauses. It should be understood that the software that provides the document editing component 401 may generally be installed locally on the user computing device 12a (e.g., within a memory component and/or a data storage component of the user computing device 12a).
The document fill component 410 may generally provide one or more fields for assisting the user in filling out the document within the document display area 402 of the document editing component 401. In an initial state, such as the state depicted in the embodiment of FIG. 4, the document fill component 410 may include an authentication screen 412. The authentication screen 412 may include, for example, one or more fields for entering a user name and/or a password, and/or one or more other fields for identifying and/or authenticating the user. It should be understood that the authentication screen 412 is optional and may not be provided in some embodiments. The document fill component 410 may also have other components or the like for providing automatic document filling functionality, as shown and described hereinbelow. The document fill component 410 may generally be an add-in or a plugin to the document editing component 401 provided via software stored on the server computing device 12b and/or another remote computing device, and may generally not be generated from software stored locally on the user computing device 12a.
Because of this arrangement of the integrated user interface 400, the user may perceive the interface to be a single interface on the user computing device 12a and may not be aware that a portion of the interface (e.g., the document fill component 410) is actually provided remotely by the server computing device 12b. The integrated user interface 400 has many benefits over systems and methods that only provide a single interface that is local to the user computing device 12a or remote from the user computing device 12a (e.g., at the server computing device 12b). For example, the integrated user interface 400 ensures that there is no lag time or perceivable delay due to data transmission over the network when the user is editing a document at the user computing device 12a, but still allows the content within the document fill component 410 to be populated and/or updated automatically and continuously (e.g., on the fly) by more powerful server computing devices. In addition, the integrated user interface 400 arranged as described herein allows user-inputted data to be stored on the server computing device 12b if so desired for secure storage or for re-use of answers and accessed at a later time on the same user computing device and/or a different user computing device by the user, particularly in instances where the user may desire to fill out certain portions of different documents in the same manner. For example, if a user routinely prepares legal documents for a particular client (e.g., non-disclosure agreements for a particular client), the user may access stored information regarding that client and/or that client's preferences for certain sections of the legal document via the document fill portion of the interface and have those portions of the document automatically populated (e.g., the client's name, address, etc., the clients preferred contract terms, and/or the like). However, it should be understood that a user's inputs may also be stored with the document being edited as part of the document' s XML data, in some embodiments.
It should be understood that as a result of generating and providing the document fill component 410 via the server computing device 12b as described herein, an administrator or other entity that has control over the server computing device 12b can actively monitor the generation of the document fill component 410 as well as the use of the document fill component 410 by a user to ensure the document fill component 410 is being correctly utilized, to troubleshoot issues, and/or the like. This provides an advantage of software programming that is built into software that is installed directly on a user's computing device, as such software cannot be accessed without first gaining access to the user's computing device. In addition, providing the document fill component 410 on the server computing device 12b also allows for the software that generates and provides the document fill component 410 to be actively updated as needed to ensure that users always have the most up-to-date software without the need to have to locally install updates, as is necessary with other software programs. This arrangement also allows for regular document editing in the event that the server component is offline for any reason.
Still referring to FIGS. 1-4, the user may access the document to be edited, filled, and/or the like at block 310. That is, the user may access one or more portions of the integrated user interface 400 such as, for example, the document editing component 401 and/or the one or more document editing features 403 to start a new document, to open an existing document, to open a document template, and/or the like. In some embodiments, the user may access the document or a document template directly from within the user computing device 12a user interface (e.g., by selecting a file in a file browser or the like), which causes the integrated user interface 400 to open automatically to open the document.
In some embodiments, the document (or a portion thereof) may be locked from manual editing by the user at block 315. That is, the user may be prevented from directly editing the document (or a portion thereof) within the document display area 402 and/or via the document editing component 401 and may only edit the document (or certain portions thereof) by providing one or more inputs in the document fill component 410, as described in greater detail herein. It should be understood that the process described with respect to block 315 is optional, and that the user may have the ability to directly edit the document within the document display area 402 as well as by providing responses to the questions in the document fill component 410 in some embodiments.
At block 320, the document may be displayed in the document display area 402 of the document editing component 401. That is, once the document is accessed by the user, the document is viewable by the user within the document display area 402 of the document editing component 401 such that the user can view the contents of the document, scroll through the document, play multimedia files within the document, and/or edit the document, as described in greater detail herein. In addition to displaying the document in the document display area 402 of the document editing component 401, the document fill component 410 may also be displayed as part of the integrated user interface 400 at block 325, as described herein.
At block 330, one or more inputs may be received at the integrated user interface 400, and as a result, one or more actions may be completed at block 335. For example, one or more user inputs (e.g., text input, touch inputs, mouse clicks, voice inputs, haptic inputs, and/or the like) may be received at a portion of the integrated user interface 400 (e.g., within the document editing component 401 and/or within the document fill component 410). As a result, one or more actions that correspond to user inputs may be carried out as a result (e.g., determining one or more locations within the document to input data and/or inserting the data into the one or more locations). FIGS. 4-10 described hereinbelow provide illustrative embodiments for carrying out actions as a result of receiving one or more inputs. In the embodiments depicted in FIGS. 4-10, a user may generate and/or amend portions of a legal document such as a contractual agreement that is displayed in the document display area 402 of the document editing component 401 by providing inputs within the document editing component 401 and/or the document fill component 410. However, it should be understood that this is merely an example, and any type of document may be edited with any kind of data.
To provide one or more inputs, the user may be provided with one or more menus, selectable items, questions, response boxes, calendars, drop down response items, and/or the like and may present the same via the integrated user interface 400 within the document fill component 410. For example, the server computing device 12b may present the document fill component 410 as shown in FIG. 5. In the embodiment depicted in FIG. 5, the document fill component 410 includes a plurality of primary tabs 502 that relate to various editing functions that are available within the document fill component 410. For example, the plurality of primary tabs 502 may include a draft tab 504, a related content tab 506, and a collaboration tab 508. The draft tab 504, when selected, may generally provide information, questions, and/or the like that are used to elicit a response from the user for the purposes of completing and/or filling out portions of the document displayed in the document display area 402 of the document editing component 401, as described in greater detail herein. The related content tab 506, when selected, may provide information contained within the document and/or external content (e.g., website content) that relates to the document displayed in the document display area 402 of the document editing component 401 (or portions thereof). For example, if a user selects and highlights text from the document within the document display area 402 of the document editing component 401 and then clicks on the related content tab 506, the document fill component 410 may provide information that corresponds to the highlighted text. The collaboration tab 508, when selected, may generally display components that provide functionality for collaborating with others on a document. For example, a section of the collaboration tab 508 may be used in legal documents when multiple parties may collaborate to amend the same document to achieve a collective goal (e.g., multiple parties to a contractual agreement may amend the contract document).
As mentioned, the draft tab 504 is selected in the embodiment depicted in FIG. 5. As such, one or more of a plurality of action selectors 510 may be displayed to a user within the document fill component 410. The action selectors 510 may generally relate to particular actions that can be completed to fill portions of the document within the document display area 402 of the document editing component 401. For example, in the embodiment depicted in FIG. 5, selectable action selectors 510 include an automate action button 512, a clauses action button 514, a load terms action button 516, and a finalize action button 518. The automate action button 512, when selected, may generally cause the document fill component 410 provide a user with an ability to automatically fill particular portions of the document displayed within the document display area 402 of the document editing component 401 when particular submenus are selected, as described in greater detail hereinbelow. The clauses action button 514, when selected, may generally provide a user with an ability to fill standard clauses in the document displayed in the document display area 402 of the document editing component 401. For example, the user may select the clauses action button 514 and subsequently select particular contract clauses (including boilerplate clauses and/or user preferred clauses) into the document at a particular location thereof. In another example, if a user is an attorney for a professional sports team and is preparing an employment contract for a professional athlete that has a pilot's license and particular clauses have been previously been used and saved that pertain to restrictions on flying, the user may select the clauses action button 514 and select a saved clause that specifically pertains to restrictions on flying for entry within the document displayed in the document display area 402 of the document editing component 401. The finalize action button 518, when selected, may generally cause the document fill component 410 to display one or more document finalization functions. For example, one or more document finalization functions may be used to lock a document from further editing, complete final verification checks, and/or the like. In another example, another document finalization function may be to remove all of the editable fields from the document in the document editing component 401, remove any pre-created callouts from the document, and/or the like to create the final version of the document. In addition, electronic signature (e.g., e- signature) blocks may also be added during the finalization step to adhere to more electronic agreements.
In the embodiment depicted in FIG. 5, the automate action button 512 is selected. As such, a plurality of groups that correspond to various sections of the document displayed in the document display area 402 of the document editing component 401 that can be edited and/or populated from selections in the document fill component 410. One such illustrative group is a date group 520. The date group 520 may generally include one or more dates that are to be populated within the document displayed in the document editing component 401. For example, editable field 406, as indicated by the box surrounding the text, relates to a start date at which the service provider will commence the provision of services. The server computing device 12b analyzes the editable fields of the document and the associated XML information as described herein and associates various questions within the date group 520 that correspond to the editable field 406. In some embodiments, the server computing device may use artificial intelligence and/or machine learning to analyze the fields and associate questions. As such, the user may be asked questions such as the date the agreement will be made, the start date, the completion date, specific dates that services will be provided, and/or the like. Referring now to FIG. 6, after each question 524 in the date group 520 is an answer field 522 (e.g., a first answer field 522a, a second answer field 522b, a third answer field 522c, etc.), which may be a text box, a selection menu, a popup calendar, or the like. In the answer field 522a depicted in FIG. 6 in response to a question 524 "What is the date this agreement will be made?," upon user selection, a calendar may be displayed. The user may then select a date from the calendar, which may cause one or more corresponding editable fields 406 within the document displayed in the document display area 402 of the document editing component 401. As shown in FIG. 6, the user has selected April 13, 2017 in the calendar that is displayed in the first answer field 522a. As such, the corresponding date field 600 in the document displayed in the document display area 402 of the document editing component 401 is populated with the same date.
The embodiment depicted in FIG. 6 further illustrates other groups that may be displayed in addition to the date group 520. More specifically, FIG. 6 depicts a party group 530, a service group 540, and a payment group 550, each of which is in a collapsed configuration. When one of the other groups is selected by the user by clicking on the group, the group may be expanded to reveal the contents of the group. For example, as shown in FIG. 7, the party group 530 is expanded to show information regarding the parties to the contract document displayed by the document display area 402 of the document editing component 401. More specifically, the party group 530 includes questions asking a user "Who is the Buyer?" and "Who is the Service Provider?", both of which were generated as a result of the process completed at block 325 described herein with respect to FIG. 3. Still referring to the embodiment depicted in FIG. 7, each question is preceded with an answer block (e.g., a first answer block 532 and a second answer block 534), which are configured to receive text from the user. When a user inputs text in the first answer block 532 and/or the second answer block 534, corresponding text 700 is automatically populated anywhere it is found within the corresponding areas of the document displayed in the document display area 402 of the document editing component 401. Similarly, when the service group 540 is expanded, particular questions that specifically relate to services may be displayed, as shown in the embodiment depicted in FIG. 8. That is, the service group 540 is expanded to show information regarding the services that are the subject of the contract agreement displayed by the document display area 402 of the document editing component 401. More specifically, the service group 540 includes questions asking a user "What services will be provided?" and "At what site will the services be provided?", both of which were generated as a result of the process completed at block 325 described herein with respect to FIG. 3. Still referring to the embodiment depicted in FIG. 8, each question is preceded with an answer block (e.g., a third answer block 542 and/or a fourth answer block 544), which are configured to receive text from the user. When a user inputs text in the third answer block 542 and/or the fourth answer block 544, corresponding text 800 is automatically populated in the corresponding areas of the document displayed in the document display area 402 of the document editing component 401.
Similarly, when the payment group 550 is expanded, particular questions that specifically relate to payments may be displayed, as shown in the embodiment depicted in FIG. 9. That is, the payment group 550 is expanded to show information regarding the payments that are the subject of the contract agreement displayed by the document display area 402 of the document editing component 401. More specifically, the payment group 550 includes questions asking a user "Will the expenses of the service provider be covered by the buyer?, "What type of expenses will be covered?", "Specify the payment details", "How often will the Service Provider bill the Buyer?", and "How will the payment be remitted to the Service Provider?", each of which were generated as a result of the process completed at block 325 described herein with respect to FIG. 3. Still referring to the embodiment depicted in FIG. 9, each question is preceded with an answer block 552 (e.g., a fifth answer block 552a, a sixth answer block 552b, a seventh answer block 552c, an eighth answer block 552d and/or a ninth answer block 552e), which are configured to receive text from the user, be drop down boxes with selectable text, and/or the like. When a user inputs text in answer blocks 552, selects a drop-down box selection, and/or the like, corresponding text 900, 902 is automatically populated in the corresponding areas of the document displayed in the document display area 402 of the document editing component 401.
It should be understood that, based on certain user inputs, various questions, answer blocks 552, groups, and/or the like may be displayed, hidden, or otherwise rendered active or inactive based on inputs supplied by a user to other areas of the document fill component 410. For example, the party group 530 displayed in the document fill component 410 may be initially configured to accept an unlimited number of party names (e.g., for filling contract documents having more than two parties to an agreement). However, if a user input within the document fill component 410 and/or the document displayed in the document display area 402 of the document editing component 401 is indicative of only two parties (e.g., the user specifies that a particular agreement has one buyer and one seller), the options within the party group 530 that pertain to a single party or more than two parties may be hidden, greyed out, or otherwise inactivated such that a user input cannot be received in those options. In another example, if a user specifies that no payment is required for a particular agreement (e.g., each party is providing services), then the payment group 550 may be hidden, greyed out, unable to expand, or otherwise rendered inaccessible to the user since payment information need not be entered by the user.
In some embodiments, the document fill component 410 may further include one or more additional options for a user, as shown for example in the embodiment depicted in FIG. 10. For example, the document fill component 410 may include an option to clear data, as indicated by the "Clear Data" button 1000 and/or an option to send the document to another person, as indicated by the "Send To Client" button 1010. While not depicted in FIG. 10, the user may also be provided with an option to save certain portions of the content within the document fill component 410 for later use, such as commonly used clauses, commonly used names and addresses, and/or the like.
In some embodiments, a user may enter text or other data directly into the document displayed in the document display area 402 of the document editing component 401 instead of (or in addition to) providing inputs in the document fill component. When this occurs, the server computing device 12b may recognize the inputs as being modifications to previously identified fields within the document (e.g. by monitoring the changes to the XML data), and may automatically populate other portions of the document accordingly in a manner that is the same as if the user had entered the data into the document fill component 410. For example, if a user enters a date in a particular field of the document in the document display area 402 that is recognized as being identical to other areas of the document where the same date is to be entered, the same date may be automatically populated within the remainder of the document accordingly. Referring now to FIG. 11 (also with reference to FIGS. 1 and 4), additional details regarding the processes completed by the server computing device 12b and/or the user computing device 12a to provide automatic document filling functionality is described. The processes described with respect to FIG. 11 can be completed entirely by the server computing device 12b, entirely by the user computing device 12a, or by a combination of the server computing device 12b and the user computing device 12a, unless specifically provided.
At block 1105, a document is accessed. The document may be accessed by the user computing device 12a and/or the server computing device 12b. The document may be stored on any storage device, including storage devices that are local to the user computing device 12a, storage devices that are local to the server computing device 12b, and storage devices that are remote from the user computing device 12a and the server computing device 12b. The document may generally be accessed such that the contents of the document can be analyzed, including any associated XML data.
At block 1110, the XML information within the document may be extracted. That is, the document file or a portion thereof may be provided to the server computing device 12b such that XML information therein (e.g., embedded within the document) can be obtained. For example, if the document is a .docx file format document, the compressed XML files within the .docx file may be extracted and transmitted to the server computing device in part or in full and may be sent real time as the user interacts with the document. 12b. In another example, the entire document may be transmitted to the server computing device 12b such that the pertinent XML information or other related information is extracted therefrom.
At block 1115, the server computing device 12b may determine the contents of the document and/or arrangement of features within the document. That is, the server computing device 12b may analyze the XML information and determine whether sections of the document can be populated and/or generated using one or more questions and user responses. For example, if the XML information indicates that at least a portion of the document contains one or more text entry fields for entering a user's name and mailing address, the server computing device 12b may determine that one or more questions pertaining to the user's name and mailing address may be included in the document fill. In another example, if the document is a contract that frequently uses the same terms (e.g., a particular name for a particular party), the server computing device 12b may determine that one or more questions pertaining to the parties' names may be included in the document fill. In some embodiments, such a determination may be made based on saved user preferences. For example, if a user desires each document that is opened to be appended with a particular clause at a particular location within the document, the server computing device 12b may determine the contents and/or arrangement of features from the XML information to determine the particular location therein to insert the clause, and to determine whether to provide a question in the document fill asking the user to affirm the insertion and/or location of the clause. Illustrative examples of XML information is depicted in FIGS. 12A-12D.
Still referring to FIG. 11 (with reference to FIGS. 1-2 and 4), user saved data (e.g., external data) may be retrieved at block 1120 in some embodiments. That is, if the user has previously saved data in a storage device (e.g., within the data storage component 36 of the server computing device 12b) or elsewhere such as a document management system or an online storage provider, the data may be accessed for the purposes of ensuring the content that is provided to the user corresponds to the saved data, such as user preferences, previously prepared document sections 404, and/or the like. For example, if the user has saved boilerplate clauses, party names, and/or the like that are frequently used for a particular document (e.g., a legal contract), the saved boilerplate clauses, party names, and/or the like may be retrieved for the purposes of populating the document fill component 410 in the event the user desires to use the saved data. It should be understood that block 1120 is optional and may not be utilized in some embodiments.
At block 1125, content for the document fill component 410 may be generated and populated within the document fill component 410. That is, one or more menus, selection boxes, text entry boxes, questions, and/or the like may be generated and used to populate the document fill component 410. For example, with reference to FIG. 5, the date group 520, the party group 530, the service group 540, and the payment group 550 may be generated, as well as certain options and selectable entries that allow the user to fill in information that is used to populate a document, as described herein. Referring again to FIG. 11 (with reference to FIGS. 1 and 4), once the content for the document fill component 410 has been generated, it may be provided to the user at block 1130. That is, the generated document fill component 410 may be presented alongside the document display area 402 of the document editing component 401, as described herein.
At block 1135, one or more user inputs may be received. The user inputs are not limited by this disclosure and may include one or more mouse clicks, keyboard inputs, touch inputs, haptic inputs, voiced inputs, gestures, and/or the like. For example, the input may be in the form of text entry, numeric figure entry, selection/deselection of a check box or radio button, calendar selector, date selector, uploading or embedding of a file (including an image file), and/or the like. The one or more user inputs may generally correspond to a user's interaction with the integrated user interface 400, including the document editing component 401 and the document fill component 410. For example, if a user desires to select the date group 520 (FIG. 5) and enter in calendar entries, the inputs that are received may generally be inputs that correspond to an area within the integrated user interface 400 that includes the date group 520 and the content within the date group 520. In another example, the user may enter information directly into the document displayed by the document display area 402 of the document editing component 401.
At block 1140, upon receiving the one or more inputs, a determination may be made as to the one or more fields within the document displayed in the document display area 402 of the document editing component 401 that corresponds to the one or more inputs. For example, if a user clicks on the date group 520 and then selects a calendar entry for April 13, 2017 as the date of the agreement (as shown and described herein with respect to FIG. 6), the system may determine a location in the document where such a date should be entered (e.g., the upper right hand corner of the document, as depicted in FIG. 6). In some embodiments, this process may include determining document content and/or arrangement from the XML information, as previously described herein with respect to block 1115. As previously described herein, such a determination may also be based on the inputs received directly within the document displayed by the document display area 402 of the document editing component 401. That is, a determination may be made as to one or more additional locations within the document to input data based on the inputs received directly within the document, and then the data may be inserted into those additional locations.
Still referring to FIGS. 1, 4, and 11, a further determination may be made as to whether the format provided by the user corresponds to the format that is used for the document at block 1145. For example, if a text entry box is provided in the document fill component 410 for a user to manually enter a date (e.g., by typing a date via a keyboard input) and the inputs received from the user indicate a different format (e.g., text other than the standard MM/DD/YYYY format or other similar format, such as a person's name), the determination at block 1145 may be that the format provided by the user does not correspond to the format that is used for the document. Such a determination may be based on, for example, information within the associated XML data for a particular form field.
If the response format is not correct, another determination may be made at block 1150 as to whether the format can be derived from the response. For example, if a user clicks on a date group 520 (FIG. 5) and manually inputs "April thirteenth of this year" into a text box requiring a date, the system may be configured to recognize that while the inputted text does not correspond to a correct format (e.g., the MM/DD/YYYY format), the date can still be determined and adjusted accordingly (e.g., "04/13/2017"). Conversely, if the user manually inputs "Bob Smith" into the same text box, the system may not be able to derive a corrected format response from the input because "Bob Smith" does not correspond to any known date. In some embodiments, the format may be derived from the response by performing one or more calculations to arrive at the correct format based on the input that was received. For example, if the correct format is a numerical entry but the supplied input is (e.g., 540 x 15), it may be recognized that the supplied input is an equation that can be calculated. Accordingly, the calculation may be completed and the correct format response (e.g., 8100) may be generated.
If the format cannot be derived from the response, the user may be prompted for a different response at the integrated user interface 400 at block 1155. That is, the user may receive an error message or the like indicating that the input provided is incorrect and that a new input is needed. Accordingly, the process may return to block 1135 to receive additional user inputs. If the format can be derived from the response, the correct format response (e.g., "04/13/2017" as used in the example above) may be generated at block 1160 and the process may move to block 1165. If the format of the input is correct at block 1145 (or can be derived from the response input according to blocks 1150 and 1160, such as by performing one or more calculations), the system may insert the text and/or data into the corresponding fields within the document displayed in the document display area 402 of the document editing component 401 at block 1165. Using the example from above, the date may be inserted into the corresponding area (upper right hand corner of the document depicted in FIG. 6 for example). In some embodiments, the document displayed in the document display area 402 of the document editing component 401 may have a plurality of fields that receive the same entry (e.g., a party's name may be inserted throughout a document). As such, text that is provided in the text box via the user inputs in the document fill component 410 (e.g., "Bob Smith" as a party name) may be populated in each area of the document that corresponds to the text box (e.g., each location in a document where a party name is to be placed).
In some embodiments, the content within the document fill component 410 may be modified (e.g. dynamically updated) as one or more inputs are received from a user at block 1170. That is, if a user provides one or more inputs at first section of the document fill component 410 that negate the need for additional information in a second section of the document fill component 410, the second section of the document fill component 410 may by dynamically removed or otherwise deactivated so that the user cannot provide inputs at the second section. For example, if the user inputs a start date of "April 13, 2017" and also specifies that the term of the contract is one year, the system may automatically determine that a section within the document fill component 410 that requests a contract end date is unnecessary because the contract end date can be automatically determined from the start date (e.g., April 13, 2018). As such, the section relating to the contract end date may be removed, greyed out, or otherwise locked so that the user cannot provide inputs at that section. Accordingly, the revised content within the document fill component 410 may be provided to the user at block 1175.
At block 1180, a determination may be made as to whether additional inputs have been received. If no additional inputs have been received, the process may end. If additional input(s) are received, a determination may be made at block 1185 as to whether the additional input(s) include a request to finalize the document. For example, a request to finalize the document may be determined if the user clicks on the "Send To Client" button 1010 or otherwise indicates that the document is ready to be finalized. If the additional input(s) are not indicative of a request to finalize the document, the process may repeat at block 1140. If the input(s) are indicative of a request to finalize the document, the document may be finalized at block 1190 and the process may then end. Additional steps such as emailing the document, saving the document to a cloud server, and/or the like may also be completed prior to the process ending, as described herein. As a result of the processes described hereinabove with respect to FIG. 11, the document fill component 410 is customized to each particular document that is displayed within the document display area 402 of the document editing component 401 and/or customized to a particular user and/or user's preferences. That is, the contents within the document fill component 410 are not a large, unwieldy decision tree that has several irrelevant questions and response entries that may not have anything to do with the document that is displayed within the document display area 402 of the document editing component 401 and/or are not aligned with a particular user's preferences.
In some embodiments, a change log of the inputs that were supplied by the user may be maintained. The change log may track information, such as, but not limited to, the user's identity, the identity of fields in which the user entered or removed data, a time stamp of when data was added/removed, and/or the like. In some embodiments, the change log may be maintained for each user of the form to be filled. As such, information regarding the changes to the form can be maintained as the form is passed around from user to user or in instances where the form is a shared document supplied by a shared document editor (e.g., Google® Docs, Microsoft® Office 365®, etc.). The change log may be stored locally with the form, as an appended file, as a portion of the XML file, and/or at an offsite location (e.g., a DMS system, a blockchain, and/or the like) such that it can be accessed to style the form as needed, used to compare various edits as a black line document, used to compare various edits as a red line document, used to view tracked changes, and/or the like. In some embodiments, the change log may be stored at a central location for the purposes of backup, entity recognition, reuse of answers across multiple documents (i.e., in a suite or set of related documents), and/or the like. In other embodiments, the change log may be stored at a distributed locations (e.g., in a blockchain).
The systems and methods described herein may also allow the form to be saved as a document that is "frozen in time" such that all edits to the form at a particular time are captured at that particular time. It should now be understood that the systems, methods, and computer-readable media described herein provide a software addition (e.g., an add-in, a plugin, or the like) to an existing software program, such as a word processing program for the purposes of assisting a user in filling the contents of a document that is edited in the existing software program. The software addition generally allows a user of the software program to provide answers to a series of questions and/or complete a plurality of sections of a document by filling in a dynamic form, which results in an automatic population of the document in particular areas. As a result, the populated form is correctly filled with accurate information and the document has consistent entries where necessary. In addition, the user may be less confused about what information to put in particular fields in a document and may be able to fill a document more accurately in less time. Furthermore, the user never has to leave his/her primary document editing program when editing a document, and need not be concerned as to whether the document will read and/or be formatted appropriately because all changes can be viewed within the document editing program at the same time the edits are made, regardless of whether the edits are made directly within the document or via the document fill component. Moreover, because the document is edited directly by the user and/or the document fill component, all information is stored directly within the document and does not require any special software, plugins, and/or the like to be installed when the document is subsequently viewed on a different computing device.
While particular embodiments have been illustrated and described herein, it should be understood that various other changes and modifications may be made without departing from the spirit and scope of the claimed subject matter. Moreover, although various aspects of the claimed subject matter have been described herein, such aspects need not be utilized in combination. It is therefore intended that the appended claims cover all such changes and modifications that are within the scope of the claimed subject matter.

Claims

1. A method for providing automatic document filling functionality, the method comprising:
providing, by a processing device, an integrated interface comprising:
a document editing component having a document display area for displaying a document and one or more document editing features for editing a document, and
a document fill component having contents that elicit one or more inputs that are used to fill the document;
receiving, via the document fill component of the integrated interface, one or more inputs that correspond to data to be inputted into the document;
determining, by the processing device, one or more locations within the document to input the data; and
inserting the data into the one or more locations within the document.
2. The method of claim 1, further comprising:
receiving, via the one or more document editing features, one or more editing inputs for manually editing the document.
3. The method of claim 2, further comprising:
determining one or more additional locations within the document to input data based on the received one or more editing inputs; and
inserting the data at the one or more additional locations.
4. The method of claim 1, wherein providing the integrated interface comprises:
providing the document editing component via a user computing device; and
providing the document fill component via a server computing device that is remote from the user computing device.
5. The method of claim 1, further comprising: locking, by the processing device, the document such that the document or a portion of the document is not editable via the document editing component.
6. The method of claim 1, wherein the contents of the document fill component are modified based on the one or more inputs that are received.
7. The method of claim 1, further comprising performing one or more calculations based on the one or more inputs that are received.
8. The method of claim 1, further comprising receiving external data, wherein inserting the data into the one or more locations within the document further comprises inserting the external data into at least one location within the document.
9. The method of claim 1, wherein determining the one or more locations within the document to input the data comprises:
extracting XML information embedded within the document; and determining a content and an arrangement of the document from the XML information.
10. The method of claim 1, wherein providing the integrated interface comprises:
extracting XML information within the document;
determining a content and an arrangement of the document from the XML information;
retrieving user saved data; and
generating the contents for the document fill component from the determined content and the determined arrangement and the user saved data.
11. The method of claim 1, wherein receiving the one or more inputs comprises:
determining that the one or more inputs is not in a correct response format; and
one of:
prompting for a different input; or
generating a correct response format response.
12. A system for providing automatic document filling functionality, the system comprising:
a processing device; and
a non-transitory, processor-readable storage medium, the non-transitory, processor-readable storage medium comprising one or more programming instructions that, when executed, cause the processing device to:
provide an integrated interface comprising:
a document editing component having a document display area for displaying a document and one or more document editing features for editing a document, and
a document fill component having contents that elicit one or more inputs that are used to fill the document;
receive, via the document fill component of the integrated interface, one or more inputs that correspond to data to be inputted into the document;
determine one or more locations within the document to input the data; and
insert the data into the one or more locations within the document.
13. The system of claim 12, wherein the one or more programming instructions that, when executed, cause the processing device to provide the integrated interface further causes the processing device to:
receive information regarding the document fill component from a server computing device that is remote from the processing device; and
provide the document fill component according to the information.
14. The system of claim 12, wherein the one or more programming instructions that, when executed, cause the processing device to determine the one or more locations within the document to input the data further cause the processing device to:
extract XML information embedded within the document; and determine a content and an arrangement of the document from the XML information.
15. A system for providing automatic document filling functionality, the system comprising:
a user computing device that provides a first portion of an integrated interface, the first portion of the integrated interface comprising a document editing component having a document display area for displaying a document and one or more document editing features for editing a document; and
a server computing device that is remote from the user computing device, the server computing device providing a second portion of the integrated interface comprising a document fill component having contents that elicit one or more inputs that are used to fill the document,
wherein:
the user computing device comprises a display that displays the first portion and the second portion of the integrated interface and an input device that receives one or more inputs at one or more of the first portion and the second portion of the integrated interface,
the user computing device receives, via the document fill component, one or more document editing inputs that correspond to data to be inputted into the document;
the server computing device determines one or more locations within the document to input the data; and
the server computing device inserts the data into the one or more locations within the document.
16. The system of claim 15, wherein the user computing device further receives, via the one or more document editing features, one or more editing inputs for manually editing the document.
17. The system of claim 15, wherein the user computing device locks the document such that the document or a portion of the document is not editable via the document editing component.
18. The system of claim 15, wherein the server computing device: extracts XML information within the document;
determines a content and an arrangement of the document from the XML information;
retrieves user saved data; and
generates the contents for the document fill component from the determined content and the determined arrangement and the user saved data.
19. The system of claim 15, wherein the server computing device:
determines that the one or more inputs is not in a correct response format; and
one of:
prompts for a different input; or
generates a correct response format response.
20. The system of claim 15 wherein the user computing device is communicatively coupled to the server computing device via a computer network.
PCT/US2018/048050 2017-08-29 2018-08-27 Systems and methods for providing automatic document filling functionality WO2019046143A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP18849701.0A EP3676730A4 (en) 2017-08-29 2018-08-27 Systems and methods for providing automatic document filling functionality
CN201880056790.1A CN111417950B (en) 2017-08-29 2018-08-27 System and method for providing automatic document filling functionality

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201762551553P 2017-08-29 2017-08-29
US62/551,553 2017-08-29

Publications (1)

Publication Number Publication Date
WO2019046143A1 true WO2019046143A1 (en) 2019-03-07

Family

ID=65437243

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2018/048050 WO2019046143A1 (en) 2017-08-29 2018-08-27 Systems and methods for providing automatic document filling functionality

Country Status (4)

Country Link
US (1) US11474696B2 (en)
EP (1) EP3676730A4 (en)
CN (1) CN111417950B (en)
WO (1) WO2019046143A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112783396A (en) * 2020-06-08 2021-05-11 北京金山办公软件股份有限公司 Object format modification method and device

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10216715B2 (en) 2015-08-03 2019-02-26 Blackboiler Llc Method and system for suggesting revisions to an electronic document
US10515121B1 (en) 2016-04-12 2019-12-24 Tableau Software, Inc. Systems and methods of using natural language processing for visual analysis of a data set
US11030207B1 (en) 2016-04-12 2021-06-08 Tableau Software, Inc. Updating displayed data visualizations according to identified conversation centers in natural language commands
US10372980B2 (en) * 2016-11-16 2019-08-06 Switch, Inc. Electronic form identification using spatial information
US10515149B2 (en) * 2018-03-30 2019-12-24 BlackBoiler, LLC Method and system for suggesting revisions to an electronic document
US10713424B2 (en) * 2018-04-10 2020-07-14 Microsoft Technology Licensing, Llc Automated document content modification
US11048871B2 (en) * 2018-09-18 2021-06-29 Tableau Software, Inc. Analyzing natural language expressions in a data visualization user interface
US10311140B1 (en) 2018-10-25 2019-06-04 BlackBoiler, LLC Systems, methods, and computer program products for a clause library
US11100075B2 (en) * 2019-03-19 2021-08-24 Servicenow, Inc. Graphical user interfaces for incorporating complex data objects into a workflow
US10795882B2 (en) * 2019-04-30 2020-10-06 Alibaba Group Holding Limited Blockchain-based data compression and searching
US11455339B1 (en) 2019-09-06 2022-09-27 Tableau Software, LLC Incremental updates to natural language expressions in a data visualization user interface
CN111144080B (en) * 2019-12-27 2024-04-26 深圳市金政软件技术有限公司 Budget document generation method and system
US11698933B1 (en) 2020-09-18 2023-07-11 Tableau Software, LLC Using dynamic entity search during entry of natural language commands for visual data analysis
US11301631B1 (en) 2020-10-05 2022-04-12 Tableau Software, LLC Visually correlating individual terms in natural language input to respective structured phrases representing the natural language input
EP4272094A1 (en) 2021-01-04 2023-11-08 Blackboiler, Inc. Editing parameters
CN112883687B (en) * 2021-02-05 2022-03-15 北京科技大学 Law contract interactive labeling method based on contract text markup language
JP2022145192A (en) * 2021-03-19 2022-10-03 株式会社リコー Device, system, method, and program for information processing
JP2022147176A (en) * 2021-03-23 2022-10-06 株式会社リコー Device, method, program, and system for processing information
JP2022147177A (en) * 2021-03-23 2022-10-06 株式会社リコー Device, method, program, and system for processing information
CN113408258B (en) * 2021-05-31 2024-02-27 深圳市科曼医疗设备有限公司 Method, device, computer equipment and storage medium for generating operation document
CN115167737B (en) * 2022-07-13 2023-11-07 北京百度网讯科技有限公司 Input information control method and device, front-end interaction method and device
US11954135B2 (en) 2022-09-13 2024-04-09 Briefcatch, LLC Methods and apparatus for intelligent editing of legal documents using ranked tokens
US11960829B1 (en) * 2022-11-29 2024-04-16 Sap Se Fast input window

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100339643B1 (en) * 2000-05-10 2002-06-05 김재종 System and method for trading business management in Internet web
KR20090089601A (en) * 2008-02-19 2009-08-24 주식회사 엘지화학 System and method for automatically building document with its data and layout using document making application program
KR20110130960A (en) * 2010-05-28 2011-12-06 현대중공업 주식회사 Method of automatically generating standard document for diesel engine
US8578265B2 (en) * 2008-10-07 2013-11-05 Bigmachines, Inc. Methods and apparatus for generating a dynamic document
US20140181643A1 (en) * 2004-11-10 2014-06-26 Microsoft Corporation Generating financial data documents using templates

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6651217B1 (en) * 1999-09-01 2003-11-18 Microsoft Corporation System and method for populating forms with previously used data values
US8327258B2 (en) * 2001-11-19 2012-12-04 Oracle International Corporation Automated entry of information into forms of mobile applications
US20030163782A1 (en) 2002-02-27 2003-08-28 Owen Benjamin K. Form data entry system
US7343551B1 (en) * 2002-11-27 2008-03-11 Adobe Systems Incorporated Autocompleting form fields based on previously entered values
US20050004885A1 (en) 2003-02-11 2005-01-06 Pandian Suresh S. Document/form processing method and apparatus using active documents and mobilized software
US7334187B1 (en) * 2003-08-06 2008-02-19 Microsoft Corporation Electronic form aggregation
US20060007189A1 (en) * 2004-07-12 2006-01-12 Gaines George L Iii Forms-based computer interface
US9430455B2 (en) 2005-12-15 2016-08-30 Simpliance, Inc. Methods and systems for intelligent form-filling and electronic document generation
US20080120257A1 (en) * 2006-11-20 2008-05-22 Yahoo! Inc. Automatic online form filling using semantic inference
US9514117B2 (en) * 2007-02-28 2016-12-06 Docusign, Inc. System and method for document tagging templates
US8214362B1 (en) 2007-09-07 2012-07-03 Google Inc. Intelligent identification of form field elements
US20120063684A1 (en) * 2010-09-09 2012-03-15 Fuji Xerox Co., Ltd. Systems and methods for interactive form filling
US20120109884A1 (en) * 2010-10-27 2012-05-03 Portool Ltd. Enhancement of user created documents with search results
US9600801B2 (en) 2011-05-03 2017-03-21 Architectural Computer Services, Inc. Systems and methods for integrating research and incorporation of information into documents
US20130036348A1 (en) * 2011-06-27 2013-02-07 Hazard James G Systems and Methods for Identifying a Standard Document Component in a Community and Generating a Document Containing the Standard Document Component
CN102495855B (en) * 2011-11-21 2013-09-25 奇智软件(北京)有限公司 Automatic login method and device
US9785627B2 (en) * 2014-01-23 2017-10-10 Xerox Corporation Automated form fill-in via form retrieval
US20160335239A1 (en) * 2015-05-13 2016-11-17 Union Pacific Railroad Company Intelligent system and method of completing a form using a device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100339643B1 (en) * 2000-05-10 2002-06-05 김재종 System and method for trading business management in Internet web
US20140181643A1 (en) * 2004-11-10 2014-06-26 Microsoft Corporation Generating financial data documents using templates
KR20090089601A (en) * 2008-02-19 2009-08-24 주식회사 엘지화학 System and method for automatically building document with its data and layout using document making application program
US8578265B2 (en) * 2008-10-07 2013-11-05 Bigmachines, Inc. Methods and apparatus for generating a dynamic document
KR20110130960A (en) * 2010-05-28 2011-12-06 현대중공업 주식회사 Method of automatically generating standard document for diesel engine

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3676730A4 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112783396A (en) * 2020-06-08 2021-05-11 北京金山办公软件股份有限公司 Object format modification method and device
CN112783396B (en) * 2020-06-08 2022-06-24 北京金山办公软件股份有限公司 Object format modification method and device

Also Published As

Publication number Publication date
EP3676730A4 (en) 2021-06-23
US11474696B2 (en) 2022-10-18
EP3676730A1 (en) 2020-07-08
CN111417950B (en) 2024-02-23
CN111417950A (en) 2020-07-14
US20190065456A1 (en) 2019-02-28

Similar Documents

Publication Publication Date Title
US11474696B2 (en) Systems and methods for providing automatic document filling functionality
US20200257848A1 (en) System and method for generating task-embedded documents
US10909868B2 (en) Guiding creation of an electronic survey
US11080493B2 (en) Translation review workflow systems and methods
US10169311B2 (en) Workflow system and method for creating, distributing and publishing content
US11972201B2 (en) Facilitating auto-completion of electronic forms with hierarchical entity data models
US20100287188A1 (en) Method and system for publishing a document, method and system for verifying a citation, and method and system for managing a project
US10489376B2 (en) Computer-implemented method of assessing the quality of a database mapping
US10817662B2 (en) Expert system for automation, data collection, validation and managed storage without programming and without deployment
US20150339285A1 (en) Methods and Systems for Batch Generation and Delivery of Customized Documents
US20130139047A1 (en) Method and system for generating and utilizing persistent electronic tick marks
AU2015331030A1 (en) System generator module for electronic document and electronic file
JP2016048470A (en) Application test support apparatus, data processing method thereof, and program
US20090150800A1 (en) Apparatus, Method and Computer Program Product for Generating Debriefing Charts
KR101523842B1 (en) Method and apparatus for translation management
US20240126412A1 (en) Cross channel digital data structures integration and controls
JP5821528B2 (en) Data check program, data check method, and data check device
Bettermann et al. Collaboration Made Easier-Working with Restricted Documents Within Office 2013, OneDrive, and Office 365
Sharma Document Management System
WO2013009770A1 (en) Workflow system and method for creating, distributing and publishing content
Wirtz Merging RTF files using SAS®, MSWord®, and Acrobat Distiller®

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18849701

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2018849701

Country of ref document: EP

Effective date: 20200330