68 Bridge, St. Suite 307 +1 888-779-6578 [email protected] www.DataLadder.com SuȂ$eld, CT 06708 ReadTable( Prepares to read data from the data source. ReaderConfigura�on Opens connec�ons, creates required structures, etc. configuration, Boolean toDetermineFields) configuration - Se�ngs that contain informa�on about the data source

toDetermineFields - If true, informa�on about columns will be refreshed from the data source while it is read. If false, column informa�on from ReaderConfigura�on se�ngs will be used

returns - true if successful

Disconnect() Releases resources (closes connec�ons to DB, flushes files, closes file streams, etc.)

ReaderToVariableTableConvertor class

Namespace: dataladder.Data

Assemblies: DataMatch.Api.dll

This class is used to copy data from ISimpleReader to a table stored in either a hard disk drive or in memory.

C# public class ReaderToVariableTableConvertor

Remarks

This class contains a single sta�c method, Copy(…), that loads data from any data source in internal storage. Methods:

Copy(IReader reader, Loads data from a data source which is wrapped by String path, IReader into file storage (OnDriveTable). String name, IReader can represent different source types: Excel, SQL out String error, DB, CSV, etc. Cancella�onToken cancel, ProgressDelegate progress = null, reader - ISimpleReader that can wrap various data Int32 toRow = Int32.MaxValue, source types String fileNameBase = null, path - specifies file path where the file storage will be Opera�onModes operationMode created or opened from = Opera�onModes.Disk, name - First half of file storage name (second half will MinSpaceReachedDelegate be the GUID) onMinSpaceReached = null) error - Error display message that should be returned cancel - Cancella�on token to cancel job progress - Callback func�on to show import progress toRow - Number of rows to load from data source to file fileNameBase - Name of file storage. If this parameter is null, then new name of file will be created from 'name' parameter and new random GUID operationMode - Should the data be loaded onto hard disk or in a virtual memory file? onMinSpaceReached - Callback func�on to check minimum space on hard drive

Returns - loaded data as OnDriveTable

ReaderConfigura�on class

Namespace: dataladder.Data

Assemblies: DataMatch.Data.Core.dll

Se�ngs to import and export data

C# public class ReaderConfigura�on : ICloneable

Examples:

//Prepares for reading a data source from Excel file ReaderConfigura�on rc = new ReaderConfigura�on(); rc.DataSourceTypeDescrip�on = SourceDb.Excel.ToString(); rc.DataSourceId = 0; rc.FileName = @"D:\ContactListMaster.xls"; // name that will be used in the applica�on is assigned to TableName rc.TableName = @"Contact List"; // name of the Excel sheet is assigned to OriginalTableName property rc.OriginalTableName = @"Sheet1";

Remarks

This class contains se�ngs that allow you to import or export a data source.

The relevance of different proper�es in this class varies based on the file source you are dealing with. For example, for file-based sources (CSV, Excel, etc.), the filename property must be filled, but for database sources, Configura�onString is required.

The ‘SourceDb’ enum sec�on further down in this handbook lists down possible data source types.

Constructors: public ReaderConfigura�on() Create instance of class

Proper�es:

DataSourceTypeDescrip�on String get; Data source type as string set;

DataSourceType SourceDb get; Data source type as 'SourceDb' enum

DataSourceTypeDescrip�onFriendly String get; Data source descrip�on

Configura�onString String get; Connec�on string set;

SchemaName String get; Schema name for SQL based data set; sources

TableName String get; Table name. Original name can set; be changed while impor�ng

OriginalTableName String get; Name of the source in the set; original file path. Important for when the refresh is performed.

SelectCmd String get; For SQL-based data sources, it is set; possible to import data with custom SELECT query. For example, when impor�ng specific records or tables using complex queries.

FileName String get; This property is important for set; file-based data sources (Excel, CSV etc.). Full path to the file.

ColumnsSe�ngs DataTable get; Column se�ngs (count of set; columns, their names, and their types) as DataTable

DataSourceId Int32 get; Iden�fier of data source - must set; be unique. For master table, it must be '0'

SourceDb enum

Namespace: dataladder.Data

Assemblies: DataMatch.Data.Core.dll

Type of imported or exported data source.

C# public enum SourceDb

Enum values:

Excel Old Excel (.xls) files

Excel2007 Open office xml (.xlsx) Excel files

CSV Text files with delimiters (csv, tsv, etc.)

DBase Dbase files (.dbf)

FixedWidthTextFile Text files with fixed width of columns

XML XML files (.xml)

SqlServer MS SQL Server database

Mysql MySQL database

Odbc Connec�ons through ODBC mechanism

DB2 DB2 database

Oracle Oracle database

Salesforce Salesforce CRM

CdJson Json files (.JSON)

CdHBase HBase database

CdMongoDb MongoDb database

DynamicsCRM MS Dynamics CRM

Twi�er Twi�er

Facebook Facebook

CdAccess Access database

CdSugarCRM SugarCRM

PostgreSql PostgreSQL database

OleUniversal Connec�ons through OLE mechanism

Email IMAP and POP connec�ons for email

Teradata Teradata database

Field class

Namespace: dataladder.Data

Assemblies: DataMatch.Data.Core.dll

Represents a column of a data source

C# public class Field

Remarks

This class has mul�ple proper�es for name: Name, NewName, OriginalName, because the class embeds logic to correct filename automa�cally.

When a value is being assigned to the Name property, it is checked for prohibited symbols or whether that name is already reserved. If special characters exist, then the value will be complemented with underscore symbols. This new value will be placed into NewName property and will be returned whenever Name or NewName is requested. Original value will be placed into OriginalName property.

If property UseOriginalName is set as “true”, then Name property will return original value of the name.

Constructors:

Field() Create instance of class

Proper�es:

Name String get; set; Name of column

NewName String get; set; Alias name of column

OriginalName String get Name of this column in the original data source

UseOriginalName Boolean get; set; If true, Name will return Original Name

Type Type get; set; Type of column

Included Boolean get; set; Has this column been chosen for import? If false, this column will not be loaded from data source

Fields class

Namespace: dataladder.Data

Assemblies: DataMatch.Data.Core.dll

List of columns(fields) that are belonged some data source

C# public class Fields : IContainer2CoordsMapper

Examples:

Remarks

… descrip�on of the class

Constructors:

Fields() Create instance of class

Proper�es: this[Int32] Field get; set; Gets column by index this[String] Field get; set; Gets column by column name

Methods:

Add(Field field) Adds new field at the end of list field - added field

Clear() Removes all columns

Remove(Field field) Removes a specific field field - removed field

SaveColumnsSe�ngs() Converts this class to 'DataTable' instance (to save in xml format) Returns - Fields class saved as DataTable

LoadColumnsSe�ngs( Loads this instance from DataTable that contains previously saved DataTable settings) 'Fields' instance Settings - Fields class saved as DataTable

IContainer2CoordsMapper class

Namespace: dataladder.XtraGridHelper

Assemblies: DataMatch.Core.dll

Simple interface for represen�ng a tabular data structure.

The interface has methods: ● to get/set data in every cell - GetData(...), SetData(...) ● to get count of columns and rows ● to get every column name

C# public interface IContainer2CoordsMapper

Proper�es:

RecordCount Int32 get; Count of rows

ColumnCount Int32 get; Count of columns

Methods:

GetData(Int32 rowIndex, Int32 Gets value from a specific cell colIndex); rowIndex - row index of cell colIndex - column index of cell returns - value from cell

SetData(Object obj, Int32 rowIndex, Sets value in a specific cell Int32 colIndex) obj - new value of cell rowIndex - row index of cell colIndex - column index of cell

GetColumnName(Int32 colIndex) Gets name of a specific column colIndex - index of column returns - column name

OnDriveTable class

Namespace: dataladder.Data

Assemblies: DataMatch.DataStorage.dll

Permanent tabular storage on hard disk

C#

public class OnDriveTable : ITable2CoordsMapper, IGetMul�pleReadOnlyViews, IDisposable

Examples:

///

/// Create simple filled storage /// /// folder where new storage will be created /// name of storage /// public static OnDriveTable CreateDemoTable(String path, String name) { OnDriveTable onDriveTable = new OnDriveTable(path, name); onDriveTable.AddField("FirstName", typeof(String)); onDriveTable.AddField("LastName", typeof(String)); onDriveTable.SetData("John", 0, 0); onDriveTable.SetData("Smith", 0, 1); onDriveTable.SetData("Joan", 1, 0); onDriveTable.SetData("Smit", 1, 1);

return onDriveTable; }

///

/// Prints contents of OnDriveTable in console. /// /// data source that will be printed public static void PrintInConsole(OnDriveTable mapper) { // Prints header

for (Int32 i = 0; i < mapper.ColumnCount; i++) { String columnName = mapper.GetColumnName(i); Console.Write($"| {i}:{columnName} "); } Console.WriteLine("|"); Console.WriteLine("------");

//Prints body for (Int32 j = 0; j < mapper.RecordCount ; j++) { for (Int32 i = 0; i < mapper.ColumnCount; i++) { Object cellValue = mapper.GetData(j, i); String cellValueString; if (cellValue is Double doubleValue) { cellValueString = doubleValue.ToString("n2"); } else { cellValueString = cellValue?.ToString() ?? String.Empty; } Console.Write($"| {i}:{cellValueString} "); } Console.WriteLine("|"); } }

Remarks

Storage to keep any informa�on in Data Ladder applica�ons. Can be placed in memory or on hard disk.

This class holds open file streams, so it is important to clear resources when instance is not immediately needed.

Constructors:

OnDriveTable( String path, String fileNameBase, FileAccess fileAccess = FileAccess.ReadWrite, FileShare fileShare = FileShare.Read, Boolean toDeleteExisting = false, Boolean loadExisting = true, Opera�onModes operationMode = Opera�onModes.Disk, Boolean inMemoryTableCompactMode = false, Priori�esForMemory priorityForMemory = Priori�esForMemory.Normal, Int32 estimatedRecordCount = 0) path folder where new instance will be created

fileNameBase table name

fileAccess file access parameters: read, write, etc.

fileShare file share parameter toDeleteExisting if table with same path and name already exists, should it be deleted and a new table created? loadExisting load data from a pre-exis�ng table operationMode creates new instance in memory or on hard disk inMemoryTableCompactMode if in memory, should compact mode be used? (compact mode – less space, slower speed) priorityForMemory if flexibility to be able to move the instance into memory in future is needed estimatedRecordCount es�mated count of records (to increase speed)

Proper�es: this[String] OnDriveField get; Returns the column by name

ColumnCount Int32 get; Count of columns

RecordCount Int32 get; Count of rows

Name String get; set; Name of table

ToDeleteFilesA�erClosing Boolean get; set; Do remove files from disk a�er disposing of?

PriorityForMemory Priori�esForMemory get; set; Defines a possibility to move this storage into memory

Methods:

AddField(String fieldName, Type type, Adds to a new field in table Boolean allowNulls = true) fieldname - name of new column; must be unique type - type of objects that this column will hold allowNulls - does it allow null values (default 'true') returns – new field pointer

GetColumnName(Int32 colIndex) Gets name of a specific column colIndex - index of column returns - column name

GetColumnNames() Gets list of column names Returns - array of column names

SetData(Object obj, Int32 rowIndex, Int32 Sets specific cell value (by column index or colIndex) column name)

obj - new value of cell rowIndex - row index of cell colIndex - column index of cell SetData(Object obj, Int32 rowIndex, String fieldName) fieldname – column name of cell

GetData(Int32 rowIndex, Int32 colIndex) Gets value from specific cell (by column index or column name) rowIndex - row index of cell colIndex - column index of cell

colName – column name of cell GetData(Int32 rowIndex, String colName) returns - value from cell

MakeWritable(Opera�onModes Allows changes to made in the data in OnDrive operationMode = Opera�onModes.Disk) Table a�er this method

CreateNewTableWithTheStructureOfExis� Creates new OnDriveTable with same count of ng ( columns, same column names ITable2CoordsMapper table, String resultFileNameBase, String path = null, table - table that is pa�ern Opera�onModes operationMode = resultFileNameBase - name of result table Opera�onModes.Disk) path - folder where new table will be created. If it is null, then new table will be created in same folder as pa�ern table operationMode - will it be created on disk or in memory? returns - new instance of table

Move(String newPath) Move specified OnDriveTable storage into new folder newPath - new path Returns - was movement successful?

Dispose() Clears resources

MatchEngine class

Namespace: dataladder.Matching

Assemblies: DataMatch.Matching.dll

Provides API to search for similar records in tabular data sources

C# public class MatchEngine : IDisposable

Examples:

///

/// Creates match engine instance that works with one data source. /// /// You can create the OnDriveTable and MultipleMatchDefinitionsManager /// objects, as shown in the code examples in /// the sections describing these classes. /// /// file storage with the data source /// matching settings based on the same OnDriveTable /// folder for temporary results /// forlder for results /// public static void Matching(OnDriveTable onDriveTable, MultipleMatchDefinitionsManager manager, String tempPath, String dataPath, String engineName) { // 1.Init MatchEngine matchEngine = new MatchEngine(manager, false, tempPath, dataPath, engineName);

matchEngine.InputDataMapperDict.Clear(); matchEngine.InputDataMapperDict.Add(onDriveTable.Name, onDriveTable);

matchEngine.DataSourceIndexPairList.Clear(); matchEngine.DataSourceIndexPairList.Add(new MatchEngine.DataSourceIndexPair(0, 0));

// 2.Matching matchEngine.DoIndex(); matchEngine.DoMatch(); matchEngine.ProcessFinalResults();

// 3. Show results and free resources OnDriveTable pairsTable = matchEngine.PairsScoresTable; OnDriveTable groupsTable = matchEngine.FinalScoresGroupsTable;

ConsoleHelper.PrintInConsole(pairsTable); ConsoleHelper.PrintInConsole(groupsTable);

// 4. Clean matchEngine.Dispose(); }

Remarks

The matching process consists of the following steps. The func�ons and structures that are used in each step is shown in paraenthesis.

- define data sources to be used during matching (ini�alize matchEngine.InputDataMapperDict)

- define source pairs which will be matched each other (ini�alize matchEngine. DataSourceIndexPairList)

- prepared indexes (matchEngine.DoIndex())

- run matching to search for similar records (matchEngine. DoMatch ())

- process search results (matchEngine. ProcessFinalResults ())

The SDK contains a few examples that show more complex behavior.

Constructors:

MatchEngine (Mul�pleMatchDefini�onsManager multipleMatchDefinitionsManager, Boolean allRecordsInGoupMustBeSimilar, String tmpPath, String dataPath, String name = "")

Create instance of class multipleMatchDefinitionsManager Match Defini�on manager that contains defini�ons, criteria, column mappings allRecordsInGoupMustBeSimilar tmpPath folder for temporary results

dataPath main folder which contains subfolders for each separate match engine instance name name of the subfolder in 'dataPath' folder. This subfolder contains results of transforma�on, matching, etc.

Proper�es:

DataPath String get; Folder for results - for standardiza�on and matching results, and to store imported sources

TmpPath String get; Folder for temporary results

UncompleteDataPath String get; Folder for intermediate results

InputDataMapperDict Dic�onary OnDriveTable or Mul�pleOnDriveTable for transformed source

InputDataMapperList List get; A list of data sources

DataSourceIndexPairList List get; List of included data source permutable, e.g. 1-2 and 2-1 are the same pairs

LoadAllInMemory Boolean get; This property is used in API set; and SDK modes.

If 'true', match engine will work with some restric�ons: It will not be cleared, and some structures will not created. This allows for greater speed.

In regular version, this is set as 'false'

PairsScoresTable OnDriveTable get; Result of matching. This table set; is presented on Pairs subtab of Match Results tab

FinalScoresGroupsTable OnDriveTable get; Result of matching. This table set; is presented on Groups subtab of Match Results tab.

Methods:

SetCachedDataSources( Defines data sources which do not change from match to List list) match, and therefore, do not need to be reindexed.

This feature is used in SDK and API.

list - list with indexes of data sources which will be cached

DoIndex() Prepares indexes for matching. Indexes increase the processing speed.

Computes indexes for every data source. To calculate indexes for a specific source, use

ReindexSingleDataSource() method.

return: true – if indexes have been calculated successfully

ReindexSingleDataSource(Int32 Calculate indexes for one data source. Other sources will dataSourceIndex, not be changed. Opera�onModes operationMode dataSourceIndex - index of recalculated data source = Opera�onModes.Disk) operationMode - keep result in memory or disk

DoMatch( Run matching Int32 maxMatchesForOneRow = maxMatchesForOneRow - max number of matches 3, bool needed per row clearAllAfterMatching = true, Int32 clearAllAfterMatching" - should intermediate results be maxMatchesPerGroup = 0) deleted once done? maxMatchesPerGroup" -max count of records in one group

ProcessFinalResults(Boolean Processes results. clearAllAfterMatching = true) This method must be called a�er DoMatch() method. clearAllAfterMatching - should intermediate results be deleted once done?

Dispose() Close all opened file streams. Remove intermediate results.

Mul�pleMatchDefini�onsManager class

Namespace: dataladder.Matching

Assemblies: DataMatch.Matching.dll

Class containing match defini�ons and match criteria se�ngs, and se�ngs on how to map columns from input data sources to final output table.

C# public class Mul�pleMatchDefini�onsManager : IDisposable

Examples:

Mul�pleMatchDefini�onsManager manager = new Mul�pleMatchDefini�onsManager();

// Create a simple criterion. Func�on 'CreateDummyDefini�on' is // shown in lis�ng in the sec�on about MatchCriteriaList class MatchCriteriaList matchCriteriaList = CreateDummyDefini�on(0, "Table", "FirstName"); manager.Add(matchCriteriaList);

// To keep the example simple, empty AvailableFields instance is used here // Example how AvailableFields instance can be ini�alized is shown in // 'AvailableFields' class sec�on manager.AvailableFields = new AvailableFields(); manager.SetAbsoluteIndices();

Remarks

There are two structures in this class that define matching rules: AvailableFields and Mul�pleMatchCriteriaList.

The first contains se�ngs for mapping of input data source columns and which of them will go to final results. The second contains a list of defini�ons with all se�ngs of all criteria.

Constructors:

Mul�pleMatchDefini�onsManager () Create instance of class

Proper�es:

AvailableFields AvailableFields get; set; Se�ngs on how to map columns from input data sources to output final table this[Int32] MatchCriteriaLis get; Gets a defini�on by its index t

Count Int32 get; Count of defini�ons

Methods:

Add(MatchCriteriaList Add new match defini�on definition) definition - new defini�on

Remove(Int32 index) Remove one defini�on by index index - index of removed defini�on

SetAbsoluteIndices() Recalculate indices of matching criteria. This method must be called once changing criteria and defini�ons are complete, and before star�ng matching

Dispose() Clean resources

MatchCriteriaList class

Namespace: dataladder.Matching

Assemblies: DataMatch.Matching.dll

Set of criteria. One match defini�on

C# public class MatchCriteriaList : MatchCriteriaListCommon

Examples:

///

/// Create simple defini�on with one simple criterion /// and with given column of some table /// /// id of defini�on /// name of table /// name of column, this column will be /// bond to criterion /// public sta�c MatchCriteriaList CreateDummyDefini�on(int id, String tableName, String columnName) { MatchCriteriaList defini�on = new MatchCriteriaList(id);

// Create a simple criterion. Func�on 'CreateDummyCriterion' is // shown in lis�ng in the sec�on about MatchCriteria class MatchCriteria criterion = CreateDummyCriterion(tableName, columnName);

defini�on.Add(criterion); defini�on.MarkTheFirstFieldInEveryGroup(); return defini�on; }

Remarks

Constructors:

MatchCriteriaList (Int32 index)

Create instance of this class with given index

index index of this defini�on

Proper�es: this[Int32] MatchCriteria get; Gets criterion by index

Count Int32 get; Count of criteria

Methods:

Add() Creates a new match criterion. And adds it to this defini�on. Returns the newly added match criteria.

Add(MatchCriteria matchCriterion) Add new match criterion to this defini�on matchCriterion - exis�ng criterion

Returns added criterion

MarkTheFirstFieldInEveryGroup() Find first criterion in every group and mark it

MatchCriteria class

Namespace: dataladder.Matching

Assemblies: DataMatch.Matching.dll

Represents a single match criterion.

C# public class MatchCriteria : IDisposable

Examples:

///

/// Create extremely simple criterion /// /// the name of the table whose column /// will be a�ached to the criterion. /// a�ached column /// public sta�c MatchCriteria CreateDummyCriterion(String tableName, String columnName) { MatchCriteria criterion = new MatchCriteria();

criterion.Fuzzy = true; criterion.AddWeightToFirstLe�er = false; criterion.Exact = false; criterion.Numeric = false; criterion.UseMetaphone = false; criterion.IgnoreCase = true; criterion.Level = 0.7f; criterion.GroupLevel = 0.0f; criterion.MinAllowedLevelInGroup = 0.0f; criterion.GroupId = -1; criterion.CrossColumnGroupId = -1; criterion.Weight = 100.0f;

criterion.MapField(tableName, columnName);

return criterion; }

Remarks

Constructors:

MatchCriteria () Create instance of class

Proper�es:

Fuzzy Boolean get; Use fuzzy matching for this criterion set;

Exact Boolean get; Use exact matching for this criterion set;

Numeric Boolean get; Make matching of columns a�ached to set; this criterion as numbers

AddWeightToFirstLe�er Boolean get; Increase matching score if first le�ers set; of records are same

UseMetaphone Boolean get; Use matching based on the set; pronuncia�on of records

IgnoreCase Boolean get; Ignore case during matching set;

GroupId Int32 get; Iden�fier of group. set; All criterion with same Id will enter in one group.

GroupLevel Double get; Aggregate similarity level for a group of set; match criteria.

MinAllowedLevelInGroup Double get; Level for a group. If criterion belongs to set; group this is addi�onal checking level. If score of matching is more than this value in this case records will be similar

CrossColumnGroupId Int32 get; Cross Column ID set by user set;

MaxTotalWeightBelow Int32 get; The upper limit for the sum of criteria set; weight that are similar

MaxMismatchWeightBelow Int32 get; The upper limit for the sum of criteria set; weight that are mismatched

MaxEmptyWeightBelow Int32 get; Max empty weight for a group. Every set; criterion in the group that has empty records adds its own weight to the sum of empty weights. This sum must be less than this property. If the sum is more than this limit then that row will not be recognized as similar

Level Double get; Value indica�ng a degree of expected set; similarity for the column values selected for matching. Must be in limits [0.0 ... 1.0]

Weight Double get; Weight of the criterion; cannot be less set; than 1 and greater than 1000

Methods:

GetMappedFieldName(String Define a column name of specific data table that is a�ached dataSourceName, out to this criterion Boolean fieldFound) dataSourceName - data source name fieldFound - result: true - if this criterion contains any column from specific table; false - if there is no column from given data source Returns - found column name. If column is not found, then returns null

MapField(String Add a specific column from specific data source to this dataSourceName, String criterion fieldName) dataSourceName - table name fieldname - column name

AvailableFields class

Namespace: dataladder.Matching

Assemblies: DataMatch.Matching.dll

This class defines how to merge selected input data source into the final result table.

C# public class AvailableFields : ILoadableContainer2CoordsMapper

Examples:

// 1.Create instance AvailableFields af = new AvailableFields();

// Create FieldMapInfo. Function 'CreateFieldMapInfo' is // shown in listing in the section about 'FieldMapInfo' class FieldMapInfo fmiFirstName = CreateFieldMapInfo(0, "Table", "FirstName", 0); FieldMapInfo fmiLastName = CreateFieldMapInfo(0, "Table", "LastName", 1);

// 2. Adding fields from table // Create AvailableFieldsFromOneTable. Function 'CreateAFOT' is // shown in listing in the section about 'AvailableFieldsFromOneTable' class AvailableFieldsFromOneTable afot = CreateAFOT(onDriveTable, new List { fmiFirstName, fmiLastName }); af.TableList.Add(afot);

// 3. Map fields MappedFieldsRow mfrFirstName = new MappedFieldsRow(); mfrFirstName["Table"] = fmiFirstName; af.MappedFieldsRowList.Add(mfrFirstName); MappedFieldsRow mfrLastName = new MappedFieldsRow(); mfrLastName.Add(fmiLastName); af.MappedFieldsRowList.Add(mfrLastName);

Remarks

This class defines which columns from different sources will be mapped in one output final column. It contains two lists.

1. 'MappedFieldsRowList' contains defini�ons for every column in final table – this defini�on contains informa�on on which columns from input data sources to use and whether to include this column in final table 2. 'TableList' contains informa�on about columns for every input data source

Constructors:

AvailableFields () Create instance of class

Proper�es: this[Int32] AvailableFieldsFromOneTable get; Gets table informa�on about a specific data source by index this[String] AvailableFieldsFromOneTable get; Gets table informa�on about a specific data source by source name

TableList List get; List of table informa�on. set; Each item contains some informa�on about one input data source: columns list, file storage

MappedFieldsRowList List get; A list that contains defini�on for every column in final table. This defini�on contains informa�on which columns from input data sources to use, to include or not this column in final table

Methods:

GetTableName(Int32 Gets a data source name by index tableIndex) tableIndex-data source index Returns - name of data source

AvailableFieldsFromOneTable class

Namespace: dataladder.Matching

Assemblies: DataMatch.Matching.dll

List of column from some data source. This class used for column mapping in the final table

C# public class AvailableFieldsFromOneTable

Examples:

///

/// Creates AvailableFieldsFromOneTable instance. And adds a few field /// /// file storage /// list of fields /// public sta�c AvailableFieldsFromOneTable CreateAFOT(OnDriveTable onDriveTable, List fmis) { AvailableFieldsFromOneTable afot = new AvailableFieldsFromOneTable(); afot.Table = onDriveTable; foreach (var fmi in fmis) { afot.Add(fmi); } return afot; }

///

/// Gets from AvailableFieldsFromOneTable instance informa�on about columns /// /// AvailableFieldsFromOneTable instance /// fields public sta�c List GetMapInfo(AvailableFieldsFromOneTable afot) { List list = new List(); for (int i = 0; i < afot.Count; i++) { list.Add(afot[i]); } return list; }

Remarks

Constructors:

AvailableFieldsFromOneTable () Create instance of class

Proper�es: this[Int32] FieldMapInfo get; Gets column informa�on by index this[String] FieldMapInfo get; Gets column informa�on by column name

Table ITable2CoordsMapper get; set; Data source

Count Int32 get; Count of columns

Methods:

Add(FieldMapInfo Adds a column informa�on in the list of columns fieldMapInfo) fieldMapInfo - column informa�on

MappedFieldsRow class

Namespace: dataladder.Matching

Assemblies: DataMatch.Matching.dll

This class represents the column in the final result table. It is used for defining all columns from different tables that will be mapped in one column in the final table.

This class can contain only one column for each data source. For some sources, columns cannot be chosen.

So first extreme variant of this class will contain a count of columns that is the same as the count of sources. The second extreme variant is when no column is chosen.

C#

public class MappedFieldsRow

Examples:

// Creates FieldMapInfo. Func�on 'CreateFieldMapInfo' is // shown in lis�ng in the sec�on about 'FieldMapInfo' class FieldMapInfo fmiFirstName = CreateFieldMapInfo(0, "Table", "FirstName", 0); FieldMapInfo fmiLastName = CreateFieldMapInfo(0, "Table", "LastName", 1);

// Creates MappedFieldsRow instances and a�aches FieldMapInfo in different ways MappedFieldsRow mfrFirstName = new MappedFieldsRow(); mfrFirstName["Table"] = fmiFirstName; // in this case, the table name is indicated in explicit way

MappedFieldsRow mfrLastName = new MappedFieldsRow(); mfrLastName.Add(fmiLastName); // in this case table name is taken from FieldMapInfo

… descrip�on of the class

Constructors:

FieldMapInfo() Create instance of class

Proper�es: this[String] FieldMapInfo get; set; Get informa�on about the column by data source name

FirstNotEmptyFieldMapInfo FieldMapInfo get; This class contains choices of columns. For every data source, one column may be chosen. This property contains the first choice made.

Methods:

Add(FieldMapInfo fieldMapInfo) Add column from some data source to list of map-in-one columns. If any column from same data source already exists in set, then it will be replaced with new column

fieldMapInfo - new added column from some data source

FieldMapInfo class

Namespace: dataladder.Matching

Assemblies: DataMatch.Matching.dll

Class that contains informa�on about a column from some table. This class used for column mappings when final results are prepared.

C# public class FieldMapInfo : IDisposable

Examples:

///

/// Create instance of FieldMapInfo /// /// index of data source /// name of data source /// name of column /// index of column /// public sta�c FieldMapInfo CreateFieldMapInfo(Int32 sourceId, String tableName, String columnName, Int32 columnId) { FieldMapInfo fmi = new FieldMapInfo(sourceId); fmi.FieldName = columnName; fmi.TableName = tableName; fmi.ColumnTransforma�on = null; fmi.FieldIndex = columnId;

return fmi; }

Remarks

Constructors:

FieldMapInfo(Int32 Create instance of class dataSourceIndex) dataSourceIndex - data source index in the match engine

Proper�es:

FieldName String get; set; Column name

FieldIndex Int32 get; set; Column index in a table

TableName String get; set; Table name

DataSourceIndex Int32 get; Data source index in the match engine

Mapped Boolean get; set; Property for auto mapping feature. When this field is already auto-maped, then true

ColumnTransforma�on IColumnTransforma�on get; set; Standardiza�on se�ngs for this column (field)

Methods:

Dispose() Clears resources

ProjectSpec class

Namespace: DataMatch.Project.Descriptors

Assemblies: DataMatch.Project.dll

Class that extracts se�ngs from 'dmeproj' file

C# public class ProjectSpec : ITableSerializable

Examples:

ProjectSpec projectSpec = new ProjectSpec(); ProjectSpecHelper.LoadProject(projectSpec, @"D:\test.dmeproj"); String descrip�on = projectSpec.Descrip�on;

Remarks

‘DataMatch Enterprise’ applica�on works with projects. The applica�on has a rich user interface that allows a user inves�gate and standardize data, and prepare complex matching se�ngs within an intui�ve, visual interface. Any match se�ngs and configura�ons that the user creates are saved in a project file that has ‘.dmeproj’ extension.

This class enables you to get these se�ngs from a project file.

Constructors:

ProjectSpec() Create instance of class

Proper�es:

Descrip�on String get; descrip�on of project set;

DataSource DataSourcesSpec get; data sources se�ngs set;

MatchDefini�on MatchDefini�onSpec get; matching se�ngs set;

SavedResultsMatchDefini�on MatchDefini�onSpec get; matching se�ngs for set; saved results

MatchingDataSourcePairs SourcePairsSpec get; matching pairs se�ngs set;

FinalExportSe�ngs FinalExportSpec get; Final Export Se�ngs set;

DuplicatePairsBaseName String get; Path to pairs table set; results

DuplicateGroupsBaseName String get; Path to groups table set; results

DuplicateGroupsFirstRow Int32 get; set;

MergeSe�ngs ResultOverwri�erSpec get; Merge Survivorship set; Overwrite se�ngs

MasterRecordDeterminant ResultOverwri�erSpec get; Merge Survivorship set; master record se�ngs

AddressVerifica�onSe�ngs AddressVerifica�onSpec get; Verifica�on set; se�ngs

ProfilerPa�ernOp�ons ProfilerPa�ernSpec get; profiler se�ngs set;

Methods:

FromTable(DataTable Loads this file proper�es from DataTable instance table) table - DataTable inside which was saved instance of this class

ProjectSpecHelper class

Namespace: DataMatch.Project.Helpers

Assemblies: DataMatch.Project.dll

Class containing methods that help when working with a DME project file

C# public sta�c class ProjectSpecHelper

Examples:

ProjectSpec projectSpec = new ProjectSpec(); ProjectSpecHelper.LoadProject(projectSpec, @"D:\test.dmeproj"); String descrip�on = projectSpec.Descrip�on;

Remarks

Methods:

LoadProject( Load to specific ProjectSpec instance se�ngs from DME project file ProjectSpec projectSpec - modified ProjectSpec instance projectSpec, String filename - path to DME project file fileName)

ColumnTransforma�onsSpec class

Namespace: DataMatch.Project.Descriptors.DataSource

Assemblies: DataMatch.Project.dll

Data source standardiza�on se�ngs

C# public class ColumnTransforma�onsSpec : ITableSerializable

Examples:

// How get ColumnTransforma�onsSpec from project file

ProjectSpec projectSpec = new ProjectSpec(); ProjectSpecHelper.LoadProject(projectSpec, @"D:\test.dmeproj"); String descrip�on = projectSpec.Descrip�on; var sources = projectSpec.DataSource.DataSources; foreach (DataSourceSpec source in sources) { ColumnTransforma�onsSpec stand = source.StandardizedInfo; }

Constructors:

ColumnTransforma�onsSpec() Create instance of class

Proper�es:

Transforma�ons List get; set; List of column This list contains se�ngs for each data source column

Methods:

FromTable(DataTable Loads from DataTable instance table) table - DataTable inside which an instance of this class is saved

ColumnTransforma�onSpec class

Namespace: DataMatch.Project.Descriptors.DataSource

Assemblies: DataMatch.Project.dll

Column standardiza�on se�ngs

C# public class ColumnTransforma�onSpec

Constructors:

ColumnTransforma�onSpec () Create instance of class

Proper�es

FieldName String get; Column name set;

Type String get; Type of column. String set; representa�on of Transforma�onType enum.

CopyField Boolean get; copy this field? set;

ChangeCase Boolean get; change case? set;

UpperCase Boolean get; transform to uppercase? set;

LowerCase Boolean get; transform to lowercase? set;

ProperCase String get; Proper case se�ngs set;

RemoveNonPrintableCharacters Boolean get; remove non-printable chars? set;

ReplacementForNonPrintableCha String get; What should non-printable chars be racters set; replaced with>

ReplacementForEmptyValues String get; Replacement for empty values set;

RemoveLeadingSpaces Boolean get; remove leading spaces? set;

RemoveTrailingSpaces Boolean get; remove trailing spaces? set;

CharactersToRemove String get; Chars to be removed set;

CharactersToReplace String get; Chars replacement se�ngs set;

CharactersToReplaceCaseSensi�v String get; Chars replacement is case sensi�ve e set;

RemoveSpaces Boolean get; remove all spaces? set;

RemoveLe�ers Boolean get; remove all le�ers? set;

RemoveDigits Boolean get; remove numbers? set;

ReplaceZerosWithOs Boolean get; replace zeros with 'O'? set;

ReplaceOsWithZeros Boolean get; remove le�er 'O' with zeros? set;

Regex String get; Pa�ern Builder se�ngs set;

WordSmith String get; Wordsmith se�ngs set;

MergeInfoSpec class

Namespace: DataMatch.Project.Descriptors.DataSource

Assemblies: DataMatch.Project.dll

Se�ngs for merging fields during standardiza�on

C# public class MergeInfoSpec : ITableSerializable

Examples:

// How get MergeInfoSpec from project file

ProjectSpec projectSpec = new ProjectSpec(); ProjectSpecHelper.LoadProject(projectSpec, @"D:\test.dmeproj"); String descrip�on = projectSpec.Descrip�on; var sources = projectSpec.DataSource.DataSources; foreach (DataSourceSpec source in sources) { MergeInfoSpec merge = source.MergingInfo; }

Remarks

This class has property ‘Merged Fields’. Every item from the list represents one merged field and its se�ngs. The Class with se�ngs is described in separate sec�on of this document (see ‘MergedFieldSpec’).

Delimiter for all merged fields is the same.

Constructors:

MergeInfoSpec() Create instance of class

Proper�es:

MergedFields List get; set; Se�ngs for every merged field

Delimiter String get; set; Delimiter that will be added between merged values

Methods:

FromTable( Loads proper�es from DataTable instance DataTable table) table - DataTable inside which was saved instance of this class

MergedFieldSpec class

Namespace: DataMatch.Project.Descriptors.DataSource

Assemblies: DataMatch.Project.dll

Class that describes how to get a new merged column

C# public class MergedFieldSpec : ITableSerializable

Constructors:

MergedFieldSpec() Create instance of class

Proper�es:

FieldName String get; set; New column name

MergedFields List get; set; Names of columns that will be merged into new column

Methods:

FromTable(DataTable Loads proper�es from DataTable instance table) table - DataTable in which an instance of this class was saved

MatchDefini�onSpec class

Namespace: DataMatch.Project.Descriptors.MatchDefini�on

Assemblies: DataMatch.Project.dll

Matching se�ngs: defini�ons and how to map fields

C# public class MatchDefini�onSpec : ITableSerializable

Constructors:

MatchDefini�onSpec() Create instance of class

Proper�es:

MappedFields MappedFieldsSpec get; se�ngs for mapping fields set;

Defini�ons Defini�onsSpec get; se�ngs for defini�ons set;

AllRecordsInGoupMustBeSimilar Boolean get; should similarity between set; each record to others in group be more than criterion level?

AutogenerateReport Boolean get; generate report a�er set; matching

Methods:

FromTable(DataTable Loads MatchDefini�onSpec proper�es from DataTable instance table) table - DataTable inside which was saved instance of this class

Defini�onsSpec class

Namespace: DataMatch.Project.Descriptors.MatchDefini�on

Assemblies: DataMatch.Project.dll

List of defini�ons se�ngs

C# public class Defini�onsSpec : ITableSerializable

Constructors:

Defini�onsSpec() Create instance of class

Proper�es:

Defini�ons List get; set; List of defini�ons

Methods:

FromTable(DataTable Loads Defini�onsSpec proper�es from DataTable instance table) table - DataTable inside which was saved instance of this class

Defini�onSpec class

Namespace: DataMatch.Project.Descriptors

Assemblies: DataMatch.Project.dll

Match Defini�on

C# public class Defini�onSpec : ITableSerializable

Constructors:

Defini�onSpec() Create instance of class

Proper�es:

MatchCriteriaList List get; set; Criteria belonging to this defini�on

Methods:

FromTable(DataTable Loads Defini�onSpec proper�es from DataTable instance table) table - DataTable where an instance of this class was saved

MatchCriteriaSpec class

Namespace: DataMatch.Project.Descriptors.MatchDefini�on

Assemblies: DataMatch.Project.dll

Se�ngs for match criterion

C# public class MatchCriteriaSpec

Constructors:

MatchCriteriaSpec() Create instance of class

Proper�es:

TableFieldDic�onary Dic�onary get; set; Dic�onary that contains columns Key - table name, Value - Column name

Fuzzy Boolean get; set; Use fuzzy matching for this criterion

Exact Boolean get; set; Use exact matching for this criterion

Numeric Boolean get; set; Do the columns defined in this criterion contain numbers?

AddWeightToFirstLe�er Boolean get; set; Increase matching score if first le�er of records are same

UseMetaphone Boolean get; set; Match based on the pronuncia�on of records

IgnoreCase Boolean get; set; Ignore case during matching

GroupId Int32 get; set; Iden�fier of group. All criterion with the same Id will grouped together.

GroupLevel Double get; set; Aggregate similarity level for a group of match criteria.

MinAllowedLevelInGroup Double get; set; Level for a group. If criterion belongs to group, this is an addi�onal checking level. If match score is greater than this value, records will be marked similar

CrossColumnGroupId Int32 get; set; Cross-column ID set by user

MaxTotalWeightBelow Int32 get; set; The upper limit for the sum of criteria weight that are similar

MaxMismatchWeightBelow Int32 get; set; The upper limit for the sum of criteria weight that are mismatched

MaxEmptyWeightBelow Int32 get; set; Max empty weight for a group. Every criterion in the group that has empty records adds its own weight to the sum of empty weights. This sum must be less than this property. If the sum is greater, then the row will not be recognized as similar.

Level Double get; set; Value indica�ng a degree of expected similarity for the column values selected for matching. Must be in limits [0.0 ... 1.0]

Weight Double get; set; Weight of the criterion; cannot be less than 1 and greater than 1000

MatchingIndex Byte get; set; Index of fuzzy criterion in criteria list. Only fuzzy is calculated

AbsoluteMatchingIndex Byte get; set; Index of criterion in criteria list

Methods:

FromTable(DataTable Loads MatchCriteriaSpec proper�es from DataTable instance table) table - DataTable inside which was saved instance of this class

MappedFieldsSpec class

Namespace: DataMatch.Project.Descriptors.MatchDefini�on

Assemblies: DataMatch.Project.dll

List of mapped fields - how columns from input data sources are mapped to each other

C# public class MappedFieldsSpec : ITableSerializable

Constructors:

MappedFieldsSpec() Create instance of class

Proper�es:

MappedFields List get; set; List of mapped field

Methods:

FromTable(DataTable Loads MappedFieldsSpec proper�es from DataTable instance table) table - DataTable where an instance of this class was saved

MappedFieldSpec class

Namespace: DataMatch.Project.Descriptors

Assemblies: DataMatch.Project.dll

Se�ngs for mapping one output column to which input columns

C# public class MappedFieldSpec

Constructors:

MappedFieldSpec() Create instance of class

Proper�es:

Include Boolean get; set; Show this field in final result table

MappedFields Dic�onary mapped together Key - table name, Value - column name

Registra�onWrapper class

Namespace: dataladder.Licensing

Assemblies: DataMatch.Core.dll

Helper for accessing registra�on details

C# public class Registra�onWrapper

Examples:

// How to point path to folder where license.txt file is placed Registra�onWrapper Registra�on = new Registra�onWrapper(); Registra�on.CustomPathForRegistra�onFile = @"D:\SDK\License";

// How to check expira�on date DateTime expira�onDate = Registra�onWrapper.Expira�onDate; Boolean registered = expira�onDate >= DateTime.Now;

Constructors:

Registra�onWrapper() Create instance of class

Proper�es:

CustomPathForRegistra�onFile String get; The path where file with a set; registra�on key is stored

Expira�onDate DateTime get; Expira�on Date

IOHelper class

Namespace: dataladder.IO

Assemblies: DataMatch.Core.dll

Helper for working with files, folders, etc.

C#

public sta�c class IOHelper

Examples:

bool res = false; if (!(res = System.IO.Directory.Exists(@"D:\Some folder"))) { Console.WriteLine(res); //false - folder doesn't exist yet res = dataladder.IO.IOHelper.CreateDirectoryIfNotExist(@"D:\Some folder"); Console.WriteLine(res); //true - checks that function returned 'true' res = System.IO.Directory.Exists(@"D:\Some folder"); Console.WriteLine(res); //true - checks that folder was created res = dataladder.IO.IOHelper.CreateDirectoryIfNotExist(@"D:\Some folder"); Console.WriteLine(res); //true - returns true when folder already exists }

Constructors:

This is sta�c class, so an instance of this class doesn’t need to be created

Methods:

CreateDirectoryIfNotExist Checks the path for a specific directory. If the path doesn’t exist, ( String dirPath) then all directories will be created here.

dirPath – checked/created path

returns - directory exists

Transforma�onDiagram Class

Namespace: dataladder.Data.DataTransforma�on

Assemblies: DataMatch.Transforma�on.dll

Defines a chain of transforma�ons and input and output fields. Allows transforma�ons for a single record.

C# public class TransformationDiagram

Examples The following code example creates Transforma�onDiagram array for mul�threaded transforma�on.

C#

var transformationDiagramArr = new TransformationDiagram[coreCount]; for (Int32 taskIndex = 0; taskIndex < coreCount; taskIndex ++) { transformationDiagramArr[taskIndex] = new TransformationDiagram(taskIndex); }

Constructors

TransformationDiagram(Int32) Create an instance of Transforma�onDiagram for a task Int32.

Proper�es and Public Fields

ContainsCassBlock Indicates whether at least one CASS transforma�on is applied.

TransformedOutputs Outputs which are the product of some data transforma�on with transforma�on blocks. Other kind of outputs are the non-transformed column from input.

TaskIndex The index of a task which performs transforma�on (for mul�threaded processing).

Inputs Defines column names and indexes in input data source.

Outputs The list of output columns a�er transforma�on.

Methods

AddTransformationBlock( Adds the new atomic transforma�on Transforma�onBlock TransformationBlock) to transforma�on list.

AddInput(String, Int32) Adds the new data flow with a name String and an index Int32 to a list of inputs.

AddOutput(DataFlow) Add the new output DataFlow either from transforma�on block output, or from the input data flow if there is no transforma�on defined.

Clear() Clears the list of transforma�on blocks and inputs and outputs.

CreateOutputs() All outputs from transforma�on blocks which are not connected anywhere are redirected to diagram outputs.

Prepare() Sorts the transforma�on block by the order of execu�on.

GetTransformedOutputCount() Determines amount of output columns that were created by transformations, not by just transferring from inputs.

IsBlockBeforeOther() “True” if block a is before block b (in the flow direc�on).

Process(Int32) Performs all the transforma�ons defined in the Transforma�on Diagram for a single row with index Int32.

DataFlow Class

Namespace: dataladder.Data.DataTransformation

Assemblies: DataMatch.Transforma�on.dll

Used to describe 2 loca�ons: from where data is coming, and where it is going. The flow is unidirec�onal.

C# public class DataFlow

Examples The following code example creates the new DataFlow and adds it to a DataFlowCollec�on.

C#

String fieldName = "FirstName"; Int32 fieldIndex = 1; DataFlowCollection flowCollection = new DataFlowCollection(); DataFlow dataFlow = new DataFlow(fieldName, fieldIndex); flowCollection.Add(dataFlow, fieldName);

Constructors

DataFlow(String, Int32) Creates the new data flow, defines its name String , and the index Int32 in input data source.

DataFlow(String) Creates a data flow with the name String.

Proper�es and Public Fields

InputIndex Defined an index in input data source. Meaningful only when InputType == InputTypes.DirectFromDataSource.

ConnectedToBlocks The list of unique transforma�on blocks that has current data flow as an input.

Name Data flow name. It can be a column name either from input or from output data table that are used for transforma�on.

OutputIndex Output index of the field in transforma�on block.

InputTransformation If input is directly from data source this property is null. Block

InputType Indicates whether data is taken directly from a data source or from some other transforma�on.

Value In a case of input data flow, the data taken from input data source or previous transforma�on. For output data flow - the result of transforma�on.

Tag Any addi�onal informa�on. Currently, this property is used for storing CassInputTypes for CASS address verifica�on transforma�on.

InDiagramOutput When set to true, this value will appear in the output of the whole diagram.

Methods

IsAfter(DataFlow) True if this data flow is before other DataFlow (in the flow direc�on).

DataFlowCollec�on Class

Namespace: dataladder.Data.DataTransformation

Assemblies: DataMatch.Transforma�on.dll

List of transforma�on inputs and outputs.

C# public class DataFlowCollection

Examples The following code example creates the new DataFlow and adds it to a DataFlowCollection.

C#

String fieldName = "FirstName"; Int32 fieldIndex = 1; DataFlowCollection flowCollection = new DataFlowCollection(); DataFlow dataFlow = new DataFlow(fieldName, fieldIndex); flowCollection.Add(dataFlow, fieldName);

Constructors

DataFlowCollection() Creates the new instance of DataFlowCollection, ini�alizes a list of data flows.

Proper�es and Public Fields this[Int32] Access to data flow by index. For output columns, ensures that column names are unique. this[String] Gets data flow by its name. For output columns, ensures that column names are unique.

Count Gets a count of data flows.

Methods

Add(DataFlow, String) Ini�alizes the new data flow and adds it to a list.

Remove(DataFlow) Removes data flow from the list.

Contains(DataFlow) Checks if data flow is present in the list.

Sort() Sorts data flows in the list using default DataFlowComparer.

Clear() Clears data flow list.

Transforma�onBlock Class

Namespace: dataladder.Data.DataTransformation

Assemblies: DataMatch.Transforma�on.dll

A base class for all types of transforma�ons. Responsible for storing input and output fields, includes prototypes for the main ac�ons like process, add inputs & outputs, clearing inputs and outputs.

C# public abstract class TransformationBlock

Examples The following code example creates the new CopyColumnBlock and assigns it to Transforma�onBlock.

C#

String fieldName = "FirstName"; Int32 fieldIndex = 1; TransformationDiagram diagram = new TransformationDiagram(0); DataFlow input = diagram.AddInput(fieldName, fieldIndex); TransformationBlock copyColumnBlock = new CopyColumnBlock(input);

Remarks

In this class, all kinds of data transforma�ons occur, like convert to lowercase, uppercase, remove non-printable characters, parse names, , merge values, etc. Any transforma�on block can receive data from input data directly or from a different

transforma�on block. The only limita�on to making a diagram with transforma�on blocks is recursion. Output from one block cannot return to the same block directly or through other block(s).

Constructors

TransformationBlock() Auto-generated constructor.

Proper�es and Public Fields

Inputs Defines column names and indexes in input data source.

Outputs The list of output columns a�er transforma�on.

Methods

SetInput(Int32, Assigns DataFlow to input with index Int32 and adds DataFlow) current transforma�on block to ConnectedToBlocks.

CleanIO() Clears input and output lists.

CleanOutputs() Clears the list of outputs.

CleanInputs() Clears the list of inputs.

Process() Starts transforma�on process.

CassInputTypes Enum

Namespace: dataladder.Data.DataTransformation

Assemblies: DataMatch.Transforma�on.dll

Defines the list of possible input field types available in CASS Address Verifica�on module.

C# public enum CassInputTypes

Fields

CompanyName 0 Input field contains Company or Firm name.

PrimaryAddress 1 Input column contains primary address.

SecondaryAddress 2 Input column contains secondary address.

CityName 3 Input column contains city name.

StateName 4 Input column contains state name.

ZipCode 5 Input column contains US (Zip code).

Urbanization 6 Denotes an area, sector, or residen�al development within a geographic area.

Country 7 Column contains country name. (Used for Canadian address verifica�on).

PostalCode 8 Canadian postal code (if Country field is defined and equals 'Canada') or US Zip code for US addresses.

Examples The following code example shows how to use CassInputTypes enumera�on.

CassOutputParts Enum

Namespace: dataladder.Data.DataTransformation

Assemblies: DataMatch.Transforma�on.dll

Defines all possible output field types that are populated a�er valida�ng address using CASS Address Verifica�on module.

C# public enum CassOutputParts

Fields

Status 0 Result return code. Possible values: V - address verified; M - mul�ple response; N - address not verified.

ResidentialDeliver 1 Residen�al Delivery Indicator (RDI). Possible values: y- Y = Residen�al Delivery; Indicator N = Not Residen�al Delivery; Blank = Did not query RDI.

CompanyFirm 2 Firm/Company.

PrimaryAddress 3 Standardized Primary Address.

SecondaryAddress 4 Secondary Address.

City 5 Standardized Preferred City.

State 6 Standardized State Abbrevia�on.

ZipCode 7 Standardized ZIP Code.

PostalCode 8 Standardized Postal Code (Canada Only).

Plus4 9 +4 Code.

DeliveryPointCheck 1 Delivery Point and Check Digit. - 0 Digit

DeliveryPoint 1 Delivery Point. 1

Plus6 1 Zip + 6. 2

CarrierRouteCode 1 Carrier Route Code. 3

LineOfTravelNumber 1 Line of Travel Number. 4

LineOfTravelCode 1 Line of Travel Asc/Desc Code. 5

AddressRecordType 1 Address Type. 6

Urbanization 1 Urbaniza�on. 7

StateFips 1 State FIPS Code. 8

CountyFips 1 County FIPS Number. 9

CountyName 2 County Name. 0

CongressDist 2 Congressional District Number. 1

PreferredCity 2 Standardized Preferred City. 2

AbreviatedCity 2 Standardized Abbreviated City Name (if available). 3

LastLine 2 Complete Standardized Last Line. 4

LacsMatch 2 LACS Match. 5

LacsLink 2 LACSLink Return Code. 6

LacsLinkIndicator 2 LACSLink Indicator. 7

SuiteLink 2 SuiteLink Code. 8

ReturnCode 2 Return Code. Possible values: 9 10 = Invalid Address;

11 = Invalid ZIP code; 12 = Invalid State Code; 13 = Invalid City; 21 = Address not found; 22 = Mul�ple response; 31 = Single response (Exact Match); 32 = Default response (Missing informa�on - Ste #, or Invalid Ste #).

ErrorAndWarning 3 Warnings or Errors. Possible values: 0 A# ZIP; B# City/State Corrected C# Invalid city/state/zip D# No ZIP assigned E# ZIP assigned for mul�ple response F# No ZIP available G# Part of firm moved to address H# Secondary number missing I# Insufficient/incorrect data J# Dual input K# Mul� caused by cardinal rule L# Deliver address component add/del/chg M# Street name spelling changed N# Delivery address was standardized O# Low +4 �e-breaker (mul�-response) P# Be�er delivery address exists Q# Unique ZIP Code R# No match due to EWS (Early Warning System) S# Invalid secondary number T# Mul�ple caused by magnet rule U# Unofficial Post Office name V# Unverifiable city/state W# Small town default X# Unique ZIP code generated Y# Military match Z# ZIP move match

BuildingNumber 3 Parsed Primary Number. 1

PreDirection 3 Parsed Pre-direc�on. 2

StreetName 3 Parsed Street Name. 3

PostDirection 3 Parsed Post Direc�on. 4

Suffix 3 Parsed Suffix. 5

SecondaryName 3 Parsed Unit Descrip�on. 6

SecondaryNumber 3 Parsed Secondary Number. 7

PMBIndicator 3 Private Box Descrip�on. 8

PMBNumber 3 Private Mail Box Number. 9

VacancyFlag 4 Delivery Point Confirma�on Indicators - DPV Vacancy 0 Indicator.

CountyFIPSCode 4 County FIPS Number. 1

StateFIPSCode 4 State FIPS Code. 2

CongressDistNumber 4 Congressional District Number. 3

DPV 4 Delivery Point Confirma�on Indicators. Combines the next 4 result values into a single string: DPV Confirma�on Indicator; DPV CMRA Indicator; DPV False Posi�ve Indicator; DPV Vacancy Indicator; DPV No Stats Indicator.

DPVFlag 4 Delivery Point Confirma�on Footnotes. A combina�on of 5 results of the next variables: 1) AA Input Address Matched to the ZIP + 4 file; 2) BB Input Address Matched to DPV (all components). If parameter (1) returns - adds 'AA';

If parameter (2) returns - adds 'BB'; Example: "", "AA", "BB", "AABB".

LACSFlag 4 LACSLink Return Code. 6

LACSReturnCode 4 LACSLink Return Code. 7

SteLinkInd 4 SuiteLink Indicator. 8

CensusTract 4 Census Tract. 9

CensusBlockGroup 5 Census Block Group. 0

Latitude 5 La�tude. 1

Longitude 5 Longitude. 2

ErrorExplanation 5 Textual explana�on of address verifica�on error code. 3

Examples The following code example shows how to use CassOutputParts enumera�on.

C#

Transforma�onTypes Enum

Namespace: dataladder.Data.DataTransformation

Assemblies: DataMatch.Transforma�on.dll

Defines a list of all possible transforma�on types that can be specified on the Data Cleansing and Standardiza�on tab.

C# public enum TransformationTypes

Fields

None 0 No special column type defined.

FullName 1 Splits column that contains Full Name into First Name, Last Name, Gender, etc. columns.

FirstName 2 Adds new columns with Common Name and Gender. E.g. Ron - > Ronald; Jim -> James, Carrie -> Charles, etc.

Address 3 Can be applied to input fields that contains Primary Address, Secondary Address, City, Zip, State. If more input fields with type Address are added, more accurate parsed address will be retrieved.

Zip 4 Can be applied to fields that contains US Zip codes or Canadian Postal Codes. If this transforma�on type applied, a field with postal code will be spli�ed into ZipA, ZipB and Country subfields.

Zip ZipA ZipB Country

49512-1368 49512 1368 USA

X0E 0C0 X0E 0C0 – Canada

VCompanyName 5 Company/Firm.

VPrimaryAddres 6 Address Line 1 (Primary Address). s

VSecondaryAddr 7 Address Line 2 (Secondary Address or Suite/Apt). ess

VCityName 8 City.

VStateName 9 State.

VZipCode 10 ZIP or ZIP+4 ( Do not use for Canada).

VUrbanization 11 Urbaniza�on.

VCountry 12 Country (Required Canada Only). Should be "CANADA".

VPostalCode 13 Canadian Postalcode (Required Canada Only). E.g. "X0E 0C0".

Examples The following code example shows how to use TransformationTypes enumera�on.

C#

ColumnTransformation columnTransformation; TransformationDiagram diagram; DataFlow input; . . . switch (columnTransformation.TransformationType) { case TransformationTypes.Zip: ZipBlock zipBlock = new ZipBlock(); diagram.AddTransformationBlock(zipBlock); zipBlock.AddInput(input); break; default: break; }

. . .

ColumnTransforma�onCore Class Namespace: dataladder.Data

Assemblies: DataMatch.Transforma�on.dll

Base abstract class that describes all transforma�ons that can be applied to a single input column. Includes Case Changing, Replacement, Remove Characters opera�ons, etc.

C# public abstract class ColumnTransformationCore : IColumnTransformation, IDisposable

Examples The following code example shows how to use ColumnTransformationCore class.

C#

Constructors

ColumnTransformationCore() Auto generated constructor.

Proper�es and Public Fields

FieldName A name of a field from input data source to which transforma�on will be applied.

CopyField Defines whether a copy of source input field will be just transferred to outputs without any changes. Transforma�on will be applied to original input field that will be modified and added to outputs.

ChangeCase Reverts a case of symbols. E.g. "Boston" -> "bOSTON".

UpperCase Transforms all the symbols into uppercase.

LowerCase Transforms all the symbols into lowercase.

ProperCase Transforms all the symbols into proper case. E.g. "BOSTON" -> "Boston".

RemoveNonPrintable- Removes all the characters that are categorized by Characters Unicode as whitespaces (excluding whitespace symbol itself).

ReplacementForNon- Replaces all the symbols that are treated by Unicode PrintableCharacters as whitespaces (except whitespace itself) with a value defined by current property.

ReplacementFor- Replacement for cells that contains NULLs or empty EmptyValues string values.

RemoveLeadingSpaces Removes all the whitespace characters at the beginning of the input text.

RemoveTrailingSpaces Removes all the whitespace characters that go at the end of the source text.

CharactersToRemove Specifies a list of characters that will be removed from the source text a�er transforma�on.

CharactersToReplace Contains characters and their replacements in a special packed format.

RemoveSpaces Defines whether whitespace symbol should be removed from input text.

RemoveLetters Specifies if input symbols that are categorized as Unicode le�ers should be removed from the input text.

RemoveDigits Instructs to remove/leave all Unicode decimal digits.

ReplaceZerosWithOs Indicates if Zero symbols '0' should be replaced with a capital 'O' symbol.

ReplaceOsWithZeros Indicates if a capital 'O' symbols should be replaced with Zero symbols '0'.

Note Some descrip�on or comment to input field. This informa�on is shared between Standardiza�on and Profiler tabs.

ProfiledType Type that was defined during profiling.

Active Indicates if at least one transforma�on op�on is different from its default value.

CleanEmails Defines if Email cleaning module should be used.

Methods

ResetSettings() Sets all transforma�on and cleansing op�ons to their default values.

ToString() Generates textual descrip�on of all used transforma�ons.

Dispose() IDisposable implementa�on.

ColumnTransforma�on Class

Namespace: dataladder.Data.DataTransformation

Assemblies: DataMatch.Transforma�on.dll

This class describes all the transforma�ons applied to a single input column. Main func�onality is declared in base class ColumnTransforma�onCore. In the current class, added WordSmith se�ngs, Regular Expression op�ons, advanced Proper Case se�ngs, etc.

C# public class ColumnTransformation : ColumnTransformationCore

Examples The following code example shows how to use ColumnTransformation class.

C#

Constructors

ColumnTransformation(String) Creates cleansing op�ons class instance for a single input column transforma�on using String path to temporary folder that is used for intermediate opera�ons.

Proper�es and Public Fields

TransformationType Defines input field type for transforma�on. Depending on this type, addi�onal output columns can be created.

TransformationTypeSource Field type that defined by the Predic�on module.

RegExSettings Regular expression output op�ons.

UseWordSmith Defines whether WordSmith transforma�on is used for a column.

WordSmithVisualizator Needed only for visualizing (the GUI). Should not be used otherwise.

ProperCaseSettings Addi�onal proper case op�ons. Can effect on French and Irish names. E.g. "McGregor" instead of "Mcgregor", "de la Croix" instead of "De La Croix"

ProperCase Indicates whether Proper Case op�on is enabled.

UseAddressVerification Determines if any CASS Address Verifica�on field is selected as Type for the input column.

Methods

ShallowClone() Creates the new instance of a ColumnTransformation and copies all the se�ngs to it from the current transforma�on class object.

ToString() Textual representa�on of all the column transforma�ons applied to input field.

Dispose() Custom IDIsposable interface implementa�on.

ColumnTransforma�onListCore Class Namespace: dataladder.Data

Assemblies: DataMatch.Transforma�on.dll

Base class that encapsulates basic func�onality for working with a list of transforma�ons for each column of input data source.

C# public abstract class ColumnTransformationListCore : IDisposable

Examples The following code example shows how to use ColumnTransformationCore class.

C#

Constructors

ColumnTransformationLis Auto generated constructor. tCore()

Proper�es and Public Fields

CleaningOptionsLis A list of transforma�on op�ons defined for every field of input t data source. this[Int32] Gets or sets a single ColumnTransforma�on by its index Int32 in transforma�on list. this[String] Gets a single ColumnTransforma�on by a name String of the field in input data source to which this transforma�on is applied.

Count Transforma�on columns amount.

Methods

Add(ColumnTransformationCore Adds a new ColumnTransformationCore to ) column transforma�on list.

Copy(ColumnTransformationLis Copy column transforma�on list from other list tCore) ColumnTransformationListCore to the current. Exis�ng list of transforma�ons is cleared before copy opera�on.

IndexByName(String) Gets input field index by its name String.

ToTable() Prototype for a method that serializes transforma�on op�ons to DataTable object.

FromTable(DataTable) Prototype for a method that deserializes transforma�on op�ons from DataTable object.

Dispose() Custom IDIsposable interface implementa�on.

ColumnTransforma�onList Class Namespace: dataladder.Data.DataTransformation

Assemblies: DataMatch.Transforma�on.dll

Describes a list of transforma�ons defined for all the columns from input data source. Can be used even without any input data sources, just for describing any list of column transforma�ons. An instance of such class can be transformed to System.Data.DataTable class and loaded from such table in the future.

C#

public class ColumnTransformationList : ColumnTransformationListCore, ILoadableContainer2CoordsMapper

Examples The following code example shows how to use ColumnTransformationList class.

C#

Constructors

ColumnTransformationList(String) Creates an instance of the class that represents a list of transforma�ons defined for all the columns from input data source. Parameter String – full path to temporary folder that is used for intermediate opera�ons.

Proper�es and Public Fields this[Int32] Gets or sets a single ColumnTransformation by its index in transforma�on list.

RecordCount Gets number of transforma�ons in the transforma�on list.

ColumnCount Gets number of different transforma�on types.

Methods

ToTable() Serializes transforma�on op�ons to DataTable object.

FromTable(DataTable) Deserializes transforma�on op�ons from DataTable object.

GetData(Int32, Int32) Gets a single transforma�on op�on (second Int32) for a single transforma�on column (first Int32).

SetData(Object, Int32, Sets Object atomic transforma�on op�on (second Int32) Int32) for defined transforma�on column (first Int32).

GetColumnName(Int32) Returns transforma�on column name by its index Int32.

AddMapperRow(DataRow, Adds the new empty column transforma�on to the list. out Boolean) Please note that DataRow parameter is ignored at the moment.

AddMapperRow(out Adds the new empty Column Transforma�on to the list. Boolean)

ClearMapper() Clears the list of column transforma�ons.

IsRowActive(Int32, Determines if row in the grid corresponds with the field Int32) editor.

FirstNameBlock Class Namespace: dataladder.Data.DataTransformation

Assemblies: DataMatch.Transforma�on.dll

Responsible for parsing first names. Allows to define Common Name and Gender by First Name. Adds the new columns with Common Name and Gender.

C# public class FirstNameBlock : TransformationBlock

Examples The following code example shows how to use FirstNameBlock class.

C#

Constructors

FirstNameBlock() Creates the new instance of FirstName transforma�on block and ini�alizes outputs.

Proper�es and Public Fields

Methods

AddInput(DataFlow) Sets the new input column for current transforma�on. Previous input will be removed.

Process() Starts transforma�on process.

CleanBlock Class Namespace: dataladder.Data.DataTransformation

Assemblies: DataMatch.Transforma�on.dll

Performs the uppercase, lowercase, reverse case, and proper case transforma�ons and other simple string opera�ons.

C# public class CleanBlock : TransformationBlock

Examples The following code example shows how to use CleanBlock class.

C#

Constructors

CleanBlock(ColumnTransfor Creates a new instance of Clean transforma�on block mation, with transforma�on op�ons ColumnTransformation, Parsers.AbbreviationParse an instance of ini�alized AbbreviationParser, and r, ProperCaseOptions) custom ProperCaseOptions.

Proper�es and Public Fields

ColumnTransformation Stores column transforma�on op�ons.

NonPrintableCharacters Contains the list of Unicode characters that categorized as whitespaces (except regular whitespace symbol itself).

Methods

SetInput(Int32, DataFlow) Assigns DataFlow to input with index Int32 and adds current transforma�on block to ConnectedToBlocks.

Process() Starts transforma�on process.

CopyColumnBlock Class Namespace: dataladder.Data.DataTransformation

Assemblies: DataMatch.Transforma�on.dll

The only purpose is to rename the output to *_original.

C# public class CopyColumnBlock : TransformationBlock

Examples The following code example shows how to use CopyColumnBlock class.

C#

Constructors

CopyColumnBlock(DataFlow) Creates the new instance of CopyColumnBlock with input DataFlow.

Proper�es and Public Fields

Methods

Process() Starts transforma�on process.

RegexBlock Class Namespace: DataMatch.Transformation.Blocks.RegexBlock

Assemblies: DataMatch.Transforma�on.dll

Basic abstract class for a transforma�ons that uses regular expressions.

C# public abstract class RegexBlock : TransformationBlock

Examples The following code example shows how to use RegexBlock class.

C#

Constructors

RegexBlock(ErrorHandler.OnError Creates the new instance of RegexBlock with Delegate, Int32) ordinal Int32 and error handler OnErrorDelegate.

Proper�es and Public Fields

RegEx Regular expression instance.

RegexError Error message occurred during regex parsing.

RegexOrdinal Absolute index of regular expression transforma�on for single data source.

Methods

Process() Starts transforma�on process (inherited from abstract parent class).

RegexBlockNa�ve Class Namespace: DataMatch.Transformation.Blocks.RegexBlock

Assemblies: DataMatch.Transforma�on.dll

Transforma�on block that supposes default regular expression parsing without using advanced output op�ons. Output columns are created only for regular expression groups with names. Regular expression group names are become column names of transformed table.

C# public class RegexBlockNative : RegexBlock

Examples The following code example shows how to use RegexBlockNative class.

C#

Constructors

RegexBlockNative(String, Creates a new instance of RegexBlockNa�ve. ErrorHandler.OnErrorDelegate, Int32)

Proper�es and Public Fields

RegEx Regular expression instance.

RegexError Error message occurred during regex parsing.

RegexOrdinal Absolute index of regular expression transforma�on for single data source.

Methods

Process() Perform transforma�on using regular expression block.

RegexBlockAdvanced Class Namespace: DataMatch.Transformation.Blocks.RegexBlock

Assemblies: DataMatch.Transforma�on.dll

Regular expression block that uses advanced output op�ons. This class allows to not only parse out regular expression parts into the newly separated columns, but also to combine these output columns into a single column and add custom pieces of sta�c text.

C# public class RegexBlockAdvanced : RegexBlock

Examples The following code example shows how to use RegexBlockAdvanced class.

C#

Constructors

RegexBlockAdvanced(RegexSetting Creates a new instance of advanced regular s, expression block. ErrorHandler.OnErrorDelegate, RegexSettings – Defines advanced op�ons like Int32) regular expression itself, a list of groups, output format, etc.

Proper�es and Public Fields

RegEx Regular expression instance.

RegexError Error message occurred during regex parsing.

RegexOrdinal Absolute index of regular expression transforma�on for single data source.

Methods

Process() Perform transforma�on using regular expression block.

RegexBlockFactory Class Namespace: DataMatch.Transformation.Blocks.RegexBlock

Assemblies: DataMatch.Transforma�on.dll

Generates proper regular expression block depending on usage of advanced op�ons.

C# public static class RegexBlockFactory

Examples The following code example shows how to use RegexBlockFactory class.

C#

Constructors

Proper�es and Public Fields

Methods

Create(RegexSettings, Factory method that creates an instance of a class derived ErrorHandler.OnErrorDel from RegexBlock. egate, Int32) RegexSettings - Defines advanced op�ons like regular expression itself, a list of groups, output format, etc. OnErrorDelegate - Is fired when error occurs. Int32 - Ordinal number of regular expression.

MergeBlock Class Namespace: dataladder.Data.DataTransformation

Assemblies: DataMatch.Transforma�on.dll

Allows to merge data from several input fields into the new single output field using custom separator.

C# public class MergeBlock : TransformationBlock

Examples

The following code example shows how to use MergeBlock class.

C#

Constructors

MergeBlock(String) Creates the new instance of merge block with defined name String.

Proper�es and Public Fields

Name Defines the name of a newly merged output column..

Delimiter Separator to split data from different input columns.

OnlyFirstNotEmptyCo All empty fields will be skipped and non-empty values will be unt merged un�l this limit is reached. Other values will be ignored.

Methods

Process() Runs merge process.

AddInput(DataFlow) Adds input field that be merged during transforma�on.

MergeBlockSingleStorage Class Namespace: dataladder.Data.DataTransformation

Assemblies: DataMatch.Transforma�on.dll

Describes one of several possible merge blocks. Such block corresponds to several input fields and only one output.

C# public class MergeBlockSingleStorage

Examples The following code example shows how to use MergeBlockSingleStorage class.

C#

Constructors

MergeBlockSingleStorage(S Creates the new instance of single merge block. tring, List) String – Merge block name. This name is used for output column name. List)– A list of names of input fields that are used for merge.

Proper�es and Public Fields

MergedFieldNames A list of names of input fields that are used for merging. this[Int32] Gets a name of merge fields with defined index Int32.

Name Merge block name. This name is used for output column name.

Delimiter Delimiter that is used for input fields data separa�on.

DelimiterEnum One of standard predefined delimiters.

OnlyFirstNotEmptyCo All empty fields will be skipped and non-empty values will be unt merged un�l this limit is reached. Other values will be ignored.

AddFieldName(Strin Adds the new input field with unique name into the list of fields g) to merge.

RemoveFieldName(St Removes field with a name String form the merge list. ring)

MergeBlocksStorage Class Namespace: dataladder.Data.DataTransformation

Assemblies: DataMatch.Transforma�on.dll

Describes an informa�on about one or more single merge blocks.

C# public class MergeBlocksStorage : Object, IContainer2CoordsMapper

Examples The following code example shows how to use MergeBlocksStorage class.

C#

Constructors

MergeBlocksStorage() Auto generated constructor.

Proper�es and Public Fields this[Int32] This indexer gets MergeBlocksStorage by its index Int32.

Count Total amount of merge blocks defined.

RecordCount Total amount of merge blocks.

ColumnCount Always gets 1.

Methods

Add(MergeBlockSingleStorage) Adds the new merge block.

Remove(MergeBlockSingleStorage) Removes one exis�ng merge block from a list.

ChangeNameIfExists(MergeBlockSing Guarantees uniqueness of merge blocks leStorage) adding digits if column name already exists.

NameAlreadyExists(MergeBlockSingl Checks if merge block with defined name eStorage) already exists.

Copy(MergeBlocksStorage) Copies the informa�on about merge blocks into current instance from other source.

ToTable() Serializes an informa�on about merge blocks into DataTable class instance.

FromTable(DataTable) Loads an informa�on about merge blocks from DataTable into current instance.

GetData(Int32, Int32) Gets merge block name with index Int32 (first argument). Note that the second parameter is ignored.

SetData(Object, Int32, Int32) Updates merge block name with Int32 index (first Int32 parameter). The last argument is ignored.

GetColumnName(Int32) Returns 'Name'. Int32 is ignored.

WordSmithBlock Class Namespace: dataladder.Data.DataTransformation

Assemblies: DataMatch.Transforma�on.dll

Allows to perform complex replacements using replacement mapping tables. Phrase to remove, replace, replace with, opera�on priority can be defined in this kind of transforma�on.

C# public class WordSmithBlock : TransformationBlock

Examples The following code example shows how to use WordSmithBlock class.

C#

Constructors

WordSmithBlock(Dictionary Creates a new instance of WordSmith block. - A list of ReplacingStep>,Dictionary replacements. , Dictionary- A list of Int32, String) replacements for which new column is defined. Int32 - Max amount of words that can represent colloca�on. String - Any characters that will separate different words from Word Smith block.

Proper�es and Public Fields

MaxWordCount Max amount of words that can represent colloca�on.

AllSeparators Word separators.

Methods

AddInput(DataFlow) Adds the new input column for which Word Smith should be defined.

SetInput(Int32, DataFlow) Assigns dataFlow to input with index inputIndex and adds current transforma�on block to ConnectedToBlocks.

Process() Performs WordSmith transforma�on.

GetSortedReplacingSteps(Dictiona Sorts input steps by priority and length. ry, Dictionary - String, Int32, ref Char[], The list of replacements. Boolean) String - Input text to which replacements should be applied. Int32 – Maximum combined words count. ref Char[] – Word separator. Boolean - Include full text.

AddressCassBlock Class Namespace: dataladder.Data.DataTransformation

Assemblies: DataMatch.Transforma�on.dll

This block can be used for address verifica�on that uses CASS address database.

C# public class AddressCassBlock : TransformationBlock

Examples The following code example shows how to use AddressCassBlock class.

C#

Constructors

AddressCassBlock(CassAddress, Creates an instance of Address Cass CassGeoCoder, Block. AddressVerificationSettings)

Proper�es and Public Fields

Methods

AddInput(DataFlow, CassInputTypes) Adds the new input field to transforma�on.

Process() Performs WordSmith transforma�on.

AddressVerifica�onSe�ngs Class Namespace: dataladder.AddressVerification

Assemblies: DataMatch.Transforma�on.dll

Used for customiza�on of Address Verifica�on module output fields. Included fields and their order can be defined using this class.

C# public class AddressVerificationSettings : ITableConvertible

Examples The following code example shows how to use AddressVerificationSettings class.

C#

Constructors

AddressVerificationSettin Creates the new instance of address verifica�on se�ngs gs() and include all output fields using their default orders.

Proper�es and Public Fields

OutputColumnSettings A list of address verifica�on se�ngs for each output column.

Methods

ToTable() Transforms output column se�ngs into tabular representa�on so as to have a possibility to save them in a project file later.

FromTable(DataTable) Loads output column se�ngs from DataTable.

GetOutputColumnMapper() Returns included output columns sorted by order ascending and mapped to their absolute indexes.

OnOutputSettingsChanged() Fires a�er any output se�ng changed.

OnOutputSettingsChanging( Fires before any output se�ng changed. SettingsChangingEventArgs )

OnSomethingChanged() Occurs when any parameter changed.

SettingsChanged() Occurs a�er output column se�ngs changed.

ForceOnOutputSettingsChan Forcibly invoke event that occurs a�er any output ged() se�ng changed.

DoOnOutputSettingsChangin Forcibly invoke event that occurs before any output g( se�ng changed. SettingsChangingEventArgs )

DoOnSomethingChanged() Forcibly invoke event that occurs when any parameter changed.

GetColumnName(CassOutputP Gets column name by full output column descrip�on. arts)

GetDefaultOutputColumnMap Gets all CASS output columns mapped to their index. per()

CassAddress Class Namespace: DataMatch.AddressVerification.Cass

Assemblies: DataMatch.AddressVerifica�on.dll

This class is used for verifica�on of US and Canadian addresses by Primary Address, Secondary Address, Country, City, State, Zip, Company Name inputs. Verified addresses can be enriched with addi�onal informa�on like building, suggested city, etc.

C# public class CassAddress

Examples The following code example shows how to use CassAddress class.

C#

Constructors

CassAddress() Auto generated constructor.

Proper�es and Public Fields

InputCompanyName Input field contains Company or Firm name.

InputPrimaryAddress Input column contains primary address.

InputSecondaryAddress Input column contains secondary address.

InputCityName Input column contains city name.

InputStateName Input column contains state name.

InputZipCode Input column contains US postal code (Zip code).

InputUrbanization Denotes an area, sector, or residen�al development within a geographic area.

InputCountry Column contains country name. (Used for Canadian address verifica�on).

InputCanadianPostalcod Canadian postal code (if Country field is defined and equals e 'Canada') or US Zip code for US addresses.

Status Result return code. Possible values: V - address verified; M - mul�ple response; N - address not verified.

ResidentialDeliveryInd Residen�al Delivery Indicator (RDI). icator Possible values: Y = Residen�al Delivery; N = Not Residen�al Delivery; Blank = Did not query RDI.

ResultErrorExplanation Textual explana�on of address verifica�on error code.

ResultCompanyFirm Firm/Company.

ResultPrimaryAdddress Standardized Primary Address.

ResultSecondaryAdddres Secondary Address. s

ResultCity Standardized Preferred City.

ResultState Standardized State Abbrevia�on.

ResultZipCode Standardized ZIP Code.

ResultPostalCode Standardized Postalcode (Canada Only).

ResultPlus4 +4 Code.

ResultDeliveryPointChe Delivery Point and Check Digit. ckDigit

ResultPlus6 Zip + 6.

ResultDeliveryPoint Delivery Point.

ResultCarrierRouteCode Carrier Route Code.

ResultLineOfTravelNumb Line of Travel Number. er

ResultLineOfTravelCode Line of Travel Asc/Desc Code.

ResultAddressRecordTyp Urbaniza�on. e

ResultStateFips State FIPS Code.

ResultCountyFips County FIPS Number.

ResultCountyName County Name.

ResultCongressDist Congressional District Number.

ResultPreferredCity Standardized Preferred City.

ResultAbreviatedCity Standardized Abbreviated City Name (if available).

ResultLastLine Complete Standardized Last Line.

ResultLacsMatch LACS Match.

ResultLacsLink LACSLink Return Code.

ResultLacsLinkIndicato LACSLink Indicator. r

ResultSuiteLink SuiteLink Code.

ResultReturnCode Return Code. Possible values: 10 = Invalid Address; 11 = Invalid ZIP code; 12 = Invalid State Code; 13 = Invalid City; 21 = Address not found; 22 = Mul�ple response; 31 = Single response (Exact Match); 32 = Default response (Missing informa�on - Ste #, or Invalid Ste #).

ResultErrorAndWarning Warnings or Errors. Possible values: A# ZIP; B# City/State Corrected C# Invalid city/state/zip D# No ZIP assigned E# ZIP assigned for mul�ple response F# No ZIP available G# Part of firm moved to address H# Secondary number missing I# Insufficient/incorrect data J# Dual input K# Mul� caused by cardinal rule L# Deliver address component add/del/chg M# Street name spelling changed N# Delivery address was standardized O# Low +4 �e-breaker (mul�-response) P# Be�er delivery address exists Q# Unique ZIP Code R# No match due to EWS (Early Warning System) S# Invalid secondary number T# Mul�ple caused by magnet rule U# Unofficial Post Office name V# Unverifiable city/state W# Small town default X# Unique ZIP code generated Y# Military match Z# ZIP move match

ResultBuildingNumber Parsed Primary Number.

ResultPreDirection Parsed Pre-direc�on.

ResultStreetName Parsed Street Name.

ResultPostDirection Parsed Post Direc�on.

ResultSuffix Parsed Suffix.

ResultSecondaryName Parsed Unit Descrip�on.

ResultSecondaryNumber Parsed Secondary Number.

ResultPMBIndicator Private Mailbox Descrip�on.

ResultPMBNumber Private Mailbox Number.

ResultVacancyFlag Delivery Point Confirma�on Indicators - DPV Vacancy Indicator.

ResultCountyFIPSCode County FIPS Number.

ResultStateFIPSCode State FIPS Code.

ResultCongressDistNumb Congressional District Number. er

ResultDPV Delivery Point Confirma�on Indicators. Combines the next result values into a single string: DPV Confirma�on Indicator; DPV CMRA Indicator; DPV False Posi�ve Indicator; DPV Vacancy Indicator; DPV No Stats Indicator.

ResultDPVFlag Delivery Point Confirma�on Footnotes. A combina�on of results of the next variables: 1) AA Input Address Matched to the ZIP + 4 file; 2) BB Input Address Matched to DPV (all components). If parameter (1) returns - adds 'AA'; If parameter (2) returns - adds 'BB'; Example: "", "AA", "BB", "AABB".

ResultLACSFlag LACSLink Return Code.

ResultLACSReturnCode LACSLink Return Code.

ResultSteLinkInd SuiteLink Indicator.

ResultDPVFootAA AA Input Address Matched to the ZIP + 4 file.

ResultDPVFootA1 A1 Input Address Not Matched to the ZIP + 4 file.

ResultDPVFootBB BB Input Address Matched to DPV (all components).

ResultDPVFootCC CC Input Address Primary Number Matched to DPV but Secondary Number not Matched (present but invalid).

ResultDPVFootNA N1 Input Address Primary Number Matched to DPV but Address Missing Secondary Number.

ResultDPVFootM1 M1 Input Address Primary Number Missing.

ResultDpvFootM3 M3 Input Address Primary Number Invalid.

ResultDPVFootRR RR Input Address Matched to CMRA and PMB designator present (PMB 123 or #123).

ResultDPVFootR1 R1 Input Address Matched to CMRA but PMB designator not present (PMB 123 or #123).

ResultDPVFootP1 P1 Input Address PO, RR, or HC Box number missing.

ResultDPVFootP3 P3 Input Address PO, RR, or HC Box number Invalid.

ResultDPVFootU1 U1 Input Address Matched to a Unique ZIP Code.

ResultDPVFootG1 G1 Input Address Matched to a General Delivery Address.

ResultDPVFootF1 F1 Input Address Matched to a Military Address.

ResultDPVFootN1 N1 Input Address Primary Number Matched to DPV but Address Missing Secondary Number.

ResultDPVA DPV Confirma�on Indicator. Possible values: Y =Address was DPV confirmed for both primary and (if present) secondary numbers. D =Address was DPV confirmed for the primary number only, and Secondary number informa�on was missing. S = Address was DPV confirmed for the primary number only, and Secondary number informa�on was present but unconfirmed. N =Both Primary and (if present) Secondary number informa�on failed to DPV Confirm.

ResultDPVC DPV CMRA Indicator.

ResultDPVF DPV False Posi�ve Indicator.

ResultDPVV DPV Vacancy Indicator.

ResultDPVX DPV No Stats Indicator.

Initialized Indicates whether CASS module has been ini�alized before to run ini�aliza�on part once.

AddrCode An instance of CASS address valida�on module.

DataExpirationDays Expira�on date of CASS Database.

DllExpirationDays Expira�on date of CASS Library.

Version CASS Module version.

ReleaseDate Release date of the CASS module.

Methods

CheckExpirationDates(Stri Checks expira�on dates of Address Verifica�on Database ng) and API Library. String - Path to address verifica�on database.

Init(String) Ini�alizes Address Verifica�on module. This method should be called before using CASS address verifica�on. String - Path to address verifica�on database.

CASSLookup() Verifies a single address.

Clear() Clears input address fields.

Close() Should be called to close CASS library and release resources that are being used.

CassGeoCoder Class Namespace: DataMatch.AddressVerification.Cass

Assemblies: DataMatch.AddressVerifica�on.dll

Allows to retrieve the Census Tract, Census Block Group, La�tude and Longitude by Zip+4 value (9 digits).

C# public class CassGeoCoder

Examples The following code example shows how to use CassGeoCoder class.

C#

Constructors

CassGeoCoder() Creates an instance of CassGeoCoder class and ini�alizes Database.

Proper�es and Public Fields

CensusTract Census Tract, received a�er the request.

CensusBlockGroup Census Block Group, received a�er the request.

Latitude La�tude that corresponds to Zip+4.

Longitude Longitude that corresponds to Zip+4.

Methods

Init(String) Ini�alizes and opens the CASS Geo Database that is located by the path String.

Lookup(String) Call Address Lookup for input Zip + 4 String without dashes and spaces (9 digits).

Close() Close CASS Geo Engine.

CassParser Class Namespace: DataMatch.AddressVerification.Cass

Assemblies: DataMatch.AddressVerifica�on.dll

Special class that allows verifica�on of addresses with incomplete input data and retrieves Street, Building Number, Preferred City, Standardized Zip Code, La�tude, Longitude, etc.

C# public class CassParser

Examples The following code example shows how to use CassParser class.

C#

Constructors

CassParser() Auto generated constructor.

Proper�es and Public Fields

CassAddress CASS Address module.

CassGeoCoder CASS Geo module, required for geographical coordinates determina�on.

Methods

InitCassIfNeeded(String Ini�alizes CASS module if it's not ini�alized yet. , String) First String - Path to CASS Address DB. Second String - Path to CASS Geo DB.

ICassRequest Interface Namespace: DataMatch.AddressVerification.Contracts

Assemblies: DataMatch.AddressVerifica�on.dll

Declares parameters for a request to CASS Address Verifica�on module.

C# public interface ICassRequest

Examples The following code example shows how to use ICassRequest interface.

C#

Proper�es

Query Primary address for which 5 sugges�ons will be provided.

Methods

ICassResponse Interface Namespace: DataMatch.AddressVerification.Contracts

Assemblies: DataMatch.AddressVerifica�on.dll

Declares fields that are provided as a result of request by CASS Sugges�ons module.

C# public interface ICassResponse

Examples The following code example shows how to use ICassResponse interface.

C#

Proper�es

AddressMain Full address

AddressPrimary Primary address

AddressSecondary Secondary address

Country Country

State State

City City

Methods

IAddressResponse Interface Namespace: DataMatch.AddressVerification.Contracts

Assemblies: DataMatch.AddressVerifica�on.dll

Provides Zip sugges�on for input address data.

C# public interface IAddressResponse

Examples The following code example shows how to use IAddressResponse interface.

C#

Proper�es

Zip Suggested Zip code received by input parts of address.

Methods

CassRequest Class Namespace: DataMatch.AddressVerification.Entities

Assemblies: DataMatch.AddressVerifica�on.dll

Declares parameters for a request to CASS Address Verifica�on module.

C# public class CassRequest : ICassRequest

Examples The following code example shows how to use CassRequest class.

C#

Constructors

CassRequest(String) Creates the new instance of CASS request with defined Primary Address String.

CassRequest() Creates the new instance of CASS request with the default parameters.

Proper�es and Public Fields

Query Parameter for Primary Address.

Methods

CassManagerFactory Class Namespace: DataMatch.AddressVerification

Assemblies: DataMatch.AddressVerifica�on.dll

This class is necessary for the crea�on of Cass Manager classes instances. There is only one CassManager type at the moment, but the list can be extended in the future.

C# public static class CassManagerFactory

Examples The following code example shows how to use CassManagerFactory class.

C#

ICassManager cassManager = CassManagerFactory.Create(CassManagerTypes.Default);

Constructors

Proper�es and Public Fields

Methods

Create(CassManagerTypes) Create new instance of the CassManager. Custom = Default at the moment.

CassManager Class Namespace: DataMatch.AddressVerification.Entities

Assemblies: DataMatch.AddressVerifica�on.dll

Can be used for implementa�on of address autocomplete func�onality. Provides sugges�ons for uncompleted full address, can define by input Primary Address, City, State, Company Name, etc.

C# public class CassManager : ICassManager

Examples The following code example shows how to use CassManager class.

C#

Constructors

CassManager() Should be created just using the factory.

Proper�es and Public Fields

Methods

GetAddressSuggestions(ICassRequest) Returns an array of first 5 address sugges�ons by incomplete primary address.

GetAddressSuggestions(String) Returns first 5 address sugges�ons by incomplete primary address as JSON.

ValidateAddress(IAddressRequest) Validates single address by input data and provides missing ZIP code.

Data Ladder is a data quality software company dedicated to helping business users get the most out of their data through data matching, profiling, deduplication, and enrichment tools. Whether it’s matching millions of records through our fuzzy matching algorithms, or transforming complex product data through semantic technology, Data Ladder’s data quality tools provide a superior level of service unmatched in the industry.

Why Data Ladder It’s simple: our user-friendly and powerful software helps business users across many industries manage their data more effectively and drive their bottom line. Our powerful software suite, DataMatch Enterprise, was proven to find approximately 5-12% more matches than leading software companies IBM and SAS in 15 different studies.

Let Data Ladder be your partner in your next marketing campaign. Increase your sales by offering data cleansing services through DataMatch Enterprise™.

Free Download