Verisyntax — User Manual (prototype 0.1)
Practical exercise: import a CSV file and run a result
The repository includes a ready-to-run project:
<example-project>
├── customer_report.vsx
└── customers.csv
You may copy this folder to your own project location. The CSV file contains:
id,name,country,active
1,Customer A,DK,true
2,Customer B,SE,true
3,Customer C,DK,false
4,Customer D,DK,true
The Verisyntax program is:
database local:
engine sqlite
path "customer_report.sqlite"
source customers:
database local
table "customers"
column id: integer
column name: text
column country: text
column active: boolean
primary_key id
provenance row
dataset danish_customers:
from customers as customer
select customer.id as id
select customer.name as name
where customer.country = "DK"
Complete these steps in the IDE:
- Open Verisyntax IDE and click Open Project….
- Select the
practical_customer_reportfolder and opencustomer_report.vsxfrom the project list. - Click Check. The document should be valid. Database, source, and dataset menus are populated from compiler-validated IR.
- Select
local (sqlite)under Database…. - Click More tools… → Initialize metadata… and approve the operation. This creates
customer_report.sqliteand the provenance/review tables. It does not alter unrelated databases. - Select
customers · customersunder Source… and click Import data…. - Select
customers.csv. Entercreate, because the destination table does not exist yet. - Review the Artifact tab. Check the file hash, mapping, destination, data types, warnings, and four input rows. Approve Commit import.
- Click Preview rows and approve the bounded read-only query. All four source rows should appear.
- Click Compile C++ and approve the exact document hash.
- Click Build native and approve the local build.
- Select
danish_customers (sqlite)in the run menu and click Run. - The result dialog table should contain Customer A, Customer C, and Customer D. Customer B is excluded because his country is
SE. Close the dialog or choose Open Results tab to inspect the complete run documentation.
This exercise is part of the automated test suite. The test copies the files to a temporary folder, initializes SQLite, imports the CSV file, runs the documented dataset, and checks the actual returned names.
Optional evidence-and-claim extension:
- Click Configure reviewer and store a project-local reviewer ID and name.
- Select
local (sqlite)again and click Load imported cells under CLAIM REVIEW. - Choose a cell such as the one containing
Customer A, then click Capture selected mention. The immutable mention records source, import record, cell, and content hashes. It is not a claim or fact. - Select the mention, keep
glm-4.7-flash:latestand 64K, and click Suggest claim locally. Approve only if local Ollama may read the displayed excerpt. - Read and edit the claim JSON. Store reviewed proposal creates an inactive version only.
- Finish with Approve as fact or Reject claim. Only approval of the displayed exact hash creates an active fact. This adds review history to metadata; it does not silently change the dataset result.
The deterministic desktop acceptance test covers this review chain without a model call. A separate live acceptance test covers the complete flow with the default local model and 64K.
When repeating an import:
- use
createonly when the physical table does not exist; - use
appendto add rows without changing existing rows; - use
mergeto compare rows by the declaredprimary_key, insert new keys, and update changed non-key values.
Merge shows a hash-bound plan before commit and never deletes destination rows automatically.
