Generate CPSV-AP 3.2.0 compliant RDF/Turtle files for Dutch government services
π Live Application: cpsv.open-regels.nl
π§ͺ Acceptance Environment: acc.cpsv.open-regels.nl
- Overview
- Features
- Standards Compliance
- Architecture
- Getting Started
- Usage Guide
- Development
- Deployment
- Roadmap
- Documentation
The Core Public Service Editor is a React-based web application that simplifies the creation and management of RDF/Turtle files for government services in the Netherlands. It provides an intuitive interface for creating service definitions that comply with EU CPSV-AP 3.2.0 and Dutch RONL/CPRMV standards.
Key Features:
- β CPSV-AP 3.2.0 compliant TTL generation
- β DMN integration with Operaton rule engine
- β RPP Architecture (Rules--Policy--Parameters separation)
- β iKnow integration for legislative analysis import
- β Import/Export with perfect round-trip fidelity
- β Live preview panel with real-time TTL generation
- Public service metadata (title, description, keywords)
- Thematic areas and sector classification
- Cost and output specification
- Legal resource linking
- Public organization details
- Geographic jurisdiction (mandatory)
- Homepage and contact information
- URI support (short IDs or full URIs)
Upload and manage organization logos directly in the Organization tab:
- Upload: Support for JPG and PNG files (automatically resized to 256Γ256px)
- Preview: Live preview with file size and encoding information
- Publishing: Logos are automatically uploaded as assets to TriplyDB
- RDF Output: Generates
foaf:logoandschema:imageproperties - Semantic Links: Full traversal path:
DMN β Service β Organization β Logo
Logos are published alongside your service metadata and can be queried via SPARQL in the Linked Data Explorer.
- BWB ID support for Dutch legislation
- Version and consolidation tracking
- Direct linking to wetten.overheid.nl
- Validation of BWB formats
- Temporal rules with validity periods
- Rule versioning and inheritance chains
- Confidence level tracking (high/medium/low)
- Rule-to-policy traceability
- Configurable values for rule behavior
- Multiple unit types (EUR, PCT, NUM, DAYS, MONTHS, YEARS)
- Temporal validity per parameter
- Regional variation support
- Normative values from legislation
- CPRMV Rules API integration
- JSON import from normenbrief format
- Policy-to-legal-source traceability
- Upload and deploy DMN files to Operaton
- Test decision evaluations with live data
- Automatic input variable extraction
- Rule extraction with CPRMV attributes
- Import preservation for existing DMN
The CPSV Editor automatically generates semantic concept definitions for DMN decision variables according to the Dutch Standard for Describing Concepts (NL-SBB). These concepts enable semantic interoperability across different decision models.
Key Features:
- Automatic Generation: Concepts are automatically created when you test a DMN model
- Full CRUD Operations: Add, edit, and delete concepts with a user-friendly interface
- Semantic Linking: Use
skos:exactMatchto link concepts across different ontologies - Import/Export: Concepts are preserved in round-trip import/export cycles
- Manual Management: Add custom input/output concepts beyond auto-generated ones
Concept Properties:
- Preferred Label (skos:prefLabel): Human-readable name in Dutch
- Notation (skos:notation): Short machine code (e.g., "GA", "LP")
- Definition (skos:definition): Semantic description of the concept
- Variable Name: Technical name used in DMN and URIs
- Exact Match (skos:exactMatch): Optional URI to equivalent concept in another ontology
Use Cases:
- Cross-DMN Validation: Link variables like "geboortedatum" = "birthdate" across different models
- Chain Detection: Enable the Linked Data Explorer to detect cycles and validate decision chains
- Concept Harmonization: Standardize terminology across different government organizations
- Semantic Search: Enable semantic queries across multiple decision models
Standards Compliance:
- NL-SBB (Nederlandse Standaard voor het Beschrijven van Begrippen)
- SKOS (Simple Knowledge Organization System)
- Linked Data principles with dereferenceable URIs
Documentation: Dutch Standard for Describing Concepts
The CPSV Editor supports integration with multiple vendor platforms for importing legislative and regulatory data. The Vendor tab provides a unified interface for configuring and importing data from various rules management systems.
The editor integrates with vendors listed in the RONL vocabulary as Method Concepts (ronl:MethodConcept). Currently, 17 vendor platforms are supported:
| Vendor | Description | Status |
|---|---|---|
| iKnow | Legislative analysis and knowledge management platform | β Fully Integrated |
| ALEF | Agile Law Execution Factory | π Planned |
| Avola | Decision automation platform | π Planned |
| Beinformed | Intelligent automation platform | π Planned |
| Blueriq | Digital decision management | π Planned |
| OpenFisca | Tax and benefit system modeling | π Planned |
| RuleSpeak | Business rule notation | π Planned |
| USoft | Rules-based application development | π Planned |
-
Navigate to Vendor Tab
- Click the Vendor tab in the main navigation
-
Select a Vendor
- Choose a vendor from the dropdown menu
- Vendors are loaded dynamically from the RONL vocabulary in TriplyDB
-
Configure Integration
- Each vendor has its own integration interface
- Currently, only iKnow integration is fully implemented
The iKnow integration allows you to import legislative knowledge from iKnow XML exports:
- CognitatieAnnotationExport.xml - Concept-based exports with annotations
- SemanticsExport.xml - Semantic knowledge exports
- Configure Mode: Create reusable field mapping configurations
- Map iKnow XML fields to CPSV-AP properties
- Define mappings for Service, Legal, Rules, Parameters, and CPRMV sections
- Save and load mapping configurations as JSON
- Import Mode: Import data using saved configurations
- Upload iKnow XML data files
- Select a mapping configuration
- Preview mapped data before import
- Import directly into the editor
- Switch to Configure mode
- Upload an example iKnow XML file (or use "Load Example")
- Map XML fields to CPSV-AP properties for each section
- Save the configuration
- Switch to Import mode
- Upload your actual iKnow data file
- Select the saved configuration
- Preview and import the data
The architecture supports easy addition of new vendor integrations:
- Create vendor-specific component in
src/components/tabs/vendors/ - Add conditional rendering in
VendorTab.jsxbased on selected vendor URI - Implement vendor-specific parser for data format
- Create field mapping configuration for CPSV-AP compliance
- Add state management for vendor-specific configuration
Vendor List Source: RONL vocabulary in TriplyDB
Endpoint: https://api.open-regels.triply.cc/datasets/stevengort/ronl/services/ronl/sparql
Concept: ronl:MethodConcept
Integration Pattern: Each vendor URI follows the format:
https://regels.overheid.nl/termen/{VendorName}
Related Components:
src/components/tabs/VendorTab.jsx- Main vendor interfacesrc/components/tabs/IKnowMappingTab.jsx- iKnow integrationsrc/utils/iknowParser.js- iKnow XML parsersrc/utils/ronlHelper.js- RONL vocabulary queries
The editor implements the RPP architectural pattern for Business Rule Management:
| Layer | Color | Description | Examples |
|---|---|---|---|
| Rules π΅ | Blue | Executable decision logic that operationalizes policies | Eligibility checks, calculations |
| Policy π£ | Purple | Normative values derived from laws | Legal thresholds, mandated rates |
| Parameters π’ | Green | Configurable values that tune rules | Regional rates, pilot adjustments |
Benefits:
- Legal Traceability: Law β Policy β Rule β Parameter β Decision
- Organizational Agility: Adjust parameters without changing rules or laws
- Governance: Clear ownership and approval workflows per layer
Documentation: See docs/RULES-POLICY-PARAMETERS-SEPARATION.md
Modularization Journey:
- v1.0: Monolithic App.js
- v1.3: Component extraction
- v1.5.1: Full modularization
Key Modules:
useEditorState.js- State management hookttlGenerator.js- TTL generation classimportHandler.js- Import logicuseArrayHandlers.js- DRY array operations
Documentation: See docs/PROJECT-STRUCTURE.md
The editor generates TTL files compliant with the Core Public Service Vocabulary Application Profile 3.2.0.
Compliance Status:
- β All mandatory properties implemented
- β Correct class types (cv:PublicOrganisation, cpsv:PublicService)
- β Proper relationships (cv:hasLegalResource, cv:hasCompetentAuthority)
- β Mandatory identifiers for all entities
Documentation: See docs/FIELD-MAPPING-CPSV-AP-3_2_0.md
RONL (Regels Overheid Nederland):
ronl:TemporalRule- Time-bounded rulesronl:ParameterWaarde- Configuration parametersronl:validFrom/ronl:validUntil- Temporal validityronl:confidenceLevel- Rule confidence trackingronl:extends- Rule versioning chains
CPRMV (Core Public Rule Management Vocabulary):
cprmv:Rule- Normative rules from legislationcprmv:definition- Full legal textcprmv:situatie- Situational contextcprmv:norm- Normative valuecprmv:ruleIdPath- Legal source pathcprmv:DecisionModel- DMN model linking
Documentation: See docs/NAMESPACE-PROPERTIES.md
- Node.js 14+ and npm
- Modern web browser (Chrome, Firefox, Edge, Safari)
# Clone the repository
git clone https://github.com/your-org/ttl-editor.git
cd ttl-editor
# Install dependencies
npm install
# Start development server
npm startThe application will open at http://localhost:3000
# Create optimized production build
npm run build
# The build folder contains the static files- Fill in Service Details - Basic service metadata
- Add Organization - Competent authority information
- Link Legal Resource - BWB ID or legal document
- Define Rules - Decision logic (optional)
- Add Parameters - Configuration values (optional)
- Add Policy - CPRMV normative rules (optional)
- Validate - Check for errors
- Download TTL - Export compliant RDF/Turtle file
- Click "Import TTL File" button
- Select a
.ttlfile - All fields populate automatically
- Edit and re-export for round-trip editing
- DMN Tab - Upload
.dmnfile - Deploy - Send to Operaton rule engine
- Test - Evaluate with sample data
- Export - TTL includes DMN metadata and rules
- iKnow Tab - Upload iKnow XML export
- Configure Mapping - Map XML fields to CPSV-AP
- Preview - Review mapped data
- Import - Populate editor tabs
ttl-editor/
βββ public/ # Static assets
βββ src/
β βββ components/ # React components
β β βββ tabs/ # Tab components
β βββ hooks/ # Custom React hooks
β βββ utils/ # Business logic
β βββ data/ # Configuration data
β βββ config/ # App configuration
βββ docs/ # Documentation
βββ package.json
- React 18.3.1 - UI framework
- Tailwind CSS 3 - Styling
- Lucide React - Icons
- RDF/Turtle - Semantic web standards
- ESLint for code quality
- Prettier for formatting
- Functional components with hooks
- Modular architecture
The application is deployed to:
- Production: https://cpsv.open-regels.nl
- Acceptance: https://acc.cpsv.open-regels.nl
# Build
npm run build
# Deploy build/ folder to your hosting providerNo environment variables required - fully client-side application.
- β CPSV-AP 3.2.0 compliance (v1.4.0)
- β DMN integration (v1.5.0)
- β iKnow integration (v1.5.0)
- β Full modularization (v1.5.1)
- β RPP architecture visualization (v1.5.1)
Phase B: RPP Deep Integration
- Cross-references between layers
- "This rule implements Policy X" indicators
- "This parameter is used by Rules Y, Z" tracking
- Traceability visualization
- Impact analysis
Phase C - Governance Features (Optional)
- Add approval workflows
- Layer-specific validation
- Separate exports
Phase 2: Extended CPSV-AP
- Channel support (cv:Channel)
- Contact points (cv:ContactPoint)
- Criteria requirements
- Evidence requirements
- Agent relationships
Phase 3: Advanced Features
- Multi-language support
- Collaboration features
- Version control integration
- Automated testing
- Quality metrics
See src/data/roadmap.json for detailed roadmap.
- README.md - This file, project overview
- FIELD-MAPPING-CPSV-AP-3_2_0.md - UI field to TTL property mapping
- NAMESPACE-PROPERTIES.md - RDF namespace reference
- PROJECT-STRUCTURE.md - Code organization
- VOCABULARY-INSTRUCTIONS.md - Vocabulary usage guide
- RULES-POLICY-PARAMETERS-SEPARATION.md - RPP architecture pattern
- ARCHITECTURE-VISUAL.md - Visual architecture diagrams
- REFERENCE-ARCHITECTURE-SEMANTIC-MEDIATION.md - Semantic mediation patterns
This is a Dutch government project. For contributions or questions:
- Check existing issues
- Create detailed bug reports or feature requests
- Follow the code style guidelines
- Submit pull requests to
accbranch
EUPL v. 1.2 License - See LICENSE file for details
- Live Application: https://cpsv.open-regels.nl
- Acceptance Environment: https://acc.cpsv.open-regels.nl
- CPSV-AP Specification: https://semiceu.github.io/CPSV-AP/
- Wetten Overheid: https://wetten.overheid.nl
- CPRMV Documentation: https://cprmv.open-regels.nl/docs
- Operaton Engine: https://operaton-doc.open-regels.nl
For support or questions about this project, please create an issue in the repository.
Built with β€οΈ for Dutch Government Services
Version 1.5.1 - January 2026