[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 data.gov is moving to.
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, jaemk/cached#337), whichgeocode cache-infonow uses to count entries