• Data cleaning is an important process.
• Cleaning involves data auditing and data
• Current solutions (ETL’s and reengineering tools) :
• Not interactive.
• Long wait times.
• 4 parts :
• Data source (tabular, not nested)
• Online reorderer (spreadsheet, sorting, dynamic
• Automatic discrepancy detector (runs in background)
• Transformation engine (applies transforms
immediately and in the background)
• Performed in the background automatically.
• Done by finding suitable structures :
• Structure is a string of domains.
• Custom domains can be defined.
• Find records that do not fit the structure.
• Structures can be parameterized :
• Can use statistics to compute anomalies.
• What makes a good structure :
• Recall (structure matches as many columns as
• Precision (structure matches as few as other
possible values; avoid overly broad structures)
• Conciseness (structure should have minimum length;
• How is a structure inferred :
• Minimum Description Length (MDL) metric.
• Distance length (DL) :
• Measure used to describe a set of column values, given a
• DL(v, S) = (1 – f )(log|ξlen(v)|) + p log m + f (space to express v w.
recall conciseness precision
• Structure inference algorithm :
• Enumerate fixed number of structures recursively.
• Use structure to compute distance length (DL) measure for all
values of a particular column.
• Select structure with the lowest DL.
• Structure found, thus discrepancies found. What’s next?
• GUI provided for simple transformations :
• Add, drop, copy, fold, etc.
• Undo supported.
• GUI not possible for complicated transforms :
• Done by example.
• MDL metric used to infer structures.
• Once structure is inferred, splitting follows :
• Left Right
• Decreasing Specificity
• Increasing Specificity
• Structure inference algorithm works :
• Based on examples.
• Based on algorithm’s definition.
• Decreasing specificity was found to be the faster
• Specificity = sum (DL of example values, given S)
• Works best for splits involving many structures.
• Inferring structures superior to inferring regular
• Works on custom user-defined domains in a way that is
robust to structural data errors.
• Potter’s wheel tool :
• Future work :
• Transforming nested data
• Complex transforms (e.g., Format via examples)