Creating data in a data store using a dynamic ontology
AssigneePalantir Technologies Inc.
InventorsAkash Jain, Robert J. McGrew, Nathan Gettings
Life of this patent
Estimating the term…
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.
Claims28
A non-transitory machine-readable storage medium storing one or more sequences of instructions comprising instructions for generating a graphical user interface, which instructions, when executed by one or more processors, cause:
- generating an expression pattern field, of the graphical user interface, that is configured to accept user input specifying a transformation expression pattern that specifies how to transform first input data into modified input data;
- generating parser sub-definition fields, of the graphical user interface, that are configured to accept user input specifying two or more parser sub-definitions, wherein for each parser sub-definition the parser sub-definition fields include:
- a first field configured to accept user input specifying a portion of the transformation expression pattern;
- a second field configured to accept user input specifying a component of one of a plurality of object property types of an ontology of a data store;
- wherein each component is associated with a data type of data;
- wherein each parser sub-definition, of the two or more parser sub-definitions, specifies how to transform a portion of the first input data into a portion of the modified input data that is to be stored in the component of one of the object property types;
- storing the transformation expression pattern in association with the two or more parser sub-definitions, wherein the transformation expression pattern, if matched to the first input data, would cause storage of portions of the first input data in components of the object property types that are specified by the two or more parser sub-definitions.
A method comprising:
- receiving first input data;
- accessing an ontology for a data store, wherein the ontology comprises a plurality of object property types;
- determining whether the first input data matches one or more parser definitions that specify two or more parser sub-definitions, wherein each of the two or more parser sub-definitions specifies how to transform a portion of the first input data into a portion of modified input data that is compatible with a component of one of the object property types of the ontology for the data store;
- wherein each component is associated with a data type of data;
- using a matching one of the one or more parser sub-definitions, creating a property instance of the object property type that is associated with the matching one of the one or more parser sub-definitions, and storing the portion of the modified input data in a component of the property instance;
- wherein the method is performed by one or more computer systems.
A method comprising:
- receiving first input data;
- accessing an object-property mapping associated with an ontology for a data store, wherein the ontology comprises a plurality of data object types and a plurality of object property types;
- based on the object-property mapping, identifying a data object type, of the plurality of data object types, that is associated with input data rows in the first input data, wherein the data object type is mapped to two or more object property types;
- selecting, from a plurality of parser definitions, one or more parser definitions that match the input data rows;
- transforming the input data rows into data object instances of the identified data object type by using the one or more parser definitions, wherein each of the one or more parser definitions specifies two or more sub-definitions, wherein each of the two or more sub-definitions specifies how to transform one or more data values from one or more of the input data rows into one or more modified data values that are each compatible with a component of one of the plurality of the object property types of the ontology for the data store;
- wherein each component is associated with a data type of data;
- wherein transforming the input data rows into the data object instances further comprises creating a particular data object instance for a particular data row of the input data rows at least in part by performing:
- reading one or more data values from the particular row;
- for the particular data object instance:
- creating a component of an object property type that is associated with a matching one of the two or more sub-definition specified in the one of the one or more parser definitions;
- storing a particular data value of the one or more data values in the component that is associated with the matching sub-definition;
- storing the data object instances in the data store;
- wherein the method is performed by one or more computer systems.
A non-transitory machine-readable storage medium storing one or more sequences of instructions comprising instructions which, when executed by one or more processors, cause:
- receiving first input data;
- accessing an ontology for a data store, wherein the ontology comprises a plurality of object property types;
- determining whether the first input data matches one or more parser definitions that specify two or more parser sub-definitions, wherein each of the two or more parser sub-definitions specifies how to transform a portion of the first input data into a portion of modified input data that is compatible with a component of one of the object property types of the ontology for the data store;
- wherein each component with a data type of data;
- using a matching one of the one or more parser sub-definitions, creating a property instance of the object property type that is associated with the matching one of the one or more parser sub-definitions, and storing the portion of the modified input data in a component of the property instance.
A non-transitory machine-readable storage medium storing one or more sequences of instructions comprising instructions which, when executed by one or more processors, cause:
- receiving first input data;
- accessing an object-property mapping associated with an ontology for a data store, wherein the ontology comprises a plurality of data object types and a plurality of object property types;
- based on the object-property mapping, identifying a data object type, of the plurality of data object types, that is associated with input data rows in the first input data, wherein the data object type is mapped to two or more object property types;
- selecting, from a plurality of parser definitions, one or more parser definitions that match the input data rows;
- transforming the input data rows into data object instances of the identified data object type by using one or more parser definitions, wherein each of the one or more parser definitions specifies two or more sub-definitions, wherein each of the two or more sub-definitions specifies how to transform one or more data values from one or more of the input data rows into one or more modified data values that are each compatible with a component of one of the plurality of object property types of the ontology for the data store;
- wherein each component is associated with a data type of data;
- wherein transforming the input data rows into the data object instances further comprises creating a particular data object instance for a particular data row of the input data rows at least in part by performing:
- reading one or more data values from the particular row;
- for the particular data object instance:
- creating a component of an object property type that is associated with a matching sub-definition specified in the one of the one or more parser definitions;
- storing a particular data value of the one or more data values in the property component that is associated with the matching sub-definition;
- storing the data object instances in the data store.
A method for generating a graphical user interface, the method comprising:
- generating an expression pattern field, of the graphical user interface, that is configured to accept user input specifying a transformation expression pattern that specifies how to transform first input data into modified input data;
- generating parser sub-definition fields, of the graphical user interface, that are configured to accept user input specifying two or more parser sub-definitions, wherein for each parser sub- definition the parser sub-definition fields include:
- a first field configured to accept user input specifying a portion of the transformation expression pattern;
- a second field configured to accept user input specifying a component of one of a plurality of object property types of an ontology of a data store;
- wherein each component is associated with a data type of data;
- wherein each parser sub-definition, of the two or more parser sub-definitions, specifies how to transform a portion of the first input data into a portion of the modified input data that is to be stored in the component of one of the object property types;
- storing the transformation expression pattern in association with the two or more parser sub-definitions, wherein the transformation expression pattern, if matched to the first input data, would cause storage of portions of the first input data in components of the object property types that are specified by the two or more parser sub-definitions;
- wherein the method is performed by one or more computer systems.
Dependencies are inferred from the claim text.