Programik do wykrywania błędów

0

Witam
Jestem uczestnikiem genealogicznego projektu internetowego basia.famula.pl, mającego na celu indeksację ksiąg metrykalnych publikowanych w sieci przez archiwa. Projekt rozwija się dobrze, w bazie danych mamy grubo ponad milion rekordów. Prowadzący to przedsięwzięcie ma coraz więcej pracy związanych z bieżącą obsługą projektu, a przy tej skali zadania pojawiają się ciągle nowe problemy. Mam kilka pomysłów na usprawnienie (automatyzację) pracy. Niestety jestem totalnym ignorantem w dziedzinie programowania dlatego będę Was prosił o weryfikację tych pomysłów oraz o ewentualne propozycje rozwiązań.
Problem jest prozaiczny i jak zazwyczaj powodowany przez “czynnik ludzki” a chodzi konkretnie o błędy popełniane podczas indeksacji. Rozjaśniając sytuację wspomnę, że nasza praca (indeksujących) polega na czytaniu skanów i wprowadzaniu danych do bazy za pomocą programu ASIA. Opracowujemy pakiety skanów – jednostki (jeden rocznik z danej parafii lub USC) i kontrolę tych pakietów chcę zaproponować.
Co poprawiona ASIA miałaby robić:
pobrać liczbę policzonych aktów w jednostce (L1) wprowadzoną przez indeksującego
pobrać liczbę wykonanych rekordów w jednostce (L2) z pliku
przeprowadzić porównanie L1=L2
jeżeli zachodzi równość, dopuścić do eksportu jednostki (pliku) na serwer i dodania do bazy
wyświetlić komunikat o pomyślnym przebiegu weryfikacji i wysłaniu na serwer
jeżeli nie zachodzi równość, zablokować eksport
pobrać ogólną liczbę skanów z danej jednostki (L3)
pobrać liczbę skanów do których przypisana jest jakakolwiek informacja w pliku (wykonane rekordy) (L4)
przeprowadzić porównanie L3=L4
jeżeli zachodzi równość, wyświetlić komunikat “Błędna wprowadzona liczba aktów w jednostce lub błędna ilość wykonanych indeksów”
jeżeli nie zachodzi równość, wyświetlić komunikat “Błędna wprowadzona liczba aktów w jednostce lub błędna ilość wykonanych indeksów z powodu pominięcia skanu”
Jeśli widzicie w tym schemacie jakieś błędy, macie inne pomysły lub znacie gotowce rozwiązujące podobne problemy, proszę o podzielenie się tą wiedzą.
Pozdrawiam.

0
  1. Bez źródeł ten twojej ASI to nic z tego nie będzie.
  2. Co to znaczy pobrać liczbę wykonanych rekordów w jednostce (L2) z pliku?
  3. Co to znaczy pobrać ogólną liczbę skanów z danej jednostki (L3) i skąd chcesz to pobrać?
  4. jw z pobrać liczbę skanów do których przypisana jest jakakolwiek informacja w pliku (wykonane rekordy) (L4)
  5. Nie rozumiem tego porównania L3=L4. Znaczy że zawsze jest błąd? Czy to porównanie ma być wykonane tylko jeśli zablokowaliśmy' eksport?
    Poza tym rozumiesz chyba, że w przeciwieństwie do ciebie, nie mamy pojęcia o "dziedzinie" twojego problemu. Nam to nic nie mówi. Na pewno nie ma gotowca do czegoś takiego, ale z tego co piszesz to modyfikacja tego co już macie wygląda na raczej trywialną.
0

Ad1. Pytałem o kod. Całego mi nie udostępnią. Ewentualnie wskazane fragmenty.
Ad2. Do każdego pakietu skanów (jednostki) wykonujemy indeksy, które zapisywane są w pliku *.asia . Myślę że liczba tych indeksów (rekordów) z danego pakietu skanów jest możliwa do wyciągnięcia z pliku.
Ad3. Każda jednostka to pakiet skanów (skany aktów z jednego roku dla danej parafii). Program ASIA pobiera ten pakiet skanów ze strony danego archiwum. Liczba L3 to ilość skanów w tym pakiecie.
Ad4. Czasami indeksujący omyłkowo nie indeksują wszystkich skanów lub wręcz indeksują wybrane skany i wysyłają cały pakiet skanów (jednostkę) na serwer. Liczba L4 to ilość tych skanów które mają przypisane w pliku *.asia jakieś informacje (indeksy).
Ad5. Tak. To porównanie ma być wykonane tylko gdy eksport został zablokowany. Pierwsze porównanie wykazuje że jest błąd a drugie określa jakiego typu błąd to może być (pominięcie skanu)

Rozumiem, że przedstawienie problemu spoczywa na moich barkach, i rzeczywiście jest to trudne. Cieszy mnie jednak fakt że problem jaki próbuję Wam przedstawić jawi się wam jako trywialny. Przynajmniej ze strony technicznej. Ogólnie co myślicie? Ma to sens? Będę wdzięczny za kolejne uwagi. Pozdrawiam.

0
  1. Ale jak sobie to wyobrażasz? Nie da się zmodyfikować programu bez jego kompletnych źródeł i środowiska developerskiego. Zresztą czemu nie spytasz o tą modyfikację firmy która to napisała? Przecież trzeba rozkminić kod tej aplikacji i znaleźć miejsca do modyfikacji a potem skompliować nową wersję. Dla kogoś "z zewnątrz" to jest zadanie na długi czas. Dla kogoś kto to napisał to jest kwestia dużo łatwiejsza.
  2. Zamiast "myśleć" lepiej sprawdzić w dokumentacji albo się upewnić.

No bo to jest trywialne, co nie znaczy że implementacja tego taka będzie.

0

Rozumiem, że działających modyfikacji programu tak z powietrza nie da się napisać. Trzymam się jednak twojej opinii że tą zmianę można zrobić stosunkowo łatwo. Tak ją przedstawię naszemu prowadzącemu projekt. Nie jestem pewien, ale myślę że to on napisał ASIĘ i z tym sobie poradzi. Szkoda że nie spotkaliście się wcześniej z próbami rozwiązania błędu wprowadzania do bazy danych niewłaściwej ilości rekordów. Nie musiałbym przecierać szlaku ale na początek myślę że to co zaproponuję wystarczy.
Teraz zapytam was o to co myślicie na temat kolejnego pomysłu. Chodzi o kontrolę jakości (bezbłędności) wprowadzanych danych do bazy. Nie będę rozpisywał się jakie to błędy, wspomnę tylko że chodzi o literówki, podmiana nazwisk i imion, błędne odczytanie niewyraźnego tekstu na skanie a nawet obłędy popełnione na oryginalnych aktach. Pomysł polega na tym by wyszukiwarka na http://www.basia.famula.pl/ wyszukiwała w bazie danych na podstawie wszystkich danych zawartych w rekordzie nie zawężających pola przeszukiwania, pakiecików rekordów dotyczących jednej osoby (akt urodzenia, akt zgonu, akty ewentualnych małżeństw i inne) i zapisywała informację o powiązaniu tych rekordów w bazie danych. Nie wiem czy lepiej by to zadanie robiła wyodrębniona wyszukiwarka jako oddzielny programik by nie obciążać dodatkową pracą BASiĘ na serwerze?
Wspomnę, że wyszukiwarka na http://www.basia.famula.pl/ wyposażona jest w suwak umożliwiający wyszukiwanie w dowolnym przybliżeniu podobieństwa.

Co by to przeciętnemu poszukiwaczowi miałoby dawać wyjaśnię na przykładzie. Ktoś wyszukuje osoby po nazwisku
i imieniu. Wyszukiwarka wyrzuca sporo rekordów o zadanych danych a dzięki wcześniej stworzonym pakiecikom można by zajrzeć do rekordów wcześniej powiązanych. Skróciłoby to poszukiwania rekordów mogących w wyniku literówek i innych błędów być znacznie niżej na liście lub w ogóle wypadałyby poza kryterium wyszukiwania tylko po nazwisku i imieniu. Ta metoda nie eliminuje błędów ale je pozwala ominąć ale to już coś.

Oceńcie proszę skalę trudności zadania.
Czy spotkaliście się wcześniej z próbami takiego wieloetapowego wyszukiwania?
Co lepsze niezależny programik czy wbudowany w BASiA?

1 użytkowników online, w tym zalogowanych: 0, gości: 1