Entity discovery based on glossary data
The system uses a tree and graph data structure with a PageRank algorithm to automatically identify and rank business entities within datasets, addressing ambiguous tagging and enhancing data classification and search efficiency.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- HITACHI VANTARA LLC
- Filing Date
- 2022-08-26
- Publication Date
- 2026-05-29
Smart Images

Figure 0007867626000001 
Figure 0007867626000002 
Figure 0007867626000003
Abstract
Description
[Technical Field]
[0001] This disclosure relates to the technology of data storage, classification, and access in systems that store large amounts of data. [Background technology]
[0002] A data catalog may include a collection of metadata that can provide an organization with additional information about its data sources and other data assets. This allows the data catalog to enable the organization to derive further value from its data assets. The metadata within a data catalog may include data that describes the data assets or data that provides information about the data assets in other ways, such as by making the data assets easier to find, evaluate, and / or understand. For example, a data catalog can help users efficiently find the most relevant data for analysis or other desired purposes.
[0003] Furthermore, a glossary may be associated with a data catalog. A glossary may include a collection of terms, phrases, and concepts that define the characteristics of an organization's data. For example, when creating, expanding, or otherwise maintaining a glossary, it is typically desirable that it be well-organized, searchable, and configured to allow users to browse the data while simultaneously providing consistency in data governance. Thus, a data catalog may provide an inventory of an organization's data assets, while a glossary may define and contextualize an organization's data assets. [Overview of the project] [Means for solving the problem]
[0004] Some examples in this specification include a system that receives a tree data structure representing tags arranged in a hierarchy indicating business-level abstractions. The system may perform a field-level classification of the data to obtain field tags associated with the data, and generate a graph data structure by comparing the field tags of the data with a set of child tags of the tree. The system creates nodes of the graph for the parent tags of the set of child tags and creates nodes of the data resources corresponding to the compared field tags. Based on the amount of match between the child tags of the tree and the field tags identified in the resources and / or based on one or more entity relationships, the system creates directed edges from the resource nodes to the parent tags, and repeats the comparing and creating for multiple parent tags and resources. The system executes a ranking algorithm to identify at least one parent tag as a target entity. **Brief Description of the Drawings**
[0005] A detailed description is shown with reference to the accompanying drawings. In the figures, the leftmost digit of the reference number identifies the figure in which that reference number first appears. The use of the same reference number in different figures indicates similar or identical items or features.
[0006] [Figure 1] FIG. 1 shows an exemplary architecture of a system that can identify target entities within data according to some implementations.
[0007] [Figure 2] FIG. 2 is a flowchart showing an exemplary process for identifying a target entity according to some implementations.
[0008] [Figure 3] FIG. 3 shows an example of comparing a glossary target entity parent tag with a selected resource according to some implementations.
[0009] [Figure 4] FIG. 4 shows an example of creating a part of an evidence graph based on relationships determined from a database schema according to some implementation forms.
[0010] [Figure 5] FIG. 5 shows an exemplary evidence graph part according to some implementation forms.
[0011] [Figure 6] FIG. 6 shows a constructible exemplary evidence graph according to the implementation forms in this specification.
[0012] [Figure 7] FIG. 7 shows an exemplary output when applying the PageRank algorithm to the evidence graph of FIG. 6 according to some implementation forms.
[0013] [Figure 8] FIG. 8 shows an exemplary user interface for managing the glossary of this specification according to some implementation forms.
MODE FOR CARRYING OUT THE INVENTION
[0014] Some implementation forms of this specification target techniques and arrangements for adopting a glossary and / or adopting entity relationships available in the organization's data to automatically identify target entities in the glossary. Examples in this specification can rank the terms, resources, and / or tables of the glossary based on the number of reference relationships in the data that can be represented by an evidence graph. In particular, the top-ranked nodes of the evidence graph may correspond to target entities. Tagging may be performed automatically, and the correspondence between nodes may be determined based on the intersection score between the tag name and the tag name of the glossary.
[0015] In some cases, the glossary from which the mapping is performed and the graph is constructed may be generated or otherwise provided by a user or other party. Furthermore, the target entities may be business entities and may correspond to their glossary elements that exceed a PageRank threshold. Thus, the implementations of this specification can identify target entities using the techniques described herein, rather than performing these tasks manually or using hardcoded rules. The identification of target entities is performed automatically based on the glossary definitions and their mapping to the data.
[0016] In some examples, to identify target entities within an organization's data and glossary, the system may first perform a context-free, rough data classification of all fields. For example, this initial classification round may not be particularly accurate and may not represent the final classification result. The system may construct a weighted evidence graph that encodes evidence from the organization's data where terms correspond to terms of the target entities. Details of constructing the evidence graph will be discussed further below. Furthermore, following the construction of the evidence graph, the system may use a variation of the PageRank algorithm to rank the nodes in the evidence graph to identify entity terms and select one or more of the highest-ranked results as target entities.
[0017] As a concrete example, suppose a data catalog user wants to identify business entities present within an organization's data and glossary. In this example, the business entity is a conceptual-level abstraction, which may be reflected in the data layout in terms of grouping tags within data resources or schemas in entity relationship diagrams. For example, identifying business entities within a very large amount of data is a non-trivial task and is not practically achievable by human intellect or pen and paper alone. In addition, identifying business entities within an organization's data adds value to the data catalog solution. In particular, by identifying business entities within a glossary, an organization can categorize data at the resource level and also provide context for more accurate field-level data classification. Thus, identifying business entities enables more powerful searches in the data catalog, such as resource searches based on business entity tags.
[0018] In addition, identifying business entities within a data catalog allows the data catalog to provide context for other downstream cataloging tasks, such as deambiguating ambiguous tags. For example, a three-digit number, being inherently anonymous, can potentially be tagged in many ways. However, if a particular three-digit number is associated with an identified business entity, such as a credit card transaction, this provides context for the three-digit number and thus avoids the association of ambiguous tags with that specific three-digit number. For example, in this example, the three-digit number could be used to associate only with the CVV (Card Verification Value) number tag. In this way, identified business entities can serve as context for more accurately classifying other data at the field level.
[0019] For the purposes of discussion, several exemplary implementations are described in the environment of one or more service computing units configured to communicate with one or more storage and one or more client devices and to identify target entities in large amounts of data and / or corresponding glossaries. However, the implementations herein are not limited to the specific examples provided and may extend to other types of computing systems, other types of storage environments, other system architectures, other types of entities, other types of storage repositories, etc., as will be apparent to those skilled in the art in light of the disclosure herein.
[0020] Figure 1 shows an exemplary architecture of a system 100 that can identify target entities in data for several implementation forms. The system 100 includes one or more service computing units 102 that can communicate with one or more storage 104 through one or more networks 106. In addition, the service computing units 102 may communicate over one or more networks 106 with multiple client devices 108(1) to 108(m), such as user devices or other devices that can communicate with the service computing units 102. For example, the system 100 may store, classify, and manage data from the client devices 108, for example, as a data storage, data catalog, data repository, database, data warehouse, or similar.
[0021] In some examples, the service computing unit 102 may include multiple physical servers or other types of computing units that can be embodied in various ways. For example, in the case of servers, programs, applications, modules, other functional components, and some data storage may be implemented on the servers in a cluster of servers such as a server farm or data center, or in a cloud-hosted computing service, but other computer architectures may be used in addition to or instead. In the examples shown, each service computing unit 102 may include or be associated with one or more processors 116, one or more communication interfaces 118, and one or more computer-readable media 120. Furthermore, although a description of one service computing unit 102 is provided, other service computing units 102 may have the same or similar hardware and software configurations and components.
[0022] Each processor 116 may be a single processing unit or multiple processing units, and may include one or more arithmetic units or multiple processing cores. The processor 116 may be implemented as one or more central processing units, microprocessors, microcomputers, microcontrollers, digital signal processors, graphics processing units, state machines, logic circuits, and / or any device that manipulates signals based on operational instructions. For example, the processor 116 may be one or more hardware processors and / or logic circuits of any suitable type that are specifically programmed or configured to perform the algorithms and processes described herein. The processor 116 may be configured to fetch and execute computer-readable instructions stored in a computer-readable medium 120, which can be programmed to perform the functions described herein.
[0023] The computer-readable medium 120 may include volatile and non-volatile memory and / or removable and non-removable media implemented in any type of technology for storing information such as computer-readable instructions, data structures, program modules, or other data. For example, the computer-readable medium 120 may include, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technologies, optical storage, solid-state storage, magnetic disk storage, magnetic tape, storage arrays, network-attached storage, storage area networks, cloud storage, or any other media that can be used to store desired information and can be accessed by the arithmetic unit. Depending on the configuration of the service arithmetic unit 102, the computer-readable medium 120 may be a tangible non-temporary medium where it is mentioned that non-temporary computer-readable medium excludes media such as energy, carrier signals, electromagnetic waves and / or signals themselves. In some cases, the computer-readable medium 120 may be located in the same place as the service arithmetic unit 102, and in other examples, the computer-readable medium 120 may be separated from or partially separated from the service arithmetic unit 102.
[0024] The computer-readable medium 120 may be used to store any number of functional components that can be executed by the processor 116. In many implementations, these functional components include instructions, applications, or other programs that are executable by the processor 116 and, when executed, specifically program the processor 116 to perform operations belonging to the service arithmetic unit 102 as herein. The functional components stored in the computer-readable medium 120 may also include a service application 122, which may include one or more computer programs, applications, executable code, computer-readable instructions, or parts thereof. For example, the service application 122 may be executed by the processor 116 to perform various other data classification, data storage, and retrieval tasks, such as identifying target entities in the data and interacting with the client device 108, responding to instructions 123 from the client device vice, storing data 124 for the client device in storage 104, retrieving data 124 for the client device 108, and / or providing the client device 108 with access to stored data 126 stored in storage 104. Accordingly, the service application 122 may be configured in the service arithmetic unit 102 to provide one or more services to the client arithmetic unit 108. In some cases, the functional components may be stored in the storage portion of the computer-readable medium 120, loaded into the local memory portion of the computer-readable medium 120, and executed by one or more processors 116.
[0025] In addition, the computer-readable medium 120 may store data and data structures used to perform the functions and services described herein. For example, the computer-readable medium 120 may store data, metadata, data structures, and / or other information generated and / or used by the service application 122. For example, as will be discussed further below, the service computing unit 102 may store and manage the glossary 128, the evidence graph 130, and the ranking information 132. In addition or alternatively, the glossary 128, the evidence graph 130, and / or the ranking information 132 may be stored in the storage 104. Furthermore, the mapping from the glossary to business entities 131 may be stored in the computer-readable medium 120 and / or the storage 104.
[0026] Each service computing unit 102 may also include or maintain other functional components and data, which may include operating systems, programs, drivers, etc., as well as other data used or generated by the functional components. Furthermore, the service computing unit 102 may include many other logical components, program components, and physical components, the ones described above being merely examples relevant to the discussion herein. In addition, many other software and / or hardware configurations will be apparent to those skilled in the art who have a benefit of the disclosure herein, and the foregoing are merely examples provided for the purposes of discussion.
[0027] The communication interface 118 may include one or more interfaces and hardware components to enable communication with various other devices, such as on the network 106. Accordingly, the communication interface 118 may include or be connected to one or more ports that provide connections to one or more networks 106 for communication with the storage 104 and the client device 108. For example, the communication interface 118 may enable communication through one or more short-range communications such as LAN (Local Area Network), WAN (Wide Area Network), the Internet, cable networks, cellular networks, wireless networks (e.g., Wi-Fi), and wired networks (e.g., Fibre Channel, optical fiber, Ethernet), direct connection, BLUETOOTH®, and similar networks, as further enumerated elsewhere in this specification. In addition, to enhance fault tolerance, the communication interface 118 of the service computing unit 102 may include redundant network connections to each of the networks 106 to which the service computing unit 102 is connected.
[0028] Network 106 may include any suitable communication technology, including a WAN such as the Internet, a LAN such as an intranet, a cellular network, a local wireless network such as Wi-Fi, and / or short-range wireless communication such as Bluetooth®, a wired network including Fibre Channel, optical fiber, Ethernet, or any other such network, a direct wired connection, or any combination thereof. Accordingly, network 106 may include wired and / or wireless communication technologies. The components used in network 106 may depend at least in part on the type of network, the environment selected, the desired performance, and so on. The protocols for communication over network 106 described herein are well known and will not be discussed in detail. Accordingly, the service computing unit 102 can communicate with storage 104 and client device 108 over network 106 using wired and / or wireless connections and combinations thereof.
[0029] Each client device 108 may be any suitable type of computing device, such as a desktop, workstation, server, laptop, tablet computing device, mobile device, smartphone, wearable computing device, or any other type of computing device capable of transmitting data over a network. For example, client device 108 may generate data 124 that is sent to the service computing device 102 for data storage, backup storage, long-term remote storage, or any other type of data storage. In some cases, client device 108 may include a hardware configuration similar to that described for the service computing device 102, but also have different data and functional components to enable client device 108 to perform the various functions discussed herein. In some examples, a user may be associated with each client device 108, such as through a user account, user login credentials, or the like. In some examples, client device 108 may include an organizational server that can generate, aggregate, receive, or otherwise provide data 124 for storage and cataloging to the service computing device 102.
[0030] Each client device 108(1) to 108(m) may access one or more service computing units 102 through their respective instances of client applications 136(1) to 136(m), such as browsers, web applications, or other types of applications, running on the client device 108. For example, client application 136 may provide a graphical user interface (GUI), a command-line interface, and / or employ an application programming interface (API) for communicating with service application 122 on service computing unit 102. Furthermore, while one example of a client / server configuration is described herein, many other possible variations and applications for the computing system 100 herein will be apparent to those skilled in the art who are interested in the disclosure herein.
[0031] Storage 104 may provide storage capacity for system 100 for storing data such as file data or other object data that may include data content and metadata related to the content. Storage 104 may include storage arrays such as network-attached storage (NAS) systems, storage area network (SAN) systems, cloud storage, storage virtualization systems, or similar. Furthermore, storage 104 may be located in the same location as one or more service computing units 102, or it may be installed remotely or otherwise located outside of the service computing units 102.
[0032] In the example shown, storage 104 includes one or more storage computing units called storage controllers 138, and storage controllers 138 may include one or more servers or any other suitable computing units, such as any of the examples discussed above with respect to service computing unit 102. Each storage controller 138 may include one or more processors 142, one or more computer-readable media 144, and one or more communication interfaces 146. For example, processor 142 may correspond to any of the examples discussed above with respect to processor 116, computer-readable media 144 may correspond to any of the examples discussed above with respect to computer-readable media 120, and communication interface 146 may correspond to any of the examples discussed above with respect to communication interface 118.
[0033] Furthermore, the computer-readable medium 144 of the storage controller 138 may be used to store any number of functional components that can be executed by the processor 142. In many implementations, these functional components include instructions, modules, or programs that are executable by the processor 142 and, when executed, specifically program the processor 142 to perform operations that belong to the storage controller 138 as herein. The functional components stored in the computer-readable medium 144 may also include a storage management program 148, which may include one or more computer programs, applications, executable code, computer-readable instructions, or parts thereof. For example, the storage management program 148 may control or otherwise manage the storage of data 126 in a plurality of storage devices 150 connected to the storage controller 138.
[0034] In some cases, the storage device 150 may include one or more arrays of physical storage devices. For example, the storage controller 138 may control one or more arrays, such as to configure the arrays in a RAID (Redundant Array of Independent Disks) configuration or any other desired storage configuration. In some examples, the storage controller 138 may provide the service computing unit 102 with logical units based on physical devices and manage the data stored on the underlying physical devices. The storage device 150 may include any type of storage device, such as hard disk drives, solid-state devices, optical devices, magnetic tapes, or combinations thereof. Alternatively, in other examples, one or more of the service computing units 102 may function as storage controllers, and the storage controller 138 may be omitted.
[0035] In the example shown, the service computing unit 102 and storage 104 may be configured to function as a data storage system for the client device 108. A service application 122 on the service computing unit 102 may be run to receive and store data 124 from the client device 108 and / or to retrieve and provide the data 124 to the client device 108 thereafter. The system 100 may be scalable to increase or decrease the number of service computing units 102 within the system 100 as necessary to provide a particular operating environment. The storage capacity contained in storage 104 may also be scalable as necessary. Furthermore, the service computing unit 102 and client device 108 may include any number of separate computer systems, and the implementations disclosed herein are not limited to a specific number of computer systems or a specific hardware configuration.
[0036] In some examples, the stored data 126 may contain a large amount of data, at least a portion of which may be stored as a dataset 152. For example, dataset 152 may contain a collection of data and one or more corresponding data fields. The data fields may be associated with data in the dataset within a structured or semi-structured data resource, such as a table, comma-separated value (CSV) file, JSON, XML, Parquet, or other data structure. As an example, columns in a CSV file are fields that may be associated with, correspond to, or otherwise related to a particular dataset 152. Thus, the examples herein may tag data that is at least partially structured for automatic tagging of the structural parts of the data.
[0037] Furthermore, in the implementations of this specification, data fields or data files may be classified and represented by one or more relevant classifications of metadata 135 that may be included in storage 104 to provide a data catalog. For example, metadata 135 may include metadata relating to each data file or other dataset 152 stored in stored data 126.
[0038] Glossary 128 may be a tree data structure containing classifications (tags) and other information for defining the characteristics of stored data 126 and metadata 135. In some examples, the terms “classification” and “tag” may be used interchangeably. For example, suppose a given data field is “classified” as a social security number. This data field may also be said to be “tagged” as a social security number, and the tag could be “social security number,” “SSN,” or similar.
[0039] Furthermore, Glossary 128 may allow user-provided annotations to be retained and included in Glossary 128 as part of its metadata content. These annotations can then be used to enable searching and data understanding. The implementation forms of tagging and annotation provision described herein can systematically evolve toward higher levels of accuracy. This allows Glossary 128 to be partially crowdsourced. In this way, Glossary 128 can be created in a bottom-up manner to incorporate and maximize user knowledge without burdening the user. Once Glossary 128 has a certain amount of content, it can be leveraged to enable users to perform more normalized and accurate tagging and annotation of data in storage.
[0040] The service application 122, as will be discussed further below, may include an algorithm executed by the processor 116 that can automatically identify target entities in the glossary 128 and data 126. For example, some terms in the glossary 128 may be merely sets of related words, while others may additionally indicate how the data is laid out in data 126. Partly based on determining which terms correspond to data records, this information may be used to perform resource-level data classification. Resource-level data classification allows users to map raw data to processed, easily understandable, real-world concepts, thereby bridging any operational gaps. This classification process also enables users to work with resources rather than simply fields, and provides context for performing context-driven field-level classification with a higher degree of accuracy by eliminating ambiguous and false-positive field classifications (e.g., wrong tags) that may be applied to stored data 126 using the determined context.
[0041] As an example, the algorithm executed by the service computing unit 102 may include accessing the glossary 128 and / or using other entity relation information available with respect to data 126 to automatically identify target entities in the glossary by ranking the glossary terms, resources, and / or tables based on the number of referenced relationships in data 126, as can be determined from the evidence graph. For example, the service computing unit 102 may first perform (or pre-perform) a context-free data classification of all fields. The initial classification stop may not be particularly accurate and may not represent the final classification result. The service computing unit 102 may then construct a weighted evidence graph that encodes the evidence from data 126 to determine that a particular term is a target entity term. After constructing the evidence graph, the service computing unit 102 can identify entity terms by using a PageRank algorithm to rank the nodes in the evidence graph and identifying any node with a rank score above a rank threshold as corresponding to a target entity. Additional details of the algorithm are discussed below, for example, with respect to Figure 2.
[0042] Furthermore, in some examples herein, fingerprints, namely tag fingerprints and field fingerprints, may be calculated for the datasets herein. In addition, tag fingerprints and field fingerprints for multiple datasets may be matched against each other to calculate a score. For example, a field fingerprint may be a fixed-size metadata artifact or other metadata data structure (also called a “field” or “column” in some examples) that can be generated for a dataset based on several data characteristics of the data in the dataset. A field fingerprint may be calculated for a column of data based on several data characteristics of the data, including, but not limited to, the top K most frequent values, Bloom filters, the top K most frequent patterns, the top K most frequent tokens, length distribution, minimum and / or maximum values, quantiles, cardinality, row count, null count, and numeric count. Furthermore, the aforementioned data characteristics are merely examples and may differ in actual implementations, at least partially depending on the data type of the data. A tag fingerprint may include one or more field fingerprints of representative data, such as aggregated fingerprints.
[0043] Fingerprints, namely field fingerprints and tag fingerprints, are configured so that multiple field fingerprints can be aggregated into a single tag fingerprint. For example, assuming that field F1 is represented by fingerprint FP1 and field F2 is represented by fingerprint FP2, the aggregate FP of these two fingerprints 12=FP1+FP2 can represent both fields F1 and F2. This feature of fingerprints in this specification provides the ability to accumulate both supporting and contradictory fingerprints obtained through the curation process in tag fingerprints. In some examples, field fingerprints may be fixed-size probabilistic models of the corresponding datasets, regardless of the size of the datasets. Furthermore, in some cases, field fingerprints may include one or more bitmaps representing at least a portion of the data. Since fingerprints in this specification can be combined (aggregated) into a single aggregated fingerprint, a single aggregated fingerprint may represent multiple datasets in a single classification model. Thus, the examples in this specification employ fingerprint-based tagging with structured data.
[0044] System 100 is not limited to the specific configuration shown in Figure 1. This configuration is included for illustrative and descriptive purposes only. Various examples herein may utilize a variety of hardware components, software components, and combinations of hardware and software components configured to perform the processes and functions described herein. In addition, in some examples, the hardware components described herein may be virtualized. For example, some or all of the service computing units 102 may be virtual machines running on one or more hardware processors 116 or a portion thereof, and / or other service computing units 102 may be separate physical computing units, or configured as separate physical computing units or virtual machines on the same physical computing unit. Many other hardware and software configurations will be apparent to those skilled in the art who have an interest in the disclosure herein. Accordingly, the scope of the examples disclosed herein is not limited to a specific set of hardware, software, or combination thereof.
[0045] Figure 2 is a flowchart illustrating an exemplary process 200 in several implementation forms. A process is shown as a collection of blocks in a logical flowchart, representing a set of operations, some or all of which may be implemented in hardware, software, or a combination thereof. In a software context, a block may represent a computer executable instruction stored in one or more computer-readable media, which, when executed by one or more processors, programs the processors to perform the operations mentioned. Generally, computer executable instructions include routines, programs, objects, components, data structures, and similar entities that perform a specific function or implement a specific data type. The order in which the blocks are described should not be interpreted as limiting. Any number of blocks described can be combined in any order and / or in parallel to implement a process or an alternative process, and not all blocks need to be executed. For the purposes of this discussion, processes are described with reference to the environments, frameworks, and systems described in the examples herein, but processes may be implemented in a variety of other environments, frameworks, and systems. For example, process 200 may be executed by the service computing unit 102 or one or more other suitable computing units, such as by the execution of service application 122. Thus, through the execution of service application 122, the computing unit may determine one or more target entities based on at least the following processes:
[0046] In step 202, the computing unit may receive an instruction or other trigger to identify a target entity in the glossary and / or organizational data. For example, the user may send an instruction via the client device 108 to the computing unit to perform a process 200 to identify a business entity in the glossary or data, such as the dataset 152 discussed above with respect to Figure 1.
[0047] In 204, the computing device may access the glossary 128. Additionally, if available, the computing device may access any existing entity relationship metadata that may be included in the metadata 135. For example, some types of data may include a database schema or the like that indicates relationships between various data resources.
[0048] In 206, the computing device may perform a field-level classification of the data 126 to obtain field tags for the data. For example, the service application 122 may be executed to perform an automatic inventory of all files or other data sets 152, and this inventory may capture the lineage, format, and profile of each file or other data set 152 and may include storing this information in the metadata repository 135. In some cases, the system 100 may infer the meaning of values within a field of a data set 152 by analyzing other data sets 152 that have field names with meaningful tags and / or that are tagged with meaningful tags by the user. For a given data classification (tag) "T", the system may access or generate a feature set "Ω T " for the tag classification data model "D T " for classification T and a significance vector "A T " for the features of the classification model D T ". For example, for the tag classification model D T for classification T, the feature set Ω T may include, for example, a plurality of features c i related to the data of classification T, for example, Ω T ={c1,c2,...c n} where some exemplary data features may include {field_name, data_value, pattern,...}, and specific features depend at least in part on the data itself.
[0049] Furthermore, the tag classification model D T for classification T is DT The above feature c i For example, c i (D T This may include calculating the following, which may be calculated based on the selected reference field (seed) and the curation results (accepted and rejected classifications). For example, classification model D T This may enable the classification and discovery of data within a large dataset classified using glossary 128. A tag classification model D for classification T for individual datasets. T This may be calculated based on selected reference fields (also referred to herein as “seeds”) and curation results (accepted and rejected classifications). In some examples, the tag classification model 127 may include aggregated tag fingerprints 132 for the reference data. In addition, tag classification model D T This may include other data that may contain feature sets based on tag fingerprints and other metadata that may be useful for matching the classification model with field classification models on other datasets. Furthermore, tag classification model D T This may be updated based on curation input received from the user. As mentioned above, tag classification model D T This is the field classification model D F It could be similar to (i.e., both use fingerprints of the same size data), which would allow matching of each fingerprint, matching of each classification model, and matching of data based on matching of 152 different datasets.
[0050] In addition, each tag classification model D T The significance vector may indicate the significance of the similarity between the features of the classified data and the features of the unclassified data. Therefore, the significance vector may, for example, A T ={a1,a2,...a n} It can also be expressed as follows, where a i is the feature c iThis demonstrates the significance of the similarity regarding [the subject]. Furthermore, it shows the significance of the field classification model D. F Given a known field "F" that is classified by a certain factor, the system may calculate a confidence score for whether F should be classified as T, for example, whether the data corresponding to F should be classified the same as the data corresponding to T. To assist in this decision, the system uses a feature similarity score vector "W F,T ",for example, W F,T ={sim_c1(D T ,D F ),sim_c2(D T ,D F ),...sim_c n (D T ,D F )} You may decide that, and this is, W F,T ={s1,s2,...s n} It may be simplified as, here, s i =sim_c i (D T ,D F ) For example, the similarity score vector may be calculated as a numerical value, and the higher the numerical value, the greater the similarity between the respective features of F and T. Based on the feature similarity score vector, the system calculates a similarity score "Score(F,T)" between the features of the classified and unclassified data, for example, Score(F,T)=W F,T ×A T = a1 × s1 + a2 × s2 + ... + a n ×s n You may decide that.
[0051] One of the goals of the classification techniques described herein is to achieve a higher level of confidence based on the similarity score (F,T) calculated above by continuously and iteratively improving the similarity between data classified by system 100, for example. TThis may be updated based on updates to other data such as tag fingerprints and collected statistics. The update may be performed in a feature-specific manner for the two classes of features, namely supporting and contradictory features. Furthermore, significance vector A T This affects the confidence level of classification relevance. For example, tag classification model D T And different updates to the similarity score (F,T) are performed based on accepted and rejected relevances and significance vectors for supporting and contradictory features, for example a for supporting features i =f_accepted(av,score,reward), and for contradictory features, a i =f_rejected(av,score,penalty)
[0052] In 208, the arithmetic unit may generate the evidence graph by performing the operations of blocks 210 to 220.
[0053] In 210, the processing unit may select a glossary target entity parent tag from the glossary for processing. An example of a glossary parent tag is described later with respect to Figure 3, for example. For example, a glossary parent tag may be associated with a business entity or another target entity.
[0054] In step 212, the processing unit may select resources for processing from data 126, including field tags associated with the resources determined in step 206. An example of a selected resource and associated field tags will be described later, for example, with respect to Figure 3.
[0055] In step 214, the processing unit may compare the selected glossary parent tag with the selected resource to determine whether the number of matches between the child tags of the selected parent tag and the child field tags of the selected resource exceeds the matching threshold. If the number of matches exceeds the matching threshold, the process proceeds to step 216. Otherwise, the process proceeds to step 220. An example of comparing a glossary parent tag with a field tag of the selected resource is described later, for example, with respect to Figure 3.
[0056] In 216, if the match exceeds a threshold and if nodes for the selected glossary parent tag and / or selected resource still do not exist in the evidence graph, the arithmetic unit may create nodes for the glossary parent tag and / or selected resource, respectively, in the evidence graph.
[0057] In 218, the computing unit may create directed edges in the evidence graph from resource nodes to glossary parent tag nodes. In some examples, directed edges are also weighted based on an importance metric that can be determined for the relationship between two nodes. An example of determining edge weighting is discussed below, for example, with respect to Figure 4.
[0058] In 220, the arithmetic unit may select the next resource to compare with the selected glossary parent tag. Once all resources have been compared with the selected glossary parent tag, the next glossary parent tag may be selected for processing, and the system may repeat the process of comparing the tags of all resources with the currently selected glossary parent tag. This process may continue until all glossary parent tags in glossary 128 have been compared with the field tags of all data resources in data 126.
[0059] In 222, once all data resources and all parent tags in the glossary have been processed, the computing unit may use the PageRank algorithm to determine the highest-ranked node in the evidence graph. The PageRank algorithm, by its nature, considers both evidence and refutation when determining the rank of each node in the evidence graph.
[0060] In 224, the computing unit may identify nodes whose rank score, determined by the PageRank algorithm, exceeds the rank threshold.
[0061] In step 226, the computing unit may determine whether the rank score of at least one node in the evidence graph exceeds the rank threshold. If so, the process proceeds to step 228. Otherwise, the process proceeds to step 230.
[0062] In 228, the computing unit may identify nodes that exceed a rank threshold as corresponding to target entities, such as business entities. In particular, the tags of nodes with rank scores exceeding the threshold correspond to target entities. As mentioned above, identifying target entities, such as business entities (e.g., business-related terms or similar), enables more powerful searches in the data catalog. For example, identifying business entities within a glossary can be used to perform resource-level data classification. This level of data classification allows users to map their raw data to processed, easily understandable and / or recognizable real-world concepts, filling operational gaps and enabling resource searches based on business entity tags. Furthermore, based on business entity identification, the catalog can provide context for other downstream cataloging tasks, such as enabling the disambiguation of ambiguous tags. As an example, three-digit numbers, which are inherently anonymous and therefore potentially tagged many times, can be associated with business entity tags such as CVVs to provide context and limit the tags associated with these numbers. Thus, business entity identification can also function as context for more accurately classifying data at the field level. Furthermore, without automated techniques for discovering business entities as described herein, users would have to continue manually identifying business entity terms, which is not reasonably scalable for large databases or other large datasets.
[0063] In 230, if the PageRank algorithm results indicate that no node in the evidence graph exceeds the rank threshold, the computing unit may send a communication indicating that the data does not contain any target entities identified and reflected in the glossary.
[0064] Figure 3 shows an example 300 of comparing a glossary target entity parent tag with a selected resource, relating to several implementations. For example, the parent tag may have been added to the glossary previously during its creation by a user, algorithm, machine learning classifier, or similar. As discussed above with respect to Figure 2, when constructing the evidence graph, the service calculator may compare the selected glossary parent tag with the field tag determined for the selected resource to determine whether the number of matches between the selected glossary parent tag and the selected resource exceeds a matching threshold. In the example shown, we assume that the service calculator compares the selected glossary parent tag 302 "Customer" with the field tag 304 of the resource having the resource name "Table C". In this example, the glossary parent tag 302 has multiple glossary child tags 306, namely "Customer ID", "Customer Name", "Store ID", "Account Number", and "Address". Furthermore, the field tag 304 also has multiple child tags 308, namely "Customer ID", "Customer Name", "Sales ID", "Account Number", and "Address". Consequently, based on the comparison, the service computing unit may determine that the store ID glossary child tag 306(1) does not match any of the resource child tags 308, and that the sales ID child tag 308(1) does not match any of the glossary child tags 306. Therefore, the intersections of the child tag 306 of the glossary parent tag 302 with the child tag 308 of the field tag 304 are four out of a total of five glossary child tags, and thus the intersections are 80 percent or 0.8. Furthermore, in this example, we assume that the matching threshold is 70 percent or 0.7.
[0065] As shown in 310, if the number of intersections (matches) exceeds the match threshold and therefore the nodes for the selected glossary parent tag 302 and / or the selected resource 304 still do not exist in the evidence graph, the service computing unit may create the node 312 for the glossary parent tag and / or the node 314 for the selected resource in the evidence graph, respectively. In addition, a new directed edge 316 from the resource node 314 to the glossary parent tag node 312 is added to the evidence graph.
[0066] Figure 4 shows an example 400 of creating a portion of the evidence graph based on relationships determined from database schemas for several implementation forms. For example, suppose a portion of the database schema 402 includes a product review table 404 and a product table 406. Furthermore, suppose there is a primary key-foreign key (PK-FK) relationship between the product review table 404 and the product table 406. For example, suppose the PK 408 of the product table 406 is "product ID" and the FK1 410 of the product review table 404 is also "product ID". Consequently, based on at least this relationship, a portion of the evidence graph 412 may be generated to include a product review node 414 corresponding to the product review table 404 and a product node 416 corresponding to the product table 406. Furthermore, based on the PK-FK relationship, a directed edge 418 may be established between the product review node 414 and the product node 416.
[0067] In addition, in some examples, weights may be associated with some or all of the edges in the evidence graph. For example, in the example in Figure 4, a weight of 1.0 may be applied to the edge determined based on the database schema, while in the example in Figure 3, a weight of 0.8 may be applied to edge 316. For example, in the example in Figure 3, there was only an 80 percent match, so the relevance in the example in Figure 3 may be perceived as less confident than in the example in Figure 4. In another example, a first weight may be applied to the edge derived from the entity relationship diagram schema, and a second different weight may be applied to the edge determined from the intersection of matching tags.
[0068] Figure 5 shows an exemplary evidence graph portion 500 relating to several implementation forms. In this example, it is assumed that the evidence graph portion 500 contains three nodes: node 502 of resource X, node 504 of the first parent business entity node, and node 506 of the second parent business entity node. Furthermore, a first directed edge 508 extends from node 502 to node 504, and a second directed edge 510 extends from node 502 to node 506.
[0069] For example, suppose the resource X field tag matches the tags of the first parent business entity node 504 and the second parent business entity node 506 by an amount exceeding the matching threshold. Thus, when the page ranking algorithm is run on the evidence graph containing the portion 500, the directed edge 508 acts as evidence for the directed edge 510, and conversely, the directed edge 510 acts as evidence for the directed edge 508. Thus, the implementations herein automatically consider counter-evidence when performing node ranking for the identification of target entities through the method of constructing the evidence graph and through the use of the page ranking algorithm.
[0070] Figure 6 shows a constructible exemplary evidence graph 600 relating to an implementation of this specification. The evidence graph 600 presents a set of referencing relationships from each resource to each glossary tag. The evidence graph 600 shows evidence that a given resource maps to a glossary tag, and therefore provides evidence that one or more highest-ranked glossary tags are business entities after PageRank processing has been performed.
[0071] In the example shown, the evidence graph 600 includes multiple nodes 602(1) to 602(62) and multiple directed edges 604 connecting the various nodes 602. As discussed above with respect to Figures 2 to 5, for example, each node 602 may represent a parent business entity node or a field tag associated with a data resource. Thus, each directed edge 604 may represent the relationship between each field tag associated with a data resource and the corresponding business entity tag.
[0072] Figure 7 shows an exemplary output 700 when the PageRank algorithm is applied to the evidence graph of Figure 6, relating to several implementations. In this example, the PageRank algorithm is performed to rank the values of individual nodes 602(1) to 602(62) based on the number of other nodes 602(1) to 602(62) that refer to each individual node 602(1) to 602(62). In this example, as shown in 702, node 602(48) from evidence graph 600 has the highest rank score as determined by the PageRank algorithm. In this example, the score is "0.095" (rounded to three decimal places). As an example, assume that the rank score threshold is set to 0.090 by the user. Consequently, because the score of node 602(48) exceeds the rank threshold, the tag associated with node 602(48) is identified as a target entity, for example, a business entity in some examples.
[0073] Furthermore, in the example shown, the second highest-ranked node is node 602(62), which has a rank score of "0.085" (rounded to the third decimal place). Based on this rank score being below the rank score threshold of 0.090, node 602(62) is not identified as having the target entity tag. Similarly, none of the other nodes 602 in evidence graph 600 have a rank score above the rank score threshold.
[0074] Figure 8 shows an exemplary user interface 800 for managing the glossary of terms in this specification relating to several implementation forms. For example, the user interface 800 may be provided by a service application 122 to one or more client devices 108, causing a client application 136 to display the user interface 800 on a display associated with the client device 108. In this example, the user interface 800 includes a list 802 of top-level tag domains on the left side. In addition, as shown in 804, a manufacturing (MFG) tag has been selected by the user and is therefore highlighted.
[0075] Furthermore, based on the selection of the MFG tag, the Bill of Materials (BOM) tag is presented to 806. For example, the BOM tag is a child tag of the MFG tag and is the parent tag of several other tags, such as the description tag, level tag, manufacturer tag, manufacturer part name tag, and manufacturer part number tag, as shown in 808, each of which may be considered a child tag of the parent tag BOM. In addition, in this example, the BOM tag is selected by the user, and as a result, additional information related to the selected tag is presented to the user interface 800, as shown in 810, 812, and 814. For example, the description tag may be edited in 812 to provide a description of the business entity BOM. Furthermore, in this example, the BOM tag and its child tags are designated as business entities, as shown in 816.
[0076] In some examples herein, the glossary is not modified as a result of identifying business entities within it, but the user interface 800 can present separate visual information containing only the glossary terms identified as belonging to business entities. From this visual information, a search function may be employed to search for data resources by business entity. In addition, in some examples, a feedback loop may be implemented based on discovered business tags and may be used to deambiguate ambiguous / anonymous tags based on the business entity to which the tagged data belongs. Thus, the examples herein may identify mistagged data and correct the tags associated with the mistagged data based on their relevance to identified business entity tags.
[0077] The exemplary processes described herein are merely examples of processes provided for the purposes of discussion. Many other variations will be apparent to those skilled in the art based on the disclosure herein. Furthermore, while the disclosure herein provides several examples of preferred frameworks, architectures, and environments for performing the processes, the implementations herein are not limited to the specific examples shown and discussed. Moreover, this disclosure provides various exemplary implementations, as described and illustrated in the drawings. However, this disclosure is not limited to the implementations described and illustrated herein and may be extended to other implementations known or to be known to those skilled in the art.
[0078] The various instructions, processes, and techniques described herein may be considered in the general context of computer executable instructions, such as program modules stored on computer-readable media and executed by the processors herein. Generally, program modules include routines, programs, objects, components, data structures, executable code, etc., for performing a specific task or implementing a specific abstract data type. These program modules and similar entities may be executed as native code, or they may be downloaded and executed on a virtual machine or other just-in-time compilation execution environment. Typically, the functionality of program modules may be combined or distributed as desired in various implementation forms. Implementations of these modules and techniques may be stored on computer storage media or transmitted via some form of communication medium.
[0079] While the subject matter is described using language specific to structural features and / or methodological actions, it should be understood that the subject matter defined in the attached claims is not necessarily limited to the specific features or actions described. Rather, specific features and actions are disclosed as exemplary forms that implement the claims.
Claims
1. It is a system, It includes one or more processors configured to perform operations using executable instructions, The aforementioned operation is, It receives a tree data structure representing multiple tags arranged in a hierarchy that indicates business-level abstraction, and Perform field-level classification of the data to obtain field tags related to the data, This involves generating a graph data structure, The field tags of the aforementioned data are matched with a set of child tags of the tree, and a first node of the graph data structure is created for at least the parent tag of the set of child tags, and a second node of the graph data structure is created for the resource in the aforementioned data corresponding to the field tag. Based on the amount of matching between the field tag and the set of child tags or at least one of the entity relationships, a directed edge is created in the graph data structure from the second node to the first node, The graph data structure is generated by repeatedly performing the matching and creation processes for multiple parent tags and multiple resources within the data. By generating, The ranking algorithm is executed in the graph data structure to determine at least one of the first nodes having a rank exceeding a rank threshold. A system that includes this.
2. The system according to claim 1, wherein matching the field tags of the data with the set of child tags of the tree is determined to determine that the amount of matching exceeds a matching threshold.
3. The system according to claim 1, wherein the operation further includes applying weights to one or more of the directed edges of the graph data structure, the weights affect the ranking score of the first node pointed to by the weighted directed edges during the execution of the ranking algorithm.
4. The system according to claim 1, wherein the operation further includes designating a parent tag corresponding to the at least one first node as a business entity.
5. The system according to claim 4, wherein the operation further includes designating one or more child tags of the parent tag as business entities.
6. The system according to claim 1, further comprising a database schema, wherein determining the graph data structure further comprises determining the relationships between resources in the database schema, the third node of the graph data structure corresponding to one of the resources in the schema, and the fourth node corresponding to another of the resources in the schema.
7. The system according to claim 6, wherein determining the relationships between the resources in the schema includes identifying primary key-foreign key relationships between the resources in the schema.
8. The system according to claim 1, wherein the operation further comprises removing at least one false positive field tag so as not to be associated with the data, based on a tag associated with the at least one first node having the rank exceeding the rank threshold.
9. The ranking algorithm of the system according to claim 1, wherein the ranking algorithm takes into account the evidence and disprove of the parent tag.
10. The system according to claim 1, further comprising transmitting user interface information to a client computing device to cause the client computing device to present information relating to at least one of the determined first nodes on a user interface on a display associated with the client computing device.
11. The system according to claim 1, wherein performing the field-level classification of the data includes determining similarity scores between features of already classified data and features of unclassified data.
12. One or more processors receive a tree data structure representing multiple tags arranged in a hierarchy that indicates business-level abstraction, Perform field-level classification of the data to obtain field tags related to the data, This involves generating a graph data structure, The field tags of the aforementioned data are matched with a set of child tags of the tree, and a first node of the graph data structure is created for at least the parent tag of the set of child tags, and a second node of the graph data structure is created for the resource in the aforementioned data corresponding to the field tag. Based on the amount of matching between the field tag and the set of child tags or at least one of the entity relationships, a directed edge is created in the graph data structure from the second node to the first node, The graph data structure is generated by repeatedly performing the matching and creation processes for multiple parent tags and multiple resources within the data. By generating, The ranking algorithm is executed in the graph data structure to determine at least one of the first nodes having a rank exceeding a rank threshold. A method that includes this.
13. The method according to claim 12, wherein matching the field tags of the data with the set of child tags of the tree is determined to be greater than the amount of matching threshold.
14. One or more non-temporary computer-readable media for storing instructions, wherein the instructions are configured to cause the one or more processors to perform an operation when executed by them. The aforementioned operation is, It receives a tree data structure representing multiple tags arranged in a hierarchy that indicates business-level abstraction, Perform field-level classification of the data to obtain field tags related to the data, This involves generating a graph data structure, The field tags of the aforementioned data are matched with a set of child tags of the tree, and a first node of the graph data structure is created for at least the parent tag of the set of child tags, and a second node of the graph data structure is created for the resource in the aforementioned data corresponding to the field tag. Based on the amount of matching between the field tag and the set of child tags or at least one of the entity relationships, a directed edge is created in the graph data structure from the second node to the first node, The graph data structure is generated by repeatedly performing the matching and creation processes for multiple parent tags and multiple resources within the data. By generating, The ranking algorithm is executed in the graph data structure to determine at least one of the first nodes having a rank exceeding a rank threshold. One or more non-temporary computer-readable media, including [the specified text].
15. One or more non-temporary computer-readable media according to claim 14, wherein matching the field tags of the data with the set of child tags of the tree is determined to determine that the amount of matching exceeds a matching threshold.