Changelog & Roadmap¶
Changelog¶
This changelog is maintained starting from CPRMV / CPRMV API v0.4.0. Usage of earlier versions is deprecated and at own risk. Note that CPRMV / CPRMV API still is highly subject to change.
v0.4.2 (October 2026)¶
How the API now finds its sources: Architecture. The vocabulary: CPRMV Vocabulary. The tests: Testing.
v0.4.2 - CPRMV
- Updates URIs and documentation to mention
0.4.2instead of0.4.1(vocabulary namespacehttps://standaarden.open-regels.nl/standards/cprmv/0.4.2#). - Echelons. A
cprmv:Echelonand six subclasses β Agreement, Semantic, Ontologic, Logic, Operable and Support β to which rule methods can be related, withcprmv:refinesTowardsandcprmv:refinesFrombetween them. - Acknowledgement of services and organisations.
OrganisationRegister,ServiceRegister,OrganisationCatalog,ServiceCatalog,AcknowledgedOrganisationandAcknowledgedService, related bycprmv:acknowledges, so that a catalog published in a register can act as an official publication method. cprmv:SerialisationMethodis added, andReferenceMethod(previously misspelledReferencenMethod) becomes a subclass ofPublicationMethod.- The method knowledge is split into modules, one folder per method under
rdf/0.4.2/methods/. New acknowledged methods include Catala, OpenFisca, ALEF with RegelSpraak, MC/DC as a test method, Legifrance and DSO as publication methods, STTR, the Normenbrief and RegelRecht; NRML is removed. - SHACL without recursion. The recursive
hasPartlist shape is replaced by a sequence-path shape, and the API's output for BWB, CVDR, DMN and Formex 4 validates against the shapes β DMN and Formex 4 with placeholdervalidFromandisOutputOfvalues for now.idandcommentaccept language-tagged strings. - The ReSpec documentation gains generated chapters on the methods and the API, and
npm run buildcreates the folders it writes to. The deprecatedexample/andtools/folders are removed.
v0.4.2 - CPRMV API
- Rule methods are plugins. Each publication and reference method is a Python module in
serve_api/methods/, loaded at startup byload_methods()and configured from its RDF description; the detection and transformation functions that lived inserve.pyare gone. - MCP through FastMCP at
/mcp, replacingfastapi-mcp. In the current deployment/mcpanswers 404 β the MCP app is built before the routes it should expose, and the container serves the plain app (standards/cprmv#31). - Python 3.14; the package versions are unpinned in
pyproject.tomland locked inrequirements.txt, with a script to refresh them. - Updates URIs and documentation to mention
0.4.2instead of0.4.1(serve-API and methods namespaceshttps://cprmv.open-regels.nl/0.4.2/β¦). - Ten of the thirteen API tests are disabled while they are rewritten for the plugin structure; see Testing.
The released image could not load its methods
The serve_api/Dockerfile on main does not copy serve_api/methods/, so an image built from it loads no rule method: every /rules ID answered No supported publication repository⦠and /ref returned 500 on all three hosts after the 0.4.2 deployment. The hosts were redeployed on 10 October 2026 with an image built from the fix in standards/cprmv!20, which is not yet merged.
v0.4.1 (June 2026)¶
v0.4.1 - CPRMV
- Updates URIs and documentation to mention
0.4.1instead of0.4.0(vocabulary namespacehttps://standaarden.open-regels.nl/standards/cprmv/0.4.1#). cprmv:RuleSetis now a subclass of FRBR Work (frbroo:F1_Work) instead ofeli:LegalResource: a formalisation such as a business rule is not in itself a legal resource in the ELI sense (noteeli:LegalResourceis itself a subclass of FRBR Work).cprmv:isBasedOnis now a subproperty offrbroo:R2_is_derivative_ofinstead ofeli:based_on; it remains a subproperty ofprov:wasDerivedFrom.- Documentation on properties added to the ReSpec specification.
- Class diagram in the ReSpec docs now uses the Elk layout engine (rectangular edges) via PlantUML instead of Graphviz.
- Fixes publication paths in the ReSpec document.
- Adds a PDF version of the ReSpec (built with pandoc, committed to the repository).
npm run build(andfull-package.json, which also generates the PDF and runs shaclgen) now also updates the ReSpec folder bundled with the CPRMV API.
v0.4.1 - CPRMV API
- Updates URIs and documentation to mention
0.4.1instead of0.4.0(serve-API/methods namespaceshttps://cprmv.open-regels.nl/0.4.1/β¦). /refendpoint reworked: the reference method is auto-detected from a singlereferencequery parameter (the/ref/{referencemethod}/{reference}path form is gone). Now (partly) supports Juriconnect, ELI to EU CELLAR, the CPRMV API/rulesrule-id path, and an experimental ELI style for NL (BWB/CVDR) references.- Bugfix: invalid arguments in a Juriconnect reference no longer cause an internal server error.
/cellar-by-celexnow redirects to the CELLAR output instead of returning the CELLAR URL as text.- New
/cellar-by-elihelper β works like/cellar-by-celexbut accepts ELI references (only those explicitly linked to EU CELLAR documents; partial ELIs do not resolve). - Fixes a quote-escaping bug for certain BWB resources.
/rulesalways returns acprmv:RuleSetwith at least the selectedcprmv:Ruleas part of it, so RuleSet-level properties always travel with the rule.- The RuleSet instance returned by
/rulesnow lives in thecprmv.open-regels.nl/operaton.open-regels.nlnamespace instead ofopencatalogi.open-regels.nl. /rulesautomatically adds a provenance link to the source publication on BWB, CVDR, FMX4 and DMN RuleSets (prov:wasDerivedFrom, the superproperty ofcprmv:isBasedOn)./rulesunformatnow applies before serializing to any requested format (e.g. rdflib'sn3), not onlycprmv-json./rulestransforms and dumps JSON in UTF-8 encoding.- Retrieving DMN files is now documented in the
/rulesSwagger docs. - Adds (basic) support for using the CPRMV API as an MCP server (
/mcp).
v0.4.0 β Initial Release (February 2026)¶
v0.4.0 - CPRMV
- More elaborated and updated RDFS/OWL/SHACL specification of CPRMV. Adds several new classes like types of methods. Adds start for alignment with ELI.
- Changes the official cprmv URI to one that resolves to the respective documentation
- Normative section generated from RDFS/OWL/SHACL in the ReSpec documentation
- Generated class diagram in ReSpec documentation
v0.4.0 - CPRMV API
- bugfixes around support for BWB schema (now supports circulaireβs)
- Adds /respec section hosting the respec documentation (besides the official URI)
- Adds /ref endpoint which is going to support all reference methods (but currently only implements juriconnect at a basic level)
- Allows for retrieving DMN 1.3 rulesets published in acknowledged (in value list in cprmvmethods.ttl) Operaton servers (currently only operaton.open-regels.nl)
Roadmap¶
Completed¶
| Feature | Version |
|---|---|
| CPRMV / CPRMV API | v0.4.2 |
| CPRMV / CPRMV API | v0.4.1 |
| CPRMV / CPRMV API | v0.4.0 |
| CPRMV | v0.3.1 |
Planned¶
The repository's roadmap notes that it can change at any moment.
v0.4.3 β expected by 15 November 2026
- CPRMV: a RuleSet as an FRBR Expression as well as a Work; officially published Dutch parliamentary documents and the rulesets based on them; fully traceable examples from parliament to executed rules (Article 7a of the Dutch old-age pension law, the Flevoland home-battery subsidy, the Normenbrief, a service based on an STTR published in the DSO); examples and links to the RDF definitions in the ReSpec; PNA Group's iKnow as an analysis method; DMN knowledge sources read as
cprmv:isBasedOn; Operaton rulesets referenced by name. - CPRMV API: every RuleSet referenced to a service with its competent authority;
/rulesfinding multiple published rulesets and returning references to them; organisation and service catalogs in references; basic support for DSO (STTR), MC/DC test sets, RegelSpraak, Legifrance, Catala and OpenFisca sources;cprmv:isBasedOnrelations found automatically with ref2link and usable in references.
v0.4.4 β expected by 21 December 2026
- CPRMV: descriptions and names of concepts revised after feedback from expert communities (SEMIC, NORA and others).
- CPRMV API: a cache for RuleSets, with recaching on request or when a new version appears and settings for memory and disk use; the API as a publishing node for one organisation's RuleSets, registered as that organisation's publication repository, with RuleSets signed by a key of the competent authority; security improvements.