UNPKG

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
/** * 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