Výrobní linka je sada nástrojů, které slouží k tvorbě Sémantického slovníku pojmů. V současné době zahrnuje několik komponent:
- Kontrolní panel, který používá SGoV Server jako backend. Jedná se o nástroj pro správu pracovních prostorů (transakcí pro editaci Sémantického slovníku pojmů) a jejich publikaci do Github repozitáře odkud jsou vytvořené slovníky publikovány do SPARQL endpointu.
- TermIt, který má rovněž vlastní back-end. Jedná se o nástroj na správu pojmů samotných, jejich názvů, definic, zdrojů a základní strukturování do tezauru. TermIt pracuje s formátem SKOS.
- OntoGrapher je nástrojem pro tvorbu ontologických konceptuálních modelů na základě pojmů, tedy o jejich vzájemné propojování významovými vazbami (např.
Orgán veřejné moci
je speciálním případemOrganizace
). TermIt pracuje v jazyce OWL. - CheckIt s backendem je nástroj sloužící pro revizi a schvalování změn provedených na slovnícich pomocí ostatních nástrojů Výrobní linky.
Výrobní linka je rozšiřitelná o další nástroje, které mohou řešit jiné (nebo stejné) dílčí úlohy.
Tento repozitář obsahuje sadu Docker instrukcí pro nasazení Výrobní linky.
Postup:
-
Stáhni GraphDB Free do složky
al-db-server
, např.graphdb-free-9.6.0-dist.zip
. -
Vygeneruj soubor s proměnnými pomocí utility
gen_env.sh
. Utilita vyžaduje parametr s hodnotoulocal
,development
neboproduction
. V závislosti na parametru bude vygenerován příslušný.env.*
soubor. Konfigurace komponent bude vygenerována z šablonycomponents.yml
a zakódována pomocí base64 do jednoduchého řetězce. Příklad:
./gen_env.sh local
-
Přidej do
.env.<CONTEXT>
proměnné a nastav je: Tyto proměnné volíš:GRAPHDB_ZIP_FILE_NAME
- jméno souboru stažené GraphDB (např.graphdb-free-9.6.0-dist.zip
)POSTGRES_DB
- název databáze pro keycloak uživatelePOSTGRES_USER
- uživatelské jméno pro správu databázePOSTGRES_PASSWORD
- heslo pro správu databázeKEYCLOAK_USER
- uživatelské jméno k přihlášení do admin konzole KeycloakuKEYCLOAK_PASSWORD
- heslo k přihlášení do admin konzole KeycloakuKEYCLOAK_API_USER_USERNAME
- uživatelské jméno pro přístup k API Keycloaku (potřebné pro CheckIt)KEYCLOAK_API_USER_PASSWORD
- heslo pro přístup k API Keycloaku (potřebné pro CheckIt)SGOV_SERVER_REPOSITORY_GITHUBUSERTOKEN
- GitHub token pro vytvoření PR (nutné pouze pro publikaci pracovního prostoru na Github)CHECKIT_SERVER_REPOSITORY_GITHUBUSERTOKEN
- GitHub token pro schvalování PR (nutné pouze pro publikaci pracovního prostoru na Github)
-
Spusť
docker-compose
s příslušným.env.*
souborem. Příklad:
docker-compose --env-file=.env.local up
- Nakonfiguruj a spusť externí webový server pro směrování požadavků z url definované v proměnné
URL
příslušného.env.*
souboru na službual-nginx
. V případě lokálního nasazení a webového serevruapache2
konfigurace může vypadat následovně:
<VirtualHost *:80>
<Location /modelujeme>
ProxyPass http://localhost:1234/modelujeme nocanon
ProxyPassReverse http://localhost:1234/modelujeme
</Location>
</VirtualHost>
nebo v případe Nginx
:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
location /modelujeme {
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:1234/modelujeme;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_read_timeout 600s;
}
}
-
Pro inicializace
al-db-serveru
je potřeba spustit SPARQL dotazy ze složkyal-db-server/lucene
na/modelujeme/sluzby/db-server/
v sekciSPARQL
. -
V al-auth-serveru (
/modelujeme/sluzby/auth-server/admin/
, přihlas se do něj pomocí$KEYCLOAK_USER
a$KEYCLOAK_PASSWORD
)- běž do
Realm Settings/Keys
a klikni naPublic key
- zkopíruj hodnotu veřejného klíče daného realmu do proměnné
KEYCLOAK_REALMKEY
,
- zkopíruj hodnotu veřejného klíče daného realmu do proměnné
- běž do
Clients
(levé menu)- klikni na klienta
al-sgov-server
a vCredentials
zkopíruj hodnotuSecret
klienta do proměnné SGOV_SERVER_KEYCLOAK_CREDENTIALS_SECRET (pokud vidíš*****
použijRegenerate Secret
), - stejně tak zkopíruj hodnotu
Secret
klientaal-termit-server
do proměnné TERMIT_SERVER_KEYCLOAK_CREDENTIALS_SECRET, - stejně tak zkopíruj hodnotu
Secret
klientaal-checkit-server
do proměnné CHECKIT_SERVER_KEYCLOAK_CREDENTIALS_SECRET,
- klikni na klienta
- vytvoř uživatele výrobní linky v
Users/Add user
- nastav mu
Username
,Email
,First Name
aLast Name
- po vytvoření mu nastav heslo v
Credentials
- nastav mu
- vytvoř admina pro přiřazování gestorů ve výrobní lince v
Users/Add user
- nastav mu
Username
,Email
,First Name
aLast Name
- po vytvoření mu nastav heslo v
Credentials
- běž do sekce
Role Mappings
a vClient Roles
vyhledejal-checkit-server
-> klikni naROLE_ADMIN
a přidej tuto roli mocí tlačítkaAdd selected
- nastav mu
- běž do
-
Restartuj služby
al-sgov-server
,al-termit-server
aal-checkit-server
:
docker-compose --env-file=.env.local up
nebo
docker-compose stop al-sgov-server ; docker-compose --env-file=.env.local up -d al-sgov-server
docker-compose stop al-termit-server ; docker-compose --env-file=.env.local up -d al-termit-server
docker-compose stop al-checkit-server ; docker-compose --env-file=.env.local up -d al-checkit-server
- Ověř, že Výrobní linka běží. V případě lokálního nasazení je její URL
http://localhost/modelujeme
.
Služba al-db-server
představuje RDF úložište obsahující pracovní verze slovníků a uživatele systému. Uživatele systému lze kdykoli smazat a přegenerovat pomocí služby al-auth-server
, která ukláda zdrojové data o uživatelích pomocí služby al-auth-server-db
. Pracovní verze slovníků lze publikovat do Sémantického slovníku pojmů (SSP).
V případě, že jsou všechny slovníky publikované, je možné RDF úložistě smazat a obnovit počáteční stav úložište (viz. body týkající se al-db-serveru
v sekci Nasazení výrobní linky) a importu všech základních dat na /modelujeme/sluzby/db-server/import#server
. Po obnovení počátečního stavu uložiště je potřeba naimportovat slovníky z SSP a obnovit i RDF reprezentaci uživatelů systému v tomto úložišti. Záznam uživatele se v RDF úložišti vytvoří automaticky při libovolné aktualizaci uživatele pomocí uživatelského rozhraní na adrese /modelujeme/sluzby/auth-server/
. Po aktualizaci všech uživatelů je obnova databáze slovníku hotova.
Alternativně lze RDF reprezentaci uživatelů systému nahrát ze zálohy, protože je obsažena v separatním kontextu RDF úložiště (např. https://slovník.gov.cz/uživatel
).
Konkrétní SPARQL dotazy naleznete v dokumentaci GraphDB odpovídající vaší verzi GraphDB v Usage -> Reasoning -> How To's. (Dokumentace 9.6)
Na al-db-serveru v sekci SPARQL (/modelujeme/sluzby/db-server/sparql
) najdete webové rozhraní pomocí, kterého lze nad databází vykonávat SPARQL dotazy. Vložte nový ruleset pomocí SPARQL dotazu ze sekce Add a custom ruleset with SPARQL INSERT
dokumentace GraphDB, kde vložíte text nového rulesetu mezi předpřipravené trojité apostrofy. Tento dotaz by měl vytvořit rulesetu s názvem "custom". To si můžete ověřit pomocí dotazu pro výpis rulesetů v sekci List all rulesets
dokumentace a obsah rulesetu pomocí dotazu v Explore a ruleset
. Nyní nastavte nový ruleset jako výchozí pomocí dotazu v sekci Set a default ruleset
. Nyní by jste měli ve výpisu rulesetů vidět u nového rulesetu status default a current. Posledním krokem je přegenerování odvození pomocí dotazu v sekci Reinferring
. (Doporučujeme přejmenovat nový ruleset pomocí dotazu v sekci Rename a ruleset
, aby se předešlo konfliktu při příštím vytváření "custom" rulesetu.)
Tento repozitář je udržován v rámci projektu OPZ č. CZ.03.4.74/0.0/0.0/15_025/0013983.