You've already forked Valdibas-Deklaracija-as-Code
Import UAPF package
Autoritatīvās datnes mapē data/; datnes nosaukums = identifikators
data/lv-dekl-2026-05-28.xml — A. Kulberga valdības deklarācija; data/lv-mk-2026-05-28.rp.xml — valdības rīcības plāns (MK rīkojums Nr. 449); data/organizacijas.xml, data/valdibas.xml — reģistri. Pārbaudītājs pārbauda, ka deklarācijas un rīcības plāna datnes nosaukums atbilst saknes elementa identifikatoram. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016679RwmHsuTFfxt26wP6rk
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
|
||||
## 0.2 — 2026-10-09
|
||||
|
||||
- Autoritatīvās datnes mapē `data/` (iepriekš `examples/`); datnes nosaukums = objekta identifikators (`lv-dekl-2026-05-28.xml`, `lv-mk-2026-05-28.rp.xml`); pārbaudītājs to pārbauda.
|
||||
|
||||
- Viena vārdtelpa visai saimei: `urn:pppa:cac:valdiba:0.2`.
|
||||
- Globāli unikāli identifikatori visiem elementiem (`docs/IDENTIFIKATORI.md`); valdības ID `lv-mk-…`, deklarācijas ID `lv-dekl-…`.
|
||||
- Jauns: valdību un organizāciju reģistrs (`GovernmentRegistry`).
|
||||
@@ -20,7 +22,7 @@
|
||||
- Redaktorā cilnes „Valdības deklarācija” un „Rīcības plāns”: deklarācija tiek atvērta lasīšanai, rediģēšanu ieslēdz slēdzis „Rediģēt”; rīcības plāna skatā pie katra uzdevuma labajā pusē — tā pasākumi (pasākums, rezultāts, atbildīgie, termiņš, prioritāte, finansējums) un kārtības ruļļa 18. un 20. punkta pārbaude.
|
||||
- Redaktors atveras ar Andra Kulberga vadītā Ministru kabineta deklarāciju (lasīšanas režīmā). „Jaunas deklarācijas projekts” atveras kā tukšs projekts rediģēšanas režīmā; poga „Importēt esošo” pārņem projektā Andra Kulberga deklarāciju. Citu deklarāciju importa saraksts izņemts.
|
||||
- Redaktorā cilne „Organizācijas”: reģistra nepieciešamība, CaC ID uzbūve, meklējams reģistrs ar pasākumu skaitu katrai institūcijai, plānā minētās institūcijas, kuru reģistrā nav, shēma. Rīcības plāna skatā pie atbildīgajām institūcijām — CaC ID.
|
||||
- Jauns: organizāciju reģistrs (institūcijas identifikators — CaC ID) (`organizaciju-registrs-0.2.xsd`, `examples/organizacijas.xml`), uzturētājs — Valsts kanceleja. Identifikators `SS-IIII` — resors un institūcija resorā, resora vadošā institūcija `SS-0000` (piemēram `20-0000` — Klimata un enerģētikas ministrija); identifikatorus piešķir reģistra uzturētājs, Valsts kases kodi — sasaiste pa gadiem (`BudgetCode`); reģistrācijas numurs — `regNo`; rezervētie resori 00, 90–93; pārceļot institūciju uz citu resoru — jauns identifikators un `successor`; resors, iestādes kods, augstākā iestāde, saīsinājumi, iepriekšējais nosaukums. Izveidots no VDVC reģistra (`tools/organizacijas_no_vdvc.py`); atgūtas 10 institūcijas no sapludinātām avota rindām, pārbaudot pret Valsts kases „Valsts budžeta iestāžu sarakstu” (01.09.2023).
|
||||
- Jauns: organizāciju reģistrs (institūcijas identifikators — CaC ID) (`organizaciju-registrs-0.2.xsd`, `data/organizacijas.xml`), uzturētājs — Valsts kanceleja. Identifikators `SS-IIII` — resors un institūcija resorā, resora vadošā institūcija `SS-0000` (piemēram `20-0000` — Klimata un enerģētikas ministrija); identifikatorus piešķir reģistra uzturētājs, Valsts kases kodi — sasaiste pa gadiem (`BudgetCode`); reģistrācijas numurs — `regNo`; rezervētie resori 00, 90–93; pārceļot institūciju uz citu resoru — jauns identifikators un `successor`; resors, iestādes kods, augstākā iestāde, saīsinājumi, iepriekšējais nosaukums. Izveidots no VDVC reģistra (`tools/organizacijas_no_vdvc.py`); atgūtas 10 institūcijas no sapludinātām avota rindām, pārbaudot pret Valsts kases „Valsts budžeta iestāžu sarakstu” (01.09.2023).
|
||||
- Rīcības plānā atbildīgās un līdzatbildīgās institūcijas norāda ar organizāciju reģistra identifikatoru (`orgs`), nevis kodu; organizācijas izņemtas no valdību reģistra.
|
||||
- Rīcības plāna skatā katram pasākumam identifikators (`rp.u001.p3`) un kartīte ar metadatiem: deklarācijas uzdevums, pasākuma vieta uzdevumā, sadaļa, rīkojums, finansējums, prioritāte, atbildīgie, termiņš. Uzdevuma kartītē — tā pasākumu identifikatori.
|
||||
- Rīcības plāns — otrā datu kopa: shēma pārdēvēta un pārstrādāta (`valdibas-deklaracijas-ricibas-plans-0.2.xsd`, saknes elements `GovernmentActionPlan`). Plāna ailes 1–3 (sadaļa, uzdevuma numurs, uzdevuma teksts) netiek kopētas — pasākums norāda deklarācijas uzdevuma identifikatoru. Pasākumam: teksts, darbības rezultāts, atbildīgās un līdzatbildīgās institūcijas, termiņš (burtiski) un pazīmes — finansējums (rīkojuma 1. vai 2. pielikums) un prioritāte.
|
||||
|
||||
51
README.md
51
README.md
@@ -27,36 +27,51 @@ Deklarācijas formātu neviens normatīvais akts nenosaka. Kārtības rullis par
|
||||
|
||||
## Saturs
|
||||
|
||||
### Dati (`data/`) — autoritatīvās datnes
|
||||
|
||||
Datnes nosaukums ir objekta identifikators.
|
||||
|
||||
| Datne | Saturs |
|
||||
|---|---|
|
||||
| `data/lv-dekl-2026-05-28.xml` | Deklarācija par Andra Kulberga vadītā Ministru kabineta iecerēto darbību (28.05.2026): viss teksts, 11 sadaļas, 52 uzdevumi |
|
||||
| `data/lv-mk-2026-05-28.rp.xml` | Valdības rīcības plāns tās īstenošanai (MK rīkojums Nr. 449, 27.07.2026): 185 pasākumi 52 uzdevumiem, teksts burtiski no likumi.lv; atbildīgās institūcijas ar CaC ID |
|
||||
| `data/organizacijas.xml` | Valsts institūciju reģistrs (CaC ID): 165 valsts budžeta iestādes un 16 citas institūcijas un grupas; uzturētājs — Valsts kanceleja |
|
||||
| `data/valdibas.xml` | Valdību reģistrs: piecas valdības (2016–2026) |
|
||||
|
||||
### Shēmas (`schemas/`)
|
||||
|
||||
| Datne | Saturs |
|
||||
|---|---|
|
||||
| `schemas/valdibas-deklaracija-0.2.xsd` | Deklarācija |
|
||||
| `schemas/valdibas-deklaracijas-ricibas-plans-0.2.xsd` | Valdības deklarācijas rīcības plāns: pasākumi, rezultāti, atbildīgie, termiņi, izpildes gaita; katrs pasākums norāda deklarācijas uzdevumu |
|
||||
| `schemas/organizaciju-registrs-0.2.xsd` | Organizāciju reģistrs: CaC ID (`SS-IIII`; ministrija — `SS-0000`), reģistrācijas numurs, nosaukums, saīsinājumi, augstākā institūcija |
|
||||
| `schemas/cac-valdiba-kopejie-0.2.xsd` | Kopīgie tipi (identifikatori, datumi) un valdību reģistrs |
|
||||
|
||||
### Rīki, dokumentācija, avoti
|
||||
|
||||
| Mape / datne | Saturs |
|
||||
|---|---|
|
||||
| `schemas/cac-valdiba-kopejie-0.2.xsd` | Kopīgie tipi (identifikatori, organizācijas, termiņi) un valdību reģistrs |
|
||||
| `schemas/valdibas-deklaracija-0.2.xsd` | Deklarācijas teksts |
|
||||
| `schemas/valdibas-deklaracijas-ricibas-plans-0.2.xsd` | Valdības deklarācijas rīcības plāns: pasākumi, rezultāti, atbildīgie, termiņi, izpildes gaita; katrs pasākums norāda deklarācijas uzdevumu |
|
||||
| `docs/IDENTIFIKATORI.md` | Identifikatoru veidošanas noteikumi |
|
||||
| `examples/valdibas.xml` | Piecas valdības (2016–2026) |
|
||||
| `schemas/organizaciju-registrs-0.2.xsd` | Organizāciju reģistrs: institūcijas identifikators (`SS-IIII`: resors + institūcija, ministrija — `SS-0000`), reģistrācijas numurs, nosaukums, saīsinājumi, resors, augstākā iestāde; uztur Valsts kanceleja |
|
||||
| `examples/organizacijas.xml` | 165 valsts budžeta iestādes (VDVC reģistrs, Valsts kases saraksts 01.09.2023) un 16 citas institūcijas un grupas no MK rīkojuma Nr. 449 (resori 00, 90–93) |
|
||||
| `tools/organizacijas_no_vdvc.py` | Izveido organizāciju reģistru no VDVC reģistra (`source/organizacijas/`) |
|
||||
| `examples/lv-dekl-2026-05-28.xml` | A. Kulberga valdības deklarācija, viss teksts, 11 sadaļas, 52 uzdevumi; identifikatori tikai sadaļām un uzdevumiem |
|
||||
| `examples/lv-mk-2026-05-28.rp.xml` | Valdības rīcības plāns (MK rīkojums Nr. 449, 27.07.2026): 185 pasākumi 52 uzdevumiem, teksts burtiski no likumi.lv |
|
||||
| `source/ricibas-plans/` | Rīkojuma Nr. 449 avoti: likumi.lv lapa (.mhtml) un PDF |
|
||||
| `tools/ricibas_plans_no_likumi.py` | Pārveido rīcības plānu no likumi.lv lapas uz XML un salīdzina plāna ailes 1–3 ar deklarāciju |
|
||||
| `editor/Valdibas_deklaracijas_datukopa.html` | Redaktors vienā HTML datnē: valdības deklarācija (lasīšana, rediģēšana), rīcības plāns — pasākumi pie katra uzdevuma ar CaC ID, institūciju reģistrs („Organizācijas”); projekts, shēmas, apraksts („Par”); eksportē XML v0.2 un Word |
|
||||
| `source/pdf/` | Avota PDF |
|
||||
| `source/v0.1/` | Iepriekšējā (v0.1) shēma un dati, no kuriem veidoti piemēri |
|
||||
| `tools/ids.py` | Identifikatoru veidošana |
|
||||
| `tools/validate.py` | Pārbaude: XSD, identifikatori, saites starp datnēm, kārtības ruļļa 18. un 20. punkts, termiņi |
|
||||
| `tools/validate.py` | Pārbaude: XSD, datņu nosaukumi, identifikatori, saites starp datnēm, kārtības ruļļa 18. un 20. punkts, termiņi |
|
||||
| `tools/test_validate.py` | Negatīvie testi pārbaudītājam |
|
||||
| `tools/ricibas_plans_no_likumi.py` | Pārveido rīcības plānu no likumi.lv lapas uz XML un salīdzina plāna ailes 1–3 ar deklarāciju |
|
||||
| `tools/organizacijas_no_vdvc.py` | Izveido organizāciju reģistru no VDVC reģistra un Valsts kases saraksta |
|
||||
| `tools/ids.py` | Identifikatoru veidošana |
|
||||
| `editor/Valdibas_deklaracijas_datukopa.html` | Redaktors vienā HTML datnē: valdības deklarācija (lasīšana, rediģēšana), rīcības plāns ar CaC ID, institūciju reģistrs, jaunas deklarācijas projekts, shēmas, apraksts; eksportē XML un Word |
|
||||
| `source/pdf/` | Deklarācijas avota PDF |
|
||||
| `source/ricibas-plans/` | MK rīkojuma Nr. 449 avoti: likumi.lv lapa (.mhtml) un PDF |
|
||||
| `source/organizacijas/` | VDVC reģistrs un Valsts kases „Valsts budžeta iestāžu saraksts” (01.09.2023) |
|
||||
| `source/v0.1/` | Iepriekšējā (v0.1) shēma un dati |
|
||||
|
||||
## Pārbaude
|
||||
|
||||
```
|
||||
pip install lxml
|
||||
python3 tools/validate.py # examples/
|
||||
python3 tools/validate.py # data/
|
||||
python3 tools/test_validate.py
|
||||
```
|
||||
|
||||
Pārbaudītājs ziņo `E` (kļūda), `W` (brīdinājums), `I` (informācija). Pašreizējie piemēri: 0 kļūdas, 1 brīdinājums — 10 deklarācijas uzdevumiem rīcības plānā ir vairāk nekā pieci pasākumi (kārtības ruļļa 18. punkts).
|
||||
Pārbaudītājs ziņo `E` (kļūda), `W` (brīdinājums), `I` (informācija). Pašreizējie dati: 0 kļūdas, 1 brīdinājums — 10 deklarācijas uzdevumiem rīcības plānā ir vairāk nekā pieci pasākumi (kārtības ruļļa 18. punkts).
|
||||
|
||||
## Ko shēma nodrošina
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Valdību reģistrs (datu noliktavas dimensijas). Identifikatori: docs/IDENTIFIKATORI.md -->
|
||||
<!-- Valdību reģistrs. Identifikatori: docs/IDENTIFIKATORI.md -->
|
||||
<GovernmentRegistry xmlns="urn:pppa:cac:valdiba:0.2" schemaVersion="0.2" dataVersion="1" date="2026-10-09">
|
||||
<Government id="lv-mk-2016-02-11">
|
||||
<Label>Māra Kučinska vadītais Ministru kabinets</Label>
|
||||
@@ -704,7 +704,7 @@ body.m-org .canvas{max-width:980px}
|
||||
</xs:schema>
|
||||
</script>
|
||||
<script type="text/xml" id="registrySrc"><?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Valdību reģistrs (datu noliktavas dimensijas). Identifikatori: docs/IDENTIFIKATORI.md -->
|
||||
<!-- Valdību reģistrs. Identifikatori: docs/IDENTIFIKATORI.md -->
|
||||
<GovernmentRegistry xmlns="urn:pppa:cac:valdiba:0.2" schemaVersion="0.2" dataVersion="1" date="2026-10-09">
|
||||
<Government id="lv-mk-2016-02-11">
|
||||
<Label>Māra Kučinska vadītais Ministru kabinets</Label>
|
||||
@@ -4393,7 +4393,7 @@ async function schemaZip(){
|
||||
const z = new JSZip();
|
||||
z.file("schemas/cac-valdiba-kopejie-0.2.xsd", XSD_COMMON); z.file("schemas/valdibas-deklaracija-0.2.xsd", XSD_DECL);
|
||||
z.file("schemas/valdibas-deklaracijas-ricibas-plans-0.2.xsd", XSD_PLAN);
|
||||
z.file("docs/IDENTIFIKATORI.md", IDS_MD); z.file("examples/valdibas.xml", REGISTRY); z.file("schemas/organizaciju-registrs-0.2.xsd", XSD_ORG); z.file("examples/organizacijas.xml", ORG_SRC);
|
||||
z.file("docs/IDENTIFIKATORI.md", IDS_MD); z.file("data/valdibas.xml", REGISTRY); z.file("schemas/organizaciju-registrs-0.2.xsd", XSD_ORG); z.file("data/organizacijas.xml", ORG_SRC);
|
||||
downloadBlob("valdibas-deklaracija-shemas-0.2.zip", await z.generateAsync({type:"blob"})); toast("Shēmas lejupielādētas");
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"""Izveido organizāciju reģistru (organizaciju-registrs-0.2.xsd) no VDVC reģistra (vdvc-register.xml).
|
||||
|
||||
python3 tools/organizacijas_no_vdvc.py source/organizacijas/vdvc-register.xml examples/organizacijas.xml
|
||||
python3 tools/organizacijas_no_vdvc.py source/organizacijas/vdvc-register.xml data/organizacijas.xml
|
||||
|
||||
Avots — Valsts kases „Valsts budžeta iestāžu saraksts” (01.09.2023; iestades_PAS_VBI_01092023.pdf): iestādes kods (ePlāni un eTāmes),
|
||||
nodokļu maksātāja reģistrācijas numurs, nosaukums, ministrijas kods (budžeta resors saskaņā ar gadskārtējo valsts budžeta likumu).
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"""Pārveido Valdības rīcības plānu no likumi.lv lapas (saglabāta kā .mhtml vai .html) uz XML (valdibas-deklaracijas-ricibas-plans-0.2.xsd).
|
||||
|
||||
python3 tools/ricibas_plans_no_likumi.py <lapa.mhtml> <deklaracija.xml> <organizacijas.xml> <izvade.xml>
|
||||
python3 tools/ricibas_plans_no_likumi.py source/ricibas-plans/likumi_lv_369925.mhtml data/lv-dekl-2026-05-28.xml data/organizacijas.xml data/lv-mk-2026-05-28.rp.xml
|
||||
|
||||
likumi.lv lapā ir četras tabulas: 0 — viss plāns; 1 — rīkojuma 1. pielikums (finansējums rasts);
|
||||
2 — 2. pielikums (nepieciešams papildu finansējums); 3 — prioritārie pasākumi.
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
import os, re, shutil, subprocess, sys, tempfile
|
||||
|
||||
ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
EX = os.path.join(ROOT, "examples")
|
||||
EX = os.path.join(ROOT, "data")
|
||||
|
||||
CASES = [
|
||||
("pasākums neesošam uzdevumam", "lv-mk-2026-05-28.rp.xml", 'id="lv-mk-2026-05-28.rp.u014.p1" number="14.1." task="lv-dekl-2026-05-28.u014"', 'id="lv-mk-2026-05-28.rp.u099.p1" number="99.1." task="lv-dekl-2026-05-28.u099"', "uzdevums 99 deklarācijā nav"),
|
||||
@@ -27,7 +27,7 @@ def run(folder):
|
||||
|
||||
def main():
|
||||
base = run(EX)
|
||||
ok = base.returncode == 0; print(("PASS" if ok else "FAIL") + " piemēri ir derīgi")
|
||||
ok = base.returncode == 0; print(("PASS" if ok else "FAIL") + " dati ir derīgi")
|
||||
for name, fname, old, new, expect in CASES:
|
||||
d = tempfile.mkdtemp()
|
||||
for f in os.listdir(EX): shutil.copy(os.path.join(EX, f), d)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"""Pārbaudītājs: XSD + identifikatoru noteikumi + saites starp datnēm + kārtības ruļļa noteikumi.
|
||||
|
||||
python3 tools/validate.py [mape ar XML datnēm] (noklusējums: examples/)
|
||||
python3 tools/validate.py [mape ar XML datnēm] (noklusējums: data/)
|
||||
|
||||
Ziņo: E = kļūda (izejas kods 1), W = brīdinājums, I = informācija.
|
||||
"""
|
||||
@@ -37,6 +37,7 @@ def load(folder):
|
||||
sc = etree.XMLSchema(etree.parse(os.path.join(ROOT, "schemas", SCHEMAS[name])))
|
||||
if not sc.validate(t):
|
||||
for e in sc.error_log: rep("E", f, f"XSD {e.line}: {e.message}")
|
||||
if name in ("GovernmentDeclaration", "GovernmentActionPlan") and f != root.get("id") + ".xml": rep("E", f, f"datnes nosaukumam jābūt {root.get('id')}.xml (identifikators)")
|
||||
docs[name].append((f, root))
|
||||
return docs
|
||||
|
||||
@@ -183,4 +184,4 @@ def main(folder):
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main(sys.argv[1] if len(sys.argv) > 1 else os.path.join(ROOT, "examples")))
|
||||
sys.exit(main(sys.argv[1] if len(sys.argv) > 1 else os.path.join(ROOT, "data")))
|
||||
|
||||
Reference in New Issue
Block a user