KISC arch init
This commit is contained in:
37
ikt-arh-kultura-valodu-tehnologijas/.env.example
Normal file
37
ikt-arh-kultura-valodu-tehnologijas/.env.example
Normal 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
|
||||
1
ikt-arh-kultura-valodu-tehnologijas/.github/placeholder.git
vendored
Normal file
1
ikt-arh-kultura-valodu-tehnologijas/.github/placeholder.git
vendored
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
30
ikt-arh-kultura-valodu-tehnologijas/.github/workflows/qa.yml
vendored
Normal file
30
ikt-arh-kultura-valodu-tehnologijas/.github/workflows/qa.yml
vendored
Normal 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
|
||||
6
ikt-arh-kultura-valodu-tehnologijas/.gitignore
vendored
Normal file
6
ikt-arh-kultura-valodu-tehnologijas/.gitignore
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
node_modules/
|
||||
dist/
|
||||
.env
|
||||
.DS_Store
|
||||
*.log
|
||||
site/
|
||||
21
ikt-arh-kultura-valodu-tehnologijas/LICENSE
Normal file
21
ikt-arh-kultura-valodu-tehnologijas/LICENSE
Normal 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.
|
||||
560
ikt-arh-kultura-valodu-tehnologijas/MCP.md
Normal file
560
ikt-arh-kultura-valodu-tehnologijas/MCP.md
Normal 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.
|
||||
409
ikt-arh-kultura-valodu-tehnologijas/README.md
Normal file
409
ikt-arh-kultura-valodu-tehnologijas/README.md
Normal 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
|
||||
13
ikt-arh-kultura-valodu-tehnologijas/docker-compose.yml
Normal file
13
ikt-arh-kultura-valodu-tehnologijas/docker-compose.yml
Normal 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}
|
||||
Binary file not shown.
Binary file not shown.
20
ikt-arh-kultura-valodu-tehnologijas/docs/REGENERATION.md
Normal file
20
ikt-arh-kultura-valodu-tehnologijas/docs/REGENERATION.md
Normal 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.
|
||||
53
ikt-arh-kultura-valodu-tehnologijas/docs/TRACEABILITY.md
Normal file
53
ikt-arh-kultura-valodu-tehnologijas/docs/TRACEABILITY.md
Normal 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.
|
||||
@@ -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/
|
||||
@@ -0,0 +1,3 @@
|
||||
flowchart TB
|
||||
%% TODO: Transform official diagram into Mermaid
|
||||
A[TODO: Funkciju karte] --> B[Transform later]
|
||||
@@ -0,0 +1,3 @@
|
||||
flowchart TB
|
||||
%% TODO: Transform official diagram into Mermaid
|
||||
A[TODO: Funkciju karte] --> B[Transform later]
|
||||
@@ -0,0 +1,3 @@
|
||||
flowchart TB
|
||||
%% TODO: Transform official diagram into Mermaid
|
||||
A[TODO: Funkciju karte] --> B[Transform later]
|
||||
@@ -0,0 +1,3 @@
|
||||
flowchart TB
|
||||
%% TODO: Transform official diagram into Mermaid
|
||||
A[TODO: Funkciju karte] --> B[Transform later]
|
||||
@@ -0,0 +1,3 @@
|
||||
flowchart TB
|
||||
%% TODO: Transform official diagram into Mermaid
|
||||
A[TODO: Funkciju karte] --> B[Transform later]
|
||||
@@ -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
|
||||
@@ -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"
|
||||
@@ -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
|
||||
@@ -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."
|
||||
@@ -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."
|
||||
@@ -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."
|
||||
@@ -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."
|
||||
@@ -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."
|
||||
@@ -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)."
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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.
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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]
|
||||
@@ -0,0 +1 @@
|
||||
items: []
|
||||
@@ -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
|
||||
@@ -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`
|
||||
@@ -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`
|
||||
@@ -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`
|
||||
@@ -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.
|
||||
@@ -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`
|
||||
@@ -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.
|
||||
@@ -0,0 +1 @@
|
||||
placeholder.git
|
||||
19
ikt-arh-kultura-valodu-tehnologijas/mcp/Dockerfile
Normal file
19
ikt-arh-kultura-valodu-tehnologijas/mcp/Dockerfile
Normal 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"]
|
||||
2119
ikt-arh-kultura-valodu-tehnologijas/mcp/package-lock.json
generated
Normal file
2119
ikt-arh-kultura-valodu-tehnologijas/mcp/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
27
ikt-arh-kultura-valodu-tehnologijas/mcp/package.json
Normal file
27
ikt-arh-kultura-valodu-tehnologijas/mcp/package.json
Normal 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"
|
||||
}
|
||||
}
|
||||
285
ikt-arh-kultura-valodu-tehnologijas/mcp/src/generateDoc.ts
Normal file
285
ikt-arh-kultura-valodu-tehnologijas/mcp/src/generateDoc.ts
Normal 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);
|
||||
});
|
||||
1730
ikt-arh-kultura-valodu-tehnologijas/mcp/src/index.ts
Normal file
1730
ikt-arh-kultura-valodu-tehnologijas/mcp/src/index.ts
Normal file
File diff suppressed because it is too large
Load Diff
15
ikt-arh-kultura-valodu-tehnologijas/mcp/src/repo/index.ts
Normal file
15
ikt-arh-kultura-valodu-tehnologijas/mcp/src/repo/index.ts
Normal 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;
|
||||
}
|
||||
195
ikt-arh-kultura-valodu-tehnologijas/mcp/src/repo/load.ts
Normal file
195
ikt-arh-kultura-valodu-tehnologijas/mcp/src/repo/load.ts
Normal 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;
|
||||
}
|
||||
44
ikt-arh-kultura-valodu-tehnologijas/mcp/src/repo/types.ts
Normal file
44
ikt-arh-kultura-valodu-tehnologijas/mcp/src/repo/types.ts
Normal 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 }>;
|
||||
};
|
||||
@@ -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}` };
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
import { RepoIndex } from "../repo/types.js";
|
||||
|
||||
export function listResources(idx: RepoIndex) {
|
||||
return {
|
||||
ok: true,
|
||||
resources: idx.resources,
|
||||
};
|
||||
}
|
||||
@@ -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 };
|
||||
}
|
||||
@@ -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 };
|
||||
}
|
||||
29
ikt-arh-kultura-valodu-tehnologijas/mcp/src/tools/search.ts
Normal file
29
ikt-arh-kultura-valodu-tehnologijas/mcp/src/tools/search.ts
Normal 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) };
|
||||
}
|
||||
@@ -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 };
|
||||
}
|
||||
15
ikt-arh-kultura-valodu-tehnologijas/mcp/tsconfig.json
Normal file
15
ikt-arh-kultura-valodu-tehnologijas/mcp/tsconfig.json
Normal 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"]
|
||||
}
|
||||
506
ikt-arh-kultura-valodu-tehnologijas/mcpf/README.md
Normal file
506
ikt-arh-kultura-valodu-tehnologijas/mcpf/README.md
Normal 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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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 ""
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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."
|
||||
}
|
||||
33
ikt-arh-kultura-valodu-tehnologijas/mcpf/wellknown/did.json
Normal file
33
ikt-arh-kultura-valodu-tehnologijas/mcpf/wellknown/did.json
Normal 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"
|
||||
]
|
||||
}
|
||||
12
ikt-arh-kultura-valodu-tehnologijas/mcpf/wellknown/jwks.json
Normal file
12
ikt-arh-kultura-valodu-tehnologijas/mcpf/wellknown/jwks.json
Normal 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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
@@ -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.
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -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)
|
||||
@@ -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()
|
||||
@@ -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 "=========================================="
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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)"
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user