Tag Archives: save

Flaksator – analiza przechowywanych danych: rzeczowniki

Stara implementacja Flaksatora bazowała na dość skomplikowanym, tekstowym i pół-skompresowanym formacie. Plus był taki – że względnie dało się to edytować ręcznie… Dopóki się pamiętało o co w formacie chodziło. Aktualnie planuję umieścić słowniki w jakiejś bazie noSQL. Nie potrzebuję żadnego rozbuchanego systemu typu Cassandra czy MongoDb – wystarczy mi ten cusotm made: LiteDB. Zweryfikowałem to już przy innej okazji i dla potrzeb Flaksatora jest więcej niż wystarczające.
Tym niemniej, potrzebuję skonwertować istniejące bazy tekstowe do nowego formatu. Prawdopodobnie najszybciej będzie po prostu odczytać i zdeserializować obiekty ze starego systemu, skonwertować je do obiektów z nowego systemu i zapisać gotowce do noSQL. Ale tak czy siak, dla porządku spróbuję przypomnieć sobie, jak działał ten stary format:

Rzeczowniki

alibi|!N|$7,4,18,11|#
pies|@ps|!LM4|$3,8|+1D1|%V1psie|%L1psie|%C1psa
jelit|!NN3|%L1jelicie
bliźni|!PM1|$7,1|%G1bliźniego|%D1bliźniemu|%C1bliźniego|%A1bliźnim|%V1bliźni|%L1bliźnim|%N2bliźni|%G2bliźnich|%D2bliźnim|%V2bliźnich|%L2bliźnich|%A2bliźnimi|%C2bliźnich|%G1bliźniego|%D1bliźniemu|%C1bliźniego|%A1bliźnim|%V1bliźni|%L1bliźnim|%N2bliźni|%G2bliźnich|%D2bliźnim|%V2bliźnich|%L2bliźnich|%A2bliźnimi|%C2bliźnich
boa|!L|$3,11|#
kakao|!N|#

Jak widać format jest dość paskudny, ale nawet niewprawne oko jest w stanie wypatrzeć kilka faktów:

  1. Jeden wiersz, to jedno słowo. Porządek jest przypadkowy – w kolejności dodawania.
  2. “Pajpy” rozdzielają definicję na różne sekcje
  3. Kolejność sekcji wydaje się dość swobodna, poza pierwszą.
  4. Pierwsza sekcja zawiera “root” – sam temat słowa, ale nie samo słowo w mianowniku (chociaż w niektórych przypadkach tak jest) – jak można by oczekiwać
  5. Słowa z regularną odmianą mają bardzo krótkie definicje.
  6. Za to te nieregularne – masakryczną

Na pewno zagadką jest znaczenie symboli takich jak !, #, $ czy @. Zerknijmy na kod – nie da się tego dłużej odwlekać…
Continue reading Flaksator – analiza przechowywanych danych: rzeczowniki