IP Library Granted Patent US 9,201,920
Granted Patent B2
US 9,201,920 · App. 14/508,696 · Granted Dec 1, 2015

Creating data in a data store using a dynamic ontology

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,201,920
App. No.
14/508,696
Granted
Dec 1, 2015
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 (39)

1. A method comprising:

storing a plurality of parser definitions, wherein each parser definition is associated with an object type, wherein a particular parser definition of the one or more parser definitions comprises two or more parser sub-definitions, wherein a first parser sub-definition of the two or more parser sub-definitions is associated with a first property type, and wherein a second parser sub-definition of the two or more parser sub-definitions is associated with a second property type;

storing a first validator for the first property type and a second validator for the second property type, the first validator defining valid data for the first property type and the second validator defining valid data for the second property type;

determining whether input data matches the particular parser definition;

based at least in part on determining that the input data matches the particular parser definition:

creating at least a first property instance of the first property type and a second property instance of the second property type;

storing first data corresponding to a first portion of the input data in the first property instance when the first data matches the first validator;

wherein the method is performed by one or more computing devices.

2. The method of claim 1 , further comprising:

storing one or more attributes associated with the first property type, the one or more attributes including one or more associated words or a display formatter, the one or more associated words defining one or more search terms for the first property type that will return the first property type in a search result, and the display formatter defining how to print or display a value of the first property type.

3. The method of claim 1 , wherein the particular parser definition is an expression pattern, a code module, or a script.

4. The method of claim 1 , further comprising receiving user input that defines the particular parser definition, the first parser sub-definition, and the second parser sub-definition, wherein the particular parser definition is stored based at least in part on the user input.

5. The method of claim 1 , further comprising receiving user input that defines the object type, the first property type, and the second property type before storing the particular parser definition.

6. The method of claim 1 , further comprising:

in response to determining that the input data matches the particular parser definition, storing second data based on a second portion of the input data in the second property instance when the second data matches the second validator.

7. The method of claim 1 , wherein the first validator or the second validator is one or more of: an expression that defines a range of valid data, a set of valid data, or a code module that, when executed against particular input data, determines whether the particular input data matches a specified syntax or data model.

8. The method of claim 1 , wherein at least the first property type is a composite type that includes a first component and a second component, wherein each of the first component and the second component is a string component, a date component, or a number component, and wherein the first portion of the input data and the corresponding first data each consist of respective string data, date data, or number data corresponding to the first component and the second component.

9. The method of claim 1 , wherein the particular parser definition comprises a particular sub-definition that is associated with a particular property type, wherein the particular property type comprises a particular component that is not required to match any portion of the input data when determining whether the input data matches the particular parser definition.

10. The method of claim 1 , further comprising transforming the first portion of the input data to the first data, wherein the first portion is not valid for the first property type before the first portion is transformed to the first data, and wherein the first data is valid for the first property type after the first portion is transformed to the first data.

11. A computer system comprising:

one or more processors;

one or more non-transitory computer-readable storage media storing instructions, which, when executed by the one or more processors, cause:

storing a plurality of parser definitions, wherein each parser definition is associated with an object type, wherein a particular parser definition of the one or more parser definitions comprises two or more parser sub-definitions, wherein a first parser sub-definition of the two or more parser sub-definitions is associated with a first property type, and wherein a second parser sub-definition of the two or more parser sub-definitions is associated with a second property type;

storing a first validator for the first property type and a second validator for the second property type, the first validator defining valid data for the first property type and the second validator defining valid data for the second property type;

determining whether input data matches the particular parser definition;

based at least in part on determining that the input data matches the particular parser definition:

creating at least a first property instance of the first property type and a second property instance of the second property type;

storing first data corresponding to a first portion of the input data in the first property instance when the first data matches the first validator.

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

storing one or more attributes associated with the first property type, the one or more attributes including one or more associated words or a display formatter, the one or more associated words defining one or more search terms for the first property type that will return the first property type in a search result, and the display formatter defining how to print or display a value of the first property type.

13. The computer system of claim 11 , wherein the particular parser definition is an expression pattern, a code module, or a script.

14. The computer system of claim 11 , wherein the instructions, when executed by the one or more processors, further cause receiving user input that defines the particular parser definition, the first parser sub-definition, and the second parser sub-definition, wherein the particular parser definition is stored based at least in part on the user input.

15. The computer system of claim 11 , wherein the instructions, when executed, further cause receiving user input that defines the object type, the first property type, and the second property type before storing the particular parser definition.

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

in response to determining that the input data matches the particular parser definition, storing second data based on a second portion of the input data in the second property instance when the second data matches the second validator.

17. The computer system of claim 11 , wherein the first validator or the second validator is one or more of: an expression that defines a range of valid data, a set of valid data, or a code module that, when executed against particular input data, determines whether the particular input data matches a specified syntax or data model.

18. The computer system of claim 11 , wherein at least the first property type is a composite type that includes a first component and a second component, wherein each of the first component and the second component is a string component, a date component, or a number component, and wherein the first portion of the input data and the corresponding first data each consist of respective string data, date data, or number data corresponding to the first component and the second component.

19. The computer system of claim 11 , wherein the particular parser definition comprises a particular sub-definition that is associated with a particular property type, wherein the particular property type comprises a particular component that is not required to match any portion of the input data when determining whether the input data matches the particular parser definition.

20. The computer system of claim 11 , wherein the instructions, when executed by the one or more processors, further cause transforming the first portion of the input data to the first data, wherein the first portion is not valid for the first property type before the first portion is transformed to the first data, and wherein the first data is valid for the first property type after the first portion is transformed to the first data.

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 →