1
0
2026-02-08 23:12:26 +00:00
2026-02-08 22:14:54 +00:00
2026-02-08 22:13:10 +00:00
2026-02-08 22:11:07 +00:00
2026-02-08 22:11:07 +00:00
2026-02-08 22:37:35 +00:00
2026-02-08 22:11:07 +00:00
2026-02-08 22:13:10 +00:00
2026-02-08 22:11:07 +00:00

VDVC — Valsts dokumentu vadības klasifikators

VARAM Dokumentu vadības klasifikācijas shēma — machine-readable classification schema for the DVS Namejs document management system.

Overview

This package transforms VARAM's Excel-based document classification schema (647 entries) into a structured, machine-readable format. It provides two variants:

V1 (as-is) V2 (proposed)
Approach 1:1 from Excel, normalised Functional restructuring per MK Nr. 282 §33
Categories 493 leaf categories 181 (132 + 45 + 4)
I2 projects 33 groups × 4 sub-cats = 132 4 functional + 33 project tags
I1 programmes 13 groups × ~17 sub-cats = 227 45 functional + 13 programme tags
Correspondence 9 audience sub-categories 1 category + 9 audience tags
Retention 50+ free-text variants 5 structured types + conditional rules
Numbering P-1-13-4, I1-1-1.2, Il-9-2 1.1.13, 2.1.2, 3.1 (clean numeric)
MCP served No Yes

Files

├── vdvc-classification.xsd          XSD schema (both V1 and V2)
├── classification-v1-asis.xml       V1: 493 categories, original structure
├── classification-v2-proposed.xml   V2: 181 categories, functional
├── vocabularies.xml                 Controlled vocabularies (depts, programmes, projects, audiences)
├── migration-mapping.csv            V1→V2 lookup table (355 rows)
├── mcp-config.yaml                  MCP server configuration (V2 only)
├── index.html                       GUI editor (display V1, edit V2)
└── README.md                        This file

Design Decisions

Q1: Metadata Identifiers

  • Q1a: Programme codes use internal IDs (PRG-001..PRG-013), not EU codes
  • Q1b: Project codes use internal IDs (PRJ-001..PRJ-033), not EU project numbers
  • Q1c: Department codes (e.g. IPD, LN) are in the vocabulary file, with cross-reference placeholder to VARAM Organizations Register

Q2: V1 Normalisation

  • Q2a: Mixed separators normalised (dots→hyphens: P-1-18.1P-1-18-1). Il typo → I1.
  • Q2b: 93 NBSP retention values treated as empty (element omitted)

Q3: V2 Restructuring

  • Q3a: P-1-13 correspondence collapsed to one category (1.1.13) with retentionRule elements per audience. Different retention terms preserved as conditional rules.
  • Q3b: I1/I2 retention always on category+programme/project combination. Default retention on category, overrides via retentionRule.
  • Q3c: Clean numeric domains: 1 (Pārvalde), 2 (Programmu vadība), 3 (Projektu ieviešana). Dot separators: 1.1.13, 2.3.1, 3.2.

Q4: GUI

  • Q4a: Display V1 (read-only), edit V2
  • Q4b: Download XML for manual commit (MVP)

Q5: MCP

  • Q5a: V2 only
  • Q5b: Clean normalised structure in generate_document

Retention Normalisation

50+ free-text variants → 5 structured XML types:

Type XML Element Example Original
Permanent <permanent/> "Pastāvīgi", "Patstāvīgi"
Duration <duration years="5"/> "5 gadi"
Triggered duration <duration years="5" trigger="project_closure"/> "5 gadi pēc projekta noslēguma pārskata apstiprināšanas"
Fixed date <fixedDate>2034-12-31</fixedDate> "31.12.2034.", "2031-12-31"
Fixed date (EU) <fixedDate euCommission="true">2032-12-31</fixedDate> "31.12.2032. EK"

Additional special types: <untilReplaced/>, <untilNoLongerNeeded/>.

Trigger types: creation, project_closure, programme_closure, contract_end, employment_end, replacement, assessment, last_debt_cleared, description_complete, procurement_execution, procurement_signing, disciplinary_decision.

V2 Conditional Retention (retentionRule)

When a category's retention depends on metadata (audience, programme, project), V2 uses retentionRule elements:

<vdvc:category code="3.1">
  <vdvc:name>Korespondence</vdvc:name>
  <!-- Default: 5 years after project closure -->
  <vdvc:retention>
    <vdvc:duration years="5" trigger="project_closure"/>
  </vdvc:retention>
  <!-- Override for PRJ-002: fixed date -->
  <vdvc:retentionRule label="Green LUPO">
    <vdvc:condition><vdvc:projectRef>PRJ-002</vdvc:projectRef></vdvc:condition>
    <vdvc:retention><vdvc:fixedDate>2034-04-30</vdvc:fixedDate></vdvc:retention>
  </vdvc:retentionRule>
  <vdvc:requiresTag type="project" required="true"/>
</vdvc:category>

Resolution order: specific project/programme/audience rule → default retention.

Namespace

urn:vdvc:classification:2026

Prefix: vdvc:

  • MK noteikumi Nr. 282 (20.04.2012.) — "Noteikumi par dokumentu izstrādāšanu un noformēšanu" §33: classification schema must be based on document functions.
  • VARAM iekšējie noteikumi — current classification schema approved by ministry order.

ProcessGit Repository

https://processgit.org/VARAM/Document_classification_schema

MCP endpoint auto-generated from mcp-config.yaml.

Migration from V1 to V2

Use migration-mapping.csv for automated document re-classification:

v1_code,v1_name,v2_code,v2_name,tag_type,tag_id,notes
I2-2-1,"Korespondence",3.1,Korespondence,project,PRJ-002,
I2-2-2,"Līgumi...",3.2,Līgumi un akti,project,PRJ-002,
P-1-13-1,"Sarakste ar republikas...",1.1.13,Sarakste,audience,republic-orgs,conditional retention

Migration steps:

  1. Look up v1_code in CSV
  2. Assign v2_code as new classification
  3. Add tag_type:tag_id as document metadata
  4. Resolve retention from V2 category + tag combination
Description
No description provided
Readme 191 KiB
Languages
HTML 100%