The CPRMV vocabulary is defined in rdf/0.4.2/cprmv.ttl, with SHACL shapes in rdf/0.4.2/cprmv.shacl.ttl, and published as the CPRMV specification at cprmv.open-regels.nl/respec/. This page provides a compact reference of the classes and properties relevant to the API's output.
Related namespaces used by the API: cprmvmethods: = https://cprmv.open-regels.nl/0.4.2/methods/ (method definitions) and cprmv-serve: = https://cprmv.open-regels.nl/0.4.2/serve-api/ (API configuration properties).
The copy the API loads
The API loads the vocabulary from serve_api/data/cprmv.ttl, which make methods copies from rdf/0.4.2/cprmv.ttl. The committed copy predates the 0.4.2 additions below: it carries the 0.4.2 namespace but lacks SerialisationMethod, the registers, catalogs and echelons, and still declares cprmv:ReferencenMethod as a subclass of cprmv:RuleMethod. /methods serves that copy.
A versioned set of rules, output of a public service. A RuleSet is a FRBR Work, not an eli:LegalResource — a formalisation (e.g. business rules) is not in itself a legal resource (eli:LegalResource is itself a subclass of FRBR Work).
cprmv:Analysis
cprmv:RuleSet
Rule set produced by an analysis method
cprmv:DecisionModel
cprmv:RuleSet
Rule set produced by a formalisation method
cprmv:TestSet
cprmv:RuleSet
Rule set of test cases defined following a test method
cprmv:OrganisationCatalog
cprmv:RuleSet
Catalog of officially acknowledged organisations that produce rule sets
cprmv:ServiceCatalog
cprmv:RuleSet
Catalog of officially acknowledged public services in which rule sets are produced
cprmv:Rule
—
An individual rule within a rule set
cprmv:Parameter
cprmv:Rule
A rule representing a parameter value
cprmv:AcknowledgedOrganisation
cprmv:Rule
The official acknowledgement of a cv:PublicOrganisation
cprmv:AcknowledgedService
cprmv:Rule
The official acknowledgement of a cpsv:PublicService
cprmv:Explanation
cprmv:Rule
Explains a rule set or rule
cprmv:Decision
cprmv:Rule
A rule defined following an execution method
cprmv:Case
cprmv:Rule
A list of decisions defined following an execution method
cprmv:TestCase
cprmv:Case
A case defined for and following a test method
cprmv:RuleMethod
—
Base class for all method types
cprmv:AnalysisMethod
cprmv:RuleMethod
cprmv:FormalisationMethod
cprmv:RuleMethod
cprmv:SerialisationMethod
cprmv:RuleMethod
Meta method: serialising rules as a storable text file (XML, JSON, YAML, Turtle)
cprmv:CodificationMethod
cprmv:RuleMethod
cprmv:ExecutionMethod
cprmv:RuleMethod
cprmv:ExplanationMethod
cprmv:RuleMethod
cprmv:TestMethod
cprmv:RuleMethod
cprmv:PublicationMethod
cprmv:RuleMethod
Publication of rule set definitions, apart from their execution
cprmv:ReferenceMethod
cprmv:PublicationMethod
Meta method: referencing rules and rule sets
cprmv:OrganisationRegister
cprmv:PublicationMethod
Method for publishing an organisation catalog
cprmv:ServiceRegister
cprmv:PublicationMethod
Method for publishing a service catalog
cprmv:Echelon
—
A category of a rule set in service delivery — see Echelons
rdf/0.4.2/cprmv.shacl.ttl constrains the output as follows:
cprmv:RuleSetShape — cprmv:id (at least one), exactly one cprmv:validFrom (xsd:date), optional cprmv:validUntil / cprmv:publishedOn, at least one cprmv:isOutputOf (cpsv:PublicService) and at least one cprmv:hasMethod (cprmv:RuleMethod). Through the shared property shape cprmv:hasPartShape — the sequence path cprmv:hasPart / rdf:rest* / rdf:first — a rule set must contain at least one member, and every member must be a cprmv:Rule.
cprmv:RuleShape — cprmv:id (at least one), at most one cprmv:definition and one cprmv:postDefinition, cprmv:hasPart zero or more.
cprmv:id, cprmv:comment and cprmv:sourcequote accept xsd:string or rdf:langString, where constrained.
Method shapes — every cprmv:RuleMethod needs a cprmv:id; refinesTowards and refinesFrom must point to a cprmv:Echelon, and each method subclass narrows which echelons it may refine from and towards (for example, an analysis method refines towards the agreement, semantic or ontologic echelon; a formalisation method towards the logic or operable echelon).
Catalogs — an OrganisationCatalog must have an OrganisationRegister as method, a ServiceCatalog a ServiceRegister; cprmv:acknowledges is required on AcknowledgedOrganisation (cv:PublicOrganisation) and AcknowledgedService (cpsv:PublicService).
rdf/0.4.2/test.sh runs pyshacl over the test files and method definitions; it is a manual check.