wtorek, 24 marca 2015

Dlaczego nie było notki?

Nie tak dawno wspominałem o tym, że niestety nigdzie w internecie nie mogę trafić na Biblię Paulistów (a to w ostatnim czasie jest najlepsze tłumaczenie na język polski), a tymczasem moja protestancka znajoma blogowa Iwona Smosna na facebooku doniosła o darmowym programie rBiblia - okazało się, że właśnie tam jest właśnie m.in. to tłumaczenie. 
No i przyznam, że wpadłem po uszy. Pomyślałem, że skoro w tym programie można dogrywać różne wersje tłumaczeń, to może uda się te wersje wciągnąć do bazy danych?
No i okazało się, że jak najbardziej! Odnalazłem katalog, w którym te pliki są przechowywane, zajrzałem do tych plików (rozszerzenie dziwne bibx, więc nic mi nie mówiło), ale na oko wyglądały one na ZIP-y. Zmieniłem rozszerzenie i był to strzał w dziesiątkę - zawartość spokojnie dawała się rozzipować! 
To, co było w środku, nie posiadało żadnego rozszerzenia, ale wystarczyło zajrzeć, by widzieć, że są to XML-e. No to jesteśmy domu!
Wystarczyło napisać odpowiednie zapytania, by całą treść przerzucić do SQL-a. 
Trzeba było jeszcze znaleźć w internecie oznaczenia poszczególnych Ksiąg Starego i Nowego Testamentu, by niezależnie od tego, jak to zapyta, dostał interesującą go odpowiedź. Najwięcej określeń stosuje się dla Księgi Kapłańskiej - Kpł Kpl Kapł Kapl Lev IIIMoj 3Moj 3M, ale Księga Wyjścia jest niewiele gorsza - Wj Wyj Ex IIMoj 2Moj 2M. Okazało się jednak, że w tym programie szereg ksiąg (w tym właśnie Kapłańska) posiada jeszcze inne oznaczenia (tu Wj, to exo). W sumie było 14 takich ksiąg, których skrótów nie było na znalezionej w internecie liście (swoją drogą właśnie po tym, że taką listę momentalnie znalazłem, widać było, jak tej pracy Pan sprzyja!); 3 były banalnie proste - łatwo się było domyślić, że 1Jo, 2Jo i 3Jo, to Listy Jana. Pozostało już tylko 11.
Ale i z tym nie było problemu - odpytałem o wersy 1 z rozdziałów 1 każdej z tych ksiąg z V wydania Biblii Tysiąclecia, a następnie szukałem tych wersów w BT - znajdowałem w ten sposób katolickie oznaczenia ksiąg, a więc wiedziałem już, co tu trzeba było wpisać.
Pierwsze, co napisałem, to funkcje tabelaryczne, które zwracały wersy z podanego zakresu we wszystkich tłumaczeniach, które zostały zaznaczone, jako aktywne przeszukiwania. 
Następne, co dodałem, to to, by w tym samym selekcie dostawać gotowy kod HTML-owy do wstawienia na blog - wiadomo, że zawsze wstawiam cytaty tak, że każdy wers jest numerowany, przy czym numery są zapisywane w nawiasach w indeksach górnych. Uzyskanie tego efektu, który widzicie co tydzień, nie jest wcale takie łatwe - teraz cały cytat gotowy do wklejenia na bloga mam w czasie niemierzalnym (mnie pokazuje czas wykonania jako 00:00:00).
Ale to nie wszystko - dziś dodałem indeks pełnotekstowy do tabeli wersów i napisałem funkcję, która umie z tego skorzystać. W ten sposób odpowiedź zawierającą 180 wersów, w których jest 'na początku' mam po sekundzie (a do przeszukania jest prawie 100 tys. wersów).

Póki co wszystko mam na bazie firmowej, ale następny etap, to przeniesienie tego do pustej bazy, która poza Biblią nic więcej nie będzie posiadała.
Jak już to zrobię, udostępnię bazę każdemu, kto będzie tego chciał.

2 komentarze:

  1. No to dobra robota. Gratulacje

    OdpowiedzUsuń
    Odpowiedzi
    1. Dzięki :)
      Pytanie tylko, czy ktokolwiek z tego skorzysta? Mam nadzieję, że to się przyda Barce (ma odpowiednie przygotowanie zawodowe, by z tego skorzystać), ale obawiam się, że innym przydałoby się tylko wówczas, gdybym wystawił odpowiednią witrynę w internecie. Na MySql działałoby to znacznie wolniej, niż na MS-Sql-u, ale przecież by działało - a od użytkowników nie wymagałoby znajomości SQL-a. Jednak zupełnie inna jest sytuacja, jeśli ja komuś prywatnie udostępnię swoją bazę, a zupełnie inna, jeśli bym zrobił to publicznie na stronie internetowej - łatwo byłoby mnie oskarżyć o kradzież własności intelektualnej. Pewnie żadnemu wydawnictwu szkoda by było czasu na użeranie się z taką płotką, jak ja (faktycznie przecież te wydawnictwa żadnej straty by przez to nie poniosły, jeślibym zrobił taką wyszukiwarkę), ale jednak zagrożenie by było, a w razie czego, to ja nigdy bym się z tego wypłacił.

      Usuń