1
0
Files
Rihards 8adeb62fa8 Likums-as-Code 0.4: PPP likums, kapitāla daļu likums un vēl 14 likumi
Jauni likumi (16): Publiskās un privātās partnerības likums; Publiskas personas kapitāla daļu un
kapitālsabiedrību pārvaldības likums; Augstskolu; Valsts valodas; Muzeju; Par ietekmes uz vidi
novērtējumu; Sociālo pakalpojumu un sociālās palīdzības; Būvniecības; Maksātnespējas; Valsts
kultūrkapitāla fonda; Jūrlietu pārvaldes un jūras drošības (lv-lik-2002-10-31-2); Latvijas vides
aizsardzības fonda; Publisko iepirkumu; Zinātniskās darbības; Par darbinieku aizsardzību darba
devēja maksātnespējas gadījumā; Par piesārņojumu. validate: 58/58 OK.

Shēma (saderīga paplašināšana, datu līgums tāpat):
- sadaļa virs nodaļām: Chapter kind="division", ID …sA
- pants, kas vēl nav spēkā: status="pending", bez teksta
- ID: art…[a-z] (644¹⁸A), ann…sN (1.¹ pielikums)

Konvertors: pielikumi (Annex, ieskaitot tabulas rindas; pilnības skaitā); tās pašas dienas likumi
→ -2; „8.pants” bez punkta; „48.¹” pārejas noteikumos; virsraksts ar izslēgšanas piezīmi;
Augstākās Padomes paraksti; noslēgums netiek skaitīts XML pusē (iepriekš mazos likumos >101 %).

Neielādēti (vecā struktūra, nākamais darbs): Civilprocesa likums, Satversme, Par policiju,
Par Latvijas Nacionālo bibliotēku.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016igpMJBtapmG6vHE4vSF9q
2026-10-24 08:14:17 +00:00

457 lines
13 KiB
YAML

# ODCS v3 datu līgums: B20 Latvijas Republikas likumi
# Ģenerēts no schemas/likumi-0.1.xsd (tools/xsd_to_odcs.py, lakehouse). Shēmas daļu nelabot ar roku — labot XSD un ģenerēt no jauna.
apiVersion: v3.0.2
kind: DataContract
id: urn:pppa:cac:contract:B20
name: Latvijas Republikas likumi
version: 0.1.0
status: active
domain: Valsts kā kods (Country as Code)
dataProduct: Likumi kā dati
tenant: PPP Asociācija (PPPA)
description:
purpose: Latvijas Republikas likumi vienā datu struktūrā — rekvizīti, redakcija un iestrādātie grozījumi, nodaļas, panti, daļas, punkti ar statusu
(spēkā / izslēgts) un redakcijas atzīmēm, pārejas noteikumi, ES atsauces ar CELEX, spēkā stāšanās, pieņemšana, izsludināšana un parakstītāji.
usage: Mašīnlasāma datu apmaiņa; ielāde datu ezerā katru dienu.
limitations: Avots — likumi.lv konsolidētā teksta Word datne; konvertors tekstu nelabo (avotā salipušie vārdi paliek). Juridiski saistošs ir
oficiālajā izdevumā publicētais teksts. Vienības veids (kind) — apraksta birka, nav juridiska kvalifikācija.
servers:
- server: processgit
type: custom
format: xml
description: ProcessGit repozitorijs (Gitea API v1)
customProperties:
- property: url
value: https://processgit.org/Valsts-Pirmkods/Likums-as-Code
- property: ref
value: main
- property: path
value: data/lv-lik-*.xml
- property: schema
value: https://processgit.org/Valsts-Pirmkods/Likums-as-Code/src/branch/main/schemas/likumi-0.1.xsd
schema:
- name: Law
logicalType: object
physicalType: xml-element
physicalName: Law
description: ''
properties:
- name: id
logicalType: string
required: true
logicalTypeOptions:
pattern: lv-lik-[0-9]{4}-[0-9]{2}-[0-9]{2}(-[2-9])?
primaryKey: true
unique: true
- name: schemaVersion
logicalType: string
required: true
- name: EnactingFormula
logicalType: string
required: false
logicalTypeOptions:
pattern: '[\s\S]*\S[\s\S]*'
- name: InForceStatement
logicalType: string
required: false
logicalTypeOptions:
pattern: '[\s\S]*\S[\s\S]*'
- name: Adoption
logicalType: string
required: false
logicalTypeOptions:
pattern: '[\s\S]*\S[\s\S]*'
- name: Promulgation
logicalType: string
required: false
logicalTypeOptions:
pattern: '[\s\S]*\S[\s\S]*'
- name: Signatory
logicalType: array
required: false
logicalTypeOptions:
pattern: '[\s\S]*\S[\s\S]*'
items:
logicalType: string
- name: Signatory@role
logicalType: string
required: false
logicalTypeOptions:
pattern: '[\s\S]*\S[\s\S]*'
customProperties:
- property: lakehouseTable
value: cac_bronze.lik_law
- property: lakehouseTable
value: cac_bronze.lik_amendment
- property: lakehouseTable
value: cac_silver.law
- property: lakehouseTable
value: cac_silver.law_amendment
- name: Chapter
logicalType: object
physicalType: xml-element
physicalName: Chapter
description: ''
properties:
- name: id
logicalType: string
required: true
logicalTypeOptions:
pattern: lv-lik-[0-9]{4}-[0-9]{2}-[0-9]{2}(-[2-9])?\.(s[A-Z]|c[0-9]+(\.[0-9]+)*|art[0-9]+(s[0-9]+)?[a-z]?(\.d[0-9]+(s[0-9]+)?)?(\.p[0-9]+(s[0-9]+)?)*|tp(\.p[0-9]+(s[0-9]+)?)*|eu(\.[0-9]+)?|ann[0-9]+(s[0-9]+)?)
primaryKey: true
unique: true
- name: n
logicalType: string
required: false
logicalTypeOptions:
pattern: '[\s\S]*\S[\s\S]*'
- name: kind
logicalType: string
required: true
quality:
- type: library
rule: validValues
validValues:
- general
- substantive
- final
- none
- division
- name: Title
logicalType: string
required: false
logicalTypeOptions:
pattern: '[\s\S]*\S[\s\S]*'
- name: Note
logicalType: array
required: false
logicalTypeOptions:
pattern: '[\s\S]*\S[\s\S]*'
items:
logicalType: string
customProperties:
- property: lakehouseTable
value: cac_bronze.lik_chapter
- property: lakehouseTable
value: cac_silver.law_chapter
- name: Article
logicalType: object
physicalType: xml-element
physicalName: Article
description: ''
properties:
- name: id
logicalType: string
required: true
logicalTypeOptions:
pattern: lv-lik-[0-9]{4}-[0-9]{2}-[0-9]{2}(-[2-9])?\.(s[A-Z]|c[0-9]+(\.[0-9]+)*|art[0-9]+(s[0-9]+)?[a-z]?(\.d[0-9]+(s[0-9]+)?)?(\.p[0-9]+(s[0-9]+)?)*|tp(\.p[0-9]+(s[0-9]+)?)*|eu(\.[0-9]+)?|ann[0-9]+(s[0-9]+)?)
primaryKey: true
unique: true
- name: n
logicalType: string
required: true
logicalTypeOptions:
pattern: '[\s\S]*\S[\s\S]*'
- name: status
logicalType: string
required: false
quality:
- type: library
rule: validValues
validValues:
- in_force
- deleted
- pending
- name: Heading
logicalType: string
required: false
logicalTypeOptions:
pattern: '[\s\S]*\S[\s\S]*'
- name: Text
logicalType: string
required: true
logicalTypeOptions:
pattern: '[\s\S]*\S[\s\S]*'
- name: Note
logicalType: array
required: false
logicalTypeOptions:
pattern: '[\s\S]*\S[\s\S]*'
items:
logicalType: string
customProperties:
- property: lakehouseTable
value: cac_bronze.lik_unit
- property: lakehouseTable
value: cac_silver.law_unit
- name: Part
logicalType: object
physicalType: xml-element
physicalName: Part
description: ''
properties:
- name: id
logicalType: string
required: true
logicalTypeOptions:
pattern: lv-lik-[0-9]{4}-[0-9]{2}-[0-9]{2}(-[2-9])?\.(s[A-Z]|c[0-9]+(\.[0-9]+)*|art[0-9]+(s[0-9]+)?[a-z]?(\.d[0-9]+(s[0-9]+)?)?(\.p[0-9]+(s[0-9]+)?)*|tp(\.p[0-9]+(s[0-9]+)?)*|eu(\.[0-9]+)?|ann[0-9]+(s[0-9]+)?)
primaryKey: true
unique: true
- name: n
logicalType: string
required: true
logicalTypeOptions:
pattern: '[\s\S]*\S[\s\S]*'
- name: kind
logicalType: string
required: false
quality:
- type: library
rule: validValues
validValues:
- purpose
- scope
- definition
- lead
- item
- provision
- delegation
- in_force
- transitional
- deleted
- name: status
logicalType: string
required: false
quality:
- type: library
rule: validValues
validValues:
- in_force
- deleted
- pending
- name: Text
logicalType: string
required: true
logicalTypeOptions:
pattern: '[\s\S]*\S[\s\S]*'
- name: Note
logicalType: array
required: false
logicalTypeOptions:
pattern: '[\s\S]*\S[\s\S]*'
items:
logicalType: string
customProperties:
- property: lakehouseTable
value: cac_bronze.lik_unit
- property: lakehouseTable
value: cac_silver.law_unit
- name: Point
logicalType: object
physicalType: xml-element
physicalName: Point
description: ''
properties:
- name: id
logicalType: string
required: true
logicalTypeOptions:
pattern: lv-lik-[0-9]{4}-[0-9]{2}-[0-9]{2}(-[2-9])?\.(s[A-Z]|c[0-9]+(\.[0-9]+)*|art[0-9]+(s[0-9]+)?[a-z]?(\.d[0-9]+(s[0-9]+)?)?(\.p[0-9]+(s[0-9]+)?)*|tp(\.p[0-9]+(s[0-9]+)?)*|eu(\.[0-9]+)?|ann[0-9]+(s[0-9]+)?)
primaryKey: true
unique: true
- name: n
logicalType: string
required: true
logicalTypeOptions:
pattern: '[\s\S]*\S[\s\S]*'
- name: kind
logicalType: string
required: false
quality:
- type: library
rule: validValues
validValues:
- purpose
- scope
- definition
- lead
- item
- provision
- delegation
- in_force
- transitional
- deleted
- name: status
logicalType: string
required: false
quality:
- type: library
rule: validValues
validValues:
- in_force
- deleted
- pending
- name: Text
logicalType: string
required: true
logicalTypeOptions:
pattern: '[\s\S]*\S[\s\S]*'
- name: Note
logicalType: array
required: false
logicalTypeOptions:
pattern: '[\s\S]*\S[\s\S]*'
items:
logicalType: string
customProperties:
- property: lakehouseTable
value: cac_bronze.lik_unit
- property: lakehouseTable
value: cac_silver.law_unit
- name: Item
logicalType: object
physicalType: xml-element
physicalName: Item
description: ''
properties:
- name: id
logicalType: string
required: true
logicalTypeOptions:
pattern: lv-lik-[0-9]{4}-[0-9]{2}-[0-9]{2}(-[2-9])?\.(s[A-Z]|c[0-9]+(\.[0-9]+)*|art[0-9]+(s[0-9]+)?[a-z]?(\.d[0-9]+(s[0-9]+)?)?(\.p[0-9]+(s[0-9]+)?)*|tp(\.p[0-9]+(s[0-9]+)?)*|eu(\.[0-9]+)?|ann[0-9]+(s[0-9]+)?)
primaryKey: true
unique: true
- name: celex
logicalType: string
required: false
logicalTypeOptions:
pattern: '[\s\S]*\S[\s\S]*'
- name: Text
logicalType: string
required: true
logicalTypeOptions:
pattern: '[\s\S]*\S[\s\S]*'
customProperties:
- property: lakehouseTable
value: cac_bronze.lik_eu_ref
- property: lakehouseTable
value: cac_silver.law_eu_ref
- name: Annex
logicalType: object
physicalType: xml-element
physicalName: Annex
description: ''
properties:
- name: id
logicalType: string
required: true
logicalTypeOptions:
pattern: lv-lik-[0-9]{4}-[0-9]{2}-[0-9]{2}(-[2-9])?\.(s[A-Z]|c[0-9]+(\.[0-9]+)*|art[0-9]+(s[0-9]+)?[a-z]?(\.d[0-9]+(s[0-9]+)?)?(\.p[0-9]+(s[0-9]+)?)*|tp(\.p[0-9]+(s[0-9]+)?)*|eu(\.[0-9]+)?|ann[0-9]+(s[0-9]+)?)
primaryKey: true
unique: true
- name: n
logicalType: string
required: false
logicalTypeOptions:
pattern: '[\s\S]*\S[\s\S]*'
- name: Heading
logicalType: string
required: true
logicalTypeOptions:
pattern: '[\s\S]*\S[\s\S]*'
- name: Title
logicalType: string
required: false
logicalTypeOptions:
pattern: '[\s\S]*\S[\s\S]*'
- name: Line
logicalType: array
required: false
logicalTypeOptions:
pattern: '[\s\S]*\S[\s\S]*'
items:
logicalType: string
customProperties:
- property: lakehouseTable
value: cac_bronze.lik_annex
quality:
- name: xsd_valid
type: custom
engine: xsd
implementation: schemas/likumi-0.1.xsd
description: Datne atbilst XSD shēmai; neatbilstoša datne tiek reģistrēta kā kļūda
dimension: conformity
- name: filename_is_id
type: custom
engine: cac-lakehouse
implementation: Path(path).stem == root/@id
description: Datnes nosaukums = dokumenta identifikators
dimension: consistency
- name: verification_matches
type: custom
engine: cac-lakehouse
implementation: app.cac_processgit:verification_matches
description: Pārbaudes atskaite (verification/<id>.verify.json) ir par šo likumu, un vienību skaits tajā sakrīt ar datni
dimension: consistency
- name: text_complete
type: custom
engine: cac-lakehouse
implementation: app.cac_processgit:text_complete
description: Datnē ir vismaz 99 % no avota teksta zīmēm (bez atstarpēm)
dimension: completeness
- name: conversion_decisions
type: custom
engine: cac-lakehouse
implementation: app.cac_processgit:conversion_decisions
description: Vietas, kur konvertors pieņēma lēmumu — jāpārbauda cilvēkam
dimension: accuracy
- name: ids_in_law
type: custom
engine: cac-lakehouse
implementation: app.cac_processgit:ids_in_law
description: Nodaļu, vienību un ES atsauču identifikatori sākas ar likuma identifikatoru
dimension: conformity
- name: numbering_continuous
type: custom
engine: cac-lakehouse
implementation: app.cac_processgit:numbering_continuous
description: Pantu numerācija bez iztrūkumiem
dimension: completeness
- name: amendments_ordered
type: custom
engine: cac-lakehouse
implementation: app.cac_processgit:amendments_ordered
description: Grozījumi hronoloģiski, un konsolidētā redakcija nav vecāka par pēdējo grozījumu
dimension: consistency
- name: celex_format
type: custom
engine: cac-lakehouse
implementation: app.cac_processgit:celex_format
description: Katrai ES atsaucei ir CELEX numurs pareizā formā
dimension: conformity
slaProperties:
- property: frequency
value: 1
unit: d
element: pull ingest (cron 03:30 UTC)
- property: retention
value: visas versijas (git vēsture)
team:
- role: owner
name: Saeima (konsolidētā redakcija likumi.lv); datu kopu sagatavo PPPA
- role: data steward
name: PPP Asociācija (PPPA)
support:
- channel: issues
url: https://processgit.org/Valsts-Pirmkods/Likums-as-Code/issues
customProperties:
- property: sourceId
value: B20
- property: namespace
value: urn:pppa:vpk:likumi:0.1
- property: rootElement
value: Law
- property: identifiers
value: likums lv-lik-GGGG-MM-DD[-N] (pieņemšanas datums); nodaļa <id>.cN; pants <id>.artN (28¹ → art28s1); daļa <pants>.dN; punkts <…>.pN; pārejas
noteikumi <id>.tp.pN; ES atsauce <id>.eu.N; pielikums <id>.annN