IP Library › Granted Patent US 12,386,803
Granted Patent B2
US 12,386,803 · App. 18/336,876 · Granted Aug 12, 2025

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 12,386,803
App. No.
18/336,876
Granted
Aug 12, 2025
Kind
B2
Abstract

A method comprises storing an ontology for a data store, wherein the ontology comprises a plurality of data object types and a plurality of object property types. The method also comprises storing a validator for a particular object property type of the plurality of object property types, wherein the validator specifies a permitted value for the particular object property type, and storing a parser definition corresponding to the particular object property type, wherein the parser definition specifying a permitted format for the particular object property type. In addition, the method comprises receiving user input that changes a particular data object type of the plurality of data object types, including changing the particular object property type. Finally, the method comprises updating the validator for the particular object property type, and updating the parser definition corresponding to the particular object property type.

Claims (52)

1. A computer-implemented method of managing a dynamic ontology, comprising:

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

storing, by the processor, a validator for a particular object property type of the plurality of object property types, the validator specifying a permitted value for the particular object property type;

storing a parser definition corresponding to the particular object property type, the parser definition specifying a permitted format for the particular object property type;

receiving user input that changes a particular data object type of the plurality of data object types, including changing the particular object property type;

updating the validator for the particular object property type;

updating the parser definition corresponding to the particular object property type.

2. The computer-implemented method of claim 1 , the user input changing a name, a location, a base type, or a graphical icon of the particular data object type.

3. The computer-implemented method of claim 1 , the user input changing a set of associated words or a display formatter for the particular object property type.

4. The computer-implemented method of claim 1 , updating the parser definition comprising receiving a user selection of a new parser type from a plurality of parser types, including a regular expression or a code module.

5. The computer-implemented method of claim 1 , updating the parser definition comprising receiving a user specification of one or more constraints, default values, or other attributes of the parser definition.

6. The computer-implemented method of claim 1 , updating the parser definition comprising receiving a user specification of a regular expression.

7. The computer-implemented method of claim 1 , updating the validator comprising receiving a user specification of a regular expression.

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

receiving input data;

creating modified data from the input data using the parser definition;

determining that the modified data matches the validator;

storing, in response to the determining, the modified data in an object property instance of the particular object property type.

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

receiving input data;

identifying a data object type associated with a row of one or more rows of the input data and an object property type associated with each field of one or more fields of the row;

selecting a set of parser definitions associated with the one or more object property types.

10. The computer-implemented method of claim 9 , further comprising:

for each parser definition of the set of parser definitions, determining that the parser definition matches a corresponding field and creating a property instance of a corresponding object property type;

creating an object instance of the data object type;

storing the object instance in a database.

11. A computer-readable, non-transitory storage medium storing computer-executable instructions, which when executed cause one or more processors to perform a method of managing a dynamic ontology, the 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;

storing a validator for a particular object property type of the plurality of object property types, the validator specifying a permitted value for the particular object property type;

storing a parser definition corresponding to the particular object property type, the parser definition specifying a permitted format for the particular object property type;

receiving user input that changes a particular data object type of the plurality of data object types, including changing the particular object property type;

updating the validator for the particular object property type;

updating the parser definition corresponding to the particular object property type.

12. The computer-readable, non-transitory storage medium of claim 11 , the user input changing a name, a location, a base type, or a graphical icon of the particular data object type.

13. The computer-readable, non-transitory storage medium of claim 11 , the user input changing a set of associated words or a display formatter for the particular object property type.

14. The computer-readable, non-transitory storage medium of claim 11 , updating the parser definition comprising receiving a user selection of a new parser type from a plurality of parser types, including a regular expression or a code module.

15. The computer-readable, non-transitory storage medium of claim 11 , updating the parser definition comprising receiving a user specification of one or more constraints, default values, or other attributes of the parser definition.

16. The computer-readable, non-transitory storage medium of claim 11 , updating the parser definition comprising receiving a user specification of a regular expression.

17. The computer-readable, non-transitory storage medium of claim 11 , updating the validator comprising receiving a user specification of a regular expression.

18. The computer-readable, non-transitory storage medium of claim 11 , the method further comprising:

receiving input data;

creating modified data from the input data using the parser definition;

determining that the modified data matches the validator;

storing, in response to the determining, the modified data in an object property instance of the particular object property type.

19. The computer-readable, non-transitory storage medium of claim 11 , the method further comprising:

receiving input data;

identifying a data object type associated with a row of one or more rows of the input data and an object property type associated with each field of one or more fields of the row;

selecting a set of parser definitions associated with the one or more object property types.

20. The computer-readable, non-transitory storage medium of claim 19 , the method further comprising:

for each parser definition of the set of parser definitions, determining that the parser definition matches a corresponding field and creating a property instance of a corresponding object property type;

creating an object instance of the data object type;

storing the object instance in a database.

Continuity (8)
Continuation 17123019 · Dec 15, 2020
Continuation 15448491 · Mar 2, 2017
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 20230334032A1 · Oct 19, 2023
References Cited (28)
US 5454106A · Burns · 1995 [cited by examiner]
US 6236994B1 · Swartz et al. · 2001 [cited by applicant]
US 6289338B1 · Stoffel et al. · 2001 [cited by applicant]
US 6640231B1 · Andersen et al. · 2003 [cited by applicant]
US 6792435B1 · Ruddy · 2004 [cited by examiner]
US 7027974B1 · Busch et al. · 2006 [cited by applicant]
US 7496569B2 · Theobald · 2009 [cited by examiner]
US 7519589B2 · Charnock et al. · 2009 [cited by applicant]
US 7840293B2 · Weinrich et al. · 2010 [cited by applicant]
US 7877421B2 · Berger et al. · 2011 [cited by applicant]
US 7895315B2 · Weinrich et al. · 2011 [cited by applicant]
US 8117300B2 · Weinrich et al. · 2012 [cited by applicant]
US 8321045B2 · Weinrich et al. · 2012 [cited by applicant]
US 10025588B1 · Tran · 2018 [cited by examiner]
US 11714792B2 · Jain et al. · 2023 [cited by applicant]
US 20030172053A1 · Fairweather · 2003 [cited by examiner]
US 20030177112A1 · Gardner · 2003 [cited by applicant]
US 20040126840A1 · Cheng et al. · 2004 [cited by applicant]
US 20040158455A1 · Spivack et al. · 2004 [cited by applicant]
US 20060036592A1 · Das · 2006 [cited by examiner]
US 20060036633A1 · Chong · 2006 [cited by examiner]
US 20060053170A1 · Hill et al. · 2006 [cited by applicant]
US 20060212474A1 · Mccormack et al. · 2006 [cited by applicant]
US 20060259514A1 · Weinrich et al. · 2006 [cited by applicant]
US 20060259515A1 · Weinrich et al. · 2006 [cited by applicant]
US 20060259911A1 · Weinrich et al. · 2006 [cited by applicant]
US 20060259912A1 · Weinrich · 2006 [cited by examiner]
US 20060271884A1 · Hurst · 2006 [cited by applicant]