IP Library Granted Patent US 9,223,773
Granted Patent B2
US 9,223,773 · App. 14/148,568 · Granted Dec 29, 2015

Template system for custom document generation

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,223,773
App. No.
14/148,568
Granted
Dec 29, 2015
Kind
B2
Abstract

Systems and techniques for flexibly generating custom documents from data objects are described herein. Templates with embedded code instructions, which may be evaluated separate from a document reading or editing program, may be used to generate custom documents. The template system may use the embedded code instructions to dynamically access properties of data objects. An editing program may be used initially to generate a mockup document that may be used as the basis for a template.

Claims (72)

1. A computer system for generating custom template-based documents, the computer system comprising:

a template storage device; and

one or more hardware processors programmed, via executable code instructions, to implement:

a template generator configured to:

access a placeholder template comprising one or more placeholders indicating locations for insertion of executable instructions;

receive executable instructions to be included in the placeholder template; and

store, in the template storage device, a template including one or more sets of the received executable instructions inserted into corresponding placeholders of the placeholder template;

a user interface unit configured to:

generate one or more user interfaces configured to display one or more selectable graphics each corresponding to one or more respective data objects; and

receive, via the one or more user interfaces, selection of one or more data objects to include in a custom document based at least in part on a selection of the one or more selectable graphics by a user, at least one of the selected one or more data objects comprising a person data object;

a template selection unit configured to receive a selection of the template; and

a template processor configured to:

parse the one or more sets of executable instructions included in the template;

execute each of the one or more sets of executable instructions, wherein at least one set of first executable instructions includes instructions to access properties of the selected data objects stored in one or more data sources, and wherein at least one of the accessed properties is associated with the person data object, and wherein at least one set of second executable instructions is configured to determine an additional data object and at least one property associated with the additional data object based on at least one property of the selected one or more data objects;

generate an output for each of the one or more sets of executable instructions; and

generate the custom document by replacing the one or more sets of executable instructions in the template with the output generated by execution of corresponding sets of executable instructions, at least some of the output including properties of the selected one or more data objects, the at least one property associated with the person data object, and the at least one property associated with the additional data object.

2. The system of claim 1 , wherein the template comprises an XML based document format.

3. The system of claim 2 , further comprising:

an XML document editor, wherein the XML document editor is configured to receive user input to modify the XML documents of an XML based document.

4. The system of claim 1 , wherein the custom document comprises a law enforcement document.

5. The system of claim 1 , wherein the placeholder template comprises:

a name placeholder;

an image placeholder;

a contact information placeholder; and

an address placeholder.

6. The system of claim 5 , wherein the placeholder template further comprises:

an alias placeholder;

an associates placeholder; and

a prior arrests placeholder.

7. The system of claim 1 , wherein the template processor comprises:

a code interface configured to parse code in multiple programming languages.

8. The system of claim 7 , wherein the code interface is configured for Groovy.

9. The system of claim 1 , wherein at least one set of third executable instructions is configured to access a snippet object, the snippet object comprising at least one citation data property, and wherein the custom document includes the at least one citation data property.

10. The system of claim 1 , wherein the template generator is further configured to:

access a second placeholder template comprising second data, wherein the second data corresponds to at least one of a graphic or text, and wherein the second data is not present in the placeholder template;

store, in the template storage device, a second template including the one or more sets of the received executable instructions; and

generate a second custom document based on the second template, the second custom document comprising the second data.

11. The system of claim 1 , wherein the one or more user interfaces are configured to:

receive a second set of executable code instructions from an interactive command line, wherein at least some of the second set of executable code instructions are configured to cause the system to access properties of the selected one or more data objects when executed; and

display output of the second set of executable code instructions.

12. A method for generating custom template-based documents, the method comprising:

receiving selection of a template, the template including one or more sets of executable instructions;

generating one or more user interfaces configured to display one or more selectable graphics each corresponding to one or more respective data objects;

receiving, via the one or more user interfaces, selection of one or more of the data objects via a user selection of one or more selectable graphics associated with the selected one or more data objects, at least one of the selected one or more data objects comprising a person data object, wherein the selected one or more data objects are accessed in response to executing the one or more sets of executable instructions;

executing, by a computer system having one or more computer processors and an electronic storage device, each of the one or more sets of executable instructions, wherein at least one set of first executable instructions includes instructions to access properties of at least some of the selected one or more data objects, and wherein at least one of the accessed properties is associated with the person data object, and wherein at least one set of second executable instructions is configured to determine an additional data object and at least one property associated with the additional data object based on at least one property of the selected one or more data objects;

generating an output for each of the one or more sets of executable instructions; and

generating a custom document by replacing the one or more sets of executable instructions in the template with the corresponding generated output, including properties of the selected one or more data objects, the at least one property associated with the person data object, and the least one property associated with the additional data object.

13. The method of claim 12 , wherein the template comprises an XML based document format.

14. The method of claim 13 , further comprising:

providing an XML editing user interface, wherein the XML editing user interface is configured to receive user input to modify XML elements of an XML based document;

receiving first user input of static text in a placeholder template, the static text to be included in the custom document;

receiving second user input of a placeholder character string at a particular location of the placeholder template;

providing an XML view of the placeholder template, the XML view including elements usable by a word processor to generate a depiction of the placeholder template;

providing, via the XML editing user interface, identifiers to locate the placeholder character string in the XML view;

receiving, via the XML editing user interface, a first set of executable instructions replacing the placeholder character string in the XML view; and

storing, as the template, the placeholder template with the first set of executable instructions replacing the placeholder character string.

15. The method of claim 12 , further comprising:

accessing a second template including the one or more sets of the executable instructions and second data, wherein the second data corresponds to at least one of a graphic or text, and wherein the second data is not present in the template; and

generating a second custom document based on the second template, the second custom document comprising the second data.

16. The method of claim 12 , wherein the custom document comprises a rap sheet including criminal history information regarding an individual.

17. Non-transitory computer storage comprising instructions for causing a computer system to generate custom template-based documents by:

receiving a template that was modified by replacing placeholders with sets of executable instructions;

receiving a selection of the template;

generating one or more user interfaces configured to display one or more selectable graphics each corresponding to one or more respective data objects;

receiving, via the one or more user interfaces, selection of one or more data objects to include in a custom document based on properties of the one or more data objects based at least in part on a selection of the one or more selectable graphics by a user, at least one of the selected one or more data objects comprising a person data object;

parsing the one or more sets of executable instructions from the template by the computer system;

executing each of the one or more sets of executable instructions, wherein at least one set of executable instructions includes instructions to access properties of the selected one or more data objects stored from one or more data sources, and wherein at least one of the accessed properties is associated with the person data object, and wherein at least one set of second executable instructions is configured to determine an additional data object based on an association between the additional data object and at least one of the selected one or more data objects;

generating an output for each of the one or more sets of executable instructions; and

generating a custom document by replacing the one or more sets of executable instructions in the template with the corresponding generated output, including the at least one property associated with the person data object, and at least one property associated with the additional data object.

18. The non-transitory computer storage of claim 17 , wherein the template comprises an XML based document format.

19. The non-transitory computer storage of claim 17 , wherein the custom document comprises a law enforcement document.

20. The non-transitory computer storage of claim 17 , wherein at least one set of executable instructions is configured to determine an additional data object based on at least one property of the selected one or more data objects, and wherein the custom document includes output corresponding to at least one property of the additional data object.

Assignments (8)
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENTS Recorded Jul 3, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0640 →
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUSLY LISTED PATENT BY REMOVING APPLICATION NO. 16/832267 FROM THE RELEASE OF SECURITY INTEREST PREVIOUSLY RECORDED ON REEL 052856 FRAME 0382. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Aug 26, 2021
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 057335/0753 →
SECURITY INTEREST Recorded Jun 4, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 052856/0817 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2020
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 052856/0382 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 051713/0149 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: ROYAL BANK OF CANADA, AS ADMINISTRATIVE AGENT
Reel/Frame 051709/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2014
From: ISAACSON, ANDY
To: PALANTIR TECHNOLOGIES, INC.
Reel/Frame 032458/0950 →