kg-cli 0.2.17

A knowledge graph CLI tool for managing structured information
Documentation
# Kompresja G-node'ów w `kg`

## Cel
Wprowadzić prostą kompresję tekstu dla node'ów generowanych automatycznie (`G..`) w formacie `.kg`.

## Wymagania
- Kompresja dotyczy wyłącznie node'ów z typem `G..`.
- Kompresja działa na surowym tekście pliku `.kg`, przed parsowaniem.
- Dekomresja działa zawsze, gdy parser napotka znak `` ` ``.
- Słownik ma być tworzony z powtarzających się ciągów znaków.
- Minimalna długość ciągu do kompresji: domyślnie `7`.
- Dla każdego ciągu należy nadać kolejne numery: `1`, `2`, `3`, ...
- Wstawka kompresji ma używać rzadkiego znaku ASCII: `` ` ``.
- Wpis słownika ma pojawić się w pliku przed pierwszym użyciem danego ciągu.
- Mechanizm ma być transparentny dla istniejących metod API `kg`.
- Należy wypisywać statystykę skuteczności kompresji w procentach.

## Krytyczne uwagi
- Nie wolno kompresować node'ów spoza `G..`.
- Dekomresja musi działać przed parserem, inaczej format przestaje być przezroczysty.
- Nie należy wiązać mechanizmu z polami `GraphFile`; to jest warstwa tekstowa, nie model danych.
- Słownik i tokeny muszą być deterministyczne, inaczej zapis będzie niestabilny.
- Trzeba uważać na konflikt z literalnym znakiem `` ` `` w danych wejściowych.
- Testy muszą sprawdzić, że po zapisie i ponownym odczycie dane są identyczne.