1
0

KISC arch init

This commit is contained in:
2026-10-11 14:36:51 +03:00
commit 8fb6c52e44
89 changed files with 10931 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
# Server
MCP_PORT=8787
MCP_HOST=0.0.0.0
# IMPORTANT: point this to the folder that contains registers/ and views/
# In this repo that's likely the domain folder, e.g. /app/domains/kultura-valoda
REPO_ROOT=/app/domains/kultura-valoda
# Public URL of the server (used in OAuth discovery metadata)
SERVER_PUBLIC_URL=https://llm.kis.gov.lv:8787
# Auth switch
AUTH_REQUIRED=true
# Auth mode: "both" (default) | "jwks" | "static"
# both — accepts either a valid static token OR a valid OAuth JWT
# jwks — only OAuth/OIDC JWT tokens (validated via JWKS)
# static — only the fixed bearer token
AUTH_MODE=both
# ── Static bearer token ──────────────────────────────────────────────
STATIC_BEARER_TOKEN=change-me
# ── Built-in OAuth (Authorization Code + PKCE & client_credentials) ──
# Login credentials for the /authorize page (browser-based flow)
OAUTH_LOGIN_USERNAME=admin
OAUTH_LOGIN_PASSWORD=change-me
# Pre-registered machine-to-machine client (client_credentials grant)
OAUTH_CLIENT_ID=mcp-service-account
OAUTH_CLIENT_SECRET=change-me-to-a-strong-secret
# ── External JWKS / OIDC settings (optional, for external IDP) ──────
# Leave blank to use the built-in OAuth server only.
# OAUTH_JWKS_URL=https://YOUR-IDP/.well-known/jwks.json
# OAUTH_ISSUER=https://YOUR-IDP/
# OAUTH_AUDIENCE=YOUR_API_AUDIENCE

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1,30 @@
name: QA
on:
push:
pull_request:
jobs:
qa:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install MCP deps
working-directory: mcp
run: npm ci
- name: Generate doc
run: |
cd mcp
REPO_ROOT="$GITHUB_WORKSPACE" DOMAIN_DIR="domains/kultura-valoda" OUT_FILE="KISC-merkarhitektura-apraksts.md" npm run gen:doc
- name: Non-empty required registers
run: tools/qa/check_nonempty_registers.sh
- name: Required headings exist in regenerated doc
run: tools/qa/check_generated_doc_headings.sh KISC-merkarhitektura-apraksts.md
- name: Stakeholder presence sanity check
run: tools/qa/check_stakeholder_count.sh KISC-merkarhitektura-apraksts.md

View File

@@ -0,0 +1,6 @@
node_modules/
dist/
.env
.DS_Store
*.log
site/

View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2025
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -0,0 +1,560 @@
# MCP serveris — Kultūras un valodu tehnoloģiju arhitektūras interfeiss
## Pārskats
Šis dokuments apraksta KISC MCP (Model Context Protocol) serveri, kas nodrošina AI aģentiem un automatizācijas rīkiem strukturētu piekļuvi Latvijas kultūras un valodu tehnoloģiju jomas mērķarhitektūras datiem.
**Servera adrese:** `https://llm.kis.gov.lv/mcp`
**Versija:** 0.3.0
**Operators:** Kultūras informācijas sistēmu centrs (KISC)
**Identitāte:** `did:web:llm.kis.gov.lv`
MCP serveris ir **tikai-lasīšanas interfeiss** — tas nemaina SSOT saturu, bet gan ļauj to meklēt, analizēt un ģenerēt dokumentus no tā.
---
## 1) Kas ir šī arhitektūra un ko MCP serveris dara
Kultūras un valodu tehnoloģiju jomas mērķarhitektūra apraksta Latvijas valsts stratēģiju kultūras mantojuma digitalizācijai un latviešu valodas tehnoloģiju attīstībai. Tā ietver divus apakšdomēnus:
- **Kultūras apakšjoma** (`kultura`) — muzeju, bibliotēku, arhīvu un kultūras pieminekļu digitalizācija, datu pārvaldība, publiskā pieejamība
- **Valodu tehnoloģiju apakšjoma** (`valoda`) — Lielais latviešu valodas modelis (LVM-LV), mašīntulkošana, runas sintēze/atpazīšana, semantiskā meklēšana
Arhitektūra satur šādus elementu tipus:
| Entītiju tips | Piemēri | Skaits |
|---|---|---|
| **Mērķi** (`goal`) | M1 "Kultūras mantojuma saglabāšana", M4 "Latviešu valoda digitālajā laikmetā" | 6 |
| **Organizācijas** (`org`) | KISC, LNB, LU MII, Kultūras ministrija | ~40 |
| **Funkcijas** (`func`) | Mantojuma digitalizācija, valodu platformas uzturēšana | 6 |
| **Pakalpojumi** (`svc`) | Mašīntulkošana, runas sintēze, DOM, statistikas portāls | 30 |
| **Informācijas resursi** (`ir`) | Valodu korpusi, muzeja dati, terminoloģija | 23 |
| **Sistēmas** (`sys`) | LVM-LV, VBK, valodu platformas, DOM | 32 |
| **Ceļa kartes pasākumi** (`rm`) | Modernizācijas iniciatīvas ar laika grafiku | ~10 |
| **Riski** (`risk`) | Datu kvalitāte, kiberdrošība, AI Act atbilstība | ~8 |
| **Dokumenti** (`doc`) | GDPR, AI Act, VDAR, nozares regulējums | ~15 |
| **Principi** (`principle`) | Arhitektūras pamatprincipi | 4 |
---
## 2) MCP rīki — ko AI aģents saņem
Kad AI aģents (piemēram, Claude) pieslēdzas MCP serverim, tam kļūst pieejami **9 rīki**. Šajā sadaļā aprakstīts katrs rīks — tā nolūks, parametri un kas tiek atgriezts.
### 2.1 `identify` — servera identitātes verificēšana
**Nolūks:** Atgriež informāciju par servera operatoru, identitāti un uzticamības pierādījumiem. Ļauj AI aģentam pārliecināties, ka serveris pieder KISC un ir verificēts.
**Parametri:** nav obligātu parametru.
**Atgriež:**
- Servera nosaukums, versija, operators (KISC)
- DID identitāte: `did:web:llm.kis.gov.lv`
- MCPF (MCP Trust Framework) atbilstības informācija
- VeriTrust izdotas verifikācijas akreditācijas URL
- JWKS, DID dokumenta, MCP manifesta un uzticamības reģistra URL
**Kad lietot:** Pirms uzticēšanās servera datiem — lai pārliecinātos, ka datu avots ir leģitīms.
---
### 2.2 `describe_model` — arhitektūras metamodelis
**Nolūks:** Atgriež pilnu arhitektūras datu modeļa aprakstu — kādi entītiju tipi pastāv, kādi atribūti katram tipam, kādi attiecību tipi, kādi apakšdomēni un skati.
**Parametri:** nav.
**Atgriež:**
- 11 entītiju tipu saraksts ar to ID shēmām un atribūtiem
- 16 attiecību tipu saraksts (has_goal, depends_on, owns, u.c.)
- 2 apakšdomēni (kultura, valoda)
- 6 dokumenta skatu saraksts
**Kad lietot:** Kā pirmo soli — lai AI aģents saprastu, kāda veida dati ir pieejami un kā tie ir strukturēti. Šis rīks ir "karte" visiem pārējiem rīkiem.
**Piemērs — ko AI aģents uzzina:**
> "Šajā arhitektūrā ir 6 stratēģiskie mērķi ar ID formātā `goal.m1`–`goal.m6`. Sistēmas ir ar ID `sys.kultura.01` vai `sys.valoda.01`. Attiecības ietver `has_system`, `depends_on`, `owns`. Ir 2 apakšdomēni: kultūra un valoda."
---
### 2.3 `search` — meklēšana pēc atslēgvārdiem
**Nolūks:** Meklēt jebkādu arhitektūras entītiju vai dokumenta fragmentu pēc atslēgvārdiem. Atbalsta gan latviešu, gan angļu valodas vaicājumus.
**Parametri:**
- `query` (obligāts) — meklēšanas frāze, piemēram, "valodu tehnoloģijas", "KISC", "digitālais mantojums", "AI risks"
- `kind` (neobligāts) — filtrēt pēc tipa: goal, org, sys, svc, ir, func, principle u.c.
- `subdomain` (neobligāts) — filtrēt pēc apakšdomēna: "kultura" vai "valoda"
- `limit` (neobligāts) — rezultātu skaits (noklusējums 25)
**Atgriež:** Sakārtots saraksts ar atrastajām entītijām, katrai norādot ID, piemērotības novērtējumu (score), tipu un pilnus datus.
**Kad lietot:** Kad zināms aptuvens jautājums, bet nav precīzs entītijas ID.
**Piemēri:**
```
search(query="mašīntulkošana") → atrod svc.valoda.04, sys.valoda.03
search(query="LNB", kind="org") → atrod org.lnb
search(query="risks", kind="risk") → atrod visus riskus
search(query="korpuss", subdomain="valoda") → atrod ir.valoda.01, ir.valoda.02
```
---
### 2.4 `get_entity` — konkrētas entītijas izgūšana
**Nolūks:** Atgriež pilnu informāciju par vienu konkrētu entītiju pēc tās ID.
**Parametri:**
- `id` (obligāts) — entītijas ID, piemēram: `goal.m4`, `org.kisc`, `sys.valoda.02`, `risk.001`
**Atgriež:** Visu entītijas informāciju — nosaukums, apraksts, statuss, izmaiņu apraksts, VIRSIS ID atsauces un avota faila ceļš.
**Kad lietot:** Kad precīzi zināms, kuru entītiju vajag apskatīt.
**Piemēri:**
```
get_entity(id="goal.m4") → "Latviešu valoda digitālajā laikmetā" — pilns apraksts
get_entity(id="sys.valoda.02") → "Lielais latviešu valodas modelis (LVM-LV)" — statuss, resursi
get_entity(id="org.kisc") → KISC organizācijas pilna informācija
```
---
### 2.5 `list_entities` — entītiju saraksts pēc tipa
**Nolūks:** Atgriež visu entītiju ID sarakstu, iespējams filtrētu pēc tipa un/vai apakšdomēna. Ļauj ātri uzzināt, kas pastāv.
**Parametri:**
- `type` (neobligāts) — entītiju tipa filtrs: "goal", "org", "sys", "svc", "ir", "func", "principle", "rm", "risk", "doc", "int"
- `subdomain` (neobligāts) — "kultura" vai "valoda"
**Atgriež:** ID saraksts ar katras entītijas pamata informāciju (nosaukums, tips).
**Kad lietot:** Kad vajag pārskatu par visām noteikta tipa entītijām.
**Piemēri:**
```
list_entities(type="goal") → 6 mērķi (goal.m1–goal.m6)
list_entities(type="sys", subdomain="valoda") → 11 valodu tehnoloģiju sistēmas
list_entities(type="risk") → visi identificētie riski
list_entities() → pilns visu entītiju saraksts
```
---
### 2.6 `list_relations` — attiecību meklēšana
**Nolūks:** Atrast visas attiecības (šķautnes), kas saistītas ar konkrētu entītiju — ienākošās, izejošās vai abas.
**Parametri:**
- `id` (obligāts) — entītijas ID, piemēram: `domain.kultura-valoda`, `goal.m4`
- `direction` (neobligāts) — "in" (ienākošās), "out" (izejošās), "both" (abas, noklusējums)
**Atgriež:** Saraksts ar šķautnēm, katrai norādot `from`, `type`, `to` un kopējo skaitu.
**Kad lietot:** Ietekmes analīzē ("kuri pakalpojumi ir saistīti ar mērķi M4?"), atkarību kartēšanā, audita nolūkos.
**Piemērs:**
```
list_relations(id="domain.kultura-valoda", direction="out")
→ 95 šķautnes: has_goal→goal.m1..m6, has_system→sys.kultura.01..sys.valoda.11, u.c.
```
> **Piezīme:** Pašreizējā versijā visas šķautnes iziet no `domain.kultura-valoda`. Lai atrastu, piemēram, visas valodu apakšjomas sistēmas, meklējiet `list_relations(id="domain.kultura-valoda")` un filtrējiet pēc tipa `has_system` un `to` prefiksa `sys.valoda.*`.
---
### 2.7 `subgraph` — apakšgrafa izgūšana
**Nolūks:** Sākot no vienas vai vairākām sēklas entītijām, apstaigāt attiecību grafu un atgriezt visas saistītās entītijas līdz noteiktam dziļumam.
**Parametri:**
- `seed_ids` (obligāts) — sākuma entītiju ID masīvs, piemēram: `["goal.m4"]` vai `["org.kisc", "org.lumii"]`
- `depth` (neobligāts) — apstaigāšanas dziļums (noklusējums 1, maks. 3)
**Atgriež:** Pilns mezglu un šķautņu saraksts — katra mezgla pilna informācija un visas savienojošās šķautnes.
**Kad lietot:** Lai iegūtu "apkārtnes karti" — visas entītijas, kas saistītas ar noteiktu komponentu.
**Piemērs:**
```
subgraph(seed_ids=["domain.kultura-valoda"], depth=1)
→ 96 mezgli, 95 šķautnes — viss domēna saturs
```
---
### 2.8 `get_view` — dokumenta skata izgūšana
**Nolūks:** Atgriež viena konkrēta dokumenta skata saturu Markdown formātā. Skati ir cilvēklasāmas dokumenta nodaļas.
**Parametri:**
- `view_id` (obligāts) — skata identifikators. Iespējamās vērtības:
- `01-ievads` — Ievads
- `02-esosas-arhitekturas-novertejums` — Esošās arhitektūras novērtējums
- `03-merki-un-principi` — Mērķi un principi
- `04-merk-arhitektura` — Mērķarhitektūra
- `05-cela-karte` — Ceļa karte
- `06-pielikums-komponentu-katalogs` — Komponentu katalogs
**Atgriež:** Markdown saturs ar virsrakstiem, tekstiem un atsaucēm uz reģistriem.
**Kad lietot:** Lai izlasītu noteiktu dokumenta nodaļu bez pilna dokumenta ģenerēšanas.
**Piemērs:**
```
get_view(view_id="03-merki-un-principi")
→ Markdown ar M1–M6 mērķu aprakstiem un arhitektūras principiem
```
---
### 2.9 `generate_document` — pilna dokumenta ģenerēšana
**Nolūks:** Reģenerēt pilnu cilvēklasāmo arhitektūras dokumentu no YAML reģistriem. Apvieno visus skatus ar inline reģistru paplašinājumiem vienotā Markdown vai JSON dokumentā.
**Parametri:**
- `format` (neobligāts) — "markdown" (noklusējums) vai "json"
- `sections` (neobligāts) — konkrētu sadaļu saraksts. Ja nav norādīts, ģenerē pilnu dokumentu.
- Pieejamās vērtības: `ievads`, `esosa`, `merki`, `arhitektura`, `celakarte`, `katalogs`
**Atgriež:** Pilns Markdown vai JSON dokuments, kas satur visas vai izvēlētās sadaļas ar iekļautiem reģistru datiem.
**Kad lietot:**
- Lai iegūtu aktuālu, pilnu mērķarhitektūras dokumentu
- Lai sagatavotu materiālu prezentācijai vai pārskatam
- Lai pārbaudītu, ka visi reģistri ir korekti un savstarpēji saskanīgi
**Piemēri:**
```
generate_document()
→ Pilns dokuments Markdown formātā (~50+ lappuses)
generate_document(format="json")
→ Strukturēts JSON ar katras sadaļas datiem
generate_document(sections=["merki", "arhitektura"])
→ Tikai mērķi/principi un mērķarhitektūras sadaļas
```
---
## 3) Tipisko jautājumu un atbilžu piemēri
Šajā sadaļā parādīts, kādus jautājumus var uzdot AI aģentam un kādus rīkus tas izmantos, lai atbildētu.
### 3.1 Vispārīgs pārskats
**Jautājums:** "Pastāsti par šo arhitektūru — kas tajā ir un kā tā ir organizēta?"
**AI aģenta darbība:** Izsauc `describe_model`, pēc tam `list_entities` vispārīgam pārskatam.
**Sagaidāmā atbilde:** Skaidrojums, ka tā ir Latvijas kultūras un valodu tehnoloģiju jomas mērķarhitektūra ar 2 apakšdomēniem, 6 mērķiem, ~30 pakalpojumiem, ~30 sistēmām u.c.
---
### 3.2 Konkrēta mērķa izpēte
**Jautājums:** "Kas ir M4 mērķis un kā tas attiecas uz latviešu valodas AI?"
**AI aģenta darbība:** Izsauc `get_entity(id="goal.m4")`.
**Sagaidāmā atbilde:** M4 ir "Latviešu valoda digitālajā laikmetā" — mērķis nodrošināt latviešu valodas klātbūtni MI risinājumos, attīstot valodas resursus, modeļus un pakalpojumus.
---
### 3.3 Sistēmu saraksts valodu jomā
**Jautājums:** "Kādas informācijas sistēmas ir valodu tehnoloģiju apakšjomā?"
**AI aģenta darbība:** Izsauc `list_entities(type="sys", subdomain="valoda")`.
**Sagaidāmā atbilde:** 11 sistēmu saraksts — valodu tehnoloģiju platforma, LVM-LV, mašīntulkošana, runas atpazīšana, runas sintēze, virtuālie asistenti, semantiskā meklēšana, teksta ģenerēšana, vieglās valodas rīki, valodu resursu pārvaldība, jaunu tehnoloģiju izmitināšanas vide.
---
### 3.4 Konkrētas sistēmas detaļas
**Jautājums:** "Pastāsti par Lielo latviešu valodas modeli — kas tas ir, kāds ir tā statuss?"
**AI aģenta darbība:** Izsauc `search(query="latviešu valodas modelis")` vai `get_entity(id="sys.valoda.02")`.
**Sagaidāmā atbilde:** sys.valoda.02 — "Lielais latviešu valodas modelis (LVM-LV)", statuss "Jauns", tiks izveidots un uzturēts kā valsts mēroga valodas infrastruktūras pamatelements.
---
### 3.5 Ietekmes analīze
**Jautājums:** "Kuras sistēmas un pakalpojumi ir saistīti ar kultūras domēnu?"
**AI aģenta darbība:** Izsauc `list_relations(id="domain.kultura-valoda", direction="out")`, filtrē pēc `has_system` un `has_service`.
**Sagaidāmā atbilde:** 21 kultūras sistēma un 16 kultūras pakalpojumi, katrs ar savu ID un saiti uz domēnu.
---
### 3.6 Risku analīze
**Jautājums:** "Kādi riski ir identificēti šajā arhitektūrā?"
**AI aģenta darbība:** Izsauc `list_entities(type="risk")`, pēc tam `get_entity` katram riskam.
**Sagaidāmā atbilde:** Risku saraksts ar aprakstiem, iespējamību, ietekmi un mazināšanas pasākumiem.
---
### 3.7 Pilna dokumenta ģenerēšana
**Jautājums:** "Saģenerē pilnu mērķarhitektūras dokumentu."
**AI aģenta darbība:** Izsauc `generate_document(format="markdown")`.
**Sagaidāmā atbilde:** Pilns Markdown dokuments ar visām 6 sadaļām — ievads, esošā situācija, mērķi un principi, mērķarhitektūra, ceļa karte, komponentu katalogs.
---
### 3.8 Organizāciju meklēšana
**Jautājums:** "Kas ir KISC un kāda ir tā loma?"
**AI aģenta darbība:** Izsauc `search(query="KISC", kind="org")` vai `get_entity(id="org.kisc")`.
**Sagaidāmā atbilde:** Kultūras informācijas sistēmu centrs — domēna īstenotājs, atbildīgs par kultūras IS uzturēšanu un attīstību.
---
### 3.9 Ceļa kartes izpēte
**Jautājums:** "Kādi ir plānotie pasākumi un to laika grafiks?"
**AI aģenta darbība:** Izsauc `get_view(view_id="05-cela-karte")` vai `list_entities(type="rm")`.
**Sagaidāmā atbilde:** Ceļa kartes sadaļa ar pasākumu sarakstu, termiņiem un atbildīgajām organizācijām.
---
### 3.10 Servera uzticamības pārbaude
**Jautājums:** "Vai šis serveris ir uzticams? Kas to pārvalda?"
**AI aģenta darbība:** Izsauc `identify`.
**Sagaidāmā atbilde:** Serveris pieder KISC (Latvijas valsts iestāde), ir verificēts ar VeriTrust akreditāciju, DID identitāte ir `did:web:llm.kis.gov.lv`, atbilst MCPF Layer 1.
---
## 4) Kā AI aģents saprot arhitektūras kontekstu
Kad AI aģents (piemēram, Claude) pieslēdzas šim MCP serverim, tas **automātiski saņem** šādu konteksta informāciju:
1. **Servera apraksts:** "MCP server for Latvian cultural heritage and language technology architecture documentation" — tas uzreiz norāda, ka dati ir par Latvijas kultūras un valodu tehnoloģiju jomu.
2. **Rīku apraksti:** Katrs rīks satur detalizētu `description` lauku, kas palīdz AI aģentam saprast, kad un kā to lietot. Piemēram, `search` rīka aprakstā ir minēts: "Search KISC architecture documentation for Latvian government cultural digitalization. Contains: strategic goals (M1-M6), organizations (KISC, LNB, LUMII, ministries, museums)..." — tas dod aģentam bagātu kontekstu.
3. **Entītiju ID shēmas:** Rīku parametru aprakstos ir norādīti piemēri (`goal.m4`, `org.kisc`, `sys.valoda.01`), kas aģentam palīdz konstruēt pareizus vaicājumus.
4. **Uzticamības metadati:** Inicializācijas laikā serveris atgriež MCPF metadatus ar DID, akreditācijas un verifikācijas URL — AI aģents var novērtēt datu avota uzticamību.
Tādējādi AI aģentam **nav nepieciešama ārēja apmācība** — konteksts tiek saņemts tieši no servera, un aģents var sākt atbildēt uz jautājumiem par arhitektūru nekavējoties.
---
## 5) Dokumenta ģenerēšanas detalizēta procedūra
### 5.1 Ģenerēšanas mehānisms
Dokumenta ģenerēšana apvieno divus avotus:
```
views/ (Markdown struktūra) + registers/ (YAML dati) → Pilns dokuments
```
Process:
1. Tiek nolasīts katrs skats (`01-ievads.md`, `02-esosas-...md`, ..., `06-pielikums-...md`)
2. Skatā atrastās reģistru atsauces (backtick formātā) tiek aizstātas ar attiecīgo YAML reģistru saturu, formatētu kā tabulas vai saraksti
3. Rezultāts tiek apvienots vienotā dokumentā
### 5.2 Ģenerēšana caur komandrindu
```bash
cd mcp
REPO_ROOT="$(pwd)/.." \
DOMAIN_DIR="domains/kultura-valoda" \
OUT_FILE="KISC-merkarhitektura-apraksts.md" \
npm run gen:doc
```
### 5.3 Ģenerēšana caur MCP (AI aģents)
```
# Pilns dokuments (visas sadaļas)
generate_document(format="markdown")
# Tikai ievads un mērķi
generate_document(format="markdown", sections=["ievads", "merki"])
# JSON formāts mašīnapstrādei
generate_document(format="json")
# Tikai mērķarhitektūra un katalogs
generate_document(format="markdown", sections=["arhitektura", "katalogs"])
```
### 5.4 Sadaļu identifikatori
| Sadaļas ID | Skata fails | Saturs |
|---|---|---|
| `ievads` | `01-ievads.md` | Ievads, tvērums, termini, saīsinājumi |
| `esosa` | `02-esosas-arhitekturas-novertejums.md` | Esošās situācijas novērtējums |
| `merki` | `03-merki-un-principi.md` | Mērķi M1–M6 un 4 arhitektūras principi |
| `arhitektura` | `04-merk-arhitektura.md` | Funkcijas, pakalpojumi, IR, sistēmas |
| `celakarte` | `05-cela-karte.md` | Ceļa karte, riski, mijiedarbības |
| `katalogs` | `06-pielikums-komponentu-katalogs.md` | Pilns komponentu katalogs |
### 5.5 Ģenerētā dokumenta struktūra
Pilns dokuments satur aptuveni šādu struktūru:
```
1. Ievads
1.1 Dokumenta nolūks un mērķauditorija
1.2 Domēna arhitektūras tvērums
1.3 Termini un saīsinājumi
1.4 Saistītie dokumenti
2. Esošās arhitektūras novērtējums
2.1 Kultūras apakšjomas esošā situācija
2.2 Valodu tehnoloģiju esošā situācija
2.3 Esošo sistēmu novērtējums
3. Mērķi un principi
3.1 Stratēģiskie mērķi (M1–M6)
3.2 Arhitektūras principi (P1–P4)
4. Mērķarhitektūra
4.1 Funkcijas (6 gab.)
4.2 Pakalpojumi (30 gab. — kultūra + valoda)
4.3 Informācijas resursi (23 gab.)
4.4 Sistēmas (32 gab.)
5. Ceļa karte
5.1 Pasākumu plāns
5.2 Attiecības un atkarības
5.3 Riski
5.4 Mijiedarbības ar citām jomām
6. Pielikums — komponentu katalogs
6.1 Pilns sistēmu saraksts
6.2 Pilns pakalpojumu saraksts
6.3 Pilns IR saraksts
```
---
## 6) MCPF uzticamības ietvars
Serveris implementē **MCPF (MCP Trust Framework) Layer 1** — uzticamības atklāšanu sesijas līmenī.
### 6.1 Inicializācijas metadati
Katras MCP sesijas sākumā serveris atgriež šādus metadatus:
```json
{
"_meta": {
"identity": {
"id": "did:web:llm.kis.gov.lv",
"service": { "mcp": "https://llm.kis.gov.lv/mcp" },
"keys": { "jwks_uri": "https://llm.kis.gov.lv/.well-known/jwks.json" }
},
"mcpf": {
"version": "0.1",
"entrypoint": {
"type": "manifest",
"url": "https://llm.kis.gov.lv/.well-known/mcp/manifest.json"
}
},
"trust": {
"verifications": [{
"verifier": "did:web:veritrust.vc",
"type": ["VerifiableCredential", "MCPServerVerification"],
"covers": "did:web:llm.kis.gov.lv"
}]
}
}
}
```
### 6.2 Verifikācijas galapunkti
| URL | Saturs |
|---|---|
| `https://llm.kis.gov.lv/.well-known/jwks.json` | Publiskā atslēga JWT verifikācijai |
| `https://llm.kis.gov.lv/.well-known/did.json` | DID dokuments |
| `https://llm.kis.gov.lv/.well-known/mcp/manifest.json` | MCP manifests |
| `https://llm.kis.gov.lv/.well-known/mcp-trust-registry.json` | Uzticamības reģistrs |
| `https://veritrust.vc/portal/mcp/credentials/...` | VeriTrust akreditācija |
---
## 7) Tehniskā informācija
### 7.1 Servera versija un konfigurācija
| Parametrs | Vērtība |
|---|---|
| Versija | 0.3.0 |
| Protokols | MCP 2024-11-05 |
| Transports | Streamable HTTP (`/mcp`) |
| Iespējas (capabilities) | `tools`, `resources` |
| Rīku skaits | 9 |
| Vide | Docker (Node.js 20, TypeScript) |
### 7.2 Palaišana lokāli (izstrādei)
```bash
cd mcp
npm install
npm run dev
```
Serveris būs pieejams: `http://localhost:8787/mcp`
### 7.3 Palaišana ar Docker
```bash
cd mcp
docker compose up -d
```
Vai no POC izvietojuma:
```bash
cd /opt/kisc-llm/poc/deploy
docker compose build --no-cache arch-mcp
./scripts/start.sh
```
### 7.4 Veselības pārbaude
```bash
curl https://llm.kis.gov.lv/health
# → {"status":"ok"}
```
### 7.5 MCP inicializācijas tests
```bash
curl -sS https://llm.kis.gov.lv/mcp \
-H "content-type: application/json" \
-H "accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{
"protocolVersion":"2024-11-05",
"capabilities":{},
"clientInfo":{"name":"test","version":"1.0"}
}}'
```
Sagaidāmā atbilde: servera informācija ar versiju 0.3.0, 9 rīkiem un MCPF metadatiem.

View File

@@ -0,0 +1,409 @@
# IKT arhitektūra — Kultūras un valodu tehnoloģiju joma (SSOT)
Šis repozitorijs uztur jomas mērķarhitektūru kā kodu (**"Architecture as Code"**), kur visa informācija tiek glabāta strukturēti, versēti un atkārtojami ģenerējama.
Repozitorijs ir veidots kā **SSOT (Single Source of Truth)** — autoritatīvais saturs ir mašīnlasāmos YAML reģistros, bet cilvēklasāmais dokuments tiek ģenerēts no tiem. AI aģenti un automatizācijas rīki piekļūst šiem datiem caur MCP serveri.
---
## 1) Pamatideja (Architecture as Code)
Šajā repozitorijā arhitektūra tiek uzturēta šādi:
- **Skati (`views/`)** — cilvēklasāms dokuments (Markdown), kas nosaka dokumenta struktūru un stāstījumu
- **Reģistri (`registers/`)** — mašīnlasāmi dati (YAML), kas ir autoritatīvais avots visām entītijām
- **Diagrammas (`diagrams/`)** — Mermaid (šobrīd TODO vietturi)
- **Attiecības (`registers/99-relations/edges.yaml`)** — grafiks starp entītijām (95 šķautnes)
Repozitorijā visas entītijas tiek uzturētas kā **vienumi** (*items*), kuriem ir stabili identifikatori (ID) un atribūti. Piemēram, `sys.valoda.02` ir "Lielais latviešu valodas modelis (LVM-LV)", `goal.m4` ir "Latviešu valoda digitālajā laikmetā".
---
## 2) Repozitorija struktūra
```
.
├── domains/
│ └── kultura-valoda/
│ ├── manifest.yaml # Domēna manifests
│ ├── views/ # Dokumenta skati (Markdown)
│ │ ├── 01-ievads.md
│ │ ├── 02-esosas-arhitekturas-novertejums.md
│ │ ├── 03-merki-un-principi.md
│ │ ├── 04-merk-arhitektura.md
│ │ ├── 05-cela-karte.md
│ │ └── 06-pielikums-komponentu-katalogs.md
│ ├── registers/ # SSOT reģistri (YAML)
│ │ ├── 00-meta/ # Termini, saīsinājumi, saistītie dokumenti
│ │ ├── 02-goals/ # Stratēģiskie mērķi (M1–M6)
│ │ ├── 03-organizations/ # Institūcijas, lomas, atbildības
│ │ ├── 04-functions/ # Jomas funkcijas
│ │ ├── 05-services/ # Pakalpojumi (kultūra + valoda)
│ │ ├── 06-information-resources/ # Informācijas resursi
│ │ ├── 07-systems/ # Informācijas sistēmas
│ │ ├── 08-roadmap/ # Ceļa karte un mijiedarbības
│ │ ├── 09-risks/ # Riski un mazināšanas pasākumi
│ │ └── 99-relations/ # Attiecību grafiks (edges.yaml)
│ └── diagrams/ # Mermaid diagrammas (TODO)
├── mcp/ # MCP serveris (AI aģentu interfeiss)
├── tools/
│ └── qa/ # Kvalitātes pārbaudes skripti
└── docs/
├── MCP.md # MCP servera dokumentācija
├── TRACEABILITY.md
└── REGENERATION.md
```
---
## 3) Skati (views/) — cilvēklasāms dokuments
**Atrašanās vieta:** `domains/kultura-valoda/views/`
Skati satur dokumenta nodaļu struktūru, virsrakstus un paskaidrojošu tekstu. Skatos ir atsauces uz reģistriem (backtick formātā), piemēram:
```md
`registers/03-organizations/organizations.yaml`
```
Svarīgi: skatos nav jāuztur manuālas tabulas ar daudz vienumiem. Skati norāda "ko rādīt", bet saturs tiek ņemts no reģistriem. Dokumenta ģenerēšanas laikā atsauces tiek aizstātas ar reģistru saturu.
Pieejamie skati:
| Skats | Apraksts |
|---|---|
| `01-ievads.md` | Ievads, tvērums, termini |
| `02-esosas-arhitekturas-novertejums.md` | Esošās arhitektūras novērtējums |
| `03-merki-un-principi.md` | Mērķi (M1–M6) un arhitektūras principi |
| `04-merk-arhitektura.md` | Mērķarhitektūra (funkcijas, pakalpojumi, sistēmas, IR) |
| `05-cela-karte.md` | Ceļa karte, riski, mijiedarbības |
| `06-pielikums-komponentu-katalogs.md` | Komponentu katalogs (pilns saraksts) |
## 4) Reģistri (registers/) — mašīnlasāmi dati
**Atrašanās vieta:** `domains/kultura-valoda/registers/`
Reģistri ir YAML faili, kas satur vienumus. Šie reģistri ir SSOT un ir autoritatīvais avots.
| Reģistrs | Saturs |
|---|---|
| `00-meta/abbreviations.yaml` | Saīsinājumi |
| `00-meta/terms.yaml` | Termini un definīcijas |
| `00-meta/related-documents.yaml` | Saistītie dokumenti |
| `00-meta/legal-acts.yaml` | Juridiskais regulējums (grupēts pa tēmām) |
| `02-goals/goal-m1.yaml` … `goal-m6.yaml` | Stratēģiskie mērķi |
| `03-organizations/organizations.yaml` | Institūcijas, lomas, atbildības |
| `04-functions/functions.yaml` | Jomas funkcijas (6 gab.) |
| `05-services/kultura-services.yaml` | Kultūras apakšjomas pakalpojumi (16 gab.) |
| `05-services/valoda-services.yaml` | Valodu tehnoloģiju pakalpojumi (14 gab.) |
| `06-information-resources/kultura-info-resources.yaml` | Kultūras informācijas resursi (15 gab.) |
| `06-information-resources/valoda-info-resources.yaml` | Valodu tehnoloģiju IR (8 gab.) |
| `07-systems/kultura-systems.yaml` | Kultūras IS (21 gab.) |
| `07-systems/valoda-systems.yaml` | Valodu tehnoloģiju IS (11 gab.) |
| `08-roadmap/roadmap.yaml` | Ceļa kartes pasākumi |
| `08-roadmap/interactions.yaml` | Mijiedarbība ar citām jomām |
| `09-risks/risks.yaml` | Riski un mazināšanas pasākumi |
| `99-relations/edges.yaml` | Attiecību grafiks (95 šķautnes) |
## 5) Attiecības (edges.yaml) — grafiks starp vienumiem
**Atrašanās vieta:** `domains/kultura-valoda/registers/99-relations/edges.yaml`
Šis fails satur attiecības starp vienumiem. Katrai attiecībai ir `from`, `type` un `to` lauki.
Pieejamie attiecību tipi:
| Tips | Nozīme |
|---|---|
| `has_goal` | Domēnam ir mērķis |
| `has_function` | Domēnam ir funkcija |
| `has_service` | Domēnam ir pakalpojums |
| `has_system` | Domēnam ir sistēma |
| `has_information_resource` | Domēnam ir informācijas resurss |
| `owns` / `manages` / `operates` | Organizācija ir īpašnieks / pārvaldītājs / operators |
| `depends_on` | Atkarība starp komponentēm |
| `implements` / `supports` / `enables` | Realizācijas un atbalsta saites |
| `regulates` / `complies_with` | Regulējuma saites |
Pašlaik visas 95 šķautnes ir tipa `domain.kultura-valoda → {entītija}`, veidojot zvaigznes topoloģiju. Nākotnē grafiks tiks papildināts ar organizāciju, sistēmu un pakalpojumu savstarpējām saitēm.
## 6) Diagrammas (diagrams/) — Mermaid TODO vietturi
**Atrašanās vieta:** `domains/kultura-valoda/diagrams/`
Diagrammas tiek uzturētas Mermaid formātā. Šobrīd tās ir vietturi (TODO), kas nākotnē tiks aizstātas ar ģenerētām vai manuāli veidotām vizualizācijām.
---
## 7) Kā ģenerēt cilvēklasāmo dokumentu no SSOT
Repozitorijs nodrošina pilna mērķarhitektūras dokumenta automātisku ģenerēšanu no reģistriem un skatiem.
### 7.1 Priekšnosacījumi
- Node.js 18+ (ieteicams Node 20)
- npm
### 7.2 Uzstādīšana
No repozitorija saknes:
```bash
cd mcp
npm install
```
### 7.3 Dokumenta ģenerēšana (komandrinda)
No repozitorija saknes:
```bash
cd mcp
REPO_ROOT="$(pwd)/.." DOMAIN_DIR="domains/kultura-valoda" OUT_FILE="KISC-merkarhitektura-apraksts.md" npm run gen:doc
```
Rezultāts: `KISC-merkarhitektura-apraksts.md` (repo saknē).
### 7.4 Dokumenta ģenerēšana caur MCP serveri (AI aģents)
Ja MCP serveris darbojas, jebkurš AI aģents var ģenerēt dokumentu, izsaucot rīku `generate_document`:
```
Rīks: generate_document
Parametri:
format: "markdown" — Markdown formāts cilvēklasāmam dokumentam
format: "json" — JSON formāts mašīnapstrādei
sections: ["ievads", "arhitektura", "celakarte"] — konkrētas sadaļas (neobligāts)
```
Pilna dokumenta ģenerēšana (visas sadaļas):
```
generate_document(format="markdown")
```
Atsevišķu sadaļu ģenerēšana:
```
generate_document(format="markdown", sections=["ievads", "merki"])
```
Pieejamās sadaļas: `ievads`, `esosa`, `merki`, `arhitektura`, `celakarte`, `katalogs`.
Ģenerēšanas laikā tiek apvienoti visi skati (`views/`) ar tajā atsaucēto reģistru (`registers/`) saturu, veidojot vienotu, pilnu dokumentu.
### 7.5 Svarīgi par ģenerēto dokumentu
- Ģenerētais dokuments ir **build artifact** — tas netiek rediģēts manuāli.
- Izmaiņas vienmēr veic **reģistros** vai **skatos**, pēc tam atkārtoti ģenerē.
- Katru reizi ģenerējot, dokuments atspoguļo aktuālo SSOT stāvokli.
---
## 8) Kvalitātes kontrole (QA)
Repo ietver QA pārbaudes, lai nepieļautu satura zudumu.
No repozitorija saknes:
```bash
tools/qa/check_nonempty_registers.sh
tools/qa/check_generated_doc_headings.sh KISC-merkarhitektura-apraksts.md
tools/qa/check_stakeholder_count.sh KISC-merkarhitektura-apraksts.md
```
Ja QA neiziet — jālabo reģistri vai skati. Nedrīkst "saīsināt" saturu, lai tikai testi izietu.
---
## 9) MCP serveris — AI aģentu interfeiss
MCP (Model Context Protocol) serveris nodrošina AI aģentiem strukturētu piekļuvi arhitektūras SSOT datiem. Serveris darbojas kā tikai-lasīšanas slānis — tas nemaina SSOT saturu.
Detalizēta MCP servera dokumentācija, rīku apraksti, lietošanas scenāriji un piemēri ir pieejami atsevišķā dokumentā:
📖 **[docs/MCP.md](docs/MCP.md)** — pilna MCP servera dokumentācija
### 9.1 Īsumā par iespējām
MCP serveris piedāvā **9 rīkus**, kas ļauj AI aģentiem:
- Meklēt un izgūt jebkuru arhitektūras entītiju (mērķi, sistēmas, pakalpojumus, IR, riskus u.c.)
- Analizēt attiecības starp entītijām (grafu vaicājumi)
- Ģenerēt pilnu mērķarhitektūras dokumentu tieši no SSOT
- Pārlūkot dokumenta skatus un metamodeli
- Verificēt servera identitāti un uzticamību (MCPF trust framework)
### 9.2 Kā pieslēgties
MCP serveris ir pieejams adresē:
```
https://llm.kis.gov.lv/mcp
```
Pieslēgšanās no Claude.ai: **Settings** → **Connectors** → **Add** → ievadiet URL.
---
## 10) MCP autentifikācija
MCP serveris atbalsta **trīs autentifikācijas metodes**, kas var darboties vienlaicīgi (`AUTH_MODE=both`):
1. **Statiskais Bearer tokens** — vienkārša fiksēta atslēga
2. **OAuth 2.1 Authorization Code + PKCE** — interaktīva pieeja (Claude Desktop, pārlūkprogramma)
3. **OAuth 2.0 client_credentials** — mašīna-pret-mašīnu (API, skripti)
### 10.1 Statiskais Bearer tokens (vienkāršā pieeja)
Iestatiet `.env`:
```env
AUTH_REQUIRED=true
AUTH_MODE=static # vai "both", lai darbotos visi veidi
STATIC_BEARER_TOKEN=my-secret-token-here
```
Pieprasījuma piemērs:
```bash
curl -H "Authorization: Bearer my-secret-token-here" \
http://localhost:8787/mcp
```
Šī metode ir piemērota iekšējai testēšanai un vienkāršiem integrācijas gadījumiem.
### 10.2 OAuth 2.1 — Authorization Code + PKCE (Claude Desktop)
Šo plūsmu automātiski izmanto **Claude Desktop** un citi MCP klienti, kas atbalsta OAuth 2.1.
Serveris implementē pilnu MCP autorizācijas specifikāciju:
- **RFC 9728** — Protected Resource Metadata (`/.well-known/oauth-protected-resource`)
- **RFC 8414** — Authorization Server Metadata (`/.well-known/oauth-authorization-server`)
- **RFC 7591** — Dynamic Client Registration (`/register`)
- **PKCE S256** — obligāts drošības mehānisms
#### Konfigurācija (.env)
```env
AUTH_REQUIRED=true
AUTH_MODE=both
SERVER_PUBLIC_URL=https://llm.kis.gov.lv:8787
# Pieteikšanās dati autorizācijas lapā
OAUTH_LOGIN_USERNAME=admin
OAUTH_LOGIN_PASSWORD=change-me
```
#### Pieslēgšanās no Claude Desktop
1. Claude Desktop → **Settings** → **Connectors** → **Add**
2. Ievadiet MCP servera URL: `https://llm.kis.gov.lv:8787/mcp`
3. Claude automātiski atklās OAuth galapunktus un atvērs pieteikšanās lapu pārlūkprogrammā
4. Ievadiet `OAUTH_LOGIN_USERNAME` / `OAUTH_LOGIN_PASSWORD`
5. Pēc autorizācijas Claude saņem JWT tokenu un izmanto to turpmākajos pieprasījumos
#### Plūsmas secība (tehniski)
```
Claude Desktop MCP Server
│ │
├── POST /mcp (bez tokena) ──────────►│
│◄── 401 + WWW-Authenticate ─────────┤
│ │
├── GET /.well-known/ │
│ oauth-protected-resource ───────►│
│◄── { authorization_servers: [...] } │
│ │
├── GET /.well-known/ │
│ oauth-authorization-server ─────►│
│◄── { endpoints, PKCE, ... } │
│ │
├── POST /register ─────────────────►│
│◄── { client_id, client_secret } │
│ │
├── 🌐 Opens browser → /authorize ──►│
│ (user logs in with credentials) │
│◄── 302 redirect with ?code=... ────┤
│ │
├── POST /token (code + PKCE) ──────►│
│◄── { access_token, refresh_token } │
│ │
├── POST /mcp + Bearer token ────────►│
│◄── MCP response ──────────────────┤
```
### 10.3 OAuth 2.0 — client_credentials (mašīna-pret-mašīnu)
Skriptiem un API integrācijām, kas neizmanto pārlūkprogrammu.
#### Konfigurācija (.env)
```env
OAUTH_CLIENT_ID=mcp-service-account
OAUTH_CLIENT_SECRET=change-me-to-a-strong-secret
```
#### Tokena iegūšana
```bash
# 1. Iegūt JWT tokenu
TOKEN=$(curl -s -X POST https://llm.kis.gov.lv:8787/token \
-d grant_type=client_credentials \
-d client_id=mcp-service-account \
-d client_secret=change-me-to-a-strong-secret \
| jq -r .access_token)
# 2. Lietot tokenu MCP pieprasījumos
curl -H "Authorization: Bearer $TOKEN" \
https://llm.kis.gov.lv:8787/mcp
```
Tokens ir derīgs 1 stundu (3600 s). Pēc termiņa beigām iegūstiet jaunu.
### 10.4 Galapunkti
| Galapunkts | Metode | Auth | Apraksts |
|---|---|---|---|
| `/health` | GET | Nē | Veselības pārbaude |
| `/.well-known/oauth-protected-resource` | GET | Nē | RFC 9728 — resursa metadati |
| `/.well-known/oauth-authorization-server` | GET | Nē | RFC 8414 — autorizācijas servera metadati |
| `/.well-known/jwks.json` | GET | Nē | Publiskā atslēga JWT verifikācijai |
| `/register` | POST | Nē | RFC 7591 — klienta dinamiskā reģistrācija |
| `/authorize` | GET/POST | Nē | Autorizācijas lapa (login + consent) |
| `/token` | POST | Nē | Tokenu izsniegšana (auth code, client_credentials, refresh) |
| `/mcp` | POST/GET/DELETE | **Jā** | MCP servera galapunkts |
### 10.5 AUTH_MODE vērtības
| Vērtība | Apraksts |
|---|---|
| `both` (noklusējums) | Pieņem statisko tokenu, OAuth JWT un auth code tokenu |
| `static` | Tikai statiskais Bearer tokens |
| `jwks` | Tikai OAuth/OIDC JWT (validēts ar JWKS) |
### 10.6 Ārējais identitātes nodrošinātājs (neobligāts)
Ja izmantojat ārēju IDP (Auth0, Keycloak, Azure AD) papildus iebūvētajam OAuth:
```env
OAUTH_JWKS_URL=https://your-idp/.well-known/jwks.json
OAUTH_ISSUER=https://your-idp/
OAUTH_AUDIENCE=your-api-audience
```
---
## 11) Darba kārtība (ieteicamais process)
1. Veic izmaiņas reģistros (`registers/`)
2. Ja vajag — koriģē struktūru skatos (`views/`)
3. Ģenerē dokumentu (`npm run gen:doc` vai `generate_document` caur MCP)
4. Palaid QA (`tools/qa/`)
5. Commit
---
## 12) Papildu materiāli
- **[docs/MCP.md](docs/MCP.md)** — MCP servera dokumentācija (rīku apraksti, lietošanas scenāriji, piemēri)
- `docs/TRACEABILITY.md` — izsekojamība starp sākotnējo dokumentu, reģistriem un ģenerēto rezultātu
- `docs/REGENERATION.md` — regenerācijas procedūra un noteikumi

View File

@@ -0,0 +1,13 @@
version: "3.9"
services:
arch-mcp:
build:
context: .
dockerfile: mcp/Dockerfile
ports:
- "${MCP_PORT:-8787}:8787"
env_file:
- .env
environment:
- ARCH_ROOT=/app/domains
- REPO_ROOT=${REPO_ROOT:-/app}

View File

@@ -0,0 +1,20 @@
# Regeneration (kultura-valoda)
This repo is SSOT. The human-readable architecture document is regenerated from registers.
## Steps
1) Ensure registers are complete (non-empty):
- tools/qa/check_nonempty_registers.sh
2) Regenerate the document using the repo generator (see package scripts / build tooling).
- Output must be: KISC-merkarhitektura-apraksts.md
3) Run doc completeness checks:
- tools/qa/check_generated_doc_headings.sh KISC-merkarhitektura-apraksts.md
- tools/qa/check_stakeholder_count.sh KISC-merkarhitektura-apraksts.md
## Rule
If regeneration fails QA, fix the registers or generator template.
Do not delete or “simplify” registers to make QA pass.

View File

@@ -0,0 +1,53 @@
# TRACEABILITY — KISC Kultūras un valodu tehnoloģiju jomas mērķarhitektūra
This file maps the original human-readable source (PDF/presentation) sections to:
1) the SSOT registers in this repository, and
2) the regenerated machine-readable output (Markdown/PDF).
If any repo path in this table is missing or empty, the regenerated document is NOT considered equivalent.
---
## Sources
- Source A: "MērķARH_Kultura_Valoda_V02_18.06.2025.pdf"
- Source B: "ARH_kulturas_valodu_jomu_PREZENT_V0.4_4.06.pdf"
---
## Section mapping
| Source section | Meaning (what must be preserved) | SSOT repo path(s) | Regenerated doc heading |
|---|---|---|---|
| 1.1 Ievads | Purpose, context, why the document exists | `domains/kultura-valoda/registers/00-meta/intro.md` (or generator inline section) | `1.1 Ievads` |
| 1.2 Iesaistītās puses | Full list of institutions + roles | `domains/kultura-valoda/registers/03-organizations/organizations.yaml` + `domains/kultura-valoda/registers/00-meta/domain.yaml` | `1.2 Iesaistītās puses` |
| 1.3 Saīsinājumi | Abbreviation list | `domains/kultura-valoda/registers/00-meta/abbreviations.yaml` | `1.3 Saīsinājumi` |
| 1.4 Saistītie dokumenti | List of strategies/laws/platforms and relevance | `domains/kultura-valoda/registers/00-meta/related-documents.yaml` | `1.4 Saistītie dokumenti` |
| 2. Esošās situācijas raksturojums | Current state summary | `domains/kultura-valoda/registers/01-current-state/current-state.md` (or equivalent) | `2. Esošā situācija` |
| 3. Nākotnes redzējums | Target vision, objectives M1–M6 | `domains/kultura-valoda/registers/02-goals/goals.yaml` | `3. Nākotnes redzējums` |
| 4.1 Juridiskais skats | Legal/regulatory constraints grouped | `domains/kultura-valoda/registers/00-meta/legal-acts.yaml` | `4.1 Juridiskais skats` |
| 4.2 Biznesa skats | Functions, services | `domains/kultura-valoda/registers/04-functions/` + `domains/kultura-valoda/registers/05-services/` | `4.2 Biznesa skats` |
| 4.3 Semantiskais skats | Data/semantics principles, vocabularies | `domains/kultura-valoda/registers/06-information-resources/` + `domains/kultura-valoda/registers/00-meta/terms.yaml` | `4.3 Semantiskais skats` |
| 4.4.1 Lietojumprogrammu skats | Systems/applications | `domains/kultura-valoda/registers/07-systems/` | `4.4.1 Lietojumprogrammu skats` |
| 4.4.2 Integrācija | Integration approach + dependencies | `domains/kultura-valoda/registers/07-integrations/` (if exists) + `domains/kultura-valoda/registers/08-roadmap/interactions.yaml` | `4.4.2 Integrācija` |
| 4.4.3 IKT infrastruktūra | Infrastructure approach | `domains/kultura-valoda/registers/10-infrastructure/` (or equivalent) | `4.4.3 IKT infrastruktūra` |
| 5.1 Pasākumu plāns | Roadmap actions with owners/deps/outputs | `domains/kultura-valoda/registers/08-roadmap/roadmap.yaml` | `5.1 Pasākumu plāns` |
| 5.2 Mijiedarbība ar citām jomām | Cross-domain interactions | `domains/kultura-valoda/registers/08-roadmap/interactions.yaml` | `5.2 Mijiedarbība ar citām jomām` |
| 5.3 Riski | Risk register with mitigation | `domains/kultura-valoda/registers/09-risks/risks.yaml` | `5.3 Riski` |
---
## Acceptance criteria (no-loss)
A regeneration is considered equivalent if ALL conditions hold:
1. All SSOT files listed above exist.
2. Registers that are YAML contain non-empty `items:` lists.
3. The regenerated document includes all headings listed in the table.
4. The regenerated document includes stakeholder organizations beyond only KM/KISC/LNB.
5. The regenerated document includes roadmap + risks (non-empty).
If any condition fails, treat regeneration as NOT equivalent and fix the registers or generator template.
✅ This file is deliberately strict and “traditional”: it behaves like a proper controlled-document trace matrix.

View File

@@ -0,0 +1,266 @@
# MCP Best Practices, Market Reality, and Cached Knowledge Rationale
## Executive Summary
MCP (Model Context Protocol) has rapidly evolved from Anthropic's November 2024 release to become the de-facto standard for AI-to-tool integration, with adoption by OpenAI in March 2025 and donation to the Linux Foundation's Agentic AI Foundation in December 2025. However, its effectiveness for document-centric use cases depends heavily on implementation patterns. This analysis addresses whether MCP with cached/pre-computed knowledge layers makes sense versus alternatives.
---
## 1. Market Best Practices and Real Examples
### 1.1 Production MCP Document Implementations
| Implementation | Approach | Key Features |
|----------------|----------|--------------|
| **Chroma MCP Server** | Vector-native semantic search | Sets the standard for semantic document management using vector search, supporting both ephemeral and persistent storage |
| **Knowledge-Base-MCP (Puran)** | Production-grade RAG | Agent-directed hybrid retrieval with auto mode choosing among dense, hybrid, sparse, and rerank routes; when scores are low, returns abstain so client can decide whether to retry |
| **AWS Bedrock KB + MCP** | Enterprise knowledge bases | Connects to Amazon Bedrock Knowledge Bases for semantic search capabilities, providing unified access pattern regardless of underlying AWS service |
| **Basic Memory** | Local-first knowledge graphs | Local-first knowledge management system that builds a semantic graph from Markdown files, enabling persistent memory across conversations |
| **AtScale MCP** | Semantic layer for BI | Exposes semantic models to any MCP-compatible AI agent with real-time model discovery where new models become queryable instantly after deployment |
### 1.2 Dominant Architecture Patterns
**Pattern A: MCP + Vector Store (Most Common)**
```
Documents → Chunking → Embeddings → Vector DB → MCP Server → LLM Client
```
Prepare the knowledge base by collecting and preprocessing data, chunk into reasonably sized pieces, embed using an embedding model, and load into a vector database like FAISS, Weaviate, or Pinecone
**Pattern B: MCP + Knowledge Graph**
```
Documents → Entity Extraction → Graph DB → MCP Server → LLM Client
```
The MCP server exposes Graphiti's core capabilities including episode management, entity management, search capabilities with semantic and hybrid search for facts and node summaries
**Pattern C: MCP + Hybrid (Best Practice)**
```
Documents → [Vectors + Graph + BM25] → Unified MCP Interface → LLM Client
```
Combines vector search plus BM25 lexical search using RRF, then reranks. Best for complex queries with both conceptual and specific keyword requirements
---
## 2. When MCP Beats Alternatives
### 2.1 MCP vs. Direct Document Attachment
| Scenario | Winner | Rationale |
|----------|--------|-----------|
| **One-off Q&A on small docs** | Direct Attachment | Zero setup, full context visible |
| **Repeated queries on same corpus** | MCP | Avoid re-processing, selective retrieval |
| **Multi-user access** | MCP | AI applications can seamlessly access up-to-date information and context as needed through unified protocol |
| **Agentic workflows** | MCP | Enables "agentic" AI systems that can autonomously interact with multiple systems, retrieve the latest information, and even take actions |
| **Version-controlled knowledge** | MCP | Git-based updates, deterministic ingestion |
### 2.2 MCP vs. Traditional RAG API
| Aspect | Traditional RAG | MCP-wrapped RAG | Advantage |
|--------|-----------------|-----------------|-----------|
| **Standardization** | Custom per-service | Universal protocol | MCP |
| **Tool Discovery** | Manual documentation | Auto-discovery | MCP |
| **Multi-source** | N×M integrations | M+N integrations | MCP flips the N×M problem to an M+N model: tool providers implement one standard MCP server, and AI app developers implement MCP client support once |
| **Agent autonomy** | Fixed pipeline | LLM itself makes contextual decisions about how to interact with the data, determining query strategy and prompt formulation | MCP |
### 2.3 When NOT to Use MCP
1. **Simple, one-time document analysis** - Direct attachment wins
2. **Highly dynamic real-time data** - Direct API calls may be simpler
3. **No multi-client requirement** - Overhead not justified
4. **Prototype/exploratory phase** - Start simple, add MCP later
---
## 3. Cached/Pre-computed Knowledge: The Rationale
### 3.1 What is "Cached Knowledge" in MCP Context?
Three tiers of pre-computation that MCP servers can provide:
| Tier | What's Cached | When Generated | Example |
|------|---------------|----------------|---------|
| **1. Embeddings** | Vector representations | At ingestion | Semantic search index |
| **2. Summaries** | Condensed content | At ingestion or scheduled | "This document describes X" |
| **3. Knowledge Graph** | Entity-relationship extractions | At ingestion | "Goal M1 → implemented by → System X" |
### 3.2 Rationale FOR Cached Knowledge Layers
**A. Token Economics**
Simply stuffing all potentially relevant data into the prompt is inefficient and sometimes impossible. MCP enables dynamically retrieving just-in-time context from external sources as needed instead of front-loading everything
Cost comparison (200-page document):
- Direct attachment: ~100K tokens every query = $0.30-3.00/query
- MCP with embeddings: ~2K tokens retrieved = $0.006-0.06/query
- MCP with summaries: ~500 tokens = $0.0015-0.015/query
**B. Response Quality**
Tune the number of retrieved documents included in the prompt - often 3-5 good snippets are better than 10 - sometimes using too many can overwhelm the model
Pre-computed summaries ensure the LLM gets:
- Condensed, relevant context
- Pre-extracted key facts
- Relationship context from knowledge graphs
**C. Caching Benefits**
Implement caching at multiple levels. Cache the results of common retrieval queries — for example, if many users ask "What is the refund policy?", you can cache the answer or at least the retrieved document so the agent doesn't vector-search the same question repeatedly
Implementing advanced caching (exact, semantic, task-aware) to avoid redundant API calls, tracking and optimizing costs across providers
**D. Offline/Latency Benefits**
Pre-computed knowledge enables:
- Faster response times (no embedding at query time)
- Offline capability (no API calls for embeddings)
- Deterministic behavior (same query = same retrieval)
### 3.3 Implementation: Hierarchical Memory
Provides hierarchical memory storage with three-tier compression (chunks, micro-summaries, meta-summaries)
Example architecture:
```yaml
# Pre-computed knowledge layers
raw_chunks:
- content: "Full text chunk"
- embedding: [0.1, 0.2, ...]
micro_summaries:
- chunk_ids: [1, 2, 3]
- summary: "These chunks describe the cultural heritage preservation goals"
- keywords: ["heritage", "preservation", "M1"]
meta_summaries:
- scope: "02-goals subdomain"
- summary: "Six strategic goals (M1-M6) covering preservation through cybersecurity"
- entity_count: 6
```
### 3.4 Rationale AGAINST Over-caching
| Risk | Description | Mitigation |
|------|-------------|------------|
| **Staleness** | Summaries out of sync with source | Git-triggered regeneration |
| **Loss of nuance** | Summarization loses detail | Keep raw chunks accessible |
| **Hallucination risk** | LLM-generated summaries may be wrong | Human review for critical content |
| **Storage cost** | Multiple representations | Tiered storage, compress cold data |
---
## 4. Recommended Architecture for KISC Use Case
### 4.1 Current State Analysis
Your Architecture-as-Code repo has:
- ✅ Structured YAML entities (good for knowledge graph)
- ✅ Explicit relationships in `edges.yaml`
- ❌ No vector embeddings
- ❌ No pre-computed summaries
- ❌ Primitive substring search (not semantic)
### 4.2 Proposed Enhanced Architecture
```
┌─────────────────────────────────────────────────────────────────┐
│ KISC Architecture MCP Server │
├─────────────────────────────────────────────────────────────────┤
│ Layer 1: Raw Data │
│ ├── YAML entities (goals, systems, services, etc.) │
│ └── Markdown documentation │
├─────────────────────────────────────────────────────────────────┤
│ Layer 2: Pre-computed Knowledge (NEW) │
│ ├── embeddings.index (vector search via FAISS/Qdrant) │
│ ├── summaries.yaml (entity-level summaries in Latvian) │
│ ├── knowledge_graph.json (Neo4j-style graph export) │
│ └── glossary.yaml (term definitions for natural language) │
├─────────────────────────────────────────────────────────────────┤
│ Layer 3: MCP Tools (ENHANCED) │
│ ├── semantic_search(query) → vector similarity │
│ ├── get_entity(id) → full entity + related context │
│ ├── explain_concept(term) → natural language explanation │
│ ├── find_relationships(entity) → graph traversal │
│ ├── summarize_domain(domain) → pre-computed summary │
│ └── natural_query(latvian_question) → LLM-friendly response │
└─────────────────────────────────────────────────────────────────┘
```
### 4.3 Pre-computation Pipeline
```bash
# On every git commit to Architecture-as-Code:
1. Load all YAML entities
2. Generate embeddings for each entity (title + description)
3. Generate micro-summaries for each subdomain
4. Build/update knowledge graph from edges.yaml
5. Create glossary from all entity titles/codes
6. Store in /mcp/cache/ directory
```
### 4.4 Query Flow (Enhanced)
**User asks:** "Kādas sistēmas realizē valodas tehnoloģiju mērķi?"
(What systems implement the language technology goal?)
**Current behavior:** Returns `[]` (no match for Latvian natural language)
**Enhanced behavior:**
1. `natural_query` tool receives Latvian question
2. Extracts intent: "systems implementing language technology goal"
3. Maps to goal.m4 (Latviešu valoda digitālajā laikmetā)
4. Traverses knowledge graph: goal.m4 → implemented_by → [sys.valoda.01, sys.valoda.02, ...]
5. Returns pre-computed summary + entity list
---
## 5. Decision Framework: When to Add Cached Knowledge
| Question | If YES | If NO |
|----------|--------|-------|
| Will multiple users query the same corpus? | Add caching | Skip |
| Is query latency critical (<1s)? | Add embeddings | Direct retrieval OK |
| Do users ask in natural language (not IDs)? | Add semantic search | ID-based lookup OK |
| Is the corpus >100 entities? | Add summaries | Full scan OK |
| Do queries require cross-entity reasoning? | Add knowledge graph | Flat search OK |
| Is the corpus updated less than daily? | Pre-compute aggressively | Real-time generation |
---
## 6. Conclusion
### Is MCP with Cached Knowledge Worth It?
**YES, when:**
- You have a stable, structured knowledge base (like Architecture-as-Code)
- Multiple consumers need consistent access
- Natural language queries are required
- Token cost optimization matters
- Cross-entity reasoning is needed
**NO, when:**
- One-time document analysis
- Rapidly changing data (real-time feeds)
- Simple keyword lookup suffices
- No multi-client requirement
### For KISC Specifically:
Your Architecture-as-Code approach is **fundamentally correct** but needs:
1. **Semantic search layer** (embeddings for Latvian content)
2. **Pre-computed summaries** (domain/subdomain level)
3. **Natural language interface** (Latvian query handling)
4. **Enhanced MCP tools** (beyond primitive substring search)
The investment in these layers will pay off as the architecture grows and more stakeholders (internal teams, external auditors, automated agents) need to query it.
---
## References
- Model Context Protocol Specification: https://modelcontextprotocol.io/specification
- MCP Server Registry: https://github.com/modelcontextprotocol/servers
- Agentic RAG + MCP Integration Guide: https://becomingahacker.org/integrating-agentic-rag-with-mcp-servers
- AWS MCP Implementation: https://aws.amazon.com/blogs/machine-learning/unlocking-the-power-of-model-context-protocol-mcp-on-aws/

View File

@@ -0,0 +1,3 @@
flowchart TB
%% TODO: Transform official diagram into Mermaid
A[TODO: Funkciju karte] --> B[Transform later]

View File

@@ -0,0 +1,3 @@
flowchart TB
%% TODO: Transform official diagram into Mermaid
A[TODO: Funkciju karte] --> B[Transform later]

View File

@@ -0,0 +1,3 @@
flowchart TB
%% TODO: Transform official diagram into Mermaid
A[TODO: Funkciju karte] --> B[Transform later]

View File

@@ -0,0 +1,3 @@
flowchart TB
%% TODO: Transform official diagram into Mermaid
A[TODO: Funkciju karte] --> B[Transform later]

View File

@@ -0,0 +1,3 @@
flowchart TB
%% TODO: Transform official diagram into Mermaid
A[TODO: Funkciju karte] --> B[Transform later]

View File

@@ -0,0 +1,47 @@
id: domain.kultura-valoda
title: "Kultūras un valodu tehnoloģiju jomas mērķarhitektūra"
version: "0.2.0"
status: "draft"
template_compliance: true
views:
- id: 1
title: "Ievads"
file: views/01-ievads.md
- id: 2
title: "Esošās arhitektūras novērtējums"
file: views/02-esosas-arhitekturas-novertejums.md
- id: 3
title: "Mērķi un principi"
file: views/03-merki-un-principi.md
- id: 4
title: "Mērķarhitektūra"
file: views/04-merk-arhitektura.md
- id: 5
title: "Ceļa karte"
file: views/05-cela-karte.md
- id: 6
title: "Pielikums: esošās arhitektūras komponentu katalogs"
file: views/06-pielikums-komponentu-katalogs.md
registers:
meta: registers/00-meta
as_is: registers/01-as-is
goals: registers/02-goals
organizations: registers/03-organizations/organizations.yaml
functions: registers/04-functions/functions.yaml
services: registers/05-services
information_resources: registers/06-information-resources
systems: registers/07-systems
roadmap: registers/08-roadmap/roadmap.yaml
interactions: registers/08-roadmap/interactions.yaml
risks: registers/09-risks/risks.yaml
as_is_catalog: registers/10-catalog/as-is-components.yaml
relations: registers/99-relations/edges.yaml
diagrams:
- diagrams/TODO-01-funkcijas.mmd
- diagrams/TODO-02-pakalpojumi.mmd
- diagrams/TODO-03-informacijas-resursi.mmd
- diagrams/TODO-04-informacijas-sistemas.mmd
- diagrams/TODO-05-integracijas.mmd

View File

@@ -0,0 +1,55 @@
items:
- abbr: "API"
meaning: "Lietojumprogrammas saskarne (angl. – Application programming interface)"
- abbr: "DAGR"
meaning: "Datu izplatīšanas un pārvaldības platforma"
- abbr: "DO"
meaning: "Digitālais objekts"
- abbr: "EK"
meaning: "Eiropas Komisija"
- abbr: "ERAF"
meaning: "Eiropas Reģionālās attīstības fonds"
- abbr: "ES"
meaning: "Eiropas Savienība"
- abbr: "IKT"
meaning: "Informācijas un komunikācijas tehnoloģijas"
- abbr: "IT"
meaning: "Informācijas tehnoloģijas"
- abbr: "IS"
meaning: "Informācijas sistēma"
- abbr: "KISC"
meaning: "Kultūras informācijas sistēmu centrs"
- abbr: "KM"
meaning: "Kultūras ministrija"
- abbr: "KMO"
meaning: "Kultūras mantojuma objekts"
- abbr: "LNA"
meaning: "Latvijas Nacionālais arhīvs"
- abbr: "LNB"
meaning: "Latvijas Nacionālā bibliotēka"
- abbr: "LNKC"
meaning: "Latvijas Nacionālais kultūras centrs"
- abbr: "LVA"
meaning: "Latviešu valodas aģentūra"
- abbr: "LUMII"
meaning: "Latvijas Universitātes Matemātikas un informātikas institūts"
- abbr: "MK"
meaning: "Ministru kabinets"
- abbr: "NKMP"
meaning: "Nacionālā kultūras mantojuma pārvalde"
- abbr: "NKC"
meaning: "Nacionālais kino centrs"
- abbr: "TA"
meaning: "Tiesu administrācija"
- abbr: "TM"
meaning: "Tieslietu ministrija"
- abbr: "VARAM"
meaning: "Viedās administrācijas un reģionālās attīstības ministrija"
- abbr: "VDAA"
meaning: "Valsts digitālās attīstības aģentūra"
- abbr: "VIRSIS"
meaning: "Valsts informācijas resursu, sistēmu un sadarbspējas informācijas sistēma"
- abbr: "VPM"
meaning: "Vienotās pieteikšanās modulis"
- abbr: "VVC"
meaning: "Valsts valodas centrs"

View File

@@ -0,0 +1,67 @@
id: domain.kultura-valoda
title: "Kultūras un valodu tehnoloģiju joma"
subdomains:
- id: subdomain.kultura
title: "Kultūras apakšjoma"
- id: subdomain.valoda
title: "Valodu tehnoloģiju apakšjoma"
status: draft
owners:
- org.km
implementers:
- org.kisc
major_stakeholders:
- org.lnb
participants:
kultura_apaksjoma:
- org.km
- org.kisc
- org.lnb
- org.lna
- org.nkmp
- org.lnkc
- org.nkc
- org.vkkf
- org.lnb_nerezigo
- org.lnmm
- org.rvkm
- org.lebm
- org.lnvm
- org.lnrm
- org.turaida
- org.mma
- org.lka
- org.lma
- org.jvlma
- org.liepaja_mimd
- org.riga_dizains
- org.nmv
- org.ventspils_muz
- org.latgale_muz_maksla
- org.sb_daugavpils
- org.ak_cesis
- org.jm_riga
- org.jelgava_muz
- org.iem_ic
- org.csp
- org.varam
- org.vdaa
valodu_tehnologiju_apaksjoma:
- org.km
- org.kisc
- org.lnb
- org.vdaa
- org.ta
- org.lumii
- org.tm
- org.vvc
- org.lva
- org.lang_data_holders
- org.state_institutions

View File

@@ -0,0 +1,72 @@
groups:
- id: legal.data-protection
title: "Personas datu aizsardzība"
items:
- ref: doc.gdpr-2016-679
notes: "Personas datu apstrādes principi, tiesiskais pamats, datu subjektu tiesības; ietekmē visus e-pakalpojumus un datu kopas."
- ref: doc.lv-personas-datu-apstrade
notes: "Nacionālā ieviešana un papildprasības; atbildību sadalījums un procedūras."
- id: legal.cybersecurity
title: "Kiberdrošība un noturība"
items:
- ref: doc.nis2-2022-2555
notes: "Drošības pārvaldība, incidentu ziņošana, piegādes ķēžu risku vadība; ietekmē IS un platformas."
- ref: doc.lv-kiberdrosibas-regulejums
notes: "Nacionālās prasības valsts IS drošībai un incidentu vadībai."
- id: legal.accessibility
title: "Piekļūstamība"
items:
- ref: doc.web-accessibility-2016-2102
notes: "Piekļūstamības prasības publiskā sektora tīmekļa vietnēm un mobilajām lietotnēm; jāievēro WCAG prasības."
- id: legal.open-data
title: "Atvērtie dati un atkārtota izmantošana"
items:
- ref: doc.open-data-directive-2019-1024
notes: "PSI atkārtotas izmantošanas nosacījumi un atvērto datu publicēšana."
- ref: doc.atverto-datu-portals
notes: "Praktiskais publicēšanas kanāls; datu produktu publicēšanas procesi."
- id: legal.copyright
title: "Autortiesības un digitālo objektu izmantošana"
items:
- ref: doc.copyright-directive-2019-790
notes: "Digitālais vienotais tirgus, licencēšana un noteikumi TDM gadījumiem."
- ref: doc.lv-autortiesibu-likums
notes: "Nacionālais regulējums digitālo objektu izmantošanai un izplatīšanai."
- id: legal.identity
title: "Identitāte un autentifikācija"
items:
- ref: doc.eidas2-regula
notes: "Digitālās identitātes prasības ES līmenī; ietekmē autentifikācijas un pilnvarojuma arhitektūru."
- ref: doc.vpm
notes: "Koplietošanas komponente autentifikācijai; rekomendējama vienotai piekļuvei."
- id: legal.ai
title: "Mākslīgais intelekts un valodu tehnoloģijas"
items:
- ref: doc.ai-act-2024-1689
notes: "MI sistēmu riska klase, atbilstības pienākumi, pārredzamība; tieši attiecas uz valodu tehnoloģiju risinājumiem un valodu modeli."
- ref: doc.datu-anonimizacijas-riks
notes: "Datu sagatavošana (anonimizācija) valodu modeļa apmācībai un analītikai."
- id: legal.governance
title: "Publiskā sektora IKT pārvaldība un sadarbspēja"
items:
- ref: doc.lv-valsts-informacijas-sistemu-likums
notes: "Valsts IS pārvaldības pamati, reģistrācija, sadarbspēja; ietekmē VIRSIS un integrācijas prasības."
- ref: doc.virsis
notes: "IS un integrāciju reģistrēšana; metadatu uzturēšana."
- ref: doc.dagr
notes: "Datu integrācija, apmaiņa, publicēšana; koplietošanas princips."
- ref: doc.lv-ikp-arhitektura-ietvars
notes: "Nosaka arhitektūras skatus un apraksta metodiku; jāievēro jomas arhitektūras aprakstā."
- id: legal.archiving
title: "Ilgtermiņa saglabāšana un arhivēšana"
items:
- ref: doc.nacionals-arhivs-ilgtermina-saglabasana
notes: "Vienots ilgtermiņa saglabāšanas risinājums; ietekmē digitālo objektu dzīves ciklu un formātu prasības."

View File

@@ -0,0 +1,11 @@
mappings:
- domain_principle_id: principle.p1
maps_to: ["national.principle.interoperability"]
- domain_principle_id: principle.p2
maps_to: ["national.principle.security"]
- domain_principle_id: principle.p3
maps_to: ["national.principle.data_governance"]
- domain_principle_id: principle.p4
maps_to: ["national.principle.accessibility"]
notes:
- "Nacionālo principu ID šeit ir placeholderi; tiks aizstāti ar oficiālajiem ID, kad tie tiks ielasīti kopējā SSOT."

View File

@@ -0,0 +1,13 @@
items:
- id: principle.p1
title: "Savietojamība un atkārtota izmantošana"
description: "Komponentes un dati tiek veidoti atkārtoti izmantojami un savietojami starp iestādēm."
- id: principle.p2
title: "Drošība un noturība"
description: "Risinājumi ievēro kiberdrošības prasības un nodrošina nepārtrauktību."
- id: principle.p3
title: "Datu kvalitāte un pārvaldība"
description: "Datu kopas tiek pārvaldītas ar definētiem kvalitātes un metadatu principiem."
- id: principle.p4
title: "Digitāla pieejamība"
description: "Pakalpojumi un saturs ir pieejams lietotājiem, ievērojot piekļūstamību."

View File

@@ -0,0 +1,156 @@
items:
- id: doc.km-strategija-2022-2027
title: "Kultūras ministrijas darbības stratēģija 2022.–2027. gadam"
type: "strategy"
date: "2022"
relevance: "Nosaka kultūrpolitikas rīcības virzienus, kas ietekmē digitālo pakalpojumu un datu attīstības prioritātes."
- id: doc.kpnostadnes-2022-2027
title: "Kultūrpolitikas pamatnostādnes 2022.–2027. gadam"
type: "strategy"
date: "2022"
relevance: "Nosaka kultūras nozares attīstības mērķus un uzdevumus, kas jāatbalsta ar IKT risinājumiem un datu pārvaldību."
- id: doc.mk-rikojums-380-2023
title: "MK rīkojums Nr. 380 (29.06.2023) – Par digitālās transformācijas pamatnostādnēm 2021.–2027."
type: "policy"
date: "2023-06-29"
relevance: "Definē valsts digitālās transformācijas ietvaru un saskaņojamās pieejas (pakalpojumi, dati, koplietošanas platformas)."
- id: doc.eidas2-regula
title: "Eiropas Parlamenta un Padomes regula par Eiropas digitālo identitāti (eIDAS2)"
type: "law"
date: "2024"
relevance: "Ietekmē lietotāju identitātes, autentifikācijas un pilnvarojuma risinājumus, īpaši e-pakalpojumos."
- id: doc.gdpr-2016-679
title: "Regula (ES) 2016/679 – Vispārīgā datu aizsardzības regula (GDPR)"
type: "law"
date: "2016"
relevance: "Nosaka personas datu apstrādes principus, datu subjektu tiesības un tehniskos/organizatoriskos pasākumus."
- id: doc.nis2-2022-2555
title: "Direktīva (ES) 2022/2555 – NIS2"
type: "law"
date: "2022"
relevance: "Nosaka kiberdrošības prasības būtiskiem un svarīgiem pakalpojumiem, ietekmējot IS drošības pārvaldību."
- id: doc.ai-act-2024-1689
title: "Regula (ES) 2024/1689 – Mākslīgā intelekta akts (EU AI Act)"
type: "law"
date: "2024"
relevance: "Ietekmē valodu tehnoloģiju un MI risinājumu ieviešanu, risku pārvaldību, pārredzamību un atbilstības pienākumus."
- id: doc.open-data-directive-2019-1024
title: "Direktīva (ES) 2019/1024 – Atvērto datu un publiskā sektora informācijas atkārtotas izmantošanas direktīva"
type: "law"
date: "2019"
relevance: "Nosaka publicējamo datu atkārtotas izmantošanas nosacījumus, ietekmē atvērto datu publicēšanas prasības."
- id: doc.web-accessibility-2016-2102
title: "Direktīva (ES) 2016/2102 – Tīmekļa vietņu un mobilo lietotņu piekļūstamība"
type: "law"
date: "2016"
relevance: "Nosaka piekļūstamības prasības publiskā sektora digitālajiem pakalpojumiem (WCAG u.c. standarti)."
- id: doc.copyright-directive-2019-790
title: "Direktīva (ES) 2019/790 – Autortiesības digitālajā vienotajā tirgū"
type: "law"
date: "2019"
relevance: "Ietekmē digitālo objektu izmantošanu, licencēšanu un izplatīšanu, kā arī teksta un datu ieguvi noteiktos gadījumos."
- id: doc.latvija-infosabiedriba-pamatnostadnes
title: "Latvijas informācijas sabiedrības attīstības pamatnostādnes (aktuālā redakcija)"
type: "policy"
date: "—"
relevance: "Nosaka horizontālus IKT pārvaldības, datu un pakalpojumu attīstības principus valsts pārvaldē."
- id: doc.lv-ikp-arhitektura-ietvars
title: "Valsts pārvaldes IKT arhitektūras ietvars / vadlīnijas (VDAA)"
type: "guideline"
date: "—"
relevance: "Nosaka arhitektūras aprakstu pieeju un skatus (bizness, dati, lietojumprogrammas, tehnoloģijas) publiskajā sektorā."
- id: doc.vpm
title: "Vienotās pieteikšanās modulis (VPM) – koplietošanas komponente"
type: "platform"
date: "—"
relevance: "Ietekmē autentifikāciju un identitātes pārvaldību, vienotai piekļuvei e-pakalpojumiem."
- id: doc.dagr
title: "DAGR – koplietošanas datu apmaiņas/pārvaldības risinājums (VDAA)"
type: "platform"
date: "—"
relevance: "Ietekmē datu integrācijas un publicēšanas iespējas, saskaņā ar koplietošanas principiem."
- id: doc.virsis
title: "VIRSIS – valsts informācijas resursu/sadarbspējas reģistrs"
type: "platform"
date: "—"
relevance: "Ietekmē IS un integrāciju reģistrēšanu, metadatus un pārvaldības caurspīdīgumu."
- id: doc.atverto-datu-portals
title: "Atvērto datu portāls (Latvija) – publicēšanas kanāls"
type: "platform"
date: "—"
relevance: "Kanonisks kanāls atvērtu datu publicēšanai, ietekmē datu produktu publicēšanas procesus."
- id: doc.nacionals-arhivs-ilgtermina-saglabasana
title: "Vienots elektronisko dokumentu ilgtermiņa saglabāšanas (arhivēšanas) risinājums (sadarbībā ar VARAM u.c.)"
type: "platform"
date: "—"
relevance: "Ietekmē digitālo objektu un dokumentu saglabāšanas, arhivēšanas un formātu pārvaldības prasības."
- id: doc.datu-anonimizacijas-riks
title: "Datu anonimizācijas rīks (TA) – koplietošanas rīks"
type: "tool"
date: "—"
relevance: "Ietekmē datu kopu sagatavošanu (valodu modelim, pētniecībai), nodrošinot personas datu aizsardzību."
- id: doc.kulturas-statistika-analitika
title: "Kultūras nozares statistikas datu analītikas risinājums (sadarbība ar CSP)"
type: "solution"
date: "—"
relevance: "Ietekmē datu analītikas mērķus, indikatorus un datu avotu integrācijas prasības."
- id: doc.map-platforma
title: "Mērķa finansējuma izlietojuma pārvaldības platforma (MAP) (IeM IC)"
type: "solution"
date: "—"
relevance: "Ietekmē VKKF/NKC procesu digitalizāciju un integrācijas prasības ar kultūras datiem un pakalpojumiem."
- id: doc.valodu-modela-datu-kopas
title: "Valodu modeļa izveidei un apmācībai nepieciešamo datu kopu pārvaldība (LNB koordinācija)"
type: "dataset"
date: "—"
relevance: "Nosaka datu turētāju, kvalitātes, licencēšanas un pieejamības prasības valodu tehnoloģiju risinājumiem."
- id: doc.lv-autortiesibu-likums
title: "Autortiesību likums (Latvija)"
type: "law"
date: "—"
relevance: "Nosaka autortiesību aizsardzību digitālajiem objektiem, licencēšanas un izmantošanas nosacījumus."
- id: doc.lv-personas-datu-apstrade
title: "Fizisko personu datu apstrādes likums (Latvija) un saistītie normatīvie akti"
type: "law"
date: "—"
relevance: "Papildina GDPR ieviešanu Latvijā; ietekmē datu apstrādes procesu un atbildību sadalījumu."
- id: doc.lv-informacijas-atklatiba
title: "Informācijas atklātības likums (Latvija)"
type: "law"
date: "—"
relevance: "Ietekmē pieprasījumu apstrādi, publicēšanas pienākumus un informācijas pieejamības principus."
- id: doc.lv-valsts-informacijas-sistemu-likums
title: "Valsts informācijas sistēmu likums / IKT pārvaldības regulējums (Latvija)"
type: "law"
date: "—"
relevance: "Nosaka valsts IS pārvaldības pamatus, reģistrāciju, sadarbspēju un atbildības aspektus."
- id: doc.lv-kiberdrosibas-regulejums
title: "Kiberdrošības regulējums (Latvija) un prasības valsts IS drošībai"
type: "law"
date: "—"
relevance: "Nosaka drošības prasības, incidentu vadību un atbilstības pienākumus valsts sektora IS."

View File

@@ -0,0 +1,7 @@
items:
- term: "Mērķarhitektūra"
definition: "Jomas mērķstāvokļa arhitektūras apraksts (3–5 gadu horizontā)."
- term: "Informācijas resurss"
definition: "Datu kopa / informācijas objekti, kas tiek uzturēti un izmantoti pakalpojumu sniegšanai."
- term: "SSOT"
definition: "Single Source of Truth — autoritatīvais arhitektūras saturs šajā repo."

View File

@@ -0,0 +1,8 @@
strengths:
- "Nozarē ir identificētas prioritātes kultūras satura saglabāšanai un pieejamībai."
weaknesses:
- "Sistēmu un datu pārvaldība vēsturiski ir sadrumstalota (dažādas platformas, dažādi standarti)."
opportunities:
- "Valodu tehnoloģiju attīstība (LVM-LV) ļauj uzlabot publiskos pakalpojumus un efektivitāti."
threats:
- "Kiberdrošības riski un darbības nepārtrauktības prasības pieaug (M6)."

View File

@@ -0,0 +1,7 @@
id: goal.m1
code: M1
title: "Kultūras mantojuma saglabāšana un pieejamības nodrošināšana"
description: >
Nodrošināt kultūras mantojuma drošu uzkrāšanu, saglabāšanu (t.sk. digitalizēšanu),
pieejamību, izmantojamību, kā arī aizsardzību krīzes situācijās.
status: active

View File

@@ -0,0 +1,7 @@
id: goal.m2
code: M2
title: "Kultūras mantojuma izmantojums produktu un pakalpojumu attīstībai"
description: >
Veicināt kultūras mantojuma datu izmantošanu jaunu produktu un pakalpojumu attīstībai,
t.sk. izglītībā, pētniecībā, tūrismā un radošajās industrijās.
status: active

View File

@@ -0,0 +1,7 @@
id: goal.m3
code: M3
title: "Datu pārvaldības un kvalitātes uzlabošana kultūras nozarē"
description: >
Attīstīt standartizētu un savietojamu datu pārvaldību, uzlabot datu kvalitāti un metadatus,
nodrošināt datu atkalizmantojamību un analītiku kultūras politikas un pārvaldības vajadzībām.
status: active

View File

@@ -0,0 +1,7 @@
id: goal.m4
code: M4
title: "Latviešu valoda digitālajā laikmetā"
description: >
Nodrošināt latviešu valodas klātbūtni un izmantojamību mākslīgā intelekta un valodu tehnoloģiju risinājumos,
attīstot valodas resursus, modeļus un pakalpojumus.
status: active

View File

@@ -0,0 +1,7 @@
id: goal.m5
code: M5
title: "Kultūras institūciju digitālā klātesamība un integrācija"
description: >
Stiprināt kultūras institūciju digitālo klātbūtni, veicināt vienotu lietotāju pieredzi,
pakalpojumu pieejamību un sistēmu integrāciju.
status: active

View File

@@ -0,0 +1,7 @@
id: goal.m6
code: M6
title: "Kiberdrošība, noturība un nepārtrauktība"
description: >
Nodrošināt drošības, noturības un nepārtrauktības prasību ievērošanu jomas risinājumos,
t.sk. datu aizsardzību, pieejamību, rezerves kopēšanu un incidentu pārvaldību.
status: active

View File

@@ -0,0 +1,287 @@
items:
- id: org.km
title: "Kultūras ministrija (KM)"
role: "politikas veidotājs / pārvaldība"
responsibilities:
- "Veido un pārrauga KM un tās padotības iestāžu (kultūras resora) IKT politiku"
- "Vada jomas IKT padomi"
- "Apakšjomas mērķarhitektūras turētājs"
status: active
- id: org.kisc
title: "Kultūras informācijas sistēmu centrs (KISC)"
role: "ieviesējs / uzturētājs"
responsibilities:
- "Pārvalda, uztur un attīsta KM un tās padotības iestāžu (kultūras resora) IKT koplietošanas infrastruktūru un aprīkojumu"
- "Pārvalda, uztur, izstrādā un attīsta kultūras resora IS un elektroniskos pakalpojumus"
- "Apakšjomas mērķarhitektūras izstrādātājs un realizācijas īstenotājs"
status: active
- id: org.lnb
title: "Latvijas Nacionālā bibliotēka (LNB)"
role: "būtisku IS turētājs / lietotājs"
responsibilities:
- "Būtisku Kultūras apakšjomas IS turētājs, lietotājs"
- "Pārvalda, uztur, izstrādā un attīsta LNB un koplietošanas IKT sistēmas, infrastruktūru un pakalpojumus"
- "Nodrošina un attīsta valsts nozīmes mākoņdatošanas pārvaldības un pakalpojumu platformu un tās infrastruktūru"
- "Valodu tehnoloģiju apakšjomā: piedalās risinājumu attīstībā un testēšanā; nodrošina un pārvalda datu kopas; koordinē to pārvaldību; infrastruktūras nodrošinātājs (ja lietderīgi)"
status: active
- id: org.lna
title: "Latvijas Nacionālais arhīvs (LNA)"
role: "būtisku IS turētājs / lietotājs"
responsibilities:
- "Būtisku Kultūras apakšjomas IS turētājs un lietotājs"
- "Pārvalda un attīsta LNA elektroniskos pakalpojumus"
status: active
- id: org.nkmp
title: "Nacionālā kultūras mantojuma pārvalde (NKMP)"
role: "IS turētājs / lietotājs"
responsibilities:
- "Kultūras apakšjomas IS turētājs un lietotājs"
- "Pārvalda un attīsta NKMP elektroniskos pakalpojumus"
status: active
- id: org.lnkc
title: "Latvijas Nacionālais kultūras centrs (LNKC)"
role: "IS turētājs / lietotājs"
responsibilities:
- "Kultūras apakšjomas IS turētājs un lietotājs"
- "Pārvalda un attīsta LNKC elektroniskos pakalpojumus"
status: active
- id: org.nkc
title: "Nacionālais kino centrs (NKC)"
role: "IS lietotājs"
responsibilities:
- "Kultūras apakšjomas IS lietotājs"
- "Pārvalda un attīsta NKC elektroniskos pakalpojumus"
status: active
- id: org.vkkf
title: "Valsts kultūrkapitāla fonds (VKKF)"
role: "IS lietotājs"
responsibilities:
- "Kultūras apakšjomas IS lietotājs"
- "Pārvalda un attīsta VKKF elektroniskos pakalpojumus"
status: active
- id: org.lnb_nerezigo
title: "Latvijas neredzīgo bibliotēka"
role: "IS lietotājs"
responsibilities:
- "Kultūras apakšjomas IS lietotājs"
- "Pārvalda un attīsta Latvijas neredzīgo bibliotēkas elektroniskos pakalpojumus"
status: active
- id: org.lnmm
title: "Latvijas Nacionālais mākslas muzejs"
role: "IS lietotājs"
responsibilities:
- "Kultūras apakšjomas IS lietotājs"
status: active
- id: org.rvkm
title: "Rīgas vēstures un kuģniecības muzejs"
role: "IS lietotājs"
responsibilities:
- "Kultūras apakšjomas IS lietotājs"
status: active
- id: org.lebm
title: "Latvijas Etnogrāfiskais brīvdabas muzejs"
role: "IS lietotājs"
responsibilities:
- "Kultūras apakšjomas IS lietotājs"
status: active
- id: org.lnvm
title: "Latvijas Nacionālais vēstures muzejs"
role: "IS lietotājs"
responsibilities:
- "Kultūras apakšjomas IS lietotājs"
status: active
- id: org.lnrm
title: "Latvijas Nacionālais rakstniecības un mūzikas muzejs"
role: "IS lietotājs"
responsibilities:
- "Kultūras apakšjomas IS lietotājs"
status: active
- id: org.turaida
title: "Īpaši aizsargājamais kultūras piemineklis – Turaidas muzejrezervāts"
role: "IS lietotājs"
responsibilities:
- "Kultūras apakšjomas IS lietotājs"
status: active
- id: org.mma
title: "Memoriālo muzeju apvienība"
role: "IS lietotājs"
responsibilities:
- "Kultūras apakšjomas IS lietotājs"
status: active
- id: org.lka
title: "Latvijas Kultūras akadēmija"
role: "IS lietotājs"
responsibilities:
- "Kultūras apakšjomas IS lietotājs"
status: active
- id: org.lma
title: "Latvijas Mākslas akadēmija"
role: "IS lietotājs"
responsibilities:
- "Kultūras apakšjomas IS lietotājs"
status: active
- id: org.jvlma
title: "Jāzepa Vītola Latvijas Mūzikas akadēmija"
role: "IS lietotājs"
responsibilities:
- "Kultūras apakšjomas IS lietotājs"
status: active
- id: org.liepaja_mimd
title: "Mākslu izglītības kompetences centrs Liepājas Mūzikas, mākslas un dizaina vidusskola"
role: "IS lietotājs"
responsibilities:
- "Kultūras apakšjomas IS lietotājs"
status: active
- id: org.riga_dizains
title: "Mākslu izglītības kompetences centrs \"Rīgas Dizaina un mākslas vidusskola\""
role: "IS lietotājs"
responsibilities:
- "Kultūras apakšjomas IS lietotājs"
status: active
- id: org.nmv
title: "Mākslu izglītības kompetences centrs Nacionālā Mākslu vidusskola"
role: "IS lietotājs"
responsibilities:
- "Kultūras apakšjomas IS lietotājs"
status: active
- id: org.ventspils_muz
title: "Mākslu izglītības kompetences centrs \"Ventspils Mūzikas vidusskola\""
role: "IS lietotājs"
responsibilities:
- "Kultūras apakšjomas IS lietotājs"
status: active
- id: org.latgale_muz_maksla
title: "Mākslu izglītības kompetences centrs “Latgales Mūzikas un mākslas vidusskola”"
role: "IS lietotājs"
responsibilities:
- "Kultūras apakšjomas IS lietotājs"
status: active
- id: org.sb_daugavpils
title: "Staņislava Broka Daugavpils mūzikas vidusskola"
role: "IS lietotājs"
responsibilities:
- "Kultūras apakšjomas IS lietotājs"
status: active
- id: org.ak_cesis
title: "Alfrēda Kalniņa Cēsu mūzikas vidusskola"
role: "IS lietotājs"
responsibilities:
- "Kultūras apakšjomas IS lietotājs"
status: active
- id: org.jm_riga
title: "Jāzepa Mediņa Rīgas mūzikas vidusskola"
role: "IS lietotājs"
responsibilities:
- "Kultūras apakšjomas IS lietotājs"
status: active
- id: org.jelgava_muz
title: "Jelgavas mūzikas vidusskola"
role: "IS lietotājs"
responsibilities:
- "Kultūras apakšjomas IS lietotājs"
status: active
- id: org.iem_ic
title: "Iekšlietu ministrijas Informācijas centrs (IeM IC)"
role: "sadarbības partneris"
responsibilities:
- "Mērķa finansējuma izlietojuma pārvaldības platformas (MAP) pielāgošana NKC un VKKF biznesa procesiem un vajadzībām"
status: active
- id: org.csp
title: "Centrālā statistikas pārvalde (CSP)"
role: "sadarbības partneris"
responsibilities:
- "Sadarbība kultūras nozares statistikas datu analītikas risinājuma izveidē"
status: active
- id: org.varam
title: "Viedās administrācijas un reģionālās attīstības ministrija (VARAM)"
role: "sadarbības partneris"
responsibilities:
- "Sadarbība vienotas elektronisko dokumentu ilgtermiņa saglabāšanas (arhivēšanas) risinājuma izveidē"
status: active
- id: org.vdaa
title: "Valsts digitālās attīstības aģentūra (VDAA)"
role: "komponenšu / koplietošanas risinājumu turētājs"
responsibilities:
- "Risinājumos pārizmantojamu komponenšu un risinājumu (VPM, DAGR, VIRSIS, Atvērto datu portāls) turētājs"
- "Sadarbība lietotāju pārvaldībā un koplietošanas risinājumu izmantošanā"
status: active
- id: org.ta
title: "Tiesu administrācija (TA)"
role: "rīka turētājs / sadarbības partneris"
responsibilities:
- "Datu anonimizācijas rīka turētājs"
status: active
- id: org.lumii
title: "Latvijas Universitātes Matemātikas un informātikas institūts (LUMII)"
role: "sadarbības partneris"
responsibilities:
- "Sadarbība valodu tehnoloģiju jomas risinājumu izstrādē"
status: active
- id: org.tm
title: "Tieslietu ministrija (TM)"
role: "sadarbības partneris"
responsibilities:
- "Sadarbība valodu tehnoloģiju jomas risinājumu izstrādē"
status: active
- id: org.vvc
title: "Valsts valodas centrs (VVC)"
role: "sadarbības partneris"
responsibilities:
- "Sadarbība valodu tehnoloģiju jomas risinājumu izstrādē"
status: active
- id: org.lva
title: "Latviešu valodas aģentūra (LVA)"
role: "sadarbības partneris"
responsibilities:
- "Sadarbība valodu tehnoloģiju jomas risinājumu izstrādē"
status: active
- id: org.lang_data_holders
title: "Valodu modeļa izveidei un apmācībai nepieciešamo datu turētāji un datu vākšanas risinājumu turētāji"
role: "datu turētāji"
responsibilities:
- "Nodrošina datu pieejamību valodu modeļa izveidei un apmācībai"
status: active
- id: org.state_institutions
title: "Valsts pārvaldes institūcijas"
role: "koplietošanas rīku izmantotāji"
responsibilities:
- "Valodu jomas koplietošanas rīku izmantotāji"
status: active

View File

@@ -0,0 +1,49 @@
items:
- id: func.01
subdomain: subdomain.kultura
name: "Kultūras mantojuma satura radīšanas veicināšana, satura apzināšana, fiksēšana, pētniecība"
change_status: "Izmaiņas"
change_description: >
Funkcija tiek stiprināta ar digitāliem rīkiem un datu pieeju, lai uzlabotu kultūras vērtību identificēšanu,
strukturēšanu un analīzi, samazinot manuālo darbu un palielinot procesa caurspīdīgumu.
- id: func.02
subdomain: subdomain.kultura
name: "Kultūras mantojuma, dokumentu un datu saglabāšana, aizsardzība un pieejamības nodrošināšana"
change_status: "Izmaiņas"
change_description: >
Attīstāma centralizēta digitālās saglabāšanas pieeja, kas nodrošina ilgtermiņa glabāšanu,
elastīgu piekļuvi dažādām lietotāju grupām un drošības prasību ievērošanu.
- id: func.03
subdomain: subdomain.kultura
name: "Kultūras mantojuma satura digitalizācija, digitālā satura pieejamības nodrošināšana"
change_status: "Izmaiņas"
change_description: >
Digitalizācija tiek paplašināta ar semantisko bagātināšanu, meklējamību un integrāciju,
lai digitālais saturs kļūtu plašāk izmantojams un atkārtoti lietojams.
- id: func.04
subdomain: subdomain.kultura
name: "Kultūrizglītības īstenošana, attīstība, popularizēšana"
change_status: "Izmaiņas"
change_description: >
Funkcija tiek stiprināta ar digitālajiem resursiem un personalizētu satura piegādi dažādām auditorijām,
tostarp mūžizglītības un izglītības vajadzībām.
- id: func.05
subdomain: subdomain.valoda
name: "Publiskās pārvaldes valodu tehnoloģiju platformas uzturēšana un attīstība"
change_status: "Izmaiņas"
change_description: >
Pāreja no atsevišķiem rīkiem uz integrētu platformu, kur valodas resursi, modeļi un pakalpojumi
tiek uzturēti kā koplietošanas infrastruktūra.
- id: func.06
subdomain: subdomain.valoda
name: "Lielā latviešu valodas modeļa (LVM-LV) uzturēšana un attīstība"
change_status: "Jauns"
change_description: >
Jauna funkcija valsts mēroga valodas infrastruktūras pamatelementam, kas nodrošina latviešu valodas
klātbūtni MI risinājumos. Ietver datu kopu pārvaldību, modeļa uzturēšanu, pielāgošanu uzdevumiem un
sadarbību ar pētniecības/izstrādes partneriem.

View File

@@ -0,0 +1,266 @@
items:
- id: svc.kultura.01
number: 1
subdomain: subdomain.kultura
name: |-
Kultūras jomas statistikas datu
apstrādes nodrošināšana, datu
pieejamības nodrošināšana
status: Izmaiņas
change_description: |-
Plānots ieviest vienotu kultūras
stati... balstītu lēmumu
pieņemšanu kultūras politikā un
pārvaldībā.
resources:
- raw: Latvijas Kultūras datu portāls/
virsis_id: null
- raw: Programmatūra/ VIRSIS ID 544.
virsis_id: 544
- raw: Latvijas kultūras jomas oficiālās
virsis_id: null
- raw: statistikas dati/ Informācijas resurss/
virsis_id: null
- raw: VIRSIS ID 545.
virsis_id: 545
- raw: Un citi (tiks papildināts nākamajās
virsis_id: null
- raw: versijās pēc reģistrācijas VIRSIS).
virsis_id: null
- id: svc.kultura.02
number: 2
subdomain: subdomain.kultura
name: |-
Kultūras mantojuma integrācijas
platformas datu apstrādes
nodrošināšana, digitalizēto objektu
pārvaldības un izplatīšanas
nodrošināšana
status: Izmaiņas
change_description: |-
Plānots paplašināt datu apmaiņas
iespējas starp kultūras ma...
piemēram, izglītības, pētniecības un
tūrisma vajadzībām. .
resources:
- raw: Tiks papildināts nākamajās
virsis_id: null
- raw: versijās pēc reģistrācijas VIRSIS).
virsis_id: null
- id: svc.kultura.03
number: 3
subdomain: subdomain.kultura
name: |-
Kultūras mantojuma digitālo objektu
reģistrs informācijas uzkrāšanas
nodrošināšana
status: Izmaiņas
change_description: |-
Tiks pilnveidots reģistrs (DOM)
meklēšanas un datu attēloša...
pieejamība sabiedrībai,
ievērojot normatīvos ierobežojumus.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: svc.kultura.04
number: 4
subdomain: subdomain.kultura
name: |-
Arhīvu datu apstrādes nodrošināšana,
datu pieejamības un izplatīšanas
nodrošināšana
status: Izmaiņas
change_description: |-
Plānots uz Vienotās valsts arhīvu
informācijas sistēmas bāzes ...
augstāku datu kvalitāti un pieejamību.
resources:
- raw: Tiks papildināts nākamajās
virsis_id: null
- raw: versijās pēc reģistrācijas VIRSIS).
virsis_id: null
- id: svc.kultura.05
number: 5
subdomain: subdomain.kultura
name: |-
Kultūras nozares mērķprogrammu
pieteikumu un projektu datu apstrādes
nodrošināšana
status: Izmaiņas
change_description: |-
Plānots pāriet uz vienotu
mērķprogrammu pārvaldības...
kas ļaus automatizēt datu
apmaiņu un samazināt manuālo darbu.
resources:
- raw: Tiks papildināts nākamajās
virsis_id: null
- raw: versijās pēc reģistrācijas VIRSIS).
virsis_id: null
- id: svc.kultura.06
number: 6
subdomain: subdomain.kultura
name: |-
Valsts nozīmes bibliotēku krājuma datu
apstrāde un pieejamības nodrošināšana
status: Izmaiņas
change_description: |-
Tiks turpināts attīstīt Vienotais bibliotēku kopkatalogs (VBK),
uzlabojot datu integrāciju un piekļuvi.
resources:
- raw: Tiks papildināts nākamajās
virsis_id: null
- raw: versijās pēc reģistrācijas VIRSIS).
virsis_id: null
- id: svc.kultura.07
number: 7
subdomain: subdomain.kultura
name: |-
Bibliotēku datu apstrādes nodrošināšana,
pakalpojumu sniegšanas un pieejamības
nodrošināšana
status: Izmaiņas
change_description: |-
Plānota jaunas bibliotēku informācijas sistēmas izveide,
aizstājot tehnoloģiski novecojušus risinājumus un uzlabojot integrācijas.
resources:
- raw: Tiks papildināts nākamajās
virsis_id: null
- raw: versijās pēc reģistrācijas VIRSIS).
virsis_id: null
- id: svc.kultura.08
number: 8
subdomain: subdomain.kultura
name: |-
Atsauces (autoritatīvo) datu apstrādes
nodrošināšana un pieejamības
nodrošināšana
status: Izmaiņas
change_description: |-
Plānots pilnveidot atsauces datu sistēmu,
uzlabojot kvalitāti, savietojamību un integrācijas ar ārējām sistēmām.
resources:
- raw: Tiks papildināts nākamajās
virsis_id: null
- raw: versijās pēc reģistrācijas VIRSIS).
virsis_id: null
- id: svc.kultura.09
number: 9
subdomain: subdomain.kultura
name: |-
Autortiesību pārvaldība un licencēšanas
datu apstrāde
status: Izmaiņas
change_description: |-
Tiks attīstīta autortiesību pārvaldības un licencēšanas datu pārvaldība,
uzlabojot datu pieejamību atbilstoši ierobežojumiem.
resources:
- raw: Autortiesību pārvaldības un
virsis_id: null
- raw: licencēšanas dati/ Informācijas resurss/ ID 51565.
virsis_id: 51565
- id: svc.kultura.10
number: 10
subdomain: subdomain.kultura
name: |-
Kultūras mantojuma digitālo objektu
ilgtermiņa saglabāšanas nodrošināšana
status: Izmaiņas
change_description: |-
Plānots attīstīt vienotu ilgtermiņa saglabāšanas pieeju,
nodrošinot rezerves kopēšanu, noturību un piekļuves kontroli.
resources:
- raw: Tiks papildināts nākamajās
virsis_id: null
- raw: versijās pēc reģistrācijas VIRSIS).
virsis_id: null
- id: svc.kultura.11
number: 11
subdomain: subdomain.kultura
name: |-
Kultūras pieminekļu datu apstrāde un
pieejamības nodrošināšana
status: Izmaiņas
change_description: |-
Tiks attīstīta NKMP mantojuma datu pārvaldība, uzlabojot datu kvalitāti,
meklējamību un integrāciju ar citām platformām.
resources:
- raw: Tiks papildināts nākamajās
virsis_id: null
- raw: versijās pēc reģistrācijas VIRSIS).
virsis_id: null
- id: svc.kultura.12
number: 12
subdomain: subdomain.kultura
name: |-
Nemateriālā kultūras mantojuma datu
apstrāde un pieejamības nodrošināšana
status: Izmaiņas
change_description: |-
Plānota nemateriālā kultūras mantojuma datu pārvaldības attīstība,
uzlabojot uzkrāšanu, meklēšanu un publisko pieejamību.
resources:
- raw: Tiks papildināts nākamajās
virsis_id: null
- raw: versijās pēc reģistrācijas VIRSIS).
virsis_id: null
- id: svc.kultura.13
number: 13
subdomain: subdomain.kultura
name: |-
Nacionālā muzeju krājuma datu apstrāde
un pieejamības nodrošināšana
status: Izmaiņas
change_description: |-
Plānots pilnveidot NMKK informācijas sistēmu, uzlabojot datu struktūru,
savietojamību un publisko pieejamību.
resources:
- raw: Tiks papildināts nākamajās
virsis_id: null
- raw: versijās pēc reģistrācijas VIRSIS).
virsis_id: null
- id: svc.kultura.14
number: 14
subdomain: subdomain.kultura
name: |-
Kultūras mantojuma pieejamības
nodrošināšana publiskajos portālos
status: Izmaiņas
change_description: |-
Plānots attīstīt publiskos portālus, kas nodrošina vienotu piekļuvi
digitalizētajam saturam un uzlabotu lietotāja pieredzi.
resources:
- raw: Tiks papildināts nākamajās
virsis_id: null
- raw: versijās pēc reģistrācijas VIRSIS).
virsis_id: null
- id: svc.kultura.15
number: 15
subdomain: subdomain.kultura
name: |-
LNB mākoņdatošanas pārvaldības un
valsts mēroga platformas pakalpojumu
nodrošināšana
status: Izmaiņas
change_description: |-
Plānots turpināt attīstīt augstas noturības un drošības platformas,
t.sk. MI infrastruktūras pārvaldībai, kultūras nozares koplietošanas vajadzībām.
resources:
- raw: Tiks papildināts nākamajās
virsis_id: null
- raw: versijās pēc reģistrācijas VIRSIS).
virsis_id: null
- id: svc.kultura.16
number: 16
subdomain: subdomain.kultura
name: |-
Lietotāju apkalpošana, reģistrācija un
piekļuves nodrošināšana
status: Izmaiņas
change_description: |-
Lietotāju klātienes apkalpošanas attīstība un piekļuves nodrošināšanas
procesu pilnveide, kas samazinās slogu un veicinās digitālo pakalpojumu izmantošanu.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null

View File

@@ -0,0 +1,179 @@
items:
- id: svc.valoda.01
number: 1
subdomain: subdomain.valoda
name: Runas sīkrīka pakalpojumi
status: Beidz pastāvēt
change_description: |-
Esošie runas sīkrīki, kas nodrošināja vienkāršotu
runas sint...viešu valodas modeli (LVM-LV) un mākslīgā
intelekta iespējām.
resources:
- raw: Runas sīkrīks/
virsis_id: null
- raw: Programmatūra/ VIRSI ID 53219.
virsis_id: 53219
- id: svc.valoda.02
number: 2
subdomain: subdomain.valoda
name: |-
Tulkošanas sīkrīka
pakalpojumi
status: Beidz pastāvēt
change_description: |-
Esošie tulkošanas sīkrīki, kas nodrošināja
vienkāršotu teksta...iešu
valodas modeli (LVM-LV) un daudzvalodu MI
arhitektūrām.
resources:
- raw: Tulkošanas sīkrīk/
virsis_id: null
- raw: Programmatūra/ VIRSIS ID 53323.
virsis_id: 53323
- id: svc.valoda.03
number: 3
subdomain: subdomain.valoda
name: |-
Tulkošanas logrīka
pakalpojumi
status: Beidz pastāvēt
change_description: |-
Tulkošanas logrīki, kas tika izmantoti kā
iebūvējami tulkošanas...MI
arhitektūrām, kur tulkošana tiks nodrošināta ar centralizētiem pakalpojumiem.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: svc.valoda.04
number: 4
subdomain: subdomain.valoda
name: Mašīntulka pakalpojumi
status: Izmaiņas
change_description: |-
Esošie mašīntulkošanas pakalpojumi tiks būtiski modernizēti,
ieviešot integrāciju ar LVM-LV un daudzvalodu MI arhitektūrām.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: svc.valoda.05
number: 5
subdomain: subdomain.valoda
name: Mobilās lietotnes
status: Izmaiņas
change_description: |-
Plānots izstrādāt modernizētu mobilo lietotni, kas
izmantos LVM-LV un valodu tehnoloģiju platformu pakalpojumus.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: svc.valoda.06
number: 6
subdomain: subdomain.valoda
name: |-
Virtuālā asistenta
pakalpojumi
status: Izmaiņas
change_description: |-
Esošie virtuālie asistenti tiks modernizēti,
nodrošinot vienotu piekļuvi valodu tehnoloģiju platformai un LVM-LV iespējām.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: svc.valoda.07
number: 7
subdomain: subdomain.valoda
name: |-
Runas atpazīšanas rīka
pakalpojumi
status: Izmaiņas
change_description: |-
Esošais runas atpazīšanas rīks tiks būtiski modernizēts,
balstoties uz LVM-LV un jaunākām MI arhitektūrām.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: svc.valoda.08
number: 8
subdomain: subdomain.valoda
name: Runas sintēzes pakalpojumi
status: Izmaiņas
change_description: |-
Runas sintēzes pakalpojums tiks modernizēts,
nodrošinot labāku kvalitāti, integrācijas un izmantojamību valsts pakalpojumos.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: svc.valoda.09
number: 9
subdomain: subdomain.valoda
name: Vieglās valodas rīks
status: Izmaiņas
change_description: |-
Tiks attīstīts vieglās valodas rīks, kas, izmantojot MI,
palīdzēs vienkāršot tekstus un uzlabot piekļūstamību.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: svc.valoda.10
number: 10
subdomain: subdomain.valoda
name: Teksta ģenerēšanas pakalpojumi
status: Jauns
change_description: |-
Tiks izveidots pakalpojums, kas ļaus valsts
iestādēm ģenerēt tekstus, balstoties uz LVM-LV, ievērojot drošības prasības.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: svc.valoda.11
number: 11
subdomain: subdomain.valoda
name: Kopsavilkumu izveides pakalpojumi
status: Jauns
change_description: |-
Pakalpojums nodrošinās iespēju automātiski
veidot kopsavilkumus un strukturēt informāciju valsts pārvaldes vajadzībām.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: svc.valoda.12
number: 12
subdomain: subdomain.valoda
name: |-
Meklēšanas dokumentos
pakalpojumi valsts pārvaldes
institūcijām
status: Jauns
change_description: |-
Tiks izstrādāts semantiskās meklēšanas
pakalpojums, kas ļaus atrast informāciju dokumentos un palīdzēs analītikā.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: svc.valoda.13
number: 13
subdomain: subdomain.valoda
name: |-
LVM publiskie pakalpojumi
- LVM modelis MI izpētes
un attīstības vajadzībām
status: Jauns
change_description: |-
Tiks izveidots publisks pakalpojums, kas
nodrošinās piekļuvi valodas infrastruktūrai pētniecībai un inovācijām.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: svc.valoda.14
number: 14
subdomain: subdomain.valoda
name: |-
Jaunu valodu tehnoloģiju
pārnese un izmitināšana
status: Jauns
change_description: |-
Tiks izveidots pakalpojums, kas nodrošinās
jaunu valodu tehnoloģiju ieviešanu, izmitināšanu un darbību, ievērojot regulējumu un kiberdrošību.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null

View File

@@ -0,0 +1,173 @@
items:
- id: ir.kultura.01
number: 1
subdomain: subdomain.kultura
name: |-
Kultūras jomas iestāžu dati
status: Izmaiņas
description: |-
Plānots uzlabot kultūras iestāžu
pamatinformācijas datu str...as plānošanā.
Uzlabojumi atbalstīs plašākas iespējas šo datu
resources:
- raw: Latvijas Kultūras datu portāls/
virsis_id: null
- raw: Programmatūra / VIRSIS ID 544.
virsis_id: 544
- id: ir.kultura.02
number: 2
subdomain: subdomain.kultura
name: Kultūras jomas statiskas dati
status: Izmaiņas
description: |-
Plānots pāriet uz vienotu kultūras statistikas
datu pārvald...ietošanas platformām (piemēram, DAGR)
un citiem risinājumiem.
resources:
- raw: Latvijas kultūras jomas oficiālās statistikas dati/ Informācijas resurss/ ID 545.
virsis_id: 545
- id: ir.kultura.03
number: 3
subdomain: subdomain.kultura
name: Atsauces (autoritatīvie) dati
status: Izmaiņas
description: |-
Tiks pilnveidota atsauces datu pārvaldība un
uzlabota datu ...pējas ar ārējām
sistēmām. Tiks izmantoti MI rīki attīstībā.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: ir.kultura.04
number: 4
subdomain: subdomain.kultura
name: Autortiesību un licencēšanas dati
status: Izmaiņas
description: |-
Tiks pilnveidota autortiesību un licencēšanas
datu pārvaldī...tu satura pieejamību atbilstoši
autortiesību ierobežojumiem.
resources:
- raw: Autortiesību pārvaldības un licencēšanas dati/ Informācijas resurss/ ID 51565.
virsis_id: 51565
- id: ir.kultura.05
number: 5
subdomain: subdomain.kultura
name: Teksta dokumenti
status: Izmaiņas
description: |-
Tiks uzlabota teksta dokumentu pārvaldība,
ieviešot automat...īvajiem datiem un kultūras mantojuma
digitālajiem objektiem.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: ir.kultura.06
number: 6
subdomain: subdomain.kultura
name: Attēli
status: Izmaiņas
description: |-
Plānots uzlabot attēlu datu pārvaldību, ieviešot
vienotus m...t vizuālo saturu.
Tiks ieviesti MI risinājumi attēlu satura
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: ir.kultura.07
number: 7
subdomain: subdomain.kultura
name: Audio
status: Izmaiņas
description: |-
Plānots uzlabot audio datu pārvaldību, ieviešot
metadatu stan...šākai izmantošanai.
Tiks atbalstīta integrācija ar mantojuma
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: ir.kultura.08
number: 8
subdomain: subdomain.kultura
name: Video
status: Izmaiņas
description: |-
Plānots attīstīt video datu pārvaldību, ieviešot
vienotu met...šinot publicēšanu un atkārtotu izmantošanu
(piemēram, izglītībā, pētniecībā).
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: ir.kultura.09
number: 9
subdomain: subdomain.kultura
name: Kultūras mantojuma digitālie objekti
status: Izmaiņas
description: |-
Tiks uzlabota digitālo objektu (DO) uzkrāšana,
meklējamība...cijām (DOM, APLIS, ATS u.c.), kā arī sasaisti ar atsauces datiem.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: ir.kultura.10
number: 10
subdomain: subdomain.kultura
name: Arhīvu dati
status: Izmaiņas
description: |-
Plānots uzlabot arhīvu datu pieejamību, pārvaldību un integrāciju,
balstoties uz vienoto arhīvu IS risinājumiem.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: ir.kultura.11
number: 11
subdomain: subdomain.kultura
name: Muzeju krājuma dati
status: Izmaiņas
description: |-
Muzeju krājuma dati tiks strukturēti un padarīti savietojamāki,
uzlabojot publisko pieejamību un atkārtotu izmantošanu.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: ir.kultura.12
number: 12
subdomain: subdomain.kultura
name: Nekustamo kultūras pieminekļu dati
status: Izmaiņas
description: |-
Tiks uzlabota NKMP datu pārvaldība, integrācijas un datu kvalitāte.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: ir.kultura.13
number: 13
subdomain: subdomain.kultura
name: Nemateriālā kultūras mantojuma dati
status: Izmaiņas
description: |-
Tiks attīstīta nemateriālā kultūras mantojuma datu uzkrāšana un publiskā pieejamība.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: ir.kultura.14
number: 14
subdomain: subdomain.kultura
name: Kultūras programmu/projektu dati
status: Izmaiņas
description: |-
Tiks uzlabota programmu un projektu datu pārvaldība, automatizējot datu apmaiņu un atskaites.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: ir.kultura.15
number: 15
subdomain: subdomain.kultura
name: Lietotāju dati un piekļuves tiesības
status: Izmaiņas
description: |-
Tiks pilnveidota lietotāju datu pārvaldība un piekļuves kontrole, lai atbalstītu vienotu lietotāju pieredzi.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null

View File

@@ -0,0 +1,97 @@
items:
- id: ir.valoda.01
number: 1
subdomain: subdomain.valoda
name: |-
Monolingvālie valodu korpusi
status: Jauns
description: |-
Tiks veidoti un uzturēti monolingvālie korpusi latviešu valodai un citām valodām,
lai nodrošinātu treniņdatus un valodas resursus MI risinājumiem.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: ir.valoda.02
number: 2
subdomain: subdomain.valoda
name: Paralēlie valodu korpusi
status: Jauns
description: |-
Paralēlie korpusi tiks attīstīti mašīntulkošanas un daudzvalodu MI vajadzībām,
veicinot tulkošanas kvalitāti un valodu tehnoloģiju attīstību.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: ir.valoda.03
number: 3
subdomain: subdomain.valoda
name: Terminoloģijas dati
status: Izmaiņas
description: |-
Terminoloģijas resursi tiks pilnveidoti, uzlabojot kvalitāti, pieejamību un integrāciju ar citiem datu avotiem.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: ir.valoda.04
number: 4
subdomain: subdomain.valoda
name: |-
LVM-LV trenēšanas dati
(līdzsvaroti avotu dati)
status: Jauns
description: |-
Tiks veidotas līdzsvarotas datu kopas LVM-LV treniņam, ievērojot autortiesības, datu aizsardzību un kvalitātes prasības.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: ir.valoda.05
number: 5
subdomain: subdomain.valoda
name: |-
LVM-LV dati konkrētu
uzdevumu izpildei
(pielāgošanas un integrācijas dati)
status: Jauns
description: |-
Datu kopas tiks radītas pēc LVM modeļa
izveides, pielāgojot...mu veikšanai un paplašinot LVM
modeļa izmantošanas iespējas.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: ir.valoda.06
number: 6
subdomain: subdomain.valoda
name: LVM-LV novērtēšanas dati
status: Jauns
description: |-
Datu kopa tiks radīta līdz ar LVM modeļa
izveidi. Datu kopa...nveidei, gan pētniecībai un MI
risinājumu attīstībai kopumā.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: ir.valoda.07
number: 7
subdomain: subdomain.valoda
name: |-
Valodu tehnoloģiju lietojuma
dati un telemetrija
status: Jauns
description: |-
Tiks vākti un analizēti lietojuma dati, lai uzlabotu platformas pakalpojumu kvalitāti, noturību un drošību.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: ir.valoda.08
number: 8
subdomain: subdomain.valoda
name: Kultūras mantojuma dati
status: '-'
description: |-
Dati, kas tiek radīti un uzturēti Kultūras
apakšjomas sistē...jumu sniegšanā, ievērojot
normatīvā regulējuma nosacījumus.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null

View File

@@ -0,0 +1,223 @@
items:
- id: sys.kultura.01
number: 1
subdomain: subdomain.kultura
name: |-
Vienotais bibliotēku
kopkatalogs (VBK)
status: Izmaiņas
description: |-
Tiks būtiski uzlabota datu aprite un integrācija,
nodrošino...npuses – datu sadrumstalotību un nepietiekamu
savietojamību.
resources:
- raw: Valsts nozīmes bibliotēku krājuma dati/ Informācijas resurss/ Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS).
virsis_id: null
- id: sys.kultura.02
number: 2
subdomain: subdomain.kultura
name: Bibliotēku Informācijas Sistēma
status: Jauns
description: |-
Tiks izveidota jauna, mūsdienu standartiem
atbilstoša sistē...hnoloģisko
novecošanos un veicina datu
atkalizmantojamību.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: sys.kultura.03
number: 3
subdomain: subdomain.kultura
name: |-
Atsauces (autoritatīvo)
datu sistēma
status: Izmaiņas
description: |-
Tiks modernizēta atsauces datu sistēma, uzlabojot datu kvalitāti,
versēšanu, integrācijas un izmantojamību visā jomā.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: sys.kultura.04
number: 4
subdomain: subdomain.kultura
name: |-
Latvijas Kultūras datu
portāls
status: Izmaiņas
description: |-
Tiks attīstīts Kultūras datu portāls kā vienots piekļuves punkts datiem un analītikai,
uzlabojot integrācijas ar valsts platformām un MI rīku izmantošanu.
resources:
- raw: Programmatūra/ VIRSIS ID 544.
virsis_id: 544
- id: sys.kultura.05
number: 5
subdomain: subdomain.kultura
name: |-
Digitālo objektu
pārvaldības sistēma (DOM)
status: Izmaiņas
description: |-
Tiks pilnveidota DOM, uzlabojot meklēšanu, datu attēlošanu, integrācijas ar citām sistēmām
un publisko pieejamību atbilstoši regulējumam.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: sys.kultura.06
number: 6
subdomain: subdomain.kultura
name: |-
Vienotā valsts arhīvu
informācijas sistēma
status: Izmaiņas
description: |-
Attīstība uz vienotu arhīvu IS bāzes, uzlabojot digitalizēto objektu pārvaldību,
meklēšanu, publisko pieejamību un integrācijas.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: sys.kultura.07
number: 7
subdomain: subdomain.kultura
name: |-
Kultūras pieminekļu
pārvaldības sistēmas
status: Izmaiņas
description: |-
NKMP sistēmu attīstība, uzlabojot datu kvalitāti, savietojamību un publisko pieejamību.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: sys.kultura.08
number: 8
subdomain: subdomain.kultura
name: |-
Nemateriālā kultūras mantojuma
pārvaldības sistēmas
status: Izmaiņas
description: |-
Tiks attīstītas sistēmas nemateriālā mantojuma uzkrāšanai, uzturēšanai un publicēšanai,
uzlabojot integrācijas un meklējamību.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: sys.kultura.09
number: 9
subdomain: subdomain.kultura
name: |-
Nacionālā muzeju krājuma
kopkataloga sistēma (NMKK)
status: Izmaiņas
description: |-
NMKK sistēmas pilnveide, nodrošinot labāku datu struktūru, savietojamību un publisko pieejamību.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: sys.kultura.10
number: 10
subdomain: subdomain.kultura
name: Autortiesību pārvaldības sistēma
status: Izmaiņas
description: |-
Tiks pilnveidota autortiesību pārvaldība un licencēšana,
ieviešot labāku datu pārvaldību un integrācijas, lai kontrolētu piekļuvi saturam.
resources:
- raw: Autortiesību pārvaldības un licencēšanas dati/ Informācijas resurss/ ID 51565.
virsis_id: 51565
- id: sys.kultura.11
number: 11
subdomain: subdomain.kultura
name: Kultūras mantojuma sistēmas
status: '-'
description: |-
Kultūras mantojuma sistēmās radītie un
uzturētie dati tiks ...odrošinās šo datu
sasaisti ar valodu tehnoloģiju platformu,
resources:
- raw: Latvijas kultūras jomas statistikas dati/ Informācijas resurss/ VIRSIS ID 545.
virsis_id: 545
- raw: Ģerboņu kataloga dati/ Informācijas resurss/ VIRSIS ID 486.
virsis_id: 486
- id: sys.kultura.12
number: 12
subdomain: subdomain.kultura
name: Kultūras projektu/pieteikumu sistēma
status: Izmaiņas
description: |-
Tiks ieviesta vienotāka projektu un mērķprogrammu pārvaldība, automatizējot atskaites un datu apmaiņu.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: sys.kultura.13
number: 13
subdomain: subdomain.kultura
name: Publiskie kultūras portāli
status: Izmaiņas
description: |-
Publiskie portāli tiks modernizēti, nodrošinot vienotu piekļuvi, meklēšanu un lietotāja pieredzi.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: sys.kultura.14
number: 14
subdomain: subdomain.kultura
name: Lietotāju identitātes un piekļuves pārvaldības risinājumi
status: Izmaiņas
description: |-
Tiks pilnveidoti identitātes un piekļuves pārvaldības procesi, lai atbalstītu vienotu autentifikāciju un autorizāciju jomas sistēmās.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: sys.kultura.15
number: 15
subdomain: subdomain.kultura
name: Mākoņdatošanas pārvaldības platforma (LNB)
status: Izmaiņas
description: |-
LNB mākoņplatformas attīstība kā valsts mēroga infrastruktūras pamats,
t.sk. koplietošanas un MI infrastruktūras pārvaldībai.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: sys.kultura.16
number: 16
subdomain: subdomain.kultura
name: Datu uzkrāšanas un ilgtermiņa saglabāšanas risinājumi
status: Izmaiņas
description: |-
Vienota ilgtermiņa glabāšana un rezerves kopēšana, nodrošinot noturību un atbilstību drošības prasībām.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: sys.kultura.17
number: 17
subdomain: subdomain.kultura
name: Drošības un noturības risinājumi
status: Izmaiņas
description: |-
Drošības, noturības un nepārtrauktības prasību ieviešana jomas koplietošanas risinājumos.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: sys.kultura.21
number: 21
subdomain: subdomain.kultura
name: Digitālās saglabāšanas un digitalizācijas atbalsta risinājumi
status: Izmaiņas
description: |-
Digitalizācijas plūsmas un digitālās saglabāšanas risinājumu attīstība, integrējot metadatus, meklēšanu un publikāciju.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: sys.kultura.22
number: 22
subdomain: subdomain.kultura
name: Analītikas un pārskatu risinājumi
status: Izmaiņas
description: |-
Analītikas un pārskatu iespējas tiks paplašinātas, ieviešot savietojamību ar valsts datu platformām un MI rīkiem.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null

View File

@@ -0,0 +1,113 @@
items:
- id: sys.valoda.01
number: 1
subdomain: subdomain.valoda
name: Publiskās pārvaldes valodu tehnoloģiju platforma
status: Izmaiņas
description: |-
Tiks uzturēta un attīstīta vienota valodu tehnoloģiju platforma,
kas nodrošinās koplietošanas pakalpojumus (tulkošana, runa, semantiskā meklēšana u.c.).
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: sys.valoda.02
number: 2
subdomain: subdomain.valoda
name: Lielais latviešu valodas modelis (LVM-LV)
status: Jauns
description: |-
Tiks izveidots un uzturēts LVM-LV kā valsts mēroga valodas infrastruktūras pamatelements,
nodrošinot izmantošanu valsts pakalpojumos un platformas rīkos.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: sys.valoda.03
number: 3
subdomain: subdomain.valoda
name: Mašīntulkošanas pakalpojumu sistēmas
status: Izmaiņas
description: |-
Mašīntulkošana tiks modernizēta un integrēta ar LVM-LV un daudzvalodu MI arhitektūrām.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: sys.valoda.04
number: 4
subdomain: subdomain.valoda
name: Runas atpazīšanas sistēmas
status: Izmaiņas
description: |-
Runas atpazīšana tiks modernizēta, uzlabojot kvalitāti un integrācijas ar platformu un LVM-LV.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: sys.valoda.05
number: 5
subdomain: subdomain.valoda
name: Runas sintēzes sistēmas
status: Izmaiņas
description: |-
Runas sintēze tiks modernizēta un padarīta plašāk izmantojama valsts pakalpojumu kanālos.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: sys.valoda.06
number: 6
subdomain: subdomain.valoda
name: Virtuālo asistentu sistēmas
status: Izmaiņas
description: |-
Virtuālie asistenti tiks modernizēti un sasaistīti ar valodu tehnoloģiju platformas koplietošanas pakalpojumiem.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: sys.valoda.07
number: 7
subdomain: subdomain.valoda
name: Semantiskās meklēšanas sistēmas
status: Jauns
description: |-
Tiks ieviestas semantiskās meklēšanas iespējas dokumentu krātuvēs, balstoties uz LVM-LV un platformas rīkiem.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: sys.valoda.08
number: 8
subdomain: subdomain.valoda
name: Teksta ģenerēšanas un kopsavilkumu sistēmas
status: Jauns
description: |-
Tiks izveidoti teksta ģenerēšanas un kopsavilkumu rīki, ievērojot drošības, datu aizsardzības un kvalitātes prasības.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: sys.valoda.09
number: 9
subdomain: subdomain.valoda
name: Vieglās valodas rīki
status: Izmaiņas
description: |-
Vieglās valodas rīki tiks attīstīti, lai uzlabotu piekļūstamību un tekstu saprotamību plašākai auditorijai.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: sys.valoda.10
number: 10
subdomain: subdomain.valoda
name: Valodu resursu pārvaldības sistēmas (korpusi, terminoloģija)
status: Jauns
description: |-
Tiks attīstītas sistēmas korpusu, terminoloģijas un citu valodu resursu uzturēšanai un publicēšanai.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null
- id: sys.valoda.11
number: 11
subdomain: subdomain.valoda
name: Jaunu valodu tehnoloģiju izmitināšanas un pārneses vide
status: Jauns
description: |-
Tiks nodrošināta vide jaunu valodu tehnoloģiju ieviešanai un izmitināšanai, ievērojot normatīvos aktus un kiberdrošības prasības.
resources:
- raw: Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.
virsis_id: null

View File

@@ -0,0 +1,73 @@
items:
- id: int.001.identity-trust
title: "Identitāte un piekļuve (horizontālā joma)"
interaction_type: "shared_component"
counterpart: "Valsts koplietošanas IKT risinājumi"
components:
- "VPM"
- "eIDAS / e-identitātes risinājumi"
why_it_matters: >
Vienota autentifikācija un pilnvarojums ir priekšnosacījums drošai piekļuvei jomas e-pakalpojumiem un datiem.
requirements:
- "Vienots autentifikācijas plūsmas apraksts (SSO)"
- "Vienots tiesību modelis jomas lietotājiem (RBAC/ABAC)"
- "Auditējamība (kas, kad, ko skatīja/izmainīja)"
- id: int.002.data-exchange
title: "Datu apmaiņa un sadarbspēja (horizontālā joma)"
interaction_type: "integration"
counterpart: "VDAA koplietošanas datu apmaiņa / DAGR"
components:
- "DAGR"
- "API standarti"
- "VIRSIS metadati"
why_it_matters: >
Kultūras un valodu tehnoloģiju risinājumi balstās uz daudziem datu avotiem; integrācijas jāstandartizē,
lai izvairītos no unikāliem savienojumiem un dublētas loģikas.
requirements:
- "Integrāciju katalogs ar prioritātēm"
- "API versēšana un līgumi (contract-first)"
- "Kļūdu/incidentu apmaiņas kanāls starp turētājiem"
- id: int.003.open-data
title: "Atvērto datu ekosistēma"
interaction_type: "publication"
counterpart: "Atvērto datu portāls"
components:
- "Atvērto datu portāls"
- "Metadatu standarti"
why_it_matters: >
Atvērto datu publicēšana palielina kultūras datu izmantojamību pētniecībā, uzņēmējdarbībā un sabiedrībā,
vienlaikus prasa kvalitātes un licencēšanas disciplīnu.
requirements:
- "Licencēšanas noteikumi (autortiesības, PSI)"
- "Datu kvalitātes kritēriji un atjaunošanas grafiki"
- "Datu anonimizācija, ja nepieciešams"
- id: int.004.archiving
title: "Ilgtermiņa saglabāšana / arhivēšana"
interaction_type: "shared_service"
counterpart: "Vienotais ilgtermiņa saglabāšanas risinājums (VARAM u.c.)"
components:
- "Ilgtermiņa saglabāšanas platforma"
- "Formātu un metadatu prasības"
why_it_matters: >
Kultūras digitālie objekti ir ar ilgu dzīves ciklu; arhivēšanas prasības jāiebūvē jau veidošanas un glabāšanas posmos.
requirements:
- "DO dzīves cikla definīcija"
- "Formātu/derīguma prasības"
- "Integrācijas prasības starp IS un arhīvu"
- id: int.005.statistics
title: "Kultūras statistika un valsts statistikas ekosistēma"
interaction_type: "data_sharing"
counterpart: "CSP"
components:
- "Analītikas datu plūsmas"
- "Indikatoru definīcijas"
why_it_matters: >
Statistika un analītika balstās uz kvalitatīviem, saskaņotiem datiem; jāvienojas par indikatoriem un datu piegādes režīmiem.
requirements:
- "Indikatoru katalogs"
- "Datu piegādes grafiks un atbildīgie"
- "Kvalitātes validācijas noteikumi"

View File

@@ -0,0 +1,133 @@
items:
- id: rm.001.foundation-governance
title: "Jomas pārvaldības un datu pārvaldības ietvara nostiprināšana"
timeframe: "2025"
description: >
Formalizēt jomas pārvaldības modeli, iesaistīto pušu lomas, datu pārvaldību (īpašumtiesības, kvalitāte,
metadati, piekļuves tiesības), kā arī lēmumu pieņemšanas kārtību jomas risinājumu attīstībai.
owner_orgs: [org.km, org.kisc]
stakeholders: [org.lnb, org.lna, org.nkmp, org.vdaa]
depends_on: []
outputs:
- "Apstiprināts jomas pārvaldības modelis"
- "Datu pārvaldības noteikumi (data governance)"
- "Atbildību un demarkācijas apraksts starp institūcijām"
- id: rm.002.catalogs-registers
title: "Vienotas reģistru/katalogu struktūras uzturēšana (SSOT) un integrācija ar VIRSIS"
timeframe: "2025"
description: >
Nodrošināt, ka jomas IS, integrācijas, datu kopas un pakalpojumi ir pilnībā katalogizēti, ar stabiliem ID,
un sinhronizējami ar VIRSIS/metadatu prasībām.
owner_orgs: [org.kisc]
stakeholders: [org.vdaa, org.lnb, org.lna]
depends_on: [rm.001.foundation-governance]
outputs:
- "Pilni reģistri: sistēmas, integrācijas, datu produkti, pakalpojumi"
- "Saskaņošana ar VIRSIS metadatiem"
- id: rm.003.identity-access
title: "Vienota identitātes, autentifikācijas un piekļuves pārvaldības pieeja (VPM/eIDAS virziens)"
timeframe: "2025–2026"
description: >
Ieviest vienotu autentifikācijas un autorizācijas pieeju jomas e-pakalpojumiem, balstoties uz koplietošanas
komponentēm (VPM) un atbilstoši eIDAS prasībām, ar konsekventu piekļuves tiesību modeli.
owner_orgs: [org.kisc]
stakeholders: [org.vdaa, org.km, org.lnb]
depends_on: [rm.001.foundation-governance]
outputs:
- "Vienots autentifikācijas risinājums e-pakalpojumiem"
- "Piekļuves tiesību modelis (RBAC/ABAC) jomas datos un sistēmās"
- id: rm.004.integration-layer
title: "Integrācijas slāņa sakārtošana un standartizācija (DAGR, API pārvaldība)"
timeframe: "2025–2026"
description: >
Sakārtot integrācijas arhitektūru (API vadlīnijas, datu apmaiņas formāti, notikumu plūsmas),
kur lietderīgi izmantojot koplietošanas platformas (DAGR) un definējot integrācijas standartus jomā.
owner_orgs: [org.kisc]
stakeholders: [org.vdaa, org.lnb, org.lna, org.nkmp]
depends_on: [rm.002.catalogs-registers]
outputs:
- "API standarti un integrāciju vadlīnijas"
- "Prioritāro integrāciju ieviešanas plāns"
- id: rm.005.digital-objects-lifecycle
title: "Digitālo objektu dzīves cikla pārvaldība un ilgtermiņa saglabāšana (arhivēšana)"
timeframe: "2026–2027"
description: >
Definēt digitālo objektu (DO) dzīves cikla procesus (izveide, glabāšana, piekļuve, publicēšana, arhivēšana),
un saskaņot ar vienoto ilgtermiņa saglabāšanas (arhivēšanas) risinājuma virzienu.
owner_orgs: [org.km, org.kisc]
stakeholders: [org.lna, org.varam, org.lnb]
depends_on: [rm.001.foundation-governance, rm.004.integration-layer]
outputs:
- "Digitālo objektu dzīves cikla procesi"
- "Arhivēšanas prasības un integrācijas prasības"
- id: rm.006.open-data-products
title: "Atvērto datu un datu produktu pieeja kultūras datiem"
timeframe: "2026"
description: >
Izveidot datu produktu pieeju (dataset/data product), definējot publicēšanas, licencēšanas, kvalitātes un
metadatu prasības, kā arī publicēšanas kanālus (Atvērto datu portāls).
owner_orgs: [org.kisc]
stakeholders: [org.vdaa, org.lnb, org.csp]
depends_on: [rm.002.catalogs-registers, rm.004.integration-layer]
outputs:
- "Datu produktu katalogs"
- "Publicēšanas un licencēšanas vadlīnijas"
- "Publicēšanas plūsma uz Atvērto datu portālu"
- id: rm.007.culture-analytics
title: "Kultūras nozares statistikas un analītikas risinājuma attīstība (ar CSP)"
timeframe: "2026–2027"
description: >
Attīstīt kultūras statistikas datu analītiku, saskaņojot indikatorus un datu avotus, kā arī nodrošinot
datu kvalitāti un regulāru atjaunošanu.
owner_orgs: [org.km, org.kisc]
stakeholders: [org.csp, org.lnb]
depends_on: [rm.006.open-data-products]
outputs:
- "Indikatoru un datu avotu kartējums"
- "Analītikas datu plūsmas un atskaites"
- id: rm.008.map-adaptation
title: "MAP platformas pielāgošana NKC/VKKF procesiem (sadarbībā ar IeM IC)"
timeframe: "2025–2026"
description: >
Nodrošināt MAP pielāgošanu kultūras finansējuma procesu vajadzībām (NKC, VKKF), definējot integrācijas
ar datu avotiem un e-pakalpojumiem.
owner_orgs: [org.iem_ic]
stakeholders: [org.nkc, org.vkkf, org.kisc]
depends_on: [rm.004.integration-layer]
outputs:
- "Pielāgota MAP funkcionalitāte"
- "Integrāciju specifikācijas ar saistītajiem datiem/pakalpojumiem"
- id: rm.009.language-tech-platform
title: "Valodu tehnoloģiju koplietošanas rīku un platformas attīstība (LNB koordinācija)"
timeframe: "2025–2027"
description: >
Attīstīt valodu tehnoloģiju koplietošanas risinājumus, t.sk. datu kopu pārvaldību, sagatavošanu (anonimizāciju),
piekļuves režīmus un modeļa izmantošanas vadlīnijas, nodrošinot atbilstību (GDPR, AI Act, autortiesības).
owner_orgs: [org.lnb]
stakeholders: [org.kisc, org.lumii, org.tm, org.vvc, org.lva, org.ta, org.lang_data_holders]
depends_on: [rm.001.foundation-governance, rm.003.identity-access]
outputs:
- "Datu kopu katalogs valodu modelim"
- "Datu sagatavošanas/anonimizācijas process"
- "Modeļa izmantošanas un piekļuves vadlīnijas"
- id: rm.010.security-hardening
title: "Kiberdrošības prasību ieviešana un noturības celšana jomas IS"
timeframe: "2025–2027"
description: >
Ieviest drošības pārvaldības minimumu (risk management, incident response, auditi, piekļuves kontrole),
saskaņā ar NIS2 un nacionālajām prasībām, tostarp piegādes ķēdes risku vadību.
owner_orgs: [org.kisc]
stakeholders: [org.km, org.lnb, org.vdaa]
depends_on: [rm.001.foundation-governance]
outputs:
- "Drošības prasību kopums un kontroles"
- "Incidentu vadības un uzraudzības kārtība"

View File

@@ -0,0 +1,104 @@
items:
- id: risk.001.governance-fragmentation
risk: "Sadrumstalota pārvaldība un neskaidrs atbildību sadalījums starp institūcijām"
likelihood: "medium"
impact: "high"
symptoms:
- "Lēna lēmumu pieņemšana"
- "Atšķirīgas pieejas integrācijām un datiem"
mitigation:
- "Apstiprināt pārvaldības modeli un demarkācijas punktus"
- "Noteikt arhitektūras principus kā obligātus"
owner_orgs: [org.km, org.kisc]
related_roadmap: [rm.001.foundation-governance]
- id: risk.002.data-quality
risk: "Nepietiekama datu kvalitāte, metadati un datu saskaņotība"
likelihood: "high"
impact: "high"
symptoms:
- "Nekonsekventi identifikatori digitālajiem objektiem"
- "Atšķirīgi klasifikatori un metadatu lauki"
mitigation:
- "Datu pārvaldības noteikumi (quality gates, metadatu standarti)"
- "Vienots katalogs un validācijas noteikumi"
owner_orgs: [org.kisc]
related_roadmap: [rm.001.foundation-governance, rm.002.catalogs-registers]
- id: risk.003.legal-copyright
risk: "Autortiesību un licencēšanas ierobežojumi kavē digitālo objektu izmantošanu un publicēšanu"
likelihood: "medium"
impact: "high"
symptoms:
- "Nevar publicēt vai dalīties ar digitālajiem objektiem"
- "Neskaidrības par TDM (teksta un datu ieguves) iespējām"
mitigation:
- "Legal view uzturēšana, licenču tipizācija un vadlīnijas"
- "Publicēšanas režīmi (publisks/ierobežots/iekšējs)"
owner_orgs: [org.km]
related_roadmap: [rm.006.open-data-products, rm.005.digital-objects-lifecycle]
- id: risk.004.privacy-gdpr
risk: "Personas datu aizsardzības (GDPR) riski datu kopu publicēšanā un valodu modeļa apmācībā"
likelihood: "high"
impact: "high"
symptoms:
- "Datu noplūdes vai neatbilstoša apstrāde"
- "Datu subjektu sūdzības"
mitigation:
- "Anonimizācijas process un rīku izmantošana (TA)"
- "Datu piekļuves režīmi un auditēšana"
owner_orgs: [org.kisc, org.lnb]
related_roadmap: [rm.009.language-tech-platform, rm.003.identity-access]
- id: risk.005.security-nis2
risk: "Kiberdrošības prasību neizpilde (NIS2/nacionālās prasības) palielina incidentu un pakalpojumu pārtraukumu risku"
likelihood: "medium"
impact: "high"
symptoms:
- "Incidenti bez centralizētas uzraudzības"
- "Neatbilstoša piekļuves kontrole vai konfigurācijas pārvaldība"
mitigation:
- "Drošības kontroles, incident response, regulāri auditi"
- "Piegādes ķēdes risku izvērtējumi"
owner_orgs: [org.kisc]
related_roadmap: [rm.010.security-hardening]
- id: risk.006.dependency-shared-platforms
risk: "Atkarība no koplietošanas platformām (VPM, DAGR, Atvērto datu portāls) un to izmaiņu grafikiem"
likelihood: "medium"
impact: "medium"
symptoms:
- "Integrāciju ieviešanas kavēšanās"
- "Neparedzētas izmaiņas interfeisos"
mitigation:
- "Sadarbības darba kārtība ar VDAA"
- "API līgumi un versēšana"
owner_orgs: [org.kisc]
related_roadmap: [rm.004.integration-layer, rm.003.identity-access]
- id: risk.007.capacity-skills
risk: "Nepietiekama kapacitāte un kompetences (datu arhitektūra, integrācijas, MI/valodu tehnoloģijas)"
likelihood: "high"
impact: "medium"
symptoms:
- "Ilgi ieviešanas termiņi"
- "Atkarība no viena piegādātāja/eksperta"
mitigation:
- "Kompetenču plāns un apmācības"
- "Pārnesamas dokumentācijas un reģistru disciplīna"
owner_orgs: [org.km, org.kisc, org.lnb]
related_roadmap: [rm.001.foundation-governance, rm.009.language-tech-platform]
- id: risk.008.change-management
risk: "Zema lietotāju iesaiste un izmaiņu vadības trūkumi kavē risinājumu pieņemšanu"
likelihood: "medium"
impact: "medium"
symptoms:
- "Risinājumi netiek izmantoti"
- "Paralēlas manuālās prakses saglabājas"
mitigation:
- "Ieviešanas komunikācijas plāns"
- "Pilotēšana un pakāpeniska ieviešana"
owner_orgs: [org.km, org.kisc]
related_roadmap: [rm.001.foundation-governance]

View File

@@ -0,0 +1,286 @@
edges:
- from: domain.kultura-valoda
type: has_goal
to: goal.m1
- from: domain.kultura-valoda
type: has_goal
to: goal.m2
- from: domain.kultura-valoda
type: has_goal
to: goal.m3
- from: domain.kultura-valoda
type: has_goal
to: goal.m4
- from: domain.kultura-valoda
type: has_goal
to: goal.m5
- from: domain.kultura-valoda
type: has_goal
to: goal.m6
- from: domain.kultura-valoda
type: has_function
to: func.01
- from: domain.kultura-valoda
type: has_function
to: func.02
- from: domain.kultura-valoda
type: has_function
to: func.03
- from: domain.kultura-valoda
type: has_function
to: func.04
- from: domain.kultura-valoda
type: has_function
to: func.05
- from: domain.kultura-valoda
type: has_function
to: func.06
- from: domain.kultura-valoda
type: has_service
to: svc.kultura.01
- from: domain.kultura-valoda
type: has_service
to: svc.kultura.02
- from: domain.kultura-valoda
type: has_service
to: svc.kultura.03
- from: domain.kultura-valoda
type: has_service
to: svc.kultura.04
- from: domain.kultura-valoda
type: has_service
to: svc.kultura.05
- from: domain.kultura-valoda
type: has_service
to: svc.kultura.06
- from: domain.kultura-valoda
type: has_service
to: svc.kultura.07
- from: domain.kultura-valoda
type: has_service
to: svc.kultura.08
- from: domain.kultura-valoda
type: has_service
to: svc.kultura.09
- from: domain.kultura-valoda
type: has_service
to: svc.kultura.10
- from: domain.kultura-valoda
type: has_service
to: svc.kultura.11
- from: domain.kultura-valoda
type: has_service
to: svc.kultura.12
- from: domain.kultura-valoda
type: has_service
to: svc.kultura.13
- from: domain.kultura-valoda
type: has_service
to: svc.kultura.14
- from: domain.kultura-valoda
type: has_service
to: svc.kultura.15
- from: domain.kultura-valoda
type: has_service
to: svc.kultura.16
- from: domain.kultura-valoda
type: has_service
to: svc.valoda.01
- from: domain.kultura-valoda
type: has_service
to: svc.valoda.02
- from: domain.kultura-valoda
type: has_service
to: svc.valoda.03
- from: domain.kultura-valoda
type: has_service
to: svc.valoda.04
- from: domain.kultura-valoda
type: has_service
to: svc.valoda.05
- from: domain.kultura-valoda
type: has_service
to: svc.valoda.06
- from: domain.kultura-valoda
type: has_service
to: svc.valoda.07
- from: domain.kultura-valoda
type: has_service
to: svc.valoda.08
- from: domain.kultura-valoda
type: has_service
to: svc.valoda.09
- from: domain.kultura-valoda
type: has_service
to: svc.valoda.10
- from: domain.kultura-valoda
type: has_service
to: svc.valoda.11
- from: domain.kultura-valoda
type: has_service
to: svc.valoda.12
- from: domain.kultura-valoda
type: has_service
to: svc.valoda.13
- from: domain.kultura-valoda
type: has_service
to: svc.valoda.14
- from: domain.kultura-valoda
type: has_information_resource
to: ir.kultura.01
- from: domain.kultura-valoda
type: has_information_resource
to: ir.kultura.02
- from: domain.kultura-valoda
type: has_information_resource
to: ir.kultura.03
- from: domain.kultura-valoda
type: has_information_resource
to: ir.kultura.04
- from: domain.kultura-valoda
type: has_information_resource
to: ir.kultura.05
- from: domain.kultura-valoda
type: has_information_resource
to: ir.kultura.06
- from: domain.kultura-valoda
type: has_information_resource
to: ir.kultura.07
- from: domain.kultura-valoda
type: has_information_resource
to: ir.kultura.08
- from: domain.kultura-valoda
type: has_information_resource
to: ir.kultura.09
- from: domain.kultura-valoda
type: has_information_resource
to: ir.kultura.10
- from: domain.kultura-valoda
type: has_information_resource
to: ir.kultura.11
- from: domain.kultura-valoda
type: has_information_resource
to: ir.kultura.12
- from: domain.kultura-valoda
type: has_information_resource
to: ir.kultura.13
- from: domain.kultura-valoda
type: has_information_resource
to: ir.kultura.14
- from: domain.kultura-valoda
type: has_information_resource
to: ir.kultura.15
- from: domain.kultura-valoda
type: has_information_resource
to: ir.valoda.01
- from: domain.kultura-valoda
type: has_information_resource
to: ir.valoda.02
- from: domain.kultura-valoda
type: has_information_resource
to: ir.valoda.03
- from: domain.kultura-valoda
type: has_information_resource
to: ir.valoda.04
- from: domain.kultura-valoda
type: has_information_resource
to: ir.valoda.05
- from: domain.kultura-valoda
type: has_information_resource
to: ir.valoda.06
- from: domain.kultura-valoda
type: has_information_resource
to: ir.valoda.07
- from: domain.kultura-valoda
type: has_information_resource
to: ir.valoda.08
- from: domain.kultura-valoda
type: has_system
to: sys.kultura.01
- from: domain.kultura-valoda
type: has_system
to: sys.kultura.02
- from: domain.kultura-valoda
type: has_system
to: sys.kultura.03
- from: domain.kultura-valoda
type: has_system
to: sys.kultura.04
- from: domain.kultura-valoda
type: has_system
to: sys.kultura.05
- from: domain.kultura-valoda
type: has_system
to: sys.kultura.06
- from: domain.kultura-valoda
type: has_system
to: sys.kultura.07
- from: domain.kultura-valoda
type: has_system
to: sys.kultura.08
- from: domain.kultura-valoda
type: has_system
to: sys.kultura.09
- from: domain.kultura-valoda
type: has_system
to: sys.kultura.10
- from: domain.kultura-valoda
type: has_system
to: sys.kultura.11
- from: domain.kultura-valoda
type: has_system
to: sys.kultura.12
- from: domain.kultura-valoda
type: has_system
to: sys.kultura.13
- from: domain.kultura-valoda
type: has_system
to: sys.kultura.14
- from: domain.kultura-valoda
type: has_system
to: sys.kultura.15
- from: domain.kultura-valoda
type: has_system
to: sys.kultura.16
- from: domain.kultura-valoda
type: has_system
to: sys.kultura.17
- from: domain.kultura-valoda
type: has_system
to: sys.kultura.21
- from: domain.kultura-valoda
type: has_system
to: sys.kultura.22
- from: domain.kultura-valoda
type: has_system
to: sys.valoda.01
- from: domain.kultura-valoda
type: has_system
to: sys.valoda.02
- from: domain.kultura-valoda
type: has_system
to: sys.valoda.03
- from: domain.kultura-valoda
type: has_system
to: sys.valoda.04
- from: domain.kultura-valoda
type: has_system
to: sys.valoda.05
- from: domain.kultura-valoda
type: has_system
to: sys.valoda.06
- from: domain.kultura-valoda
type: has_system
to: sys.valoda.07
- from: domain.kultura-valoda
type: has_system
to: sys.valoda.08
- from: domain.kultura-valoda
type: has_system
to: sys.valoda.09
- from: domain.kultura-valoda
type: has_system
to: sys.valoda.10
- from: domain.kultura-valoda
type: has_system
to: sys.valoda.11

View File

@@ -0,0 +1,25 @@
# 1. Ievads
## 1.1. Dokumenta nolūks un mērķauditorija
Dokuments apraksta Kultūras un valodu tehnoloģiju jomas mērķarhitektūru un tās attīstības virzienus.
Mērķauditorija: jomas politikas un pārvaldības iesaistītās puses, sistēmu turētāji/uzturētāji, ieviesēji,
kā arī arhitektūras pārvaldības struktūras.
## 1.2. Domēna arhitektūras tvērums
Joma ietver:
- Kultūras apakšjomu
- Valodu tehnoloģiju apakšjomu
Tvērumā ietilpst:
- funkcijas un pakalpojumi
- informācijas resursi (datu kopas)
- informācijas sistēmas un integrācijas
- infrastruktūras un drošības apsvērumi
- ieviešanas ceļa karte un riski
## 1.3. Termini un saīsinājumi
Termini: `registers/00-meta/terms.yaml`
Saīsinājumi: `registers/00-meta/abbreviations.yaml`
## 1.4. Saistītie dokumenti
Saistītie dokumenti (reģistrs): `registers/00-meta/related-documents.yaml`

View File

@@ -0,0 +1,10 @@
# 2. Domēna esošās arhitektūras novērtējums
Esošās arhitektūras novērtējums tiek uzturēts SWOT formā.
SWOT reģistrs: `registers/01-as-is/swot.yaml`
PIEZĪME:
Esošās arhitektūras komponentes (pakalpojumi, IKT risinājumi u.c.) jāuzskaita un jāuztur kā katalogs.
Repo pielikumā tiek uzturēts “komponentu katalogs” mašīnlasāmā formā:
`registers/10-catalog/as-is-components.yaml`

View File

@@ -0,0 +1,11 @@
# 3. Domēna attīstības mērķi un principi
## 3.1. Domēna attīstības mērķi
Mērķi M1–M6 (reģistri): `registers/02-goals/`
## 3.2. Domēna attīstības principi
Domēna principi: `registers/00-meta/principles.yaml`
## 3.3. Principu kartējums
Kartējums (domēna principi → nacionālie principi / prasību virzieni):
`registers/00-meta/principles-map.yaml`

View File

@@ -0,0 +1,40 @@
# 4. Domēna mērķarhitektūra
## 4.1. Juridiskais skats
Juridiskais skats tiek uzturēts kā atsevišķs reģistrs (grupēts pa tēmām):
`registers/00-meta/legal-acts.yaml`
Papildus informācijai un atsaucēm:
`registers/00-meta/related-documents.yaml`
## 4.2. Organizācijas skats
### 4.2.1. Funkcijas
Reģistrs: `registers/04-functions/functions.yaml`
Diagramma (TODO): `diagrams/TODO-01-funkcijas.mmd`
### 4.2.2. Pakalpojumi
Kultūras apakšjoma: `registers/05-services/kultura-services.yaml`
Valodu tehnoloģiju apakšjoma: `registers/05-services/valoda-services.yaml`
Diagramma (TODO): `diagrams/TODO-02-pakalpojumi.mmd`
## 4.3. Semantiskais skats
### 4.3.1. Informācijas resursi
Kultūras apakšjoma: `registers/06-information-resources/kultura-info-resources.yaml`
Valodu tehnoloģiju apakšjoma: `registers/06-information-resources/valoda-info-resources.yaml`
Diagramma (TODO): `diagrams/TODO-03-informacijas-resursi.mmd`
## 4.4. Tehniskais skats
### 4.4.1. Informācijas sistēmas
Kultūras apakšjoma: `registers/07-systems/kultura-systems.yaml`
Valodu tehnoloģiju apakšjoma: `registers/07-systems/valoda-systems.yaml`
Diagramma (TODO): `diagrams/TODO-04-informacijas-sistemas.mmd`
### 4.4.2. IS sadarbība un integrācijas
Diagramma (TODO): `diagrams/TODO-05-integracijas.mmd`
### 4.4.3. IKT infrastruktūra
POC līmenī infrastruktūra tiek uzturēta kā principi + riski + ceļa kartes pasākumi.
Nākamajā iterācijā infrastruktūru iznes uz atsevišķu reģistru.

View File

@@ -0,0 +1,14 @@
# 5. Domēna mērķarhitektūras ieviešanas ceļa karte
## 5.1. Pasākumu plāns
Reģistrs: `registers/08-roadmap/roadmap.yaml`
## 5.2. Mijiedarbība ar citām jomām
Mijiedarbība ar citām jomām tiek uzturēta kā atsevišķs reģistrs:
`registers/08-roadmap/interactions.yaml`
Papildus (zema līmeņa relācijas POC vajadzībām):
`registers/99-relations/edges.yaml`
## 5.3. Riski
Reģistrs: `registers/09-risks/risks.yaml`

View File

@@ -0,0 +1,6 @@
# 6. Pielikums: esošās arhitektūras komponentu katalogs
Esošās arhitektūras komponentes tiek uzturētas kā mašīnlasāms katalogs:
`registers/10-catalog/as-is-components.yaml`
Šis katalogs kalpo kā “as-is” bāze pārejai uz mērķarhitektūru.

View File

@@ -0,0 +1 @@
placeholder.git

View File

@@ -0,0 +1,19 @@
FROM node:20-alpine
WORKDIR /app
# Copy MCP server code
COPY mcp/package.json mcp/tsconfig.json /app/mcp/
COPY mcp/src /app/mcp/src
# Copy architecture data (SSOT)
COPY domains /app/domains
WORKDIR /app/mcp
RUN npm ci || npm install
RUN npm run build
ENV ARCH_ROOT=/app/domains
EXPOSE 8787
CMD ["npm", "run", "start"]

View File

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,27 @@
{
"name": "kisc-arch-mcp",
"version": "0.1.0",
"private": true,
"type": "module",
"scripts": {
"build": "tsc -p tsconfig.json",
"start": "node dist/index.js",
"gen:doc": "ts-node src/generateDoc.ts"
},
"dependencies": {
"@modelcontextprotocol/sdk": "^1.0.4",
"dotenv": "^16.6.1",
"express": "^4.21.2",
"fast-glob": "^3.3.2",
"jose": "^5.10.0",
"js-yaml": "^4.1.0",
"zod": "^3.23.8"
},
"devDependencies": {
"@types/express": "^4.17.21",
"@types/js-yaml": "^4.0.9",
"@types/node": "^20.17.0",
"ts-node": "^10.9.2",
"typescript": "^5.6.3"
}
}

View File

@@ -0,0 +1,285 @@
import fs from "node:fs/promises";
import path from "node:path";
import yaml from "js-yaml";
type AnyObj = Record<string, any>;
const REPO_ROOT = process.env.REPO_ROOT || path.resolve(__dirname, "../../");
const DOMAIN_DIR = process.env.DOMAIN_DIR || "domains/kultura-valoda";
const OUT_FILE = process.env.OUT_FILE || "KISC-merkarhitektura-apraksts.md";
async function readText(rel: string): Promise<string> {
const abs = path.join(REPO_ROOT, rel);
return fs.readFile(abs, "utf-8");
}
async function readYaml(rel: string): Promise<AnyObj> {
const abs = path.join(REPO_ROOT, rel);
const raw = await fs.readFile(abs, "utf-8");
const obj = yaml.load(raw);
if (!obj || typeof obj !== "object") return {};
return obj as AnyObj;
}
function mdEscape(s: any): string {
const t = (s ?? "").toString();
return t.replace(/\r?\n/g, " ").replace(/\|/g, "\\|").trim();
}
function mdTable(headers: string[], rows: string[][]): string {
const h = `| ${headers.join(" | ")} |`;
const sep = `| ${headers.map(() => "---").join(" | ")} |`;
const body = rows.map((r) => `| ${r.join(" | ")} |`).join("\n");
return [h, sep, body].filter(Boolean).join("\n");
}
function isRegisterRefLine(line: string): string | null {
// Matches: `registers/..../file.yaml` or `registers/..../file.yml`
const m = line.match(/`(registers\/[^`]+\.(yaml|yml))`/i);
return m?.[1] ?? null;
}
function isDiagramRefLine(line: string): string | null {
const m = line.match(/`(diagrams\/[^`]+\.(mmd|png|svg|pdf))`/i);
return m?.[1] ?? null;
}
function renderAbbreviations(obj: AnyObj): string {
const items = Array.isArray(obj.items) ? obj.items : [];
const rows = items.map((it: any) => [mdEscape(it.abbr), mdEscape(it.meaning)]);
return mdTable(["Saīsinājums", "Nozīme"], rows);
}
function renderTerms(obj: AnyObj): string {
const items = Array.isArray(obj.items) ? obj.items : [];
// Accept both {term, meaning} and {name, definition}
const rows = items.map((it: any) => [
mdEscape(it.term ?? it.name ?? it.id ?? ""),
mdEscape(it.meaning ?? it.definition ?? it.description ?? ""),
]);
return mdTable(["Termins", "Skaidrojums"], rows);
}
function renderRelatedDocs(obj: AnyObj): string {
const items = Array.isArray(obj.items) ? obj.items : [];
const rows = items.map((it: any) => [
mdEscape(it.id),
mdEscape(it.title),
mdEscape(it.date ?? ""),
mdEscape(it.type ?? ""),
mdEscape(it.relevance ?? ""),
]);
return mdTable(["ID", "Nosaukums", "Datums", "Veids", "Saistība / nozīme"], rows);
}
function renderOrganizations(obj: AnyObj): string {
const items = Array.isArray(obj.items) ? obj.items : [];
const rows = items.map((it: any) => [
mdEscape(it.id),
mdEscape(it.title),
mdEscape(it.role ?? ""),
mdEscape(Array.isArray(it.responsibilities) ? it.responsibilities.join("; ") : ""),
mdEscape(it.status ?? ""),
]);
return mdTable(["ID", "Organizācija", "Loma", "Atbildība (kopsavilkums)", "Statuss"], rows);
}
function renderGenericItemsTable(obj: AnyObj, preferredCols: string[] | null = null): string {
const items = Array.isArray(obj.items) ? obj.items : [];
if (!items.length) return "_(tukšs reģistrs)_";
const allKeys = new Set<string>();
for (const it of items) {
if (it && typeof it === "object") Object.keys(it).forEach((k) => allKeys.add(k));
}
const cols = preferredCols
? preferredCols.filter((c) => allKeys.has(c)).concat([...allKeys].filter((k) => !preferredCols.includes(k)))
: [...allKeys];
const headers = cols.map((c) => c);
const rows = items.map((it: any) =>
cols.map((c) => {
const v = it?.[c];
if (Array.isArray(v)) return mdEscape(v.join(", "));
if (v && typeof v === "object") return mdEscape(JSON.stringify(v));
return mdEscape(v ?? "");
})
);
return mdTable(headers, rows);
}
function renderLegalActs(obj: AnyObj): string {
const groups = Array.isArray(obj.groups) ? obj.groups : [];
if (!groups.length) return "_(tukšs reģistrs)_";
const out: string[] = [];
for (const g of groups) {
out.push(`### ${mdEscape(g.title ?? g.id ?? "")}`.trim());
const items = Array.isArray(g.items) ? g.items : [];
if (!items.length) {
out.push("_(nav ierakstu)_");
out.push("");
continue;
}
for (const it of items) {
const ref = mdEscape(it.ref ?? "");
const notes = mdEscape(it.notes ?? "");
out.push(`- **${ref}** — ${notes}`.trim());
}
out.push("");
}
return out.join("\n").trim();
}
function renderRoadmap(obj: AnyObj): string {
const items = Array.isArray(obj.items) ? obj.items : [];
if (!items.length) return "_(tukšs reģistrs)_";
const rows = items.map((it: any) => [
mdEscape(it.id),
mdEscape(it.title),
mdEscape(it.timeframe ?? ""),
mdEscape(Array.isArray(it.owner_orgs) ? it.owner_orgs.join(", ") : ""),
mdEscape(Array.isArray(it.depends_on) ? it.depends_on.join(", ") : ""),
mdEscape(Array.isArray(it.outputs) ? it.outputs.join("; ") : ""),
]);
return mdTable(["ID", "Pasākums", "Laika posms", "Atbildīgie", "Atkarības", "Rezultāti"], rows);
}
function renderRisks(obj: AnyObj): string {
const items = Array.isArray(obj.items) ? obj.items : [];
if (!items.length) return "_(tukšs reģistrs)_";
const rows = items.map((it: any) => [
mdEscape(it.id),
mdEscape(it.risk),
mdEscape(it.likelihood ?? ""),
mdEscape(it.impact ?? ""),
mdEscape(Array.isArray(it.mitigation) ? it.mitigation.join("; ") : it.mitigation ?? ""),
mdEscape(Array.isArray(it.owner_orgs) ? it.owner_orgs.join(", ") : ""),
]);
return mdTable(["ID", "Risks", "Varbūtība", "Ietekme", "Mazināšana", "Atbildīgie"], rows);
}
function renderInteractions(obj: AnyObj): string {
const items = Array.isArray(obj.items) ? obj.items : [];
if (!items.length) return "_(tukšs reģistrs)_";
const out: string[] = [];
for (const it of items) {
out.push(`### ${mdEscape(it.title ?? it.id ?? "")}`.trim());
out.push(`- **ID:** ${mdEscape(it.id)}`);
out.push(`- **Tips:** ${mdEscape(it.interaction_type ?? "")}`);
out.push(`- **Pretējā puse:** ${mdEscape(it.counterpart ?? "")}`);
if (Array.isArray(it.components) && it.components.length) {
out.push(`- **Komponentes:** ${mdEscape(it.components.join(", "))}`);
}
if (it.why_it_matters) {
out.push(`- **Kāpēc svarīgi:** ${mdEscape(it.why_it_matters)}`);
}
if (Array.isArray(it.requirements) && it.requirements.length) {
out.push(`- **Prasības:** ${mdEscape(it.requirements.join("; "))}`);
}
out.push("");
}
return out.join("\n").trim();
}
function renderRegisterByPath(relRegisterPathFromDomain: string, domainRoot: string): Promise<string> {
const fullRel = path.posix.join(domainRoot, relRegisterPathFromDomain);
return (async () => {
const obj = await readYaml(fullRel);
// Render by filename conventions
const file = relRegisterPathFromDomain.replace(/\\/g, "/");
if (file.endsWith("abbreviations.yaml") || file.endsWith("abbreviations.yml")) return renderAbbreviations(obj);
if (file.endsWith("terms.yaml") || file.endsWith("terms.yml")) return renderTerms(obj);
if (file.endsWith("related-documents.yaml") || file.endsWith("related-documents.yml")) return renderRelatedDocs(obj);
if (file.endsWith("organizations.yaml") || file.endsWith("organizations.yml")) return renderOrganizations(obj);
if (file.endsWith("legal-acts.yaml") || file.endsWith("legal-acts.yml")) return renderLegalActs(obj);
if (file.endsWith("roadmap.yaml") || file.endsWith("roadmap.yml")) return renderRoadmap(obj);
if (file.endsWith("risks.yaml") || file.endsWith("risks.yml")) return renderRisks(obj);
if (file.endsWith("interactions.yaml") || file.endsWith("interactions.yml")) return renderInteractions(obj);
// Known item-heavy registers: functions/services/info-resources/systems: use a nicer preferred order
const preferred = (() => {
if (file.includes("/04-functions/")) return ["id", "subdomain", "name", "change_status", "change_description"];
if (file.includes("/05-services/")) return ["id", "subdomain", "name", "change_status", "change_description"];
if (file.includes("/06-information-resources/"))
return ["id", "subdomain", "name", "type", "owner", "change_status", "change_description"];
if (file.includes("/07-systems/")) return ["id", "subdomain", "name", "owner", "change_status", "change_description"];
return null;
})();
return renderGenericItemsTable(obj, preferred);
})();
}
async function build() {
const domainRoot = DOMAIN_DIR.replace(/\\/g, "/");
const manifestRel = path.posix.join(domainRoot, "manifest.yaml");
const manifest = await readYaml(manifestRel);
if (!Array.isArray(manifest.views)) {
throw new Error(`manifest.yaml missing 'views' array: ${manifestRel}`);
}
const pieces: string[] = [];
pieces.push(`# ${manifest.title ?? "Dokuments"}`);
if (manifest.version) pieces.push(`\n_Versija: ${manifest.version}_\n`);
for (const v of manifest.views) {
const viewFile = v?.file;
if (!viewFile) continue;
const viewRel = path.posix.join(domainRoot, viewFile);
let md = await readText(viewRel);
const outLines: string[] = [];
const lines = md.split(/\r?\n/);
for (const line of lines) {
const regRef = isRegisterRefLine(line);
const diagramRef = isDiagramRefLine(line);
if (regRef) {
// keep the original line, then render the register below it
outLines.push(line);
const rendered = await renderRegisterByPath(regRef, domainRoot);
outLines.push("");
outLines.push(rendered);
outLines.push("");
continue;
}
if (diagramRef) {
// keep diagram placeholder as-is (per your rule)
outLines.push(line);
continue;
}
outLines.push(line);
}
pieces.push(outLines.join("\n").trimEnd());
pieces.push(""); // spacing between views
}
const finalMd = pieces.join("\n").replace(/\n{3,}/g, "\n\n").trim() + "\n";
const outAbs = path.join(REPO_ROOT, OUT_FILE);
await fs.writeFile(outAbs, finalMd, "utf-8");
// eslint-disable-next-line no-console
console.log(`OK: generated ${OUT_FILE}`);
}
build().catch((e) => {
// eslint-disable-next-line no-console
console.error(e);
process.exit(1);
});

View File

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,15 @@
import { loadRepo } from "./load.js";
import { RepoIndex } from "./types.js";
let cached: RepoIndex | null = null;
export function getIndex(archRoot: string): RepoIndex {
if (!cached) cached = loadRepo(archRoot);
return cached;
}
// Optional: reload endpoint support (not exposed yet)
export function reload(archRoot: string): RepoIndex {
cached = loadRepo(archRoot);
return cached;
}

View File

@@ -0,0 +1,195 @@
import fg from "fast-glob";
import fs from "node:fs";
import path from "node:path";
import yaml from "js-yaml";
import { Entity, Edge, RepoIndex } from "./types.js";
function toKindFromId(id: string): Entity["_kind"] {
if (id.startsWith("goal.")) return "goal";
if (id.startsWith("func.")) return "function";
if (
id.startsWith("svc.kultura.") ||
id.startsWith("svc.valoda.") ||
id.startsWith("svc.")
)
return "service";
if (
id.startsWith("ir.kultura.") ||
id.startsWith("ir.valoda.") ||
id.startsWith("ir.")
)
return "information_resource";
if (
id.startsWith("sys.kultura.") ||
id.startsWith("sys.valoda.") ||
id.startsWith("sys.")
)
return "system";
if (id.startsWith("principle.")) return "principle";
if (id.startsWith("org.")) return "org";
if (id.startsWith("domain.")) return "domain";
if (id.startsWith("subdomain.")) return "subdomain";
if (id.startsWith("rm.")) return "roadmap";
if (id.startsWith("risk.")) return "risk";
if (id.startsWith("int.")) return "interaction";
if (id.startsWith("doc.")) return "document";
if (id.startsWith("legal.")) return "legal";
return "unknown";
}
function safeString(x: unknown): string {
if (x === null || x === undefined) return "";
if (typeof x === "string") return x;
if (typeof x === "number" || typeof x === "boolean") return String(x);
try {
return JSON.stringify(x);
} catch {
return "";
}
}
function indexEntity(idx: RepoIndex, e: Entity) {
idx.entitiesById.set(e.id, e);
const hay = [
e.id,
e._kind,
e._domain ?? "",
e._subdomain ?? "",
safeString(e.title),
safeString(e.name),
safeString(e.description),
safeString(e.change_description),
safeString(e.status),
]
.join(" ")
.toLowerCase();
idx.textIndex.push({
id: e.id,
haystack: hay,
kind: e._kind,
domain: e._domain,
subdomain: e._subdomain,
});
}
function readYaml(filePath: string): any {
const raw = fs.readFileSync(filePath, "utf-8");
return yaml.load(raw);
}
export function loadRepo(archRoot: string): RepoIndex {
const idx: RepoIndex = {
entitiesById: new Map(),
edges: [],
textIndex: [],
resources: [],
};
// Register resource URIs for views and manifest and raw registers.
const domainManifests = fg.sync(["**/manifest.yaml"], {
cwd: archRoot,
dot: false,
absolute: true,
});
for (const mf of domainManifests) {
const mfObj: any = readYaml(mf);
const domainFolder = path.dirname(mf);
const domainSlug = path.basename(domainFolder);
idx.resources.push({
uri: `manifest://${domainSlug}`,
title: `Manifest: ${domainSlug}`,
mimeType: "application/yaml",
});
// Views resources
const views = (mfObj?.views ?? []) as Array<{
file: string;
title?: string;
id?: string | number;
}>;
for (const v of views) {
const name = path.basename(v.file, path.extname(v.file));
idx.resources.push({
uri: `views://${domainSlug}/${name}`,
title: `View: ${domainSlug} / ${v.title ?? name}`,
mimeType: "text/markdown",
});
}
// Register raw YAML registers as resources
const regFiles = fg.sync(["registers/**/*.yaml"], {
cwd: domainFolder,
absolute: true,
});
for (const rf of regFiles) {
const rel = path.relative(domainFolder, rf).replaceAll("\\", "/");
idx.resources.push({
uri: `register://${domainSlug}/${rel}`,
title: `Register: ${domainSlug}/${rel}`,
mimeType: "application/yaml",
});
}
// Load domain entity (if present)
const domainYaml = path.join(domainFolder, "registers/00-meta/domain.yaml");
if (fs.existsSync(domainYaml)) {
const d = readYaml(domainYaml);
const ent: Entity = {
...(d ?? {}),
id: d?.id ?? `domain.${domainSlug}`,
_kind: "domain",
_domain: `domain.${domainSlug}`,
_source_path: path.relative(archRoot, domainYaml).replaceAll("\\", "/"),
};
indexEntity(idx, ent);
}
// Load YAML registers with "items"
const regList = fg.sync(["registers/**/*.yaml"], {
cwd: domainFolder,
absolute: true,
});
for (const file of regList) {
const obj = readYaml(file);
// edges file
if (file.endsWith("registers/99-relations/edges.yaml") && obj?.edges) {
const edges = obj.edges as Edge[];
idx.edges.push(...edges);
continue;
}
// Single-entity YAML (has id but no items)
if (obj?.id && !obj?.items) {
const ent: Entity = {
...(obj ?? {}),
_kind: toKindFromId(obj.id),
_domain: `domain.${domainSlug}`,
_subdomain: obj?.subdomain ?? undefined,
_source_path: path.relative(archRoot, file).replaceAll("\\", "/"),
};
indexEntity(idx, ent);
continue;
}
// List YAML (items)
if (Array.isArray(obj?.items)) {
for (const it of obj.items) {
if (!it?.id) continue;
const ent: Entity = {
...(it ?? {}),
_kind: toKindFromId(it.id),
_domain: `domain.${domainSlug}`,
_subdomain: it?.subdomain ?? undefined,
_source_path: path.relative(archRoot, file).replaceAll("\\", "/"),
};
indexEntity(idx, ent);
}
}
}
}
return idx;
}

View File

@@ -0,0 +1,44 @@
export type DomainId = string;
export type Edge = {
from: string;
type: string;
to: string;
};
export type Entity = {
id: string;
_kind:
| "goal"
| "function"
| "service"
| "information_resource"
| "system"
| "principle"
| "org"
| "domain"
| "subdomain"
| "roadmap"
| "risk"
| "interaction"
| "document"
| "legal"
| "unknown";
_domain?: DomainId;
_subdomain?: string;
_source_path?: string;
[k: string]: any;
};
export type RepoIndex = {
entitiesById: Map<string, Entity>;
edges: Edge[];
textIndex: Array<{
id: string;
haystack: string;
kind: string;
domain?: string;
subdomain?: string;
}>;
resources: Array<{ uri: string; title: string; mimeType: string }>;
};

View File

@@ -0,0 +1,43 @@
import fs from "node:fs";
import path from "node:path";
import fg from "fast-glob";
function readFileSafe(filePath: string): string {
return fs.readFileSync(filePath, "utf-8");
}
export function getResource(archRoot: string, uri: string) {
// manifest://<domain>
if (uri.startsWith("manifest://")) {
const domain = uri.replace("manifest://", "");
const mf = path.join(archRoot, domain, "manifest.yaml");
if (!fs.existsSync(mf)) return { ok: false, error: `Not found: ${uri}` };
return { ok: true, uri, mimeType: "application/yaml", content: readFileSafe(mf) };
}
// views://<domain>/<viewfile-without-ext>
if (uri.startsWith("views://")) {
const rest = uri.replace("views://", "");
const [domain, viewName] = rest.split("/", 2);
const domainDir = path.join(archRoot, domain);
const matches = fg.sync([`views/${viewName}.md`], { cwd: domainDir, absolute: true });
if (!matches.length) return { ok: false, error: `Not found: ${uri}` };
return {
ok: true,
uri,
mimeType: "text/markdown",
content: readFileSafe(matches[0]!),
};
}
// register://<domain>/<relative-path>
if (uri.startsWith("register://")) {
const rest = uri.replace("register://", "");
const [domain, rel] = rest.split("/", 2);
const filePath = path.join(archRoot, domain, rel);
if (!fs.existsSync(filePath)) return { ok: false, error: `Not found: ${uri}` };
return { ok: true, uri, mimeType: "application/yaml", content: readFileSafe(filePath) };
}
return { ok: false, error: `Unsupported uri: ${uri}` };
}

View File

@@ -0,0 +1,8 @@
import { RepoIndex } from "../repo/types.js";
export function listResources(idx: RepoIndex) {
return {
ok: true,
resources: idx.resources,
};
}

View File

@@ -0,0 +1,11 @@
import { RepoIndex } from "../repo/types.js";
export function getEntityTool(idx: RepoIndex, args: any) {
const id = String(args?.id ?? "").trim();
if (!id) return { ok: false, error: "Missing args.id" };
const ent = idx.entitiesById.get(id);
if (!ent) return { ok: false, error: `Entity not found: ${id}` };
return { ok: true, entity: ent };
}

View File

@@ -0,0 +1,16 @@
import { RepoIndex } from "../repo/types.js";
export function listRelationsTool(idx: RepoIndex, args: any) {
const id = String(args?.id ?? "").trim();
if (!id) return { ok: false, error: "Missing args.id" };
const direction = String(args?.direction ?? "both"); // in|out|both
const edges = idx.edges.filter((e) => {
if (direction === "out") return e.from === id;
if (direction === "in") return e.to === id;
return e.from === id || e.to === id;
});
return { ok: true, edges };
}

View File

@@ -0,0 +1,29 @@
import { RepoIndex } from "../repo/types.js";
export function searchTool(idx: RepoIndex, args: any) {
const q = String(args?.query ?? "").toLowerCase().trim();
if (!q) return { ok: false, error: "Missing args.query" };
const kind = args?.kind ? String(args.kind) : null;
const subdomain = args?.subdomain ? String(args.subdomain) : null;
const hits: Array<{ id: string; score: number; kind: string; subdomain?: string }> = [];
for (const row of idx.textIndex) {
if (kind && row.kind !== kind) continue;
if (subdomain && row.subdomain !== subdomain) continue;
// Very simple scoring: count substring occurrences
const hay = row.haystack;
let score = 0;
let pos = hay.indexOf(q);
while (pos !== -1) {
score++;
pos = hay.indexOf(q, pos + q.length);
}
if (score > 0) hits.push({ id: row.id, score, kind: row.kind, subdomain: row.subdomain });
}
hits.sort((a, b) => b.score - a.score);
return { ok: true, results: hits.slice(0, 50) };
}

View File

@@ -0,0 +1,42 @@
import { RepoIndex } from "../repo/types.js";
export function subgraphTool(idx: RepoIndex, args: any) {
const seeds = Array.isArray(args?.seed_ids)
? args.seed_ids.map((x: any) => String(x))
: [];
const depth = Number.isFinite(args?.depth) ? Number(args.depth) : 1;
if (!seeds.length) return { ok: false, error: "Missing args.seed_ids[]" };
if (depth < 0 || depth > 5) return { ok: false, error: "depth must be 0..5" };
const nodes = new Set<string>(seeds);
const edgesOut: any[] = [];
let frontier = new Set<string>(seeds);
for (let d = 0; d < depth; d++) {
const next = new Set<string>();
for (const e of idx.edges) {
if (frontier.has(e.from)) {
edgesOut.push(e);
if (!nodes.has(e.to)) next.add(e.to);
nodes.add(e.to);
}
if (frontier.has(e.to)) {
edgesOut.push(e);
if (!nodes.has(e.from)) next.add(e.from);
nodes.add(e.from);
}
}
frontier = next;
if (!frontier.size) break;
}
const nodeObjs = Array.from(nodes).map(
(id) => idx.entitiesById.get(id) ?? { id, _kind: "unknown" }
);
return { ok: true, nodes: nodeObjs, edges: edgesOut };
}

View File

@@ -0,0 +1,15 @@
{
"compilerOptions": {
"target": "ES2022",
"module": "ES2022",
"moduleResolution": "Bundler",
"outDir": "dist",
"rootDir": "src",
"strict": true,
"esModuleInterop": true,
"resolveJsonModule": true,
"skipLibCheck": true,
"types": ["node"]
},
"include": ["src/**/*.ts"]
}

View File

@@ -0,0 +1,506 @@
# KISC MCP Server - MCPF Integration Deployment Guide
**Project:** MCPF (MCP Trust Framework) Integration for KISC MCP Server
**Target Server:** llm.kis.gov.lv
**DID:** `did:web:llm.kis.gov.lv`
**Date:** 2026-01-30
---
## 📋 Table of Contents
1. [Overview](#overview)
2. [Package Contents](#package-contents)
3. [Prerequisites](#prerequisites)
4. [Part A: Local Implementation](#part-a-local-implementation)
5. [Part B: VeriTrust Integration](#part-b-veritrust-integration)
6. [Validation & Testing](#validation--testing)
7. [Troubleshooting](#troubleshooting)
---
## Overview
This package integrates MCPF (MCP Trust Framework) into the KISC MCP Server, providing:
✅ **Cryptographic Identity** — `did:web:llm.kis.gov.lv` with Ed25519 signing
✅ **Verifiable Credentials** — VeriTrust-issued MCPServerCredential
✅ **Trust Metadata** — Discoverable at `/.well-known/mcp-trust-registry.json`
✅ **Standards Compliance** — W3C DID Core, VC Data Model, MCPF Specification
---
## Package Contents
```
kisc-mcpf-deploy/
├── README.md # This file
├── keypair-SECURE.json # ⚠️ PRIVATE KEY (secure handling!)
├── public-key.json # Public key reference
│
├── wellknown/ # .well-known files for nginx
│ ├── did.json # DID Document
│ ├── jwks.json # JWK Set (public keys)
│ ├── mcp-trust-registry.json # MCPF registry discovery
│ ├── security.txt # RFC 9116 security contact
│ ├── mcp/
│ │ └── manifest.json # MCP server capabilities
│ └── credentials/
│ └── mcp-server.json # VC placeholder (VeriTrust will replace)
│
├── scripts/ # Deployment automation
│ ├── deploy-wellknown.sh # Deploy .well-known to server
│ ├── validate-endpoints.sh # Test all endpoints
│ └── update-env.sh # Add MCPF_PRIVATE_KEY to .env
│
├── nginx/ # nginx configuration
│ └── wellknown.conf # nginx config for .well-known
│
├── docs/ # Documentation
│ ├── DEPLOYMENT.md # Step-by-step deployment
│ ├── INTEGRATION.md # start.sh/status.sh updates
│ └── TESTING.md # Validation procedures
│
└── veritrust/ # VeriTrust submission
├── README-VERITRUST.md # Instructions for VeriTrust
├── mcp-server-request.json # Credential request payload
└── install-credential.sh # Install received VC
```
---
## Prerequisites
Before deployment, ensure:
- [ ] SSH access to `llm.kis.gov.lv` (10.20.30.96)
- [ ] Sudo privileges or ownership of `/opt/kisc-llm/`
- [ ] POC stack running (`/opt/kisc-llm/poc/deploy/`)
- [ ] nginx container (kisc-nginx) operational
- [ ] Let's Encrypt certificates valid
- [ ] Git access to `kisc-gov-lv/MCP-KISC-architecture`
---
## Part A: Local Implementation
### Step 1: Secure Private Key Storage
**⚠️ CRITICAL: Handle `keypair-SECURE.json` securely!**
```bash
# On your local machine (NOT on server yet)
cat keypair-SECURE.json
# Contains: private_key_pem, public_key_pem, multibase, jwk_x
# Verify integrity
sha256sum keypair-SECURE.json
```
**DO NOT:**
- ❌ Commit to Git
- ❌ Send via unencrypted email
- ❌ Store in Slack/Teams
- ❌ Print to logs
**DO:**
- ✅ Transfer via encrypted channel (scp with key auth, 1Password, etc.)
- ✅ Store in `/opt/kisc-llm/poc/deploy/.env` only
- ✅ Backup offline (encrypted USB/vault)
- ✅ Document who has access
---
### Step 2: Deploy .well-known Files to Server
```bash
# On llm.kis.gov.lv server
# 1. Create .well-known directory
sudo mkdir -p /opt/kisc-llm/poc/deploy/.well-known/{mcp,credentials}
sudo chown -R "$USER":"$USER" /opt/kisc-llm/poc/deploy/.well-known
# 2. Copy .well-known files
cd /opt/kisc-llm/poc/deploy
rsync -av /path/to/kisc-mcpf-deploy/wellknown/ .well-known/
# 3. Verify structure
tree .well-known/
# Expected:
# .well-known/
# ├── did.json
# ├── jwks.json
# ├── mcp-trust-registry.json
# ├── security.txt
# ├── mcp/
# │ └── manifest.json
# └── credentials/
# └── mcp-server.json
# 4. Set permissions (read-only for nginx)
chmod -R 644 .well-known/**/*
find .well-known -type d -exec chmod 755 {} \;
```
---
### Step 3: Add Private Key to .env
```bash
# On llm.kis.gov.lv server
cd /opt/kisc-llm/poc/deploy
# Extract private key from keypair-SECURE.json
PRIVATE_KEY_PEM=$(cat /path/to/keypair-SECURE.json | jq -r '.private_key_pem')
# Add to .env (replace newlines with \n)
echo "MCPF_PRIVATE_KEY=\"$PRIVATE_KEY_PEM\"" >> .env
# Verify (should show -----BEGIN PRIVATE KEY-----)
grep MCPF_PRIVATE_KEY .env | head -c 100
# Secure the .env file
chmod 600 .env
```
---
### Step 4: Update nginx Configuration
```bash
# On llm.kis.gov.lv server
cd /opt/kisc-llm/poc/deploy/nginx/conf.d
# Backup existing config
cp default.conf default.conf.backup-$(date +%Y%m%d)
# Add .well-known location block (insert after line 30, before "location /")
cat >> default.conf << 'EOF'
# ==========================================================================
# MCPF .well-known endpoints
# ==========================================================================
location /.well-known/ {
alias /opt/kisc-llm/poc/deploy/.well-known/;
# CORS headers for trust framework discovery
add_header Access-Control-Allow-Origin * always;
add_header Access-Control-Allow-Methods "GET, OPTIONS" always;
add_header Access-Control-Allow-Headers "Content-Type" always;
# Cache DID documents for 1 hour (they rarely change)
add_header Cache-Control "public, max-age=3600" always;
# Serve JSON files
location ~ \.(json)$ {
add_header Content-Type application/json;
}
# Serve text files
location ~ \.(txt)$ {
add_header Content-Type text/plain;
}
# No directory listing
autoindex off;
}
EOF
# Validate nginx config
docker exec kisc-nginx nginx -t
# If validation passes, reload
docker exec kisc-nginx nginx -s reload
```
---
### Step 5: Update start.sh Script
Add MCPF integration steps to `/opt/kisc-llm/poc/deploy/scripts/start.sh`:
```bash
# Insert after Step 3 (TLS cert handling), before Step 4 (OpenGateLLM start)
# =============================================================================
# Step 3.5: MCPF .well-known Files
# =============================================================================
log_step "Step 3.5: Checking MCPF .well-known files..."
if [[ ! -f "$DEPLOY_DIR/.well-known/did.json" ]]; then
log_error "MCPF .well-known files not found!"
log_error "Run: rsync -av /path/to/wellknown/ $DEPLOY_DIR/.well-known/"
exit 1
fi
# Verify critical files exist
REQUIRED_FILES=(
".well-known/did.json"
".well-known/jwks.json"
".well-known/mcp-trust-registry.json"
".well-known/mcp/manifest.json"
".well-known/credentials/mcp-server.json"
)
for file in "${REQUIRED_FILES[@]}"; do
if [[ ! -f "$DEPLOY_DIR/$file" ]]; then
log_warn "Missing: $file"
fi
done
log_info "MCPF .well-known files OK"
```
---
### Step 6: Update status.sh Script
Add MCPF health checks to `/opt/kisc-llm/poc/deploy/scripts/status.sh`:
```bash
# Insert at the end, before final completion message
# =============================================================================
# MCPF ENDPOINTS STATUS
# =============================================================================
echo -e "${CYAN}MCPF Endpoints:${NC}"
echo "----------------------------------------"
check_wellknown() {
local endpoint=$1
local name=$2
local response
response=$(curl -sS -k --connect-timeout 2 "https://localhost$endpoint" 2>/dev/null || echo "")
if [[ -n "$response" ]] && echo "$response" | grep -q "@context\|keys\|mcpfVersion"; then
echo -e " ${GREEN}✅${NC} $name"
else
echo -e " ${RED}❌${NC} $name (HTTP error or empty response)"
fi
}
check_wellknown "/.well-known/did.json" "DID Document"
check_wellknown "/.well-known/jwks.json" "JWKS"
check_wellknown "/.well-known/mcp-trust-registry.json" "MCPF Registry Discovery"
check_wellknown "/.well-known/mcp/manifest.json" "MCP Manifest"
check_wellknown "/.well-known/credentials/mcp-server.json" "MCP Credential"
echo ""
```
---
### Step 7: Validate Deployment
```bash
# On llm.kis.gov.lv server
cd /opt/kisc-llm/poc/deploy
# Test .well-known endpoints
./scripts/validate-endpoints.sh
# Expected output:
# ✅ DID Document: https://llm.kis.gov.lv/.well-known/did.json
# ✅ JWKS: https://llm.kis.gov.lv/.well-known/jwks.json
# ✅ MCPF Registry: https://llm.kis.gov.lv/.well-known/mcp-trust-registry.json
# ✅ MCP Manifest: https://llm.kis.gov.lv/.well-known/mcp/manifest.json
# ✅ MCP Credential: https://llm.kis.gov.lv/.well-known/credentials/mcp-server.json
```
---
## Part B: VeriTrust Integration
### Step 8: Submit to VeriTrust for Credential Issuance
**KISC already has a VeriTrust profile!**
Existing KISC DID in VeriTrust:
- `did:key:z6Mkuwv1z6y2yorbBf4LEkNzJCg16ERVfWE3bJEPKXtQm7a9` (Holder DID)
- `did:web:veritrust.vc:portal:company:df0684bd-b54a-4684-b3d6-93a3b1c4bcb9` (Public Alias)
**Action Required:**
1. **Contact VeriTrust** via existing relationship
2. **Request MCPServerCredential** for `did:web:llm.kis.gov.lv`
3. **Provide:**
- DID: `did:web:llm.kis.gov.lv`
- Public Key (multibase): `z6MkjWGNnJsdyvutfbsytFJhkwDwyHkMkfWVL8X1fS1yBm2w`
- MCP Endpoint: `https://llm.kis.gov.lv/mcp`
- Manifest URL: `https://llm.kis.gov.lv/.well-known/mcp/manifest.json`
- Organization: KISC (Kultūras informācijas sistēmu centrs)
- Owner: Kultūras ministrija
- Compliance: GDPR, NIS2, Latvian Data Protection Act
**Submission Payload:** See `veritrust/mcp-server-request.json`
---
### Step 9: Install VeriTrust-Issued Credential
Once VeriTrust issues the credential:
```bash
# On llm.kis.gov.lv server
cd /opt/kisc-llm/poc/deploy
# Backup placeholder
cp .well-known/credentials/mcp-server.json .well-known/credentials/mcp-server.json.placeholder
# Install VeriTrust credential (replace PLACEHOLDER with actual credential)
cat > .well-known/credentials/mcp-server.json << 'EOF'
{
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://mcpf.dev/credentials/v1"
],
"id": "https://llm.kis.gov.lv/.well-known/credentials/mcp-server.json",
... (VeriTrust-provided credential JSON) ...
}
EOF
# Verify signature (use MCPF-python or manual verification)
# The credential MUST be signed by did:web:veritrust.vc
# Reload nginx to pick up new credential
docker exec kisc-nginx nginx -s reload
```
---
## Validation & Testing
### Local Tests (from server)
```bash
# Test DID Document
curl https://llm.kis.gov.lv/.well-known/did.json | jq
# Test MCPF Registry Discovery
curl https://llm.kis.gov.lv/.well-known/mcp-trust-registry.json | jq
# Test MCP Manifest
curl https://llm.kis.gov.lv/.well-known/mcp/manifest.json | jq
# Test credential (placeholder until VeriTrust issues)
curl https://llm.kis.gov.lv/.well-known/credentials/mcp-server.json | jq
```
### External Tests (from any machine)
```bash
# DID Resolution (W3C standard)
curl https://llm.kis.gov.lv/.well-known/did.json
# Should return:
# {
# "@context": [...],
# "id": "did:web:llm.kis.gov.lv",
# "verificationMethod": [...],
# ...
# }
```
### AI Agent Discovery Test
```python
import requests
# Agent discovers MCPF-enabled MCP server
registry_response = requests.get("https://llm.kis.gov.lv/.well-known/mcp-trust-registry.json")
print(registry_response.json())
# Agent fetches credential for verification
credential_url = registry_response.json()["services"]["mcp"]["credential"]
credential = requests.get(credential_url).json()
# Agent verifies signature against did:web:veritrust.vc
# (Use MCPF-python for full verification)
```
---
## Troubleshooting
### Issue: 404 on .well-known endpoints
**Cause:** nginx not serving .well-known directory
**Fix:**
```bash
# Check nginx volume mount
docker inspect kisc-nginx | grep .well-known
# If missing, update docker-compose.yml:
volumes:
- ./.well-known:/opt/kisc-llm/poc/deploy/.well-known:ro
# Restart
docker restart kisc-nginx
```
---
### Issue: CORS errors when agents try to fetch DID
**Cause:** Missing CORS headers
**Fix:** Ensure nginx config has:
```nginx
add_header Access-Control-Allow-Origin * always;
```
---
### Issue: Private key not found in .env
**Cause:** MCPF_PRIVATE_KEY not set
**Fix:**
```bash
# Check .env
grep MCPF_PRIVATE_KEY /opt/kisc-llm/poc/deploy/.env
# If missing, extract from keypair-SECURE.json and add
```
---
## Security Checklist
Before going to production:
- [ ] `keypair-SECURE.json` deleted from server (only in `.env`)
- [ ] `.env` has permissions `600` (read/write by owner only)
- [ ] `.well-known` files have permissions `644` (world-readable)
- [ ] Private key backed up offline (encrypted)
- [ ] Access control documented (who has private key)
- [ ] VeriTrust credential installed (not placeholder)
- [ ] All endpoints accessible via HTTPS only
- [ ] nginx TLS configured correctly (Let's Encrypt)
---
## Next Steps
1. **Deploy locally** (Part A) — Complete Steps 1-7
2. **Submit to VeriTrust** (Part B) — Step 8
3. **Install credential** — Step 9 (after VeriTrust response)
4. **Test with AI agents** — Validate MCPF discovery workflow
5. **Monitor** — Check logs, status.sh output
6. **Document** — Update KISC internal documentation
---
## Support
- **MCPF Specification:** https://github.com/MCPTrustFramework/MCPF-specification
- **VeriTrust:** https://veritrust.vc
- **Questions:** Contact Rihards (Veritrust relationship) or KISC IT team
---
**Version:** 1.0
**Last Updated:** 2026-01-30
**Status:** Ready for Deployment

View File

@@ -0,0 +1,138 @@
#!/usr/bin/env bash
###############################################################################
# KISC MCPF - Validate .well-known Endpoints
#
# Tests all MCPF endpoints are accessible and return valid JSON
#
# Usage: ./validate-endpoints.sh [domain]
# Default domain: localhost (for local testing)
# Production: ./validate-endpoints.sh llm.kis.gov.lv
###############################################################################
set -euo pipefail
DOMAIN="${1:-localhost}"
BASE_URL="https://$DOMAIN"
# Use -k for localhost self-signed certs
CURL_OPTS="-sS --connect-timeout 5 --max-time 10"
if [[ "$DOMAIN" == "localhost" ]]; then
CURL_OPTS="$CURL_OPTS -k"
fi
# Colors
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m'
PASSED=0
FAILED=0
echo "============================================"
echo "MCPF Endpoint Validation"
echo "============================================"
echo "Target: $BASE_URL"
echo ""
test_endpoint() {
local path=$1
local name=$2
local required_field=$3
echo -n "Testing $name... "
local url="$BASE_URL$path"
local response
response=$(curl $CURL_OPTS "$url" 2>/dev/null || echo "")
if [[ -z "$response" ]]; then
echo -e "${RED}❌ FAIL${NC} (No response)"
echo " URL: $url"
((FAILED++))
return 1
fi
# Check if valid JSON
if ! echo "$response" | jq empty 2>/dev/null; then
echo -e "${RED}❌ FAIL${NC} (Invalid JSON)"
echo " URL: $url"
echo " Response: ${response:0:100}..."
((FAILED++))
return 1
fi
# Check for required field
if [[ -n "$required_field" ]]; then
if ! echo "$response" | jq -e "$required_field" >/dev/null 2>&1; then
echo -e "${YELLOW}⚠️ WARN${NC} (Missing field: $required_field)"
echo " URL: $url"
fi
fi
echo -e "${GREEN}✅ PASS${NC}"
echo " URL: $url"
((PASSED++))
}
# =============================================================================
# Test Suite
# =============================================================================
# Test 1: DID Document
test_endpoint "/.well-known/did.json" "DID Document" ".id"
# Test 2: JWKS
test_endpoint "/.well-known/jwks.json" "JWKS" ".keys"
# Test 3: MCPF Registry Discovery
test_endpoint "/.well-known/mcp-trust-registry.json" "MCPF Registry Discovery" ".mcpfVersion"
# Test 4: Security.txt
echo -n "Testing Security.txt... "
response=$(curl $CURL_OPTS "$BASE_URL/.well-known/security.txt" 2>/dev/null || echo "")
if echo "$response" | grep -q "Contact:"; then
echo -e "${GREEN}✅ PASS${NC}"
echo " URL: $BASE_URL/.well-known/security.txt"
((PASSED++))
else
echo -e "${RED}❌ FAIL${NC}"
((FAILED++))
fi
# Test 5: MCP Manifest
test_endpoint "/.well-known/mcp/manifest.json" "MCP Manifest" ".capabilities"
# Test 6: MCP Credential
test_endpoint "/.well-known/credentials/mcp-server.json" "MCP Credential" ".credentialSubject"
# =============================================================================
# Results
# =============================================================================
echo ""
echo "============================================"
echo "Results"
echo "============================================"
echo "Passed: $PASSED"
echo "Failed: $FAILED"
echo ""
if [[ $FAILED -eq 0 ]]; then
echo -e "${GREEN}✅ All tests passed!${NC}"
echo ""
echo "MCPF integration is working correctly."
echo "Next steps:"
echo " 1. Submit to VeriTrust for credential issuance"
echo " 2. Replace placeholder credential in /.well-known/credentials/mcp-server.json"
echo " 3. Test with AI agents (Claude Desktop, ChatGPT, etc.)"
exit 0
else
echo -e "${RED}❌ Some tests failed${NC}"
echo ""
echo "Troubleshooting:"
echo " 1. Check nginx is serving .well-known directory"
echo " 2. Verify .well-known files exist in /opt/kisc-llm/poc/deploy/.well-known/"
echo " 3. Check nginx logs: docker logs kisc-nginx"
echo " 4. Verify TLS certificates are valid"
exit 1
fi

View File

@@ -0,0 +1,247 @@
# VeriTrust MCPF Credential Submission
## Overview
KISC already has a VeriTrust organization profile. This submission requests a **MCPServerCredential** for the new `did:web:llm.kis.gov.lv` identity.
---
## Existing KISC Profile in VeriTrust
**Holder DID:** `did:key:z6Mkuwv1z6y2yorbBf4LEkNzJCg16ERVfWE3bJEPKXtQm7a9`
**Public Alias:** `did:web:veritrust.vc:portal:company:df0684bd-b54a-4684-b3d6-93a3b1c4bcb9`
**Status:** Verified
---
## New Identity for MCP Server
**DID:** `did:web:llm.kis.gov.lv`
**Public Key (multibase):** `z6MkjWGNnJsdyvutfbsytFJhkwDwyHkMkfWVL8X1fS1yBm2w`
**Service Endpoint:** `https://llm.kis.gov.lv/mcp`
**Manifest:** `https://llm.kis.gov.lv/.well-known/mcp/manifest.json`
---
## Submission Process
### Step 1: Verify Local Deployment
Before submitting to VeriTrust, ensure:
```bash
# All .well-known endpoints accessible
curl https://llm.kis.gov.lv/.well-known/did.json
curl https://llm.kis.gov.lv/.well-known/mcp-trust-registry.json
curl https://llm.kis.gov.lv/.well-known/mcp/manifest.json
# MCP server operational
curl https://llm.kis.gov.lv/mcp-health
```
---
### Step 2: Submit Credential Request
**Method 1: Via VeriTrust Portal (Recommended)**
1. Log into VeriTrust portal: https://veritrust.vc/portal
2. Navigate to your KISC organization profile
3. Click "Request Credential" → "MCP Server Credential"
4. Fill in form with data from `mcp-server-request.json`
5. Upload or paste:
- DID: `did:web:llm.kis.gov.lv`
- Public key (multibase): `z6MkjWGNnJsdyvutfbsytFJhkwDwyHkMkfWVL8X1fS1yBm2w`
- Endpoint: `https://llm.kis.gov.lv/mcp`
- Manifest URL: `https://llm.kis.gov.lv/.well-known/mcp/manifest.json`
6. Submit for review
**Method 2: Via API (If Available)**
```bash
# POST to VeriTrust credential issuance API
curl -X POST https://veritrust.vc/api/v1/credentials/issue \
-H "Authorization: Bearer $VERITRUST_API_KEY" \
-H "Content-Type: application/json" \
-d @mcp-server-request.json
```
**Method 3: Email Submission**
Send `mcp-server-request.json` to: credentials@veritrust.vc
Include:
- Subject: "KISC MCP Server Credential Request - did:web:llm.kis.gov.lv"
- Body: Reference existing KISC profile (did:key:z6Mkuwv1z6y2yorbBf4LEkNzJCg16ERVfWE3bJEPKXtQm7a9)
- Attach: mcp-server-request.json
---
### Step 3: Verification by VeriTrust
VeriTrust will verify:
1. ✅ KISC organization profile exists and is verified
2. ✅ `llm.kis.gov.lv` domain is controlled by KISC
3. ✅ DID document accessible at `https://llm.kis.gov.lv/.well-known/did.json`
4. ✅ MCP manifest valid at `https://llm.kis.gov.lv/.well-known/mcp/manifest.json`
5. ✅ Public key matches DID document
6. ✅ Compliance claims are accurate (GDPR, NIS2)
**Timeline:** 1-5 business days (typically 1-2 days for verified organizations)
---
### Step 4: Receive Credential
VeriTrust will provide:
```json
{
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://mcpf.dev/credentials/v1"
],
"id": "https://veritrust.vc/credentials/[UUID]",
"type": ["VerifiableCredential", "MCPServerCredential"],
"issuer": {
"id": "did:web:veritrust.vc",
"name": "VeriTrust"
},
"issuanceDate": "2026-01-30T10:00:00Z",
"expirationDate": "2027-01-30T10:00:00Z",
"credentialSubject": {
"id": "did:web:llm.kis.gov.lv#mcp-server",
...
},
"credentialStatus": {
"id": "https://veritrust.vc/status/2026#94567",
"type": "StatusList2021Entry",
...
},
"proof": {
"type": "Ed25519Signature2020",
"created": "2026-01-30T10:00:00Z",
"verificationMethod": "did:web:veritrust.vc#key-1",
"proofPurpose": "assertionMethod",
"proofValue": "z5vgK8B..." // VeriTrust's cryptographic signature
}
}
```
---
### Step 5: Install Credential
Use the provided `install-credential.sh` script:
```bash
# On llm.kis.gov.lv server
cd /opt/kisc-llm/poc/deploy
# Save VeriTrust credential to temporary file
cat > /tmp/veritrust-credential.json << 'EOF'
{
... (paste VeriTrust-provided credential JSON) ...
}
EOF
# Run install script
./veritrust/install-credential.sh /tmp/veritrust-credential.json
# Verify installation
curl https://llm.kis.gov.lv/.well-known/credentials/mcp-server.json | jq
```
---
### Step 6: Register in MCPF Registry
VeriTrust will automatically register the MCP server in their MCPF registry at `https://mcp.veritrust.vc`.
Verify registration:
```bash
# Search by country
curl "https://mcp.veritrust.vc/mcp/search?country=LV"
# Get specific server
curl "https://mcp.veritrust.vc/mcp/servers/did:web:llm.kis.gov.lv"
```
Expected response:
```json
{
"did": "did:web:llm.kis.gov.lv",
"endpoint": "https://llm.kis.gov.lv/mcp",
"manifest": "https://llm.kis.gov.lv/.well-known/mcp/manifest.json",
"credentials": [
"https://llm.kis.gov.lv/.well-known/credentials/mcp-server.json"
],
"metadata": {
"organization": "Kultūras informācijas sistēmu centrs",
"country": "LV",
"tags": ["architecture", "government", "latvia", "culture"],
"status": "active"
}
}
```
---
## Troubleshooting
### VeriTrust cannot verify domain ownership
**Solution:** Add DNS TXT record:
```
_veritrust.llm.kis.gov.lv TXT "did=did:web:llm.kis.gov.lv"
```
### VeriTrust cannot fetch DID document
**Solution:** Verify HTTPS and CORS:
```bash
curl -I https://llm.kis.gov.lv/.well-known/did.json
# Should show:
# HTTP/2 200
# access-control-allow-origin: *
# content-type: application/json
```
### Credential issuance delayed
**Solution:** Contact VeriTrust support with:
- Organization: KISC
- Existing DID: did:key:z6Mkuwv1z6y2yorbBf4LEkNzJCg16ERVfWE3bJEPKXtQm7a9
- New DID: did:web:llm.kis.gov.lv
- Request ID: (if provided)
---
## Contact
**VeriTrust Support:**
- Website: https://veritrust.vc
- Email: support@veritrust.vc (or credentials@veritrust.vc)
- Portal: https://veritrust.vc/portal
**KISC Contact:**
- Rihards (VeriTrust relationship)
- KISC IT operations team
---
## Credential Renewal
**Expiration:** 1 year from issuance
**Renewal Process:** 30 days before expiration, VeriTrust will notify KISC via email
**Action Required:** Confirm renewal (usually automatic for verified organizations)
---
**Version:** 1.0
**Last Updated:** 2026-01-30
**Status:** Ready for Submission

View File

@@ -0,0 +1,206 @@
#!/usr/bin/env bash
###############################################################################
# KISC MCPF - Install VeriTrust-Issued Credential
#
# Installs the VeriTrust-signed MCP Server Credential and validates it
#
# Usage: ./install-credential.sh <credential-file.json>
###############################################################################
set -euo pipefail
CREDENTIAL_FILE="${1:-}"
DEPLOY_DIR="/opt/kisc-llm/poc/deploy"
TARGET="$DEPLOY_DIR/.well-known/credentials/mcp-server.json"
# Colors
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m'
log_info() { echo -e "${GREEN}[INFO]${NC} $1"; }
log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
# =============================================================================
# Validation
# =============================================================================
if [[ -z "$CREDENTIAL_FILE" ]]; then
log_error "Usage: $0 <credential-file.json>"
echo ""
echo "Example:"
echo " $0 /tmp/veritrust-credential.json"
exit 1
fi
if [[ ! -f "$CREDENTIAL_FILE" ]]; then
log_error "File not found: $CREDENTIAL_FILE"
exit 1
fi
if [[ ! -d "$DEPLOY_DIR" ]]; then
log_error "Deploy directory not found: $DEPLOY_DIR"
exit 1
fi
echo "============================================"
echo "Install VeriTrust Credential"
echo "============================================"
echo "Source: $CREDENTIAL_FILE"
echo "Target: $TARGET"
echo ""
# =============================================================================
# Validate Credential Format
# =============================================================================
log_info "Step 1: Validating credential format..."
# Check if valid JSON
if ! jq empty "$CREDENTIAL_FILE" 2>/dev/null; then
log_error "Invalid JSON in credential file"
exit 1
fi
# Check required fields
REQUIRED_FIELDS=(
"@context"
"type"
"issuer.id"
"credentialSubject.id"
"proof.type"
"proof.proofValue"
)
for field in "${REQUIRED_FIELDS[@]}"; do
if ! jq -e ".$field" "$CREDENTIAL_FILE" >/dev/null 2>&1; then
log_error "Missing required field: $field"
exit 1
fi
done
# Verify issuer is VeriTrust
ISSUER=$(jq -r '.issuer.id' "$CREDENTIAL_FILE")
if [[ "$ISSUER" != "did:web:veritrust.vc" ]]; then
log_error "Invalid issuer: $ISSUER (expected: did:web:veritrust.vc)"
exit 1
fi
# Verify subject is KISC MCP server
SUBJECT=$(jq -r '.credentialSubject.id' "$CREDENTIAL_FILE")
if [[ "$SUBJECT" != "did:web:llm.kis.gov.lv#mcp-server" ]]; then
log_warn "Subject mismatch: $SUBJECT (expected: did:web:llm.kis.gov.lv#mcp-server)"
fi
# Check expiration
EXPIRATION=$(jq -r '.expirationDate' "$CREDENTIAL_FILE")
log_info "Credential expires: $EXPIRATION"
log_info "✅ Credential format valid"
echo ""
# =============================================================================
# Backup Existing Credential
# =============================================================================
log_info "Step 2: Backing up existing credential..."
if [[ -f "$TARGET" ]]; then
BACKUP="$TARGET.backup-$(date +%Y%m%d-%H%M%S)"
cp "$TARGET" "$BACKUP"
log_info "Backup created: $BACKUP"
else
log_warn "No existing credential to backup"
fi
echo ""
# =============================================================================
# Install New Credential
# =============================================================================
log_info "Step 3: Installing new credential..."
# Copy credential to target location
cp "$CREDENTIAL_FILE" "$TARGET"
# Set permissions (world-readable)
chmod 644 "$TARGET"
log_info "✅ Credential installed: $TARGET"
echo ""
# =============================================================================
# Reload nginx
# =============================================================================
log_info "Step 4: Reloading nginx..."
if docker ps --format '{{.Names}}' | grep -q "kisc-nginx"; then
docker exec kisc-nginx nginx -s reload
log_info "✅ nginx reloaded"
else
log_warn "nginx container not found, skipping reload"
fi
echo ""
# =============================================================================
# Verify Installation
# =============================================================================
log_info "Step 5: Verifying installation..."
# Test endpoint
RESPONSE=$(curl -sS -k https://localhost/.well-known/credentials/mcp-server.json 2>/dev/null || echo "")
if [[ -z "$RESPONSE" ]]; then
log_error "Endpoint not accessible"
exit 1
fi
if ! echo "$RESPONSE" | jq empty 2>/dev/null; then
log_error "Endpoint returned invalid JSON"
exit 1
fi
# Check proof value matches
INSTALLED_PROOF=$(echo "$RESPONSE" | jq -r '.proof.proofValue')
SOURCE_PROOF=$(jq -r '.proof.proofValue' "$CREDENTIAL_FILE")
if [[ "$INSTALLED_PROOF" != "$SOURCE_PROOF" ]]; then
log_error "Proof value mismatch! Installation may be corrupted."
exit 1
fi
log_info "✅ Installation verified"
echo ""
# =============================================================================
# Success Summary
# =============================================================================
echo "============================================"
echo "Installation Complete"
echo "============================================"
echo ""
echo "Credential Details:"
echo " Issuer: $(jq -r '.issuer.name' "$TARGET")"
echo " Subject: $(jq -r '.credentialSubject.id' "$TARGET")"
echo " Issued: $(jq -r '.issuanceDate' "$TARGET")"
echo " Expires: $(jq -r '.expirationDate' "$TARGET")"
echo " Status URL: $(jq -r '.credentialStatus.statusListCredential' "$TARGET")"
echo ""
echo "Endpoint:"
echo " https://llm.kis.gov.lv/.well-known/credentials/mcp-server.json"
echo ""
echo "Next Steps:"
echo " 1. Test external access:"
echo " curl https://llm.kis.gov.lv/.well-known/credentials/mcp-server.json | jq"
echo ""
echo " 2. Verify in MCPF Registry:"
echo " curl https://mcp.veritrust.vc/mcp/servers/did:web:llm.kis.gov.lv"
echo ""
echo " 3. Test with AI agent (Claude Desktop, ChatGPT, etc.)"
echo ""

View File

@@ -0,0 +1,66 @@
{
"credentialType": "MCPServerCredential",
"subject": {
"did": "did:web:llm.kis.gov.lv",
"type": "MCPServer",
"endpoint": "https://llm.kis.gov.lv/mcp",
"manifest": "https://llm.kis.gov.lv/.well-known/mcp/manifest.json"
},
"controller": {
"id": "org.kisc",
"name": "Kultūras informācijas sistēmu centrs",
"registrationNumber": "KISC-REG-NUMBER",
"country": "LV",
"website": "https://kis.gov.lv",
"existingDID": "did:key:z6Mkuwv1z6y2yorbBf4LEkNzJCg16ERVfWE3bJEPKXtQm7a9"
},
"owner": {
"id": "org.km",
"name": "Kultūras ministrija",
"country": "LV",
"website": "https://km.gov.lv"
},
"capabilities": [
{
"name": "search",
"description": "Search YAML registers and Markdown documentation",
"riskLevel": "low"
},
{
"name": "get_entity",
"description": "Retrieve entity by canonical ID",
"riskLevel": "low"
}
],
"governance": {
"assuranceLevel": "substantial",
"compliance": [
"GDPR",
"NIS2",
"Latvian-Data-Protection-Act"
],
"dataClassification": "public",
"certifications": [],
"auditTrail": true
},
"publicKey": {
"type": "Ed25519VerificationKey2020",
"multibase": "z6MkjWGNnJsdyvutfbsytFJhkwDwyHkMkfWVL8X1fS1yBm2w",
"jwk": {
"kty": "OKP",
"crv": "Ed25519",
"x": "Sw-NGiVKSYj0zsrL7ceP6EMV673IuL2bYzHEypuojvA"
}
},
"validityPeriod": {
"notBefore": "2026-01-30T00:00:00Z",
"notAfter": "2027-01-30T00:00:00Z"
},
"metadata": {
"purpose": "MCPF Trust Framework integration for KISC MCP Server",
"environment": "production",
"poc": "POC-AI-LLM-1",
"technicalContact": "support@kis.gov.lv",
"requestDate": "2026-01-30"
}
}

View File

@@ -0,0 +1,62 @@
{
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://mcpf.dev/credentials/v1"
],
"id": "https://llm.kis.gov.lv/.well-known/credentials/mcp-server.json",
"type": [
"VerifiableCredential",
"MCPServerCredential"
],
"issuer": {
"id": "did:web:veritrust.vc",
"name": "VeriTrust"
},
"issuanceDate": "2026-01-30T00:00:00Z",
"expirationDate": "2027-01-30T00:00:00Z",
"credentialSubject": {
"id": "did:web:llm.kis.gov.lv#mcp-server",
"type": "MCPServer",
"endpoint": "https://llm.kis.gov.lv/mcp",
"manifest": "https://llm.kis.gov.lv/.well-known/mcp/manifest.json",
"controller": {
"id": "org.kisc",
"name": "Kultūras informācijas sistēmu centrs",
"country": "LV"
},
"owner": {
"id": "org.km",
"name": "Kultūras ministrija",
"country": "LV"
},
"capabilities": [
"search",
"get_entity"
],
"governance": {
"assuranceLevel": "substantial",
"compliance": [
"GDPR",
"NIS2",
"Latvian-Data-Protection-Act"
],
"dataClassification": "public",
"certifications": []
}
},
"credentialStatus": {
"id": "https://veritrust.vc/status/2026#PLACEHOLDER",
"type": "StatusList2021Entry",
"statusPurpose": "revocation",
"statusListIndex": "PLACEHOLDER",
"statusListCredential": "https://veritrust.vc/status/2026"
},
"proof": {
"type": "Ed25519Signature2020",
"created": "2026-01-30T00:00:00Z",
"verificationMethod": "did:web:veritrust.vc#key-1",
"proofPurpose": "assertionMethod",
"proofValue": "PLACEHOLDER_WILL_BE_REPLACED_BY_VERITRUST_SIGNATURE"
},
"_comment": "⚠️ PLACEHOLDER: This credential will be replaced by VeriTrust-issued credential. DO NOT use in production until replaced."
}

View File

@@ -0,0 +1,33 @@
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/ed25519-2020/v1"
],
"id": "did:web:llm.kis.gov.lv",
"controller": "did:web:llm.kis.gov.lv",
"verificationMethod": [
{
"id": "did:web:llm.kis.gov.lv#key-1",
"type": "Ed25519VerificationKey2020",
"controller": "did:web:llm.kis.gov.lv",
"publicKeyMultibase": "z6MkjWGNnJsdyvutfbsytFJhkwDwyHkMkfWVL8X1fS1yBm2w"
}
],
"authentication": [
"did:web:llm.kis.gov.lv#key-1"
],
"assertionMethod": [
"did:web:llm.kis.gov.lv#key-1"
],
"service": [
{
"id": "did:web:llm.kis.gov.lv#mcp-server",
"type": "MCPServer",
"serviceEndpoint": "https://llm.kis.gov.lv/mcp"
}
],
"alsoKnownAs": [
"https://llm.kis.gov.lv",
"urn:kisc:llm-platform"
]
}

View File

@@ -0,0 +1,12 @@
{
"keys": [
{
"kty": "OKP",
"crv": "Ed25519",
"x": "Sw-NGiVKSYj0zsrL7ceP6EMV673IuL2bYzHEypuojvA",
"use": "sig",
"kid": "did:web:llm.kis.gov.lv#key-1",
"alg": "EdDSA"
}
]
}

View File

@@ -0,0 +1,18 @@
{
"@context": "https://mcpf.dev/registry/v1",
"id": "did:web:llm.kis.gov.lv#trust-registry",
"type": "MCPTrustRegistry",
"version": "1.0",
"publisher": {
"id": "did:web:llm.kis.gov.lv",
"name": "KISC - Kultūras informācijas sistēmu centrs"
},
"services": {
"mcp": {
"id": "did:web:llm.kis.gov.lv#mcp-server",
"endpoint": "https://llm.kis.gov.lv/mcp",
"manifest": "https://llm.kis.gov.lv/.well-known/mcp/manifest.json",
"credential": "https://veritrust.vc/portal/mcp/credentials/aec9930b-9139-4b33-ac6f-ad3bd3d91da0.json"
}
}
}

View File

@@ -0,0 +1,135 @@
{
"@context": "https://modelcontextprotocol.io/schema/2025-03-26",
"@type": "MCPServer",
"id": "did:web:llm.kis.gov.lv#mcp-server",
"name": "KISC MCP Server (IKT Architecture)",
"version": "1.0.0",
"description": "Target architecture for Latvian Cultural and Language Technology domain (Kultūras un valodas tehnoloģiju apakšjomas mērķarhitektūra)",
"author": {
"name": "Kultūras informācijas sistēmu centrs (KISC)",
"url": "https://kis.gov.lv",
"did": "did:web:llm.kis.gov.lv"
},
"capabilities": {
"tools": true,
"resources": false,
"prompts": false,
"sampling": false
},
"server": {
"endpoint": "https://llm.kis.gov.lv/mcp",
"transport": "sse",
"authentication": {
"required": false,
"methods": []
}
},
"tools": [
{
"name": "search",
"description": "Search YAML registers and Markdown documentation across the target architecture",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search query string (searches across all registers and views)"
},
"limit": {
"type": "number",
"description": "Maximum number of results to return",
"default": 25,
"maximum": 100
}
},
"required": ["query"]
}
},
{
"name": "get_entity",
"description": "Retrieve a specific entity by its canonical ID from the architecture registers",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Entity canonical ID (e.g., 'goal.m1', 'org.kisc', 'sys.kultura.01')",
"pattern": "^[a-z]+\\.[a-z0-9_-]+$"
}
},
"required": ["id"]
}
}
],
"mcpf": {
"version": "0.1",
"spec": {
"repository": "https://github.com/MCPTrustFramework/MCPF-specification"
},
"entrypoint": {
"type": "manifest",
"url": "https://llm.kis.gov.lv/.well-known/mcp/manifest.json"
},
"artifacts": {
"trust_registry": "https://llm.kis.gov.lv/.well-known/mcp-trust-registry.json",
"credential": "https://veritrust.vc/portal/mcp/credentials/aec9930b-9139-4b33-ac6f-ad3bd3d91da0.json"
}
},
"trust": {
"verifications": [
{
"verifier": "did:web:veritrust.vc",
"type": ["VerifiableCredential", "MCPServerVerification"],
"credential": "https://veritrust.vc/portal/mcp/credentials/aec9930b-9139-4b33-ac6f-ad3bd3d91da0.json",
"covers": "did:web:llm.kis.gov.lv",
"proof_hint": {
"verificationMethod": "did:web:veritrust.vc#key-1",
"created": "2026-01-29T10:12:41Z"
}
}
]
},
"metadata": {
"organization": "Kultūras informācijas sistēmu centrs",
"organizationType": "government",
"country": "LV",
"domain": "kultura-valoda",
"tags": [
"architecture",
"government",
"latvia",
"culture",
"language",
"ikta",
"enterprise-architecture",
"target-architecture"
],
"dataClassification": "public",
"compliance": [
"GDPR",
"NIS2",
"Latvian-Data-Protection-Act"
],
"languages": [
"lv",
"en"
],
"status": "production"
},
"security": {
"tlsRequired": true,
"minTlsVersion": "1.3",
"signedRequestsRequired": false,
"rateLimits": {
"requestsPerMinute": 60,
"requestsPerHour": 1000
}
},
"links": {
"documentation": "https://kis.gov.lv/architecture",
"support": "mailto:support@kis.gov.lv",
"source": "https://github.com/kisc-gov-lv/MCP-KISC-architecture",
"terms": "https://kis.gov.lv/terms",
"privacy": "https://kis.gov.lv/privacy"
}
}

View File

@@ -0,0 +1,6 @@
Contact: mailto:security@kis.gov.lv
Contact: https://kis.gov.lv/security
Expires: 2027-12-31T23:59:59Z
Preferred-Languages: lv, en
Canonical: https://llm.kis.gov.lv/.well-known/security.txt
Policy: https://kis.gov.lv/security-policy

View File

@@ -0,0 +1,374 @@
# Kultūras un valodu tehnoloģiju jomas mērķarhitektūra
_Versija: 0.2.0_
# 1. Ievads
## 1.1. Dokumenta nolūks un mērķauditorija
Dokuments apraksta Kultūras un valodu tehnoloģiju jomas mērķarhitektūru un tās attīstības virzienus.
Mērķauditorija: jomas politikas un pārvaldības iesaistītās puses, sistēmu turētāji/uzturētāji, ieviesēji,
kā arī arhitektūras pārvaldības struktūras.
## 1.2. Domēna arhitektūras tvērums
Joma ietver:
- Kultūras apakšjomu
- Valodu tehnoloģiju apakšjomu
Tvērumā ietilpst:
- funkcijas un pakalpojumi
- informācijas resursi (datu kopas)
- informācijas sistēmas un integrācijas
- infrastruktūras un drošības apsvērumi
- ieviešanas ceļa karte un riski
## 1.3. Termini un saīsinājumi
Termini: `registers/00-meta/terms.yaml`
| term | definition |
| --- | --- |
| Mērķarhitektūra | Jomas mērķstāvokļa arhitektūras apraksts (3–5 gadu horizontā). |
| Informācijas resurss | Datu kopa / informācijas objekti, kas tiek uzturēti un izmantoti pakalpojumu sniegšanai. |
| SSOT | Single Source of Truth — autoritatīvais arhitektūras saturs šajā repo. |
Saīsinājumi: `registers/00-meta/abbreviations.yaml`
| abbr | meaning |
| --- | --- |
| API | Lietojumprogrammas saskarne (angl. – Application programming interface) |
| DAGR | Datu izplatīšanas un pārvaldības platforma |
| DO | Digitālais objekts |
| EK | Eiropas Komisija |
| ERAF | Eiropas Reģionālās attīstības fonds |
| ES | Eiropas Savienība |
| IKT | Informācijas un komunikācijas tehnoloģijas |
| IT | Informācijas tehnoloģijas |
| IS | Informācijas sistēma |
| KISC | Kultūras informācijas sistēmu centrs |
| KM | Kultūras ministrija |
| KMO | Kultūras mantojuma objekts |
| LNA | Latvijas Nacionālais arhīvs |
| LNB | Latvijas Nacionālā bibliotēka |
| LNKC | Latvijas Nacionālais kultūras centrs |
| LVA | Latviešu valodas aģentūra |
| LUMII | Latvijas Universitātes Matemātikas un informātikas institūts |
| MK | Ministru kabinets |
| NKMP | Nacionālā kultūras mantojuma pārvalde |
| NKC | Nacionālais kino centrs |
| TA | Tiesu administrācija |
| TM | Tieslietu ministrija |
| VARAM | Viedās administrācijas un reģionālās attīstības ministrija |
| VDAA | Valsts digitālās attīstības aģentūra |
| VIRSIS | Valsts informācijas resursu, sistēmu un sadarbspējas informācijas sistēma |
| VPM | Vienotās pieteikšanās modulis |
| VVC | Valsts valodas centrs |
## 1.4. Saistītie dokumenti
Saistītie dokumenti (reģistrs): `registers/00-meta/related-documents.yaml`
| id | title | date | type | relevance |
| --- | --- | --- | --- | --- |
| doc.km-strategija-2022-2027 | Kultūras ministrijas darbības stratēģija 2022.–2027. gadam | 2022 | strategy | Nosaka kultūrpolitikas rīcības virzienus, kas ietekmē digitālo pakalpojumu un datu attīstības prioritātes. |
| doc.kpnostadnes-2022-2027 | Kultūrpolitikas pamatnostādnes 2022.–2027. gadam | 2022 | strategy | Nosaka kultūras nozares attīstības mērķus un uzdevumus, kas jāatbalsta ar IKT risinājumiem un datu pārvaldību. |
| doc.mk-rikojums-380-2023 | MK rīkojums Nr. 380 (29.06.2023) – Par digitālās transformācijas pamatnostādnēm 2021.–2027. | 2023-06-29 | policy | Definē valsts digitālās transformācijas ietvaru un saskaņojamās pieejas (pakalpojumi, dati, koplietošanas platformas). |
| doc.eidas2-regula | Eiropas Parlamenta un Padomes regula par Eiropas digitālo identitāti (eIDAS2) | 2024 | law | Ietekmē lietotāju identitātes, autentifikācijas un pilnvarojuma risinājumus, īpaši e-pakalpojumos. |
| doc.gdpr-2016-679 | Regula (ES) 2016/679 – Vispārīgā datu aizsardzības regula (GDPR) | 2016 | law | Nosaka personas datu apstrādes principus, datu subjektu tiesības un tehniskos/organizatoriskos pasākumus. |
| doc.nis2-2022-2555 | Direktīva (ES) 2022/2555 – NIS2 | 2022 | law | Nosaka kiberdrošības prasības būtiskiem un svarīgiem pakalpojumiem, ietekmējot IS drošības pārvaldību. |
| doc.ai-act-2024-1689 | Regula (ES) 2024/1689 – Mākslīgā intelekta akts (EU AI Act) | 2024 | law | Ietekmē valodu tehnoloģiju un MI risinājumu ieviešanu, risku pārvaldību, pārredzamību un atbilstības pienākumus. |
| doc.open-data-directive-2019-1024 | Direktīva (ES) 2019/1024 – Atvērto datu un publiskā sektora informācijas atkārtotas izmantošanas direktīva | 2019 | law | Nosaka publicējamo datu atkārtotas izmantošanas nosacījumus, ietekmē atvērto datu publicēšanas prasības. |
| doc.web-accessibility-2016-2102 | Direktīva (ES) 2016/2102 – Tīmekļa vietņu un mobilo lietotņu piekļūstamība | 2016 | law | Nosaka piekļūstamības prasības publiskā sektora digitālajiem pakalpojumiem (WCAG u.c. standarti). |
| doc.copyright-directive-2019-790 | Direktīva (ES) 2019/790 – Autortiesības digitālajā vienotajā tirgū | 2019 | law | Ietekmē digitālo objektu izmantošanu, licencēšanu un izplatīšanu, kā arī teksta un datu ieguvi noteiktos gadījumos. |
| doc.latvija-infosabiedriba-pamatnostadnes | Latvijas informācijas sabiedrības attīstības pamatnostādnes (aktuālā redakcija) | — | policy | Nosaka horizontālus IKT pārvaldības, datu un pakalpojumu attīstības principus valsts pārvaldē. |
| doc.lv-ikp-arhitektura-ietvars | Valsts pārvaldes IKT arhitektūras ietvars / vadlīnijas (VDAA) | — | guideline | Nosaka arhitektūras aprakstu pieeju un skatus (bizness, dati, lietojumprogrammas, tehnoloģijas) publiskajā sektorā. |
| doc.vpm | Vienotās pieteikšanās modulis (VPM) – koplietošanas komponente | — | platform | Ietekmē autentifikāciju un identitātes pārvaldību, vienotai piekļuvei e-pakalpojumiem. |
| doc.dagr | DAGR – koplietošanas datu apmaiņas/pārvaldības risinājums (VDAA) | — | platform | Ietekmē datu integrācijas un publicēšanas iespējas, saskaņā ar koplietošanas principiem. |
| doc.virsis | VIRSIS – valsts informācijas resursu/sadarbspējas reģistrs | — | platform | Ietekmē IS un integrāciju reģistrēšanu, metadatus un pārvaldības caurspīdīgumu. |
| doc.atverto-datu-portals | Atvērto datu portāls (Latvija) – publicēšanas kanāls | — | platform | Kanonisks kanāls atvērtu datu publicēšanai, ietekmē datu produktu publicēšanas procesus. |
| doc.nacionals-arhivs-ilgtermina-saglabasana | Vienots elektronisko dokumentu ilgtermiņa saglabāšanas (arhivēšanas) risinājums (sadarbībā ar VARAM u.c.) | — | platform | Ietekmē digitālo objektu un dokumentu saglabāšanas, arhivēšanas un formātu pārvaldības prasības. |
| doc.datu-anonimizacijas-riks | Datu anonimizācijas rīks (TA) – koplietošanas rīks | — | tool | Ietekmē datu kopu sagatavošanu (valodu modelim, pētniecībai), nodrošinot personas datu aizsardzību. |
| doc.kulturas-statistika-analitika | Kultūras nozares statistikas datu analītikas risinājums (sadarbība ar CSP) | — | solution | Ietekmē datu analītikas mērķus, indikatorus un datu avotu integrācijas prasības. |
| doc.map-platforma | Mērķa finansējuma izlietojuma pārvaldības platforma (MAP) (IeM IC) | — | solution | Ietekmē VKKF/NKC procesu digitalizāciju un integrācijas prasības ar kultūras datiem un pakalpojumiem. |
| doc.valodu-modela-datu-kopas | Valodu modeļa izveidei un apmācībai nepieciešamo datu kopu pārvaldība (LNB koordinācija) | — | dataset | Nosaka datu turētāju, kvalitātes, licencēšanas un pieejamības prasības valodu tehnoloģiju risinājumiem. |
| doc.lv-autortiesibu-likums | Autortiesību likums (Latvija) | — | law | Nosaka autortiesību aizsardzību digitālajiem objektiem, licencēšanas un izmantošanas nosacījumus. |
| doc.lv-personas-datu-apstrade | Fizisko personu datu apstrādes likums (Latvija) un saistītie normatīvie akti | — | law | Papildina GDPR ieviešanu Latvijā; ietekmē datu apstrādes procesu un atbildību sadalījumu. |
| doc.lv-informacijas-atklatiba | Informācijas atklātības likums (Latvija) | — | law | Ietekmē pieprasījumu apstrādi, publicēšanas pienākumus un informācijas pieejamības principus. |
| doc.lv-valsts-informacijas-sistemu-likums | Valsts informācijas sistēmu likums / IKT pārvaldības regulējums (Latvija) | — | law | Nosaka valsts IS pārvaldības pamatus, reģistrāciju, sadarbspēju un atbildības aspektus. |
| doc.lv-kiberdrosibas-regulejums | Kiberdrošības regulējums (Latvija) un prasības valsts IS drošībai | — | law | Nosaka drošības prasības, incidentu vadību un atbilstības pienākumus valsts sektora IS. |
# 2. Domēna esošās arhitektūras novērtējums
Esošās arhitektūras novērtējums tiek uzturēts SWOT formā.
SWOT reģistrs: `registers/01-as-is/swot.yaml`
_(tukšs reģistrs)_
PIEZĪME:
Esošās arhitektūras komponentes (pakalpojumi, IKT risinājumi u.c.) jāuzskaita un jāuztur kā katalogs.
Repo pielikumā tiek uzturēts “komponentu katalogs” mašīnlasāmā formā:
`registers/10-catalog/as-is-components.yaml`
_(tukšs reģistrs)_
# 3. Domēna attīstības mērķi un principi
## 3.1. Domēna attīstības mērķi
Mērķi M1–M6 (reģistri): `registers/02-goals/`
## 3.2. Domēna attīstības principi
Domēna principi: `registers/00-meta/principles.yaml`
| id | title | description |
| --- | --- | --- |
| principle.p1 | Savietojamība un atkārtota izmantošana | Komponentes un dati tiek veidoti atkārtoti izmantojami un savietojami starp iestādēm. |
| principle.p2 | Drošība un noturība | Risinājumi ievēro kiberdrošības prasības un nodrošina nepārtrauktību. |
| principle.p3 | Datu kvalitāte un pārvaldība | Datu kopas tiek pārvaldītas ar definētiem kvalitātes un metadatu principiem. |
| principle.p4 | Digitāla pieejamība | Pakalpojumi un saturs ir pieejams lietotājiem, ievērojot piekļūstamību. |
## 3.3. Principu kartējums
Kartējums (domēna principi → nacionālie principi / prasību virzieni):
`registers/00-meta/principles-map.yaml`
_(tukšs reģistrs)_
# 4. Domēna mērķarhitektūra
## 4.1. Juridiskais skats
Šajā POC juridiskais skats tiek uzturēts kā juridisko aktu reģistrs:
`registers/00-meta/legal-acts.yaml`
### Personas datu aizsardzība
- **doc.gdpr-2016-679** — Personas datu apstrādes principi, tiesiskais pamats, datu subjektu tiesības; ietekmē visus e-pakalpojumus un datu kopas.
- **doc.lv-personas-datu-apstrade** — Nacionālā ieviešana un papildprasības; atbildību sadalījums un procedūras.
### Kiberdrošība un noturība
- **doc.nis2-2022-2555** — Drošības pārvaldība, incidentu ziņošana, piegādes ķēžu risku vadība; ietekmē IS un platformas.
- **doc.lv-kiberdrosibas-regulejums** — Nacionālās prasības valsts IS drošībai un incidentu vadībai.
### Piekļūstamība
- **doc.web-accessibility-2016-2102** — Piekļūstamības prasības publiskā sektora tīmekļa vietnēm un mobilajām lietotnēm; jāievēro WCAG prasības.
### Atvērtie dati un atkārtota izmantošana
- **doc.open-data-directive-2019-1024** — PSI atkārtotas izmantošanas nosacījumi un atvērto datu publicēšana.
- **doc.atverto-datu-portals** — Praktiskais publicēšanas kanāls; datu produktu publicēšanas procesi.
### Autortiesības un digitālo objektu izmantošana
- **doc.copyright-directive-2019-790** — Digitālais vienotais tirgus, licencēšana un noteikumi TDM gadījumiem.
- **doc.lv-autortiesibu-likums** — Nacionālais regulējums digitālo objektu izmantošanai un izplatīšanai.
### Identitāte un autentifikācija
- **doc.eidas2-regula** — Digitālās identitātes prasības ES līmenī; ietekmē autentifikācijas un pilnvarojuma arhitektūru.
- **doc.vpm** — Koplietošanas komponente autentifikācijai; rekomendējama vienotai piekļuvei.
### Mākslīgais intelekts un valodu tehnoloģijas
- **doc.ai-act-2024-1689** — MI sistēmu riska klase, atbilstības pienākumi, pārredzamība; tieši attiecas uz valodu tehnoloģiju risinājumiem un valodu modeli.
- **doc.datu-anonimizacijas-riks** — Datu sagatavošana (anonimizācija) valodu modeļa apmācībai un analītikai.
### Publiskā sektora IKT pārvaldība un sadarbspēja
- **doc.lv-valsts-informacijas-sistemu-likums** — Valsts IS pārvaldības pamati, reģistrācija, sadarbspēja; ietekmē VIRSIS un integrācijas prasības.
- **doc.virsis** — IS un integrāciju reģistrēšana; metadatu uzturēšana.
- **doc.dagr** — Datu integrācija, apmaiņa, publicēšana; koplietošanas princips.
- **doc.lv-ikp-arhitektura-ietvars** — Nosaka arhitektūras skatus un apraksta metodiku; jāievēro jomas arhitektūras aprakstā.
### Ilgtermiņa saglabāšana un arhivēšana
- **doc.nacionals-arhivs-ilgtermina-saglabasana** — Vienots ilgtermiņa saglabāšanas risinājums; ietekmē digitālo objektu dzīves ciklu un formātu prasības.
## 4.2. Organizācijas skats
### 4.2.1. Funkcijas
Reģistrs: `registers/04-functions/functions.yaml`
| id | subdomain | name | change_status | change_description |
| --- | --- | --- | --- | --- |
| func.01 | subdomain.kultura | Kultūras mantojuma satura radīšanas veicināšana, satura apzināšana, fiksēšana, pētniecība | Izmaiņas | Funkcija tiek stiprināta ar digitāliem rīkiem un datu pieeju, lai uzlabotu kultūras vērtību identificēšanu, strukturēšanu un analīzi, samazinot manuālo darbu un palielinot procesa caurspīdīgumu. |
| func.02 | subdomain.kultura | Kultūras mantojuma, dokumentu un datu saglabāšana, aizsardzība un pieejamības nodrošināšana | Izmaiņas | Attīstāma centralizēta digitālās saglabāšanas pieeja, kas nodrošina ilgtermiņa glabāšanu, elastīgu piekļuvi dažādām lietotāju grupām un drošības prasību ievērošanu. |
| func.03 | subdomain.kultura | Kultūras mantojuma satura digitalizācija, digitālā satura pieejamības nodrošināšana | Izmaiņas | Digitalizācija tiek paplašināta ar semantisko bagātināšanu, meklējamību un integrāciju, lai digitālais saturs kļūtu plašāk izmantojams un atkārtoti lietojams. |
| func.04 | subdomain.kultura | Kultūrizglītības īstenošana, attīstība, popularizēšana | Izmaiņas | Funkcija tiek stiprināta ar digitālajiem resursiem un personalizētu satura piegādi dažādām auditorijām, tostarp mūžizglītības un izglītības vajadzībām. |
| func.05 | subdomain.valoda | Publiskās pārvaldes valodu tehnoloģiju platformas uzturēšana un attīstība | Izmaiņas | Pāreja no atsevišķiem rīkiem uz integrētu platformu, kur valodas resursi, modeļi un pakalpojumi tiek uzturēti kā koplietošanas infrastruktūra. |
| func.06 | subdomain.valoda | Lielā latviešu valodas modeļa (LVM-LV) uzturēšana un attīstība | Jauns | Jauna funkcija valsts mēroga valodas infrastruktūras pamatelementam, kas nodrošina latviešu valodas klātbūtni MI risinājumos. Ietver datu kopu pārvaldību, modeļa uzturēšanu, pielāgošanu uzdevumiem un sadarbību ar pētniecības/izstrādes partneriem. |
Diagramma (TODO): `diagrams/TODO-01-funkcijas.mmd`
### 4.2.2. Pakalpojumi
Kultūras apakšjoma: `registers/05-services/kultura-services.yaml`
| id | subdomain | name | change_description | number | resources | status |
| --- | --- | --- | --- | --- | --- | --- |
| svc.kultura.01 | subdomain.kultura | Kultūras jomas statistikas datu apstrādes nodrošināšana, datu pieejamības nodrošināšana | Plānots ieviest vienotu kultūras stati... balstītu lēmumu pieņemšanu kultūras politikā un pārvaldībā. | 1 | {'raw': 'Latvijas Kultūras datu portāls/', 'virsis_id': None}, {'raw': 'Programmatūra/ VIRSIS ID 544.', 'virsis_id': 544}, {'raw': 'Latvijas kultūras jomas oficiālās', 'virsis_id': None}, {'raw': 'statistikas dati/ Informācijas resurss/', 'virsis_id': None}, {'raw': 'VIRSIS ID 545.', 'virsis_id': 545}, {'raw': 'Un citi (tiks papildināts nākamajās', 'virsis_id': None}, {'raw': 'versijās pēc reģistrācijas VIRSIS).', 'virsis_id': None} | Izmaiņas |
| svc.kultura.02 | subdomain.kultura | Kultūras mantojuma integrācijas platformas datu apstrādes nodrošināšana, digitalizēto objektu pārvaldības un izplatīšanas nodrošināšana | Plānots paplašināt datu apmaiņas iespējas starp kultūras ma... piemēram, izglītības, pētniecības un tūrisma vajadzībām. . | 2 | {'raw': 'Tiks papildināts nākamajās', 'virsis_id': None}, {'raw': 'versijās pēc reģistrācijas VIRSIS).', 'virsis_id': None} | Izmaiņas |
| svc.kultura.03 | subdomain.kultura | Kultūras mantojuma digitālo objektu reģistrs informācijas uzkrāšanas nodrošināšana | Tiks pilnveidots reģistrs (DOM) meklēšanas un datu attēloša... pieejamība sabiedrībai, ievērojot normatīvos ierobežojumus. | 3 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| svc.kultura.04 | subdomain.kultura | Arhīvu datu apstrādes nodrošināšana, datu pieejamības un izplatīšanas nodrošināšana | Plānots uz Vienotās valsts arhīvu informācijas sistēmas bāzes ... augstāku datu kvalitāti un pieejamību. | 4 | {'raw': 'Tiks papildināts nākamajās', 'virsis_id': None}, {'raw': 'versijās pēc reģistrācijas VIRSIS).', 'virsis_id': None} | Izmaiņas |
| svc.kultura.05 | subdomain.kultura | Kultūras nozares mērķprogrammu pieteikumu un projektu datu apstrādes nodrošināšana | Plānots pāriet uz vienotu mērķprogrammu pārvaldības... kas ļaus automatizēt datu apmaiņu un samazināt manuālo darbu. | 5 | {'raw': 'Tiks papildināts nākamajās', 'virsis_id': None}, {'raw': 'versijās pēc reģistrācijas VIRSIS).', 'virsis_id': None} | Izmaiņas |
| svc.kultura.06 | subdomain.kultura | Valsts nozīmes bibliotēku krājuma datu apstrāde un pieejamības nodrošināšana | Tiks turpināts attīstīt Vienotais bibliotēku kopkatalogs (VBK), uzlabojot datu integrāciju un piekļuvi. | 6 | {'raw': 'Tiks papildināts nākamajās', 'virsis_id': None}, {'raw': 'versijās pēc reģistrācijas VIRSIS).', 'virsis_id': None} | Izmaiņas |
| svc.kultura.07 | subdomain.kultura | Bibliotēku datu apstrādes nodrošināšana, pakalpojumu sniegšanas un pieejamības nodrošināšana | Plānota jaunas bibliotēku informācijas sistēmas izveide, aizstājot tehnoloģiski novecojušus risinājumus un uzlabojot integrācijas. | 7 | {'raw': 'Tiks papildināts nākamajās', 'virsis_id': None}, {'raw': 'versijās pēc reģistrācijas VIRSIS).', 'virsis_id': None} | Izmaiņas |
| svc.kultura.08 | subdomain.kultura | Atsauces (autoritatīvo) datu apstrādes nodrošināšana un pieejamības nodrošināšana | Plānots pilnveidot atsauces datu sistēmu, uzlabojot kvalitāti, savietojamību un integrācijas ar ārējām sistēmām. | 8 | {'raw': 'Tiks papildināts nākamajās', 'virsis_id': None}, {'raw': 'versijās pēc reģistrācijas VIRSIS).', 'virsis_id': None} | Izmaiņas |
| svc.kultura.09 | subdomain.kultura | Autortiesību pārvaldība un licencēšanas datu apstrāde | Tiks attīstīta autortiesību pārvaldības un licencēšanas datu pārvaldība, uzlabojot datu pieejamību atbilstoši ierobežojumiem. | 9 | {'raw': 'Autortiesību pārvaldības un', 'virsis_id': None}, {'raw': 'licencēšanas dati/ Informācijas resurss/ ID 51565.', 'virsis_id': 51565} | Izmaiņas |
| svc.kultura.10 | subdomain.kultura | Kultūras mantojuma digitālo objektu ilgtermiņa saglabāšanas nodrošināšana | Plānots attīstīt vienotu ilgtermiņa saglabāšanas pieeju, nodrošinot rezerves kopēšanu, noturību un piekļuves kontroli. | 10 | {'raw': 'Tiks papildināts nākamajās', 'virsis_id': None}, {'raw': 'versijās pēc reģistrācijas VIRSIS).', 'virsis_id': None} | Izmaiņas |
| svc.kultura.11 | subdomain.kultura | Kultūras pieminekļu datu apstrāde un pieejamības nodrošināšana | Tiks attīstīta NKMP mantojuma datu pārvaldība, uzlabojot datu kvalitāti, meklējamību un integrāciju ar citām platformām. | 11 | {'raw': 'Tiks papildināts nākamajās', 'virsis_id': None}, {'raw': 'versijās pēc reģistrācijas VIRSIS).', 'virsis_id': None} | Izmaiņas |
| svc.kultura.12 | subdomain.kultura | Nemateriālā kultūras mantojuma datu apstrāde un pieejamības nodrošināšana | Plānota nemateriālā kultūras mantojuma datu pārvaldības attīstība, uzlabojot uzkrāšanu, meklēšanu un publisko pieejamību. | 12 | {'raw': 'Tiks papildināts nākamajās', 'virsis_id': None}, {'raw': 'versijās pēc reģistrācijas VIRSIS).', 'virsis_id': None} | Izmaiņas |
| svc.kultura.13 | subdomain.kultura | Nacionālā muzeju krājuma datu apstrāde un pieejamības nodrošināšana | Plānots pilnveidot NMKK informācijas sistēmu, uzlabojot datu struktūru, savietojamību un publisko pieejamību. | 13 | {'raw': 'Tiks papildināts nākamajās', 'virsis_id': None}, {'raw': 'versijās pēc reģistrācijas VIRSIS).', 'virsis_id': None} | Izmaiņas |
| svc.kultura.14 | subdomain.kultura | Kultūras mantojuma pieejamības nodrošināšana publiskajos portālos | Plānots attīstīt publiskos portālus, kas nodrošina vienotu piekļuvi digitalizētajam saturam un uzlabotu lietotāja pieredzi. | 14 | {'raw': 'Tiks papildināts nākamajās', 'virsis_id': None}, {'raw': 'versijās pēc reģistrācijas VIRSIS).', 'virsis_id': None} | Izmaiņas |
| svc.kultura.15 | subdomain.kultura | LNB mākoņdatošanas pārvaldības un valsts mēroga platformas pakalpojumu nodrošināšana | Plānots turpināt attīstīt augstas noturības un drošības platformas, t.sk. MI infrastruktūras pārvaldībai, kultūras nozares koplietošanas vajadzībām. | 15 | {'raw': 'Tiks papildināts nākamajās', 'virsis_id': None}, {'raw': 'versijās pēc reģistrācijas VIRSIS).', 'virsis_id': None} | Izmaiņas |
| svc.kultura.16 | subdomain.kultura | Lietotāju apkalpošana, reģistrācija un piekļuves nodrošināšana | Lietotāju klātienes apkalpošanas attīstība un piekļuves nodrošināšanas procesu pilnveide, kas samazinās slogu un veicinās digitālo pakalpojumu izmantošanu. | 16 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
Valodu tehnoloģiju apakšjoma: `registers/05-services/valoda-services.yaml`
| id | subdomain | name | change_description | number | resources | status |
| --- | --- | --- | --- | --- | --- | --- |
| svc.valoda.01 | subdomain.valoda | Runas sīkrīka pakalpojumi | Esošie runas sīkrīki, kas nodrošināja vienkāršotu runas sint...viešu valodas modeli (LVM-LV) un mākslīgā intelekta iespējām. | 1 | {'raw': 'Runas sīkrīks/', 'virsis_id': None}, {'raw': 'Programmatūra/ VIRSI ID 53219.', 'virsis_id': 53219} | Beidz pastāvēt |
| svc.valoda.02 | subdomain.valoda | Tulkošanas sīkrīka pakalpojumi | Esošie tulkošanas sīkrīki, kas nodrošināja vienkāršotu teksta...iešu valodas modeli (LVM-LV) un daudzvalodu MI arhitektūrām. | 2 | {'raw': 'Tulkošanas sīkrīk/', 'virsis_id': None}, {'raw': 'Programmatūra/ VIRSIS ID 53323.', 'virsis_id': 53323} | Beidz pastāvēt |
| svc.valoda.03 | subdomain.valoda | Tulkošanas logrīka pakalpojumi | Tulkošanas logrīki, kas tika izmantoti kā iebūvējami tulkošanas...MI arhitektūrām, kur tulkošana tiks nodrošināta ar centralizētiem pakalpojumiem. | 3 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Beidz pastāvēt |
| svc.valoda.04 | subdomain.valoda | Mašīntulka pakalpojumi | Esošie mašīntulkošanas pakalpojumi tiks būtiski modernizēti, ieviešot integrāciju ar LVM-LV un daudzvalodu MI arhitektūrām. | 4 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| svc.valoda.05 | subdomain.valoda | Mobilās lietotnes | Plānots izstrādāt modernizētu mobilo lietotni, kas izmantos LVM-LV un valodu tehnoloģiju platformu pakalpojumus. | 5 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| svc.valoda.06 | subdomain.valoda | Virtuālā asistenta pakalpojumi | Esošie virtuālie asistenti tiks modernizēti, nodrošinot vienotu piekļuvi valodu tehnoloģiju platformai un LVM-LV iespējām. | 6 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| svc.valoda.07 | subdomain.valoda | Runas atpazīšanas rīka pakalpojumi | Esošais runas atpazīšanas rīks tiks būtiski modernizēts, balstoties uz LVM-LV un jaunākām MI arhitektūrām. | 7 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| svc.valoda.08 | subdomain.valoda | Runas sintēzes pakalpojumi | Runas sintēzes pakalpojums tiks modernizēts, nodrošinot labāku kvalitāti, integrācijas un izmantojamību valsts pakalpojumos. | 8 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| svc.valoda.09 | subdomain.valoda | Vieglās valodas rīks | Tiks attīstīts vieglās valodas rīks, kas, izmantojot MI, palīdzēs vienkāršot tekstus un uzlabot piekļūstamību. | 9 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| svc.valoda.10 | subdomain.valoda | Teksta ģenerēšanas pakalpojumi | Tiks izveidots pakalpojums, kas ļaus valsts iestādēm ģenerēt tekstus, balstoties uz LVM-LV, ievērojot drošības prasības. | 10 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Jauns |
| svc.valoda.11 | subdomain.valoda | Kopsavilkumu izveides pakalpojumi | Pakalpojums nodrošinās iespēju automātiski veidot kopsavilkumus un strukturēt informāciju valsts pārvaldes vajadzībām. | 11 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Jauns |
| svc.valoda.12 | subdomain.valoda | Meklēšanas dokumentos pakalpojumi valsts pārvaldes institūcijām | Tiks izstrādāts semantiskās meklēšanas pakalpojums, kas ļaus atrast informāciju dokumentos un palīdzēs analītikā. | 12 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Jauns |
| svc.valoda.13 | subdomain.valoda | LVM publiskie pakalpojumi - LVM modelis MI izpētes un attīstības vajadzībām | Tiks izveidots publisks pakalpojums, kas nodrošinās piekļuvi valodas infrastruktūrai pētniecībai un inovācijām. | 13 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Jauns |
| svc.valoda.14 | subdomain.valoda | Jaunu valodu tehnoloģiju pārnese un izmitināšana | Tiks izveidots pakalpojums, kas nodrošinās jaunu valodu tehnoloģiju ieviešanu, izmitināšanu un darbību, ievērojot regulējumu un kiberdrošību. | 14 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Jauns |
Diagramma (TODO): `diagrams/TODO-02-pakalpojumi.mmd`
## 4.3. Semantiskais skats
### 4.3.1. Informācijas resursi
Kultūras apakšjoma: `registers/06-information-resources/kultura-info-resources.yaml`
| id | subdomain | name | description | number | resources | status |
| --- | --- | --- | --- | --- | --- | --- |
| ir.kultura.01 | subdomain.kultura | Kultūras jomas iestāžu dati | Plānots uzlabot kultūras iestāžu pamatinformācijas datu str...as plānošanā. Uzlabojumi atbalstīs plašākas iespējas šo datu | 1 | {'raw': 'Latvijas Kultūras datu portāls/', 'virsis_id': None}, {'raw': 'Programmatūra / VIRSIS ID 544.', 'virsis_id': 544} | Izmaiņas |
| ir.kultura.02 | subdomain.kultura | Kultūras jomas statiskas dati | Plānots pāriet uz vienotu kultūras statistikas datu pārvald...ietošanas platformām (piemēram, DAGR) un citiem risinājumiem. | 2 | {'raw': 'Latvijas kultūras jomas oficiālās statistikas dati/ Informācijas resurss/ ID 545.', 'virsis_id': 545} | Izmaiņas |
| ir.kultura.03 | subdomain.kultura | Atsauces (autoritatīvie) dati | Tiks pilnveidota atsauces datu pārvaldība un uzlabota datu ...pējas ar ārējām sistēmām. Tiks izmantoti MI rīki attīstībā. | 3 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| ir.kultura.04 | subdomain.kultura | Autortiesību un licencēšanas dati | Tiks pilnveidota autortiesību un licencēšanas datu pārvaldī...tu satura pieejamību atbilstoši autortiesību ierobežojumiem. | 4 | {'raw': 'Autortiesību pārvaldības un licencēšanas dati/ Informācijas resurss/ ID 51565.', 'virsis_id': 51565} | Izmaiņas |
| ir.kultura.05 | subdomain.kultura | Teksta dokumenti | Tiks uzlabota teksta dokumentu pārvaldība, ieviešot automat...īvajiem datiem un kultūras mantojuma digitālajiem objektiem. | 5 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| ir.kultura.06 | subdomain.kultura | Attēli | Plānots uzlabot attēlu datu pārvaldību, ieviešot vienotus m...t vizuālo saturu. Tiks ieviesti MI risinājumi attēlu satura | 6 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| ir.kultura.07 | subdomain.kultura | Audio | Plānots uzlabot audio datu pārvaldību, ieviešot metadatu stan...šākai izmantošanai. Tiks atbalstīta integrācija ar mantojuma | 7 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| ir.kultura.08 | subdomain.kultura | Video | Plānots attīstīt video datu pārvaldību, ieviešot vienotu met...šinot publicēšanu un atkārtotu izmantošanu (piemēram, izglītībā, pētniecībā). | 8 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| ir.kultura.09 | subdomain.kultura | Kultūras mantojuma digitālie objekti | Tiks uzlabota digitālo objektu (DO) uzkrāšana, meklējamība...cijām (DOM, APLIS, ATS u.c.), kā arī sasaisti ar atsauces datiem. | 9 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| ir.kultura.10 | subdomain.kultura | Arhīvu dati | Plānots uzlabot arhīvu datu pieejamību, pārvaldību un integrāciju, balstoties uz vienoto arhīvu IS risinājumiem. | 10 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| ir.kultura.11 | subdomain.kultura | Muzeju krājuma dati | Muzeju krājuma dati tiks strukturēti un padarīti savietojamāki, uzlabojot publisko pieejamību un atkārtotu izmantošanu. | 11 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| ir.kultura.12 | subdomain.kultura | Nekustamo kultūras pieminekļu dati | Tiks uzlabota NKMP datu pārvaldība, integrācijas un datu kvalitāte. | 12 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| ir.kultura.13 | subdomain.kultura | Nemateriālā kultūras mantojuma dati | Tiks attīstīta nemateriālā kultūras mantojuma datu uzkrāšana un publiskā pieejamība. | 13 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| ir.kultura.14 | subdomain.kultura | Kultūras programmu/projektu dati | Tiks uzlabota programmu un projektu datu pārvaldība, automatizējot datu apmaiņu un atskaites. | 14 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| ir.kultura.15 | subdomain.kultura | Lietotāju dati un piekļuves tiesības | Tiks pilnveidota lietotāju datu pārvaldība un piekļuves kontrole, lai atbalstītu vienotu lietotāju pieredzi. | 15 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
Valodu tehnoloģiju apakšjoma: `registers/06-information-resources/valoda-info-resources.yaml`
| id | subdomain | name | description | number | resources | status |
| --- | --- | --- | --- | --- | --- | --- |
| ir.valoda.01 | subdomain.valoda | Monolingvālie valodu korpusi | Tiks veidoti un uzturēti monolingvālie korpusi latviešu valodai un citām valodām, lai nodrošinātu treniņdatus un valodas resursus MI risinājumiem. | 1 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Jauns |
| ir.valoda.02 | subdomain.valoda | Paralēlie valodu korpusi | Paralēlie korpusi tiks attīstīti mašīntulkošanas un daudzvalodu MI vajadzībām, veicinot tulkošanas kvalitāti un valodu tehnoloģiju attīstību. | 2 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Jauns |
| ir.valoda.03 | subdomain.valoda | Terminoloģijas dati | Terminoloģijas resursi tiks pilnveidoti, uzlabojot kvalitāti, pieejamību un integrāciju ar citiem datu avotiem. | 3 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| ir.valoda.04 | subdomain.valoda | LVM-LV trenēšanas dati (līdzsvaroti avotu dati) | Tiks veidotas līdzsvarotas datu kopas LVM-LV treniņam, ievērojot autortiesības, datu aizsardzību un kvalitātes prasības. | 4 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Jauns |
| ir.valoda.05 | subdomain.valoda | LVM-LV dati konkrētu uzdevumu izpildei (pielāgošanas un integrācijas dati) | Datu kopas tiks radītas pēc LVM modeļa izveides, pielāgojot...mu veikšanai un paplašinot LVM modeļa izmantošanas iespējas. | 5 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Jauns |
| ir.valoda.06 | subdomain.valoda | LVM-LV novērtēšanas dati | Datu kopa tiks radīta līdz ar LVM modeļa izveidi. Datu kopa...nveidei, gan pētniecībai un MI risinājumu attīstībai kopumā. | 6 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Jauns |
| ir.valoda.07 | subdomain.valoda | Valodu tehnoloģiju lietojuma dati un telemetrija | Tiks vākti un analizēti lietojuma dati, lai uzlabotu platformas pakalpojumu kvalitāti, noturību un drošību. | 7 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Jauns |
| ir.valoda.08 | subdomain.valoda | Kultūras mantojuma dati | Dati, kas tiek radīti un uzturēti Kultūras apakšjomas sistē...jumu sniegšanā, ievērojot normatīvā regulējuma nosacījumus. | 8 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | - |
Diagramma (TODO): `diagrams/TODO-03-informacijas-resursi.mmd`
## 4.4. Tehniskais skats
### 4.4.1. Informācijas sistēmas
Kultūras apakšjoma: `registers/07-systems/kultura-systems.yaml`
| id | subdomain | name | description | number | resources | status |
| --- | --- | --- | --- | --- | --- | --- |
| sys.kultura.01 | subdomain.kultura | Vienotais bibliotēku kopkatalogs (VBK) | Tiks būtiski uzlabota datu aprite un integrācija, nodrošino...npuses – datu sadrumstalotību un nepietiekamu savietojamību. | 1 | {'raw': 'Valsts nozīmes bibliotēku krājuma dati/ Informācijas resurss/ Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS).', 'virsis_id': None} | Izmaiņas |
| sys.kultura.02 | subdomain.kultura | Bibliotēku Informācijas Sistēma | Tiks izveidota jauna, mūsdienu standartiem atbilstoša sistē...hnoloģisko novecošanos un veicina datu atkalizmantojamību. | 2 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Jauns |
| sys.kultura.03 | subdomain.kultura | Atsauces (autoritatīvo) datu sistēma | Tiks modernizēta atsauces datu sistēma, uzlabojot datu kvalitāti, versēšanu, integrācijas un izmantojamību visā jomā. | 3 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| sys.kultura.04 | subdomain.kultura | Latvijas Kultūras datu portāls | Tiks attīstīts Kultūras datu portāls kā vienots piekļuves punkts datiem un analītikai, uzlabojot integrācijas ar valsts platformām un MI rīku izmantošanu. | 4 | {'raw': 'Programmatūra/ VIRSIS ID 544.', 'virsis_id': 544} | Izmaiņas |
| sys.kultura.05 | subdomain.kultura | Digitālo objektu pārvaldības sistēma (DOM) | Tiks pilnveidota DOM, uzlabojot meklēšanu, datu attēlošanu, integrācijas ar citām sistēmām un publisko pieejamību atbilstoši regulējumam. | 5 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| sys.kultura.06 | subdomain.kultura | Vienotā valsts arhīvu informācijas sistēma | Attīstība uz vienotu arhīvu IS bāzes, uzlabojot digitalizēto objektu pārvaldību, meklēšanu, publisko pieejamību un integrācijas. | 6 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| sys.kultura.07 | subdomain.kultura | Kultūras pieminekļu pārvaldības sistēmas | NKMP sistēmu attīstība, uzlabojot datu kvalitāti, savietojamību un publisko pieejamību. | 7 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| sys.kultura.08 | subdomain.kultura | Nemateriālā kultūras mantojuma pārvaldības sistēmas | Tiks attīstītas sistēmas nemateriālā mantojuma uzkrāšanai, uzturēšanai un publicēšanai, uzlabojot integrācijas un meklējamību. | 8 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| sys.kultura.09 | subdomain.kultura | Nacionālā muzeju krājuma kopkataloga sistēma (NMKK) | NMKK sistēmas pilnveide, nodrošinot labāku datu struktūru, savietojamību un publisko pieejamību. | 9 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| sys.kultura.10 | subdomain.kultura | Autortiesību pārvaldības sistēma | Tiks pilnveidota autortiesību pārvaldība un licencēšana, ieviešot labāku datu pārvaldību un integrācijas, lai kontrolētu piekļuvi saturam. | 10 | {'raw': 'Autortiesību pārvaldības un licencēšanas dati/ Informācijas resurss/ ID 51565.', 'virsis_id': 51565} | Izmaiņas |
| sys.kultura.11 | subdomain.kultura | Kultūras mantojuma sistēmas | Kultūras mantojuma sistēmās radītie un uzturētie dati tiks ...odrošinās šo datu sasaisti ar valodu tehnoloģiju platformu, | 11 | {'raw': 'Latvijas kultūras jomas statistikas dati/ Informācijas resurss/ VIRSIS ID 545.', 'virsis_id': 545}, {'raw': 'Ģerboņu kataloga dati/ Informācijas resurss/ VIRSIS ID 486.', 'virsis_id': 486} | - |
| sys.kultura.12 | subdomain.kultura | Kultūras projektu/pieteikumu sistēma | Tiks ieviesta vienotāka projektu un mērķprogrammu pārvaldība, automatizējot atskaites un datu apmaiņu. | 12 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| sys.kultura.13 | subdomain.kultura | Publiskie kultūras portāli | Publiskie portāli tiks modernizēti, nodrošinot vienotu piekļuvi, meklēšanu un lietotāja pieredzi. | 13 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| sys.kultura.14 | subdomain.kultura | Lietotāju identitātes un piekļuves pārvaldības risinājumi | Tiks pilnveidoti identitātes un piekļuves pārvaldības procesi, lai atbalstītu vienotu autentifikāciju un autorizāciju jomas sistēmās. | 14 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| sys.kultura.15 | subdomain.kultura | Mākoņdatošanas pārvaldības platforma (LNB) | LNB mākoņplatformas attīstība kā valsts mēroga infrastruktūras pamats, t.sk. koplietošanas un MI infrastruktūras pārvaldībai. | 15 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| sys.kultura.16 | subdomain.kultura | Datu uzkrāšanas un ilgtermiņa saglabāšanas risinājumi | Vienota ilgtermiņa glabāšana un rezerves kopēšana, nodrošinot noturību un atbilstību drošības prasībām. | 16 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| sys.kultura.17 | subdomain.kultura | Drošības un noturības risinājumi | Drošības, noturības un nepārtrauktības prasību ieviešana jomas koplietošanas risinājumos. | 17 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| sys.kultura.21 | subdomain.kultura | Digitālās saglabāšanas un digitalizācijas atbalsta risinājumi | Digitalizācijas plūsmas un digitālās saglabāšanas risinājumu attīstība, integrējot metadatus, meklēšanu un publikāciju. | 21 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| sys.kultura.22 | subdomain.kultura | Analītikas un pārskatu risinājumi | Analītikas un pārskatu iespējas tiks paplašinātas, ieviešot savietojamību ar valsts datu platformām un MI rīkiem. | 22 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
Valodu tehnoloģiju apakšjoma: `registers/07-systems/valoda-systems.yaml`
| id | subdomain | name | description | number | resources | status |
| --- | --- | --- | --- | --- | --- | --- |
| sys.valoda.01 | subdomain.valoda | Publiskās pārvaldes valodu tehnoloģiju platforma | Tiks uzturēta un attīstīta vienota valodu tehnoloģiju platforma, kas nodrošinās koplietošanas pakalpojumus (tulkošana, runa, semantiskā meklēšana u.c.). | 1 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| sys.valoda.02 | subdomain.valoda | Lielais latviešu valodas modelis (LVM-LV) | Tiks izveidots un uzturēts LVM-LV kā valsts mēroga valodas infrastruktūras pamatelements, nodrošinot izmantošanu valsts pakalpojumos un platformas rīkos. | 2 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Jauns |
| sys.valoda.03 | subdomain.valoda | Mašīntulkošanas pakalpojumu sistēmas | Mašīntulkošana tiks modernizēta un integrēta ar LVM-LV un daudzvalodu MI arhitektūrām. | 3 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| sys.valoda.04 | subdomain.valoda | Runas atpazīšanas sistēmas | Runas atpazīšana tiks modernizēta, uzlabojot kvalitāti un integrācijas ar platformu un LVM-LV. | 4 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| sys.valoda.05 | subdomain.valoda | Runas sintēzes sistēmas | Runas sintēze tiks modernizēta un padarīta plašāk izmantojama valsts pakalpojumu kanālos. | 5 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| sys.valoda.06 | subdomain.valoda | Virtuālo asistentu sistēmas | Virtuālie asistenti tiks modernizēti un sasaistīti ar valodu tehnoloģiju platformas koplietošanas pakalpojumiem. | 6 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| sys.valoda.07 | subdomain.valoda | Semantiskās meklēšanas sistēmas | Tiks ieviestas semantiskās meklēšanas iespējas dokumentu krātuvēs, balstoties uz LVM-LV un platformas rīkiem. | 7 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Jauns |
| sys.valoda.08 | subdomain.valoda | Teksta ģenerēšanas un kopsavilkumu sistēmas | Tiks izveidoti teksta ģenerēšanas un kopsavilkumu rīki, ievērojot drošības, datu aizsardzības un kvalitātes prasības. | 8 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Jauns |
| sys.valoda.09 | subdomain.valoda | Vieglās valodas rīki | Vieglās valodas rīki tiks attīstīti, lai uzlabotu piekļūstamību un tekstu saprotamību plašākai auditorijai. | 9 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Izmaiņas |
| sys.valoda.10 | subdomain.valoda | Valodu resursu pārvaldības sistēmas (korpusi, terminoloģija) | Tiks attīstītas sistēmas korpusu, terminoloģijas un citu valodu resursu uzturēšanai un publicēšanai. | 10 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Jauns |
| sys.valoda.11 | subdomain.valoda | Jaunu valodu tehnoloģiju izmitināšanas un pārneses vide | Tiks nodrošināta vide jaunu valodu tehnoloģiju ieviešanai un izmitināšanai, ievērojot normatīvos aktus un kiberdrošības prasības. | 11 | {'raw': 'Tiks papildināts nākamajās versijās pēc reģistrācijas VIRSIS.', 'virsis_id': None} | Jauns |
Diagramma (TODO): `diagrams/TODO-04-informacijas-sistemas.mmd`
### 4.4.2. IS sadarbība un integrācijas
Diagramma (TODO): `diagrams/TODO-05-integracijas.mmd`
### 4.4.3. IKT infrastruktūra
POC līmenī infrastruktūra tiek uzturēta kā principi + riski + ceļa kartes pasākumi.
Nākamajā iterācijā infrastruktūru iznes uz atsevišķu reģistru.
# 5. Domēna mērķarhitektūras ieviešanas ceļa karte
## 5.1. Pasākumu plāns
Reģistrs: `registers/08-roadmap/roadmap.yaml`
| id | title | timeframe | owner_orgs | depends_on | outputs | description | stakeholders |
| --- | --- | --- | --- | --- | --- | --- | --- |
| rm.001.foundation-governance | Jomas pārvaldības un datu pārvaldības ietvara nostiprināšana | 2025 | org.km, org.kisc | | Apstiprināts jomas pārvaldības modelis, Datu pārvaldības noteikumi (data governance), Atbildību un demarkācijas apraksts starp institūcijām | Formalizēt jomas pārvaldības modeli, iesaistīto pušu lomas, datu pārvaldību (īpašumtiesības, kvalitāte, metadati, piekļuves tiesības), kā arī lēmumu pieņemšanas kārtību jomas risinājumu attīstībai. | org.lnb, org.lna, org.nkmp, org.vdaa |
| rm.002.catalogs-registers | Vienotas reģistru/katalogu struktūras uzturēšana (SSOT) un integrācija ar VIRSIS | 2025 | org.kisc | rm.001.foundation-governance | Pilni reģistri: sistēmas, integrācijas, datu produkti, pakalpojumi, Saskaņošana ar VIRSIS metadatiem | Nodrošināt, ka jomas IS, integrācijas, datu kopas un pakalpojumi ir pilnībā katalogizēti, ar stabiliem ID, un sinhronizējami ar VIRSIS/metadatu prasībām. | org.vdaa, org.lnb, org.lna |
| rm.003.identity-access | Vienota identitātes, autentifikācijas un piekļuves pārvaldības pieeja (VPM/eIDAS virziens) | 2025–2026 | org.kisc | rm.001.foundation-governance | Vienots autentifikācijas risinājums e-pakalpojumiem, Piekļuves tiesību modelis (RBAC/ABAC) jomas datos un sistēmās | Ieviest vienotu autentifikācijas un autorizācijas pieeju jomas e-pakalpojumiem, balstoties uz koplietošanas komponentēm (VPM) un atbilstoši eIDAS prasībām, ar konsekventu piekļuves tiesību modeli. | org.vdaa, org.km, org.lnb |
| rm.004.integration-layer | Integrācijas slāņa sakārtošana un standartizācija (DAGR, API pārvaldība) | 2025–2026 | org.kisc | rm.002.catalogs-registers | API standarti un integrāciju vadlīnijas, Prioritāro integrāciju ieviešanas plāns | Sakārtot integrācijas arhitektūru (API vadlīnijas, datu apmaiņas formāti, notikumu plūsmas), kur lietderīgi izmantojot koplietošanas platformas (DAGR) un definējot integrācijas standartus jomā. | org.vdaa, org.lnb, org.lna, org.nkmp |
| rm.005.digital-objects-lifecycle | Digitālo objektu dzīves cikla pārvaldība un ilgtermiņa saglabāšana (arhivēšana) | 2026–2027 | org.km, org.kisc | rm.001.foundation-governance, rm.004.integration-layer | Digitālo objektu dzīves cikla procesi, Arhivēšanas prasības un integrācijas prasības | Definēt digitālo objektu (DO) dzīves cikla procesus (izveide, glabāšana, piekļuve, publicēšana, arhivēšana), un saskaņot ar vienoto ilgtermiņa saglabāšanas (arhivēšanas) risinājuma virzienu. | org.lna, org.varam, org.lnb |
| rm.006.open-data-products | Atvērto datu un datu produktu pieeja kultūras datiem | 2026 | org.kisc | rm.002.catalogs-registers, rm.004.integration-layer | Datu produktu katalogs, Publicēšanas un licencēšanas vadlīnijas, Publicēšanas plūsma uz Atvērto datu portālu | Izveidot datu produktu pieeju (dataset/data product), definējot publicēšanas, licencēšanas, kvalitātes un metadatu prasības, kā arī publicēšanas kanālus (Atvērto datu portāls). | org.vdaa, org.lnb, org.csp |
| rm.007.culture-analytics | Kultūras nozares statistikas un analītikas risinājuma attīstība (ar CSP) | 2026–2027 | org.km, org.kisc | rm.006.open-data-products | Indikatoru un datu avotu kartējums, Analītikas datu plūsmas un atskaites | Attīstīt kultūras statistikas datu analītiku, saskaņojot indikatorus un datu avotus, kā arī nodrošinot datu kvalitāti un regulāru atjaunošanu. | org.csp, org.lnb |
| rm.008.map-adaptation | MAP platformas pielāgošana NKC/VKKF procesiem (sadarbībā ar IeM IC) | 2025–2026 | org.iem_ic | rm.004.integration-layer | Pielāgota MAP funkcionalitāte, Integrāciju specifikācijas ar saistītajiem datiem/pakalpojumiem | Nodrošināt MAP pielāgošanu kultūras finansējuma procesu vajadzībām (NKC, VKKF), definējot integrācijas ar datu avotiem un e-pakalpojumiem. | org.nkc, org.vkkf, org.kisc |
| rm.009.language-tech-platform | Valodu tehnoloģiju koplietošanas rīku un platformas attīstība (LNB koordinācija) | 2025–2027 | org.lnb | rm.001.foundation-governance, rm.003.identity-access | Datu kopu katalogs valodu modelim, Datu sagatavošanas/anonimizācijas process, Modeļa izmantošanas un piekļuves vadlīnijas | Attīstīt valodu tehnoloģiju koplietošanas risinājumus, t.sk. datu kopu pārvaldību, sagatavošanu (anonimizāciju), piekļuves režīmus un modeļa izmantošanas vadlīnijas, nodrošinot atbilstību (GDPR, AI Act, autortiesības). | org.kisc, org.lumii, org.tm, org.vvc, org.lva, org.ta, org.lang_data_holders |
| rm.010.security-hardening | Kiberdrošības prasību ieviešana un noturības celšana jomas IS | 2025–2027 | org.kisc | rm.001.foundation-governance | Drošības prasību kopums un kontroles, Incidentu vadības un uzraudzības kārtība | Ieviest drošības pārvaldības minimumu (risk management, incident response, auditi, piekļuves kontrole), saskaņā ar NIS2 un nacionālajām prasībām, tostarp piegādes ķēdes risku vadību. | org.km, org.lnb, org.vdaa |
## 5.2. Mijiedarbība ar citām jomām
Reģistrs: `registers/08-roadmap/interactions.yaml`
| id | title | interaction_type | counterpart | components | why_it_matters | requirements |
| --- | --- | --- | --- | --- | --- | --- |
| int.001.identity-trust | Identitāte un piekļuve (horizontālā joma) | shared_component | Valsts koplietošanas IKT risinājumi | VPM, eIDAS / e-identitātes risinājumi | Vienota autentifikācija un pilnvarojums ir priekšnosacījums drošai piekļuvei jomas e-pakalpojumiem un datiem. | Vienots autentifikācijas plūsmas apraksts (SSO), Vienots tiesību modelis jomas lietotājiem (RBAC/ABAC), Auditējamība (kas, kad, ko skatīja/izmainīja) |
| int.002.data-exchange | Datu apmaiņa un sadarbspēja (horizontālā joma) | integration | VDAA koplietošanas datu apmaiņa / DAGR | DAGR, API standarti, VIRSIS metadati | Kultūras un valodu tehnoloģiju risinājumi balstās uz daudziem datu avotiem; integrācijas jāstandartizē, lai izvairītos no unikāliem savienojumiem un dublētas loģikas. | Integrāciju katalogs ar prioritātēm, API versēšana un līgumi (contract-first), Kļūdu/incidentu apmaiņas kanāls starp turētājiem |
| int.003.open-data | Atvērto datu ekosistēma | publication | Atvērto datu portāls | Atvērto datu portāls, Metadatu standarti | Atvērto datu publicēšana palielina kultūras datu izmantojamību pētniecībā, uzņēmējdarbībā un sabiedrībā, vienlaikus prasa kvalitātes un licencēšanas disciplīnu. | Licencēšanas noteikumi (autortiesības, PSI), Datu kvalitātes kritēriji un atjaunošanas grafiki, Datu anonimizācija, ja nepieciešams |
| int.004.archiving | Ilgtermiņa saglabāšana / arhivēšana | shared_service | Vienotais ilgtermiņa saglabāšanas risinājums (VARAM u.c.) | Ilgtermiņa saglabāšanas platforma, Formātu un metadatu prasības | Kultūras digitālie objekti ir ar ilgu dzīves ciklu; arhivēšanas prasības jāiebūvē jau veidošanas un glabāšanas posmos. | DO dzīves cikla definīcija, Formātu/derīguma prasības, Integrācijas prasības starp IS un arhīvu |
| int.005.statistics | Kultūras statistika un valsts statistikas ekosistēma | data_sharing | CSP | Analītikas datu plūsmas, Indikatoru definīcijas | Statistika un analītika balstās uz kvalitatīviem, saskaņotiem datiem; jāvienojas par indikatoriem un datu piegādes režīmiem. | Indikatoru katalogs, Datu piegādes grafiks un atbildīgie, Kvalitātes validācijas noteikumi |
## 5.3. Riski
Reģistrs: `registers/09-risks/risks.yaml`
| id | risk | likelihood | impact | mitigation | owner_orgs | related_roadmap | symptoms |
| --- | --- | --- | --- | --- | --- | --- | --- |
| risk.001.governance-fragmentation | Sadrumstalota pārvaldība un neskaidrs atbildību sadalījums starp institūcijām | medium | high | Apstiprināt pārvaldības modeli un demarkācijas punktus, Noteikt arhitektūras principus kā obligātus | org.km, org.kisc | rm.001.foundation-governance | Lēna lēmumu pieņemšana, Atšķirīgas pieejas integrācijām un datiem |
| risk.002.data-quality | Nepietiekama datu kvalitāte, metadati un datu saskaņotība | high | high | Datu pārvaldības noteikumi (quality gates, metadatu standarti), Vienots katalogs un validācijas noteikumi | org.kisc | rm.001.foundation-governance, rm.002.catalogs-registers | Nekonsekventi identifikatori digitālajiem objektiem, Atšķirīgi klasifikatori un metadatu lauki |
| risk.003.legal-copyright | Autortiesību un licencēšanas ierobežojumi kavē digitālo objektu izmantošanu un publicēšanu | medium | high | Legal view uzturēšana, licenču tipizācija un vadlīnijas, Publicēšanas režīmi (publisks/ierobežots/iekšējs) | org.km | rm.006.open-data-products, rm.005.digital-objects-lifecycle | Nevar publicēt vai dalīties ar digitālajiem objektiem, Neskaidrības par TDM (teksta un datu ieguves) iespējām |
| risk.004.privacy-gdpr | Personas datu aizsardzības (GDPR) riski datu kopu publicēšanā un valodu modeļa apmācībā | high | high | Anonimizācijas process un rīku izmantošana (TA), Datu piekļuves režīmi un auditēšana | org.kisc, org.lnb | rm.009.language-tech-platform, rm.003.identity-access | Datu noplūdes vai neatbilstoša apstrāde, Datu subjektu sūdzības |
| risk.005.security-nis2 | Kiberdrošības prasību neizpilde (NIS2/nacionālās prasības) palielina incidentu un pakalpojumu pārtraukumu risku | medium | high | Drošības kontroles, incident response, regulāri auditi, Piegādes ķēdes risku izvērtējumi | org.kisc | rm.010.security-hardening | Incidenti bez centralizētas uzraudzības, Neatbilstoša piekļuves kontrole vai konfigurācijas pārvaldība |
| risk.006.dependency-shared-platforms | Atkarība no koplietošanas platformām (VPM, DAGR, Atvērto datu portāls) un to izmaiņu grafikiem | medium | medium | Sadarbības darba kārtība ar VDAA, API līgumi un versēšana | org.kisc | rm.004.integration-layer, rm.003.identity-access | Integrāciju ieviešanas kavēšanās, Neparedzētas izmaiņas interfeisos |
| risk.007.capacity-skills | Nepietiekama kapacitāte un kompetences (datu arhitektūra, integrācijas, MI/valodu tehnoloģijas) | high | medium | Kompetenču plāns un apmācības, Pārnesamas dokumentācijas un reģistru disciplīna | org.km, org.kisc, org.lnb | rm.001.foundation-governance, rm.009.language-tech-platform | Ilgi ieviešanas termiņi, Atkarība no viena piegādātāja/eksperta |
| risk.008.change-management | Zema lietotāju iesaiste un izmaiņu vadības trūkumi kavē risinājumu pieņemšanu | medium | medium | Ieviešanas komunikācijas plāns, Pilotēšana un pakāpeniska ieviešana | org.km, org.kisc | rm.001.foundation-governance | Risinājumi netiek izmantoti, Paralēlas manuālās prakses saglabājas |
# 6. Pielikums: esošās arhitektūras komponentu katalogs
Esošās arhitektūras komponentes tiek uzturētas kā mašīnlasāms katalogs:
`registers/10-catalog/as-is-components.yaml`
_(tukšs reģistrs)_
Šis katalogs kalpo kā “as-is” bāze pārejai uz mērķarhitektūru.

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1,192 @@
# MCPF Initialize Response - Expected Format
## Request Format
```bash
curl -X POST http://localhost:8787/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"method": "initialize",
"params": {
"protocolVersion": "2025-03-26",
"capabilities": {},
"clientInfo": {
"name": "test-client",
"version": "1.0"
}
},
"id": 1
}'
```
## Response Format (SSE Stream)
The server returns Server-Sent Events (SSE) format:
```
event: message
data: {JSON_RESPONSE}
```
## Complete JSON Response Structure
```json
{
"result": {
"protocolVersion": "2025-03-26",
"capabilities": {
"tools": {
"listChanged": true
}
},
"serverInfo": {
"name": "kisc-arch-kultura-valodu-mcp",
"version": "0.2.0"
},
"_meta": {
"identity": {
"id": "did:web:llm.kis.gov.lv",
"service": {
"mcp": "https://llm.kis.gov.lv/mcp"
},
"keys": {
"jwks_uri": "https://llm.kis.gov.lv/.well-known/jwks.json"
}
},
"mcpf": {
"version": "0.1",
"spec": {
"repository": "https://github.com/MCPTrustFramework/MCPF-specification"
},
"entrypoint": {
"type": "manifest",
"url": "https://llm.kis.gov.lv/.well-known/mcp/manifest.json"
},
"artifacts": {
"trust_registry": "https://llm.kis.gov.lv/.well-known/mcp-trust-registry.json",
"credential": "https://veritrust.vc/portal/mcp/credentials/aec9930b-9139-4b33-ac6f-ad3bd3d91da0.json"
}
},
"trust": {
"verifications": [
{
"verifier": "did:web:veritrust.vc",
"type": [
"VerifiableCredential",
"MCPServerVerification"
],
"credential": "https://veritrust.vc/portal/mcp/credentials/aec9930b-9139-4b33-ac6f-ad3bd3d91da0.json",
"covers": "did:web:llm.kis.gov.lv",
"proof_hint": {
"verificationMethod": "did:web:veritrust.vc#key-1",
"created": "2026-01-29T10:12:41Z"
}
}
]
}
}
},
"jsonrpc": "2.0",
"id": 1
}
```
## MCPF Layer 1: Session-Level Trust Metadata
The `_meta` field contains three key sections:
### 1. Identity
```json
{
"id": "did:web:llm.kis.gov.lv",
"service": {
"mcp": "https://llm.kis.gov.lv/mcp"
},
"keys": {
"jwks_uri": "https://llm.kis.gov.lv/.well-known/jwks.json"
}
}
```
**Purpose:** Establishes the server's decentralized identity (DID) and key material location.
### 2. MCPF Metadata
```json
{
"version": "0.1",
"spec": {
"repository": "https://github.com/MCPTrustFramework/MCPF-specification"
},
"entrypoint": {
"type": "manifest",
"url": "https://llm.kis.gov.lv/.well-known/mcp/manifest.json"
},
"artifacts": {
"trust_registry": "https://llm.kis.gov.lv/.well-known/mcp-trust-registry.json",
"credential": "https://veritrust.vc/portal/mcp/credentials/aec9930b-9139-4b33-ac6f-ad3bd3d91da0.json"
}
}
```
**Purpose:** Links to MCPF specification and trust artifacts for agent discovery.
### 3. Trust Verifications
```json
{
"verifications": [
{
"verifier": "did:web:veritrust.vc",
"type": ["VerifiableCredential", "MCPServerVerification"],
"credential": "https://veritrust.vc/portal/mcp/credentials/aec9930b-9139-4b33-ac6f-ad3bd3d91da0.json",
"covers": "did:web:llm.kis.gov.lv",
"proof_hint": {
"verificationMethod": "did:web:veritrust.vc#key-1",
"created": "2026-01-29T10:12:41Z"
}
}
]
}
```
**Purpose:** Documents third-party verification by VeriTrust credential service.
## Verification Steps
An MCPF-aware agent should:
1. **Extract DID** from `_meta.identity.id`
2. **Resolve DID document** at `https://llm.kis.gov.lv/.well-known/did.json`
3. **Fetch verification credential** from VeriTrust
4. **Verify credential signature** using VeriTrust's public key
5. **Check credential subject** matches server DID
6. **Optionally fetch** trust registry and manifest for additional context
## Test with jq
Extract specific fields:
```bash
# Get the DID
curl ... | grep '^data:' | sed 's/^data: //' | jq -r '.result._meta.identity.id'
# Output: did:web:llm.kis.gov.lv
# Get MCPF version
curl ... | grep '^data:' | sed 's/^data: //' | jq -r '.result._meta.mcpf.version'
# Output: 0.1
# Get verifier DID
curl ... | grep '^data:' | sed 's/^data: //' | jq -r '.result._meta.trust.verifications[0].verifier'
# Output: did:web:veritrust.vc
# Get credential URL
curl ... | grep '^data:' | sed 's/^data: //' | jq -r '.result._meta.trust.verifications[0].credential'
# Output: https://veritrust.vc/portal/mcp/credentials/aec9930b-9139-4b33-ac6f-ad3bd3d91da0.json
```
## Notes
- The `_meta` field is **in addition to** standard MCP initialize response fields
- Backward compatible: non-MCPF clients ignore `_meta`
- Layer 1 (session-level) + Layer 2 (per-response attestations) = Dual-layer trust
- Session ID returned in `Mcp-Session-Id` response header (not shown in JSON)

View File

@@ -0,0 +1,179 @@
#!/usr/bin/env python3
"""
MCPF Initialize Response Analyzer
Tests MCPF dual-layer trust integration and displays the response in a structured format.
"""
import json
import requests
import sys
from typing import Dict, Any
def test_mcpf_initialize(endpoint: str = "http://localhost:8787/mcp") -> Dict[str, Any]:
"""
Send initialize request to MCP server and return parsed response.
"""
payload = {
"jsonrpc": "2.0",
"method": "initialize",
"params": {
"protocolVersion": "2025-03-26",
"capabilities": {},
"clientInfo": {
"name": "mcpf-analyzer",
"version": "1.0"
}
},
"id": 1
}
headers = {
"Content-Type": "application/json",
"Accept": "application/json, text/event-stream"
}
print(f"🔍 Testing endpoint: {endpoint}")
print(f"📤 Sending initialize request...\n")
try:
response = requests.post(endpoint, json=payload, headers=headers, timeout=5)
response.raise_for_status()
# Parse SSE response (format: "event: message\ndata: {json}\n")
lines = response.text.strip().split('\n')
data_line = None
for line in lines:
if line.startswith('data: '):
data_line = line[6:] # Remove "data: " prefix
break
if not data_line:
print("❌ No data line found in SSE response")
return {}
return json.loads(data_line)
except requests.exceptions.RequestException as e:
print(f"❌ Request failed: {e}")
return {}
except json.JSONDecodeError as e:
print(f"❌ JSON parsing failed: {e}")
return {}
def print_section(title: str, content: str):
"""Print a formatted section."""
print("=" * 80)
print(f" {title}")
print("=" * 80)
print(content)
print()
def analyze_response(response: Dict[str, Any]):
"""Analyze and display MCPF response structure."""
if not response:
print("❌ No response received")
return
# Check for result
result = response.get("result", {})
if not result:
print("❌ No result in response")
print_section("Full Response", json.dumps(response, indent=2))
return
print("✅ Initialize successful\n")
# Display basic server info
server_info = result.get("serverInfo", {})
print_section(
"Server Information",
f"Name: {server_info.get('name', 'Unknown')}\n"
f"Version: {server_info.get('version', 'Unknown')}\n"
f"Protocol: {result.get('protocolVersion', 'Unknown')}"
)
# Display _meta (MCPF Layer 1)
meta = result.get("_meta")
if not meta:
print("⚠️ No _meta field found - MCPF integration not present")
return
print("✅ MCPF Layer 1 (Session-Level Trust Metadata) present\n")
# Identity section
identity = meta.get("identity", {})
if identity:
print_section(
"🆔 Identity (DID & Keys)",
f"DID: {identity.get('id', 'Not found')}\n"
f"MCP Service: {identity.get('service', {}).get('mcp', 'Not found')}\n"
f"JWKS URI: {identity.get('keys', {}).get('jwks_uri', 'Not found')}"
)
# MCPF section
mcpf = meta.get("mcpf", {})
if mcpf:
print_section(
"📋 MCPF Metadata",
f"Version: {mcpf.get('version', 'Not found')}\n"
f"Spec Repository: {mcpf.get('spec', {}).get('repository', 'Not found')}\n"
f"Manifest URL: {mcpf.get('entrypoint', {}).get('url', 'Not found')}\n"
f"Trust Registry: {mcpf.get('artifacts', {}).get('trust_registry', 'Not found')}\n"
f"Credential: {mcpf.get('artifacts', {}).get('credential', 'Not found')}"
)
# Trust verifications section
trust = meta.get("trust", {})
verifications = trust.get("verifications", [])
if verifications:
print_section("🔐 Trust Verifications", "")
for i, verification in enumerate(verifications, 1):
print(f" Verification #{i}:")
print(f" Verifier: {verification.get('verifier', 'Not found')}")
print(f" Type: {', '.join(verification.get('type', []))}")
print(f" Covers: {verification.get('covers', 'Not found')}")
print(f" Credential: {verification.get('credential', 'Not found')}")
proof = verification.get('proof_hint', {})
if proof:
print(f" Proof:")
print(f" Method: {proof.get('verificationMethod', 'Not found')}")
print(f" Created: {proof.get('created', 'Not found')}")
print()
# Summary
print_section(
"✅ MCPF Integration Summary",
f"• Identity DID present: {'✅' if identity else '❌'}\n"
f"• MCPF metadata present: {'✅' if mcpf else '❌'}\n"
f"• Trust verifications: {len(verifications)}\n"
f"• VeriTrust verified: {'✅' if any(v.get('verifier') == 'did:web:veritrust.vc' for v in verifications) else '❌'}\n"
f"\n🎯 This server implements MCPF v{mcpf.get('version', '?')} dual-layer trust"
)
# Full JSON for reference
print_section("📄 Complete _meta JSON", json.dumps(meta, indent=2))
def main():
endpoint = sys.argv[1] if len(sys.argv) > 1 else "http://localhost:8787/mcp"
print("""
╔════════════════════════════════════════════════════════════════════════════╗
║ MCPF Initialize Response Analyzer ║
║ Testing Dual-Layer Trust Integration ║
╚════════════════════════════════════════════════════════════════════════════╝
""")
response = test_mcpf_initialize(endpoint)
analyze_response(response)
print("""
╔════════════════════════════════════════════════════════════════════════════╗
║ Next: Test Layer 2 (per-response attestations) by calling a tool ║
║ Example: {"method": "tools/call", "params": {"name": "search", ...}} ║
╚════════════════════════════════════════════════════════════════════════════╝
""")
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,74 @@
#!/bin/bash
# Test MCPF dual-layer trust integration - Initialize stage
# Shows the complete initialize response including _meta
set -e
echo "=========================================="
echo "MCPF Initialize Response Test"
echo "=========================================="
echo ""
# Test against localhost (assuming server is running)
MCP_ENDPOINT="${MCP_ENDPOINT:-http://localhost:8787/mcp}"
echo "Testing endpoint: $MCP_ENDPOINT"
echo ""
# Send initialize request
echo "Sending initialize request..."
RESPONSE=$(curl -s -X POST "$MCP_ENDPOINT" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"method": "initialize",
"params": {
"protocolVersion": "2025-03-26",
"capabilities": {},
"clientInfo": {
"name": "mcpf-test-client",
"version": "1.0"
}
},
"id": 1
}' \
--max-time 5)
echo ""
echo "=========================================="
echo "Raw Response (SSE format):"
echo "=========================================="
echo "$RESPONSE"
echo ""
# Extract and pretty-print the JSON from SSE data line
echo "=========================================="
echo "Parsed JSON Response:"
echo "=========================================="
echo "$RESPONSE" | grep '^data:' | sed 's/^data: //' | jq '.'
echo ""
echo "=========================================="
echo "MCPF _meta Section:"
echo "=========================================="
echo "$RESPONSE" | grep '^data:' | sed 's/^data: //' | jq '.result._meta'
echo ""
echo "=========================================="
echo "Layer 1 Trust Metadata Details:"
echo "=========================================="
echo ""
echo "Identity DID:"
echo "$RESPONSE" | grep '^data:' | sed 's/^data: //' | jq -r '.result._meta.identity.id'
echo ""
echo "MCPF Version:"
echo "$RESPONSE" | grep '^data:' | sed 's/^data: //' | jq -r '.result._meta.mcpf.version'
echo ""
echo "Trust Verifications:"
echo "$RESPONSE" | grep '^data:' | sed 's/^data: //' | jq '.result._meta.trust.verifications[]'
echo ""
echo "=========================================="
echo "Test Complete"
echo "=========================================="

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1,29 @@
#!/bin/sh
set -eu
DOC_PATH="${1:-KISC-merkarhitektura-apraksts.md}"
if [ ! -f "$DOC_PATH" ]; then
echo "ERROR: regenerated doc not found: $DOC_PATH"
echo "Hint: pass path as argument, e.g.: tools/qa/check_generated_doc_headings.sh docs/output.md"
exit 1
fi
need_heading() {
h="$1"
if ! grep -Eq "^[#]{1,6}[[:space:]]+$h([[:space:]]|\$)" "$DOC_PATH"; then
echo "ERROR: missing heading: $h"
exit 1
fi
}
# Required headings (core completeness gates)
need_heading "1.2 Iesaistītās puses"
need_heading "1.3 Saīsinājumi"
need_heading "1.4 Saistītie dokumenti"
need_heading "4.1 Juridiskais skats"
need_heading "5.1 Pasākumu plāns"
need_heading "5.2 Mijiedarbība ar citām jomām"
need_heading "5.3 Riski"
echo "OK: required headings exist in $DOC_PATH"

View File

@@ -0,0 +1,23 @@
#!/bin/sh
set -eu
REQ_FILES="
domains/kultura-valoda/registers/08-roadmap/roadmap.yaml
domains/kultura-valoda/registers/08-roadmap/interactions.yaml
domains/kultura-valoda/registers/09-risks/risks.yaml
"
for f in $REQ_FILES; do
if [ ! -f "$f" ]; then
echo "ERROR: missing required register: $f"
exit 1
fi
# fail if file contains only an empty items list
if grep -Eq '^\s*items:\s*\[\s*\]\s*$' "$f"; then
echo "ERROR: register is empty (items: []): $f"
exit 1
fi
done
echo "OK: required registers exist and are non-empty"

View File

@@ -0,0 +1,21 @@
#!/bin/sh
set -eu
DOC_PATH="${1:-KISC-merkarhitektura-apraksts.md}"
if [ ! -f "$DOC_PATH" ]; then
echo "ERROR: regenerated doc not found: $DOC_PATH"
exit 1
fi
# Naive but effective: count organization list lines containing "org." OR common abbreviations.
# Adjust pattern if your doc renders differently.
COUNT="$(grep -Eo '(org\.[a-z0-9_]+)|\b(KM|KISC|LNB|LNA|NKMP|LNKC|NKC|VKKF|VDAA|VARAM|TA|TM|VVC|LVA|LUMII)\b' "$DOC_PATH" | wc -l | tr -d ' ')"
# Require at least 10 hits to ensure it isn't collapsed to just 3 orgs.
if [ "$COUNT" -lt 10 ]; then
echo "ERROR: stakeholder content appears too small (hits=$COUNT). Likely collapsed list."
exit 1
fi
echo "OK: stakeholder presence check passed (hits=$COUNT)"

View File

@@ -0,0 +1,10 @@
# Regenerated document completeness checklist (kultura-valoda)
The regenerated architecture document MUST include:
- [ ] Abbreviations/terms (1.3)
- [ ] Related documents (1.4)
- [ ] Stakeholders/organizations list (1.2 scope)
- [ ] Legal view section "Juridiskais skats" (4.1) sourced from `registers/00-meta/legal-acts.yaml`
If any item is missing, the generator/template must be updated (do not delete content from re