Rettleiing: ny begrepskatalog
Denne rettleiinga viser korleis du oppretter ein ny begrepskatalog i repoet — frå filstruktur til RDF-eksport klar for Felles Begrepskatalog.
Skil seg frå ny domenemodell
Begrepskatalogar har ein eigen arbeidsflyt. make new-model gjeld ikkje her —
skjemaet er trivielt og vert skrive for hand. Bruk mcp-linkml-begrep-utkast
for å generere YAML-instansar, ikkje mcp-linkml-modell-utkast.
| Ny begrepskatalog | Ny domenemodell | |
|---|---|---|
| Scaffold | Manuelt (steg 1 - 3 under) | make new-model |
| Import | skos-ap-no |
dcat-ap-no / dqv-ap-no |
| Generator | mcp-linkml-begrep-utkast |
mcp-linkml-modell-utkast |
| RDF-eksport | example_rdf: true (krav) |
Valfritt |
0 — Føresetnader (éin gong)
make check-prereqs
make mcp-begrep-build # byggjer mcp-linkml-begrep-utkast
make mcp-val-build # byggjer mcp-linkml-validator (for bronze-validering)
1 — Opprett filstruktur
Namnemønster: <org>-begrep eller <fagdomene>-begrep, t.d. digdir-begrep, ssb-begrep, ngr-begrep.
2 — Skriv <katalognavn>-schema.yaml
Skjemaet er minimalt — all semantikk kjem frå den importerte skos-ap-no.
Kopier frå src/linkml/begrepskatalog/brreg-begrepskatalog/brreg-begrepskatalog-schema.yaml og endre
id, name, title og default_prefix:
id: https://data.norge.no/begrepskatalog/<katalognavn>
name: <katalognavn>
title: <Organisasjon> – Begrepskatalog
version: "1.0.0"
prefixes:
linkml: https://w3id.org/linkml/
default_prefix: https://data.norge.no/begrepskatalog/<katalognavn>/
default_range: string
imports:
- linkml:types
- ../../ap-no/skos-ap-no/skos-ap-no-schema
classes:
BegrepContainer:
tree_root: true
attributes:
begrep:
range: Begrep
multivalued: true
inlined: true
inlined_as_list: true
samlingar:
range: Samling
multivalued: true
inlined: true
inlined_as_list: true
definisjoner:
range: Definisjon
multivalued: true
inlined: true
inlined_as_list: true
generiske_relasjonar:
range: GeneriskRelasjon
multivalued: true
inlined: true
inlined_as_list: true
partitive_relasjonar:
range: PartitivRelasjon
multivalued: true
inlined: true
inlined_as_list: true
assosiative_relasjonar:
range: AssosiativRelasjon
multivalued: true
inlined: true
inlined_as_list: true
organisasjonar:
range: Organisasjon
multivalued: true
inlined: true
inlined_as_list: true
kontaktpunkt:
range: VCardKontakt
multivalued: true
inlined: true
inlined_as_list: true
3 — Skriv manifest.yaml
publish_external: false
data_policy: felles-begrepskatalog
generators:
jsonld_context: true
shacl: false
python: false
json_schema: true
owl: false
rdf: true
protobuf: false
erdiagram: true
docs: true
plantuml: false
example_rdf: true # konverterer instansfila til RDF/Turtle
example_rdf: true er obligatorisk — det er dette som produserer SKOS/Turtle for eksport.
data_policy peikar til publiseringspolicyen som make domain-validate-data
nyttar for å validere filer under data/. Berre nødvendig viss katalogen
skal publiserast til Felles Begrepskatalog.
4 — Generer YAML-instansar
Bruk opprett_begrep-verktøyet i mcp-linkml-begrep-utkast til å byggje
YAML-blokker. Verktøyet kan køyrast av ein AI-assistent med MCP-støtte
(t.d. Claude Code med MCP-konfigurasjon) eller manuelt via Makefile:
# List tilgjengelege profiler
make mcp-begrep-list-profiles
# List gyldige LOS-tema-URI-ar
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1"}}}
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"list_los_tema","arguments":{}}}' \
| make mcp-begrep-run
Eksempel — generer eitt begrep ihht skjema for begrepskatalog
Send dette til serveren (t.d. via AI-assistent eller skript):
{
"profil": "default",
"base_uri": "https://begrep.<org>.no",
"slug": "mitt-begrep",
"anbefalt_term_nb": "mitt begrep",
"definisjon_nb": "ein klar og presis formulering av kva omgrepet tyder",
"kjelde_relasjon": "self-composed",
"utgjevar_uri": "https://data.norge.no/organizations/<orgnr>",
"fagomrade_uri": "https://psi.norge.no/los/tema/<slug>"
}
Resultatet er ein BegrepContainer-blokk som kan limast inn i instansfila
(src/linkml/begrepskatalog/<katalognavn>/examples/<katalognavn>-eksempel.yaml) under dei tilsvarande listene.
Profil for eigen organisasjon
Lag src/mcp-linkml-begrep-utkast/profiles/<org>.yaml for å forhåndssette
base_uri, utgjevar_uri og kontaktpunktmønster — så slepp du å oppgje desse
for kvart kall. Sjå profiles/brreg.yaml som døme.
Obligatoriske felt per Begrep
| Felt | Merknad |
|---|---|
id |
URI under org-eige domene |
anbefalt_term |
Minst éin; nb og nn tilrådast |
definisjon eller har_definisjon |
Minst éin |
identifikator_literal |
Same verdi som id |
kontaktpunkt_vcard |
URI til kontaktpunkt-objekt definert lokalt |
utgjevar |
URI til organisasjon-objekt definert lokalt |
5 — Valider
# Rask syntaksvalidering direkte mot skjema (via mcp-begrep-generator):
# → bruk valider_begrep-verktøyet med yaml_innhald og skjema_sti
# Full policy-validering — tilrådast før kvar commit:
make mcp-validate \
SCHEMA=src/linkml/begrepskatalog/<katalognavn>/<katalognavn>-schema.yaml \
POLICY=bronze
| Policy | Sjekkar |
|---|---|
bronze |
id, name, description; alle klasser har identifikator |
6 — Generer RDF/Turtle
Output: generated/begrepskatalog/<katalognavn>/<katalognavn>-eksempel.ttl
Denne Turtle-fila er berre for lokal kontroll av at YAML-instansen vert korrekt serialisert. For publisering til Felles Begrepskatalog — sjå Publiser til Felles Begrepskatalog.
7 — CI-pipeline
Ingen endringar i workflowfiler nødvendig. validate.yml og generate.yml fangar
automatisk opp nye skjema under src/linkml/begrepskatalog/. Pipelinen køyrer ved push til
main når filer under src/linkml/begrepskatalog/** er endra.
8 — Datafil for publisering (valfritt)
Berre nødvendig for katalogar som skal publiserast til Felles Begrepskatalog.
1. Lag src/linkml/begrepskatalog/<katalognavn>/data/<katalognavn>/<katalognavn>.yaml med stabile produksjons-URI-ar.
Bruk src/linkml/begrepskatalog/brreg-begrepskatalog/data/brreg-begrepskatalog/brreg-begrepskatalog.yaml som mal — same struktur som eksempelfila,
men utan «under utvikling»-merknader og med permanente id:-verdiar.
2. Lag ei tom URI-lock-fil:
cat > src/linkml/begrepskatalog/<katalognavn>/published-uris.lock << 'EOF'
# Publiserte URI-ar for <katalognavn> — IKKJE endre eller slett eksisterande linjer.
# Nye URI-ar leggast til nedst etter publisering.
EOF
3. Valider datafila mot publiseringspolicyen:
make mcp-validate \
SCHEMA=src/linkml/begrepskatalog/<katalognavn>/<katalognavn>-schema.yaml \
POLICY=felles-begrepskatalog \
INSTANCE=src/linkml/begrepskatalog/<katalognavn>/data/<katalognavn>/<katalognavn>.yaml
For fullstendig rettleiing om registrering og URI-stabilitet: sjå Publiser til Felles Begrepskatalog.
Sjå òg
- Begrep – domeneindeks
- Publiser til Felles Begrepskatalog — pipeline og URI-stabilitet
specs/begrep-modellering.md— fullstendig teknisk spesifikasjonsrc/mcp-linkml-begrep-utkast/README.md— dokumentasjon for MCP-serveren