La personalización de plugins de puntuación necesita un formato de datos específico.
<THRESHOLDS> <CONFIRMATION_THRESHOLD>string</CONFIRMATION_THRESHOLD> <DENY_THRESHOLD>string</DENY_THRESHOLD> </THRESHOLDS>
Los umbrales son series sin formato. Se cargan desde la tabla MATCH_MERGE_ATTR y deben adaptarse al formato que espera el plugin. El autor del plugin define el formato y puede variar entre un plugin y otro.
<ATTRIBUTE> <ATTR_TYPE_ID>unsigned int</ATTR_TYPE_ID> <ATTR_VALUE>string</ATTR_VALUE> <ATTR_LARGE_DATA>string</ATTR_LARGE_DATA> </ATTRIBUTE>
ATTR_LARGE_DATA puede ser una serie vacía en función del tipo de atributo y del proceso ETL. ATTR_LARGE_DATA es opcional y sólo debe utilizarse cuando los datos del atributo son demasiado largos para la columna ATTR_VALUE. Esto se debe determinar durante la configuración del sistema para poder crear correctamente UMF y para poder grabar los plugins para utilizar los campos correctos.
ATTR_LARGE_DATA pueden codificarse para formar conjuntos de caracteres válidos de XML. Se recomienda la codificación Base64, pero esta acción se realiza en el proceso ETL. Es posible que el plugin necesite descodificar los datos de ATTR_LARGE_DATA. La serie también debe codificarse en UTF-8. Si la codificación de la serie en ETL era base64, la serie UTF-8 será idéntica a la serie ASCII7.
A continuación se muestra un ejemplo de pseudocódigo de una función de puntuación:
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. }
La función de puntuación debe devolver -1 si se produce un error.