IP Library Granted Patent US 10,699,071
Granted Patent B2
US 10,699,071 · App. 14/980,845 · Granted Jun 30, 2020

Systems and methods for template based custom document generation

Inventor: Andy Isaacson (Palo Alto, CA)
Assignee: Palantir Technologies Inc.
G06F40/186G06F3/04842G06F40/103G06F40/14G06F40/146G06F40/174G06F40/205
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 10,699,071
App. No.
14/980,845
Granted
Jun 30, 2020
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 (76)

1. A computer-implemented method comprising:

accessing a placeholder template comprising:

one or more placeholders indicating locations for insertion of code instructions; and

one or more formatted text or images;

receiving the code instructions to be included in the placeholder template, the code instructions indicating a property type;

generating a template by replacing the one or more placeholders in the placeholder template with the code instructions at the locations;

causing presentation of a user interface comprising:

selectable graphics representing a plurality of data objects, wherein each selectable graphic of the selectable graphics comprises a representation of a particular data object, wherein the user interface is configured to be responsive to a user interaction comprising at least one of:

a request to inspect a first property of a first data object, the first property different than a second property of a second data object, or

an action to filter the plurality of data objects associated with the selectable graphics;

receiving, via the user interface, a selection of data objects from the plurality of data objects corresponding to at least some of the selectable graphics;

executing the code instructions associated with the generated template to retrieve output data of the indicated property type associated with the selected data objects; and

generating a custom document by replacing the code instructions with the output data in the template, wherein the output data is inserted at the locations associated with the code instructions in the template.

2. The computer-implemented method of claim 1 , wherein generating the custom document comprises using a JSON data format.

3. The computer-implemented method of claim 1 , further comprising:

receiving, via the user interface, a second selection of the template.

4. The computer-implemented method of claim 1 , wherein at least one of the placeholder template, the template or the custom document is a word processing document.

5. The computer-implemented method of claim 1 , further comprising:

determining a third data object associated with the first data object of the plurality of data objects; and

accessing third data, the third data based at least on a third property of the third data object, wherein generating the custom document further comprises incorporating the third data.

6. The computer-implemented method of claim 1 , wherein the template further comprises a second code instruction, and wherein the computer-implemented method further comprises:

evaluating the second code instruction, wherein evaluating the second code instruction comprises:

iterating over a data collection; and

generating second output data based at least on the data collection,

wherein the custom document further comprises the second output data.

7. A non-transitory computer-readable storage medium storing computer-executable instructions that, when executed by a computer system, configure the computer system to perform operations comprising:

accessing a placeholder template comprising:

one or more placeholders indicating locations for insertion of code instructions; and

one or more formatted text or images;

receiving the code instructions to be included in the placeholder template, the code instructions indicating a property type;

generating a template by replacing the one or more placeholders in the placeholder template with the code instructions at the locations;

causing presentation of a user interface comprising:

selectable graphics representing a plurality of data objects, wherein each selectable graphic of the selectable graphics comprises a representation of a particular data object, wherein the user interface is configured to be responsive to a user interaction comprising at least one of:

a request to inspect a first property of a first data object, the first property different than a second property of a second data object, or

an action to filter the plurality of data objects associated with the selectable graphics;

receiving, via the user interface, a selection of data objects from the plurality of data objects corresponding to at least some of the selectable graphics;

executing the code instructions associated with the generated template to retrieve output data of the indicated property type associated with the selected data objects; and

generating a custom document by replacing the code instruction with the output data in the template, wherein the output data is inserted at the locations associated with the code instructions in the template.

8. The non-transitory computer-readable storage medium of claim 7 , wherein generating the custom document comprises using a JSON data format.

9. The non-transitory computer-readable storage medium of claim 7 , wherein the computer-executable instructions further configure the computer system to perform operations comprising:

receiving, via the user interface, a second selection of the template.

10. The non-transitory computer-readable storage medium of claim 7 , wherein the first property corresponds to at least one of a first name or a last name.

11. The non-transitory computer-readable storage medium of claim 7 , wherein the template further comprises a second code instruction, and wherein the computer-executable instructions further configure the computer system to perform operations comprising:

evaluating the second code instruction, wherein evaluating the second code instruction causes the computer system to:

iterate over a data collection; and

generate second output data based at least on the data collection, wherein the custom document further comprises the second output data.

12. The non-transitory computer-readable storage medium of claim 7 , wherein the computer-executable instructions further configure the computer system to perform operations comprising:

determining a third data object associated with the first data object of the plurality of data objects; and

accessing third data, the third data based at least on a third property of the third data object, wherein the custom document further comprises the third data.

13. The non-transitory computer-readable storage medium of claim 12 , wherein determining the third data object is further based at least on a property of the first data object.

14. A computer system comprising:

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

access a placeholder template comprising:

one or more placeholders indicating locations for insertion of code instructions; and

one or more formatted text or images;

receive the code instructions to be included in the placeholder template, the code instructions indicating a property type;

generate a template by replacing the one or more placeholders in the placeholder template with the code instructions at the locations;

cause presentation of a user interface comprising:

selectable graphics representing a plurality of data objects, wherein each selectable graphic of the selectable graphics comprises a representation of a particular data object, wherein the user interface is configured to be responsive to a user interaction comprising at least one of:

a request to inspect a first property of a first data object, the first property different than a second property of a second data object, or

an action to filter the plurality of data objects associated with the selectable graphics;

receive, via the user interface, a selection of data objects from the plurality of data objects corresponding to at least some of the selectable graphics;

execute the code instructions associated with the generated template to retrieve output data of the indicated property type associated with the selected data objects; and

generate a custom document by replacing the code instruction with the output data in the template, wherein the output data is inserted at the locations associated with the code instructions in the template.

15. The computer system of claim 14 , wherein generating the custom document comprises using a JSON data format.

16. The computer system of claim 14 , wherein the one or more hardware computer processors are further configured to:

receiving, via the user interface, a second selection of the template.

17. The computer system of claim 14 , wherein a data object of the plurality of data objects corresponds to a person data object.

18. The computer system of claim 14 , wherein the template further comprises a second code instruction, and wherein the one or more hardware computer processors are further configured to:

evaluate a second code instruction, wherein evaluating the second code instruction comprises:

iterating over a data collection; and

generating second output data based at least on the data collection, wherein the custom document further comprises the second output data.

19. The computer system of claim 14 , wherein the one or more hardware computer processors are further configured to:

determine a third data object associated with the first data object of the plurality of data objects; and

access third data, the third data based at least on a third property of the third data object, wherein the custom document further comprises the third data.

20. The computer system of claim 19 , wherein determining the third data object is further based at least on a property of the first data object.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2023
From: ISAACSON, ANDY
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 064875/0063 →
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 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2020
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 052856/0382 →
SECURITY INTEREST Recorded Jun 4, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 052856/0817 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: ROYAL BANK OF CANADA, AS ADMINISTRATIVE AGENT
Reel/Frame 051709/0471 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 051713/0149 →