###############################################################################
# The G2 configuration file allows overriding default values for
# various operational settings.
#
# All text following a hash character (#) is considered a comment and
# will be ignored.
#
# Only settings that are overridden need be included; if default
# values are desired the controlling element should be left out of the
# configuration file.
# 
# To configure this file, the following values must be specified
#
# {DataFolder} 
# {PluginDataFolder} 
# {DBConnectionString}
#
###############################################################################


###############################################################################
# Main PIPELINE settings
# Used to customize general G2 settings
###############################################################################
[PIPELINE]

 # Turns on/off regularization
 # Valid values: TRUE/FALSE
 # Default setting:TRUE
 # ENABLE_REGULARIZATION=TRUE

 # Turn on/off detailed name scoring information - displayed to the console
 # Valid values: TRUE/FALSE
 # Default setting:FALSE
 # ENABLE_SCORE_LOGGING=FALSE

 # Support path location for the G2 data files
 # Valid values: any path
 # Default setting: None - must be specified
 SUPPORTPATH={DataFolder}
 
 # G2 configuration filename containing Given Name variants
 # If specified, file must be present in [PIPELINE] SUPPORTPATH location
 # Valid values: file name
 # Default setting:
 # GIVENFILES=

 # G2 configuration filename containing Surname Name variants
 # If specified, file must be present in [PIPELINE] SUPPORTPATH location
 # Valid values: file name
 # Default setting:
 # SURNAMEFILES=

 # G2 configuration filename containing Titles and Qualifiers (TAQ) variants
 # If specified, file must be present in [PIPELINE] SUPPORTPATH location
 # Valid values: file name
 # Default setting:
 # TAQFILES=

 # G2 configuration filename containing Organization name variants
 # If specified, file must be present in [PIPELINE] SUPPORTPATH location
 # Valid values: file name
 # Default setting:
 # ONFILES=

 # G2 Transliteration culture files, up to 256 transliteration files can be
 # specified.  If specified, file(s) must be present in
 # [PIPELINE] SUPPORTPATH location.
 # Valid values: file name
 # Default setting:
 # XLIT_RULE1=arabicTransRule.ibm
 # XLIT_RULE2=cyrillicTransRule.ibm
 # XLIT_RULE3=greekTransRule.ibm
 # XLIT_RULE4=japaneseTransRule.ibm
 # XLIT_RULE5=koreanTransRule.ibm
 # XLIT_RULE6=chineseTransRule.ibm
 # XLIT_RULE7=anyTransRule.ibm
 # ...
 # ...
 # ...
 # XLIT_RULE256=

 # Specifies a default Native Script to use while transliterating text
 # If no script is provided via the input UMF record, this default is used
 # Valid value: ANY/CHINESE/JAPANESE
 # Default setting: ANY
 # NATIVE_SCRIPT=ANY

 # Indicates the number of processing threads to be created.
 # Valid values: 1-1024
 # Default setting:1
 # CONCURRENCY=1
 
 # Shuts down G2 pipeline if any UMF exception is encountered.
 # Valid values: TRUE/FALSE
 # Default setting:FALSE
 # STOPONALLUMFEXCEPTIONS=FALSE

 # Maximum amount of permissible errors for a given ERRORRESETINTERVAL.
 # If the amount of errors encountered exceeds this value, an exception
 # will be thrown and the system will terminate.
 # Valid values: Any integer value. 
 # Default setting:10
 # ERRORLIMIT=10

 # Time in seconds to reset the error count
 # Valid values: Any unsigned integer value. 
 # Default setting:1440
 # ERRORRESETINTERVAL=1440

 # Default starting size of the node buffer used to communicate with
 # G2Plugins.  This buffer will automatically increase when needed. 
 # Valid values: Any unsigned integer value. 
 # Default setting 4096
 # INIT_BUFFER_SIZE=4096

 # Default input transports
 # Valid values: any URI
 # Default setting:
 # INPUTTRANSPORTS=


 ###############################################################################
 # Secure Store settings
 ###############################################################################
 # The secure store feature allows sensitive information such as anonymization
 # salts and database passwords to be locked away in a PKCS #11 security
 # token. G2 can retrieve the sensitive information during
 # startup. Please see the documentation for the secure store and the
 # "ssadm" utility on how to setup a PKCS #11 based secure store.
 #
 # If the secure store is used to store your database passwords then
 # the "connection URL parameter" must use a specific format in the
 # part of the URL reserved for the database password. For example:
 #
 # [SQL]
 #  CONNECTION=db2://g2user:SEC-STORE-<label>@G2DB/?schema=G2_SCHEMA
 #
 # In the above database connection URL example, the <label> place
 # holder must be replaced with the name given to your database
 # password when you placed it in the secure store using the ssadm
 # utility's -ssput mode.
 #
 # In addition, the following six parameters must also be configured
 # in the INI file (not the SYS_PARAM database table) because they
 # will be needed to obtain the password for connecting to the
 # database.

 # Enable/disable the secure store feature. 0=disabled / 1=enabled
 # The default is 0.
 #ENABLE_SECURE_STORE=1

 # The base name of the PKCS #11 implementation library in use. This
 # product also ships with a software-only PKCS #11 implementation
 # that will use a file as storage for its security token. The library
 # name for this software-only implementation is gsk8iccs_64 (gsk8iccs
 # on 32-bit systems).
 #SECURE_STORE_LIB=gsk8iccs_64

 # URL that specifies which security token should be used for the
 # secure store (out of multiple possible security tokens that could
 # be known to the implementation library). The basic URL format is as
 # follows:
 #
 #  pkcs11://token/?slotID=<integer>&tokenLabel=<string>
 #
 # At least one of slotID or tokenLabel must be specified. If both
 # are specified, then the specified security token must have both
 # the specified slot ID number and token label string.  Specifying
 # token label is usually preferred since it is easier to be sure the
 # correct token is being used as the secure store (even if it changes
 # slots due to a PKCS #11 configuration change).
 #SECURE_STORE_URL=pkcs11://token/?slotID=0

 # This can be left blank (the default value) unless you wish to
 # specify your own User PIN for the PKCS #11 security token. Other
 # possible values are "prompt" to have G2 prompt for the User PIN
 # every time it starts; a string beginning with "pin:" followed
 # by an encrypted User PIN string (see the documentation for the
 # ssadm utility on how to obtain this encrypted string); a string
 # beginning with "file:" followed by a path to an encrypted PIN file
 # (as can be optionally created by the ssadm utility's -ssinit mode).
 #SECURE_STORE_PIN=

 # Specifies the name of a system mutex/semaphore to be used in synchronizing
 # secure store operations when there are multiple simultaneous users of
 # the secure store's PKCS#11 security token (only needed in unusual cases).
 # This is not normally required.
 # This name must be a string of ASCII alphanumeric characters, with
 # underscores allowed.
 # The default value is G2_PKCS11_Mutex
 #SECURE_STORE_MUTEX_NAME=G2_PKCS11_Mutex

 # Specifies how long the secure store should wait to acquire the system mutex.
 # The time is specified in milliseconds, but should be at least 
 # 5 seconds (5000). Specifying zero means the mutex is not used.
 # The default value is 0 (mutex not used)
 #SECURE_STORE_MUTEX_TIMEOUT=0


###############################################################################
# Anonymization salt settings
# A salt value is a large securely generated random number that is used
# during the anonymization process to increase security of sensitive data.
###############################################################################
[SALT]

 # This is the name/label of the salt you want to use from the secure store
 # Once the secure store is properly setup, you can use the following command
 # to create a new salt inside the secure store:
 # saltadm -c g2.ini -new -name <chosen name of new salt>
 # Valid values: alphanumeric string
 # Default setting: None - must be specified
 #NAME=<chosen name of new salt>

 # This is the checksum of the salt you want to use from the secure store
 # Once the secure store is properly setup, you can use the following command
 # to create a new salt inside the secure store:
 # saltadm -c g2.ini -new -name <chosen name of new salt>
 # The above command will display a "finger-print" checksum for the new salt
 # that should be used here.  Alternatively, you can display the checksum for
 # any salt in the secure store using the following command:
 # saltadm -c g2.ini -checksum -name <name of salt>
 # Valid values: Base64 string
 # Default setting: None - must be specified
 #CHECKSUM=<checksum of salt specified with [SALT] NAME>


###############################################################################
# Main Plugin settings
# Used to load custom data files for G2 plugins
###############################################################################
[PLUGINS]

 # This is the path that plugins use to locate their runtime resources.
 # Valid values: any path
 # Default setting: None - must be specified
 SUPPORTPATH={PluginDataFolder}


###############################################################################
# Node concurrency settings - The effective processing thread count is 
# CPU_MULTIPLIER * CONCURRENCY.  Note; the total thread count is 
# not permitted to exceed 1024 
###############################################################################
[CONCURRENCY]

 # Number of CPU's (1-1024)
 # Valid values: 1-1024
 # Default setting:1
 # CPU_MULTIPLIER=1

 # Default threading count (1-1024) if CONCURRENCY is not specified
 # Valid values: 1-1024
 # Default setting:1
 # DEFAULT_CONCURRENCY=1


###############################################################################
# Entity resolution settings
# Used to fine tune the entity resolution process
###############################################################################
[ER]

 # Default result builder plugin library name
 # Valid values: file name
 # Default setting:DefaultBuilder
 # BUILDER_PLUGIN=DefaultBuilder

 # Default relationship builder plugin library name
 # Valid values: file name
 # Default setting:DefaultRelationship
 # RELATIONSHIP_PLUGIN=DefaultRelationship

 # Turns on/off Grouper key clustering support
 # Valid values: 0/1
 # Default setting:1
 # ENABLE_GROUPER_KEY_CLUSTERING=1

 # Generic plan Id override for data sources with a retention level
 # set to FORGET.
 # Valid values: record ID of CFG_GPLAN table
 # Default setting:2
 # FORGET_GPLAN_ID=2

 # Generic plan Id override for data sources with a retention level
 # set to REMEMBER.
 # Valid values: record ID of CFG_GPLAN table
 # Default setting:1
 # REMEMBER_GPLAN_ID=1

 # Default generic feature scoring threshold value, -1 denotes no limit
 # Valid values: Any integer value. 
 # Default setting:-1
 # GENERIC_SCORING_THRESHOLD=-1

 # Default generic threshold for candidate list building
 # Valid values: Any integer value. 
 # Default setting:20
 # GENERIC_THRESHOLD=20

 # Turns on/off additional CLASS summary information contained inside
 # the main summary details.
 # Valid values: 0/1
 # Default setting:0
 # INCLUDE_CLASS_SUMMARY=0


###############################################################################
# OAC Settings
# Configure the connectivity settings for address hygiene
###############################################################################
[OAC]

 # QSAVI address server location
 # Valid values: any URL
 # Default setting:
 # QSAVI_CONNECTION=

###############################################################################
# Main SQL settings
# Used to customize general SQL connectivity settings
###############################################################################
[SQL]

 # Database backend type 
 # SQL type databases are considered to be a single instance database
 # server HYBRID type databases are considered to be Sharded, multi
 # instance database servers.
 # Valid values: SQL/HYBRID
 # Default setting:SQL  
 # BACKEND=SQL

 # G2 Database connection string.  If there is an environment setting
 # G2DBURI present that setting will override this INI configuration
 # setting.
 # dbtype = db2/oci
 # user = database user name
 # password = database user password
 # listening port number.
 # database = database name
 # schema = optional schema name where the database resides
 # Valid values: dbtype://user:password@database[/?schema=name]
 # Default setting: None - must be specified
 CONNECTION={DBConnectionString}

 # Database deadlock retry count
 # Valid values: Any integer value. 
 # Default setting:3
 # DEADLOCKRETRIES=3

 # Database debug information
 # 0 = No database debugging output
 # 1 = Output General database debug information
 # 2 = Output database performance related information
 # Valid values 0/1/2
 # Default setting:0
 # DEBUGLEVEL=0

 # Default database locking timeout setting, in seconds
 # If the active [*] CONCURRENCY is greater than 1 and the last touch
 # wait is set to 0, the system will default this setting back to 10.
 # Valid values: Any integer value. 
 # Default setting:10
 # LAST_TOUCH_WAIT=10

 # Maximum amount of nested SQL statement clauses
 # Valid values: Any integer value. 
 # Default setting:100
 # MAX_IN_CLAUSE=100



###############################################################################
# General logging output settings
# Used to control reject record logging and internal database logging
###############################################################################
[LOGGING]

 # Enables G2 to capture invalid Observations into a rejected
 # record log file, allowing g2 to continue processing 
 # Valid values: 0/1
 # LOG_BAD_OBSERVATIONS=0

 # When LOG_BAD_OBSERVATIONS is enabled, this controls the file name of
 # the rejected record log file.
 # The makeup of the file name is composed of 
 # NODENAME.LOG_BAD_OBSERVATIONS_NAME.INPUTFILE
 # For example, if the active g2 node is "Node1" and
 # the input file provided is DataFile1.umf
 # the resultant output file will be 
 # Node1.RejectedRecords.DataFile1.umf
 # Valid values: file name
 # Default setting:RejectedRecords
 # LOG_BAD_OBSERVATIONS_NAME=RejectedRecords

 # To prevent the unlimited logging of invalid observations, a threshold
 # value can be configured. Once this number of records have been rejected
 # the g2 node will stop.
 # A value of zero denotes no threshold applies
 # LOG_BAD_OBSERVATIONS_THRESHOLD=20

 # Logging configuration settings file which is used to customize logging output 
 # Valid values: file name
 # Default setting:
 # CONFIGFILE=

 # Logging configuration settings (DEBUG mode -d) file which is used
 # to customize logging output.
 # Valid values: file name
 # Default setting:
 # DEBUGCONFIGFILE=

 # Turns on/off entity resolution database logging
 # Valid values: 0/1
 # Default setting:1
 # LOG_ER=1

 # Turns on/off entity resolution database logging - For candidates
 # Valid values: 0/1
 # Default setting:1
 # LOG_ER_CAND=1

 # Turns on/off entity resolution database logging - For candidate details
 # Valid values: 0/1
 # Default setting:1
 # LOG_ER_CAND_DETAIL=1

 # Turns on/off entity resolution database logging - For candidate comparision details
 # Valid values: 0/1
 # Default setting:1
 # LOG_ER_COMP=1

 # Turns on/off entity resolution database logging - For candidate resolution
 # Valid values: 0/1
 # Default setting:1
 # LOG_ER_RES=1

 # Turns on/off entity resolution database logging - For each stage of candidate resolution
 # Valid values: 0/1
 # Default setting:1
 # LOG_ER_STEP=1

 # Turns on/off observation database logging
 # Valid values: 0/1
 # Default setting:1
 # LOG_OBS=1

 # Turns on/off entity observation database logging
 # Valid values: 0/1
 # Default setting:1
 # LOG_OBS_ENT=1



###############################################################################
# Debug output settings
# Used to control extended debug information sent to the console
###############################################################################
[DEBUG_LOGGING]

 # Turns on/off debug output for document result building
 # Valid values: 0/1
 # Default setting:0
 # BUILDER_BOM=0

 # Display additional debugging information during the result building
 # plugin initialisation stage.
 # Valid values: 0/1
 # Default setting:0
 # BUILDER_INIT=0

 # Display logging information that details updated feature counts
 # post feature merging.
 # Valid values: 0/1
 # Default setting:0
 CHANGE_PROCESSING=0

 # Turns on/off debug output for expressed feature creation
 # Valid values: 0/1
 # Default setting:0
 # EFEAT_BOM=0

 # Display additional debugging information during the expressed
 # feature plugin initialization stage.
 # Valid values: 0/1
 # Default setting:0
 # EFEAT_INIT=0

 # Display FELEM data values prior to hashing
 # Valid values: 0/1
 # Default setting:0
 # FEAT_HASH=0

 # Display Order of Magnitude (OOM) logging information
 # Valid values: 0/1
 # Default setting:0
 # OOM_DETAIL=0

 # Display generic logging information at plugin shutdown
 # Valid values: 0/1
 # Default setting:0
 # PLUGIN_LOADER=0

 # Display QSAVI logging information
 # Valid values: TRUE/FALSE
 # Default setting:FALSE
 # QSAVI_LOGGING=FALSE
 
 # Display QSAVI performance timing information: this is 
 # the latency of the QSAVI call, from when it leaves g2
 # code to when it comes back from QSAVI
 # Valid values: 0/1
 # Default setting:0
 # QSAVI_PERF_LOGGING=0

 # Relationship scoring debug information
 # Valid values: 0/1
 # Default setting:0
 # REL_BOM=0

 # SCORE=

 # Display logging information that details the input/outputs to/from
 # the scoring section.
 # Valid values: 0/1
 # Default value:0
 # SCORE_BOM=0                              

 # Display additional debugging information during the scoring plugin
 # initialization stage.
 # Valid values: 0/1
 # Default setting:0
 # SCORING_INIT=0

 # SCORING_TIME=

 # Display logging information that details the time spent during 
 # each stage of entity resolution
 # Valid values: 0/1
 # Default setting:0
 # SECTION_TIMES=0

 # Display logging information that details the inputs/outputs to/from
 # the DQM standardizer
 # Valid values: 0/1
 # Default setting:0
 # STD_FUNC_BOM=0

 # Display additional debugging information during the DQM
 # standardizing plugin initialization stage
 # Valid values: 0/1
 # Default setting:0
 # STD_FUNC_INIT=0

 # Display logging information that details the inputs/outputs to/from
 # the GNR transliteration service.
 # Valid values: 0/1
 # Default setting:0
 # TRANSLITERATION=0

 # Display the full UMF input document received by the resolution process
 # Valid values: 0/1
 # Default setting:0
 # UMF_PRE=0

 # Display the full UMF output document produced by the resolution process
 # Valid values: 0/1
 # Default setting:0
 # UMF_POST=0
