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é mocije 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,developmentneboproduction. V závislosti na parametru bude vygenerován příslušný.env.*soubor. Konfigurace komponent bude vygenerována z šablonycomponents.ymla 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-composes 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é
URLpříslušného.env.*souboru na službual-nginx. V případě lokálního nasazení a webového serevruapache2konfigurace 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-serveruje potřeba spustit SPARQL dotazy ze složkyal-db-server/lucenena/modelujeme/sluzby/db-server/v sekciSPARQL. -
V al-auth-serveru (
/modelujeme/sluzby/auth-server/admin/, přihlas se do něj pomocí$KEYCLOAK_USERa$KEYCLOAK_PASSWORD)- běž do
Realm Settings/Keysa 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-servera vCredentialszkopíruj hodnotuSecretklienta do proměnné SGOV_SERVER_KEYCLOAK_CREDENTIALS_SECRET (pokud vidíš*****použijRegenerate Secret), - stejně tak zkopíruj hodnotu
Secretklientaal-termit-serverdo proměnné TERMIT_SERVER_KEYCLOAK_CREDENTIALS_SECRET, - stejně tak zkopíruj hodnotu
Secretklientaal-checkit-serverdo 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 NameaLast 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 NameaLast Name - po vytvoření mu nastav heslo v
Credentials - běž do sekce
Role Mappingsa vClient Rolesvyhledejal-checkit-server-> klikni naROLE_ADMINa přidej tuto roli mocí tlačítkaAdd selected
- nastav mu
- běž do
-
Restartuj služby
al-sgov-server,al-termit-serveraal-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.
