datapilot-cli
Version:
Enterprise-grade streaming multi-format data analysis with comprehensive statistical insights and intelligent relationship detection - supports CSV, JSON, Excel, TSV, Parquet - memory-efficient, cross-platform
65 lines • 2.65 kB
TypeScript
/**
* Intelligent Column Matching Engine
* Phase 1: Foundation Architecture - Advanced column similarity detection
*/
import { ColumnSchema, JoinConfidence, CardinalityType, TableMeta, ForeignKeyCandidate, JoinStrategy } from './types';
export interface ColumnMatcher {
semanticSimilarity(col1: string, col2: string): number;
distributionSimilarity(data1: any[], data2: any[]): JoinConfidence;
detectCardinality(table1: TableMeta, table2: TableMeta, col1: string, col2: string): CardinalityType;
inferForeignKeys(tables: TableMeta[]): ForeignKeyCandidate[];
}
export declare class IntelligentColumnMatcher implements ColumnMatcher {
private semanticCache;
private commonPatterns;
private domainKnowledge;
constructor();
/**
* Calculate semantic similarity between two column names
* Uses multiple strategies: exact matching, pattern matching, domain knowledge
*/
semanticSimilarity(col1: string, col2: string): number;
/**
* Analyze distribution similarity between column data
*/
distributionSimilarity(data1: any[], data2: any[]): JoinConfidence;
/**
* Detect cardinality relationship between two columns
*/
detectCardinality(table1: TableMeta, table2: TableMeta, col1: string, col2: string): CardinalityType;
/**
* Infer foreign key relationships using statistical signatures
*/
inferForeignKeys(tables: TableMeta[]): ForeignKeyCandidate[];
/**
* Suggest optimal join strategy based on column characteristics
*/
suggestJoinStrategy(col1: ColumnSchema, col2: ColumnSchema, semanticSim: number, distributionSim: JoinConfidence): JoinStrategy;
private initializePatterns;
private initializeDomainKnowledge;
private cleanColumnName;
private domainBasedSimilarity;
private patternBasedSimilarity;
private structuralSimilarity;
private fuzzyStringSimilarity;
private calculateDetailedStats;
private compareStatisticalProperties;
private compareStructuralProperties;
private compareDomainProperties;
private compareSemanticProperties;
private detectForeignKeysBetweenTables;
private assessForeignKeyLikelihood;
private hasCommonPatterns;
private isNumericOrDate;
private extractStructuralPattern;
private longestCommonPrefix;
private longestCommonSuffix;
private levenshteinDistance;
private extractDataPatterns;
private analyzeDataTypes;
private calculateDistribution;
private calculateTypeOverlap;
private calculatePatternOverlap;
private calculateDomainSpecificSimilarity;
}
//# sourceMappingURL=column-matcher.d.ts.map