Angepasste Scoring-Plug-ins erfordern die Angabe eines Datenformats.
<THRESHOLDS> <CONFIRMATION_THRESHOLD>zeichenfolge</CONFIRMATION_THRESHOLD> <DENY_THRESHOLD>zeichenfolge</DENY_THRESHOLD> </THRESHOLDS>
Die Schwellenwerte sind frei wählbare Zeichenfolgen. Sie werden aus der Tabelle MATCH_MERGE_ATTR geladen und müssen dem Format entsprechen, das vom Plug-in erwartet wird. Das Format wird vom Verfasser des Plug-ins definiert und kann von Plug-in zu Plug-in variieren.
<ATTRIBUTE> <ATTR_TYPE_ID>ganze Zahl ohne Vorzeichen</ATTR_TYPE_ID> <ATTR_VALUE>Zeichenfolge</ATTR_VALUE> <ATTR_LARGE_DATA>Zeichenfolge</ATTR_LARGE_DATA> </ATTRIBUTE>
ATTR_LARGE_DATA kann abhängig vom Attributtyp und ETL-Prozess eine leere Zeichenfolge sein. ATTR_LARGE_DATA ist optional und sollte nur verwendet werden, wenn die Daten eines Attributs zu groß für die Spalte ATTR_VALUE sind. Dies muss während der Systemkonfiguration festgelegt werden, damit das UMF (Universal Message Format) ordnungsgemäß erstellt und Plug-ins so geschrieben werden können, dass sie die richtigen Felder verwenden.
ATTR_LARGE_DATA kann so formatiert werden, dass es dem gültigen Zeichensatz von XML entspricht. Base64-Codierung wird empfohlen, diese erfolgt jedoch im ETL-Prozess. Das Plug-in muss die Daten in ATTR_LARGE_DATA möglicherweise decodieren. Die Zeichenfolge sollte auch UTF-8-codiert sein. Wurde die Zeichenfolge im ETL-Prozess Base64-codiert, dann ist die UTF-8-Zeichenfolge identisch mit der ASCII7-Zeichenfolge.
Es folgt ein Pseudocodebeispiel der Funktion 'score':
const int score(const char *thresholdStr, const uint thresholdSize, const char *inboundStr, const uint inboundSize, const char *candidateStr, const uint candidateSize, char *result, const uint resultSize) { //create strings out of thresholdStr, inboundStr, and candidateStr //create XML documents out of thresholdStr, inboundStr, and candidateStr //parse thresholds out of threshold xml doc if thresholds are used //parse values out of inbound xml doc //parse values out of candidate xml doc //check for any errors such as attr type mismatches, bad data, etc. //un-encode attr_value and attr_large_data data fields if necessary //apply scoring algorithm to attribute data //scale score into 0-100 range //determine confirmation or denial (possibly using thresholds) //if there was an error, create null terminated error string and //strcpy into result. Return -1. //if no error, create null terminated result document and strcpy into //result. Return 0. }
Die Funktion 'score' sollte beim Auftreten eines Fehlers '-1' zurückgeben.