Method and apparatus for generating data structure describing how taxonomies evolve and usage algorithm thereof

Various methods, apparatuses/systems, and media for generating a data structure are provided. A database stores a historic version of taxonomy data and a new version of taxonomy data. A processor, operatively connected to the database, accesses the database and analyzes the historic version of taxonomy data and the new version of taxonomy data. The processor determines what changes have been made in connection with a particular reference data based on analyzing the historic version of taxonomy data and the new version of taxonomy data; creates, based on determining, an association between the historic version of taxonomy data and the new version of taxonomy data corresponding to said particular reference data; generates consistent metadata from said association; and generates a data structure that illustrates history of evolution of taxonomy in connection with said particular reference data based on the metadata.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of priority from Greek Patent Application No. 20210100070, filed Feb. 2, 2021, which is herein incorporated by reference in its entirety.

TECHNICAL FIELD

This disclosure generally relates to data processing, and, more particularly, to methods and apparatuses for generating a data structure describing how taxonomies evolve and applying algorithm to evergreen uses of terms from those taxonomies.

BACKGROUND

Today's enterprises, corporations, agencies, institutions, and other organizations are facing a continuing problem of handling and processing a vast amount of data that undergoes changes overtime in a quick and expedited manner. The vast amount of data often received on a daily basis may be now stored electronically and may need to be analyzed by a variety of persons within the organization relative to business or organizational goals. For example, taxonomies associated with the data can change over time. Typically, other data structures may utilize the terms in taxonomies to classify and describe coverage of the dimensions that taxonomies describe. For example, a taxonomy of Geography might have terms reflecting continents, countries, counties, cities, etc., and a Trading data structure might select terms from there to describe where trading occurs.

A statement that trading occurs in “Europe”, implies trading in its children, i.e., “UK”, “France”, “Germany”, etc. As taxonomies evolve, any data that references them may need to be amended in order to state the same thing in the new taxonomy version that was originally stated in the old taxonomy version. However, this may not be always a straightforward task to do reliably, and at scale, and may prove to be highly error prone and time consuming.

SUMMARY

The present disclosure, through one or more of its various aspects, embodiments, and/or specific features or sub-components, may provide, among others, various systems, servers, devices, methods, media, programs, and platforms for generating a data structure describing how taxonomies evolve and applying algorithm to evergreen uses of terms from those taxonomies, thereby allowing downstream consumers to understand and interpret the more complex scenario about what actually happened to the taxonomies during evolution, but the disclosure is not limited thereto.

According to an aspect of the present disclosure, a method for generating a dam structure by utilizing one or more processors and one or more memories is disclosed. The method inn include: accessing a database that stores a historic version of taxonomy data and a new version of taxonomy data; analyzing the historic version of taxonomy data and the new version of taxonomy data; determining what changes have been made in connection with a particular reference data based on analyzing the historic version of taxonomy data and the new version of taxonomy data; creating, based on determining, an association between the historic version of taxonomy data and the new version of taxonomy data corresponding to said particular reference data; generating consistent metadata from said association; and generating a data structure that illustrates history of evolution of taxonomy in connection with said particular reference data based on the metadata, thereby allowing downstream consumers by utilizing client devices) to understand and interpret the more complex scenario about what actually happened to the taxonomies during evolution, but the disclosure is not limited thereto.

According to another aspect of the present disclosure, the method may further include: designating corresponding reference identifier (ID) for each term in the historic version of taxonomy data and the new version of taxonomy data; and comparing the reference ID for each term in the historic version of taxonomy data and the new version of taxonomy data to determine what changes have been made in connection with the particular reference data.

According to yet another aspect of the present disclosure, wherein the me data may be a term evolution data construct that describes one or more of the following or a combination thereof: an unchanged term, a term superseded by another term, a term superseded by multiple terms, multiple terms superseded by a term, a term that is superseded by nothing, and term that supersedes nothing.

According to further aspect of the present disclosure, wherein supersede relations are relationships between terms in the historic version of taxonomy data and the new version of taxonomy data of the same taxonomy.

According to yet another aspect of the present disclosure, the method may further include: determining that a supersede relationships exists between a first term (T1) in the historic version of taxonomy data (V1) and a second term (T2) in the new version of taxonomy data (V2) when it is determined that the reference ID of T1is the same as the reference ID of T2and that there are no supersedes relationships documented from T2to anything in V1or from anything in V2to T1.

According to an additional aspect of the present disclosure, wherein the data structure may be an N-dimensional hypercube or a one dimensional data structure, but the disclosure is not limited thereto.

According to another aspect of the present disclosure, a system for generating a data structure is disclosed. The system may include a database that stores a historic version of taxonomy data and a new version of taxonomy data; and a processor coupled to the database via a communication network. The processor may be configured to: analyze the historic version of taxonomy data and the new version of taxonomy data by accessing the database; determine what changes have been made in connection with a particular reference data based on analyzing the historic, version of taxonomy data and the new version of taxonomy data; create, based on determining, an association between the historic version of taxonomy data and the new version of taxonomy data corresponding to said particular reference data; generate consistent metadata from said association; and generate a data structure that illustrates history of evolution of taxonomy in connection with said particular reference data based on the metadata, thereby allowing downstream consumers (i.e., by utilizing client devices) to understand and interpret the more complex scenario about what actually happened to the taxonomies during evolution, but the disclosure is not limited thereto.

According to yet another aspect of the present disclosure, the processor may be further configured to: designate corresponding reference identifier (ID) for each term in the historic version of taxonomy data and the new version of taxonomy data; and compare the reference ID for each term in the historic version of taxonomy data and the new version of taxonomy data to determine what changes have been made in connection with the particular reference data.

According to another aspect of the present disclosure, the processor may be further configured to: determine that a supersede relationships exists between a first term (T1) in the historic version of taxonomy data (V1) and a second term (T2) in the new version of taxonomy data (V2) when it is determined that the reference ID of T1is the same as the reference ID of T2and that there are no supersedes relationships documented from T2to anything in V1or from anything in V2to T1.

According to an additional aspect of the present disclosure, a non-transitory computer readable medium configured to store instructions for generating a data structure is disclosed. The instructions, when executed, tray cause a processor to perform the following: accessing a database that stores a historic version of taxonomy data and a new version of taxonomy data; analyzing the historic version of taxonomy data and the new version of taxonomy data; determining what changes have been made in connection with a particular reference data based on analyzing the historic version of taxonomy data and the new version of taxonomy data; creating, based on determining, an association between the historic version of taxonomy data and the new version of taxonomy data corresponding to said particular reference data; generating consistent metadata from said association; and generating a data structure that illustrates history of evolution of taxonomy in connection with said particular reference data based on the metadata, thereby allowing downstream consumers (i.e., by utilizing client devices) to understand and interpret the more complex scenario about what actually happened to the taxonomies during evolution, but the disclosure is not limited thereto.

According to another aspect of the present disclosure, wherein the instructions, when executed, may further cause the processor to perform the following: designating corresponding reference identifier (ID) for each term in the historic version of taxonomy data and the new version of taxonomy data; and comparing the reference ID for each term in the historic version of taxonomy data and the new version of taxonomy data to determine what changes have been made in connection with the particular reference data.

According to yet another aspect of the present disclosure, wherein the instructions, when executed, may further cause the processor to perform the following: determining that a supersede relationships exists between a first term (T1) in the historic version of taxonomy data (V1) and a second term (T2) in the new version of taxonomy data (V2) when it is determined that the reference ID of T1is the same as the reference ID of T2and that there are no supersedes relationships documented from T2to anything in V1or from anything in V2to T1.

DETAILED DESCRIPTION

Through one or more of its various aspects, embodiments and/or specific features sub-components of the present disclosure, are intended to bring out one or more the advantages as specifically described above and noted below.

FIG.1is an exemplary system for use in automatically generating a data structure describing how taxonomies evolve and applying algorithm to evergreen uses of terms from those taxonomies in accordance with the embodiments described herein. The system100is generally shown and may include a computer system102, which is generally indicated.

As described herein, various embodiments provide optimized processes of generating a data structure describing how taxonomies evolve and applying algorithm to evergreen uses of terms from those taxonomies, thereby allowing downstream consumers to understand and interpret the more complex scenario about what actually happened to the taxonomies during evolution, but the disclosure is not limited thereto.

Referring toFIG.2, a schematic of an exemplary network environment200for implementing an automatic data structure generating device (ADSGD) of the instant disclosure is illustrated.

According to exemplary embodiments, the above-described problems associated with conventional system may be overcome by implementing an ADSGD202as illustrated inFIG.2for automatically generating a data structure describing how taxonomies evolve and applying algorithm to evergreen uses of terms from those taxonomies, thereby allowing downstream consumers (i.e., by utilizing client devices) to understand and interpret the more complex scenario about what actually happened to the taxonomies during evolution, but the disclosure is not limited thereto.

The ADSGD202may be the same or similar to the computer system102as described with respect toFIG.1.

The ADSGD202may store one or more applications that can include executable instructions that, when executed by the ADSGD202, cause the ADSGD202to perform actions, such as to transmit, receive, or otherwise process network messages, for example, and to perform other actions described and illustrated below with reference to the figures. The application(s) may be implemented as modules or components of other applications. Further, the application(s) can be implemented as operating system extensions, modules, plugins, or the like.

In the network environment200ofFIG.2, the ADSGD202is coupled to a plurality of server devices204(1)-204(n) that hosts a plurality of databases206(1)-206(n), and also to a plurality of client devices208(1)-208(n) via communication network(s)210. A communication interface of the ADSGD202, such as the network interface114of the computer system102ofFIG.1, operatively couples and communicates between the ADSGD202, the server devices204(1)-204(n), and/or the client devices208(1)-208(n), which are all coupled together by the communication network(s)210although other types and/or numbers of communication networks or systems with other types and/or numbers of connections and/or configurations to other devices and/or elements may also be used.

The communication networks)210may be the same or similar to the network122as described with respect toFIG.1, although the ADSGD202, the server devices204(1)-204(n), and/or the client devices208(1)-208(n) may be coupled together via other topologies. Additionally, the network environment200may include other network devices such as one or more routers and/or switches, for example, which are well known in the art and thus will not be described herein.

The server devices204(1)-204(n) may be hardware or software or may represent a system with multiple servers in a pool, which may include internal or external networks. The server devices204(1)-204(n) hosts the databases206(1)-206(n) that are configured to store metadata sets, data quality rules, and newly generated data.

The plurality of client devices208(1)-208(n) may also be the same or similar to the computer system102or the computer device120as described with respect toFIG.1, including any features or combination f features described with respect thereto. Client device in this context refers to any computing device that interfaces to communications network(s)210to obtain resources from one or more server devices204(1)-204(n) or other client devices208(1)-208(n).

According to exemplary embodiments, the client devices208(1)-208(n) in this example may include any type of computing device that can facilitate the implementation of the ADSGD202that may be configured for automatically generating a data structure describing how taxonomies evolve and applying algorithm to evergreen uses of terms from those taxonomies, thereby allowing downstream consumers to understand and interpret the more complex scenario about what actually happened to the taxonomies during evolution, but the disclosure is not limited thereto.

Accordingly, the client devices208(1)-208(n) may be mobile computing devices, desktop computing devices, laptop computing devices, table computing devices, virtual machines (including cloud-based computers), or the like, that host at, e-mail, or voice-to-text applications, for example.

Although the exemplary network environment200with the ADSGD202, the server devices204(1)-204(n), the client devices208(1)-208(n), and the communication network(s)210are described and illustrated herein, other types and/or numbers of systems, devices, components, and/or elements in other topologies may be used. It is to be understood that the systems of the examples described herein are for exemplary purposes, as many variations of the specific hardware and software used to implement the examples are possible, as will be appreciated by those skilled in the relevant art(s).

One or more of the devices depicted in the network environment200, such as the ADSGD202, the server devices204(1)-204(n), or the client devices208(1)-208(n), for example, may be configured to operate as virtual instances on the same physical machine. For example, one or more of the ADSGD202, the server devices204(1)-204(n), or the client devices208(1)-208(n) may operate on the same physical device rather than as separate devices communicating through communication network(s)210. Additionally, there may be more or fewer ADSGDs202, server devices204(1)-204(n), or client devices208(1)-208(n) than illustrated inFIG.2.

FIG.3illustrates a system diagram for implementing an ADSGD with an automatic data structure generating module (ADSGM) in accordance with an exemplary embodiment.

As illustrated inFIG.3, in the system300, according to exemplary embodiments, the ADSGD302including the ADSGM306may be connected to a server304and a database312via a communication network310, but the disclosure is not limited thereto. For example, according to exemplary embodiments, the ADSGM306may be connected to any desired database besides database312. According to exemplary embodiments, the database312may be configured to store outputs (e.g., data) from any desired number of applications or systems, but the disclosure is not limited thereto.

According to exemplary embodiment, the ADSGD302is described and shown inFIG.3as including the ADSGM306, although it may include other rules, policies, modules, databases, or applications, for example. According to exemplary use case, the database312may be configured to store a plurality of data each associated with a corresponding application and each including metadata describing information about data present in an application, but the disclosure is not limited thereto. According to exemplary embodiments, the database312may be embedded within the ADSGD302. According to exemplary embodiments, the server304may also be a database which may be configured to store information including the metadata, but the disclosure is not limited thereto.

According to exemplary embodiments, the ADSGM306may be implemented via user interfaces, e.g., web user interface, but the disclosure is not limited thereto, and may be integrated with a private cloud platform via the ADSGM306and an authentication service, but the disclosure is not limited thereto.

According to exemplary embodiments, the ADSGM306may be configured to receive continuous feed of data from the server304and the database312via the communication network310.

As will be described below, the ADSGM306may be configured to analyze the historic version of taxonomy data and the new version of taxonomy data by accessing the database; determine what changes have been made in connection with a particular reference data based on analyzing the historic version of taxonomy data and the new version of taxonomy data; create, based on determining, an association between the historic version of taxonomy data and the new version of taxonomy data corresponding to said particular reference data; generate consistent metadata from said association; and generate a data structure that illustrates history of evolution of taxonomy in connection with said particular reference data based on the metadata, thereby allowing downstream consumers (by utilizing client devices) to understand and interpret the more complex scenario about what actually happened to the taxonomies during evolution, but the disclosure is not limited thereto. According to exemplary embodiments, the data structure may be generated automatically, manually; or a combination thereof.

According to exemplary embodiments, the server304may be the same or equivalent to the server device204as illustrated inFIG.2.

The process may be executed via the communication network310, which may comprise plural networks as described above. For example, in an exemplary embodiment, either or all of client devices308(1)-308(n) may communicate with the ADSGD302via broadband or cellular communication. Of course, these embodiments are merely exemplary and are not limiting or exhaustive.

FIG.4illustrates a system diagram for implementing automatic data structure generating module ofFIG.3in accordance with an exemplary embodiment. As illustrated inFIG.4, the system400may include an ADSGD402within which an ADSGM406may be embedded, a database412, a server404, a plurality of client devices408(1)-408(n), and a communication network410.

According to exemplary embodiments, the ADSGD402, ADSGM406, database412, the server404, the client devices408(1)-408(n), and the communication network410as illustrated inFIG.4may be the same or similar to the ADSGD302, the ADSGM306, the database312, the server304, the client devices308(1)-308(n), and the communication network310, respectively, as illustrated inFIG.3.

As illustrated inFIG.4, the ADSGM406may include an accessing module414, an analyzing module416, a determining module418, a creating module420, a generating module422, a communication module424, a GUI426, a designating module428, a comparing module430, and an implementing module432. According to exemplary embodiments, the database412may be external to the ADSGD402and the ADSGD402may include various systems that are managed and operated by an organization.

The process may be executed via the communication module424and the communication network410, which may comprise plural networks as described above. For example, in an exemplary embodiment, the various components of the ADSGM406may communicate with the server404, and the database412via the communication module424and the communication network410. Of course, these embodiments are merely exemplary and are not limiting or exhaustive.

According to exemplary embodiments, the communication module424may be configured to establish a link between the database412via the communication network410.

According to exemplary embodiments, each of the accessing module414, analyzing module416, determining module418, creating module420, generating module422, communication module424, designating module428, comparing module430, and the implementing module432may be implemented by microprocessors or similar, they may be programmed using software (e.g., microcode) to perform various functions discussed herein. Alternatively, each of the accessing module414, analyzing module416, determining module418, creating module420, generating module422, communication module424, designating module428, comparing module430, and the implementing module432may be implemented by dedicated hardware, or as a combination of dedicated hardware to perform some functions and a processor (e.g., one or more programmed microprocessors and associated circuitry) to perform various functions discussed herein as well as other functions. Also, according to exemplary embodiments, each of the accessing module414, analyzing module416, determining module418, creating module420, generating module422, communication module424, designating module428, comparing module430, and the implementing module432may be physically separated into two or more interacting and discrete blocks, units, devices, and/or modules without departing from the scope of the inventive concepts.

According to exemplary embodiments, each of the accessing module414, analyzing module416, determining module418, creating module420, generating module422, communication module424, designating module428, comparing module430, and the implementing module432of the ADSGM406may be called by corresponding API, but the disclosure is not limited thereto.

According to exemplary embodiments, the taxonomy creation module408may be configured to create taxonomies describing data concepts associated with the metadata and store the taxonomies onto the database412. The capturing module414may be configured to capture and receive the metadata and the taxonomies from the database412via the communication network410and the communication module424.

FIG.5Aillustrates an exemplary term evolution data construct500ain accordance with an exemplary use case.FIG.5Billustrates an exemplary evolution data construct500bin accordance with another exemplary use case. According to exemplary embodiments, hierarchical values may be a hierarchical selection of included or excluded terms from a taxonomy, where each term can be further qualified by a hierarchical values. The term evolution data may be automatically generated, manually, or a combination thereof. Utilizing this term evolution data, selections from taxonomies, expressed as sets of included or excluded terms (each potentially further qualified the same way) may be automatically re-expressed using new taxonomy versions, wherever this is possible.

Referring toFIGS.4,5A, and5B, according to exemplary embodiments, the ADSGM406may be configured to implement re-expression, hypercube library, and a taxonomy incrementer, which is a proof-of-concept piece of code that implements a re-expression algorithm disclosed herein, using the hierarchical values and hierarchical member classes in the hypercube library.

According to exemplary embodiments, the ADSGM406may implement re-expression of all the terms in all the term sets in all the scope qualifying expressions in all the data boundary sets for a given data fact, so as to only to use terms from a prescribed set of vocabulary versions.

According to exemplary embodiments, the re-expression may need source vocabulary versions, target vocabulary versions, term evolution data mapping between source and target terms, and source fact, but the disclosure is not limited thereto. For example, if one knows that: in the source location taxonomy, there was West Germany and East Germany in the target location taxonomy, there is now Germany (see, e.g.,FIG.5); the term evolution data states that West Germany and East Germany merged to form Germany; and the source fact states that booking location={West Germany, East Germany, France}, then one can convert this to fact which states booking location={Germany, France}. If instead, the source fact states booking location={West Germany, France}, then one could not automatically re-express this fact.

According to exemplary embodiments, the term evolution data is specified as a set of “supersedes” mappings. These state that source Term(s) are superseded by target Term(s). Such mappings can therefore the 1:1, 1:N or M:1 (or even M:N). Where a source Term exists along with a target Term with the same identifier, then a 1:1 supersede mapping is inferred. Any remaining source Terms are deletes, and any remaining target Terms are creates. One could envisage these as 1:0 and 0:1 mappings. The unusual thing about supersede mappings may be that they are mappings between Terms in different versions of the same Vocabulary.

According to exemplary embodiments, the term evolution data construct (i.e., data structure) generated by the ADSGM406, is therefore able to describe one or more of the following or a combination thereof: an unchanged Term; Term superseded by Term—is replace; Term superseded by multiple Terms—a split; multiple Terms superseded by a Term—a merge; more complex merge/split scenarios; Term that is superseded by nothing—a delete; Term that supersedes nothing—a create, etc., but the disclosure is not limited thereto.

A non-limiting exemplary use case is described wherein with reference toFIGS.5A and5B. The exemplary term evolution data constructs500aand500billustrated inFIGS.5A and5B, respectively are in model form of the term evolution data construct generated by the ADSGM406.

Except where stated, all terms retain the same identifier (ID) and name. “Supersede” relationships are special relationships between terms in two versions of the same Taxonomy. There is an “implicit” supersede relationship between term T1in location version one (V1) and term T2in location version two (V2), if TI and T2have the same ID, and there are no supersedes relationships explicitly documented from T2to anything in V1or from anything in V2to T1.

According to “Rename and Edit” property implemented by the ADSGM406, as illustrated inFIGS.5A and5B, “FRANCE” changes its name to “France.” Thus, no supersede relationship is needed, as ID is unchanged. Similarly, if other properties (e.g., state) of term are changed, no supersede relationship is required, as ID is unchanged.

According to “Replace” property implemented by the ADSGM406, as illustrated inFIGS.5A and5B, Italy (with old ID) is replaced by a new Italy (with a new ID). Thus, supersede relationship is required to document the replace.

According to “Physical Delete” property implemented by the ADSGM406, as illustrated inFIGS.5A and5B, for the term Atlantis, nothing supersedes it.

According to “Create” property implemented by the ADSGM406, as illustrated inFIGS.5A and5B, Seal and is created as a new term. Thus, it supersedes nothing.

According to “Split (Equal)” property implemented by the ADSGM406, as illustrated inFIGS.5A and5B, Yugoslavia splits into Serbia and Croatia, which have different IDs. Thus, supersedes relationships are required to document the split.

According to “Split (Dominant)” property implemented by the ADSGM406, as illustrated inFIGS.5A and5B, South Sudan is crated (with a new ID) by taking a portion out of Sudan (ID unchanged). Thus, supersedes relationships are required to document the split.

According to “Merge (Equal)” property implemented by the ADSGM406, as illustrated inFIGS.5A and5B, West Germany and East Germany become Germany (with a new ID). Thus, supersedes relationships are required to document the merge.

According to “Merge (Dominant)” property implemented by the ADSGM406, as illustrated inFIGS.5A and5B, Hong Kong is merged into China. Thus, supersedes relationships are required to document the merge.

Some sources of reference data may not be able to provide Term Evolution Data. In such a scenario, all one can do is infer 1:1 supersede relationships s here Term identifiers match. After this is done, there will be unmapped source Terms and/or unmapped target Terms. If there is EITHER unmapped source OR unmapped target Terms, then one can infer deletes or creates. But, if there are BOTH (unmapped source and unmapped target Terms), one cannot infer anything: an unmapped source Term could be a delete, or it could be replaced by an unmapped target Term.

Therefore, when mapping a particular hierarchical value, expressed in the source Vocabulary, if it uses any terms that are unmapped, then one cannot map the value to the target Vocabulary, and must fail with a “term could be deleted or replaced” error.

According to exemplary embodiments, the re-expression algorithm implemented by the ADSGM406considers whether each (non-created) Term in the target Vocabulary can be present in the result, by looking to see whether the Terms that it maps from are present in the source value. For target Terms that supersede multiple source Terms, there is the possibility that only some of them are present in the source value. In such a case one must fail with a “partial merge” error.

According to exemplary embodiments, the ADSGM406may be configured to implement processes for evergreening selections of terms from taxonomies, as the taxonomies evolve, whether or not the use of taxonomies is single or multi-dimensional. The ability to perform intersection, union and difference of hierarchical values (producing hierarchical values) is integral to the algorithm required. In addition, according to exemplary embodiments, the ADSGM406may be configured to re-express hierarchical values to form a new hierarchical values, regardless of whether the hierarchical values is on its own, or whether there are a number of constrained dimensions, each with a hierarchical values.

For example, according to exemplary embodiments, the algorithm doesn't actually look for Terms in the source value. Each source Term corresponds to a hierarchical value representing itself, and none of its children. A target Term supersedes a set of source Terms and it is considered “substantiated” if the logical union of the hierarchical values is present in the source value. Substantiation can be, for example, none so the target Term isn't a part of the result; full—so the target Term is a part of the result; partial this is a “partial merge” error, but the disclosure is not limited thereto.

Implementing the algorithm in this way copes with negatives, and negatives can be present the result. It also copes with arbitrary Taxonomy restructuring, where re-expression is actually possible. Taxonomy restructuring may likely result in many non-re-expressible facts.

One might think that the algorithm should fail if it encounters an unmapped target Term. To address this issue, the ADSGM406may be configured to check, prior to implementing the algorithm, that there are no unmapped source Terms in the source value. Therefore, it is confirmed that there are no loose source Terms that could possibly be mapped to the unmapped target, and therefore, one can treat it like a normal create.

The hierarchical values and hierarchical member classes in the hypercube library directly supports implementing this algorithm by the taxonomy incrementer.

It may be expected that depending on the source data and the nature of the change between taxonomy versions, there will be small proportion of “partial merge” errors. If term evolution data is not available, there will likely be a larger proportion of “deleted or replaced” errors. Consider a scenario in which Taxonomy T1has Terms {A, B}, T2has {A}, and T3has {A, C}. Attempting to re-express from T1to T3is problematic, as one can't tell if B is deleted and C is created, or if B is replaced by C. However, re-expressing from T1to T2and then from T2to T3is not problematic, as one now know that B is deleted and that C is created. The upshot is that when trying to re-express from Tm to Tn, one can use full Term Evolution Data to take large strides forward, but is not available, one has to take the smallest possible steps.

Re-expression may be computationally expensive. Thus, the results of re-expression implemented by the ADSGM406should be cached and stored.

Hypercube Library

According to exemplary embodiments, the hypercube library generated by the ADSGM406may be a mathematical construct. For example, the hypercube library can represent and calculate on single hierarchical values, and also N-dimensional hypercubes in which constrained dimensions are represented by hierarchical values. Another example use of the hypercube library may be establishing a set of specification-by-example use cases covering all possible combinations of inputs.

According to exemplary embodiments, the hypercube library may implement the following concepts, but the disclosure is not limited thereto: Abstract Value class—one is expected to provide own specialization of this; a handy String based Value class; Values, for example, statements of what Values are acceptable/unacceptable (HierValues, i.e., a set of hierarchically qualified Values, ideal for handling Terms from Taxonomies).

For example,FIG.5Cillustrates an exemplary snippet500cof a pseudo code in accordance with an exemplary use case described herein. Thus, in view of the pseudo code illustrated inFIG.5C, a system could record the fact that one is trading with a Booking Location=NORTH AMERICA/UNITED STATES, and that in this statement Booking Location is a dimension that is being described herein; NORTH AMERICA and UNITED STATES are terms from a location taxonomy; NORTH AMERICA/UNITED STATES is a HierValues including a HierMember for term NORTH AMERICA, which in turn is qualified by a nested HierValues including a HierMember for term UNITED STATES, which is not further qualified.

In the notation described herein, single values do not need {brackets}, but multiple values do. If value(s) are acceptable, then + can optionally precede the value(s), if unacceptable, then −. The/notation means “qualified by”. Thus, to cover all of EUROPE excluding UK and FRANCE, and also all of ASIA, and also just the CANADA part of NORTH AMERICA, it might be stated as follows:

According to exemplary embodiments, the taxonomy incrementer is a proof-of-concept piece of code that implements the re-expression algorithm, using the HierValues and HierMember classes in the hypercube library.

The taxonomy incrementer reads a file in which simple Taxonomies and Term Evolution Data can be defined, along with re-expression test cases. This allows quick and easy interactive scenario testing as follows, but the disclosure is not limited thereto:

In the above example, there are two Taxonomies, skeletal Tenn Evolution Data, and full Term Evolution Data. The following is the effect of using both of these to re-express simple and complex values. In the first example, it is not known if D is deleted, or replaced by C, E, C, H, K, O or Q, so re-expression fails. In the second example, it is known that D is replaced by E.

Referring back toFIGS.4,5A, and5B, according to exemplary embodiments, the accessing module414may be configured to access the database412that stores a historic version of taxonomy data (e.g., V1) and a new version of taxonomy data (V2). The analyzing module416may be configured to analyze the historic version of taxonomy data V1and the new version of taxonomy data V2. The determining module418may be configured to determine what changes have been made in connection with a particular reference data based on analyzing the historic version of taxonomy data V1and the new version of taxonomy data V2. The creating module420may be configured to create, based on determining, an association between the historic version of taxonomy data V1and the new version of taxonomy data V2corresponding to said particular reference data. The generating module422may be configured to generate consistent metadata from said association and automatically generate a data structure that illustrates history of evolution of taxonomy in connection with said particular reference data based on the metadata, thereby allowing downstream consumers (i.e. by utilizing client devices408(1)-408(n)) to understand and interpret the more complex scenario about what actually happened to the taxonomies during evolution, but the disclosure is not limited thereto. The data structure may be displayed on the GUI426.

According to exemplary embodiments, the designating module428may be configured to designate corresponding reference identifier (ID) for each term in the historic version of taxonomy data V1and the new version of taxonomy data V2and the comparing module430pray be configured to compare the reference ID for each term in the historic version of taxonomy data V1and the new version of taxonomy data V2to determine what changes have been made in connection with the particular reference data.

According to exemplary embodiments, the metadata may be a term evolution data construct that describes one or more of the following or a combination thereof: an unchanged term, a term superseded by another term, a term superseded by multiple terms, multiple terms superseded by a term, a term that is superseded by nothing, and term that supersedes nothing.

According to exemplary embodiments, supersede relations are relationships between terms in the historic version of taxonomy data and the crew version of taxonomy data of the same taxonomy.

According to exemplary embodiments, the determining module418may be configured to determine that a supersede relationships exists between a first term (T1) in the historic version of taxonomy data V1and a second term (T2) in the new version of taxonomy data V2when it is determined that the reference ID of T1is the same as the reference ID of T2and that there are no supersedes relationships documented from T2to anything in V1or from anything in V2to T1.

According to exemplary embodiments, the data structure may be an N-dimensional hypercube, and the implementing module432may be configured to implement the terms in versioned taxonomies to describe each coverage of a dimension of the N-dimensional hypercube; and implement a data type that supports representing the coverages and supports applying intersection, union, and difference operations on them to generate hierarchical values in the N-dimensional hypercube.

FIG.6illustrates a flow chart for generating data structure describing how taxonomies evolve and applying algorithm to evergreen uses of terms from those taxonomies in accordance with an exemplary embodiment.

In the process600ofFIG.6, at step S602, a database may be accessed that stores a historic version of taxonomy data and a new version of taxonomy data. At step S604, the historic version of taxonomy data and the new version of taxonomy data may be analyzed. At step S606, it may be determined what changes have been made in connection with a particular reference data based on analyzing the historic version of taxonomy data and the new version of taxonomy data. At step S608, an association between the historic version of taxonomy data and the new version of taxonomy data may be created corresponding to said particular reference data. At step S610, consistent metadata may be generated from the created association. At step S612, a data structure may be generated that illustrates history of evolution of taxonomy in connection with said particular reference data based on the metadata, thereby allowing downstream consumers (i.e., by utilizing client devices) to understand and interpret the more complex scenario about what actually happened to the taxonomies during evolution, but the disclosure is not limited thereto.

According to exemplary embodiments, the process600may further include: designating corresponding reference identifier (ID) for each term in the historic version of taxonomy data and the new version of taxonomy data; and comparing the reference ID for each term in the historic version of taxonomy data and the new version of taxonomy data to determine what changes have been made in connection with the particular reference data.

According to exemplary embodiments, the process600may further include: determining that a supersede relationships exists between a first term (T1) in the historic version of taxonomy data (V1) and a second term (T2) in the new version of taxonomy data (V2) when it is determined that the reference ID of T1is the same as the reference ID of T2and that there are no supersedes relationships documented from T2to anything in V1or from anything in V2to T1.

According to exemplary embodiments, wherein the data structure may be an N-dimensional hypercube, and the process600may further include: implementing the terms in versioned taxonomies to describe each coverage of a dimension of the N-dimensional hypercube.

According to exemplary embodiments, the process600may further include: implementing a data type that supports representing the coverages and supports applying intersection, union, and difference operations on them to generate hierarchical values in the N-dimensional hypercube.

According to exemplary embodiments, the ADSGD402may include a memory (e.g., a memory106as illustrated inFIG.1) which may be a non-transitory computer readable medium that may be configured to store instructions for implementing an ADSGM406for automatically generating a data structure as disclosed herein. The ADSGD402may also include a medium reader (e.g., a medium n reader112as illustrated inFIG.1) which may be configured to read any one or more sets of instructions, e.g., software, from any of the memories described herein. The instructions, when executed by a processor embedded within the ADSGM406or within the ADSGD402, may be used to perform one or more of the methods and processes as described herein. In a particular embodiment, the instructions may reside completely, or at least partially, within the memory106, the medium reader112, and/or the processor104(seeFIG.1) during execution by the ADSGD402.

For example, the instructions, when executed, may cause the processor104to perform the following: accessing a database that stores a historic version of taxonomy data and a new version of taxonomy data; analyzing the historic version of taxonomy data and the new version of taxonomy data; determining what changes have been made in connection with a particular reference data based on analyzing the historic version of taxonomy data and the new version of taxonomy data; creating, based on determining, an association between the historic version of taxonomy data and the new version of taxonomy data corresponding to said particular reference data; generating consistent metadata from said association; and generating a data structure that illustrates history of evolution of taxonomy in connection with said particular reference data based on the metadata, thereby allowing downstream consumers (i.e., by utilizing client devices) to understand and interpret the more complex scenario about what actually happened to the taxonomies during evolution, but the disclosure is not limited thereto.

According to exemplary embodiments, the instructions, when executed, may further cause the processor104to perform the following: designating corresponding reference identifier (ID) for each term in the historic version of taxonomy data and the new version of taxonomy data; and comparing the reference ID for each term in the historic version of taxonomy data and the new version of taxonomy data to determine what changes have been made in connection with the particular reference data.

According to exemplary embodiments, the instructions, when executed, may further cause the processor104to perform the following: determining that a supersede relationships exists between a first term (T1) in the historic version of taxonomy data (V1) and a second term (T2) in the new version of taxonomy data (V2) when it is determined that the reference ID of T1is the same as the reference ID of T2and that there are no supersedes relationships documented from T2to anything in V1or from anything in V2to T1.

According to exemplary embodiments, the data structure may be an N-dimensional hypercube, and the instructions, when executed, may further cause the processor104to perform the following: implementing the terms in versioned taxonomies to describe each coverage of a dimension of the N-dimensional hypercube; and implementing a data type that supports representing the coverages and supports applying intersection, union, and difference operations on them to generate hierarchical values in the N-dimensional hypercube.

According to exemplary embodiments as disclosed above inFIGS.1-6, technical improvements effected by the instant disclosure may include platforms for generating a data structure describing how taxonomies evolve and applying algorithm to evergreen uses of terms from those taxonomies, thereby allowing downstream consumers to understand and interpret the more complex scenario about what actually happened to the taxonomies during evolution, but the disclosure is not limited thereto.