[28.0.0] - 2026-11-01 π§ The "DCAT-US v3.0 neuro-symbolic FAIRification" Release ποΈ
Highlights
~58 commits since 27.0.1, and the banner feature is profile writing much more of a DCAT-US v3.0 record for you, the metadata standard US Government is moving to as part of the Evidence Act, and subsequently, the Genesis Mission - as it turns out FAIR data is indeed AI-Ready Data for it's the perfect context for AI - it's token-efficient; describes very large datasets efficiently; and makes for faster inferencing.
qsv is a neuro-symbolic FAIRification engine, and this release puts both halves to work on the same record:
- Symbolic: properties measured from the data.
profilecomputes what is tedious and error-prone to write by hand from the stats and frequency it already runs, plus a SQL pass over the file:temporalResolutionas an exact duration,accrualPeriodicityonly when the dates really are a regular series, aspatialbounding box that drops out-of-range and "null island" rows, the dataset'slanguage, DQV quality measurements, and CSVW column constraints and a primary key.--locatenames the places a dataset covers, from the offline GeoNames index or the US Census Geocoder, and a WKTPOINTcolumn (the shape Socrata exports) now counts as coordinates. - Neural: metadata an LLM proposes, checked before it is used.
--describegptor--inferadds adescribegptdescription, tags and data dictionary. Tags can be held to a controlled vocabulary, dictionary entries must name real columns, and a generated description says so in the description itself.
Every value records where it came from: values the publisher supplies win over inferred ones, and values measured from the file win over everything discovered. A new projection_provenance block lists which tier each value came from, and llm_attribution keeps the LLM run's command line, API URL and timestamp out of the published record. See the DCAT-US v3 and Metadata Profiling wiki pages.
Also in this release:
describegpt's answer cache works as documented.--fresh,--forgetand multi-phase JSON/TOON runs all hit, replace or remove the entries they should, on disk and on Redis.- Data Schematics size themselves when embedded. A framed
viz smartpage reports its height to the host page, so CKAN can fit the iframe without injecting a script, and a map in a sandboxed iframe explains why it is blank. - Benchmarks on hyperfine 2.0, with peak memory recorded, suspect results quarantined, and new
geocode geoclientbenchmarks. - Least-privilege CI. Every workflow declares the
GITHUB_TOKENpermissions it needs, and third-party actions are pinned to commit SHAs.
Read Breaking Changes before upgrading if you consume profile's DCAT-US v3 output: two of its properties changed shape.
π Contributors
Thanks to everyone who made 28.0.0 possible:
- @jaemk for adding
RedbCache::scan_stats()tocached4.1 at our request ([jaemk/cached#336](https://github.com/jaemk/cached/issues/336), [jaemk/cached#337](https://github.com/jaemk/cached/issues/337)), whichgeocode cache-infonow uses to count entries
Detailed Changelog: https://github.com/dathere/qsv/blob/master/CHANGELOG.md#v28-changes
Full Commit log: https://github.com/dathere/qsv/compare/27.0.1...28.0.0