Entity discovery based on glossary data

The system uses a tree and graph data structure with a PageRank algorithm to automatically identify business entities in large datasets, improving data cataloging efficiency and accuracy.

JP2025527780AActive Publication Date: 2025-08-22HITACHI VANTARA LLC
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2025512134
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2022-08-26
Publication Date
2025-08-22
Estimated Expiration
2042-08-26

AI Technical Summary

Technical Problem

Existing systems struggle to efficiently identify and categorize business entities within large datasets, requiring manual effort and lacking scalability.

Method used

A system that employs a tree data structure and graph data structure to automatically identify target entities by comparing field tags with child tags, using a ranking algorithm like PageRank to determine the most relevant entities.

Benefits of technology

Automatically identifies business entities within large datasets, enhancing data cataloging by providing context for precise field-level categorization and disambiguating ambiguous tags, enabling more powerful searches and resource-level data classification.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025527780000001_ABST
    Figure 2025527780000001_ABST
Patent Text Reader

Abstract

In some examples, the system receives a tree data structure representing tags arranged in a hierarchy representing a business level of abstraction. 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 to a set of child tags in the tree. The system creates graph nodes for parent tags of the set of child tags and creates nodes for data resources corresponding to the compared field tags. Based on the comparison and / or one or more entity relationships, the system creates directed edges from resource nodes to 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.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to the technical field of storing, sorting, and accessing data, such as 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. In this way, a data catalog may enable an organization to derive more value from its data assets. Metadata in a data catalog may include data that describes the data assets or data that otherwise provides information about the data assets, such as by making the data assets easier to find, evaluate, and / or understand. For example, a data catalog may help users efficiently find the most appropriate data for an analysis or other desired purpose.

[0003] Additionally, a glossary may be associated with a data catalog. A glossary may include a collection of terms, phrases, concepts, etc. that define characteristics of an organization's data. For example, when creating, augmenting, or otherwise maintaining a glossary, it is typically desirable for the glossary to be well-organized, searchable, and structured to allow users to browse data while providing consistency for data governance. In this manner, a data catalog may provide an inventory of an organization's data assets, and a glossary may define and contextualize the organization's data assets. Summary of the Invention [Means for solving the problem]

[0004] Some examples herein include a system that receives a tree data structure representing tags arranged in a hierarchy that represents a business level of abstraction. The system may perform 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 to a set of child tags in the tree. The system creates graph nodes for parent tags of the set of child tags and creates nodes for data resources corresponding to the compared field tags. Based on the amount of match between the child tags in the tree and the field tags identified in the resource 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 explanation of the drawings]

[0005] The detailed description is provided with reference to the accompanying drawings, in which the leftmost digit(s) of a reference number identifies the figure in which the reference number first appears. Use of the same reference number in different figures indicates similar or identical items or features.

[0006] [Figure 1] FIG. 1 illustrates an example architecture of a system capable of identifying target entities within data according to some implementations.

[0007] [Figure 2] FIG. 2 is a flow diagram illustrating an example process for identifying a target entity according to some implementations.

[0008] [Figure 3] FIG. 3 illustrates an example of comparing glossary target entity parent tags with selected resources according to some implementations.

[0009] [Figure 4] FIG. 4 illustrates an example of creating a portion of an evidence graph based on relationships determined from a database schema according to some implementations.

[0010] [Figure 5] FIG. 5 illustrates an example portion of an evidence graph according to some implementations.

[0011] [Figure 6] FIG. 6 illustrates an exemplary evidence graph that can be constructed according to implementations herein.

[0012] [Figure 7] FIG. 7 illustrates an example output of applying the PageRank algorithm to the evidence graph of FIG. 6 according to some implementations.

[0013] [Figure 8] FIG. 8 illustrates an exemplary user interface for managing the glossary of the present specification according to some implementations. DETAILED DESCRIPTION OF THE INVENTION

[0014] Some implementations herein are directed to techniques and arrangements for employing a glossary and / or entity relationships available within an organization's data to automatically identify target entities within the glossary. Examples herein may rank glossary terms, resources, and / or tables based on the number of referenced relationships within the data, as may be represented in an evidence graph. In particular, the top-ranked nodes in the evidence graph may correspond to the target entities. Tagging may be done automatically, and correspondence between nodes may be determined based on intersection scores between tag names and glossary tag names.

[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, etc. Furthermore, the target entities may be business entities and may correspond to those glossary elements that exceed a PageRank threshold. Thus, implementations herein can identify target entities using the techniques described herein rather than performing these tasks manually or using hard-coded rules. Identification of target entities is performed automatically based on glossary definitions and mappings to data.

[0016] In some examples, to identify target entities within the organization's data and glossary, the system may first perform a context-free, rough data classification of all fields. For example, this initial round of classification may not be particularly accurate and may not represent the final classification results. The system may construct a weighted evidence graph that encodes evidence from the organization's data whose terms correspond to those of the target entity. Details of constructing the evidence graph are discussed further below. Furthermore, following construction of the evidence graph, the system may use a variation of the PageRank algorithm to rank nodes in the evidence graph to identify entity terms and select one or more of the highest-ranked results as the target entity.

[0017] As a specific example, assume that a data catalog user wants to identify business entities that exist within an organization's data and glossary. In this example, business entities are conceptual-level abstractions that may be reflected in data layouts, such as in terms of tag groupings within data resources or entity-relationship diagram schemas. For example, identifying business entities within very large amounts of data is a non-trivial task and cannot realistically be achieved with the human brain or pen and paper. Additionally, identifying business entities within an organization's data adds value to a data catalog solution. In particular, identifying business entities within a glossary allows an organization to categorize data at the resource level, also providing context for more precise field-level data categorization. Identifying business entities in this way enables more powerful searches in the data catalog, such as enabling resource searches based on business entity tags.

[0018] Additionally, identifying business entities within a data catalog allows the data catalog to provide context for other downstream cataloging tasks, such as disambiguating ambiguous tags. As an example, a three-digit number may potentially be tagged many times because it is inherently anonymous, but if a specific three-digit number is associated with an identified business entity, such as a credit card transaction, this can be used to provide context to the three-digit number and thus avoid associating ambiguous tags with the specific three-digit number, such as associating the three-digit number only with the CVV (card verification value) number tag in this example. In this way, the identified business entity can serve as context for more precise field-level categorization of other data.

[0019] For purposes of discussion, some example implementations are described in the context of one or more service computing devices configured to communicate with one or more storage devices and one or more client devices and identify large amounts of data and / or target entities within a corresponding glossary. However, implementations herein are not limited to the specific examples provided and may be extended 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] 1 illustrates an example architecture of a system 100 capable of identifying target entities within data according to some implementations. The system 100 includes one or more service computing devices 102 that can communicate with one or more storage devices 104 through one or more networks 106. Additionally, the service computing device 102 may be capable of communicating over the one or more networks 106 with multiple client devices 108(1)-108(m), such as user devices or other devices, that can communicate with the service computing device 102. For example, the system 100 may store, categorize, and manage data for the client devices 108, e.g., as a data storage, data catalog, data repository, database, data warehouse, or the like.

[0021] In some examples, service computing device 102 may include multiple physical servers or other types of computing devices, which may be embodied in various ways. For example, in the case of a server, some of the programs, applications, modules, other functional components, and data storage may be implemented on the server, e.g., in a cluster of servers such as a server farm or data center, a cloud-hosted computing service, etc., although other computer architectures may additionally or alternatively be used. In the illustrated example, each service computing device 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 device 102 is provided, other service computing devices 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 single or multiple arithmetic units or multiple processing cores. 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, processor 116 may be one or more hardware processors and / or logic circuits of any suitable type that are specifically programmed or configured to execute the algorithms and processes described herein. Processor 116 may be configured to fetch and execute computer-readable instructions stored on computer-readable medium 120, which can program processor 116 to perform the functions described herein.

[0023] 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, computer-readable medium 120 may include, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, optical storage, solid-state storage, magnetic disk storage, magnetic tape, storage arrays, network-attached storage, storage area networks, cloud storage, or any other medium that can be used to store desired information and that can be accessed by a computing device. Depending on the configuration of service computing device 102, computer-readable medium 120 may be tangible, non-transitory media, where non-transitory computer-readable media is referred to as excluding media such as energy, carrier signals, electromagnetic waves, and / or the signals themselves. In some cases, computer-readable medium 120 may be co-located with service computing device 102; in other examples, computer-readable medium 120 may be separate or partially remote from service computing device 102.

[0024] The computer-readable medium 120 may be used to store any number of functional components executable by the processor 116. In many implementations, these functional components include instructions, applications, or other programs executable by the processor 116 that, when executed, specifically program the processor 116 to perform the operations attributed to the service computing device 102 herein. The functional components stored on the computer-readable medium 120 may include a service application 122, which may include one or more computer programs, applications, executable code, computer-readable instructions, or portions thereof. For example, service application 122 may be executed by processor 116 to perform various other data classification, data storage, and retrieval tasks, such as to identify target entities within data and interact with client device 108, to respond to instructions 123 from the client device, to store data 124 for the client device in storage 104, to retrieve data 124 for the client device 108, and / or to provide the client device 108 with access to stored data 126 stored in storage 104. Thus, service application 122 may configure service computing device 102 to provide one or more services to client computing device 108. In either case, functional components may be stored in a storage portion of computer-readable medium 120, loaded into a local memory portion of computer-readable medium 120, and executed by one or more processors 116.

[0025] Additionally, computer-readable medium 120 may store data and data structures used to perform the functions and services described herein. For example, computer-readable medium 120 may store data, metadata, data structures, and / or other information generated and / or used by service application 122. For example, as discussed further below, service computing device 102 may store and manage glossary 128, evidence graph 130, and ranking information 132. Additionally or alternatively, glossary 128, evidence graph 130, and / or ranking information 132 may be stored in storage 104. Furthermore, glossary-to-business-entity mapping 131 may be stored in computer-readable medium 120 and / or storage 104.

[0026] Each service computing device 102 may also include or maintain other functional components and data, which may include an operating system, programs, drivers, etc., as well as other data used or generated by the functional components. Furthermore, service computing device 102 may include many other logical, programmatic, and physical components, of which the foregoing are merely examples relevant to the discussion herein. Additionally, many other software and / or hardware configurations will be apparent to those skilled in the art having the benefit of this disclosure, and the foregoing are merely examples provided for purposes of discussion.

[0027] The communication interface 118 may include one or more interfaces and hardware components for enabling communication with various other devices, such as on the network 106. Accordingly, the communication interface 118 may include or connect to one or more ports that provide a connection to one or more networks 106 for communication with the storage 104 and client devices 108. For example, the communication interface 118 may enable communication over one or more of a LAN (local area network), a WAN (wide area network), the Internet, a cable network, a cellular network, a wireless network (e.g., Wi-Fi) and a wired network (e.g., Fibre Channel, optical fiber, Ethernet), a direct connection, short-range communications such as BLUETOOTH®, and the like, as additionally enumerated elsewhere herein. Additionally, to increase fault tolerance, the communication interface 118 of the service computing device 102 may include redundant network connections to each of the networks 106 to which the service computing device 102 is connected.

[0028] The 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 near-field communication such as BLUETOOTH®, a wired network including Fibre Channel, optical fibre, Ethernet, or any other such network, a direct wired connection, or any combination thereof. Thus, the network 106 may include wired and / or wireless communication technologies. The components used in the network 106 may depend, at least in part, on the type of network, the selected environment, desired performance, and the like. Protocols for communicating over the network 106 herein are well known and will not be discussed in detail. Thus, the service computing device 102 can communicate with the storage 104 and the client devices 108 over the 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, the client device 108 may generate data 124 that is transmitted 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, the 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 the 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, the client device 108 may include an organization's server that can generate, aggregate, receive, or otherwise provide data 124 to the service computing device 102 for storage and cataloging.

[0030] Each client device 108(1)-108(m) may access one or more of the service computing devices 102 through a respective instance of a client application 136(1)-136(m), such as a browser, web application, or other type of application, executing on the client device 108. For example, the 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 the service application 122 on the service computing device 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 having the benefit of the disclosure herein.

[0031] Storage 104 may provide storage capacity for system 100 for storing data, such as file data or other object data, which may include data content and metadata about the content. Storage 104 may include a storage array, such as a network-attached storage (NAS) system, a storage area network (SAN) system, cloud storage, a storage virtualization system, or the like. Furthermore, storage 104 may be co-located with one or more of service computing devices 102, or may be remotely or otherwise external to service computing device 102.

[0032] In the illustrated example, storage 104 includes one or more storage computing devices referred to as storage controllers 138, which may include one or more servers or any other suitable computing devices, such as any of the examples discussed above with respect to service computing device 102. Storage controllers 138 may each 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 medium 120, and communication interface 146 may correspond to any of the examples discussed above with respect to communication interface 118.

[0033] Additionally, the computer-readable medium 144 of the storage controller 138 may be used to store any number of functional components executable by the processor 142. In many implementations, these functional components include instructions, modules, or programs executable by the processor 142 that, when executed, specifically program the processor 142 to perform the operations attributed to the storage controller 138 herein. The functional components stored on the computer-readable medium 144 may include a storage management program 148, which may include one or more computer programs, applications, executable code, computer-readable instructions, or portions thereof. For example, the storage management program 148 may control or otherwise manage the storage of the stored data 126 in multiple storage devices 150 connected to the storage controller 138.

[0034] In some cases, storage device 150 may include one or more arrays of physical storage devices. For example, 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, storage controller 138 may present logical units based on physical devices to service computing device 102 and manage data stored on the underlying physical devices. Storage device 150 may include any type of storage device, such as hard disk drives, solid-state devices, optical devices, magnetic tape, etc., or combinations thereof. Alternatively, in other examples, one or more of service computing devices 102 may function as storage controllers, and storage controller 138 may be omitted.

[0035] In the illustrated example, the service computing device 102 and storage 104 may be configured to function as a data storage system for the client devices 108. Service applications 122 on the service computing device 102 may execute to receive and store data 124 from the client devices 108 and / or subsequently retrieve and provide the data 124 to the client devices 108. The system 100 may be scalable to increase or decrease the number of service computing devices 102 in the system 100 as needed to provide a particular operating environment. The storage capacity included in the storage 104 may also be scalable as needed. Furthermore, the service computing device 102 and the client devices 108 may include any number of separate computer systems, and the implementations disclosed herein are not limited to a particular number of computer systems or a particular hardware configuration.

[0036] In some examples, stored data 126 includes a vast amount of data, at least a portion of which may be stored as a dataset 152. For example, a dataset 152 may include a collection of data and one or more corresponding data fields. The data fields may be associated with the data of the dataset in a structured or semi-structured data resource, such as a table, a comma-separated values ​​(csv) file, json, xml, parquet, or other data structure. As an example, a column in a csv file may be a field and may be associated with, correspond to, or otherwise associated with a particular dataset 152. In this manner, examples herein may tag at least partially structured data for automatic tagging of structural portions of data.

[0037] Additionally, in implementations herein, data fields or data files may be categorized and represented by one or more associated classifications of metadata 135 that may be included in storage 104 to provide a data catalog. For example, metadata 135 may include metadata about each data file or other data set 152 stored in data stores 126.

[0038] The glossary 128 may be a tree data structure that includes classifications (tags) and other information for defining characteristics of the stored data 126 and metadata 135. In some instances, the terms "classification" and "tag" may be used interchangeably. For example, assume a given data field is "classified" as a Social Security Number. This data field may also be "tagged" as a Social Security Number, and the tag may be "Social Security Number," "SSN," or the like.

[0039] Additionally, the glossary 128 may allow user-provided annotations to be maintained as part of the metadata content and included in the glossary 128. These annotations may then be used to enable search and data understanding. The tagging and annotation implementations described herein may systematically evolve toward higher and higher levels of precision, thereby allowing the glossary 128 to be partially crowdsourced. In this manner, the glossary 128 may be created bottom-up to capture and maximize user knowledge without burdening the user. Once the glossary 128 has some content, it may be leveraged to allow users to perform more normalized and accurate tagging and annotation of data in storage.

[0040] The service application 122 may include algorithms that can be executed by the processor 116 to automatically identify target entities within the glossary 128 and data 126, as discussed further below. For example, some terms in the glossary 128 may simply be a collection of related words, while other terms may additionally describe how the data is laid out in the data 126. Based in part 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 filling in any operational gaps. This classification process also provides context for performing context-driven field-level classification at a higher level of accuracy by allowing users to work with resources, as opposed to simply working in the field, and using the determined context to eliminate ambiguous and false-positive field classifications (e.g., incorrect tags) that may be applied to the stored data 126.

[0041] As an example, an algorithm executed by the service computing device 102 may include accessing the glossary 128 and / or using other entity relationship information that may be available for the data 126 to automatically identify a target entity within the glossary by ranking glossary terms, resources, and / or tables based on the number of by-reference relationships within the data 126 as may be determined from the evidence graph. For example, the service computing device 102 may first perform (or pre-perform) a context-free data classification of all fields. The initial classification stops may not be particularly accurate and may not be indicative of the final classification result. The service computing device 102 may then construct a weighted evidence graph that encodes evidence from the data 126 to determine that a particular term is a target entity term. After the evidence graph is constructed, the service computing device 102 may identify entity terms by using a PageRank algorithm to rank the nodes in the evidence graph and identify any nodes with a rank score above a rank threshold as corresponding to the target entity. Additional details of the algorithm are discussed below, for example, with respect to FIG. 2.

[0042] Further, in some examples herein, fingerprints, i.e., 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 referred to as a "field" or "column" in some examples) that may be generated for a dataset based on multiple data characteristics of the data in the dataset. A field fingerprint may be calculated for a column of data based on multiple data characteristics of the data, such as, but not limited to, top K most frequent values, Bloom filter, top K most frequent patterns, 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 vary in actual implementations, such as depending at least in part on the data type of the data. A tag fingerprint may include one or more field fingerprints, e.g., aggregated fingerprints, of representative data.

[0043] The fingerprints, i.e., field fingerprints and tag fingerprints, are constructed such that multiple field fingerprints can be aggregated into a single tag fingerprint. For example, suppose field F1 is represented by fingerprint FP1 and field F2 is represented by fingerprint FP2, then the aggregate FP of these two fingerprints is 12=FP1+FP2 may represent both fields F1 and F2. This feature of the fingerprints herein provides the ability to accumulate both supporting and contradictory fingerprints obtained through the curation process in a tag fingerprint. In some examples, a field fingerprint may be a fixed-size probabilistic model of a corresponding dataset, regardless of the size of the dataset. Furthermore, in some cases, a field fingerprint may include one or more bitmaps representing at least a portion of the data. Fingerprints herein can be combined (aggregated) into a single aggregated fingerprint, so that a single aggregated fingerprint can represent multiple datasets in a classification model. Thus, examples herein employ fingerprint-based tags with structured data.

[0044] System 100 is not limited to the specific configuration shown in FIG. 1 . This configuration is included for illustrative and discussion 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. Additionally, in some examples, the hardware components described above may be virtualized. For example, some or all of service computing devices 102 may be virtual machines running on one or more hardware processors 116 or portions thereof, and / or other service computing devices 102 may be separate physical computing devices or may be configured as virtual machines on separate physical computing devices or the same physical computing device. Many other hardware and software configurations will be apparent to those skilled in the art having the benefit of this disclosure. Accordingly, the scope of the examples disclosed herein is not limited to any particular set of hardware, software, or combination thereof.

[0045] FIG. 2 is a flow diagram illustrating an example process 200 according to some implementations. The process is illustrated as a collection of blocks in a logical flow diagram, which represent a sequence of operations, some or all of which may be implemented in hardware, software, or a combination thereof. In the software context, the blocks may represent computer-executable instructions stored on one or more computer-readable media that, when executed by one or more processors, programs the processors to perform the described operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular data types. The order in which the blocks are described should not be construed as limiting. Any number of the described blocks can be combined in any order and / or in parallel to implement a process or alternative processes, and not all blocks need be executed. For purposes of discussion, the process is described with reference to the environments, frameworks, and systems described in the examples herein; however, the process may be implemented in a variety of other environments, frameworks, and systems. For example, process 200 may be performed by one or more of service computing device 102 or other suitable computing devices, such as by execution of service application 122. Thus, through execution of service application 122, the computing device may determine one or more target entities based on at least the following process:

[0046] At 202, a computing device may receive an instruction or other trigger to identify a target entity within a glossary and / or organizational data. As an example, a user may send, via client device 108, an instruction that causes the computing device to perform process 200 for identifying a business entity within a glossary or data, such as data set 152 discussed above with respect to FIG. 1 .

[0047] At 204, the computing device may access glossary 128. Additionally, if available, the computing device may access any existing entity relationship metadata that may be included in metadata 135. For example, some types of data may include database schemas or the like that include indications of relationships between various data resources.

[0048] At 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 execute to perform an automated inventory of all files or other data sets 152, which may include capturing the lineage, format, and profile of each file or other data set 152 and storing this information in the metadata repository 135. In some cases, the system 100 may infer the meaning of values ​​in fields of a data set 152 by analyzing other data sets 152 that have field names with meaningful tags and / or have been tagged with meaningful tags by users. For a given data classification (tag) "T," the system may generate a tag classification data model "D" for classification T. T ” feature set “Ω T " and classification model D T The significance vector for the feature value of T For example, a tag classification model D T For feature set Ω T is, for example, a set of multiple features c related to data of classification T. i may include, for example: Ω T ={c1,c2,...c n} Some example data features may include {field_name, data value, pattern, ...}, with the particular features depending at least in part on the data itself.

[0049] Furthermore, the tag classification model D for classification T T is DT The feature c above i , e.g. c i (D T ), which may be calculated based on selected reference fields (seeds) and curation results (accepted and rejected classifications). For example, a classification model D T may enable classification and discovery of data within a large volume of data that has been categorized using the lexicon 128. The tag classification model D of the classification T for each data set T 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 aggregate tag fingerprints 132 for the reference data. In addition, the tag classification model D T may include other data, which may include a feature set based on tag fingerprints and other metadata that may be useful for matching the classification model with field classification models of other datasets. Additionally, the tag classification model D T may be updated based on curation input received from users. As mentioned above, the tag classification model D T is the field classification model D F (i.e., both use fingerprints of data of the same size), which allows for matching of data based on matching of respective fingerprints, matching of respective classification models, and matching of different data sets 152.

[0050] In addition, each tag classification model D T The significance vector of may indicate the significance of the similarity between the features of the classified data and the features of the unclassified data. Thus, the significance vector may be, for example, A T ={a1,a2,...a n} may be expressed as, where a i is the feature c iFurthermore, the significance of the similarity is shown for the field classification model D F Given a known field "F" classified by T, the system may calculate a confidence value for whether F should be classified as T, e.g., whether the data corresponding to F should be classified the same as the data corresponding to T. To aid in this decision, the system may calculate 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 )} may be determined, which may be W F,T ={s1,s2,...s n} may be simplified as, where s i =sim_c i (D T ,D F ) As an example, the similarity score vector may be calculated as a numerical value, where the higher the numerical value, the higher 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 data and the unclassified data, e.g., Score(F,T)=W F,T ×A T =a1×s1+a2×s2+...+a n ×s n may be determined.

[0051] One goal of the classification techniques herein is to achieve a higher confidence level based on the similarity scores (F, T) calculated above, for example, by continuously and iteratively improving the similarity between data classified by system 100. For example, the tag classification model D Tmay be updated based on updates to other data such as tag fingerprints and collected statistics. The updates may be performed in a feature-specific manner for two classes of features: support and contradiction features. Furthermore, the significance vector A T affects the confidence level of the taxonomy relevance. For example, the tag classification model D T Different updates to the similarity scores (F,T) are performed based on the significance vectors for the accepted and rejected associations and the support and contradiction features, e.g., a for the support feature i = f_accepted(av,score,reward), and for the contradictory features, a i =f_rejected(av,score,penalty).

[0052] At 208, the computing device may generate an evidence graph by performing the operations of blocks 210-220.

[0053] At 210, the computing device may select a glossary target entity parent tag from the glossary for processing. An example of a glossary parent tag is described below, for example, with respect to Figure 3. For example, the glossary parent tag may be associated with a business entity or other target entity.

[0054] At 212, the computing device may select resources for processing from data 126, including field tags associated with the resources determined at 206. An example of a field tag associated with the selected resource is described below, for example, with respect to FIG.

[0055] At 214, the computing device may compare the selected glossary parent tag to 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 a match threshold. If the number of matches exceeds the match threshold, the process proceeds to 216. Otherwise, the process proceeds to 220. An example of comparing glossary parent tags to the field tags of the selected resource is described below, for example, with respect to FIG. 3.

[0056] At 216, if the match exceeds a threshold and if a node for the selected glossary parent tag and / or the selected resource does not already exist in the evidence graph, the computing device may create a node for the glossary parent tag and / or a node for the selected resource, respectively, in the evidence graph.

[0057] At 218, the computing device may create a directed edge in the evidence graph from the resource node to the glossary parent tag node. In some examples, the directed edge is also weighted based on an importance measure that may be determined for the relationship between the two nodes. One example of determining edge weighting is discussed below, for example, with respect to FIG. 4.

[0058] At 220, the computing device may select the next resource for comparison 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] At 222, once all data resources and all parent tags in the lexicon have been processed, the computing device may use the PageRank algorithm in the evidence graph to determine the highest-ranked node in the evidence graph, which functions by considering both evidence and counter-evidence in determining the rank of each of the nodes in the evidence graph.

[0060] At 224, the computing device may identify nodes whose rank scores, as determined by the PageRank algorithm, exceed a rank threshold.

[0061] At 226, the computing device may determine whether the rank score of at least one node in the evidence graph exceeds a rank threshold. If so, the process proceeds to 228. If not, the process proceeds to 230.

[0062] At 228, the computing device may identify nodes that exceed a rank threshold as corresponding to a target entity, such as a business entity. In particular, tags of nodes with rank scores exceeding the threshold correspond to the target entity. As mentioned above, identifying target entities, such as business entities (e.g., business-related terms or the like), enables more powerful searches in the data catalog. For example, identifying business entities in a glossary can be used to perform resource-level data classification. This level of data classification can allow users to map their raw data to processed, easily understandable, and / or recognizable real-world concepts, filling operational gaps and enabling resource search based on business entity tags. Furthermore, based on the identification of business entities, the catalog can provide context for other downstream cataloging tasks, such as enabling ambiguous tag disambiguation. As an example, three-digit numbers, which are inherently anonymous and therefore potentially subject to many tags, can be associated with a business entity tag, such as a CVV, to provide context and limit the tags associated with these numbers. Thus, identifying business entities can also serve as context for more accurate field-level classification of data. Furthermore, without automated techniques for discovering business entities as described herein, users traditionally must perform manual identification of business entity terms, which is not reasonably scalable for large databases or other large collections of data.

[0063] At 230, if the results of the PageRank algorithm indicate that no node in the evidence graph exceeds the rank threshold, the computing device may send a communication indicating that the data does not contain the target entity identified and reflected in the glossary.

[0064] FIG. 3 illustrates an example 300 of comparing glossary target entity parent tags with a selected resource according to some implementations. For example, parent tags may have been previously added to the glossary during creation, such as by a user, an algorithm, a machine learning classifier, or the like. As discussed above with respect to FIG. 2, when constructing the evidence graph, the service computing device may compare the selected glossary parent tag with the determined field tags for the selected resource to determine whether the number of matches between the selected glossary parent tag and the selected resource exceeds a match threshold. In the illustrated example, assume that the service computing device compares a selected glossary parent tag 302, "Customer," with a field tag 304 of a resource having a 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 device may determine that store ID glossary child tag 306(1) does not match any of resource child tags 308, and sales ID child tag 308(1) does not match any of glossary child tags 306. Thus, the intersections of child tags 306 of glossary parent tag 302 with child tags 308 of field tag 304 are four out of a total of five glossary child tags, and therefore the intersection is 80 percent or 0.8. Further, in this example, assume that the match threshold is 70 percent or 0.7.

[0065] As shown at 310, if nodes for selected glossary parent tag 302 and / or selected resource 304 do not already exist in the evidence graph because the intersections (number of matches) exceed the match threshold, the service computing device may create a node 312 for the glossary parent tag and / or a node 314 for the selected resource, respectively, in the evidence graph. Additionally, a new directed edge 316 from resource node 314 to glossary parent tag node 312 is added to the evidence graph.

[0066] 4 illustrates an example 400 of creating a portion of an evidence graph based on relationships determined from a database schema according to some implementations. For example, assume that a portion of database schema 402 includes a product reviews table 404 and a product table 406. Further, assume that there is a primary key-foreign key (PK-FK) relationship between product reviews table 404 and product table 406. For example, assume that PK 408 of product table 406 may be "product ID" and that FK1 410 of product reviews table 404 is also "product ID." Consequently, based on at least this relationship, evidence graph portion 412 may be generated to include a product review node 414 corresponding to product reviews table 404 and a product node 416 corresponding to product table 406. Furthermore, based on the PK-FK relationship, a directed edge 418 may be established between product review node 414 and product node 416.

[0067] Additionally, in some examples, weights may be associated with some or all of the edges in the evidence graph. For example, in the example of Figure 4, a weight of 1.0 may be applied to the edge determined based on the database schema, while in the example of Figure 3, a weight of 0.8 may be applied to edge 316. For example, the relevance of the example of Figure 3 may be perceived as less confident than the example of Figure 4 because there was only an 80 percent match in the example of Figure 3. As 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 the matching tags.

[0068] 5 illustrates an example evidence graph portion 500 according to some implementations. In this example, assume three nodes are included in evidence graph portion 500: node 502 for resource X, node 504 for a first parent business entity node, and node 506 for a 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, assume that resource X field tags match tags of first parent business entity node 504 and second parent business entity node 506 in amounts that exceed the match threshold. Thus, when a page ranking algorithm is run on the evidence graph that includes portion 500, directed edge 508 serves as evidence for directed edge 510, and conversely, directed edge 510 serves as evidence for directed edge 508. Thus, implementations herein, through the method of constructing the evidence graph and through the use of the page ranking algorithm, automatically consider counter-evidence when ranking nodes for identification of a target entity.

[0070] 6 illustrates an exemplary evidence graph 600 that can be constructed according to implementations of the present disclosure. Evidence graph 600 presents a set of referenced relationships from each resource to each glossary tag. Evidence graph 600 shows evidence that a given resource is mapped to a glossary tag, and therefore provides evidence that one or more of the highest-ranked glossary tags are business entities after PageRank processing is performed.

[0071] In the illustrated example, evidence graph 600 includes multiple nodes 602(1)-602(62) and multiple directed edges 604 connecting the various nodes 602. As discussed above with respect to, for example, Figures 2-5, 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 indicate a relationship between a respective field tag associated with a data resource and a corresponding business entity tag.

[0072] FIG. 7 illustrates an example output 700 of applying the PageRank algorithm to the evidence graph of FIG. 6 according to some implementations. In this example, the PageRank algorithm is run to rank the values ​​of individual nodes 602(1)-602(62) based on the number of other nodes 602(1)-602(62) that reference each individual node 602(1)-602(62). In this example, as shown in 702, node 602(48) from the 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 has been set by a user to 0.090. Consequently, because node 602(48)'s score exceeds the rank threshold, the tag associated with node 602(48) is identified as the target entity, e.g., a business entity in some examples.

[0073] Further, in the illustrated example, the second highest ranked node is node 602 (62), which has a rank score of "0.085" (rounded to three decimal places). Based on this rank score being less than 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 rank scores above the rank score threshold.

[0074] 8 shows an exemplary user interface 800 for managing the glossary of the present specification according to some implementations. For example, user interface 800 may be provided to one or more of client devices 108 by service application 122, causing client application 136 to display user interface 800 on a display associated with client device 108. In this example, user interface 800 includes a list 802 of top-level tag domains on the left side. Additionally, as shown at 804, the manufacturing (MFG) tag has been selected by the user and is therefore highlighted.

[0075] Further, based on the selection of the MFG tag, bill of materials (BOM) tags are presented at 806. For example, the BOM tag is a child tag of the MFG tag and is a parent tag of several other tags, such as a description tag, a level tag, a manufacturer tag, a manufacturer part name tag, and a manufacturer part number tag, as shown at 808, each of which may be considered a child tag of the parent tag BOM. Additionally, in this example, a BOM tag is selected by the user, resulting in additional information related to the selected tag being presented in user interface 800, as shown at 810, 812, and 814. For example, the description tag may be edited at 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 at 816.

[0076] In some examples herein, the glossary is not modified as a result of identifying a business entity therein, but the user interface 800 may present a separate visual display with only the glossary terms identified as belonging to the business entity. From this visual display, a search function may be employed to search data resources by business entity. Additionally, in some examples, a feedback loop may be implemented based on the discovered business tags, which may be used for ambiguous / anonymous tag disambiguation based on the business entity to which the tagged data belongs. Thus, examples herein may identify incorrectly tagged data and correct tags associated with the incorrectly tagged data based on their relevance to the identified business entity tags.

[0077] The exemplary processes described herein are merely examples of processes provided for discussion purposes. Many other variations will be apparent to those skilled in the art in light of the disclosure herein. Furthermore, while the disclosure herein illustrates some examples of suitable frameworks, architectures, and environments for implementing the processes, the implementations herein are not limited to the specific examples shown and discussed. Furthermore, the disclosure provides various exemplary implementations as described and illustrated in the drawings. However, the disclosure is not limited to the implementations described and illustrated herein, but may extend to other implementations known or that become known to those skilled in the art.

[0078] 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 processors herein. Generally, program modules include routines, programs, objects, components, data structures, executable code, etc. for performing particular tasks or implementing particular abstract data types. These program modules and the like may be executed as native code or downloaded and executed in a virtual machine or other just-in-time compilation execution environment, etc. Typically, the functionality of the program modules may be combined or distributed as desired in various implementations. Implementations of these modules and techniques may be stored on computer storage media or transmitted over some form of communication medium.

[0079] Although the present subject matter has been described in language specific to structural features and / or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms of implementing the claims.

Claims

1. 1. A system comprising: one or more processors configured to perform operations according to the executable instructions; The operation is receiving a tree data structure representing a plurality of tags arranged in a hierarchy representing a business level of abstraction; performing a field-level classification of the data to obtain field tags associated with said data; generating a graph data structure, matching field tags of the data with a set of child tags of the tree and creating a first node in the graph data structure for at least a parent tag of the set of child tags and a second node in the graph data structure for a resource in the data corresponding to the field tag; creating a directed edge from the second node to the first node in the graph data structure based on at least one of an amount of match or one or more entity relationships between the field tag and the set of child tags; repeating the matching and creating for a plurality of the parent tags and a plurality of the resources in the data to generate the graph data structure; By generating, running a ranking algorithm on the graph data structure to determine at least one of the first nodes having a rank above a rank threshold; Including, the system.

2. The system of claim 1 , wherein matching the field tags of the data with the set of child tags of the tree includes determining that the amount of match exceeds a match threshold.

3. 2. The system of claim 1, wherein the operations further include applying a weighting to one or more of the directed edges of the graph data structure, the weighting affecting a ranking score of a first node pointed to by the weighted directed edge during execution of the ranking algorithm.

4. The system of claim 1 , wherein the actions further comprise designating a parent tag corresponding to the at least one first node as a business entity.

5. The system of claim 4 , wherein the actions further include designating one or more child tags of the parent tag as a business entity.

6. 2. The system of claim 1, further comprising a database schema, and wherein determining the graph data structure further comprises determining relationships between resources in the database schema, wherein a third node of the graph data structure corresponds to one of the resources in the schema and a fourth node of the graph data structure corresponds to another one of the resources in the schema.

7. The system of claim 6, wherein determining relationships between the resources in the schema comprises identifying primary key-foreign key relationships between the resources in the schema.

8. 2. The system of claim 1, wherein the operations further comprise removing at least one false positive field tag from being associated with the data based on tags associated with the at least one first node having the rank that exceeds the rank threshold.

9. The system of claim 1 , wherein the ranking algorithm considers evidence and counter-evidence for the parent tag.

10. 10. The system of claim 1, wherein the operations further include transmitting user interface information to a client computing device to cause the client device to present information related to at least one of the identified target entities in a user interface on a display associated with the client computing device.

11. 10. The system of claim 1, wherein performing the field-level classification of data includes determining a similarity score between features of the already classified data and features of the unclassified data.

12. receiving, by one or more processors, a tree data structure representing a plurality of tags arranged in a hierarchy representing a business level of abstraction; performing a field-level classification of the data to obtain field tags associated with said data; generating a graph data structure, matching field tags of the data with a set of child tags of the tree and creating a first node in the graph data structure for at least a parent tag of the set of child tags and a second node in the graph data structure for a resource in the data corresponding to the field tag; creating a directed edge from the second node to the first node in the graph data structure based on at least one of an amount of match or one or more entity relationships between the field tag and the set of child tags; repeating the matching and creating for a plurality of the parent tags and a plurality of the resources in the data to generate the graph data structure; By generating, running a ranking algorithm on the graph data structure to determine at least one of the first nodes having a rank above a rank threshold; A method comprising:

13. The method of claim 12 , wherein matching the field tags of the data with the set of child tags of the tree includes determining that the amount of match exceeds a match threshold.

14. one or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, configure the one or more processors to perform operations; The operation is a tree data structure representing a plurality of tags arranged in a hierarchy representing a business level of abstraction; performing a field-level classification of the data to obtain field tags associated with said data; generating a graph data structure, matching field tags of the data with a set of child tags of the tree and creating a first node in the graph data structure for at least a parent tag of the set of child tags and a second node in the graph data structure for a resource in the data corresponding to the field tag; creating a directed edge from the second node to the first node in the graph data structure based on at least one of an amount of match or one or more entity relationships between the field tag and the set of child tags; repeating the matching and creating for a plurality of the parent tags and a plurality of the resources in the data to generate the graph data structure; By generating, running a ranking algorithm on the graph data structure to determine at least one of the first nodes having a rank above a rank threshold; one or more non-transitory computer-readable media,

15. 15. The one or more non-transitory computer-readable media of claim 14, wherein matching the field tags of the data with the set of child tags of the tree includes determining that the amount of match exceeds a match threshold.

Citation Information

Patent Citations

  • Information retrieval device and information retrieval method

    JP2004133796A

  • Counting device, counting program, computer-readable recording medium with counting program recorded, and counting method

    JP2013232111A

  • Region labeling method and device of data documents

    US20150012543A1

  • System for document and certificate management using directed acyclic graph based tagging

    US20190384895A1

  • Multiple modes of data collection and analysis in a microservices-based architecture

    US20210232485A1