Techniques for managing data using data entities and inheritance in a data processing system

By introducing a data entity attribute inheritance mechanism into the data processing system, the problem of low data storage and retrieval efficiency in existing technologies is solved, enabling efficient management and access to data entity instance information and optimizing storage and query processing.

CN116802624BActive Publication Date: 2025-12-16AB INITIO TECHNOLOGY LLC
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202280012434.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-01-31
Filing Date
2022-01-28
Publication Date
2025-12-16
Estimated Expiration
2042-01-28

AI Technical Summary

Technical Problem

Existing data processing systems suffer from low storage and retrieval efficiency when managing and accessing a large number of data entity instances, especially when there is a lot of duplicate information among the data entity instances.

Method used

By introducing an attribute inheritance mechanism for data entities into a data processing system, one or more attributes of a data entity can inherit their values ​​from an instance of another data entity, thereby efficiently storing and retrieving information about data entity instances.

Benefits of technology

It improves the efficiency of data storage and retrieval, reduces computing resources and memory requirements, optimizes query processing, and enables efficient management of a large number of data entity instances.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116802624B_ABST
    Figure CN116802624B_ABST
Patent Text Reader

Abstract

Techniques are described herein for storing data entities by a data processing system. The data processing system can store a plurality of data entity instances generated using a plurality of data entities. The plurality of data entity instances can include a first data entity instance generated using a first data entity and a second data entity instance generated using a second data entity. The first data entity instance can include a first property configured to inherit its value from a second property of the second data entity instance. The data processing system can provide the inherited value of the second property of the second data entity instance as the value of the first property of the first data entity instance.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross Reference to Related Applications

[0002] This application claims priority benefit under 35 U.S.C. 119(e) of U.S. Provisional Patent Application No. 63 / 143,894, entitled “Techniques for Managing Data in a Data Processing System Using Data Entities and Inheritance,” filed January 31, 2021, which is hereby incorporated by reference in its entirety. TECHNICAL FIELD

[0003] Aspects of the present disclosure relate to techniques for managing data in a data processing system using data entities and data entity instances. In particular, aspects of the present disclosure relate to efficiently storing and accessing data entity instances using inheritance. BACKGROUND

[0004] Modern data processing systems manage large amounts of data (e.g., millions, billions, or trillions of data records) and manage how this data can be accessed (e.g., created, updated, read, or deleted). The data managed by a data processing system can be of any suitable type. For example, the data managed by a data processing system can include transactions, documents, tables, files, or any other suitable type of data. As another example, the data managed by a data processing system can include “metadata,” which is data containing information about other data (e.g., stored in the same data processing system and / or another data processing system). For example, a data processing system can store metadata about credit card transaction data stored in a table in a database of a credit card company. Non-limiting examples of such metadata include information indicating: a size of the table in memory, a time at which the table was created, a time at which the table was last updated, a number of rows and / or columns in the table, a location at which the table is stored, who has permissions to read, update, delete, or perform any other suitable action on the data table. SUMMARY

[0005] Some embodiments provide a method performed by a data processing system to access data according to inheritance relationships between attributes of data entities, where such inheritance can be overridden. The method comprises: using at least one computer hardware processor of the data processing system to perform the following operations: receiving a request to access a first attribute value of a particular instance of a first data entity, where: the first data entity comprises a plurality of attributes including the first attribute, the particular instance comprises values of zero, one or more of the plurality of attributes of the first data entity, and the first attribute of the particular instance is configured to inherit its value from a second attribute of another instance of a second data entity different from the first data entity; determining whether the first attribute of the particular instance is configured to override the value inherited from the second attribute; when it is determined that the first attribute is configured to override the value inherited from the second attribute: accessing an override value for overriding the value inherited from the second attribute; generating a first response to the request, the first response comprising information indicating the override value as the first attribute value; and outputting the first response; and when it is determined that the first attribute is not configured to override the value inherited from the second attribute: accessing the value inherited from the second attribute; generating a second response to the request, the second response comprising information indicating the value inherited from the second attribute as the first attribute value; and outputting the second response.

[0006] Some embodiments provide a non-transitory computer-readable medium storing instructions that, when executed by a data processing system, cause the data processing system to perform a method for accessing data according to inheritance relationships between attributes of data entities, where such inheritance can be overridden. The method comprises: receiving, by the data processing system, a request to access a first attribute value of a particular instance of a first data entity, where: the first data entity comprises a plurality of attributes including the first attribute, the particular instance comprises values of zero, one or more of the plurality of attributes of the first data entity, and the first attribute of the particular instance is configured to inherit its value from a second attribute of another instance of a second data entity different from the first data entity; determining whether the first attribute of the particular instance is configured to override the value inherited from the second attribute; when it is determined that the first attribute is configured to override the value inherited from the second attribute: accessing an override value for overriding the value inherited from the second attribute; generating a first response to the request, the first response comprising information indicating the override value as the first attribute value; and outputting the first response; and when it is determined that the first attribute is not configured to override the value inherited from the second attribute: accessing the value inherited from the second attribute; generating a second response to the request, the second response comprising information indicating the value inherited from the second attribute as the first attribute value; and outputting the second response.

[0007] Some embodiments provide a data processing system for accessing data according to inheritance relationships between attributes of data entities, where such inheritance can be overridden. The data processing system comprises: at least one computer hardware processor; and at least one non-transitory computer-readable medium storing instructions that, when executed by the at least one computer hardware processor, cause the at least one computer hardware processor to perform a method comprising: receiving a request to access a first attribute value of a particular instance of a first data entity, where: the first data entity comprises a plurality of attributes including the first attribute, the particular instance comprises values of zero, one or more attributes of the plurality of attributes of the first data entity, and the first attribute of the particular instance is configured to inherit its value from a second attribute of another instance of a second data entity different from the first data entity; determining whether the first attribute of the particular instance is configured to override the value inherited from the second attribute; when it is determined that the first attribute is configured to override the value inherited from the second attribute: accessing an override value for overriding the value inherited from the second attribute; generating a first response to the request, the first response comprising information indicating the override value as the first attribute value; and outputting the first response; and when it is determined that the first attribute is not configured to override the value inherited from the second attribute: accessing the value inherited from the second attribute; generating a second response to the request, the second response comprising information indicating the value inherited from the second attribute as the first attribute value; and outputting the second response.

[0008] In some embodiments, the first data entity comprises information indicating: (i) that the first attribute inherits its value from the second attribute; and (ii) whether the first attribute is configurable to override its inherited value.

[0009] In some embodiments, the data processing system comprises at least one data store configured to store instances of the data entities, including the particular instance and the other instance; and the request comprises an executable query. In some embodiments, the executable query comprises an executable structured query language (SQL) query.

[0010] In some embodiments, the particular instance comprises a plurality of attribute values, where each of at least some of the plurality of attribute values is inherited from a respective instance of a different data entity.

[0011] In some embodiments, the second attribute of the other instance is configured to inherit its value from a third attribute of an instance of a third data entity different from the second data entity and the first data entity.

[0012] In some embodiments, accessing the value inherited from the second attribute includes: determining whether the second attribute of the other instance is configured to override the value inherited from the third attribute; and when it is determined that the second attribute of the other instance is configured to override the value inherited from the third attribute: accessing another override value for overriding the value inherited from the third attribute as the value inherited from the second attribute; and when it is determined that the second attribute of the other instance is not configured to override the value inherited from the third attribute: accessing the value inherited by the second attribute from the third attribute.

[0013] In some embodiments, the output includes: generating a graphical user interface (GUI) that displays: the first attribute value; and information indicating whether the first attribute value is inherited.

[0014] In some embodiments, the particular instance includes respective values of a first plurality of attributes including the first attribute, the first plurality of attributes being configured to inherit their values from respective second plurality of attributes of the other instance, wherein the request includes a request to access the values of the first plurality of attributes, and wherein the method further includes: grouping the first plurality of attributes into a single group; and generating a single executable query for the single group in accordance with the request, wherein the single executable query, when executed by the data processing system, causes the data processing system to generate a response to the request.

[0015] In some embodiments, grouping the first plurality of attributes into the single group includes grouping the first plurality of attributes into the single group using a grouping criterion. In some embodiments, the grouping criterion is grouping attributes that inherit values from a common instance into the single group.

[0016] In some embodiments, the data processing system includes at least one data store configured to store information defining relationships between a plurality of data entity instances.

[0017] In some embodiments, the data processing system manages the data, wherein the data managed by the data processing system includes information describing data stored in distributed databases of a network of distributed computing systems. In some embodiments, the data processing system is configured to store one instance for each of a plurality of data sets stored by distributed databases of the distributed computing systems and / or for each of a plurality of software applications configured to be executed by the distributed computing systems.

[0018] In some embodiments, the method further includes: generating a first portion of a graphical user interface (GUI) indicating the first attribute value; setting the first attribute value indicated by the GUI to a second attribute value; and displaying the GUI.

[0019] In some embodiments, the method further includes: determining whether the first property is configurable to override its inherited value; and generating a second portion of the GUI indicating that the first property is configurable to override its inherited value when it is determined that the first property is configurable to override its inherited value. In some embodiments, generating the second portion of the GUI includes: enabling a user to specify, through the second portion of the GUI, an override value for overriding the value inherited from the second property. In some embodiments, the method further includes: generating a second portion of the GUI indicating that the first property is not configurable to override its inherited value when it is determined that the first property is not configurable to override its inherited value.

[0020] In some embodiments, the method further includes: preventing overriding of the value inherited from the second property of the other instance.

[0021] In some embodiments, the method further includes: generating a GUI that allows a user to configure the first data entity such that the first property inherits its value from the second property.

[0022] In some embodiments, the method further includes generating a GUI that displays information indicating a source of the first property value. In some embodiments, the GUI is configured to display the information indicating the source of the first property value in response to a mouse-over event. In some embodiments, the information indicating the source of the first property value indicates that the source is the second property of the other instance or that the source is an override value.

[0023] Some embodiments provide a method performed by a data processing system to access data according to inheritance relationships between properties of data entities. The method includes: using at least one computer hardware processor of the data processing system to perform the following operations: receiving a request to access a first property value in a particular instance of a first data entity, wherein: the first data entity includes a plurality of properties including the first property; and the particular instance includes values for zero, one or more of the plurality of properties of the first data entity; determining that the first property of the particular instance is configured to inherit its value from a second property of another instance of a second data entity different from the first data entity; accessing the value inherited from the second property; generating a response to the request including information indicating the value inherited from the second property as the first property value; and outputting the generated response.

[0024] Some embodiments provide a non-transitory computer-readable medium storing instructions that, when executed by a data processing system, cause the data processing system to perform a method for accessing data according to inheritance relationships between attributes of data entities. The method comprises: receiving, by the data processing system, a request to access a first attribute value in a particular instance of a first data entity, wherein: the first data entity comprises a plurality of attributes including the first attribute; and the particular instance comprises values for zero, one or more attributes of the plurality of attributes of the first data entity; determining that the first attribute of the particular instance is configured to inherit its value from a second attribute of another instance of a second data entity different from the first data entity; accessing the value inherited from the second attribute; generating a response to the request comprising information indicating the value inherited from the second attribute as the first attribute value; and outputting the generated response.

[0025] Some embodiments provide a data processing system for accessing data according to inheritance relationships between attributes of data entities. The data processing system comprises: at least one computer hardware processor; and at least one non-transitory computer-readable medium storing instructions that, when executed by the at least one computer hardware processor, cause the at least one computer hardware processor to perform a method comprising: receiving a request to access a first attribute value in a particular instance of a first data entity, wherein: the first data entity comprises a plurality of attributes including the first attribute; and the particular instance comprises values for zero, one or more attributes of the plurality of attributes of the first data entity; determining that the first attribute of the particular instance is configured to inherit its value from a second attribute of another instance of a second data entity different from the first data entity; accessing the value inherited from the second attribute; generating a response to the request comprising information indicating the value inherited from the second attribute as the first attribute value; and outputting the generated response.

[0026] In some embodiments, determining that the first attribute of the particular instance is configured to inherit from the second attribute comprises using the first data entity to determine that the first attribute is configured to inherit its value from the second attribute.

[0027] In some embodiments, the method further comprises: receiving, by the data processing system, a request to access a third attribute value in the particular instance; determining that the third attribute of the particular instance is configured to inherit its value from a fourth attribute of an instance of a third data entity different from the first data entity and the second data entity; accessing the value inherited from the fourth attribute; generating a response to the request comprising information indicating the value inherited from the fourth attribute as the third attribute value; and outputting the generated response.

[0028] In some embodiments, accessing the value inherited from the second property comprises determining that the second property of the second data entity instance is configured to inherit its value from a third property of an instance of a third data entity different from the first data entity and the second data entity, and accessing the value that the second property inherits from the third property.

[0029] In some embodiments, the particular instance includes respective values for a first plurality of properties including the first property, the first plurality of properties configured to inherit their values from a respective second plurality of properties of the other instance, wherein the request includes a request to access the values of the first plurality of properties, and wherein the method further comprises: grouping the first plurality of properties into a single group; and generating a single executable query for the single group in accordance with the request, wherein the single executable query, when executed by the data processing system, causes the data processing system to generate a response to the request.

[0030] In some embodiments, grouping the first plurality of properties into the single group comprises grouping the first plurality of properties into the single group using a grouping criterion. In some embodiments, the grouping criterion is grouping properties that inherit values from a common instance into the single group.

[0031] In some embodiments, the data processing system manages the data, wherein the data managed by the data processing system includes information describing data stored in distributed databases of a network of distributed computing systems.

[0032] In some embodiments, the data processing system is configured to store one instance for each of a plurality of data sets stored by distributed databases of the distributed computing systems and / or for each of a plurality of software applications configured to be executed by the distributed computing systems.

[0033] Some embodiments provide a method for obtaining information about a data entity instance from a data processing system. The data processing system is configured to store a plurality of data entity instances, including a first data entity instance having a first plurality of attributes including a first attribute and a second data entity instance having a second plurality of attributes including a second attribute. The method includes: using at least one computer hardware processor, performing the following operations: obtaining a request to obtain information about the first data entity instance, the information including a first value of the first attribute of the first data entity instance, the first attribute of the first data entity instance being configured to inherit its value from the second attribute of the second data entity instance; generating a response to the request, the response including the first value of the first attribute, the generating including: determining whether the first attribute of the first data entity instance is configured to override a second value of the second attribute of the second data entity instance; when determining that the first attribute is configured to override the second value of the second attribute, accessing an override value and generating the response including the override value as the first value of the first attribute, and when determining that the first attribute is not configured to override the second value of the second attribute, accessing the second value of the second attribute and generating the response including the second value as the first value of the first attribute; and outputting the generated response.

[0034] Some embodiments provide a data processing system configured to store a plurality of data entity instances, including a first data entity instance having a first plurality of attributes including a first attribute and a second data entity instance having a second plurality of attributes including a second attribute. The data processing system includes: at least one processor; and at least one non-transitory computer-readable storage medium storing instructions that, when executed by the at least one processor, cause the at least one processor to perform a method including: obtaining a request to obtain information about the first data entity instance, the information including a first value of the first attribute of the first data entity instance, the first attribute of the first data entity instance being configured to inherit its value from the second attribute of the second data entity instance; generating a response to the request, the response including the first value of the first attribute, the generating including: determining whether the first attribute of the first data entity instance is configured to override a second value of the second attribute of the second data entity instance; when determining that the first attribute is configured to override the second value of the second attribute, accessing an override value and generating the response including the override value as the first value of the first attribute, and when determining that the first attribute is not configured to override the second value of the second attribute, accessing the second value of the second attribute and generating the response including the second value as the first value of the first attribute; and outputting the generated response.

[0035] Some embodiments provide a non-transitory computer-readable storage medium storing instructions. When executed by at least one processor of a data processing system configured to store a plurality of data entity instances, including a first data entity instance having a first plurality of attributes including a first attribute and a second data entity instance having a second plurality of attributes including a second attribute, the plurality of data entity instances cause the at least one processor to perform a method comprising: obtaining a request to obtain information about the first data entity instance, the information including a first value of the first attribute of the first data entity instance, the first attribute of the first data entity instance configured to inherit its value from the second attribute of the second data entity instance; generating a response to the request, the response including the first value of the first attribute, the generating comprising: determining whether the first attribute of the first data entity instance is configured to override a second value of the second attribute of the second data entity instance; when determining that the first attribute is configured to override the second value of the second attribute, accessing an override value and generating the response including the override value as the first value of the first attribute, and when determining that the first attribute is not configured to override the second value of the second attribute, accessing the second value of the second attribute and generating the response including the second value as the first value of the first attribute; and outputting the generated response.

[0036] Some embodiments provide a method for obtaining information about a data entity instance from a data processing system. The data processing system is configured to store a plurality of data entity instances, the plurality of data entity instances including a first data entity instance having a first plurality of attributes including a first attribute and a second data entity instance having a second plurality of attributes including a second attribute. The method comprises: using at least one computer hardware processor to perform the following operations: obtaining a request for a first value of the first attribute of the first data entity instance, the first attribute of the first data entity configured to inherit its value from the second attribute of the second data entity instance; generating a response to the request, the response including the first value of the first attribute, the generating comprising: accessing a second value of the second attribute; and generating the response including the second value of the second attribute as the first value of the first attribute; and outputting the generated response.

[0037] Some embodiments provide a data processing system configured to store a plurality of data entity instances, the plurality of data entity instances including a first data entity instance having a first plurality of attributes including a first attribute and a second data entity instance having a second plurality of attributes including a second attribute. The data processing system includes: at least one processor; and at least one non-transitory computer-readable storage medium storing instructions that, when executed by the at least one processor, cause the at least one processor to perform the following operations: obtain a request for a first value of a first attribute of the first data entity instance, the first attribute of the first data entity being configured to inherit its value from a second attribute of the second data entity instance; generate a response to the request, the response including the first value of the first attribute, the generating including: accessing a second value of the second attribute; and generating the response including the second value of the second attribute as the first value of the first attribute; and output the generated response.

[0038] Some embodiments provide a non-transitory computer-readable storage medium storing instructions. When executed by at least one processor of a data processing system configured to store a plurality of data entity instances, the plurality of data entity instances including a first data entity instance having a first plurality of attributes including a first attribute and a second data entity instance having a second plurality of attributes including a second attribute, the instructions cause the at least one processor to perform the following operations: obtain a request for obtaining information about the first data entity instance, the information including a first value of a first attribute of the first data entity instance, the first attribute of the first data entity instance being configured to inherit its value from a second attribute of the second data entity instance; generate a response to the request, the response including the first value of the first attribute, the generating including: determining whether the first attribute of the first data entity instance is configured to override a second value of the second attribute of the second data entity instance; when determining that the first attribute is configured to override the second value of the second attribute, accessing an override value and generating the response including the override value as the first value of the first attribute, and when determining that the first attribute is not configured to override the second value of the second attribute, accessing the second value of the second attribute and generating the response including the second value as the first value of the first attribute; and output the generated response.

[0039] Some embodiments provide a method for obtaining information about a data entity instance from a data processing system. The data processing system is configured to store a plurality of data entity instances, the plurality of data entity instances including a first data entity instance having a first plurality of attributes including a first attribute and a second data entity instance having a second plurality of attributes including a second attribute. The method includes: using at least one hardware processor to perform the following operations: generating a graphical user interface (GUI) containing information about the first data entity instance, the generating including: generating a first GUI portion indicating a first value of the first attribute of the first data entity instance, the first attribute of the first data entity instance being configured to inherit its value from a second value of the second data entity instance, the generating including: accessing the second value of the second attribute and setting the first value of the first attribute to the second value; generating a second GUI portion to indicate whether the first attribute is configurable to override its inherited value; and displaying the GUI.

[0040] Some embodiments provide a data processing system. The data processing system is configured to store a plurality of data entity instances, the plurality of data entity instances including a first data entity instance having a first plurality of attributes including a first attribute and a second data entity instance having a second plurality of attributes including a second attribute. The data processing system includes: at least one processor; and at least one non-transitory computer-readable storage medium storing instructions that, when executed by the at least one processor, cause the at least one processor to perform the following operations: generating a graphical user interface (GUI) containing information about the first data entity instance, the generating including: generating a first GUI portion indicating a first value of the first attribute of the first data entity instance, the first attribute of the first data entity instance being configured to inherit its value from a second value of the second data entity instance, the generating including: accessing the second value of the second attribute and setting the first value of the first attribute to the second value; generating a second GUI portion to indicate whether the first attribute is configurable to override its inherited value; and displaying the GUI.

[0041] Some embodiments provide a non-transitory computer-readable storage medium storing instructions. When executed by at least one processor of a data processing system configured to store a plurality of data entity instances, including a first data entity instance having a first plurality of attributes including a first attribute and a second data entity instance having a second plurality of attributes including a second attribute, the plurality of data entity instances cause the at least one processor to perform the following operations: generate a graphical user interface (GUI) containing information about the first data entity instance, the generating including: generating a first GUI portion indicating a first value of the first attribute of the first data entity instance, the first attribute of the first data entity instance being configured to inherit its value from a second value of the second data entity instance, the generating including: accessing the second value of the second attribute and setting the first value of the first attribute to the second value; generating a second GUI portion to indicate whether the first attribute is configurable to override its inherited value; and displaying the GUI.

[0042] The foregoing is non-limiting summary of the application, which is defined by the appended claims. BRIEF DESCRIPTION OF DRAWINGS

[0043] Various aspects and embodiments will be described with reference to the following figures. It should be appreciated that the figures are not necessarily drawn to scale. Items appearing in multiple figures are indicated by the same or similar reference characters in all figures in which they appear.

[0044] FIG. 1A is a diagram illustrating an example enterprise system environment in which a data processing system 105 can be used, in accordance with some embodiments of the technology described herein.

[0045] FIG. 1B is a diagram illustrating an example implementation of a data processing system 105, in accordance with some embodiments of the technology described herein.

[0046] FIG. 1C is a diagram illustrating a graphical user interface (GUI) of an example instance “credit score” 158, in accordance with some embodiments of the technology described herein.

[0047] FIG. 1D is a diagram illustrating a data entity 170 that can be used by a data processing system 105, in accordance with some embodiments of the technology described herein.

[0048] FIG. 1E is a diagram illustrating example data stored in a data persistence layer 150 of a data processing system 105, in accordance with some embodiments of the technology described herein.

[0049] FIG. 1Fis a diagram illustrating inheritance of attribute values from data entity instance 159A by data entity instances 158 and 161A, in accordance with some embodiments of the technology described herein.

[0050] FIG. 1G is a diagram illustrating attribute values inherited by data entity instance 161B from data entity instance 159A, in accordance with some embodiments of the technology described herein.

[0051] FIG. 1H is a block diagram illustrating aspects of data processing system 105, in accordance with some embodiments of the technology described herein.

[0052] FIG. 2A is a diagram illustrating data entity 210 having attributes configured to inherit values from data entity 220, in accordance with some embodiments of the technology described herein.

[0053] FIG. 2B is a diagram illustrating inheritance of values by attributes of data entity 210 from data entity 220, in accordance with some embodiments of the technology described herein. FIG. 2A

[0054] FIG. 2C is a diagram illustrating an example of data entity instance “credit score” 158 having attributes configured to inherit values from another data entity instance “credit risk” 270, in accordance with some embodiments of the technology described herein.

[0055] FIG. 2D is a diagram illustrating inheritance of values by attributes of data entity instance “credit score” 158 from data entity instance “credit risk” 270, in accordance with some embodiments of the technology described herein.

[0056] FIG. 3A is a flowchart of an illustrative process 300 for generating a response to a request for information about a data entity instance, in accordance with some embodiments of the technology described herein.

[0057] FIG. 3B is a flowchart of an illustrative process 350 for generating a graphical user interface (GUI) displaying information about a data entity instance, in accordance with some embodiments of the technology described herein.

[0058] FIG. 3C is a flowchart of an illustrative process 370 for generating a response to a request for attribute values of a data entity instance inherited from another data entity instance, in accordance with some embodiments of the technology described herein.

[0059] FIG. 4A is a display of a GUI displaying information about instance “credit score” 402 of data entity “business item” 404, in accordance with some embodiments of the technology described herein.​

[0060] FIG. 4B is a presentation of a GUI displaying information about the properties of the data entity instance "Credit Risk" 412, according to some embodiments of the technology described herein, FIG. 4A the properties of the data entity instance "Credit Score" 402 inherit values from the data entity instance "Credit Risk".

[0061] FIG. 4C is a presentation of a GUI for configuring the properties of the data entity "Business Item" 404, of which "Credit Score" 402 is an instance, according to some embodiments of the technology described herein.

[0062] FIG. 4D is a presentation of a GUI 400 having a section 422 indicating information about the properties of the data entity instance "Credit Score" 402 that inherit their values from it, according to some embodiments of the technology described herein. FIG. 4A

[0063] FIG. 4E is a presentation of a GUI section 430 indicating whether the properties of the data entity instance "Credit Score" 402 can be configured to override the values they inherit, according to some embodiments of the technology described herein. FIG. 4A

[0064] is another presentation of a GUI section 440 indicating whether the properties of the data entity instance "Credit Score" 402 can be configured to override the values they inherit, according to some embodiments of the technology described herein. FIG. 4F FIG. 4A is a presentation of a GUI section 450 indicating information about the source from which the properties of the data entity instance "Credit Score" 402 are configured to inherit their values, according to some embodiments of the technology described herein.

[0065] FIG. 4G FIG. 4A

[0066] FIG. 5A is a diagram presenting a path of inheritance of values of properties between a set of three data entity instances 500, 158, 520, according to some embodiments of the technology described herein.

[0067] FIG. 5B is a diagram presenting an override of values inherited by the properties of the data entity instance 500 from the data entity instance 158, according to some embodiments of the technology described herein. FIG. 5A

[0068] is a diagram presenting an override of values inherited by the properties of the data entity instance 500 from the data entity instance 158, according to some embodiments of the technology described herein. FIG. 5C FIG. 5A ​​​​​A simplified diagram of the inherited values ​​of the properties of data entity instance 158.

[0069] FIG. 6A This is a display of a GUI 600 that shows information about an instance of a "customer credit score" 602, a "business data element" data entity, according to some embodiments of the technology described herein.

[0070] FIG. 6B This is a display of some embodiments of the technology described herein. FIG. 6A The GUI 620 displays the attribute configuration information of the "Business Data Element" data entity.

[0071] FIG. 6C This is a display of some embodiments of the technology described herein. FIG. 6A The GUI 630 displays information about the first attribute of the data entity instance "Customer Credit Score" 602, which inherits its value from the data entity instance "Credit Score".

[0072] FIG. 6D This is a display of some embodiments of the technology described herein. FIG. 6A The GUI 640 displays information about the second attribute of the data entity instance "Customer Credit Score" 602, which inherits its value from the data entity instance "Credit Risk".

[0073] FIG. 7A This is a simplified diagram illustrating, based on some embodiments of the techniques described herein, how different attributes of data entities can inherit their values ​​from corresponding attributes of different data entities.

[0074] FIG. 7B This is a simplified diagram illustrating example queries for accessing the values ​​of inherited properties that share a common inheritance path, based on some embodiments of the techniques described herein.

[0075] FIG. 8 This is a block diagram of an illustrative computing system environment that can be used to implement some embodiments of the techniques described herein. Detailed Implementation

[0076] The inventors have developed new techniques that allow for efficient storage and access (e.g., querying, creating, updating, and deleting) of data managed by a data processing system using data entities and instances thereof. As described herein, in some embodiments, a data processing system can manage data using data entities that can be used to organize data using an object-oriented paradigm. A data entity can specify attributes that, when instantiated, can take different values, such as numbers, strings, or references to other data entities. One or more data entity instances can be instantiated from a data entity and used to store data. For example, a data processing system of a bank can include a credit score data entity that is used to store information about credit scores of customers. In this example, the credit score data entity can specify attributes such as a credit score value, a credit score agency, a credit score definition, and / or other attributes. The data processing system can instantiate multiple (e.g., hundreds, thousands, or millions) instances of the credit score data entity to store credit score information of their customers as values of the attributes specified by the credit score data entity. Thus, similar to the way that object-oriented programming involves classes and instances thereof, the data processing system can be configured with definitions of data entities and use instances of those data entities to manage data. Some techniques developed by the inventors allow for efficient storage of attribute values in data entity instances and efficient retrieval of attribute values (e.g., to provide requested information about data entity instances).

[0077] A data entity instance can not need to store all of its attribute values together. In some embodiments, one or more data structures can be used to store attribute values of a data entity instance. For example, one or more tables, records, lists, or any other suitable data structure can be used to store attribute values, as aspects of the techniques described herein do not require that the same underlying data structure in memory be used to store values of a particular data entity instance.

[0078] As described herein, a data processing system can be used to manage many different types of data. For example, in some applications, a data processing system can be used for metadata management. In such applications, data entity instances instantiated from respective data entities can store information about other data (“metadata”). For example, these data entity instances can store metadata about data of an enterprise system (e.g., of a large multinational corporation such as a credit card company, a telephone company, a bank, etc.). In such applications, the data of the enterprise system can include millions or billions of data sets (e.g., tables, documents, records, etc.) deployed on multiple databases, data warehouses, data lakes, etc. Thus, the data processing system can manage a large number (e.g., millions or billions) of data entity instances containing metadata about the data sets. Although examples described herein can refer to metadata management, it should be understood that the inventors have developed and the technology described herein is not limited to application to any particular type of data and can be used within any data processing system using data entities and data entity instances instantiated from data entities for managing data regardless of whether the data being managed is metadata or any other type of data (e.g., transactions, files, data records, tables, etc.).

[0079] The inventors have recognized that, given the large number (e.g., millions) of data entity instances to be managed (e.g., created, stored, updated, etc.) by a data processing system in some applications, it is important to efficiently store and access data. It is inefficient to write data to each data entity instance, whether manually or programmatically. Conventional data processing systems can populate each data entity instance by requiring the same information to be written repeatedly into each data entity instance. Moreover, to retrieve the same shared information from data entity instances, conventional data processing systems can need to access each data entity instance individually. Thus, conventional data processing systems can inefficiently store data in data entity instances and inefficiently retrieve information about data entity instances. For example, conventional data processing systems can inefficiently execute queries for storing data in data entity instances and / or for reading data from data entity instances.

[0080] The inventors have further recognized that many data entity instances managed by a data processing system can store similar information. For example, in cases where a data processing system manages instances of a credit score data entity that stores metadata about credit scores from different respective credit agencies, the data entity instances can each store the identity of a user that manages the data set in which the credit score is stored. The data set can include other information in addition to the credit score information stored in instances of another data entity. Thus, both the credit score data entity instances and instances of another data entity can store the same value for a user identity attribute. In another example, in cases where a data processing system manages instances of a data entity that stores metadata about customer information from a particular geographic region, the data entity instances can each store a string that identifies the geographic region (e.g., “USA” or “Europe”). Instances of another data entity that store information associated with the same geographic region can also store the same string for a geographic region attribute.

[0081] To address the aforementioned challenges of efficiently storing and retrieving information about data entity instances instantiated from one or more data entities, the inventors have developed techniques for allowing attributes of a data entity instance to take or inherit values of attributes of other data entity instances. To this end, the data processing system can configure one or more attributes of a data entity to inherit values in instances of the data entity from instances of another data entity. Thus, the data processing system can: (1) use values stored in a first data entity instance to set values for attributes of one or more other data entity instances managed by the data processing system; and (2) retrieve values for requests for information about the other data entity instance(s) from the first data entity instance. In this way, inheritance allows the data processing system to efficiently store and retrieve attribute values for large numbers (e.g., thousands, millions, or billions) of data entity instances. For example, inheritance allows the data processing system to more efficiently execute queries for storing and / or retrieving attribute values. Further, inheritance allows the data processing system to more efficiently use memory by storing information shared by multiple data entity instances in a single data entity instance and referencing the information in other data entity instances. In this way, the techniques described herein improve upon conventional data processing systems by: (1) reducing the computational resources (e.g., processor resources, network bandwidth, etc.) required to write information into data entity instances and retrieve information about data entity instances; and (2) reducing the amount of memory used to store information in data entity instances.

[0082] Inheritance techniques developed by the inventors for use in a data processing system allow the data processing system to quickly access information about instances of data entities managed by the data processing system. Accordingly, some embodiments provide techniques for obtaining information about instances of data entities from a data processing system. These data entity instances can include a first data entity instance (e.g., “credit score”) having a first plurality of attributes including a first attribute (e.g., a responsible party for credit score data) and a second data entity instance (e.g., “customer information”) having a second plurality of attributes including a second attribute (e.g., a responsible party for data stored in customer data). The data processing system can be configured to access data according to inheritance relationships between attributes of data entities. The data processing system can be configured to receive a request to access a first attribute value in a particular instance of a first data entity, where: the first data entity includes a plurality of attributes including the first attribute; and the particular instance includes values for zero, one, or more of the plurality of attributes of the first data entity. The data processing system can be configured to: (1) determine that the first attribute of the particular instance is configured to inherit its value from a second attribute of another instance of a second data entity different from the first data entity; (2) access the value inherited from the second attribute; (3) generate a response to the request including information indicating the value inherited from the second attribute as the first attribute value; and (4) output the generated response.

[0083] In some embodiments, the data processing system can be configured to: (1) receive a request to access a third attribute value in the particular instance; (2) determine that the third attribute of the particular instance is configured to inherit its value from a fourth attribute of an instance of a third data entity different from the first data entity and the second data entity; (3) access the value inherited from the fourth attribute; (4) generate a response to the request including information indicating the value inherited from the fourth attribute as the third attribute value; and (5) output the generated response. In some embodiments, accessing the value inherited from the second attribute includes: (1) determining that the second attribute of the second data entity instance is configured to inherit its value from a third attribute of an instance of a third data entity different from the first data entity and the second data entity; and (2) accessing the value inherited by the second attribute from the third attribute.

[0084] In some embodiments, determining that the first attribute of the particular instance is configured to inherit from the second attribute includes using the first data entity to determine that the first attribute is configured to inherit its value from the second attribute.

[0085] In some embodiments, the data processing system can be configured to: (1) obtain a request for a first value of a first attribute of the first data entity instance, the first attribute configured to inherit its value from a second attribute of the second data entity; (2) generate a response to the request, the response including the first value of the first attribute; and (3) output the response. The data processing system can be configured to generate the response to the request by: (1) accessing the second value of the second attribute; and (2) generating the response including the second value of the second attribute as the first value of the first attribute. For example, the data processing system can access the name of the responsible party stored in the “customer information” data entity instance and generate a response to include the name as the value of the responsible party for the “credit score” data entity instance.

[0086] In some embodiments, the data processing system can be configured to instantiate a first data entity instance (e.g., “credit score”) from a first data entity and a second data entity instance (e.g., “customer information”) from a second data entity. The first data entity can specify a first attribute that takes a value in an instance of the first data entity, and the second data entity can specify a second attribute that takes a value in an instance of the second data entity. The data processing system can be configured to configure the first data entity to specify inheritance of the first attribute of the first data entity from the second attribute of the second data entity (e.g., by storing configuration information referencing the second attribute of the second data entity in the first data entity). Based on the configuration information in the first data entity, the data processing system can configure the first data entity instance (e.g., “credit score”) to inherit the value of the first attribute from the second attribute of the second data entity instance (e.g., “customer information”). In some embodiments, the data processing system can be configured to store a reference to the second attribute of the second data entity instance in the first data entity instance. Thus, the first data entity instance can not store the value of the first attribute in the first data entity instance, but rather store a reference to the second attribute of the second data entity instance.

[0087] In some embodiments, the data processing system can include at least one data store configured to store the plurality of data entity instances and associated values (e.g., attribute values). The request can be an executable query that, when executed by the data processing system, causes the data processing system to generate a response to the request. In some embodiments, the executable query can be a structured query language (SQL) query or any other type of executable query. In some embodiments, the request can be a programmatic request issued by a computer program executed by the data processing system to access the first value of the first attribute.

[0088] In some embodiments, the plurality of data entity instances can include a third data entity instance having a third plurality of attributes including a third attribute. The second attribute of the second data entity instance can be configured to inherit its value from the third attribute of the third data entity instance. Accordingly, the first data entity instance can be configured to inherit the first value of the first attribute from the third attribute of the third data entity instance through the second attribute of the second data entity instance.

[0089] In some embodiments, the data processing system can be configured to generate a graphical user interface (GUI) display that displays the first value of the first attribute of the first data entity instance and information indicating whether the first value is inherited. For example, the information can include an indication from the second data entity instance that the first value of the first attribute is inherited from the second data entity instance. The information indicating whether the first value is inherited can inform the user of the origin of the first value of the first attribute. The information can allow the user to determine the relationship between the first data entity instance and the second data entity instance.

[0090] The inventors have further recognized that, while inheritance in data processing systems provides for more efficient data storage and access to information about data entity instances, sometimes, an attribute of a data entity instance can need to take a different value than it is configured to inherit from another data entity instance. For example, a data entity instance storing validation rules for credit scores in the United States can need to store different rules than the rules inherited from a data entity instance storing validation rules for credit scores in Europe. Accordingly, the inheritance architecture can limit the flexibility in setting attribute values in data entity instances.

[0091] To address the above challenges with attribute inheritance of attribute values, the inventors have developed techniques that allow attributes of data entity instances to be configured to override their inherited values. Accordingly, the data processing system can provide the efficiency improvements of inheritance and the flexibility to override inherited values when needed. Continuing the above example, a data entity instance configured to inherit credit score validation rules from attributes of another data entity instance can be configurable to override the inherited validation rules (e.g., for a different geographic region).

[0092] Accordingly, some embodiments provide techniques for accessing data according to inheritance relationships between attributes of data entities, where such inheritance can be overridden. The data processing system can be configured to receive a request to access a first attribute value of a particular instance of a first data entity. The first data entity includes a plurality of attributes including the first attribute. The particular instance includes values of zero, one or more attributes of the plurality of attributes of the first data entity. The first attribute of the particular instance can be configured to inherit its value from a second attribute of another instance of a second data entity different from the first data entity. The data processing system can be configured to determine whether the first attribute of the particular instance is configured to override the value inherited from the second attribute. When it is determined that the first attribute is configured to override the value inherited from the second attribute, the data processing system can: (1) access an override value to override the value inherited from the second attribute; (2) generate a first response to the request, the first response including information indicating the override value as the first attribute value; and (3) output the first response. When it is determined that the first attribute is not configured to override the value inherited from the second attribute, the data processing system can: (1) access the value inherited from the second attribute; (2) generate a second response to the request, the second response including information indicating the value inherited from the second attribute as the first attribute value; and (3) output the second response.

[0093] In some embodiments, the first data entity includes information indicating: (i) that the first attribute inherits its value from the second attribute; and (ii) whether the first attribute is configurable to override its inherited value. In some embodiments, the data processing system includes at least one data store configured to store instances of the data entities, including the particular instance and the other instance. In some embodiments, the request includes an executable query (e.g., a structured query language (SQL) query). In some embodiments, the particular instance can include a plurality of attribute values, where each of at least some of the plurality of attribute values is inherited from a respective instance of a different data entity.

[0094] In some embodiments, the second attribute of the other instance can be configured to inherit its value from a third attribute of an instance of a third data entity different from the second data entity and the first data entity. In some embodiments, accessing the value inherited from the second attribute includes: determining whether the second attribute of the other instance is configured to override the value inherited from the third attribute. When it is determined that the second attribute of the other instance is configured to override the value inherited from the third attribute, the data processing system can access another override value to override the value inherited from the third attribute as the value inherited from the second attribute. When it is determined that the second attribute of the other instance is not configured to override the value inherited from the third attribute, the data processing system can access the value inherited by the second attribute from the third attribute.

[0095] In some embodiments, the output includes generating a graphical user interface (GUI) that displays: (1) the first property value; and (2) information indicating whether the first property value is inherited.

[0096] In some embodiments, the particular instance includes respective values of a first plurality of properties including the first property, the first plurality of properties configured to inherit their values from a respective second plurality of properties of the other instance, wherein the request includes a request to access the values of the first plurality of properties. The data processing system can be configured to: (1) group the first plurality of properties into a single group; and (2) generate a single executable query for the single group in accordance with the request, wherein the single executable query, when executed by the data processing system, causes the data processing system to generate a response to the request. In some embodiments, grouping the first plurality of properties into the single group includes grouping the first plurality of properties into the single group using a grouping criterion. In some embodiments, the grouping criterion is grouping properties that inherit values from a common instance into the single group.

[0097] In some embodiments, the data processing system includes at least one data store configured to store information defining relationships between a plurality of data entity instances. In some embodiments, the data managed by the data processing system includes information describing data stored in distributed databases of a network of distributed computing systems. In some embodiments, the data processing system can be configured to store one instance for each of a plurality of data sets stored by distributed databases of the distributed computing systems and / or for each of a plurality of software applications configured to be executed by the distributed computing systems.

[0098] In some embodiments, the data processing system can be configured to: (1) generate a first portion of a graphical user interface (GUI) indicating the first property value; (2) set the first property value indicated by the GUI to a second property value; and (3) display the GUI. In some embodiments, the data processing system can be configured to: (1) determine whether the first property is configurable to override its inherited value; and (2) generate a second portion of the GUI indicating that the first property is configurable to override its inherited value when it is determined that the first property is configurable to override its inherited value. In some embodiments, generating the second portion of the GUI includes enabling a user to specify, through the second portion of the GUI, an override value for overriding the value inherited from the second property. In some embodiments, the data processing system can be configured to generate a second portion of the GUI indicating that the first property is not configurable to override its inherited value when it is determined that the first property is not configurable to override its inherited value.

[0099] In some embodiments, the data processing system can be configured to prevent overriding of a value inherited from a second property of the other instance. In some embodiments, the data processing system can be configured to generate a GUI that allows a user to configure the first data entity such that the first property inherits its value from the second property. In some embodiments, the data processing system can be configured to generate a GUI that displays information indicating a source of the first property value. In some embodiments, the GUI can be configured to display the information indicating the source of the first property value in response to a mouse-over event. In some embodiments, the information indicating the source of the first property value indicates that the source is the second property of the other instance or that the source is an override value.

[0100] Some embodiments provide techniques for obtaining information about a data entity instance from a data processing system. The data processing system can be configured to store a plurality of data entity instances including: (1) a first data entity instance having a first plurality of properties including a first property; and (2) a second data entity instance having a second plurality of properties including a second property. The data processing system can be configured to obtain a request to obtain information about the first data entity instance, the information including a first value of the first property of the first data entity instance, the first property of the first data entity instance being configured to inherit its value from the second property of the second data entity instance. The first property can be configurable to override its inherited value (such a property can be referred to as "overrideable"). Of course, even if a value of a data entity instance property is overrideable, it is not necessary that the value be overridden.

[0101] In some embodiments, there are a variety of different ways in which a value inherited by a property of a data entity instance can be overridden. For example, the value can be overridden through a GUI as described herein with reference to FIG. 4E to FIG. 4G In another example, the value inherited by a property can be overridden by an application program interface (API). In another example, the value inherited by a property can be overridden by a configuration file. Regardless of how the request is made, the data processing system can be configured to respond to the request for information about the property (e.g., included in a request for information about a data entity instance) by accessing the overridden value.

[0102] In some embodiments, the data processing system can be configured to generate a response to the request by determining whether a first property of the first data entity instance is configured to override a second value of a second property of the second data entity instance, the response including a first value of the first property. When it is determined that the first property is configured to override the second value of the second property, the data processing system can access the override value and generate a response including the override value as the first value of the first property. When it is determined that the first property is not configured to override the second value of the second property, the data processing system can access the second value of the second property and generate a response including the second value as the first value of the first property.

[0103] In some embodiments, the data processing system includes at least one data store configured to store the plurality of data entity instances and associated values, and the request includes an executable query (e.g., an executable SQL query) that, when executed by the data processing system, causes the data processing system to generate a response to the request. In some embodiments, the request is generated in response to a programmatic request issued by a computer program executed by the data processing system to access the first value of the first property. In some embodiments, the request is generated in response to a programmatic request issued by a computer program executed external to the data processing system to access the first value of the first property.

[0104] In some embodiments, the plurality of data entity instances includes a third data entity instance having a third plurality of properties including a third property, and the second property of the second data entity instance is configured to inherit its value from the third property of the third data entity instance. In some embodiments, accessing the second value of the second property includes: (1) determining whether the second property of the second data entity instance is configured to override a third value of the third property of the third data entity instance; (2) when it is determined that the second property of the second data entity instance is configured to override the third value of the third property, accessing a second override value of the second property; and (3) when it is determined that the second property of the second data entity instance is not configured to override the third value of the third property, accessing the third value of the third property. In some embodiments, accessing the second value of the second property includes accessing the third value of the third property.

[0105] In some embodiments, the first data entity instance is associated with a first data entity and the second data entity instance is associated with a second data entity, where the first data entity includes information indicating that (i) the first property inherits its value from the second property, and (ii) whether the first property is configured to override its inherited value, and the first data entity is used to perform the determination of whether the first property of the first data entity instance is configured to override the second value of the second property of the second data entity instance. In some embodiments, the determination that the first property of the first data entity instance is configured to inherit its value from the value of the second property of the second data entity instance is performed using the first data entity.

[0106] In some embodiments, the output includes generating a graphical user interface (GUI) that displays (1) the first value of the first property of the first data entity instance, and (2) information indicating whether the first value is inherited. In some embodiments, accessing the second value of the second property includes recursively accessing values of one or more properties of one or more data entity instances to determine the second value of the second property. In some embodiments, each property of the plurality of properties, including the first property of the first plurality of properties of the first data entity instance, is configured to inherit its value from one or more properties of another data entity instance, and where the information includes respective values of the plurality of properties, the method includes: (1) grouping, by the data processing system, a plurality of properties of the first plurality of properties into a single group; and (2) generating, for the single group, a single executable query in accordance with the request, where the single executable query, when executed by the data processing system, causes the data processing system to generate the response to the request.

[0107] In some embodiments, the data processing system can be configured to: (1) group a plurality of properties of the first plurality of properties into one or more groups using grouping criteria, where the information includes respective values of the plurality of properties; and (2) generate an executable query for each of the groups to obtain a plurality of executable queries, which, when executed by the data processing system, cause the data processing system to generate the response to the request. In some embodiments, the grouping criteria is to group properties of the plurality of properties that share a common inheritance path into a single group, such that one of the plurality of executable queries is to access inherited values of the grouped properties.

[0108] In some embodiments, a data processing system includes at least one data store configured to store a plurality of data entity instances and information defining relationships between different data entity instances, wherein the at least one data store is configured to store information describing data stored in distributed databases of a network of distributed computing systems using the plurality of data entity instances. In some embodiments, the at least one data store is configured to store a data entity instance of the plurality of data entity instances for each of a plurality of data sets stored by distributed databases of the distributed computing system, for each of a plurality of software applications configured to be executed by the distributed computing system, or for each of a plurality of system portions of the distributed computing system.

[0109] Some embodiments provide techniques for obtaining information about a data entity instance from a data processing system. The data processing system can be configured to store a plurality of data entity instances including a first data entity instance having a first plurality of attributes including a first attribute and a second data entity instance having a second plurality of attributes including a second attribute. The data processing system can be configured to generate a graphical user interface (GUI) containing information about the first data entity instance. The data processing system can be configured to generate the GUI by generating a first GUI portion indicating a first value of the first attribute of the first data entity instance, the first attribute of the first data entity instance being configured to inherit its value from a second value of the second attribute of the second data entity instance. The data processing system can be configured to generate the first GUI portion by: (1) accessing the second value of the second attribute, and (2) setting the first value of the first attribute to the second value. The data processing system can be configured to generate a second GUI portion to indicate whether the first attribute is configurable to override its inherited value. The data processing system can be configured to display the GUI.

[0110] In some embodiments, generating the second GUI portion includes determining whether the first attribute is configurable to override its inherited value. In some embodiments, generating the second GUI portion includes determining whether the first attribute is configurable to override its inherited value. In some embodiments, the second GUI portion is configured to display information indicating a source of the first value of the first attribute. In some embodiments, the second GUI portion is configured to display information indicating a source of the first value of the first attribute in response to a mouse-over event. In some embodiments, the information indicating the source of the first value of the first attribute indicates that the source is the second attribute or that the source is an override value.

[0111] It should be understood that the inheritance concept as described herein is different from the term "inheritance" used in the context of object-oriented programming. In object-oriented programming, inheritance refers to a child class inheriting properties (e.g., variables, function definitions, function implementations) from a base class. This allows for code reuse and extension of software via common classes and interfaces.

[0112] In contrast, inheritance as described herein refers to the situation where a property of a data entity can be configured to take or "inherit" its value from a property of another data entity. The configuration would indicate the data entity from which the property would inherit data - it would not be fixed as in a base class in an object-oriented setup. For example, a data entity "Dl" can have two properties "Al" and "A2", and the value of property "A2" can identify another data entity "D2" from which to inherit the value of property "Al". Changing the value of property "A2" to a different data entity "D3" would change the data entity from which property "Al" inherits its value.

[0113] Since the configuration is at the property level, different properties of the same base data entity can be configured to take or "inherit" their values from different properties of multiple other data entities. This provides a great deal of flexibility in how property values can be set, and provides a level of indirection not available in object-oriented programming. Indeed, a single data entity can be configured to inherit property values not only from multiple other data entities, but also can change that configuration at the instance level of the single data entity, as described above.

[0114] As can be appreciated from the following description, inheritance of a data entity can be configured at the property level. To this end, in some embodiments, the data processing system can store, for each of at least some (e.g., all) properties of a data entity, an "inheritance configuration". The "inheritance configuration" can indicate whether the property inherits its value from another data entity property, and if so, indicate from which data entity property it inherits its value. Additionally, the inheritance configuration can indicate whether the property is overridable. In the case that the property is overridable, the inheritance configuration can further include permission information indicating the user(s) that are permitted to override the value.

[0115] In contrast, conventional object-oriented systems do not have the property-level inheritance configuration described herein. As described above, conventional object-oriented systems do not support inheritance of values at the property level of a data entity instance. Rather, object-oriented inheritance is at the class level, such that all object instances inherit all their values from a single parent object.

[0116] The techniques described herein can be implemented in any of various ways, as the techniques are not limited to any particular implementation. Examples of implementation details are provided herein for illustrative purposes only. Further, the techniques described herein are not limited to use with any particular technology or combination of technologies, as aspects of the techniques described herein can be used alone or in any suitable combination.

[0117] As described above, the inventors have recognized that a data processing system can be configured to manage millions or billions of data entity instances. For example, in some embodiments, the techniques described herein can be used for metadata management in an enterprise setting, whereby data entity instances store information about individual data sets (e.g., tables, transactions, documents, data records, etc.) stored across a globally distributed enterprise system (including many databases, data warehouses, data lakes, etc.). As described above, in this context, a data entity instance can store information about a corresponding data set, such as when the data set was created, where the data set is stored, its size, the identity of the user(s) allowed to edit the data set, information identifying which applications use the data set, information identifying a sensitivity level of the data, etc. As large organizations (e.g., financial institutions such as banks or credit card companies, public utilities such as phone or power companies, etc.) will typically manage millions or billions of such data sets, there can be millions or billions of data entity instances storing information about such data sets to be managed by a data processing system.

[0118] FIG. 1A is a simplified diagram showing an example environment in which a data processing system 105 can be used, in accordance with some embodiments of the techniques described herein. FIG. 1A An example of an implementation of the data processing system 105 for metadata management is shown in

[0119] FIG. 1A An enterprise system is shown that includes systems 160, 162, 164 distributed across multiple geographic locations (e.g., different cities, countries, continents, etc.). Each of the systems 160, 162, 164 can store large amounts of data (e.g., in one or more database systems, data warehouses, data lakes, etc.). For example, the systems 160, 162, 164 can be components of an enterprise system for a global bank, where system 160 is located in the United States, system 162 is located in Brazil, and system 164 is located in Europe.

[0120] As FIG. 1AAs shown in the example embodiment, each of the systems 160, 162, 164 includes a respective set of computing devices. The system 160 includes a server 160A and a database 160B. The system 162 includes a server 162A and a database 162B. The system 164 includes a server 164A and a database 164B. During operation of the enterprise system, each of the systems 160, 162, 164 can generate and / or store a large amount of data (e.g., terabytes of data). For example, the enterprise system can be used for a credit card company, where each of the systems 160, 162, 164 generates and / or stores transaction data, credit scores, and / or any other suitable data. In another example, the enterprise system can be used for a bank, where each of the systems 160, 162, 164 generates and / or stores data regarding bank records, loans, account holders, and / or any other suitable data. In another example, the enterprise system can be used for a phone company, where each of the systems 160, 162, 164 generates and / or stores data regarding phone calls, text messages, data usage, and / or any other suitable data.

[0121] In some embodiments, the database systems 160B, 162B, 164B can be configured to store data (e.g., of the enterprise system). Each of the database systems 160B, 162B, 164B can include a database, a data warehouse, a data lake, and / or any other database system. The database systems 160B, 162B, 164B can be of any suitable type(s), the same type or different types. For example, each of these systems can include one or more relational database systems (e.g., ORACLE, SQL SERVER, etc.). As another example, in some embodiments, each of these systems can include one or more other types of database systems (e.g., non-relational (e.g., NoSQL) database systems, multi-file systems, or any other suitable type of database system).

[0122] In some embodiments, the database systems 160B, 162B, 164B can be configured to store data (e.g., of the enterprise system). Each of the database systems 160B, 162B, 164B can include a database, a data warehouse, a data lake, and / or any other database system. The database systems 160B, 162B, 164B can be of any suitable type(s), the same type or different types. For example, each of these systems can include one or more relational database systems (e.g., ORACLE, SQL SERVER, etc.). As another example, in some embodiments, each of these systems can include one or more other types of database systems (e.g., non-relational (e.g., NoSQL) database systems, multi-file systems, or any other suitable type of database system). FIG. 1AIn example embodiments, the data processing system 105 stores information 107 describing data stored in the systems 160, 162, 164. In this sense, the information 107 can be considered metadata. The metadata can include any of a variety of types of information about data stored in the enterprise systems 160, 162, 164. For example, the metadata can include information about the systems (e.g., servers 160A, 162A, 164A) that process the data, software applications executing on the enterprise systems for processing the data, and / or rules applied by the applications in storing the data. In another example, the metadata can include information about the data in the overall enterprise software system, such as how the data was generated, the size of the data, a description of the data, which user(s) are permitted to read, update, create, delete, or perform any other action with respect to the data, and / or any other suitable information about the data.

[0123] In some embodiments, the data processing system can be configured to manage metadata using data entity instances and data entity definitions. For example, the data processing system 105 can store a data entity instance for each of a plurality of data sets (e.g., tables) stored by the enterprise systems. Each such data entity instance can store information about the data set (e.g., when the data set was created or updated, where the data set is stored, the size of the data set, the identity of the user(s) permitted to read, edit, delete, or perform any other suitable action with respect to the data set, information identifying which software applications use the data set, information identifying a sensitivity level of the data in the data set, and / or any other suitable metadata). As another example, the data processing system 105 can store a data entity instance for a respective column of a table in the enterprise systems. Each such data entity instance can store information about the column (e.g., the meaning of values in the column, who is authorized to read, write, update, and / or delete values in the column, the range of permissible values for entries in the column, and / or any other suitable metadata). As yet another example, the data processing system 105 can store a data entity instance for each of a plurality of software applications configured to be executed by a certain system or device portion of the enterprise systems. Such a data entity instance can store information about the software application (e.g., which data sets the software application processes, where the application places its output, a description of the functionality of the application, a version of the application, dependencies of the application on data and / or other applications, where the executable file for the application can be found, and / or any other suitable metadata). As yet another example, the data processing system 105 can store a data entity instance for each of a plurality of system portions of the enterprise systems.

[0124] As can be easily understood from the preceding text, in such a metadata management scenario, the data processing system 105 can manage millions or billions of such data entity instances, which is why it is important to perform queries, creations, updates, deletions, or any other appropriate actions against data entity instances as efficiently as possible.

[0125] In some embodiments, data processing system 105 may be configured to obtain information 107 about data from various systems 160, 162, 164. For example, data processing system 105 may query databases 160B, 162B, 164B to obtain metadata about various systems 160, 162, 164. In some embodiments, data processing system 105 may be configured to generate metadata using information obtained from systems 160, 162, 164 (e.g., by querying database systems 160B, 162B, 164B to obtain metadata). In some embodiments, data processing system 105 may be configured to store metadata about data stored in systems 160, 162, 164. For example, systems 160, 162, 164 may each be a data lake, data warehouse, database system, or other type of system. Metadata may be stored in instances of data entities, as described herein. In some embodiments, one or more attributes of a data entity instance may be configured to inherit values ​​from attributes of other data entity instances. In some embodiments, the data processing system 105 may be configured to allow users of the data processing system 105 to override values ​​inherited from attributes(s).

[0126] like FIG. 1A As shown, one or more users 102 can access information 107 about data in the enterprise system by interacting with the data processing system 105. For example, users(s) 105 can interact with the data processing system 105 using one or more computing devices through one or more interfaces (e.g., multiple user interfaces) provided by the data processing system 105. (See references herein) FIG. 1H This describes an example interface through which (multiple) users 102 can interact with the data processing system 105.

[0127] FIG. 1B This is an illustration of some embodiments of the technology described herein. FIG. 1A A simplified diagram of an example implementation of the data processing system 105. (See diagram below.) FIG. 1B As shown in the example embodiment, the data processing system 105 is communicatively coupled to: (1) FIG. 1Acorresponding systems 160, 162, 164, databases 160B, 162B, 164B of the respective systems 160, 162, 164; and (2) devices (e.g., used by the user(s) 102). The data processing system 105 includes an interface 110, a data entity access system 120, and a data persistence layer 150.

[0128] In some embodiments, the interface 110 can be configured to include user interfaces through which the user(s) 102 can access information from the data processing system 105 (e.g., using computing device(s)). The interface 110 can be configured to generate graphical user interfaces (GUIs) through which users can access data from information 107 about data stored in the systems 160, 162, 164. The GUIs can allow users to: (1) request information about data entity instances stored by the data processing system; and (2) view information about data entity instances stored by the data processing system. In some embodiments, the GUIs can allow users to access information 107 (e.g., metadata) stored about data stored by the systems 160, 162, 164. For example, the GUIs can allow the user(s) 102 to track data generated in an enterprise system (e.g., quality metrics and other characteristics of data). In another example, the GUIs can allow the user(s) 102 to visualize information describing components of a process flow, including: input data, a description of a process performed on the input data, and output data. In another example, the interface 110 can include script interfaces through which scripts can be received for execution by the data processing system 105. In another example, the interface 110 can include graph-based computer program(s) 116, third-party application(s), and / or other interfaces. In this document, reference is made to FIG. 1H Various examples of the interface 110 are described.

[0129] In the context of metadata management, in some embodiments, interfaces 110 can be configured to generate graphical user interfaces (GUIs) through which users can access data from information 107 about data stored in systems 160, 162, 164. The GUIs can allow users to: (1) request information about data entity instances stored by the data processing system; and (2) view information about data entity instances stored by the data processing system. In some embodiments, the GUIs can allow users to access information 107 (e.g., metadata) stored about data stored by systems 160, 162, 164. For example, the GUIs can allow user(s) 102 to track data generated in enterprise software systems (e.g., quality metrics and other characteristics of data). In another example, the GUIs can allow user(s) 102 to visualize lineage information. Lineage information can include information about relationships between different data entity instances. Aspects of lineage information are described in U.S. Patent No. 10,489,384, entitled SYSTEMS AND METHODS FOR DETERMINING RELATIONSHIPS AMONG DATA ELEMENTS, which is incorporated by reference herein in its entirety.

[0130] In some embodiments, data entity access system 120 can be configured to manage access to data entities. Data entity access system 120 can be configured to allow data entities to be configured. Data entity access system 120 can be configured to allow definition of new data entities and configuration of properties of attributes of data entities. For example, data entity access system 120 can allow an attribute(s) of a data entity to be configured to inherit its value from an attribute of another data entity. As another example, data entity access system 120 can allow multiple attributes of a data entity to be configured to inherit from multiple attributes of multiple other data entities. As another example, data entity access system 120 can allow an attribute(s) of a data entity to be configured to be overridable.

[0131] In some embodiments, data entity access system 120 can be configured to manage organization, storage, and access of information from data entity instances stored by data processing system 105. For example, data processing system 105 can execute a query to obtain information about data entity instances stored by data processing system 105. In some embodiments, data entity access system 120 can be configured to generate a response to a request for information about data entity instances stored by data processing system 105. For example, data processing system 105 can generate a response to a request for information about metadata stored by data processing system 105.

[0132] In some embodiments, data persistence layer 150 can be configured to store information about data entities and instances thereof. This information can include information defining data entities, instances of data entities, and relationships between data entities and instances thereof. In some embodiments, data persistence layer 150 can provide a central repository for all metadata of a system (e.g., an enterprise system). For example, data persistence layer 150 can store information 107 about data stored in databases 160B, 162B, and 164B. For example, each of databases 160B, 162B, 164B can be a data lake, a data warehouse, a database system, or other type of data storage.

[0133] FIG. 1B Table 166, shown in FIG. 16, illustrates example data stored in database 164C. Table 166 stores a set of information about customers (e.g., of a bank). Columns of table 166 include “Identifier,” “Name,” “Credit Score,” and “Score Date.” Data persistence layer 150 stores a “Dataset” data entity instance 156 that stores metadata about the data of table 166. Data entity instance 156 stores values for attributes including “Type,” “Business Manager,” “Entry Number,” “Private,” “Storage Size,” and “Data ID” of data entity instance 156. In some embodiments, in addition to or instead of the values for attributes shown in FIG. 16, “Dataset” data entity instance 156 can store values for other attributes. FIG. 1B

[0134] In applications in which data entity instances contain metadata about data (e.g., information about a table), in some embodiments, a data entity instance can include information that can be used to identify and / or access the data. As shown in the example of FIG. 16, the “Data ID” attribute identifies the data (e.g., table) that the information in “Dataset” data entity instance 156 describes. For example, the value of “Data ID” can be the identifier of table 166. In some embodiments, the value of “Data ID” can allow a user to navigate to table 166. For example, the value of “Data ID” can be a hyperlink that navigates to table 166 in database 164B. In some embodiments, a data entity instance itself can not store information about data, although a data processing system can store information that associates a data entity instance with information that can be used to identify and / or access the data itself. For example, a data processing system can store such information in one or more tables (e.g., within data persistence layer 150) or in any other suitable manner. FIG. 1B

[0135] As shown in the example of FIG. 16, the “Data ID” attribute identifies the data (e.g., table) that the information in “Dataset” data entity instance 156 describes. For example, the value of “Data ID” can be the identifier of table 166. In some embodiments, the value of “Data ID” can allow a user to navigate to table 166. For example, the value of “Data ID” can be a hyperlink that navigates to table 166 in database 164B. In some embodiments, a data entity instance itself can not store information about data, although a data processing system can store information that associates a data entity instance with information that can be used to identify and / or access the data itself. For example, a data processing system can store such information in one or more tables (e.g., within data persistence layer 150) or in any other suitable manner. FIG. 1B ​​As shown in the example embodiment, the data persistence layer 150 further stores a "credit score" data entity instance 158. The "credit score" data entity instance 158 may be... FIG. 1D An instance of the "Business Item" data entity 180. The "Credit Score" data entity instance 158 includes values ​​for the attributes "Type," "Description," "Business Owner," "Effective Lower Limit," "Effective Upper Limit," "Private," and "Data ID." As indicated by the arrow between the "Data ID" attribute and the "Credit Score" column of Table 166, the "Credit Score" data entity instance 158 describes the data in the "Credit Score" column of Table 166. FIG. 1B As shown in the example, the "Data ID" attribute indicates the data described by the information in the "Dataset" data entity instance 158. For example, the value of "Data ID" could be an identifier for the "Credit Score" column in Table 166. In some embodiments, the value of "Data ID" could allow a user to navigate to the "Credit Score" column in Table 166. For example, the value of "Data ID" could be a hyperlink that provides the user with information from the "Credit Score" column.

[0136] FIG. 1C This is an illustration of some embodiments of the technology described herein. FIG. 1B The graphical user interface (GUI) for data entity instance 158 is shown. In this example, the data entity instance is referred to as "Credit Score". Data entity instance 158 has many static attributes (e.g., "Name", "Definition", and "Type") and dynamic attributes. In this example, the dynamic attributes are divided into attribute groups for storing various types of information related to data governance in the banking application. For example, data entity instance 158 has governance-related dynamic attributes, including: "Business Owner", "Government Group", "Risk Data Domain", "Business Scope", "Regulator", "Subject Matter Expert", etc. As another example, data entity instance 158 has privacy and security-related attributes, including: "Sensitivity", "PII Classification", and "Security Scope". FIG. 1C The screenshot shows example values ​​of some of these properties of the data entity instance 158 displayed in the GUI.

[0137] As can be understood from the foregoing examples, attributes can be considered to be of different types depending on the type of value they take. Examples of different attribute types are described below by way of example, not limitation. For instance, attributes can take scalar values ​​such as numbers, strings, dates, times, or date-time. In some examples described herein, this type of attribute may be referred to as an "extended attribute." In some embodiments, an attribute can be multi-valued and take a set of values, each of which can be a number, string, date, time, or date-time.

[0138] As another example, an attribute can be discrete, whereby the data takes a value selected from a discrete set of values. Such a set can be referred to as an “enumeration.” For example, an attribute can be of type “categorical,” whereby the value of the attribute is a label selected from a set of labels. This allows data to be labeled with desired labels. As one particular example, certain data can be assigned to be or contain personal identifiable information (PII), e.g., have a value such as “yes” or “no.” In FIG. 1C the example of FIG. 1, the PII classification dynamic attribute can be of type “categorical,” as can the attribute “governance group.” As another example, an attribute can take a value that represents a respective user or group of users. In FIG. 1C the example of FIG. 1, the “business owner” attribute can be of type “responsible party,” and its value can represent a user or group of users. In FIG. 1C the example of FIG. 1, the “business owner” takes the value “Bob Owen.” In some embodiments, one or more (e.g., all) values in a discrete set of values can be a reference to another data entity instance. All of these example attributes are discrete.

[0139] As another example of a discrete attribute, an attribute can take a value in an ordered set of values. For example, the values in the ordered set can be ordered according to a hierarchy. As one particular example, an attribute can store a value related to a geographic region, which can be selected from a list of hierarchical values (e.g., “United States,” “Delaware,” or “Wilmington”). An attribute that takes a value in an ordered set of values can be of type “hierarchy.” In FIG. 1C the example of FIG. 1, the “risk data domain,” “business scope,” and “region” attributes are dynamic attributes of type “hierarchy.” When the value of an attribute of type “hierarchy” is accessed, in some embodiments, the particular value taken by the variable can be returned along with other related values. For example, as shown in FIG. 1C , the value of the “peak data domain” is “credit risk” and the value is displayed in FIG. 1C along with the related value “corporate risk.” The related value is the value related to “credit risk” in the hierarchy of values for the “risk data domain,” as “credit risk” is a type of “corporate risk.” In some embodiments, one or more (e.g., all) values in an ordered set of values can be a reference to another data entity instance.

[0140] As another example, an attribute can be a reference attribute and its value can be a reference to another data entity (e.g., a reference to an instance of another data entity). In some embodiments, an attribute can be multi-valued and take a set of values, each of which can be a reference to a data entity.

[0141] As another example, in some embodiments, an attribute can be of type "file attachment" and its value can identify a file of interest (e.g., a document, report, configuration file, spreadsheet, etc.). In FIG. 1D In the example of FIG. 3, the "design document" attribute is of type "attachment."

[0142] In some embodiments, data processing system 105 can be configured to store information 107 in instances of data entities. As described herein, in some embodiments, data entity attributes can be static or dynamic, meaning that their values are stored using different mechanisms as described below. For example, FIG. 1D An illustrative diagram of a data entity 170 having a plurality of static attributes 172 (including static attributes 173a and 173b) and a plurality of dynamic attributes 174 (including dynamic attributes 175a and 175b) is shown. As described above, in some embodiments, data entity attributes can be static or dynamic, meaning that their values are stored using different mechanisms as described below. For example, FIG. 1D As shown in FIG. 3, data entity 170 includes configuration information 173c for attribute S1 173a, configuration information 173d for attribute S2 173b, configuration information 175c for attribute D1 175a, and configuration information 175d for attribute D2 175b. The configuration information for a respective attribute can indicate whether the attribute is configured to inherit its value, a data entity from which the attribute inherits its value (if the attribute is configured to inherit its value), whether the value that the attribute inherits is overwritable, whether the attribute is required in instances of data entity 170, a sequence in which the attribute is displayed in a GUI, whether the attribute can have multiple values, a description of the attribute, and other information. Attributes of instances of data entity 170 can be configured according to the configuration information for the attributes in data entity 170.

[0143] In some embodiments, a data entity can specify additional information for one or more of the attributes of the data entity. For example, a data entity can specify an attribute type. As another example, a data entity can specify a manner in which a data processing system stores values of an attribute (e.g., whether attribute values are stored in rows or columns). As yet another example, a data entity can specify whether an attribute of the data entity inherits its value (e.g., from an attribute of another data entity). In some implementations, a data entity can specify a particular value for a particular attribute, in which case all instances of the data entity will have the particular attribute set to the particular value. Otherwise, values of data entity instance attributes can vary from instance to instance of the data entity.

[0144] As another example, FIG. 1DAn illustrative diagram of a data entity 180, referred to as a "business item," is shown having a plurality of static attributes 182 (including static attributes "type" 182a and "description" 182b) and dynamic attributes 184 (including dynamic attributes "business owner" 184a, "effective upper limit" 184b, "effective lower limit" 184c, and "data ID" 184d). A data entity can have any suitable number of static attributes (including zero) and any suitable number of dynamic attributes (including zero), as aspects of the technology described herein are not limited in this respect. In some embodiments, the data processing system 105 can be configured to store static and dynamic attributes differently. Thus, a single data entity instance can be stored in a database system (e.g., a relational database system) using rows and / or columns of one or more tables. The table(s) can be stored on one or more computer-readable storage media. On the other hand, in some embodiments, dynamic attribute values can be stored using name-value pairs. In particular, each database record can store attribute values for a particular entity instance.

[0145] As shown in FIG. 1D "credit score" data entity instance 158 is an instance of the data entity "business item" 180. The data entity instance 158 has values for the respective attributes of the data entity "business item" 180. For example, the data entity instance 158 has a value of "business item" for the "type" attribute 182a, a value of "Bob Owen" for the "business owner" attribute 184a, a value of "800" for the "effective upper limit" attribute 184b, and a value of "300" for the "effective lower limit" attribute 184c. As indicated by the dashed lines, the data entity instance 158 can have values for other attributes not shown in FIG. 1E

[0146] FIG. 1E is a diagram showing example data 107 stored in the data persistence layer 150 of the data processing system 105 in accordance with some embodiments of the technology described herein. As shown in FIG. 1A As shown in the example embodiments of FIG. 1E In some embodiments, the data persistence layer 150 stores a large number (e.g., thousands, millions, billions) of data entity instances that store information about respective components (e.g., data sets, software applications, any other components of the enterprise system) of the enterprise system from FIG. 1E ​The arrow for each data entity instance indicates the component that the information in the data entity instance describes. The component can be a data set, an application (e.g., one or more computer programs), a system (e.g., a database system), and / or other components of an enterprise system. For example, a data entity instance can store information about data (e.g., tables) in an enterprise system. In another example, a data entity instance can store information about an application of an enterprise system. In yet another example, a data entity instance can store information about a user of an enterprise system. As FIG. 1B shown in FIG. 1, the data persistence layer 150 stores data entity instances 156, 158 described herein with reference to FIG. 1E FIG. 2.

[0147] In some embodiments, the data persistence layer 150 can be configured to support tens, hundreds, thousands, or tens of thousands of data entities. And in an enterprise system environment, the data persistence layer 150 can be configured to store thousands, millions, or billions of data entity instances. For example, the data persistence layer 150 can store at least 10,000 data entity instances, at least 50,000 data entity instances, at least 100,000 data entity instances, at least 500,000 data entity instances, at least 1,000,000 data entity instances, at least 5 million data entity instances, at least 1 million data entity instances, at least 5 million data entity instances, at least 1 billion data entity instances, at least 5 billion data entity instances, at least 10 billion data entity instances, at least 50 billion data entity instances, between 10 million and 500 million data entity instances, between 100 million and 5 billion data entity instances, between 100 million and 50 billion data entity instances, or any other range within these ranges.

[0148] As shown in the example embodiments of FIG. 1E FIG. 2, the data stored by the data persistence layer 150 can be used to provide visualizations 109 to the user(s) 102 in a graphical user interface (GUI) disposed on the device(s). In some embodiments, the interface 110 of the data processing system 105 can be configured to provide information about data entity instances stored by the data processing system 105. For example, a user can wish to access the value(s) of one or more attributes of a data entity instance. In another example, a user can wish to access the values of multiple attributes of multiple data entity instances. In another example, a user can wish to view lineage information, such as FIG. 1FThe lineage information 109 shown in FIG. 1. Lineage information can include information about relationships among different data entity instances. Aspects of lineage information are described in U.S. Patent No. 10,489,384, entitled SYSTEMS AND METHODS FOR DETERMINING RELATIONSHIPS AMONG DATA ELEMENTS, which is incorporated by reference herein in its entirety.

[0149] FIG. 1F is a diagram showing that data entity instance 158, data entity instance 161 A, and data entity instance 161 B inherit attribute values from data entity instance 159A, in accordance with some embodiments of the technology described herein. FIG. 1F “Credit Risk” data entity instance 159A, “Credit Score” data entity instance 158, which stores information about EXPERIAN credit scores for customers in the United States (USA), “Credit Score” data entity instance 161 A, which stores information about EQUIFAX credit scores for customers in Brazil, and “Credit Score” data entity instance 161 B, which stores information about TransUnion credit scores for customers in Europe are shown. Each of the “Credit Score” data entity instances 158, 161 A, and 161 B includes attributes “Business Owner,” “Region,” and “Institution.” In FIG. 1G In the example of FIG. 1, the “Business Owner” attribute in each of the “Credit Score” data entity instances 158, 161 A, and 161 B is configured to inherit its value from the Responsible Party attribute of the “Business Owner” data entity instance 159A. Each of the data entity instances 158, 161 A, 161 B inherits “Bob Owen” as the value of its respective “Responsible Party” attribute. As indicated by the dots, there can be more “Credit Score” data entity instances storing information about respective credit scores (e.g., stored in an enterprise system).

[0150] FIG. 1G is a diagram showing that the “Credit Score” data entity instance 161 B inherits attribute values from the “Credit Risk” data entity instance 159A, in accordance with some embodiments of the technology described herein. The “Credit Score” data entity instance 161 B includes attributes “Business Owner,” “Region,” and “Institution.” Although the “Business Owner” attribute of the “Credit Score” data entity instance 161 B can initially be configured to inherit its value from the “Credit Risk” data entity instance 159A, in the example of FIG. 1, the value has been overridden. As FIG. 1G indicated by the dot, the “Business Owner” attribute of the “Credit Score” data entity instance 161 B has been overridden to inherit its value from the “Business Owner” data entity instance 159A. FIG. 1HAs shown in the middle, instead of inheriting the value "Bob Owen" from the "Credit Risk" data entity instance 159A, the "Business Owner" attribute has an override value of "Bernadette Ouvier".

[0151] FIG. 1H is a block diagram 100 illustrating aspects of an example data processing system 105 in accordance with some embodiments of the technology described herein. The data processing system 105 includes an interface 110, a data entity access system 120, and a data persistence layer 150.

[0152] In some embodiments, the interface 110 can allow the user(s) 102 to interact with the data processing system 105. The interface 110 includes one or more graphical user interfaces ((multiple) GUIs) 112, a scripting interface 114, a graph-based computer program 116, and third-party applications 116. As indicated by the dots, instead of or in addition to the interface shown in the middle, the interface 110 can also include one or more other types of interfaces. FIG. 1H

[0153] In some embodiments, the (multiple) GUIs 112 can include a graphical user interface (GUI) that allows configuration of data entities. The GUI can be configured to allow definition of data entities. The GUI can be configured to allow the user(s) 102 to configure attributes of data entities. In some embodiments, the GUI can be configured to allow the user(s) 102 to configure an attribute of a data entity to inherit its value from an attribute of another data entity. For example, the GUI can allow a user to indicate another data entity from which an attribute is to inherit its value (e.g., by specifying an identifier of the other data entity). In some embodiments, the GUI can be configured to allow the user(s) 102 to make an attribute configurable to override the value inherited by the attribute. For example, the GUI can allow a user to enable or disable override of an attribute. By enabling override of an attribute, for an instance of a data entity, a user can: (1) order override of the inherited value; and (2) enter an override value as the value of the attribute.

[0154] In some embodiments, the (multiple) GUIs 112 can include a GUI that displays information about data entity instances. The GUI can be configured to display attribute values of data entity instances. Example GUIs that display information about data entity instances are described herein with reference to FIG. 4D to FIG. 4G In some embodiments, the GUI can be configured to indicate the source from which an attribute value is inherited. The GUI can be configured to indicate the data entity and / or data entity instance from which an attribute of a data entity instance inherits its value. For example, the GUI can generate a portion of the GUI that displays the name of the data entity and / or data entity instance from which an attribute value is inherited (e.g., when a user hovers a cursor over the name of the attribute). Example GUIs that indicate the source from which an attribute value is inherited are described herein with reference to FIG. 6C to FIG. 6D ​and FIG. 4D to FIG. 4G An example GUI portion is described.

[0155] In some embodiments, the GUI(s) 112 can include a GUI configured to indicate whether a property of a data entity instance is configurable to override its inherited value. The GUI can include a portion indicating whether the property is configurable to override its inherited value. For example, the GUI can be configured to display a graphical element (e.g., an icon) indicating whether the property is configurable to override its inherited value. In some embodiments, a first graphical element (e.g., a pencil icon) can indicate that the property is configurable to override its inherited value and a second graphical element (e.g., a lock icon) can indicate that the property is not configurable to override its inherited value. In this document, reference to a GUI displaying a graphical element indicating whether a property is configurable to override its inherited value includes reference to a GUI displaying a first graphical element indicating that the property is configurable to override its inherited value and a second graphical element indicating that the property is not configurable to override its inherited value. FIG. 6C to FIG. 6D and FIG. 1H An example GUI portion is described.

[0156] In some embodiments, the GUI(s) 112 can include a GUI configured to allow the user(s) 102 to set a property value of a data entity instance. The GUI can be configured to allow a user to input a property value. For example, the GUI can include one or more text input fields that allow a user to input a string as a property value. In another example, the GUI can provide a list of options from which a user can select one or more property values.

[0157] In some embodiments, the GUI(s) 112 can include a GUI that allows a user to submit a request for information about one or more data entity instances. In some embodiments, the GUI can be configured to include a query generator that allows a user to generate and submit a query for information about the data entity instance(s). In some embodiments, the GUI can be configured to provide a search bar in which a user can enter search terms to retrieve information about one or more data entity instances stored by the data processing system 105. In some embodiments, the GUI can provide a filtering interface in which a user can provide input specifying criteria based on which the data processing system 105 can filter data entity instances.

[0158] In some embodiments, the script interface 114 can allow the user(s) 102 to access information about data entity instances using scripts. In some embodiments, the script interface can be a program written using a scripting language. For example, the script interface can be a JAVASCRIPT program of a website written using JAVASCRIPT. The script interface can allow a user to request information about data entity instances. For example, the script interface can allow a user to submit a query for information about one or more data entity instances.

[0159] In some embodiments, one or more users 102 can use a graph-based computer program 116 to perform data processing using data processing system 105. In some embodiments, the graph-based computer program can be a dataflow graph. A dataflow graph can include components, referred to as "nodes" or "vertices," that represent data processing operations to be performed on data and links between the components that represent data flow. Techniques for executing computations encoded by a dataflow graph are described in U.S. Patent No. 5,966,072, entitled "EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS," which is incorporated by reference herein in its entirety. An environment for developing computer programs as dataflow graphs is described in U.S. Patent Publication No. 2007 / 0011668, entitled "MANAGING PARAMETERS FOR GRAPH-BASED APPLICATIONS," which is incorporated by reference herein in its entirety.

[0160] In some embodiments, one or more third-party applications 116 can provide an interface through which users 102 can interact with data processing system 105. In some embodiments, the third-party applications can be web applications through which users 102 can interact with data processing system 105. For example, the third-party applications can be websites through which users 102 can request information about data entities and / or instances thereof. In another example, the third-party applications can be mobile applications through which users 102 can request and view information about data entities.

[0161] In some embodiments, data entity access system 120 can be configured to manage data entities and data entity instances stored by system 105. Data entity access system 120 includes inheritance module 122, override module 124, graphical user interface module 126, lineage module 128, permissions module 130, report generation module 132, and data access module 140. In some embodiments, each of modules 122, 124, 126, 128, 130, 132 can include a set of processor-executable instructions that, when executed by a data processing system, cause the data processing system to perform the described functions of the module. In some embodiments, instead of or in addition to the modules illustrated in FIG. 1, data entity access system 120 can include one or more modules. FIG. 2A to FIG. 2D In some embodiments, data entity access system 120 can include one or more modules.

[0162] In some embodiments, inheritance module 122 can be configured to manage inheritance of attributes between data entities and their instances. Inheritance module 122 can be configured to configure one or more attributes of a data entity to inherit values from another data entity. For example, inheritance module 122 can be configured to store information mapping attribute(s) of a data entity to one or more attributes of another data entity to inherit. The mapping can indicate one or more inheritance paths through which to inherit the attribute(s). An inheritance path can be a sequence of one, two, or more steps, each step associated with a data entity instance, where each step includes an indication (e.g., a reference or pointer) that an attribute of the data entity instance associated with that step is configured to inherit its value from an attribute of another data entity instance associated with a subsequent step. Examples of how inheritance module 122 manages inheritance between data entity instances are described herein with reference to FIG. 5A to FIG. 5C and FIG. 2A describing example inheritance paths.

[0163] In some embodiments, inheritance module 122 can be configured to store an indication of a source of inherited attribute(s) of a data entity. The source can be an indication (e.g., a name or other identifier) of a data entity from which to inherit the attribute(s). In some embodiments, inheritance module 122 can be configured to allow a user to specify a data entity from which to inherit an attribute (e.g., in a GUI for defining a data entity). Examples of how inheritance module 122 manages inheritance between data entities are described herein with reference to FIG. 2C

[0164] In some embodiments, inheritance module 122 can be configured to configure an attribute of a data entity to inherit a value. For example, inheritance module 122 can change a value in configuration information of an attribute to configure the attribute to inherit its value. In some embodiments, inheritance module 122 can be configured to determine whether an attribute inherits from another attribute (e.g., using configuration information of the attribute). Inheritance module 122 can be configured to identify from where an attribute inherits its value. Inheritance module 122 can be configured to use information indicating inheritance path(s) to determine inherited attribute value(s). For example, inheritance module 122 can: (1) determine that a first attribute of a first data entity instance is configured to inherit its value from a second attribute of a second data entity instance; and (2) determine the value of the first attribute by determining the value of the second attribute using a reference stored in the first data entity instance. Examples of how inheritance module 122 manages inheritance between data entity instances are described herein with reference to FIG. 5A and FIG. 4A to FIG. 4G Examples of how inheritance module 122 manages inheritance between data entity instances are described herein with reference to FIG. 6A to FIG. 6D and FIG. 2B Graphical user interfaces (GUIs) of

[0165] ​In some embodiments, inheritance module 122 can be configured to store information indicating whether to inherit attribute values of data entity instances. For example, inheritance module 122 can store information identifying one or more attributes of a data entity instance that are configured to inherit value(s) from data entities and / or data entity instances. In some embodiments, inheritance module 200 can be configured to store the information within the data entity instance. For example, inheritance module 200 can store one or more attributes in the data entity instance that indicate one or more other data entity instances from which the data entity instance inherits attribute values. In some embodiments, inheritance module 200 can be configured to store the information separately from the data entity instance. For example, inheritance module 200 can store the information in a separate data object (e.g., file) associated with the data entity instance.

[0166] In some embodiments, inheritance module 122 can be configured to determine values of one or more inherited attribute values of a data entity instance. For example, inheritance module 122 can determine a value in response to a request for information about a first data entity instance, the request being a request for a value of an inherited attribute value. Inheritance module 122 can be configured to determine a value of a first attribute of a first data instance by accessing a value of a second attribute from a second data entity instance, the first attribute being configured to inherit its value from the second attribute. Inheritance module 122 can be configured to output the determined value (e.g., generate a response to the request for information about the first data entity instance).

[0167] In some embodiments, override module 124 can be configured to manage overriding of inherited attributes of data entities. In some embodiments, override module 124 can be configured to set whether an attribute is configurable to override an inherited value (e.g., by setting a value in configuration information for the attribute). For example, override module 124 can set a variable (e.g., a Boolean value or an integer value) in a data entity for an attribute indicating whether the attribute is configurable to override an inherited value. In some embodiments, override module 124 can be configured to allow a user to specify whether an attribute is configurable to override an inherited value (e.g., in a GUI for defining data entities). Override module 124 can be configured to allow overriding of attribute values in instances of a data entity according to a specification of the data entity. Examples are described herein with reference to FIG. 2D Examples of how override module 124 manages overriding of attributes of data entities.

[0168] In some embodiments, the override module 124 can be configured to override inherited attribute values of data entity instances. The override module 124 can be configured to override inherited attribute values by replacing the attribute values with override values. For example, the override module 124 can replace an inherited attribute value with an override value that is provided as user input in a GUI of the data processing system 105. In some embodiments, the override module 124 can be configured to output an override value as an attribute value (e.g., to provide a response to a request for an attribute value). In this document, references to FIG. 3A to FIG. 3C Examples are described of how the override module 124 manages overrides of inherited attributes in data entity instances.

[0169] In some embodiments, the override module 124 can be configured to determine whether an attribute of a data entity instance is configurable to override inherited values. In some embodiments, the override module 124 can be configured to determine whether an attribute of a data entity instance is configurable to override inherited values based on a data entity from which the data entity instance is generated. For example, the override module 124 can determine whether the data entity specifies that an attribute is configurable to override inherited values. In some embodiments, the override module 124 can be configured to store a value (e.g., a Boolean value or an integer value) in the data entity instance that indicates whether an attribute is configurable to override inherited values.

[0170] In some embodiments, the graphical user interface module 126 can be configured to generate GUI(s) 112 through which the user(s) 102 can interact with the data processing system 105. In some embodiments, the graphical user interface module 126 can be configured to generate a GUI that displays information about a data entity instance. The GUI can be configured to display information (e.g., attribute values) about attributes of the data entity instance. In some embodiments, the graphical user interface module 126 can be configured to generate a portion of the GUI that indicates a source of an inherited attribute value. For example, the graphical user interface module 126 can generate an overlay portion of the GUI that indicates a source data entity and / or data entity instance from which an attribute value is inherited.

[0171] In some embodiments, the graphical user interface module 126 can be configured to generate a portion of the GUI that indicates whether an inherited attribute is configurable to override inherited values. For example, the graphical user interface module 126 can generate a first icon (e.g., a pencil icon) that indicates that an attribute is configurable to override inherited values and a second icon (e.g., a lock icon) that indicates that an attribute is not configurable to override inherited values. In some embodiments, the graphical user interface module 126 can be configured to generate a portion of the GUI that explains whether an attribute is configurable to override inherited values. For example, in response to a user hovering a cursor over the first icon, the module 126 can generate a message that indicates that an inherited attribute value can be overridden.

[0172] In some embodiments, the graphical user interface module 126 can be configured to generate a GUI that allows a user to define data entities. The GUI can allow a user to define inheritance of attributes and indicate whether an attribute is configurable to override an inherited value. The graphical user interface module 126 can provide user input to the inheritance module 122 and the override module 124 of the GUI.

[0173] In some embodiments, the lineage module 128 can be configured to manage lineage information for data managed by the data processing system 105. The lineage module 128 can be configured to manage entity relationships stored in the data persistence layer 150. In some embodiments, the lineage module 128 can be configured to determine relationships between data entity instances. In some embodiments, the lineage module 128 can be configured to determine relationships between data entity instances based on inheritance of attribute values between data entity instances. In some embodiments, the lineage module 128 can be configured to determine relationships between data entity instances based on other factors in addition to or instead of inheritance of attribute values. For example, the lineage module 128 can be configured to determine relationships based on how data (e.g., data entity instance(s)) was obtained, how data changed over time, and / or how data was used. In some embodiments, the lineage module 128 can be configured to automatically generate lineage information. Aspects of generating lineage information are described in U.S. Patent No. 10,489,384, entitled SYSTEMS AND METHODS FOR DETERMINING RELATIONSHIPS AMONG DATA ELEMENTS, which is incorporated by reference herein in its entirety.

[0174] In some embodiments, the permissions module 130 can be configured to manage permissions for users using the data processing system 105. The permissions module 105 can be configured to determine whether a user can edit attribute values in a data entity instance. The permissions module 130 can be configured to determine whether a user can override inherited attribute values (e.g., using the override module 124). In some embodiments, the permissions module 130 can manage access to data. For example, the permissions module 130 can determine which data entity instances a user can request access to based on a role of the user (e.g., administrator or manager). In some embodiments, the permissions module 130 can provide access to a user based on a role. For example, the permissions module 130 can be configured to determine, read, update, create, and / or delete permissions based on a user role.

[0175] In some embodiments, the report generation module 132 can be configured to generate information about data entities and / or instances thereof stored by the data processing system 105. In some embodiments, the report generation module 132 can be configured to output information in response to a request submitted by a user. The request can be a query for information about one or more data entity instances. For example, the query can be an executable structured query language (SQL) query. The report generation module 132 can be configured to output attribute values of data entity instances requested by the user. In this document, references to FIG. 1H An example process for generating a response to a request is described.

[0176] In some embodiments, the data access module 140 can be used by the data processing system to access data stored by the system (e.g., in the data persistence layer 150). As shown in FIG. 1, the data access module 140 can be configured to submit data requests 142 to the data persistence layer 150 and receive data in response to the data requests 142. In some embodiments, the data access module 140 can be configured to submit queries for data. For example, the data access module 140 can submit SQL queries for data. In some embodiments, the data 144 can be data specified by the request. For example, the data 144 can be one or more values requested in a query. The data access module 140 can be used by other modules of the data entity access system 120 to obtain and store data. In some embodiments, the data access module 140 can be configured to submit multiple queries (e.g., SQL queries). FIG. 7A to FIG. 7B In some embodiments, queries can be customized in a vendor-specific manner. For example, different vendors (e.g., MICROSOFT, ORACLE, IBM, POSTGRESQL, etc.) can implement different dialects of SQL and / or provide extensions to the SQL standard. In such cases, executable queries can be generated for a target database system (e.g., ORACLE) using the syntax and / or commands implemented by the target database system (e.g., using any special syntax and / or commands implemented by ORACLE). Additionally or alternatively, the queries can include optimizations to the queries that can be supported by the target database system. Thus, in some embodiments, a query for one type of database (e.g., an executable SQL query for a MICROSOFT SQL SERVER database) can be different than a query for another type of database (e.g., an executable SQL query for an IBM DB2), even where both queries would be generated from the same underlying intermediate representation.

[0177]

[0178] ​In some embodiments, the data access module 140 may be configured to request a value of one attribute of a data entity instance, multiple values ​​of multiple attributes of a data entity instance, or one or more values ​​of one or more attributes of multiple data entity instances. In some embodiments, the data access module 140 may be configured to request 1 to 10, 5 to 20, 10 to 30, 50 to 100, 100 to 500, 500 to 1000 attributes, or any other suitable range within these ranges. In some embodiments, the data access module 140 may be configured to request one, tens, hundreds, thousands, millions, tens of millions, and / or hundreds of millions of data entity instances. For example, data access module 140 may request 1 to 10, 10 to 100, 100 to 1000, 1000 to 10,000, 10,000 to 100,000, 100,000 to 1,000,000, 1,000,000 to 10,000,000, 10,000,000 to 100,000,000, 100,000,000 to 1,000,000,000, or any other suitable range within these ranges.

[0179] More generally, when retrieving values ​​for multiple distinct attributes, in some embodiments, the data processing system can be configured to generate separate queries (e.g., SQL queries) to obtain the value for each attribute. (The following is from...) FIG. 7A As indicated by the examples below, in some embodiments, instead of generating a separate query for each attribute, the data processing system can group attributes into one or more groups (using any suitable criteria, examples of which are provided herein) and generate a query for each group. By generating separate queries for different groups of attributes, the data entity access module 140 can reduce the total number of queries generated and executed. This, in turn, can reduce the computational burden on the data processing system when retrieving attribute values. One example of a criterion for grouping attributes, as described below, is grouping attributes that share a common inheritance path into a single group. Other examples of criteria for grouping attributes include data types (e.g., integers, strings, or other data types), attributes whose values ​​are stored in the same table, attributes whose values ​​are overridden, and / or any other suitable criteria for grouping attributes.

[0180] In some embodiments, multiple attributes configured to share a common inheritance path can be grouped together in a query. See below for further details. FIG. 7B and FIG. 7A This will be described in more detail.

[0181] In some embodiments, the attributes of a data entity can be configured to inherit their values ​​from corresponding attributes of another data entity. For example, such as FIG. 7BAs shown in FIG. 7, data entity 730 can include static attributes 732 and dynamic attributes 734. Among the dynamic attributes 734, attributes“A, B, C” 736 are configured to inherit their values from the corresponding attributes 712 of data entity 710, as indicated by common inheritance path 714. That is, if attributes are configured to inherit their values from attributes of the same data entity or data entity instance, the attributes of the data entity or data entity instance share a common inheritance path. Attributes“X,”“Y,”“Z” 738 are configured to inherit their values for the corresponding attributes 722 of data entity 720, as indicated by common inheritance path 724. Thus, in response to a request or query for the values of attributes 734 of an instance of data entity 730, the values of attributes 736 and attributes 738 need to be obtained. Since attributes A, B, and C are configured to inherit their values along common inheritance path 714 (e.g., from the same instance of data entity 710), a single query (e.g., a SQL query) can be used to access the inherited values of these attributes. FIG. 7B Query 740 in FIG. 7 is an example of such a query. Similarly, since attributes X, Y, and Z are configured to inherit their values along common inheritance path 724 (e.g., from the same instance of data entity 720), a single query can be used to access the inherited values of these variables. FIG. 1H Query 742 in FIG. 7 is an example of such a query.

[0182] In some embodiments, data access module 140 can be configured to access information about a data entity instance, where the information includes one or more values of one or more attributes of the data entity instance. Data access module 140 can be configured to access the values of an attribute by determining whether the attribute is configured to inherit its value from another data entity instance. In some embodiments, data access module 140 can be configured to: (1) use a first mechanism to access the values of an attribute when it is determined that the attribute is configured to inherit its value; and (2) use a second mechanism to access the values of an attribute when it is determined that the attribute is not configured to inherit its value. For example, data access module 140 can use a first type of query (e.g., a first SQL query) to access the values when an attribute is configured to inherit its value and a second type of query (e.g., a second SQL query) when the attribute is not configured to inherit its value.

[0183] In some embodiments, the data access module 140 may be configured to access the value of an attribute configured to inherit its value by: (1) determining whether the attribute is configured to override its inherited value; and (2) accessing the value of the attribute based on whether the attribute is configured to override its inherited value. The data access module 140 may be configured to access the value of an attribute by accessing the overriding value when it is determined that the attribute is configured to override its inherited value. For example, the data access module 140 may submit a first query (e.g., a first SQL query) to the data persistence layer 150 when the attribute is configured to override its inherited value and a second query (e.g., a second SQL query) when the attribute is not configured to override its inherited value.

[0184] In some embodiments, the data access module 140 may be configured to provide functionality through which data entities can be defined. For example, the data entity access system 120 may use the data access module 140 to configure new data entities, modify existing data entities, or delete data entities. In some embodiments, the data access module 140 may be configured to provide the data entity access system 120 with functionality to create, update, delete, and / or query data entity instances. For example, the data access module 140 may provide an application programming interface (API) through which functionality can be performed.

[0185] like FIG. 1H As shown in the example embodiment, the data persistence layer 150 includes a data store for storing data entities 152, data entity instances 153, and data entity relationships 154. In some embodiments, the data store may include a relational database system, such that data can be stored in tables within that relational database system. However, the data store is not limited to a relational database system, as it can be configured to store data in any suitable manner. For example, the data store may include an object-oriented database, a distributed database, a NoSQL database, and / or any other suitable database.

[0186] In some embodiments, each data store can include one or more storage devices of any suitable type that store data in one or more formats. For example, the storage device(s) of a data store can store data using one or more database tables, spreadsheet files, flat text files, and / or files in any other suitable format (e.g., a host’s native format). The storage device(s) can be of any suitable type and can include one or more servers, one or more database systems, one or more portable storage devices, one or more non-volatile storage devices, one or more volatile storage devices, and / or any other device(s) configured to electronically store data. In embodiments in which a data store includes multiple storage devices, the storage devices can be co-located in one physical location (e.g., in one building) or distributed across multiple physical locations (e.g., in multiple buildings, in different cities, states, or countries). The storage devices can be configured to communicate with each other using any suitable type of network(s), as aspects of the technology described herein are not limited in this respect.

[0187] As shown in the example embodiment of FIG. 2A, the data persistence layer 150 stores data entities. The data persistence layer 150 can be configured to store information defining a data entity. For example, a data entity can specify an identifier of the data entity, attributes in the data entity, value types of the attributes, attribute inheritance of the data entity, and / or override settings of inherited attributes. The data persistence layer 150 can be configured to store information about data entities from which the data entity inherits attributes. For example, the data persistence layer 150 can store names of data entities from which attributes are inherited. FIG. 1H As shown in the example embodiment of FIG. 2A, the data persistence layer 150 stores data entity instances 153 in a data store. The data store can be configured to store attribute values of data entity instances, inheritance paths of attribute value inheritance, identifiers of data entity instances, permissions of data entity instances, and other information about data entity instances. The data store is configured to store relationships 154 between data entity instances. The data store can be configured to store relationships between data entity instances determined by the lineage module 128. For example, the data store can store information mapping data entity instances based on lineage information determined by the lineage module 128.

[0188] FIG. 2A As shown in the example embodiment of FIG. 2A, the data persistence layer 150 stores data entity instances 153 in a data store. The data store can be configured to store attribute values of data entity instances, inheritance paths of attribute value inheritance, identifiers of data entity instances, permissions of data entity instances, and other information about data entity instances. The data store is configured to store relationships 154 between data entity instances. The data store can be configured to store relationships between data entity instances determined by the lineage module 128. For example, the data store can store information mapping data entity instances based on lineage information determined by the lineage module 128.

[0189] FIG. 1A to FIG. 1H FIG. 2B is a diagram illustrating a data entity A 200 having attributes configured to inherit values from data entity B 210 and data entity C 220 in a data processing system, according to some embodiments of the technology described herein. For example, the data entities 200, 210, 220 can be configured as described herein with reference to FIG. 1.​FIG. 2A Data entities in the described data processing system 105.

[0190] As shown in FIG. 2A each of the data entities 200, 210, 220 includes a respective set of attributes. Data entity A 200 includes: (1) static attributes 202, including attributes Al 203 and A2 204; and (2) dynamic attributes 205, including attributes A3 206 and A4 207. Data entity B 210 includes: (1) static attributes 212, including attributes Bl 213 and B2 214; and (2) dynamic attributes 215, including attributes B3 216 and B4 217. Data entity C includes: (1) static attributes 222, including attributes Cl 223 and C2 224; and (2) dynamic attributes 225, including attributes C3 226 and C4 227. Each of the data entities 200, 210, 220 can include other attributes not shown in FIG. 2A

[0191] In some embodiments, one or more attributes of a data entity can be configured to inherit values from one or more other data entities. As shown in the example of FIG. 2A (1) attribute A3 206 of data entity A 200 is configured to inherit its value from data entity B 210 via inheritance path 219; and (2) attribute A4 207 of data entity A 200 is configured to inherit its value from data entity C 220 via inheritance path 229. Thus, in an instance of data entity A 200: (1) the value of attribute A3 206 is determined from the value of attribute B3 216 in an instance of data entity B 210; and (2) the value of attribute A4 207 is determined from the value of attribute C4 227 in an instance of data entity C 220. When the value of attribute B3 216 in an instance of data entity B 210 is set (e.g., entered and / or modified), the value can be propagated to attribute A3 206 of an instance of data entity A 200. When the value of attribute C3 226 in an instance of data entity C 220 is set, the value can be propagated to attribute A4 207 of an instance of data entity A 200.

[0192] In some embodiments, a data processing system can be configured to allow attributes of a data entity instance to inherit their values from attributes of another data entity instance. As shown in the example of FIG. 2A ​As shown in Table 235, data entity A 200 specifies that the source of the value of attribute A3 206 is an attribute of data entity B 210 and that the source of the value of attribute A4 207 is data entity C 220. Thus, data entity A 200 specifies that the value of attribute A3 206 is inherited from data entity B 210 and that the value of attribute A4 207 is inherited from data entity C 220.

[0193] In some embodiments, the data processing system can be configured to allow the inherited attribute values to be overridden. As shown in Table 235, data entity A 200 specifies that the value of attribute A3 206 is inherited from data entity B 210. In this example, the value of attribute A3 206 is not overridden by data entity A 200. In another example, the value of attribute A3 206 is overridden by data entity A 200. FIG. 2A As shown in Table 235, data entity A 200 specifies that the value of attribute A3 206 is inherited from data entity B 210. In this example, the value of attribute A3 206 is not overridden by data entity A 200. In another example, the value of attribute A3 206 is overridden by data entity A 200. FIG. 2B As shown in Table 235, the attributes of data entity A 200 can be configured to be overridable. Attribute A3 206 is set to be overridable, as indicated by the first entry "Edit?" in the "Override?" column, and attribute A4 207 is set to be non-overridable, as indicated by the second entry "Lock" in the "Override?" column. It should be understood that an attribute being configured to be overridable does not require that the value inherited by the attribute must be overridden. Rather, an attribute configured to be overridable has the option of being overridden (e.g., by a user through a GUI, configuration file, API call, or any other suitable manner).

[0194] FIG. 2A is a simplified diagram showing the overriding of the values inherited by the attributes of data entity A 200 according to some embodiments of the technology described herein. In FIG. 2A As shown in Table 235, data entity A 200 specifies that the value of attribute A3 206 is inherited from data entity B 210. In this example, the value of attribute A3 206 is not overridden by data entity A 200. In another example, the value of attribute A3 206 is overridden by data entity A 200. FIG. 2B As shown in Table 235, the attributes of data entity A 200 can be configured to be overridable. Attribute A3 206 is set to be overridable, as indicated by the first entry "Edit?" in the "Override?" column, and attribute A4 207 is set to be non-overridable, as indicated by the second entry "Lock" in the "Override?" column. It should be understood that an attribute being configured to be overridable does not require that the value inherited by the attribute must be overridden. Rather, an attribute configured to be overridable has the option of being overridden (e.g., by a user through a GUI, configuration file, API call, or any other suitable manner). FIG. 4A to FIG. 4GIn this context, the inheritance of attribute A3 206 from attribute B3 216 is overridden, as indicated by the "X" in inheritance path 219. As a result of this overriding, attribute A3 206 can be determined as an overridden value (e.g., a user-input overridden value) instead of the value of attribute B3 216. For example, as a result of this overriding, the data processing system can set the value of attribute A3 206 in an instance of data entity A 200 as an overridden value instead of inheriting a value from attribute B3 216 in an instance of data entity B 210.

[0195] In some embodiments, the data processing system may be configured to override the inherited value of an attribute in a data entity when user 230 uses computing device 232 to override the inherited attribute value. In some embodiments, the data processing system may be configured to provide a graphical user interface (GUI) that allows the user to override the inherited value and input the overridden value. References herein FIG. 2A This describes an example GUI that allows users to override inherited properties. In some embodiments, the data processing system can be configured to allow inherited values ​​to be overridden with an overridden value via a configuration file, API call, programmatically via a software application, or any other suitable means. Before overriding, property A3 206 is configured to inherit its value from data entity B 210, such as... FIG. 2B As indicated in the first row of Table 235 shown. When the inherited value of attribute A3 206 has been overridden, the data processing system can be configured to change the source of the value of attribute A3 206, such as... FIG. 2B As shown in the highlighted portion of Table 235, the source of attribute A3 206 has been updated from "Data Entity B" to "Data Entity A", indicating that attribute A3 206 is no longer configured to inherit its value from data entity B 210.

[0196] In some embodiments, one or more attributes of a data entity can be configured to prevent overriding values ​​inherited from attributes(s). FIG. 2B In the example, the value inherited by property A4 207 of data entity A 200 cannot be overridden, such as by... FIG. 4Cthe“Lock” setting in the“Overridden?” column. Thus, the data processing system can not allow the value of attribute A4 207 inherited from attribute C4 227 of data entity 220 to be overridden. Thus, the data processing system can not allow the value of attribute A4 207 in instances of data entity A 200 to be overridden. In some embodiments, data entity A 200 can be configured to store configuration information indicating that attribute A4 207 is not configurable to be overridden. Thus, instances of data entity A 200 can not have the option to override the value inherited by attribute A4 207 in the instance. In some embodiments, the data processing system can be configured to provide the inherited value to a GUI through which the attribute can be configured to be overridable. An example GUI through which an attribute can be configured to be overridable is described herein with reference to FIG. 6B and FIG. 2C An example GUI through which an attribute can be configured to be overridable is described herein with reference to

[0197] FIG. 1A to FIG. 1H A diagram of data entity instance“Credit Score” 158 having attributes configured to inherit values from data entity instance“Credit Risk” 270 is shown, in accordance with some embodiments of the technology described herein. For example, data entity instances 158, 270 can be data entity instances managed by a data processing system 105 described herein with reference to FIG. 2C

[0198] As shown in the example of FIG. 2C “Credit Score” 158 has a set of static attributes 252 and dynamic attributes 255. Static attributes 252 include“Name” 253 and“Definition” 254. Dynamic attributes 255 include data governance attributes 256 and data ownership attributes 260. Data governance attributes 256 include“Functional Area” 257 and“Data Domain” 258. Data ownership attributes 260 include“Business Data Owner” 261,“Business Data Steward” 262, and“Subject Matter Expert” 263. As indicated by the dashed lines, in addition to or instead of the attributes shown in FIG. 2C “Credit Score” 158 can have other attributes.

[0199] As shown in the example of FIG. 2C ​As shown in the example of FIG. 2, the data entity instance "Credit Risk" 270 has attributes 272 that include a set of data ownership attributes 274. The data ownership attributes 274 include a "Business Data Owner" 275, a "Business Data Steward" 276, and a "Subject Matter Expert" 277. The data ownership attributes 260 of the data entity instance "Credit Score" 158 are configured to inherit values from the data ownership attributes 274 of the data entity instance "Credit Risk" 270. The "Business Data Owner" 261 is configured to inherit the value "Bob Owen" from the "Business Data Owner" 275 via inheritance path 265a, the "Business Data Steward" 262 is configured to inherit the value "Bill Smith" from the "Business Data Steward" 276 via inheritance path 265b, and the "Subject Matter Expert" 263 is configured to inherit the value "Sam Elk" from the "Subject Matter Expert" 277 via inheritance path 265c.

[0200] As FIG. 2C As shown in the example embodiment of FIG. 2, the values inherited by the attributes of the data entity instance "Credit Score" 158 are not stored in the data entity instance "Credit Score" 158. When the values are to be retrieved (e.g., to respond to a request for information about the data entity instance 158), the values can be retrieved from the data entity instance "Credit Risk" 270. In some embodiments, the inherited values can be programmatically copied from the data entity instance "Credit Risk" 270 to the attributes of the data entity instance "Credit Score" 158. In some embodiments, the data entity instance "Credit Score" 158 can be configured to store information indicating the values to be inherited from the data entity instance "Credit Risk" 270. For example, the data entity instance "Credit Score" 158 can include one or more attributes whose value(s) are reference(s) to the attribute(s) of the data entity instance "Credit Risk" 270 from which the values are to be inherited. In some embodiments, the information indicating the attribute values to be inherited from the data entity instance "Credit Risk" 270 can be stored separately from the data entity instance "Credit Score" 158. For example, a separate data entity instance can store information indicating the attributes of the data entity instance "Credit Risk" 270 from which the attributes of the data entity instance "Credit Score" 158 are configured to inherit values.

[0201] FIG. 4A to FIG. 4GTable 284 shows an example configuration of attributes of the data entity instance "Credit Score" 158 (e.g., defined by user 280 using computing device 282 in the data processing system). For example, table 284 can be shown in a GUI that displays information about the data entity instance "Credit Score" 158. As indicated in the "Source" column of table 284, the attributes of "Business Data Owner" 261, "Business Data Steward" 262, and "Subject Matter Expert" 263 are all configured to inherit values from the data entity instance "Credit Risk" 270. As indicated in the "Inherited Value" column of table 284, "Business Data Owner" 261 is configured to inherit the value of "Bob Owen," "Business Data Steward" 262 is configured to inherit the value of "Bill Smith," and "Subject Matter Expert" 263 is configured to inherit the value of "Sam Elk." As indicated in the "Override" column of table 284, "Business Data Owner" 261 and "Business Data Steward" 262 can be overridden, while "Subject Matter Expert" 263 cannot be overridden (e.g., it is "locked"). In some embodiments, the attributes of "Credit Score" 158 can be configured through a GUI (e.g., as described herein with reference to FIG. 2B). In some embodiments, the attributes of "Credit Score" 158 can be configured programmatically through a software application. In some embodiments, the attributes of "Credit Score" 158 can be configured through an API call, a configuration file, or any other suitable means. FIG. 2D

[0202] FIG. 2D is a diagram showing that the value inherited by the attributes of the data entity instance "Credit Score" 158 is overridden. As indicated by the "X" in inheritance path 265a, the attribute "Business Data Owner" 261 of the data entity instance "Credit Score" 158 is configured to override the value inherited from the attribute "Business Data Owner" 275 of the data entity instance "Credit Risk" 270. As shown in table 284, in the row indicating the configuration of "Business Data Owner" 261, the entry under "Source" has changed from "Credit Risk" to "Credit Score" and the entry under "Override?" has changed to "Yes." The value of "Business Data Owner" 261 in the data entity instance "Credit Score" 158 is the overridden value of "Ben Oscar" (e.g., specified by user 280 using computing device 282).

[0203] As FIG. 3A ​In the example embodiment shown, the data entity instance "credit score" 158 can be configured to store an override value for the attribute "business data owner" 261. In some embodiments, the override value for the attribute "business data owner" 261 can be stored in a separate data entity instance. In some embodiments, the override value for the attribute "business data owner" 261 can be stored in a separate type of data structure (e.g., a table or other data structure) of override values.

[0204] FIG. 1A to FIG. 1H is a flowchart of an illustrative process 300 for generating a response to a request to obtain information about a data entity instance, in accordance with some embodiments of the technology described herein. Process 300 can be performed by any suitable computing device(s). For example, process 300 can be performed by data processing system 105 described herein with reference to FIG. 2C In one example, process 300 can be performed by data entity access system 120 of data processing system 105.

[0205] Process 300 begins at block 302, where the system receives a request to access a first attribute value of a particular instance of a first data entity. The first attribute is configured to inherit its value from a second attribute of another instance of a second data entity. For example, the request can include a request for a value of the "business data owner" attribute 261 in the data entity instance "credit score" 158 of FIG. 2D In some embodiments, the user can submit the request. For example, the user can submit the request to view information in a graphical user interface (GUI). In some embodiments, the request can be submitted programmatically by a software application. For example, a software application of a bank can generate a request to access metadata about credit score data. In some embodiments, the system (e.g., data processing system 105 or a module thereof) can be configured to generate the request.

[0206] Next, process 300 proceeds to block 304, where the system generates a response to the request. At block 306 within block 304, the system determines whether the first attribute of the particular instance is configured to override the value inherited from the second attribute. In other words, the system determines whether the first attribute is configured to override the value inherited from the second attribute of the other instance. In some embodiments, the system can be configured to determine whether the first attribute is configured to override the inherited value by determining whether a stored override setting for the first attribute in the particular instance has been set. For example, the system can determine a Boolean value that indicates whether the first attribute is configured to override the value inherited from the second attribute of the other instance.

[0207] If at block 306 the system determines that the first attribute of the particular instance is configured to override the value inherited from the second attribute (e.g., the "business data owner" attribute 261 of the "credit score" data entity instance 158 is configured to override the value inherited from the "business data owner" attribute 261 of the "credit score" data entity instance 158 of the other instance), then process 300 proceeds to block 310. FIG. 2Dthe“credit score” 158 in the“business data owner” 261) inherits, process 300 continues to block 308, where the system accesses the override value. In some embodiments, the system can be configured to transmit a query (e.g., to a data persistence layer) to obtain the override value. In some embodiments, the override value can be stored in the particular instance. For example, the override value can be stored as a value of the first attribute. In another example, the override value can be stored as a separate attribute in the particular instance. In some embodiments, the override value can be stored separately from the particular instance. After accessing the override value at block 308, process 300 continues to block 310, where the system generates a response to the request to include the override value as the first value of the first attribute. In some embodiments, the system can be configured to generate the response by generating data (e.g., a vector, an array, or other data structure) indicating the override value as the first value of the first attribute.

[0208] If at block 306 the system determines that the first attribute of the particular instance is not configured to override the value inherited from the second attribute (e.g., FIG. 3B If at block 306 the system determines that the first attribute of the particular instance is not configured to override the value inherited from the second attribute (e.g.,

[0209] If at block 307 the system determines that the second attribute is configured to inherit its value, process 300 returns to block 306, where the system determines whether the second attribute is configured to override the value inherited from the third attribute of the instance of the third data entity. If so, the data processing system will further check whether the third attribute of the instance of the third data entity is configured to inherit its value from an instance of yet another data entity, and so on until the system identifies the value. In this way, the system can be configured to recursively follow the inheritance path to obtain the first attribute value.

[0210] If the system determines at block 307 that the second attribute is not configured to inherit its value, the process 300 continues to block 312, where the system accesses the value inherited from the second attribute. In some embodiments, the system can be configured to access the value inherited from the second attribute by reading the value of the second attribute stored in another instance of the system. For example, the system can locate another instance from memory of the system and read the value of the second attribute in the other instance. In some embodiments, the system can be configured to submit a query (e.g., to a data persistence layer) to read the value of the second attribute in the other instance. After accessing the value inherited from the second attribute at block 312, the process 300 continues to block 314, where the system generates a response to the request including the value inherited from the second attribute as the first attribute value. In some embodiments, the system can be configured to generate the response by generating data (e.g., a vector, an array, or other data structure) indicating the value inherited from the second attribute as the first attribute value.

[0211] After generating the response to the request at block 304, the process 300 continues to block 316, where the system outputs the generated response to the request. In some embodiments, the system can be configured to output the response in a graphical user interface (GUI) displayed on a display of a computing device. In some embodiments, the system can be configured to output the response to a software application that submitted the request. For example, the system can output the response to the software application through an application programming interface (API).

[0212] FIG. 1A to FIG. 1H is a flowchart of an illustrative process 350 for generating a graphical user interface (GUI) that displays data entity instances according to some embodiments of the technology described herein. The process 350 can be performed by any suitable computing device. For example, the process 350 can be performed by the data processing system 105 described herein with reference to FIG. 4A to FIG. 4G In one example, the process 350 can be performed using the interface 110 of the data processing system 105.

[0213] The process 350 includes a first block 352, in which the system generates a GUI. In block 352, the process 350 begins at block 354, where the system generates a first GUI portion indicating a first attribute value of a particular instance of a first data entity. The first attribute is configured to inherit its value from a second attribute of another instance of a second data entity. At block 356, the system accesses the value inherited from the second attribute. In some embodiments, the system can be configured to access the value inherited from the second attribute by: (1) locating the other instance in memory; and (2) reading the value of the second attribute from the other instance. After accessing the value inherited from the second attribute, the process 350 continues to block 358, where the system sets the first attribute value to the value inherited from the second attribute.

[0214] After generating the first GUI portion at block 354, process 350 continues to block 360, where the system generates a second GUI portion to indicate whether the first property is configurable to override its inherited value. In some embodiments, the system can be configured to generate a GUI element adjacent to (e.g., in the first GUI portion) the displayed first property value that indicates whether the first property is configurable to override its inherited value. For example, the system can generate: (1) a first icon (e.g., a pencil icon) that indicates that the first property is configurable to override its inherited value; and (2) a second icon (e.g., a lock icon) that indicates that the first property is not configurable to override its inherited value.

[0215] After generating the GUI at block 352, process 350 continues to block 362, where the system displays the generated GUI. In some embodiments, the system can be configured to display the GUI in a display (e.g., a monitor) of a computing device. A user of the computing device can be able to identify from the displayed GUI: (1) whether the first property inherits its value from another data entity instance; and (2) whether the first property is configurable to override its inherited value. In this regard, the system can be configured to display the GUI in a manner that enables a user to identify the information from the GUI. For example, the system can be configured to display the GUI in a manner that enables a user to identify the information from the GUI without having to interact with the GUI (e.g., without having to select a GUI element). FIG. 3C An example GUI is described.

[0216] FIG. 1A to FIG. 1H is a flowchart of an illustrative process 370 for generating a request to obtain information about a data entity instance according to some embodiments of the technology described herein. Process 370 can be performed by any suitable computing device. For example, process 370 can be performed by data processing system 105 described herein with reference to FIG. 2C In one example, process 370 can be performed by data entity access system 120 of data processing system 105.

[0217] Process 370 begins at block 372, where the system obtains a request to access a first property value of a particular instance of a first data entity. For example, the request can include a request to obtain a value of a “Business Data Owner” property 261 in a “Credit Score” data entity instance 158 of a data entity. In some embodiments, the request can be a database query (e.g., a SQL query). For example, a user can enter a query that indicates the request to obtain information. In some embodiments, the request can be programmatically submitted by a software application. For example, a software application of a bank can generate a request to access information related to a credit score of an individual. In some embodiments, the system (e.g., data processing system 105 or a module thereof) can be configured to generate the request. FIG. 4A

[0218] ​Next, process 370 continues to block 374, where the system generates a response to the request. In block 374, the system continues to block 376, where the system determines whether the first property is configured to inherit its value from a second property of another instance of a second data entity different from the first data entity. In some embodiments, the system can be configured to make the determination by determining whether the first data entity is configured such that the first property is configured to inherit its value from the second property of the second data entity. For example, the system can access the first data entity (e.g., configuration information in the first data entity) to determine whether the first property is configured to inherit its value from the second property. In some embodiments, the system can be configured to make the determination by determining whether the particular instance stores information (e.g., a reference) indicating that the first property inherits its value from the second property of another instance.

[0219] If, at block 376, the system determines that the first property is configured to inherit its value from the second property of another instance, process 370 continues to block 377, where the system determines whether the second property is configured to inherit its value. For example, the second property can be configured to inherit its value from a third property of an instance of a third data entity different from the first data entity and the second data entity. In some embodiments, the system can be configured to make the determination by determining whether the second property is configured to inherit its value from the third property of the instance of the third data entity. For example, the system can access the second data entity to determine whether it specifies that the second property is configured to inherit its value from the third property of the instance of the third data entity. In some embodiments, the system can be configured to make the determination by checking whether another instance stores information (e.g., a property value) indicating that the second property is configured to inherit its value from the third property of the instance of the third data entity.

[0220] If, at block 377, the system determines that the second property is configured to inherit its value from the third property of the instance of the third data entity, process 370 continues to block 376, where the system accesses the value inherited from the third property. If so, at block 377 the data processing system will further check whether the third property of the instance of the third data entity is configured to inherit its value from a fourth data entity instance, and so on until the system identifies the value. In this way, the system can be configured to recursively follow the inheritance path to obtain the first property value.

[0221] If, at block 377, the system determines that the second attribute is not configured to inherit its value, the process 370 continues to block 378, where the system accesses the value inherited from the second attribute of another instance. In some embodiments, the system can be configured to access the value of the second attribute by: (1) locating another instance from which the particular instance inherits its first attribute value; and (2) accessing the value of the second attribute in the other instance. For example, the system can locate another instance in the memory of the system and access the value of the second attribute. After accessing the value inherited from the second attribute at block 378, the process 370 continues to block 380, where the system generates a response to the request to include information indicating the value inherited from the second attribute as the first attribute value. In some embodiments, the system can be configured to generate the response by generating data (e.g., a vector, an array, or other data structure) indicating the value inherited from the second attribute as the first attribute value.

[0222] If, at block 376, the system determines that the first attribute is not configured to inherit its value, the process 370 continues to block 382, where the system accesses the value of the first attribute from the particular instance. For example, the particular instance can store a value (e.g., a number, a string, or other type of value) for the first attribute. The system can access the value stored by the particular instance for the first attribute. After accessing the value stored in the particular instance, the process 370 continues to block 384, where the system generates a response including the value as the first attribute value.

[0223] After generating the response to the request at block 374, the process 370 continues to block 386, where the system outputs the generated response to the request. In some embodiments, the system can be configured to output the response in a graphical user interface (GUI) displayed on a display of a computing device. In some embodiments, the system can be configured to output the response to a software application that submitted the request. For example, the system can output the response to the software application through an application programming interface (API).

[0224] FIG. 4A is a display of a GUI displaying information about an instance of a data entity, “Business Item” 404, “Credit Score” 402, in accordance with some embodiments of the technology described herein. “Credit Score” 402 is an instance of the “Business Item” data entity as indicated by the label 404. GUI 400 indicates the data domain 406 from which “Credit Score” 402 obtains data. In this example, the data domain 406 is a credit bureau. The GUI 400 indicates that “Credit Score” 402 is an instance of the “Business Item” data entity. In this example, the GUI 400 indicates that “Credit Score” 402 has a value for the “Credit Score” attribute of 750. The GUI 400 also indicates that “Credit Score” 402 has a value for the “Credit Limit” attribute of $100,000. In this example, the GUI 400 indicates that “Credit Score” 402 has a value for the “Credit Score” attribute of 750 and a value for the “Credit Limit” attribute of $100,000. In this example, the GUI 400 indicates that “Credit Score” 402 has a value for the “Credit Score” attribute of 750 and a value for the “Credit Limit” attribute of $100,000. FIG. 4AIn the example of FIG. 4, the "Credit Score" 402 obtains data from the data domain "Credit Risk." The GUI 400 displays attribute values for the "Credit Score" 402. The attribute values include values for data ownership attributes 408. The data ownership attributes include "Business Data Owner," "Business Data Steward," and "Subject Matter Expert." Each of the data ownership attributes can have one or more respective values. In FIG. 4B In the example of FIG. 4, in the "Credit Score" 402, the value for the "Business Data Owner" attribute is "Wade L. Register," the value for the "Business Data Steward" attribute is "Kaitlyn C. Ogawa," and the value for the "Subject Matter Expert" attribute is "Hugo J. Poiter" and "Donald D. Mace."

[0225] FIG. 4A is a display of a GUI showing information about a data entity instance "Credit Risk" 412, in accordance with some embodiments of the technology described herein, FIG. 4C The attributes of the data entity instance "Credit Score" 402 inherit values from the data entity instance "Credit Risk." The GUI 410 displays attribute values for the "Credit Risk" 412. The attribute values include values for data ownership attributes 414. The data ownership attributes 414 include: "Business Data Owner," "Business Data Steward," and "Subject Matter Expert." The data ownership attributes 414 for the "Credit Risk" 412 have the following values: the value for "Business Data Owner" is "Wade L. Register," the value for "Business Data Steward" is "Kaitlyn C. Ogawa," and the value for "Subject Matter Expert" is "Donald D. Mace" and "Hugo J. Potter." The data ownership attributes 408 for the "Credit Score" 402 are configured to inherit their values from the data ownership attributes 414 for the "Credit Risk" 412. Thus, the data ownership attributes 408 for the "Credit Score" 402 have the same values as the data ownership attributes 414 for the "Credit Risk" 412.

[0226] FIG. 4C is a display of a GUI for configuring attributes of a data entity "Business Item" 404, in accordance with some embodiments of the technology described herein, the "Credit Score" 402 is an instance of the data entity. The GUI 420 allows attributes of a data entity to be configured to inherit values from another data entity. In FIG. 4A In the example of FIG. 4, the GUI 420 shows that the attributes "Business Data Owner" 424, "Business Data Steward" 425, and "Subject Matter Expert" 426 of the "Business Item" data entity 422 are configured to inherit their values from the data entity "Data Domain," as indicated in column 427. For example, FIG. 4DThe “Credit Score” 402 is an instance of “Business Item” 422. Data ownership attributes 408 are configured to inherit their values ​​from instances of the “Data Domain” data entity. In this example, within “Credit Score” 402, data ownership attributes 408 are configured to inherit their values ​​from “Credit Risk” 412, which is an instance of the data entity “Data Domain”.

[0227] FIG. 4A It is a portion 422 of some embodiments of the technology described herein. FIG. 4D The GUI 400 is displayed, indicating information about the attributes of the data entity instance "Credit Score" 402, which is configured to inherit its values. For example... FIG. 4E As shown, GUI 400 includes an overlay GUI section 422 indicating information about the "Business Data Owner" attribute. GUI section 422 indicates that the value of the "Business Data Owner" attribute is inherited from "Credit Risk" 412, which is an instance of a data entity in the data domain. In some embodiments, GUI 400 can be configured to generate section 422 in response to user input. For example, GUI 400 can generate section 422 when the user hovers the mouse over the displayed attribute name.

[0228] FIG. 4A These are indications of some embodiments of the technology described herein. FIG. 4A The properties of the data entity instance "Credit Score" 402 can be configured to override the values ​​they inherit in the GUI section 430. A GUI 430 can be generated as... FIG. 4A Part of the GUI 400 (e.g., when the user selects) FIG. 4E When using the "Edit" option for the data ownership attribute in GUI 430, the GUI displays an indication of whether inherited attribute values ​​can be overridden. FIG. 4E In the example, GUI 430 displays indications of the values ​​for the attributes "Business Data Owner," "Business Data Supervisor," and "Subject Matter Expert." The lock icon 432 adjacent to the value of the "Business Data Owner" attribute indicates that the value cannot be overridden. The pencil icon 432 immediately following the value of the "Business Data Supervisor" attribute indicates that the value can be overridden. GUI 430 also displays a pencil icon immediately following the value of the "Subject Matter Expert" attribute. FIG. 4F As shown, when the user hovers the cursor over the pencil icon, GUI 430 displays an indication 434 that a value is inherited and can be overridden. Indicator 434 indicates that the user can click to overwrite the inherited value. For example, in response to clicking the pencil icon, GUI 430 can generate a menu that allows the user to override the inherited value of the "Subject Expert" attribute.

[0229] FIG. 4Ais an illustration of a GUI portion 440 indicating whether attributes of a data entity instance “Credit Score” 402 according to some embodiments of the technology described herein are configurable to override the values they inherit FIG. 4A Another illustration of the GUI portion 440 can be generated as part of the GUI 400 of FIG. 4A (e.g., when a user selects the “Edit” option for the data ownership attribute in FIG. 4F As illustrated in FIG. 4G When a user hovers a cursor over the lock icon adjacent to the value of the “Business Data Owner” attribute, the GUI 440 displays an indication that the attribute is not configurable to override the inherited value.

[0230] FIG. 4A is an illustration of a GUI portion 450 indicating information about a source from which attributes of a data entity instance “Credit Score” 402 according to some embodiments of the technology described herein are configured to inherit their values. FIG. 4A Another illustration of the GUI portion 450 can be generated as part of the GUI 400 of FIG. 5A (e.g., when a user hovers a cursor over the name of an attribute). The GUI 450 includes a portion 452 indicating the data entity instance “Credit Risk” from which the attribute inherits its value. The portion 452 indicates that the data entity “Data Domain,” of which “Credit Risk” is an instance, is the source from which the attribute inherits its value.

[0231] FIG. 5A is an illustration of a diagram showing a path of inheritance of attribute values between a set of three data entity instances 500, 158, 520 according to some embodiments of the technology described herein. FIG. 1A to FIG. 1H The data entity instances can be data entity instances managed by a data processing system 105 described herein with reference to FIG. 5A The data entity instances can be data entity instances managed by a data processing system 105 described herein with reference to FIG. 5A The data entity instance “Customer Credit Score” 500, the data entity instance “Credit Score” 158, and the data entity instance “Credit Risk” 520 are illustrated.

[0232] As illustrated in FIG. 5AAs shown, each of the data entity instances 500, 158, and 520 includes a corresponding set of attributes. Data entity instance "Customer Credit Score" 500 includes a set of static attributes 502 and a set of dynamic attributes 505. Static attribute 502 includes attributes "Name" 503 and "Definition" 504. Dynamic attribute 505 includes "Business Data Supervisor" 506 and "Subject Matter Expert" 507. Data entity instance "Credit Score" 158 includes a set of static attributes 252 and a set of dynamic attributes 255. Static attribute 252 includes "Name" 253 and "Definition" 254. Dynamic attribute 255 includes "Business Data Supervisor" 262 and "Subject Matter Expert" 263. Data entity instance "Credit Risk" 520 includes a set of static attributes 522 and a set of dynamic attributes 525. Static attribute 522 includes "Name" 523 and "Description" 524. Dynamic attribute 525 includes "Business Data Supervisor" 526 and "Subject Matter Expert" 527.

[0233] exist FIG. 5A In the example embodiment, the attribute "Business Data Supervisor" 506 of the data entity instance "Customer Credit Score" 500 is configured to inherit its value from the attribute "Business Data Supervisor" 262 of the data entity instance "Credit Score" 158 via inheritance path 508a. The attribute "Business Data Supervisor" 262 is configured to inherit its value from the attribute "Business Data Supervisor" 526 of the data entity instance "Credit Risk" 520 via inheritance path 518a. The attribute "Subject Expert" 507 of the data entity instance "Customer Credit Score" 500 is configured to inherit its value from the attribute "Subject Expert" 263 of the data entity instance "Credit Score" 158 via inheritance path 508b. The attribute "Subject Expert" 263 is configured to inherit its value from the attribute "Subject Expert" 527 of the data entity instance "Credit Risk" 520 via inheritance path 518b. FIG. 5A In the example configuration, the attributes "Business Data Supervisor" 526 and "Subject Expert" 527 of the data entity instance "Credit Risk" 520 can determine: (1) the values ​​of the attributes "Business Data Supervisor" 262 and "Subject Expert" 263 of the data entity instance "Credit Score" 158; and (2) the values ​​of the attributes "Business Data Supervisor" 506 and "Subject Expert" 507 of the data entity instance "Customer Credit Score" 500. Therefore, "Business Data Supervisor" 526 and "Subject Expert" 527 are at the highest inheritance level, while the attributes "Business Data Supervisor" 506 and "Subject Expert" 507 are at the lowest inheritance level.

[0234] FIG. 5BA computing device 535 is shown through which a user 530 can access information about data entity instance 500, 158, 520. For example, the user 530 can access information about data entity instance "Customer Credit Score" 500. Table 535 shows the configuration of attributes "Business Data Steward" 506 and "Subject Matter Expert" 507 of data entity instance "Customer Credit Score" 500. The "Source" column of table 535 indicates that attribute "Business Data Steward" 506 is configured to inherit the value "Bill Smith" from data entity instance "Credit Risk" 520, and attribute "Subject Matter Expert" 507 is configured to inherit the value "Sam Elk" from data entity instance "Credit Risk" 520. As indicated in the "Override" column of table 535, attribute "Business Data Steward" 506 is configurable to override the inherited value, while attribute "Subject Matter Expert" 507 is not configurable to override the inherited value.

[0235] FIG. 5A is a diagram illustrating the override of values inherited by attributes of data entity instance "Customer Credit Score" 500 by FIG. 5B data entity instance "Credit Risk" 520. The "X" in inheritance path 508a indicates that the value of attribute "Business Data Steward" 262 of data entity instance "Credit Score" 158 is overridden by attribute "Business Data Steward" 506 of data entity instance "Customer Credit Score" 500. As shown in the highlighted portion of table 535, attribute "Business Data Steward" 506 is overridden and now has the source of "Customer Credit Score". Thus, attribute "Business Data Steward" 526 of data entity instance "Credit Risk" 520 can not determine the value of attribute "Business Data Steward" 506 in data entity instance "Customer Credit Score" 500, where the override shown in FIG. 5B is performed. As shown in FIG. 5C , within data entity instance "Customer Credit Score" 500, attribute "Business Data Steward" 506 of data entity instance "Customer Credit Score" 500 is now populated with the value "Bob Stewart".

[0236] FIG. 5A is a diagram illustrating the override of values inherited by attributes of data entity instance "Customer Credit Score" 500 by FIG. 5AA simplified diagram illustrating the overriding of inherited values ​​for the attribute "Business Data Supervisor" 526 of the data entity instance "Credit Score" 158. The "X" in inheritance path 518a indicates the overriding of the value of the attribute "Business Data Supervisor" 526 of the data entity instance "Credit Risk" 520, which is inherited by the attribute "Business Data Supervisor" 262 of the data entity instance "Credit Score" 158. When the attribute "Business Data Supervisor" 262 is configured to override the value inherited from the attribute "Business Data Supervisor" 526, the overriding modifies the source from which the attribute "Business Data Supervisor" 506 of the data entity instance "Customer Credit Score" 500 inherits its value. As shown in the highlighted portion of Table 535, as a result of the overriding, the source of the attribute "Business Data Supervisor" 506 has been changed from "Credit Risk" (e.g., ...). FIG. 5C The one shown is changed to "Credit Score". FIG. 6A In the configuration shown, the attribute "Business Data Supervisor" 506 inherits the overridden value of "Ben Samuel" from the attribute "Business Data Supervisor" 262 of the data entity instance "Credit Score" 158.

[0237] FIG. 6A This is a display of a GUI 600 showing information about an instance of a "Customer Credit Score" 602, a "Business Data Element" data entity, according to some embodiments of the technology described herein. The "Customer Credit Score" 602 includes various attributes. These attributes include a business item attribute with a value of "Credit Score" 604. "Credit Score" 604 is another data entity instance from which the attributes of "Customer Credit Score" 602 are configured to inherit values. FIG. 6B In the example, the data ownership attribute 608 of "Customer Credit Score" 602 is configured to inherit values ​​from "Credit Score" 604. The data ownership attribute 608 includes "Business Data Owner," "Business Data Supervisor," "Subject Matter Expert," and "Technical Data Supervisor." "Customer Credit Score" 602 also includes a "Data Domain" attribute 606. The value of the "Data Domain" attribute 606 can indicate the category to which "Customer Credit Score" 602 belongs. "Customer Credit Score" 602 falls within the credit risk category of the company's risk hierarchy.

[0238] FIG. 6A This is a display of some embodiments of the technology described herein. FIG. 4A The GUI 620 displays the attribute configuration information for the data entity instance "Customer Credit Score" 602. In lines 622, 624, and 626, each of the "Business Data Owner," "Business Data Supervisor," and "Subject Matter Expert" attributes is configured to inherit its value from the instance of the "Business Item" data entity. An example instance of the "Business Item" data entity is provided in this document. FIG. 4BThe described "Credit Score" 402. The "Credit Score" 402 can be configured to inherit the value of the data ownership attribute 408 from the "Credit Risk" 412. The data ownership attribute 408 of the "Credit Score" 402 can be configured to inherit the value of the data ownership attribute 408 from the "Credit Risk" 412. FIG. 6C The described data ownership attribute 414 of the "Credit Risk" 412 inherits a value. When no override in place exists, the value of the data ownership attribute 608 can be configured to inherit the value of the data ownership attribute 414 of the "Credit Risk" 412.

[0239] FIG. 6C is a display of a GUI 630 that displays information about attributes of the "Customer Credit Score" 602 according to some embodiments of the technology described herein. As shown in FIG. 6D The GUI 630 includes an overlay portion 632 that displays information about the "Business Data Steward" attribute as shown in the middle. The overlay portion 632 indicates that the attribute value is inherited from the data entity instance "Credit Score," which is an instance of the business item data entity. For example, the "Business Data Steward" attribute value inherited by the "Credit Score" 402 from the "Credit Risk" 412 can be overridden (e.g., by a user override). Thus, in this example, the overlay portion 632 indicates that the source of the attribute value is the "Credit Score." In some embodiments, the GUI 630 can be configured to generate the overlay portion 632 in response to user input in the GUI. For example, the GUI 630 can generate the overlay portion 632 when a user hovers a cursor over the name of the attribute in the GUI 430.

[0240] FIG. 6D is a display of a GUI 640 that displays information about attributes of the "Customer Credit Score" 602 according to some embodiments of the technology described herein. As shown in FIG. 8 The GUI 640 includes an overlay portion 642 that displays information about the "Subject Matter Expert" attribute as shown in the middle. The overlay portion 642 indicates that the attribute value is inherited from the "Credit Risk," which is an entity of the data domain data entity. For example, the "Subject Matter Expert" attribute can be configured to inherit its value from the data entity instance "Credit Score," which is configured to inherit its value from the data entity instance "Credit Risk." In this example, no override exists and thus the overlay portion 642 indicates that the source of the attribute value is the data entity instance "Credit Risk."

[0241] In some embodiments, the GUI 640 can be configured to generate the overlay portion 642 in response to user input in the GUI. For example, the GUI 640 can generate the overlay portion 642 when a user hovers a cursor over the name of the attribute in the GUI 440.

[0242] Example computer system

[0243] FIG. 8 An example of a suitable computing system environment 800 on which the technology described herein can be implemented is shown. The computing system environment 800 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the technology described herein. Neither should the computing environment 800 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the example operating environment 800.

[0244] The technology described herein is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well- known computing systems, environments, and / or configurations that can be suitable for use with the technology described herein include, but are not limited to: personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.

[0245] The computing environment can execute computer-executable instructions, such as program modules. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The technology described herein can also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules can be located in both local and remote computer storage media including memory storage devices.

[0246] With reference to FIG. 8 An example system for implementing the technology described herein includes a general purpose computing device in the form of a computer 800. Components of computer 810 can include, but are not limited to, a processing unit 820, a system memory 830, and a system bus 821 that couples various system components including the system memory to the processing unit 820. The system bus 821 can be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. Such architectures include, for example, Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus (also known as Mezzanine bus).

[0247] Computer 810 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 810 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media can comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 810. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above should also be included within the scope of computer readable media.

[0248] The system memory 830 includes computer storage media in the form of volatile and / or nonvolatile memory such as read only memory (ROM) 831 and random access memory (RAM) 832. A basic input / output system 833 (BIOS), containing the basic routines that help to transfer information between elements within computer 810, such as during start-up, is typically stored in ROM 831. RAM 832 typically contains data and / or program modules that are immediately accessible to and / or being operated on by processing unit 820. By way of example, and not limitation, FIG. 8 Illustrative operating systems 834, application programs 835, other program modules 836, and program data 837 are shown.

[0249] The computer 810 can also include other removable / non-removable, volatile / nonvolatile computer storage media. By way of example only, FIG. 8A monitor 891 or other type of display device is also connected to the system bus 821 via an interface, such as a video interface 890. In addition to the monitor, computers can also include other peripheral output devices such as speakers 897 and printer 896, which can be connected through an output peripheral interface 895.

[0250] The drives and their associated computer storage media, described above and illustrated in FIG. 8 , provide storage of computer readable instructions, data structures, program modules and other data for the computer 810. In FIG. 8 , for example, hard disk drive 841 is illustrated as storing operating system 844, application programs 845, other program modules 846, and program data 847. Note that these components, can either be the same as or different from operating system 834, application programs 835, other program modules 836, and program data 837. Operating system 844, application programs 845, other program modules 846, and program data 847 are given different numbers here to illustrate that, at a minimum, they are different copies. A user can enter commands and information into the computer 810 through input devices such as a keyboard 862 and a pointing device 861, commonly referred to as a mouse, trackball or touch pad. Other input devices (not shown) can include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 820 through a user input interface 860 that is coupled to the system bus 821, but can be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). A monitor 891 or other type of display device is also connected to the system bus 821 via an interface, such as a video interface 890. In addition to the monitor, computers can also include other peripheral output devices such as speakers 897 and printer 896, which can be connected through an output peripheral interface 895.

[0251] Computer 810 can operate in a networked environment using a logical connection to one or more remote computers (such as remote computer 880). Remote computer 880 can be a personal computer, server, router, network PC, peer-to-peer device, or other common network node, and typically includes many or all of the elements described above regarding computer 810, but in... FIG. 8 Only the memory storage device 881 is shown in the image. FIG. 8 The logical connections described include Local Area Networks (LAN) 881 and Wide Area Networks (WAN) 883, but may also include other networks. This networking environment is common in offices, enterprise-wide computer networks, intranets, and the Internet.

[0252] When used in a LAN networking environment, computer 810 connects to LAN 881 via a network interface or adapter 880. When used in a WAN networking environment, computer 810 typically includes a modem 882 or other device for establishing communication over a WAN 883, such as the Internet. Modem 882 may be built-in or external and may be connected to system bus 821 via actor input interface 860 or other suitable mechanism. In a networking environment, program modules or portions thereof described with respect to computer 810 may be stored in a remote memory storage device. This is by way of example and not limitation. FIG. 8 The diagram shows a remote application 885 residing on a memory device 881. It should be understood that the network connection shown is exemplary, and other means of establishing communication links between computers can be used.

[0253] Having described several aspects of at least one embodiment of the technology described herein, it should be understood that various changes, modifications, and improvements will readily occur to those skilled in the art.

[0254] Such changes, modifications, and improvements are intended to be part of this disclosure and are intended to fall within the spirit and scope of the invention. Furthermore, while advantages of the techniques described herein are indicated, it should be understood that not every embodiment of the techniques described herein will include every described advantage. Some embodiments may not implement any features described herein as advantageous, and in some cases, one or more of the described features may be implemented to achieve further embodiments. Therefore, the foregoing description and figures are by way of example only.

[0255] The above-described embodiments of the technology described herein can be implemented in any of various ways. For example, the embodiments can be implemented using hardware, software or a combination thereof. When implemented in software, the software code can be executed on any suitable processor or collection of processors, whether provided in a single computer or distributed among multiple computers. Such processors can be implemented as integrated circuits, with one or more processor cores, built-in memory and programmable logic elements, e.g., as embodied in a CPU chip, GPU chip, microcontroller, or co-processor. Alternatively, or in addition, the processor can be implemented using discrete components, e.g., ASICs, configured to perform the various functions described herein. As another alternative, or in addition, the processor can be implemented by configuring a programmable logic device, e.g., a Field Programmable Gate Array (FPGA), with the appropriate configuration data. As yet another alternative, or in addition, the processor can be implemented using a combination of one or more of the above components, e.g., a combination of ASICs and FPGAs, or a combination of a CPU chip and a microcontroller, or any other suitable combination of the above. As yet another alternative, or in addition, the processor can be implemented using a combination of one or more of the above components, e.g., a combination of ASICs and FPGAs, or a combination of a CPU chip and a microcontroller, or any other suitable combination of the above. As yet another alternative, or in addition, the processor can be implemented using a combination of one or more of the above components, e.g., a combination of ASICs and FPGAs, or a combination of a CPU chip and a microcontroller, or any other suitable combination of the above.

[0256] Further, it should be appreciated that a computer can be embodied in any of a number of forms, such as a rack-mounted computer, a desktop computer, a laptop computer, or a tablet computer. Additionally, a computer can be embedded in a device not generally regarded as a computer but with suitable processing capabilities, including a Personal Digital Assistant (PDA), a smart phone or any other suitable portable or fixed electronic device.

[0257] Also, a computer can have one or more input and output devices. These devices can be used, among other things, to present a user interface. Examples of output devices that can be used to provide a user interface include printers or display screens for visual presentation of output and speakers or other sound generating devices for audible presentation of output. Examples of input devices that can be used for a user interface include keyboards, and pointing devices, such as mice, touch pads, and digitizing tablets. As another example, a computer can receive input information through speech recognition or in other audible format.

[0258] Such computers can be interconnected by one or more networks in any suitable form, including a local area network or a wide area network, such as an enterprise network or the Internet. Such networks can be based on any suitable technology and can operate according to any suitable protocol and can include wireless networks, wired networks or fiber optic networks.

[0259] Also, various methods or processes outlined herein can be encoded as software that is executable on one or more processors that employ any one of a variety of operating systems or platforms. Additionally, such software can be written using any of a number of suitable programming languages and / or programming or scripting tools, and also can be compiled as executable machine language code or intermediate code that is executed on a framework or virtual machine.

[0260] In this respect, various aspects of the technology described herein can be embodied as a computer readable storage medium (or multiple computer readable media) (e.g., a computer memory, one or more floppy discs, compact discs (CD), optical discs, digital video disks (DVD), magnetic tapes, flash memories, circuit configurations in Field Programmable Gate Arrays or other semiconductor devices, or other tangible computer storage medium) encoded with one or more programs that, when executed on one or more computers or other processors, perform methods that implement the various embodiments described above. As will be clear to those skilled in the art, the computer readable storage medium can be thought of as a computer readable storage device, a computer readable storage medium, a computer readable medium, or a computer readable storage unit depending upon the particular context. As noted above, the technology described herein can be implemented in terms of programming functionality provided by one or more computer programs. As will be apparent, one or more computer programs can be stored on any computer readable storage medium for use by or in connection with any computer or processor, in any suitable format. As will also be apparent, such a computer program may

[0261] The terms "program" or "software" are used herein in a generic sense to refer to any type of computer code or set of computer-executable instructions that can be employed to program a computer or other processor to implement various aspects of the technology described above. Additionally, it should be appreciated that according to one aspect of this embodiment, one or more computer programs that when executed perform methods described herein need not reside on a single computer or processor, but can be distributed in a modular fashion amongst a number of different computers or processors to implement various aspects of the technology described herein.

[0262] Computer-executable instructions can be in many forms, such as program modules, executed by one or more computers or other devices. Generally, these program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Typically the functionality of the program modules can be combined or distributed as desired in various embodiments.

[0263] Also, data structures can be stored in computer-readable media in any suitable form. For simplicity of illustration, data structures can be shown to have fields that are related through location in the data structure. Such relationships can likewise be achieved by assigning storage for the fields with locations in a computer-readable medium that conveys relationship between the fields. However, any suitable mechanism can be used to establish a relationship between information in fields of a data structure, including through the use of pointers, tags or other mechanisms that establish relationship between data elements.

[0264] Various aspects of the techniques described herein can be used alone, in combination, or in various arrangements not specifically described herein, and therefore applications thereof are not limited to the details and arrangements set forth in the foregoing description or illustrated in the accompanying drawings. For example, aspects described in one embodiment can be combined with aspects described in other embodiments in any manner.

[0265] Also, the techniques described herein can be embodied as a method, of which an example is provided in this document (including reference to Figures 3 and 7). The acts performed as part of the methods described herein can be ordered in any suitable way. Accordingly, embodiments can be constructed in which acts are performed in an order different than illustrated, which can include performing some acts simultaneously, even though shown as being performed sequentially in illustrative embodiments.

[0266] Further, some acts are described as performed by an “actor” or “user.” It will be appreciated that an “actor” or “user” need not be a single individual, and in some embodiments, acts attributable to an “actor” or “user” can be performed by a team of individuals and / or a combination of individuals and computer-assisted tools or other mechanisms.

[0267] The use of ordinal numbers such as “first,” “second,” “third,” etc. to modify a claim element itself does not imply any priority, precedence or order of one claim element over another claim element or the temporal sequence of acts of a method, but is merely used to distinguish one claim element from another claim element having a same name (but for use of the ordinal number).

[0268] Also, the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of “including,” “comprising,” or “having,” “containing,” “involving,” and variations thereof herein, is meant to encompass the items listed thereafter and equivalents thereof as well as additional items.

Claims

1. A method performed by a data processing system to access data in an efficient manner according to inheritance relationships between attributes of data entities, wherein, In the inheritance relationship, different properties of a same data entity can be configured to inherit values of the different properties from at least one other data entity, and the inheritance relationship can be overridden at an instance level of a single data entity, the method comprising: using at least one computer hardware processor of the data processing system to perform the following operations: receiving a request to access a first property value of a particular instance of a first data entity, wherein: the first data entity includes a plurality of properties including the first property, the particular instance includes values of zero, one or more properties of the plurality of properties of the first data entity, and the first property of the particular instance is configured to inherit its value from a second property of another instance of a second data entity different from the first data entity, determining whether the first property of the particular instance is configured to override the value inherited from the second property; and when it is determined that the first property is configured to override the value inherited from the second property: accessing an override value for overriding the value inherited from the second property; generating a first response to the request, the first response including information indicating the override value as the first property value; and outputting the first response; and when it is determined that the first property is not configured to override the value inherited from the second property: accessing the value inherited from the second property; generating a second response to the request, the second response including information indicating the value inherited from the second property as the first property value; and outputting the second response.

2. The method of claim 1, wherein, the first data entity includes information indicating that (i) the first property inherits its value from the second property; and (ii) whether the first property is configurable to override its inherited value.

3. The method of claim 1 or 2, wherein: the data processing system includes at least one data store configured to store instances of the data entities, including the particular instance and the other instance; and the request includes an executable query.

4. The method of claim 3, wherein, the executable query includes an executable structured query language query (SQL query).

5. The method of claim 1 or 2, wherein, the particular instance includes a plurality of property values, wherein each of at least some of the plurality of property values is inherited from a respective instance of a different data entity.

6. The method of claim 1 or 2, wherein, the second property of the other instance is configured to inherit its value from a third property of an instance of a third data entity different from the second data entity and the first data entity.

7. The method of claim 6, wherein, accessing the value inherited from the second property includes: determining whether the second property of the other instance is configured to override the value inherited from the third property; and when it is determined that the second property of the other instance is configured to override the value inherited from the third property: accessing another override value for overriding the value inherited from the third property as the value inherited from the second property; and when it is determined that the second property of the other instance is not configured to override the value inherited from the third property: accessing the value inherited by the second property from the third property.

8. The method of claim 1 or 2, wherein, the output includes: generating a graphical user interface (GUI) that displays: the first property value; and information indicating whether the first property value is inherited. the first data entity includes information indicating that (i) the first property inherits its value from the second property; and (ii) whether the first property is configurable to override its inherited value.

9. The method of claim 1 or 2, wherein, The particular instance includes respective values of a first plurality of attributes including the first attribute, the first plurality of attributes being configured to inherit their values from a respective second plurality of attributes of the other instance, wherein the request includes a request to access the values of the first plurality of attributes, and wherein the method further includes: grouping the first plurality of attributes into a single group; and generating a single executable query for the single group in accordance with the request, wherein the single executable query, when executed by the data processing system, causes the data processing system to generate a response to the request.

10. The method of claim 9, wherein, Grouping the first plurality of attributes into the single group includes grouping the first plurality of attributes into the single group using a grouping criterion.

11. The method of claim 10, wherein, The grouping criterion is grouping attributes that inherit values from a common instance into the single group.

12. The method of claim 1 or 2, wherein, The data processing system includes at least one data store configured to store information defining relationships between a plurality of data entity instances.

13. The method of claim 1 or 2, wherein, The data processing system manages the data, wherein the data managed by the data processing system includes information describing data stored in distributed databases of a network of distributed computing systems.

14. The method of claim 13, wherein, The data processing system is configured to store one instance for each of a plurality of data sets stored by the distributed databases of the distributed computing systems and / or for each of a plurality of software applications configured to be executed by the distributed computing systems.

15. The method of claim 1 or 2, wherein, The method further includes: generating a first portion of a graphical user interface (GUI) indicating the first attribute value; setting the first attribute value indicated by the GUI to the second attribute value; and displaying the GUI.

16. The method of claim 15, wherein, The method further includes: determining whether the first attribute is configurable to override its inherited value; and generating a second portion of the GUI indicating that the first attribute is configurable to override its inherited value when it is determined that the first attribute is configurable to override its inherited value.

17. The method of claim 16, wherein, Generating the second portion of the GUI includes: enabling a user to specify, through the second portion of the GUI, an override value for overriding the value inherited from the second attribute.

18. The method of claim 16, wherein, The method further includes: generating a second portion of the GUI indicating that the first attribute is not configurable to override its inherited value when it is determined that the first attribute is not configurable to override its inherited value.

19. The method of claim 1 or 2, wherein, The method further includes: preventing overriding the value inherited from the second attribute of the other instance.

20. The method of claim 1 or 2, wherein, The method further includes: generating a GUI that allows a user to configure the first data entity such that the first attribute inherits its value from the second attribute.

21. The method of claim 1 or 2, wherein, The method further includes: generating a GUI that displays information indicating a source of the first attribute value.

22. The method of claim 21, wherein, The GUI is configured to display the information indicating the source of the first attribute value in response to a mouse-over event.

23. The method of claim 21, wherein, The information indicating the source of the first attribute value indicates that the source is the second attribute of the other instance or that the source is an override value.

24. At least one non-transitory computer-readable storage medium storing instructions that, when executed by a data processing system, cause the data processing system to perform a method for accessing data according to inheritance relationships between attributes of data entities, wherein, In the inheritance relationship, different attributes of a same data entity are configurable to inherit values of the different attributes from different attributes of at least one other data entity, and the inheritance relationship is overrideable at an instance level of a single data entity, the method including: receiving, by the data processing system, a request to access a first attribute value of a particular instance of a first data entity, wherein: the first data entity includes a plurality of attributes including the first attribute, the particular instance includes values of zero, one, or more attributes of the plurality of attributes of the first data entity, and the first attribute of the particular instance is configured to inherit its value from a second attribute of another instance of a second data entity different from the first data entity; determining whether the first attribute of the particular instance is configured to override the value inherited from the second attribute; when it is determined that the first attribute is configured to override the value inherited from the second attribute: accessing an override value to override the value inherited from the second attribute; generating a first response to the request, the first response including information indicating the override value as the first attribute value; and outputting the first response; and when it is determined that the first attribute is not configured to override the value inherited from the second attribute: accessing the value inherited from the second attribute; generating a second response to the request, the second response including information indicating the value inherited from the second attribute as the first attribute value; and outputting the second response.

25. The at least one non-transitory computer-readable storage medium of claim 24, wherein, the first data entity includes information indicating that (i) the first attribute inherits its value from the second attribute; and (ii) whether the first attribute is configurable to override its inherited value.

26. The at least one non-transitory computer-readable storage medium of claim 24 or 25, wherein: the data processing system includes at least one data store configured to store instances of the data entities, the instances of the data entities including the particular instance and the other instance; and the request includes an executable query.

27. The at least one non-transitory computer-readable storage medium of claim 26, wherein, the executable query includes an executable structured query language query (SQL query).

28. The at least one non-transitory computer-readable storage medium of claim 24 or 25, wherein, the particular instance includes a plurality of attribute values, wherein each of at least some of the plurality of attribute values is inherited from a respective instance of a different data entity.

29. The at least one non-transitory computer-readable storage medium of claim 24 or 25, wherein, the second attribute of the other instance is configured to inherit its value from a third attribute of an instance of a third data entity different from the second data entity and the first data entity.

30. The at least one non-transitory computer-readable storage medium of claim 29, wherein, accessing the value inherited from the second attribute includes: determining whether the second attribute of the other instance is configured to override the value inherited from the third attribute; and when it is determined that the second attribute of the other instance is configured to override the value inherited from the third attribute: accessing another override value to override the value inherited from the third attribute as the value inherited from the second attribute; and when it is determined that the second attribute of the other instance is not configured to override the value inherited from the third attribute: accessing the value inherited by the second attribute from the third attribute.

31. The at least one non-transitory computer-readable storage medium of claim 24 or 25, wherein, the output includes: generating a graphical user interface (GUI) that displays: the first attribute value; and information indicating whether the first attribute value is inherited.

32. The at least one non-transitory computer-readable storage medium of claim 24 or 25, wherein, the particular instance includes respective values of a first plurality of attributes including the first attribute, the first plurality of attributes configured to inherit their values from a respective second plurality of attributes of the other instance, wherein the request includes a request to access the values of the first plurality of attributes, and wherein the method further includes: grouping the first plurality of attributes into a single group; and generating a single executable query for the single group in response to the request, wherein the single executable query, when executed by the data processing system, causes the data processing system to generate a response to the request.

33. The at least one non-transitory computer-readable storage medium of claim 32, wherein, grouping the first plurality of attributes into the single group includes grouping the first plurality of attributes into the single group using a grouping criterion.

34. The at least one non-transitory computer-readable storage medium of claim 33, wherein, the grouping criterion is grouping attributes that inherit values from a common instance into the single group.

35. The at least one non-transitory computer-readable storage medium of claim 24 or 25, wherein, the data processing system includes at least one data store configured to store information defining relationships between instances of a plurality of data entities.

36. The at least one non-transitory computer-readable storage medium of claim 24 or 25, wherein, the data processing system manages the data, wherein the data managed by the data processing system includes information describing data stored in distributed databases of a network of distributed computing systems.

37. The at least one non-transitory computer-readable storage medium of claim 36, wherein, the data processing system is configured to store one instance for each of a plurality of data sets stored by distributed databases of the distributed computing systems and / or for each of a plurality of software applications configured to be executed by the distributed computing systems.

38. The at least one non-transitory computer-readable storage medium of claim 24 or 25, wherein, the method further includes: generating a first portion of a graphical user interface (GUI) indicating the first attribute value; setting the first attribute value indicated by the GUI to the second attribute value; and displaying the GUI.

39. The at least one non-transitory computer-readable storage medium of claim 38, wherein, the method further includes: determining whether the first attribute is configurable to override its inherited value; and generating a second portion of the GUI indicating that the first attribute is configurable to override its inherited value when it is determined that the first attribute is configurable to override its inherited value.

40. The at least one non-transitory computer-readable storage medium of claim 39, wherein, generating the second portion of the GUI includes: enabling a user to specify, through the second portion of the GUI, an override value for overriding a value inherited from the second attribute.

41. The at least one non-transitory computer-readable storage medium of claim 39, wherein, the method further includes: generating a second portion of the GUI indicating that the first attribute is not configurable to override its inherited value when it is determined that the first attribute is not configurable to override its inherited value.

42. The at least one non-transitory computer-readable storage medium of claim 24 or 25, wherein, the method further includes: preventing overriding a value inherited from a second attribute of the other instance.

43. The at least one non-transitory computer-readable storage medium of claim 24 or 25, wherein, the method further includes: generating a GUI that allows a user to configure the first data entity such that the first attribute inherits its value from the second attribute.

44. The at least one non-transitory computer-readable storage medium of claim 24 or 25, wherein, the method further includes: generating a GUI that displays information indicating a source of the first attribute value.

45. The at least one non-transitory computer-readable storage medium of claim 44, wherein, the GUI is configured to display the information indicating the source of the first attribute value in response to a mouse-over event.

46. The at least one non-transitory computer-readable storage medium of claim 44, wherein, the information indicating the source of the first attribute value indicates that the source is the second attribute of the other instance or that the source is an override value.

47. A data processing system for accessing data according to inheritance relationships between attributes of data entities, wherein, In the inheritance relationships, different attributes of a same data entity are configurable to inherit values of the different attributes from different attributes of at least one other data entity, and the inheritance relationships are overrideable at an instance level of a single data entity, the data processing system comprising: at least one computer hardware processor; and at least one non-transitory computer-readable medium storing instructions that, when executed by the at least one computer hardware processor, cause the at least one computer hardware processor to perform a method comprising: receiving a request to access a first attribute value of a particular instance of a first data entity, wherein: the first data entity includes a plurality of attributes including the first attribute, The particular instance includes values of zero, one or more of the properties of the first data entity, and The first property of the particular instance is configured to inherit its value from a second property of another instance of a second data entity different from the first data entity, determining whether the first property of the particular instance is configured to override the value inherited from the second property; and when it is determined that the first property is configured to override the value inherited from the second property: accessing an override value for overriding the value inherited from the second property; generating a first response to the request, the first response including information indicating the override value as the first property value; and outputting the first response; and when it is determined that the first property is not configured to override the value inherited from the second property: accessing the value inherited from the second property; generating a second response to the request, the second response including information indicating the value inherited from the second property as the first property value; and outputting the second response.

48. The data processing system of claim 47, wherein, The first data entity includes information indicating that (i) the first property inherits its value from the second property; and (ii) whether the first property is configurable to override its inherited value.

49. The data processing system of claim 47 or 48, wherein: the data processing system includes at least one data store configured to store instances of the data entities, the instances of the data entities including the particular instance and the other instance; and the request includes an executable query.

50. The data processing system of claim 49, wherein, The executable query includes an executable structured query language query, SQL query.

51. The data processing system of claim 47 or 48, wherein, The particular instance includes a plurality of property values, wherein each of at least some of the plurality of property values is inherited from a respective instance of a different data entity.

52. The data processing system of claim 47 or 48, wherein, The second property of the other instance is configured to inherit its value from a third property of an instance of a third data entity different from the second data entity and the first data entity.

53. The data processing system of claim 52, wherein, Accessing the value inherited from the second property includes: determining whether the second property of the other instance is configured to override the value inherited from the third property; and when it is determined that the second property of the other instance is configured to override the value inherited from the third property: accessing another override value for overriding the value inherited from the third property as the value inherited from the second property; and when it is determined that the second property of the other instance is not configured to override the value inherited from the third property: accessing the value inherited by the second property from the third property.

54. The data processing system of claim 47 or 48, wherein, The output includes: generating a graphical user interface, GUI, displaying: the first property value; and information indicating whether the first property value is inherited.

55. The data processing system of claim 47 or 48, wherein, The particular instance includes respective values of a first plurality of properties including the first property, the first plurality of properties configured to inherit their values from a respective second plurality of properties of the other instance, wherein the request includes a request to access the values of the first plurality of properties, and wherein the method further includes: grouping the first plurality of properties into a single group; and generating a single executable query for the single group according to the request, wherein the single executable query, when executed by the data processing system, causes the data processing system to generate a response to the request.

56. The data processing system of claim 55, wherein, Grouping the first plurality of attributes into the single group includes grouping the first plurality of attributes into the single group using a grouping criterion.

57. The data processing system of claim 56, wherein, The grouping criterion is grouping attributes that inherit values from a common instance into the single group.

58. The data processing system of claim 47 or 48, wherein, The data processing system includes at least one data store configured to store information defining relationships between instances of a plurality of data entities.

59. The data processing system of claim 47 or 48, wherein, The data processing system manages the data, wherein the data managed by the data processing system includes information describing data stored in distributed databases of a network of distributed computing systems.

60. The data processing system of claim 59, wherein, The data processing system is configured to store one instance for each of a plurality of data sets stored by distributed databases of the distributed computing systems and / or for each of a plurality of software applications configured to be executed by the distributed computing systems.

61. The data processing system of claim 47 or 48, wherein, The method further includes: generating a first portion of a graphical user interface (GUI) indicating the first attribute value; setting the first attribute value indicated by the GUI to the second attribute value; and displaying the GUI.

62. The data processing system of claim 61, wherein, The method further includes: determining whether the first attribute is configurable to override its inherited value; and generating a second portion of the GUI indicating that the first attribute is configurable to override its inherited value when it is determined that the first attribute is configurable to override its inherited value.

63. The data processing system of claim 62, wherein, Generating the second portion of the GUI includes: enabling a user to specify, through the second portion of the GUI, an override value for overriding a value inherited from the second attribute.

64. The data processing system of claim 62, wherein, The method further includes: generating a second portion of the GUI indicating that the first attribute is not configurable to override its inherited value when it is determined that the first attribute is not configurable to override its inherited value.

65. The data processing system of claim 47 or 48, wherein, The method further includes: preventing overriding a value inherited from a second attribute of another instance.

66. The data processing system of claim 47 or 48, wherein, The method further includes: generating a GUI that allows a user to configure the first data entity such that the first attribute inherits its value from the second attribute.

67. The data processing system of claim 47 or 48, wherein, The method further includes: generating a GUI that displays information indicating a source of the first attribute value.

68. The data processing system of claim 67, wherein, The GUI is configured to display the information indicating the source of the first attribute value in response to a mouse-over event.

69. The data processing system of claim 67, wherein, The information indicating the source of the first attribute value indicates that the source is the second attribute of the other instance or that the source is an override value.

70. A method performed by a data processing system to access data according to inheritance relationships between attributes of data entities, wherein, In the inheritance relationships, different attributes of a same data entity are configurable to inherit values of the different attributes from different attributes of at least one other data entity, and inheritance configurations are changeable at attribute levels of a single data entity, the method includes: using at least one computer hardware processor of the data processing system to perform the following operations: receiving a request to access a first attribute value in a particular instance of a first data entity, wherein: the first data entity includes a plurality of attributes including the first attribute; and the particular instance includes values of zero, one, or more attributes of the plurality of attributes of the first data entity; determining that the first attribute of the particular instance is configured to inherit its value from a second attribute of another instance of a second data entity different from the first data entity; accessing the value inherited from the second attribute; generating a response to the request, the response including information indicating the value inherited from the second attribute as the first attribute value; and outputting the generated response.

71. The method of claim 70, wherein, Determining that the first attribute of the particular instance is configured to inherit from the second attribute includes using the first data entity to determine that the first attribute is configured to inherit its value from the second attribute.

72. The method of claim 70 or 71, wherein, The method further includes: receiving, by the data processing system, a request to access a value of a third attribute in the particular instance; determining that the third attribute of the particular instance is configured to inherit its value from a fourth attribute of an instance of a third data entity different from the first data entity and the second data entity; accessing the value inherited from the fourth attribute; generating a response to the request, the response including information indicating the value inherited from the fourth attribute as the third attribute value; and outputting the generated response.

73. The method of claim 70 or 71, wherein, Accessing the value inherited from the second attribute includes: determining that the second attribute of the second data entity instance is configured to inherit its value from a third attribute of an instance of a third data entity different from the first data entity and the second data entity; and accessing the value that the second attribute inherits from the third attribute.

74. The method of claim 70 or 71, wherein, The particular instance includes respective values of a first plurality of attributes including the first attribute, the first plurality of attributes configured to inherit their values from a respective second plurality of attributes of the other instance, wherein the request includes a request to access the values of the first plurality of attributes, and wherein the method further includes: grouping the first plurality of attributes into a single group; and generating a single executable query for the single group in accordance with the request, wherein the single executable query, when executed by the data processing system, causes the data processing system to generate a response to the request.

75. The method of claim 74, wherein, Grouping the first plurality of attributes into the single group includes grouping the first plurality of attributes into the single group using a grouping criterion.

76. The method of claim 75, wherein, The grouping criterion is grouping attributes that inherit values from a common instance into the single group.

77. The method of claim 70 or 71, wherein, The data processing system manages the data, wherein the data managed by the data processing system includes information describing data stored in a distributed database of a network of distributed computing systems.

78. The method of claim 77, wherein, The data processing system is configured to store one instance for each of a plurality of data sets stored by a distributed database of the distributed computing systems and / or for each of a plurality of software applications configured to be executed by the distributed computing systems.

79. At least one non-transitory computer-readable storage medium storing instructions that, when executed by a data processing system, cause the data processing system to perform a method for accessing data according to inheritance relationships between attributes of data entities, wherein, In the inheritance relationships, different attributes of a same data entity can be configured to inherit their values from different attributes of at least one other data entity, and inheritance configurations can be changed at the attribute level of a single data entity, the method including: receiving, by the data processing system, a request to access a value of a first attribute in a particular instance of a first data entity, wherein: the first data entity includes a plurality of attributes including the first attribute; and the particular instance includes values of zero, one, or more of the plurality of attributes of the first data entity; determining that the first attribute of the particular instance is configured to inherit its value from a second attribute of another instance of a second data entity different from the first data entity; accessing the value inherited from the second attribute; generating a response to the request, the response including information indicating the value inherited from the second attribute as the first attribute value; and outputting the generated response.

80. The at least one non-transitory computer-readable storage medium of claim 79, wherein, Determining that the first attribute of the particular instance is configured to inherit from the second attribute includes using the first data entity to determine that the first attribute is configured to inherit its value from the second attribute.

81. The at least one non-transitory computer-readable storage medium of claim 79 or 80, wherein, The method further includes: receiving, by the data processing system, a request to access a value of a third attribute in the particular instance; determining that the third attribute of the particular instance is configured to inherit its value from a fourth attribute of an instance of a third data entity different from the first data entity and the second data entity; accessing the value inherited from the fourth attribute; generating a response to the request, the response including information indicating the value inherited from the fourth attribute as the third attribute value; and outputting the generated response.

82. The at least one non-transitory computer-readable storage medium of claim 79 or 80, wherein, Accessing the value inherited from the second attribute includes: determining that the second attribute of the second data entity instance is configured to inherit its value from a third attribute of an instance of a third data entity different from the first data entity and the second data entity; and accessing the value that the second attribute inherits from the third attribute.

83. The at least one non-transitory computer-readable storage medium of claim 79 or 80, wherein, The particular instance includes respective values of a first plurality of attributes including the first attribute, the first plurality of attributes configured to inherit their values from a respective second plurality of attributes of the other instance, wherein the request includes a request to access the values of the first plurality of attributes, and wherein the method further includes: grouping the first plurality of attributes into a single group; and generating a single executable query for the single group in accordance with the request, wherein the single executable query, when executed by the data processing system, causes the data processing system to generate a response to the request.

84. The at least one non-transitory computer-readable storage medium of claim 83, wherein, Grouping the first plurality of attributes into the single group includes grouping the first plurality of attributes into the single group using a grouping criterion.

85. The at least one non-transitory computer-readable storage medium of claim 84, wherein, The grouping criterion is grouping attributes that inherit values from a common instance into the single group.

86. The at least one non-transitory computer-readable storage medium of claim 79 or 80, wherein, The data processing system manages the data, wherein the data managed by the data processing system includes information describing data stored in a distributed database of a network of distributed computing systems.

87. The at least one non-transitory computer-readable storage medium of claim 86, wherein, The data processing system is configured to store one instance for each of a plurality of data sets stored by a distributed database of the distributed computing systems and / or for each of a plurality of software applications configured to be executed by the distributed computing systems.

88. A data processing system for accessing data according to inheritance relationships between attributes of data entities, wherein, In the inheritance relationships, different attributes of a same data entity can be configured to inherit values of the different attributes from different attributes of at least one other data entity, and inheritance configurations can be changed at the attribute level of a single data entity, the data processing system comprising: at least one computer hardware processor; and at least one non-transitory computer-readable medium storing instructions that, when executed by the at least one computer hardware processor, cause the at least one computer hardware processor to perform a method comprising: receiving a request to access a value of a first attribute in a particular instance of a first data entity, wherein: the first data entity includes a plurality of attributes including the first attribute; and the particular instance includes values of zero, one, or more of the plurality of attributes of the first data entity; determining that the first property of the particular instance is configured to inherit its value from a second property of another instance of a second data entity different from the first data entity; accessing the value inherited from the second property; generating a response to the request, the response including information indicating the value inherited from the second property as the first property value; and outputting the generated response.

89. The data processing system of claim 88, wherein, determining that the first property of the particular instance is configured to inherit its value from the second property includes using the first data entity to determine that the first property is configured to inherit its value from the second property.

90. The data processing system of claim 88 or 89, wherein, The method further includes: receiving, by the data processing system, a request to access a value of a third property in the particular instance; determining that the third property of the particular instance is configured to inherit its value from a fourth property of an instance of a third data entity different from the first data entity and the second data entity; accessing the value inherited from the fourth property; generating a response to the request, the response including information indicating the value inherited from the fourth property as the third property value; and outputting the generated response.

91. The data processing system of claim 88 or 89, wherein, accessing the value inherited from the second property includes: determining that the second property of the second data entity instance is configured to inherit its value from a third property of an instance of a third data entity different from the first data entity and the second data entity; and accessing the value that the second property inherits from the third property.

92. The data processing system of claim 88 or 89, wherein, The particular instance includes respective values of a first plurality of properties including the first property, the first plurality of properties configured to inherit their values from a respective second plurality of properties of the other instance, wherein the request includes a request to access the values of the first plurality of properties, and wherein the method further includes: grouping the first plurality of properties into a single group; and generating a single executable query for the single group in accordance with the request, wherein the single executable query, when executed by the data processing system, causes the data processing system to generate a response to the request.

93. The data processing system of claim 92, wherein, grouping the first plurality of properties into the single group includes grouping the first plurality of properties into the single group using a grouping criterion.

94. The data processing system of claim 93, wherein, The grouping criterion is grouping properties that inherit values from a common instance into the single group.

95. The data processing system of claim 88 or 89, wherein, The data processing system manages the data, wherein the data managed by the data processing system includes information describing data stored in a distributed database of a network of distributed computing systems.

96. The data processing system of claim 95, wherein, The data processing system is configured to store one instance for each of a plurality of data sets stored by a distributed database of the distributed computing systems and / or for each of a plurality of software applications configured to be executed by the distributed computing systems.

97. A computer program product comprising computer instructions that, when executed by a processor, implement the steps of the method of any one of claims 1 to 23, or any one of claims 70 to 78.

Citation Information

Patent Citations

  • Systems and methods for determining relationships among data elements

    US10489384B2

  • Managing parameters for graph-based computations

    US20070011668A1

  • Executing computations expressed as graphs

    US5966072A

  • User-defined hierarchies of user-defined classes of graphical objects in a graphical modeling environment

    US20080092109A1

  • Inheritance of attribute values in relational database queries

    US20080222129A1