WO2024253922A1 - Synthesizing transformations to relationalize data tables - Google Patents
Synthesizing transformations to relationalize data tables Download PDFInfo
- Publication number
- WO2024253922A1 WO2024253922A1 PCT/US2024/031519 US2024031519W WO2024253922A1 WO 2024253922 A1 WO2024253922 A1 WO 2024253922A1 US 2024031519 W US2024031519 W US 2024031519W WO 2024253922 A1 WO2024253922 A1 WO 2024253922A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- conforming
- data table
- tables
- transformational
- relational
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0475—Generative networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/0895—Weakly supervised learning, e.g. semi-supervised or self-supervised learning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/09—Supervised learning
Definitions
- Relational models organize data into relational data tables. Theoretically, once data is entered in the relational data tables, programs allow the data to be easily queried and processed to provide useful information. However, in practice many relational data tables do not conform to the relational models and the usefulness of the data is greatly diminished.
- SUMMARY [0002] This patent relates to relational databases and associated relational data tables. In standard or conforming relational data tables each row should correspond to an entity and each column should correspond to an attribute of the entity.
- Auto- Tables provides a technical solution that obviates the need for users to manually make transformations or to manually program transformations.
- One example Auto-Tables implementation can obtain conforming relational data tables and can generate training data without human labelling by identifying a transformational operator that will transform an individual conforming relational data table to a non-conforming data table and an inverse transformational operator that will transform the non-conforming data table back to the individual conforming relational data table.
- the example can train a model with the training data.
- the trained model can synthesize programs to transform other non-conforming data tables to conforming relational data tables.
- FIGS. 1, 4, and 13 illustrate example systems that can implement Auto-Tables concepts consistent with some implementations of the present concepts.
- FIGS. 2A-2D and 3 show example Auto-Tables data table transformations that are consistent with some implementations of the present concepts.
- FIG.5 illustrates an example graphical representation of Auto-Tables transformations that is consistent with some implementations of the present concepts.
- FIGS.6 and 8 show example Auto-Tables architectures that are consistent with some implementations of the present concepts.
- FIGS.7A and 7B show example Auto-Tables model configurations that are consistent with some implementations of the present concepts.
- FIGS.9-11 illustrate example graphs that are consistent with some implementations of the present concepts.
- FIG.12 illustrates an example flowchart that is consistent with some implementations of the present concepts. DETAILED DESCRIPTION OVERVIEW [0014] This patent relates to relational databases and associated relational data tables.
- Modern data analytics like structured query language (SQL) and business intelligence (BI) are predicated on a standard or conforming format of relational data tables, where each row corresponds to a distinct “entity”, and each column corresponds to an “attribute” for the entity that contains homogeneous data-values.
- Such data tables are de facto ‘standard’ or ‘conforming’ in relational databases, such that database users may take this for granted.
- a significant fraction of data tables “in the wild” e.g., discoverable on the internet
- actually fail to conform to such standards e.g., are non-conforming.
- These non-conforming data tables are considerably more difficult to query using SQL-based tools than standard or conforming data tables.
- FIG. 1 shows an organizational architecture or system 100A.
- the organizational architecture can be viewed as entailing three main aspects.
- the first aspect involves self-supervised training data generation 102.
- the second aspect involves model training 104.
- the third aspect involves automatically converting user data tables to conforming relational data tables (e.g., automatic conversion) 106.
- an Auto-Tables component 108 can manage the self-supervised training data generation 102, the model training 104, and/or the automatic conversion 106 of user data tables to conforming relational data tables 110.
- Self-supervised training data generation 102 starts with conforming relational data tables 110 and a set 112 of transformational operators (e.g., operators) 114.
- Example transformational operators 114 are described in more detail below starting in relation to FIGS. 2A-2D and Table 1.
- the self-supervised training data generation leverages a conceptual recognition that operations 116 and inverse operations 118 can be employed to transform conforming relational data tables 110 to non-conforming data tables 120 and back again. This aspect is described in more detail below relative to FIG. 4. Transformational operators 114 that perform the operation 116 and the inverse operation 118 (e.g., pairs of transformational operators 114) can be viewed as training data 122.
- Model training 104 can utilize the training data 122 to train a deep learning network or model 124 to produce a trained deep learning model 126. As mentioned above, the model training is achieved without any human labelled training data and instead uses the training data 122 produced via the self-supervised training data generation 102.
- Automatic conversion 106 involves supplying non-conforming data tables 128 to the trained model 126.
- the trained model 126 can synthesize a program 130 to address the supplied non-conforming data tables 128.
- the synthesized program 130 can convert the non- conforming data tables 128 into conforming relational data tables 132.
- identifier 128 is utilized with (user-supplied) ‘non-conforming data tables’ in relation to the automatic conversion 106 to follow the flow of FIG. 1.
- non-conforming data tables 128 are analogous to (generated) non-conforming data tables 120 described relative to the self-supervised training data generation 102.
- identifier 132 is utilized with (generated) ‘conforming relational data tables’ in relation to the automatic conversion 106 to follow the flow of FIG. 1.
- conforming relational data tables 132 are analogous to conforming relational data tables 110 described relative to the self-supervised training data generation 102.
- conforming relational data tables 110 and 132 can be viewed as equivalent and non-conforming data tables 120 and 128 can be viewed as equivalent).
- the present concepts provide a technical solution that allows all of the functionality of FIG. 1 to be achieved without any user involvement. For instance, human involvement is not needed to label training data and human involvement is not needed to manually convert non- conforming data tables to conforming relational data tables or to manually write a program to perform the conversion/transformation.
- FIGS. 2A-2D show real examples of non-conforming data tables 128 taken from spreadsheets to demonstrate these common issues.
- Non-conforming data tables 128 are commonly found at many sites on the internet.
- non-conforming data tables 128 e.g., input tables
- the non-conforming data tables 128 need to be transformed to produce corresponding conforming relational data tables 132 (e.g., output tables) that are relational and easy to query.
- the present concepts can provide a technical solution that automatically and without human effort converts these non-conforming data tables 128 to conforming relational data tables 132.
- No human involvement means that humans do not have to label training data, humans do not have to manually transform the non- conforming data tables, and humans do not have to write programs to transform the non- conforming data tables.
- the technical solution can be provided by the Auto-Tables component 108.
- FIGS. 2A-2D collectively show example conversions from non-conforming data tables 128 to conforming relational data tables 132. These conversions can be accomplished by the automatic conversion 106.
- the automatic conversion 106 can employ individual transformational operators 114 from the set 112 of transformational operators as part of synthesized program 130 (shown in FIG.1).
- FIGS.2A-2D may be presented to the user on a user interface (UI) to allow the user to understand what conversions are being performed.
- UI user interface
- visual organizational clues can be utilized to aid the reader.
- the visual organizational clues can entail colors and/or cross- hatching of rows and/or columns that are related.
- the illustrated configuration employs cross- hatching to indicate related columns and/or rows.
- FIG. 2A shows non-conforming data table 128(1) (e.g., input table) that is not a standard relational data table, because each column marked with cross-hatching contains sales numbers for only a single day (“19-Oct”, “20-Oct”, etc.).
- non-conforming data table 128(1) makes it easy for humans to eyeball changes day-over-day by reading horizontally, it is unfortunately hard to analyze using SQL. [0024] For purposes of explanation, assume that a user needs to compute the 14-day average of sales, starting from “20-Oct” – for this non-conforming data table 128(1).
- conforming relational data table 132(1) In conforming relational data table 132(1), the homogeneous columns in the original table (marked in cross-hatching) are transformed into only two new columns: “Date” and “Units Sold”, using a transformation operation called “stack,” which is performed by transformational operator 114(1).
- This transformed conforming relational data table 132(1) contains the same information as the input table, but is much easier to query. For instance, the same 14-day moving average can be computed using a succinct range-predicate on the “Date” column, where the starting date “20- Oct” is a literal parameter that can be easily changed into other values. [0025] FIG.
- FIG.2B shows another example non-conforming data table 128(2) where every three columns form a group, representing “Revenue/Units Sold/Margin” for a different year, repeating many times (visually grouped by various cross-hatching patterns).
- Non-conforming data table 128(2) with these repeating column-groups is also hard to query just like FIG.2A. In this case the required transformation operator 114(2) performs a “wide-to-long” operation to generate conforming relational data table 132(2).
- FIG.2C shows another example non-conforming data table 128(3) and associated automatic conversion 106(3) to conforming relational data table 132(3).
- Non-conforming data table 128(3) shows an example where each hotel corresponds to a column (whose names are in row 1), and each “attribute” of these hotels corresponds to a row. Note that in this case values in the same rows are homogeneous (marked in different cross-hatching), unlike relational data tables where values in the same columns are homogeneous.
- a transformation called “transpose” is employed in this case by transformational operator 114(3) to make the resulting conforming relational data table 132(3).
- the conforming relational data table 132(3) is easy to query.
- FIG.2D shows another example non-conforming data table 128(4) and associated automatic conversion 106(4) to conforming relational data table 132(4).
- the columns are represented as rows. This is similar to FIG. 2C, except that the rows in this case are “repeating” in groups, thus requiring a different transformational operator called “pivot” which is performed by transformational operator 114(4).
- the resulting conforming relational data table 132(4) is easy to query.
- the Auto-Tables component 108 may present the content of FIGS.2A-2D (or a subset thereof) on a user interface (UI) to allow a user to view the conversions. This can allow the user to understand the conversions and/or accept or reject the conversions, depending on the implementation.
- UI user interface
- Auto-Tables component 108 may generate a UI that allows the user to upload or link their data tables.
- the Auto-Tables component 108 can cause transformations to be performed on non-conforming data tables and show the transformations to the user in UIs similar to FIGS.2A-2D.
- the user can accept or reject the transformations.
- the user feedback can be used to refine the trained model 126 (FIG.
- FIG. 1 introduces the set 112 of transformational operators 114 that can be employed during the automatic conversion of the non-conforming data tables 128 to conforming relational data tables 132.
- FIGS.2A-2D illustrate four example transformational operators 114(1), 114(2), 114(3), and 114(4) from the set 112.
- Table 1 shows these four transformational operators 114(1)-114(4) as well as four additional example transformational operators 114(5)-114(8) of the set 112 in a first column.
- the operator names relate to domain specific language (DSL) names.
- Table 1 also shows equivalents for the transformational operators in other languages in a second column (e.g., the names for equivalent operators in other languages, such as Python and Pandas).
- the table shows operator parameters in a third column, and a description in the fourth column.
- Operator Python Pandas Operator Description (example in i l t t th i nto nto ice nto nto in a dy [0030]
- Table 1 shows the set 112 of eight transformation operators 114 commonly utilized to relationalize tables. Note that while this set 112 includes eight transformational operators, more or less transformational operators can be employed in a set to accomplish transformations on the encountered data tables.
- the Auto-Tables concepts can utilize self-supervision for training that is not tied to the specific choices of operators, the concepts can be easily extended to include additional operators for new functionalities.
- the first column of Table 1 shows the name of the “operator,” which may be instantiated differently in different languages (e.g., in Python or R), with different names and syntax.
- the second column of the table shows the equivalent Pandas operator in Python, which is a popular API for manipulating tables among developers and data scientists.
- Stack operator 114(1) is a Pandas operator that is also known as melt and unpivot in other contexts. The stack operator collapses contiguous blocks of homogeneous columns into two new columns. As shown in FIG.
- the present Auto-Tables concepts aim to synthesize complete transformation steps that can execute on non-conforming data tables.
- Wide-to-long operator 114(2) collapses repeating column groups into rows.
- FIG. 2B shows such an example, where “Revenue/Units Sold/Margin” from different years form column-groups that repeat once every three columns.
- the wide-to-long operator 114(2) has three parameters, where start_idx and end_idx are similar to the ones used in stack. It has an additional parameter called “delim”, which is the delimitor used to split the original column headers, to produce new column headers and data-values.
- Transpose operation 114(3) is a table-restructuring operator that converts rows to columns and columns to rows, which is also used in other contexts such as in matrix computation.
- FIG. 2C shows an example non-conforming data table (e.g., input table), for which transpose is needed to produce the conforming relational data table (e.g., output table).
- the conforming relational data table is relational and easy to query.
- Invoking transpose operation 114(3) requires no parameters, as all rows and columns will be transposed.
- the Pivot operation 114(4) converts rows to columns, as shown in the example in FIG. 2D. In this way, the pivot operation is similar to the transpose operation. However, in this case rows show repeating-groups (whereas in wide-to-long columns show repeating-groups), which need to be transformed into columns, like shown on FIG.2D.
- Pivot operation 114(4) has one parameter, “repeat_frequency”, which specifies the frequency at which the rows repeat in the non-conforming data table (e.g., input table). In the case of FIG.2D, this parameter should be set to four, as the cross-hatching pattern of rows would suggest.
- Table 1 has 4 additional table-restructuring operators 114(5-114(8).
- Explode operator 114(5) is an operator that converts columns with composite values (which violates the First Normal Form of relational data tables), into atomic values. An explode would convert each atomic value into a separate row, making the resulting table more amenable to analysis.
- the explode operator 114(5) has 2 parameters, a “column_idx” parameter to specify which column to operate on, and a “delim” parameter that specifies how composite cells can be broken into atomic values.
- Ffill 114(6) is an operator that fills values into structurally empty cells in data tables. Unlike empty cells that may occur randomly inside tables, structurally empty cells are often organized hierarchically for visual browsing, which are the key visual signals for the algorithms to detect.
- Subtitle 114(7) is an operator that transforms tables that embed subtitle information, which are mixed together with data-rows, but with visual clues, such as being empty for all cells in the same row, to the right of the sub-title cell.
- Subtitle has two parameters, column_idx that identifies the column that contains subtitle information, and row_filter that filters to rows that actually contain subtitles.
- None 114(8) is a special no-op operator, to indicate that an input table is already relational, for which no additional transformation is needed. None does not require any parameters.
- FIGS. 2A-2D show examples where a non-conforming data table can be transformed to a conforming relational data table with one operation. Some transformations entail multiple operations.
- FIG. 3 shows an example non-conforming data table 128(5).
- synthesized program 130 first causes a transpose operator 114(3) to transform the non-conforming data table 128(5) into an intermediate non-conforming data table 128(6) by swapping rows and columns.
- synthesized program 130 causes stack operation 114(1) to transform the intermediate non-conforming data table 128(6) into conforming relational data table 132(5) by collapsing homogeneous columns (C to G) into two new columns. Stated another way, a first operator transforms the input table into a second data table.
- a second operator transforms the second data table into a conforming relational data table.
- the first and second operators operate serially, with the second operator operating on the output of the first operator.
- the functionalities listed in Table 1 already exist in languages such as R and Python, they are not easy for users to invoke correctly. For instance, with existing manual techniques, users need to visually identify different structural issues in a non-conforming data table that makes it hard to query (e.g., repeating row/column groups shown in FIG.2A-2D), which is not obvious to non-expert users. Next users need to map the visual pattern identified from the non-conforming data table (e.g., input table) to a corresponding operator in Table 1 that can handle such issues.
- the present concepts provide a technical solution that synthesizes transformations without examples.
- This technical solution can automatically synthesize table-restructuring steps to relationalize data tables, using the Domain Specific Language (DSL) of operators, such as those in Table 1, without requiring users to provide examples.
- DSL Domain Specific Language
- One key intuition of why examples are not needed for this restructuring problem lies in the observation that the required transformations to relationalize a data table are almost always unique given the data table, as the examples in FIGS. 2A-2D would all show. This is because the transformations required in this problem only “restructure” data tables, and do not actually “alter” the table content.
- the present concepts offer a novel self-training technical solution that exploits the inverse functional relationships between operators (e.g., the inverse of “stack” is known as “unstack”), to automatically build large amounts of training data without requiring humans to label training data.
- This aspect is described in more detail below relative to FIG.5.
- the present concepts can include a computer-vision inspired model specifically designed for the data table transformation task.
- the computer-vision inspired model scans through rows and columns to extract salient tabular features, reminiscent of how computer-vision models extract features from image pixels for object detection.
- the program synthesis problem can be defined as detailed below. [0056] Definition 1.
- ⁇ (transpose(), stack(start_idx: ⁇ 2015′′, end_idx: ⁇ 2020′′)).
- the first step “transpose” swaps the rows with columns
- FIG.4 shows an example Auto-Tables architecture on a system 100B.
- This system 100B is similar to system 100A of FIG. 1, but offers additional details relative to some aspects.
- the system 100B is divided into events that occur in offline training time 402 and events that occur in online inference time 404.
- the Auto-Tables system uses a “training data generation” module 406 that consumes large collections of relational tables ⁇ , to produce training pairs 410.
- An “input-only synthesis” module/model 412 learns-to-synthesize (e.g., is trained) using the training data pairs 410.
- the input-only synthesis module/model 412 produces top-k programs 414.
- An “input-output re-ranking” module/model 416 holistically considers both the input table and the output table (produced from the synthesized program), to find the most likely program (e.g, re-ranks the programs generated by the input-only synthesis module 412).
- the input-only synthesis module/model 412 can be viewed as a module that trains a model of the same name.
- the input-output re-ranking module/model 416 can be viewed as a module that trains a model of the same name.
- the online inference-time 404 portion closely follows the offline steps, and directly invokes the (now trained) input-only synthesis module/model 412 and the input-output re-ranking module/model 416 that were trained in the offline training time 402.
- a test input table 418 e.g., user data tables
- a user interface such as a dashboard can be generated that facilitates the data table transformation process to conforming relational data tables.
- the user or other source can paste or otherwise link or identify their test input data table to the dashboard.
- the input table 418 is passed through the input-only synthesis model 412, to identify top- ⁇ candidate programs 414.
- the top- ⁇ candidate programs are then re- ranked by the input-output model 416 for final predictions in the form of re-ranked programs 422.
- FIG.2A-2D demonstrate that there are clear patterns in the input tables that can be exploited (e.g., repeating column-groups and row-groups) to predict required transformations for a given data table. Note that these patterns are “visual” in nature, which can likely be captured by computer-vision-like algorithms.
- the present concepts include a novel self-supervision framework leveraging the inverse functional-relationships between operators, to automatically generate large amounts of training data 122 without using human generated labels.
- FIG.5 shows a graphical representation 500 of inverse functional relationships of operators 114 between non-conforming data tables 120 and conforming relational data tables 110.
- the inverse operators can be leveraged to generate training data (122, FIG. 1).
- the technique can start from any relational table R, apply its inverse operator O -1 to obtain O -1 (R).
- operator O is analogous to operator 114 of FIG.1
- relational table R is analogous to conforming relational data table 110 of FIG.1
- non-relational table T is analogous to non-conforming data table 120 of FIG.1.
- operator ⁇ e.g., “stack” 114(1)
- the inverse of “transpose” 114(3) is “transpose” 114(3)
- the inverse of “stack” 114(1) is “unstack” 114(9)
- the inverse of “wide-to-long” 114(2) can be constructed as a sequence of three steps (“stack” 114(1) followed by “split” 114(10) followed by “pivot”) 114(4)).
- the significance of the inverse operators is that it allows the technique to automatically generate training examples.
- ⁇ ⁇ ⁇ ( ⁇ )
- ⁇ ⁇ ⁇ ( ⁇ )
- the technique can easily produce such training examples at scale, by sampling: (1) different relational tables ⁇ ; (2) different operators ⁇ ; and (3) different parameters associated with each ⁇ , therefore addressing the lack of training data technical problem described above.
- the overall steps of the self-supervised training data generation 102 are shown in Algorithm 1, where Line 2, Line 3, and Line 6 correspond to the sampling of operators ( ⁇ ), tables ( ⁇ ), and parameters ( ⁇ ), respectively, that together create diverse training examples. Note that in Line 3, an additional “data augmentation” step is performed to create even more diversity in training. This aspect is described in more detail below.
- Data augmentation is a technique in computer vision and related fields to enhance training data and improve model robustness.
- the present techniques can augment each relational table ⁇ by (1) Cropping, or randomly sampling contiguous blocks of rows and columns in ⁇ to produce a new table ⁇ ′; and (2) Shuffling, or randomly reordering the rows/columns in ⁇ to create a new ⁇ ′.
- Cropping or randomly sampling contiguous blocks of rows and columns in ⁇ to produce a new table ⁇ ′
- Shuffling or randomly reordering the rows/columns in ⁇ to create a new ⁇ ′.
- some implementations can start from over 15K relational tables crawled from public sources and create around 20 augmented tables for each relational table ⁇ .
- Algorithm 1 Auto-Gen Training Examples.
- input DSL operators ⁇ , large collections of relational tables
- output Training table-label pairs: ( ⁇ , ⁇ ⁇ ) 1 ⁇ ⁇ ⁇ 2 foreach ⁇ in ⁇ do 3 foreach ⁇ in ⁇ do 4 foreach ⁇ ′ in Augment( ⁇ )// Crop rows and columns 5 do 6 ⁇ ⁇ sample valid parameter from space ⁇ ( ⁇ ) 7 ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ construct the inverse of ⁇ ⁇ 8 ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ( ⁇ ′) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ [0074]
- the techniques can employ an “input-only” model that takes ⁇ as input, to predict a suitable transformation ⁇ ⁇ .
- FIG. 6 shows a model architecture 600 for input-only synthesis.
- the model architecture 600 consists of four sets of layers: (1) table embedding layer 602, (2) dimension reduction layer 604, (3) feature extraction layer 606, and (4) output layer 608.
- the table embedding layer 602 encodes each cell in ⁇ into a vector, to obtain an initial representation of ⁇ for training.
- the technique captures both (1) the “semantic features” (e.g., people-names vs. company-names), and (2) the “syntactic feature” (e.g., data-type, string-length, punctuation, etc.).
- the “semantic features” e.g., people-names vs. company-names
- the “syntactic feature” e.g., data-type, string-length, punctuation, etc.
- Sentence-BERT a state-of-the-art embedding in NLP
- BERT maps each cell into a 384-dimension vector that encodes its semantic meaning.
- syntactic features each cell is encoded using 39 pre-defined syntactic attributes (data types, string lengths, punctuation, etc.). Concatenating the syntactic and semantic features produces a 423-dimension vector for each cell.
- the initial representation from the pre-trained Sentence-BERT of the table embedding layer 602 has a large number of dimensions (with information that may be superfluous to this task, which can slow down training and increase the risk of over-fitting).
- the dimension reduction layer 604 address this superfluous information using two convolution layers with 1 ⁇ 1 kernels, to reduce the dimensionality from 423 to 64 and then to 32, to produce ⁇ ⁇ ⁇ ⁇ 32 tensors.
- the feature extraction layers 606 are reminiscent of convolutional neural network (CNN) layers but are specifically designed for the data table task. Recall from FIGS.2A-2D that the key signals for this task are: (1) identify whether values in row or column-directions are “similar” enough to be “homogeneous” (e.g., FIG.2B vs. FIG.2C); and (2) identify whether entire rows or columns are “similar” enough to show repeating patterns (e.g., FIG.2B vs. FIG.2D).
- CNN convolutional neural network
- signal (1) above can be extracted by comparing the representations of adjacent cells in row- and column-directions.
- signal (2) can be extracted by computing the average representations of each row and column, which can then be used to find repeating patterns.
- the present implementations can employ feature-extraction layers inspired by convolution filters that are popular in CNN architectures to extract visual features from images. Specifically, as shown in FIG.6, the feature extraction layer 606 uses 1x2 and 1x1 convolution filters followed by average-pooling, in both row- and column-directions, to represent rows/columns/header.
- 1x2 filters can easily learn-to-compute signal (1) above (e.g., 1x2 filters with +1/-1 weights can identify the representation differences between neighboring cells, which when averaged, can identify homogeneity in row/column directions).
- 1x1 filters can easily learn- to-compute signal (2) above (e.g., 1x1 filters with +1 weights followed by average-pooling, correspond to representations for entire rows/columns, which can be used to find repeating patterns in subsequent layers).
- FIG. 7A and 7B collectively show example model configurations 700 to demonstrate why these 1x1 and 1x2 filters are effective for extracting tabular features.
- FIG. 7A shows a simplified example, when using Column-B of FIG. 2A as input at 702, which has a list of values “Sports”, “Electronics”, etc. These raw cell values first pass through the embedding step shown at 704, which is discussed relative to FIG.8.
- the embedding step 704 produces a row of features for each value, with both syntactic features (under the headers “is-string”, “str-length”, etc.), and semantic features (under the header “s-BERT” for sentence-BERT). This results in an embedding table 706, where each row corresponds to an input cell.
- this embedding table 706 is passed through 1x1 and 1x2 convolution filters 708, which perform element-wise dot-product operations. Assume the use of a simple ‘1x1 filter’ shown at the top of the FIG. 7A, with weights [1,0, ... ]. Because only the first bit of this simple filter is 1 and the rest is 0, performing a dot-product on the embedding table 706 essentially only extracts the “is-string” type information of each cell, which in this case is all 1, leading to a matrix of [1,1,1,1] (since all cells are of type string) at 710.
- FIG.7B shows the same operations in the row-direction. which uses Row-2 of the table in FIG. 2A as an example.
- a list of heterogeneous cell values includes “Huffy 18 in.,” “Sports,” “s_sk_101,” “5,” etc.
- Average-pooling would then produce 0.33 here, indicating inconsistent types for the list of values in the row-direction (0 would indicate homogeneity, with +1/-1 filter-weights).
- Other 1x2 filters would work in similar manners, to identify more signals of heterogeneity in the row-direction, all of which are important ingredients to identify latent patterns in the table and corresponding transformations.
- These first-levels of features-values from row/column-directions will then go through a second-level of 1x1 and 1x2 convolution filters, to compare and identify similar rows/columns (based on row/column representation from 1x1 filters), to ultimately reveal repeating rows and columns like the color/cross-hatched-coded patterns shown in FIGS. 2A-2D.
- output layer(s) 608 use two fully connected layers followed by softmax classification. This produces an output vector that encodes both the predicted operator-type, and its parameters. For example, since one technique considers eight possible operator types as shown in Table 1, the technique can encode this as an eight-dimension one-hot vector. Similarly, as shown in regard to the output layer 608 parameters of each operator can be represented as additional bits in the same output vector, resulting in an output vector of 270 dimensions shown on the extreme right of FIG. 6, which in effect makes multiple predictions (operator-type and parameters) simultaneously, for a given ⁇ .
- predictions can be invoked step-by-step until no suitable transformation can be found.
- the most likely transformation ⁇ ⁇ ⁇ for ⁇ can be found using Equation (4), such that the process can apply ⁇ ⁇ ⁇ on ⁇ to produce an output table ⁇ ⁇ ⁇ ( ⁇ ).
- the process can be iterated, and at step (2) ⁇ ⁇ ⁇ ( ⁇ ) can be fed as the new input table into the model, to predict the most likely ⁇ ⁇ ⁇ ( ⁇ ), and produce an output table ⁇ ⁇ ⁇ ( ⁇ ⁇ ⁇ ( ⁇ )).
- Algorithm 2 starts with an empty pipeline ⁇ and the original input table ⁇ . Each iteration invokes model ⁇ on top- ⁇ output tables from the last iteration, to obtain the top ⁇ candidate operators for each (Line 6). The predicted transformations are performed and expand each ⁇ with one additional predicted step to get ⁇ ⁇ (Line 8), whose probability can be computed as the product of the probability of its operators (Line 9). If a predicted operator is “none,” a terminal state is reached and saved as a candidate pipeline (Line 10-11). Otherwise, the current pipeline is kept in the beam for further search (Line 13). At the end of each iteration, all partial pipelines are ranked by probabilities, and only the top ⁇ pipelines with the highest probability are kept (Line 14).
- FIG. 8 expands on this aspect and shows an example input/output-based re-ranking model architecture 800 that includes a transformation layer 802, embedding layer 804, and fully connected layer 806.
- the input-only synthesis model (412, FIG. 4) described above produces top- ⁇ likely operators ⁇ ⁇ , ⁇ ⁇ [ ⁇ ] ⁇ (e.g., the technique considers top-8 operators for re-ranking in these experiments)
- the re-ranking model will look at all output transformed tables ⁇ ⁇ ( ⁇ ), ⁇ ⁇ [ ⁇ ] ⁇ and aims to generate a re-ranking score for each of them indicating which operator is more suitable based on the output transformed tables.
- the technique first converts each transformed data table into a feature vector using table embedding layer 602, dimension reduction layer 604, and feature extraction layer 606 as shown in FIG.6. Since the input-only model has been trained well at this time, the technique directly reuses the architecture and weights of these layers from the pre-trained input-model. [00109] The technique then concatenates the feature vectors of all transformed tables and uses fully connected layers followed by a softmax function to produce a ⁇ -dimension vector as re-ranking scores. For training, the technique considers the re-ranking as a classification task to predict which of the ⁇ transformed tables is the ground truth. Thus, the training loss can be computed using cross-entropy loss.
- an algorithm ⁇ may generate top- ⁇ transformations ( ⁇ ⁇ ⁇ , ⁇ ⁇ ⁇ , ... ⁇ ⁇ ⁇ ), ranked by probabilities, for users to inspect and pick.
- Foofah synthesizes transformations based on input/output examples. 100 cells from the top-right of the ground-truth output table were used for Foofah to synthesize programs, which simulate the scenario where a user types in 100 output cells (a generous setting as it is unlikely that users are willing to provide so many examples in practice). Foofah was tested using the original implementation and was timed-out in each case after 30 minutes.
- FlashRelate FR is another approach to synthesize transformations based on input/output examples.
- SQLSynthesizer is a SQL-by-example algorithm that synthesizes SQL queries based on input/output examples. SQLSynthesizer was provided with 100 example output cells, and also set a time-out of 30 minutes.
- Scythe is another SQL-by-example method. Scythe was provided with 100 example output cells, like previous methods.
- TaBERT is a table representation approach developed in the NLP literature, and pre-trained using table-content and captions for NL-to-SQL tasks. To test the effectiveness of TaBERT in the transformation task, the table representation in Auto-Tables (i.e., output of the feature extraction layer in Figure 5) was replaced with TaBERT’s representation, and trained the following fully connected layers using the same training data.
- TURL is another table representation approach for data integration tasks. Similar to TaBERT, the effectiveness of TURL was tested by replacing Auto-Tables representation with TURL’s.
- GPT is a family of large language models pre-trained on text and code, which can follow instructions to perform a variety of tasks. While GPT is not expected to perform well on Auto-Tables tasks (which are tabular in nature), the comparison was performed nevertheless to establish a baseline. Specifically, the testing used few-shots in-context learning by prompting GPT-3.5 with pairs of input-table/target-operator (e.g., FIGS.2A-2D). The task was simplified for GPT significantly, by asking it to only predict “operator types” (listed in Table 1), without requiring it to predict parameters. [00128] Table 3 shows experimental results and quality comparison between Auto-Tables and the baselines, evaluated on the benchmark with the 194 test cases shown in Table 2.
- Table 7 Ablation Studies of Auto-tables 5 3 9 [00141] The contribution of input/output re-ranking is now discussed. The contribution of re-ranking model 416 (FIGS. 4 and 8) is studied by comparing the performance of Auto-Tables with and without re-ranking. Table 7 shows that the “Full” method (with re-ranking) produces substantially better Hit@1 and Hit@2 compared to “No Re-rank.” [00142] To study the benefits of data augmentation in training data generation, augmentation was disabled when generating training data (i.e., using only the base relational tables). Table 7 shows this result under “No Aug”, which suggests that the Hit@k drops substantially, underscoring the importance of data augmentation.
- the testing evaluates the method with alternative filters.
- Second, all filters are replaced with filters of size 5x5, which is common in computer vision tasks. The result under “5x5” shows another substantial drop.
- Table 7 shows that both results confirm the effectiveness of the design that is tailored to data tables.
- the testing next examines sensitivity analysis to understand the effect of different settings in Auto-tables. Varying input size can be tested. Some Auto-Tables versions feed the top 100 rows and left-most 50 columns from the input data table ⁇ into the model, which is typically enough to correctly predict the correct transformations.
- FIG.10 shows a graph 1000 of its effect on model performance.
- Graph 1000 reflects varying the number of rows/columns used and shows the input-only model performance. When the number of rows/columns that the model uses are increased, the resulting quality improves until it plateaus at about 30 columns and 50 rows, in this example.
- FIG. 11 shows a graph 1100 that reflects the quality of Auto-Tables input-only model with different numbers of convolution filters (the total number of 1x1 and 1x2 filters for rows/columns before AvgPool in the feature extraction layer 606 in FIG. 6). As shown in FIG. 11, using 32 filters is substantially better than 4 filters, as it can extract more features.
- the testing next examines varying embedding methods. Some implementations initially employed the powerful (but expensive) sentenceBERT as the semantic embedding, which is known to excel in natural language processing NLP tasks. The testing explores how alternative embeddings, such as GloVe, and fastText, would perform in the task. The performance of the input-only model is shown with different embeddings in Table 8.
- Table 9 Confusion matrix for single-step top-1 predictions.
- Table 10 shows the accuracy of the parameter predictions for different operators at the top-1 position. Despite the large space of possible parameters, the predictions are surprisingly accurate, showing the effectiveness of the CNN-inspired model in extracting patterns from tabular data. Table 10: Accuracy of operator parameter predictions.
- the Auto-Tables concepts include a self-supervision framework unique in the data table transformation setting to overcome the lack of training data, by exploiting the inverse functional relationships between operators to auto-generate training data, obviating the expensive process of human labeling. Extensive testing benchmarks are shown for this task by collecting 194 real test cases from user spreadsheets and online forums. Evaluation suggests that Auto-Tables can successfully synthesize transformations for over 70% of test cases at interactive speeds (with sub- second latency). [00152] Several implementations are described in detail above.
- FIG.12 shows a flowchart of an additional example method. At block 1202, the method can obtain a conforming relational data table.
- the method can identify a transformational operation that will transform the conforming relational data table to a non-conforming data table.
- the method can identify an inverse transformational operation that will transform the non-conforming data table back to the conforming relational data table.
- the method can train a model with the transformational operation and the inverse transformational operation. In some cases, the conforming relational data table and the non-conforming data table can also be used to train the model.
- the method can synthesize a program for a different non- conforming data table with the trained model.
- the method can transform the different non-conforming data table into a conforming relational data table with the synthesized program.
- the different non-conforming data table may be one of many input tables that may or may not be conforming.
- the method can recognize if the input table is already a conforming relational data table. If so, the method will not perform a transformation and can instead apply a “none” operation. Thus, the method could be applied to a group of data tables, such as all of a user’s data tables and/or data tables from the Internet.
- the method could evaluate the group of data tables and perform transformations to any non-conforming data tables so that all data tables of the group are conforming relational data tables that can be effectively queried without any additional human effort.
- the order in which the disclosed methods are described is not intended to be construed as a limitation, and any number of the described acts can be combined in any order to implement the method, or an alternate method.
- the methods can be implemented in any suitable hardware, software, firmware, or combination thereof, such that a computing device can implement the method.
- the methods are stored on one or more computer-readable storage media as a set of instructions such that execution by a processor of a computing device causes the computing device to perform the method.
- FIG.13 shows an example system 100D.
- System 100D can include computing devices 1302.
- computing device 1302(1) is manifest as a smartphone
- computing device 1302(2) is manifest as a tablet type device
- computing device 1302(3) is manifest as a server type computing device, such as may be found in a datacenter as a cloud resource 1304.
- Computing devices 1302 can be coupled via one or more networks 1306 that are represented by lightning bolts.
- Computing devices 1302 can include a communication component 1308, a processor 1310, storage resources (e.g., storage) 1312, and/or Auto-Tables component 108.
- the Auto-Tables component 108 can be configured to manage model training and usage of the trained model to transform non-conforming data tables (and/or data tables of unknown status) to conforming relational data tables.
- the Auto-Tables component can also generate UIs that allow users to indicate data tables that they want evaluated and transformed if required. In some cases, the Auto-Tables component 108 may automatically perform the transformations without user review. In other cases, the Auto-Tables component 108 may present the input tables (e.g., non-conforming data tables), transformations and/or output tables (e.g., conforming relational data tables) on the UI for user approval.
- FIG. 13 shows two device configurations 1316 that can be employed by computing devices 1302. Individual computing devices 1302 can employ either configuration 1316(1) or 1316(2), or an alternate configuration. (Due to space constraints on the drawing page, one instance of each configuration is illustrated). Briefly, device configuration 1316(1) represents an operating system (OS) centric configuration.
- OS operating system
- Device configuration 1316(2) represents a system on a chip (SOC) configuration.
- Device configuration 1316(1) is organized into one or more applications 1318, operating system 1320, and hardware 1322.
- Device configuration 1316(2) is organized into shared resources 1324, dedicated resources 1326, and an interface 1328 therebetween.
- the Auto-Tables component 108 can be manifest as part of the operating system 1320.
- the Auto-Tables component 108 can be manifest as part of the applications 1318 that operates in conjunction with the operating system 1320 and/or processor 1310.
- the Auto-Tables component 108 can be manifest as part of the processor 1310 or a dedicated resource 1326 that operates cooperatively with the processor 1310.
- each of computing devices 1302 can have an instance of the Auto-Tables component 108.
- the functionalities that can be performed by the Auto- Tables component 108 may be the same or they may be different from one another when comparing computing devices.
- each Auto-Tables component 108 can be robust and provide all of the functionality described above and below (e.g., a device-centric implementation).
- some devices can employ a less robust instance of the Auto-Tables component 108 that relies on some functionality to be performed by an Auto-Tables component 108 on another device.
- Auto-Tables component 108 on device 1302(3) may oversee model training (e.g., self-supervised training data generation 102 and model training 104 of FIG. 1).
- the Auto-Tables component 108 on device 1302(3) and/or Auto-Tables components 108 on device 1302(1) and/or 1302(2) could apply the trained model for transformation of non-conforming data tables (e.g., automatic conversion 106 of FIG.1).
- the term “device,” “computer,” or “computing device” as used herein can mean any type of device that has some amount of processing capability and/or storage capability. Processing capability can be provided by one or more processors that can execute data in the form of computer-readable instructions to provide a functionality.
- Data can be stored on/in storage, such as storage that can be internal or external to the device.
- the storage can include any one or more of volatile or non- volatile memory, hard drives, flash storage devices, and/or optical storage devices (e.g., CDs, DVDs etc.), remote storage (e.g., cloud-based storage), among others.
- the term “computer-readable media” can include signals. In contrast, the term “computer-readable storage media” excludes signals.
- Computer-readable storage media includes “computer-readable storage devices.” Examples of computer-readable storage devices include volatile storage media, such as RAM, and non-volatile storage media, such as hard drives, optical discs, and flash memory, among others.
- device configuration 1316(2) can be thought of as a system on a chip (SOC) type design.
- SOC system on a chip
- functionality provided by the device can be integrated on a single SOC or multiple coupled SOCs.
- One or more processors 1310 can be configured to coordinate with shared resources 1324, such as storage 1312, etc., and/or one or more dedicated resources 1326, such as hardware blocks configured to perform certain specific functionality.
- shared resources 1324 such as storage 1312, etc.
- dedicated resources 1326 such as hardware blocks configured to perform certain specific functionality.
- processor as used herein can also refer to central processing units (CPUs), graphical processing units (GPUs), field programable gate arrays (FPGAs), controllers, microcontrollers, processor cores, hardware processing units, or other types of processing devices.
- CPUs central processing units
- GPUs graphical processing units
- FPGAs field programable gate arrays
- controllers microcontrollers
- processor cores hardware processing units, or other types of processing devices.
- any of the functions described herein can be implemented using software, firmware, hardware (e.g., fixed-logic circuitry), or a combination of these implementations.
- the term “component” as used herein generally represents software, firmware, hardware, whole devices or networks, or a combination thereof. In the case of a software implementation, for instance, these may represent program code that performs specified tasks when executed on a processor (e.g., CPU, CPUs, GPU or GPUs).
- the program code can be stored in one or more computer-readable memory devices, such as computer-readable storage media.
- the features and techniques of the components are platform-independent, meaning that they may be implemented on a variety of commercial computing platforms having a variety of processing configurations.
- One example includes a method comprising obtaining a conforming relational data table, identifying a transformational operation that will transform the conforming relational data table to a non-conforming data table, identifying an inverse transformational operation that will transform the non-conforming data table back to the conforming relational data table, training a model with the transformational operation and the inverse transformational operation, synthesizing a program for a different non-conforming data table with the trained model, and transforming the different non-conforming data table into a conforming relational data table with the synthesized program.
- identifying a transformational operator comprises selecting the transformational operator from a set of transformational operators.
- identifying a transformational operator comprises identifying a single transformational operator or multiple serially performed transformational operators.
- identifying an inverse transformational operator comprises identifying a single inverse transformational operator or multiple serially performed inverse transformational operators.
- Another example can include any of the above and/or below examples where the obtaining comprises obtaining multiple conforming relational data tables, and wherein identifying a transformational operation and identifying an inverse transformational operation are performed on each of the multiple conforming relational data tables.
- Another example can include any of the above and/or below examples where the training the model comprises training the model utilizing the transformational operation and the inverse transformational operation from each of the multiple conforming relational data tables.
- training a model comprises training the model with the conforming relational data table the non- conforming data table the transformational operation and the inverse transformational operation and without any human labeled training data.
- Another example can include any of the above and/or below examples where the obtaining a conforming relational data table, identifying a transformational operation, identifying an inverse transformational operation and training a model are performed prior to receiving the different non-conforming data table.
- Another example can include any of the above and/or below examples where the method further comprises generating a user interface and receiving the different non-conforming data table through the user interface.
- Another example can include any of the above and/or below examples where the method further comprises presenting the transforming of the different non-conforming data table into a conforming relational data table on the user interface.
- Another example includes a system comprising a processor and a storage resource storing computer-readable instructions which, when executed by the processor, cause the processor to obtain conforming relational data tables, generate training data without human labelling by identifying a transformational operator that will transform an individual conforming relational data table to a non-conforming data table and an inverse transformational operator that will transform the non-conforming data table back to the individual conforming relational data table, and train a model with the training data.
- Another example can include any of the above and/or below examples where the processor is further configured to synthesize programs with the model for other individual conforming relational data tables.
- Another example can include any of the above and/or below examples where the processor is further configured to rank the synthesized programs.
- Another example can include any of the above and/or below examples where the processor is further configured to re-rank the synthesized programs with input-output re-ranking. [00183] Another example can include any of the above and/or below examples where the processor is further configured to receive an additional data table, utilize the model to synthesize a program to transform the additional data table into a conforming relational data table. [00184] Another example can include any of the above and/or below examples where the processor is further configured to cause a user interface to be generated and to receive the additional data table via the user interface.
- Another example includes a computing device comprising hardware and an Auto- Tables component configured to utilize a trained model to synthesize a program to transform an input data table into a conforming relational data table.
- Another example can include any of the above and/or below examples where the Auto- Tables component is further configured to cause a user interface to be generated and to receive the input data table via the user interface.
- Another example can include any of the above and/or below examples where the Auto- Tables component is further configured to cause the transformation of the input data table into the conforming relational data table to be presented on the user interface.
- Another example can include any of the above and/or below examples where the Auto- Tables component is further configured to recognize if the input data table is already a conforming relational data table and to not transform the input table.
- CONCLUSION [00189] The description includes novel Auto-Tables concepts. Although the 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 above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims and other features and acts that would be recognized by one skilled in the art are intended to be within the scope of the claims.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202480031346.XA CN121127843A (en) | 2023-06-07 | 2024-05-30 | Transformation of relational data tables |
| KR1020257037339A KR20260018801A (en) | 2023-06-07 | 2024-05-30 | Transformation synthesis to relationalize data tables |
| EP24735439.2A EP4724905A1 (en) | 2023-06-07 | 2024-05-30 | Synthesizing transformations to relationalize data tables |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/207,050 US12373415B2 (en) | 2023-06-07 | 2023-06-07 | Synthesizing transformations to relationalize data tables |
| US18/207,050 | 2023-06-07 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024253922A1 true WO2024253922A1 (en) | 2024-12-12 |
Family
ID=91621018
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2024/031519 Ceased WO2024253922A1 (en) | 2023-06-07 | 2024-05-30 | Synthesizing transformations to relationalize data tables |
Country Status (5)
| Country | Link |
|---|---|
| US (2) | US12373415B2 (en) |
| EP (1) | EP4724905A1 (en) |
| KR (1) | KR20260018801A (en) |
| CN (1) | CN121127843A (en) |
| WO (1) | WO2024253922A1 (en) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20250013963A1 (en) * | 2023-07-06 | 2025-01-09 | Praisidio Inc. | Intelligent people analytics from generative artificial intelligence |
| US20250217362A1 (en) * | 2023-12-29 | 2025-07-03 | At&T Intellectual Property I, L.P. | Transforming structured query language queries to expedite query execution |
| US20260050598A1 (en) * | 2024-03-08 | 2026-02-19 | Iqvia Inc. | Providing access to clinical trial data |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20040024790A1 (en) * | 2002-07-26 | 2004-02-05 | Ron Everett | Data base and knowledge operating system |
| EP1686498A2 (en) * | 2005-01-31 | 2006-08-02 | Microsoft Corporation | Integration of a non-relational query language with a relational data store |
| US20190258942A1 (en) * | 2018-02-21 | 2019-08-22 | International Business Machines Corporation | Cognitive data discovery and mapping for data onboarding |
| CN112052414A (en) * | 2020-10-09 | 2020-12-08 | 腾讯科技(深圳)有限公司 | Data processing method and device and readable storage medium |
| US20220067048A1 (en) * | 2020-08-26 | 2022-03-03 | Jpmorgan Chase Bank, N.A. | Method and apparatus for automatically mapping physical data models/objects to logical data models and business terms |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6584476B1 (en) * | 2000-04-22 | 2003-06-24 | Oracle Corp. | System and method for enforcing referential constraints between versioned database tables |
| US7287216B1 (en) * | 2000-05-31 | 2007-10-23 | Oracle International Corp. | Dynamic XML processing system |
| US6714943B1 (en) * | 2001-01-31 | 2004-03-30 | Oracle International Corporation | Method and mechanism for tracking dependencies for referential integrity constrained tables |
| US7801886B1 (en) * | 2006-10-10 | 2010-09-21 | Intuit Inc. | Method and apparatus for performing database operations involving custom fields |
| US8417715B1 (en) * | 2007-12-19 | 2013-04-09 | Tilmann Bruckhaus | Platform independent plug-in methods and systems for data mining and analytics |
| US20220343444A1 (en) * | 2014-09-07 | 2022-10-27 | DataNovo, Inc. | Artificial Intelligence, Machine Learning, and Predictive Analytics for Patent and Non-Patent Documents |
| US9659051B2 (en) * | 2014-12-22 | 2017-05-23 | Bladelogic Inc. | Enforcing referential integrity for object data documents |
| US10798129B2 (en) * | 2017-07-10 | 2020-10-06 | Ebay Inc. | Constraint-based multiuse certificates |
| US12026462B2 (en) * | 2018-11-29 | 2024-07-02 | International Business Machines Corporation | Word embedding model parameter advisor |
| US11256485B2 (en) * | 2019-07-16 | 2022-02-22 | Google Llc | Systems and methods for synthesizing code from input and output examples |
| CN114547168B (en) * | 2022-01-27 | 2022-09-20 | 大连理工大学 | Fine chemical engineering safety production data fusion and reconstruction method based on virtual knowledge graph |
-
2023
- 2023-06-07 US US18/207,050 patent/US12373415B2/en active Active
-
2024
- 2024-05-30 EP EP24735439.2A patent/EP4724905A1/en active Pending
- 2024-05-30 CN CN202480031346.XA patent/CN121127843A/en active Pending
- 2024-05-30 WO PCT/US2024/031519 patent/WO2024253922A1/en not_active Ceased
- 2024-05-30 KR KR1020257037339A patent/KR20260018801A/en active Pending
-
2025
- 2025-06-18 US US19/241,748 patent/US20250315422A1/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20040024790A1 (en) * | 2002-07-26 | 2004-02-05 | Ron Everett | Data base and knowledge operating system |
| EP1686498A2 (en) * | 2005-01-31 | 2006-08-02 | Microsoft Corporation | Integration of a non-relational query language with a relational data store |
| US20190258942A1 (en) * | 2018-02-21 | 2019-08-22 | International Business Machines Corporation | Cognitive data discovery and mapping for data onboarding |
| US20220067048A1 (en) * | 2020-08-26 | 2022-03-03 | Jpmorgan Chase Bank, N.A. | Method and apparatus for automatically mapping physical data models/objects to logical data models and business terms |
| CN112052414A (en) * | 2020-10-09 | 2020-12-08 | 腾讯科技(深圳)有限公司 | Data processing method and device and readable storage medium |
Non-Patent Citations (2)
| Title |
|---|
| LI PENG ET AL: "Auto-Tables: Relationalize Tables without Using Examples", SIGMOD RECORD, ACM, NEW YORK, NY, US, vol. 53, no. 1, 14 May 2024 (2024-05-14), pages 76 - 85, XP059474060, ISSN: 0163-5808, DOI: 10.1145/3665252.3665269 * |
| PENG LI ET AL: "Auto-Tables: Synthesizing Multi-Step Transformations to Relationalize Tables without Using Examples", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 27 July 2023 (2023-07-27), XP091575734 * |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20260018801A (en) | 2026-02-09 |
| EP4724905A1 (en) | 2026-04-15 |
| US20250315422A1 (en) | 2025-10-09 |
| US12373415B2 (en) | 2025-07-29 |
| CN121127843A (en) | 2025-12-12 |
| US20240411740A1 (en) | 2024-12-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12373415B2 (en) | Synthesizing transformations to relationalize data tables | |
| D’Isanto et al. | Photometric redshift estimation via deep learning-generalized and pre-classification-less, image based, fully probabilistic redshifts | |
| Li et al. | Auto-tables: Synthesizing multi-step transformations to relationalize tables without using examples | |
| CN110837550A (en) | Question answering method, device, electronic device and storage medium based on knowledge graph | |
| US11947590B1 (en) | Systems and methods for contextualized visual search | |
| Škoda et al. | Active deep learning method for the discovery of objects of interest in large spectroscopic surveys | |
| Adjetey et al. | Content-based image retrieval using Tesseract OCR engine and levenshtein algorithm | |
| US20250272477A1 (en) | Machine learning large language model ensemble deployment in content summarization | |
| CN112035614B (en) | Test set generation method, device, computer equipment and storage medium | |
| Li et al. | Auto-tables: Relationalize tables without using examples | |
| Moss | The ai cosmologist i: An agentic system for automated data analysis | |
| Wang et al. | An intelligent identification system combining image and DNA sequence methods for fruit flies with economic importance (Diptera: Tephritidae) | |
| Raza et al. | Intelligent image gallery system using deep learning for automated fruit and vegetable classification | |
| Malathi et al. | Knowledge Navigator: Revolutionizing Education through LLMs in Generative AI. | |
| Ulaş et al. | Detection of oscillation-like patterns in eclipsing binary light curves using neural network-based object detection algorithms | |
| Khalili et al. | Semantic matching in GUI test reuse | |
| CN120671678A (en) | Document semantic comparison method and system based on large language model agent | |
| Liu et al. | Projective nonnegative matrix factorization for social image retrieval | |
| US20230176833A1 (en) | Methods and systems for paper form to web application construction via digital camera visualization | |
| CN109460417A (en) | A kind of wrong answer list generation method, device, server and computer storage medium | |
| Riggi et al. | radio-llava: Advancing vision-language models for radio astronomical source analysis | |
| Tejaswini et al. | Deep Learning Based Medicinal Plants Identification | |
| Chen et al. | Classification of Astrophysics Journal Articles with Machine Learning to Identify Data for NED | |
| Li et al. | Auto-tables: synthesizing multi-step transformations to relationalize tables without using examples: P. Li et al. | |
| Alturayeif et al. | TraceLLM: Leveraging Large Language Models with Prompt Engineering for Enhanced Requirements Traceability |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 24735439 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2024735439 Country of ref document: EP |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| ENP | Entry into the national phase |
Ref document number: 2024735439 Country of ref document: EP Effective date: 20260107 |
|
| ENP | Entry into the national phase |
Ref document number: 2024735439 Country of ref document: EP Effective date: 20260107 |
|
| ENP | Entry into the national phase |
Ref document number: 2024735439 Country of ref document: EP Effective date: 20260107 |
|
| ENP | Entry into the national phase |
Ref document number: 2024735439 Country of ref document: EP Effective date: 20260107 |
|
| ENP | Entry into the national phase |
Ref document number: 2024735439 Country of ref document: EP Effective date: 20260107 |
|
| WWP | Wipo information: published in national office |
Ref document number: 2024735439 Country of ref document: EP |












