IP Library Granted Patent US 10,872,067
Granted Patent B2
US 10,872,067 · App. 15/448,491 · Granted Dec 22, 2020

Creating data in a data store using a dynamic ontology

Inventors: Akash Jain (Mountain View, CA); Robert J. McGrew (Los Altos, CA); Nathan Gettings (Palo Alto, CA)
Assignee: PALANTIR TECHNOLOGIES, INC.
G06F16/2219G06F16/21G06F16/213G06F16/22G06F16/2365G06F16/245G06F16/367G06F40/205G06F40/211G06F40/226G06F40/284
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,872,067
App. No.
15/448,491
Granted
Dec 22, 2020
Kind
B2
Abstract

In one embodiment, a method comprises creating and storing an ontology for a data store in response to receiving first user input defining the ontology, wherein the ontology comprises a plurality of data object types and a plurality of object property types; creating one or more parser definitions in response to receiving second user input defining the parser definitions, wherein each of the parser definitions specifies one or more sub-definitions of how to transform first input data into modified input data that is compatible with one of the object property types; and storing each of the one or more parser definitions in association with one of the plurality of object property types.

Claims (52)

1. A computer-implemented method comprising:

storing an ontology for a data store, wherein the ontology comprises a plurality of data object types and a plurality of object property types;

receiving, at a computing device, first user input defining one or more particular object types and one or more particular object property types for the one or more particular object types;

the computing device updating the ontology by creating and storing, in the ontology, the one or more particular object types and the one or more particular object property types;

receiving, at the computing device, second user input defining one or more parser definitions for the one or more particular object property types;

wherein the one or more parser definitions comprises one or more sub-definitions of how to transform first input data into modified input data that is compatible with the one or more particular object property types, the one or more sub-definitions being defined based on the second user input;

the computing device updating the ontology by creating and storing, in the ontology, the one or more parser definitions for the one or more particular object property types;

receiving the first input data;

determining that the first input data matches the one or more parser sub-definitions;

using the one or more parser sub-definitions, creating the modified input data and storing the modified input data in a property of the object property type that is identified in the one or more parser sub-definitions.

2. The method of claim 1 , wherein creating and storing one or more parser definitions comprises creating and storing one or more program code modules, wherein the one or more program code modules comprise computer program code which when executed causes transforming the first input data into the modified input data.

3. The method of claim 1 , wherein creating and storing one or more parser definitions comprises creating and storing one or more transformation expressions, wherein the one or more transformation expressions comprise one or more syntactic patterns and a property type identifier associated with the one or more syntactic patterns.

4. The method of claim 1 , wherein creating and storing one or more parser definitions comprises creating and storing one or more transformation expressions, wherein the one or more transformation expressions comprise one or more syntactic patterns and a property type identifier associated with the one or more syntactic patterns, and further comprising:

receiving the first input data;

determining whether the first input data matches the one or more syntactic patterns;

using a matching of the one or more syntactic patterns, creating and storing modified input data;

storing the modified input data in a property of the property type that is identified by the property type identifier associated with the matching of the one or more syntactic patterns.

5. The method of claim 1 , wherein creating the one or more parser definitions comprises creating one or more parser definitions comprising a constraint on the modified input data that is compatible with one of the object property types.

6. The method of claim 1 , wherein creating one or more parser definitions comprises creating one or more parser definitions comprising a default value to substitute for a component of the modified input data.

7. The method of claim 1 , further comprising:

using one or more transformations expressed in the sub-definition to transform portions of the input to components of the object property to create the modified input data;

storing the modified input data in a property of the property type that is identified in the matching one of the parser sub-definitions.

8. A system, comprising:

one or more processors;

a data store;

an ontology coupled to the data store and comprising a plurality of data object types and a plurality of object property types;

one or more instructions which, when executed by the one or more processors, cause the one or more processors to perform:

receiving first user input defining one or more particular object types and one or more particular object property types for the one or more particular object types;

updating the ontology by creating and storing, in the ontology, the one or more particular object types and the one or more particular object property types;

receiving second user input defining one or more parser definitions for the one or more particular object property types;

wherein the one or more parser definitions comprises one or more sub-definitions of how to transform first input data into modified input data that is compatible with the one or more particular object property types, the one or more sub-definitions being defined based on the second user input;

updating the ontology by creating and storing, in the ontology, the one or more parser definitions for the one or more particular object property types;

receiving the first input data;

determining that the first input data matches the one or more parser sub-definitions;

using the one or more parser sub-definitions, creating the modified input data and storing the modified input data in a property of the object property type that is identified in the one or more parser sub-definitions.

9. The system of claim 8 , wherein the instructions, when executed by the one or more processors further cause the one or more processors to perform:

receiving the first input data;

determining that the first input data matches the one or more parser sub-definitions;

using the one or more parser sub-definition, creating the modified input data;

storing the modified input data in a property of the object property type that is identified in the one or more parser sub-definitions.

10. The system of claim 8 , wherein the one or more parser definitions comprise one or more program code modules, wherein the code modules comprises computer program code which when executed by the one or more processors causes the one or more processors to perform transforming the first input data into the modified input data.

11. The system of claim 8 , wherein the one or more parser definitions comprise one or more transformation expressions, wherein the one or more transformation expressions comprise one or more syntactic patterns and a property type identifier associated with each of the syntactic patterns.

12. The system of claim 11 wherein instructions, when executed by the one or more processors, further cause performance of:

determining whether the first input data matches the one or more syntactic patterns;

using a matching of the one or more syntactic patterns, creating and storing modified input data;

storing the modified input data in a property of the property type that is identified by the property type identifier associated with the matching of the one or more syntactic patterns.

13. The system of claim 8 , wherein creating the one or more parser definitions comprises creating one or more parser definitions comprising a constraint on the modified input data that is compatible with one of the object property types.

14. The system of claim 8 , wherein creating one or more parser definitions comprises creating one or more parser definitions comprising a default value to substitute for a component of the modified input data.

15. The system of claim 8 , wherein the instructions, when executed by the one or more processors, further cause performance of:

determining whether the first input data matches the one or more parser sub-definitions;

using one or more transformations expressed in the sub-definition to transform portions of the input to components of the object property to create the modified input data;

storing the modified input data in a property of the property type that is identified in the matching one of the parser sub-definitions.

Assignments (7)
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
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 →
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: 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 →
Continuity (6)
Continuation 14954680 · Nov 30, 2015
Continuation 14508696 · Oct 7, 2014
Continuation 13916447 · Jun 12, 2013
Continuation 13106636 · May 12, 2011
Continuation 11602626 · Nov 20, 2006
Related Publication 20170177634A1 · Jun 22, 2017