v4 Windows Quickstart
This article outlines installing the Senzing SDK natively on Windows, performing loading and entity resolution, analysis and exploration of the outcomes of entity resolution, and how to prepare and load your own data to Senzing.
Senzing provides a free license for 500 source records when downloading the Senzing® SDK. If you require additional records for an evaluation, or any assistance when following this guide, contact Senzing Support . Support is 100% FREE!
SENZING® SDK with ENTITY CENTRIC LEARNING® and SMARTER ENTITY RESOLUTION® technologies.
SENZING INSIDE™. CONNECT DATA. POWER INTELLIGENCE.™
The installation steps only need to be completed once. During installation you will be asked to accept the End User License Agreement (EULA).
Installing Senzing
Senzing is installed on Windows with Scoop . As of v4.4.0 the command-line tools are native binaries and no longer require a Python runtime.
Install Scoop
If Scoop is not already installed, install it from a PowerShell session. This only needs to be completed once.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
Add the Senzing bucket
Add the Senzing bucket to Scoop. This only needs to be completed once.
scoop bucket add senzingsdk https://github.com/Senzing/scoop-senzingsdk
github.com, so outbound access to that host is required.Install the package
scoop install senzingsdk/senzingsdk
To accept the EULA without an interactive prompt, for example in a CI pipeline, set the acceptance value in the Scoop configuration before installing.
scoop config SENZING_ACCEPT_EULA I_ACCEPT_THE_SENZING_EULA
Scoop sets SENZING_DIR and adds the Senzing library directory to PATH as part of the installation. Verify the installation before continuing.
Test-Path "$env:SENZING_DIR\lib\Sz.dll"
Create a Senzing project
To begin using Senzing, first create a project. This deploys an instance of Senzing into a specified path. The project folder must not already exist and will be created by the sz_create_project utility.
C:\Program Files. It sets SENZING_DIR to the er subdirectory of the install, so the tools are found at %SENZING_DIR%\bin. Using %SENZING_DIR% avoids hard coding the path.%SENZING_DIR%\bin\sz_create_project <senzing_project_path>
Creating and using projects provides independent and isolated instances of Senzing. Projects can be upgraded from prior Senzing versions.
For example, the following command creates the Senzing project on the C: drive in a new directory named senzing:
%SENZING_DIR%\bin\sz_create_project C:\senzing
Configure environment
To utilize your new project, environment variables need to be set indicating where to find resources for the project. The setupEnv script is project dependent and needs to be run whenever you are working with a project, for example between opening and closing command sessions. To setup the environment, change to your project directory and call the setupEnv.bat file.
cd <senzing_project_path>
<senzing_project_path> refers to the path specified with the sz_create_project command when creating a project.call setupEnv.bat
setupEnv.bat from cmd.exe, not PowerShell. PowerShell runs a batch file in a child process, so the variables it sets are discarded when it exits and the Senzing tools will not be found.call setupEnv.bat must be run once per session before using any Senzing tools such as sz_configtool, sz_file_loader, and sz_explorer.Updating database with Senzing ER configuration
A Senzing instance is configured with a Senzing Entity Resolution configuration. The Senzing ER configuration is stored as a JSON document. On a fresh installation this configuration needs to be registered in the Senzing database. This step only needs to be performed once initially for a new project.
From the root of your project directory, run:
bin\sz_setup_config -a
-a installs the configuration without prompting. Omit it to be asked for confirmation first.
From the root of your project directory, run the following command and enter y when prompted:
bin\sz_setup_config
Loading the truth set data
To get started with some data, load the Senzing example truth set by:
Understanding the truth set files
The truth set demo includes three main types of files, each serving a distinct purpose in entity resolution:
- Customers: Represent your subjects of interest such as these customers. But they could easily be employees for insider threat detection, vendors for supply chain management, or other tracked entities. These records form the core dataset you aim to analyze and resolve.
- Watchlist: Contains entities you want to avoid due to potential risks. Examples include past fraudsters, known terrorists, money launderers, or entities on mandated exclusion lists (e.g., sanctions lists like OFAC). By integrating watchlist data, Senzing helps you identify high-risk entities by matching them against your subject records. This enables risk assessment by flagging connections to undesirable entities, helping you mitigate threats like fraud, regulatory non-compliance, or reputational damage.
- Reference List: Includes supplemental data purchased or acquired about individuals (e.g., demographics, past addresses, contact methods) or companies (e.g., firmographics, corporate structure, executives, ownership). This data enriches your understanding of your subjects by providing additional context, such as historical addresses to track entity movement or corporate hierarchies to identify ultimate beneficial owners. This deeper insight improves entity resolution accuracy and supports use cases like customer profiling or due diligence.
Download the files
curl.exe -O https://raw.githubusercontent.com/Senzing/truth-sets/main/truthsets/demo/customers.jsonlcurl.exe -O https://raw.githubusercontent.com/Senzing/truth-sets/main/truthsets/demo/reference.jsonlcurl.exe -O https://raw.githubusercontent.com/Senzing/truth-sets/main/truthsets/demo/watchlist.jsonlcurl.exe ships with Windows 10 and later. Use curl.exe rather than curl: in PowerShell the bare name is an alias for Invoke-WebRequest, which does not write the file to disk.Add the data sources
sz_configtoolType help or ? for helpaddDataSource CUSTOMERSData source successfully added!addDataSource REFERENCEData source successfully added!addDataSource WATCHLISTData source successfully added!saveWARNING: This will immediately update the current configuration in the Senzing repository with the current configuration!
Are you certain you wish to proceed and save changes? (y/n)yConfiguration changes savedquitLoad the files
sz_file_loader -f customers.jsonl
sz_file_loader -f reference.jsonl
sz_file_loader -f watchlist.jsonl
Explore the results
sz_explorer ____| __ \ \
__| | | _ \ Senzing
| | | ___ \ Exploratory Data Analysis
_____| ____/ _/ _\
Type help or ? to list commands.
(szeda) get CUSTOMERS 1070
Entity summary for entity 98: Jie Wang
┼───────────┼────────────────────────────────────────┼─────────────────┼
│ Sources │ Features │ Additional Data │
┼───────────┼────────────────────────────────────────┼─────────────────┼
│ CUSTOMERS │ NAME: Jie Wang (PRIMARY) │ AMOUNT: 100 │
│ 1069 │ NAME: 王杰 (NATIVE) │ AMOUNT: 200 │
│ 1070 │ DOB: 9/14/93 │ DATE: 1/26/18 │
│ │ GENDER: Male │ DATE: 1/27/18 │
│ │ GENDER: M │ STATUS: Active │
│ │ ADDRESS: 12 Constitution Street (HOME) │ │
│ │ NATIONAL_ID: 832721 Hong Kong │ │
│ │ NATIONAL_ID: 832721 │ │
│ │ RECORD_TYPE: PERSON │ │
┼───────────┼────────────────────────────────────────┼─────────────────┼
│ REFERENCE │ NAME: Wang Jie (PRIMARY) │ CATEGORY: Owner │
│ 2013 │ DOB: 1993-09-14 │ STATUS: Current │
│ │ RECORD_TYPE: PERSON │ │
│ │ REL_POINTER: 2011 (OWNS 60%) │ │
┼───────────┼────────────────────────────────────────┼─────────────────┼
└── Disclosed relation (1)
└── --> OWNS 60% (1)
└── 182: Hajah Mamunah Jln Pisang CUSTOMERS (1) | REFERENCE (1) +REL_POINTER(OWNS 60%:)Mapping your own data
At this point you are ready to map and load your own data. Mapping is the process of converting your source data into a structure Senzing understands ready to load.
Consider these examples, in your data an attribute describing a personal full name is in a database table with the column name fullname. In Senzing a full name is represented by the term NAME_FULL. Similarly for address line 1, your database column is named addressline1, in Senzing this is represented by the term ADDR_LINE1.
Your task in mapping is to determine which attributes in your data source(s) are appropriate for use in entity resolution, extract those attributes and construct the structure describing those attributes to send to Senzing. The following is an example of a Senzing mapped JSON structure for an entry from a data source.
{
"DATA_SOURCE": "CUSTOMERS",
"RECORD_ID": "1001",
"RECORD_TYPE": "PERSON",
"PRIMARY_NAME_LAST": "Smith",
"PRIMARY_NAME_FIRST": "Robert",
"DATE_OF_BIRTH": "12/11/1978",
"ADDR_TYPE": "MAILING",
"ADDR_LINE1": "123 Main Street, Las Vegas NV 89132",
"PHONE_TYPE": "HOME",
"PHONE_NUMBER": "702-919-1300",
"EMAIL_ADDRESS": "[email protected]"
}
Start developing
The Senzing SDK ships for Java and C# on Windows.
-Djava.library.path is not required. Calling setupEnv.bat puts the Senzing library directory on PATH, which is where the JVM looks for it.If you have any questions, contact Senzing Support. Support is 100% FREE!