Skip to content

Data Model

The CPRMV API produces and consumes data conforming to the CPRMV OWL vocabulary (rdf/cprmv.ttl) validated by the SHACL shapes in rdf/cprmv.shacl.ttl.


Namespace

https://standaarden.open-regels.nl/standards/cprmv/0.4.1#

Prefix: cprmv:


Core classes

cprmv:RuleSet

A set of rules that is the output of a public service. Subclass of frbroo:F1_Work and cv:Output (as of v0.4.1 — a formalisation is a FRBR Work, no longer an eli:LegalResource). A RuleSet, being a cv:Output, is cprmv:is_part_of a dcat:Dataset.

Property Type Cardinality Notes
cprmv:id literal 1..1 Unique identifier
cprmv:validFrom xsd:date 1..1
cprmv:validUntil xsd:date 0..1
cprmv:publishedOn xsd:date 0..1
cprmv:isOutputOf cpsv:PublicService 1..1 Links to the service that produced this rule set
cprmv:hasMethod cprmv:RuleMethod 1..*
cprmv:hasPart RDF list of cprmv:Rule/cprmv:RuleSet 1..1
cprmv:isBasedOn cprmv:RuleSet or cprmv:Rule 0..* Subproperty of frbroo:R2_is_derivative_of and prov:wasDerivedFrom
cprmv:comment xsd:string 0..1

Source provenance (v0.4.1)

When the /rules endpoint transforms a publication, the generated cprmv:RuleSet carries a prov:wasDerivedFrom triple pointing at the original source publication URL (the BWB/CVDR repository document, the EU CELLAR item, or the Operaton DMN resource). The RuleSet subject itself now lives in the cprmv.open-regels.nl / operaton.open-regels.nl namespace (was opencatalogi.open-regels.nl before v0.4.1).

cprmv:Analysis

Subclass of cprmv:RuleSet. A rule set produced by following an analysis method (e.g. Wetsanalyse/JAS).

cprmv:DecisionModel

Subclass of cprmv:RuleSet. A rule set produced by following a formalisation method (e.g. DMN 1.3).

Property Type Cardinality
cprmv:hasAnalysis cprmv:Analysis 0..*

cprmv:Rule

An individual rule within a rule set.

Property Type Cardinality Notes
cprmv:id literal (lang-tagged) 1..1 Used for path navigation
cprmv:definition literal 0..1 Natural language definition
cprmv:postDefinition literal 0..1
cprmv:sourceQuote xsd:string 0..1
cprmv:comment xsd:string 0..1
cprmv:isBasedOn cprmv:Rule 0..*
cprmv:hasPart RDF list 0..1 Sub-rules

cprmv:Parameter

Subclass of cprmv:Rule. A rule that represents a parameter value (e.g. income limit, threshold percentage).


RuleMethod hierarchy

Class Description
cprmv:RuleMethod Base class
cprmv:AnalysisMethod Methods for analysing legislation (e.g. Wetsanalyse)
cprmv:FormalisationMethod Methods for formalising rules (e.g. DMN 1.3)
cprmv:CodificationMethod Methods for codifying rules
cprmv:ExecutionMethod Methods for executing rules
cprmv:ExplanationMethod Methods for explaining rules
cprmv:TestMethod Methods for testing rules
cprmv:PublicationMethod Methods tied to a publication repository
cprmv:ReferenceMethod Methods for referencing rules externally

RDF list structure for hasPart

cprmv:hasPart uses standard RDF lists (rdf:first / rdf:rest / rdf:nil). The Python traversal in get_rule and get_first_rule_by_Id_path_split_from_rule_as_root walks these lists explicitly. Each list item is a blank node [ a cprmv:Rule; cprmv:id "..."; ... ].


Methods namespace

https://cprmv.open-regels.nl/0.4.1/serve-api/

Prefix: cprmv-serve:

Key serve-API properties on method nodes:

Property Purpose
cprmv-serve:publication-id-format Format template for the publication identifier
cprmv-serve:normalized-id-format Normalised format used for parsing incoming IDs
cprmv-serve:repository-publication-location-format URL template for downloading the publication XML
cprmv-serve:frbr-repository-sru-url SRU URL for resolving latest versions
cprmv-serve:xslt Relative path to the XSLT file

SHACL shapes

rdf/cprmv.shacl.ttl defines shapes for cprmv:RuleSet, cprmv:DecisionModel, cprmv:Rule, and cprmv:RuleMethod. The shapes enforce mandatory properties and cardinality constraints as listed in the tables above. They can be used to validate TTL files produced by the CLI tool (tools/bwb2cprmv/) or the API's own output before ingestion into TriplyDB.