162
Załącznik nr 1 do Umowy I. Wstęp W 2012 r. Ministerstwo Sprawiedliwości rozpoczęło realizację projektu mającego na celu wdrożenie systemu publikacji orzecznictwa sądów powszechnych w sieci Internet, tj. modułu OSA służącego do publikacji orzeczeń sądów powszechnych w Internecie (dalej jako „System Portal Orzeczeń” lub „System”). Celem niniejszego projektu jest umożliwienie bezwnioskowego uzyskania dostępu do informacji publicznej, jaką są treści orzeczeń wraz z uzasadnieniami. Zanonimizowane orzeczenia sądów powszechnych publikowane są na stronie Biuletynu Informacji Publicznej danego sądu oraz pod adresem http://orzeczenia.ms.gov.pl . 1. Składowe Systemu W skład Systemu Portal Orzeczeń wchodzi: a. oprogramowanie niezbędne do działania Systemu, do którego Ministerstwo Sprawiedliwości na mocy Umowy nr 33 z dnia 18 lipca 2012 r. dotyczącej m. in. modernizacji modułu publikacji orzeczeń OSA oraz Umowy nr 282/2013 z dnia 22 października 2013 r. nabyło nieograniczone terytorialnie autorskie prawa majątkowe na wszystkich polach eksploatacji w rozumieniu ustawy z dnia 4 lutego 1994 r. o prawie autorskim i prawach pokrewnych (Dz. U. z 2006 r. Nr 90, poz. 631 ze zm.) z możliwością wykonywania prawa zależnych, na czas nieokreślony, z prawem do dalszego przenoszenia, obejmujące następujące komponenty, tj. Workflow (serwer/silnik sterowania procesem anonimizacji orzeczeń sądowych), Manager (aplikacja WEB do interaktywnej kontroli wyniku anonimizacji orzeczeń sądowych), Publisher (aplikacja WEB do prezentacji w Internecie zanonimizowanych orzeczeń sądowych), Verifier (aplikacja WEB do weryfikacji opublikowanych orzeczeń), Importer (program importujący dane niezbędne do zasilenia Portalu Orzeczeń z systemu repertoryjno - biurowego SAWA spółki Currenda sp. z o.o. zs. w Sopocie, z systemu repertoryjno - biurowego Sędzia2 spółki ZETO sp. z o.o. zs. w Świdnicy oraz systemu repertoryjno - biurowego Praetor spółki Praetor sp. z o.o. zs. w 1

Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

  • Upload
    ngokiet

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Załącznik nr 1 do Umowy

I. WstępW 2012 r. Ministerstwo Sprawiedliwości rozpoczęło realizację projektu mającego na celu wdrożenie systemu publikacji orzecznictwa sądów powszechnych w sieci Internet, tj. modułu OSA służącego do publikacji orzeczeń sądów powszechnych w Internecie (dalej jako „System Portal Orzeczeń” lub „System”). Celem niniejszego projektu jest umożliwienie bezwnioskowego uzyskania dostępu do informacji publicznej, jaką są treści orzeczeń wraz z uzasadnieniami. Zanonimizowane orzeczenia sądów powszechnych publikowane są na stronie Biuletynu Informacji Publicznej danego sądu oraz pod adresem http://orzeczenia.ms.gov.pl.

1. Składowe SystemuW skład Systemu Portal Orzeczeń wchodzi:

a. oprogramowanie niezbędne do działania Systemu, do którego Ministerstwo Sprawiedliwości na mocy Umowy nr 33 z dnia 18 lipca 2012 r. dotyczącej m. in. modernizacji modułu publikacji orzeczeń OSA oraz Umowy nr 282/2013 z dnia 22 października 2013 r. nabyło nieograniczone terytorialnie autorskie prawa majątkowe na wszystkich polach eksploatacji w rozumieniu ustawy z dnia 4 lutego 1994 r. o prawie autorskim i prawach pokrewnych (Dz. U. z 2006 r. Nr 90, poz. 631 ze zm.) z możliwością wykonywania prawa zależnych, na czas nieokreślony, z prawem do dalszego przenoszenia, obejmujące następujące komponenty, tj. Workflow (serwer/silnik sterowania procesem anonimizacji orzeczeń sądowych), Manager (aplikacja WEB do interaktywnej kontroli wyniku anonimizacji orzeczeń sądowych), Publisher (aplikacja WEB do prezentacji w Internecie zanonimizowanych orzeczeń sądowych), Verifier (aplikacja WEB do weryfikacji opublikowanych orzeczeń), Importer (program importujący dane niezbędne do zasilenia Portalu Orzeczeń z systemu repertoryjno - biurowego SAWA spółki Currenda sp. z o.o. zs. w Sopocie, z systemu repertoryjno - biurowego Sędzia2 spółki ZETO sp. z o.o. zs. w Świdnicy oraz systemu repertoryjno - biurowego Praetor spółki Praetor sp. z o.o. zs. w Warszawie, zwany dalej Importerem), API (interfejs pobierania danych), zwane dalej Oprogramowaniem Centralnym;

b. oprogramowanie niezbędne do prawidłowego działania Systemu, na które na mocy Umowy nr 310/2014 r. z dnia 21 listopada 2014 r. została udzielona sądom powszechnym w rozumieniu przepisu art. 1 ustawy z dnia 27 lipca 2001 r. Prawo o ustroju sądów powszechnych (Dz. U. z 2013 r. poz. 427 ze zm.), tj. wszystkim sądom apelacyjnym, okręgowym i rejonowym wchodzącym w skład organizacji Sądownictwa Powszechnego Rzeczpospolitej Polskiej niezależnie od zmian w strukturze organizacyjnej, odpłatna, niewyłączna, nieograniczona czasowo licencja, obejmująca następujące komponenty: moduł do automatycznej anonimizacji, serwer/silnik wyszukiwania pełnotekstowego, dodatki rozszerzające wyszukiwarkę o korektor zapytań (correct), generator natychmiastowych podpowiedzi oraz serwer/silnik analizy językowej, plugins rozszerzeń modułu analizy językowej o dodatek do podświetlania wybranych haseł w tekstach, dodatek do anonimizacji tekstów, dodatek do wykrywania imion i nazwisk (wraz z podręczną bazą imion i nazwisk) oraz o dodatek do wykrywania nazw geograficznych (wraz z podręczną bazą nazw), zwane dalej Oprogramowaniem Licencjonowanym. Dostawcą

1

Page 2: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Oprogramowania Licencjonowanego jest Konsorcjum Neurosoft Sp. z o.o. z siedzibą we Wrocławiu i Comarch Polska S.A. z siedzibą w Krakowie.

2. Opis Systemu Portal OrzeczeńDotychczas System Portal Orzeczeń został uruchomiony we wszystkich sądach apelacyjnych, wszystkich sądach okręgowych oraz wszystkich sądach rejonowych. Czas dostępności Systemu wynosi 24/7 (całą dobę przez 7 dni w tygodniu). Spełnia on poniżej wskazane wymagania. Produkty i usługi będące efektem realizacji niniejszego przedmiotu zamówienia muszą być kompatybilne z Oprogramowaniem Centralnym i muszą spełniać co najmniej minimalne parametry określone w niniejszym dokumencie.

2.1 Wymagania pozafunkcjonalne1. System zapewnia import orzeczeń wraz z uzasadnieniem z systemów SAWA, Sędzia 2 oraz

Praetor.2. System zapewnia integrację danych na poziomie jednego ośrodka przetwarzania.3. System zapewnia separację logiczną pomiędzy częścią wewnętrzną (proces anonimizacji) i

zewnętrzną (publikacja orzeczeń).4. System zapewnia możliwość skalowania poprzez rozdzielenie poszczególnych funkcji systemu

pomiędzy serwery w zakresie węzłów aplikacyjnych oraz bazodanowych.5. System obsługuje proces publikacji orzeczeń oraz podproces sprawdzania poprawności

anonimizacji przez aplikację webową.6. System jest zgodny ze standardami języków programowania, które zostały wykorzystane przy

jego tworzeniu.7. System zapewnia poprawne wyświetlanie na urządzeniach mobilnych oraz poprawne

wyświetlanie niezależnie od platformy systemowej i użytej przeglądarki internetowej.

2.2 Wymagania funkcjonalne1. Rozwiązanie umożliwia przeprowadzenie procesów:

a. importu orzeczeń wraz z uzasadnieniem;b. automatycznej anonimizacji;c. publikacji orzeczeń;d. weryfikacji poprawności opublikowanych orzeczeń.

2. Proces importu orzeczeń zapewnia:a. import wskazanych dokumentów;b. harmonogram uruchomienia;c. określenie typu importowanego dokumentu;d. raportowanie statusu importu i informacji pomocniczych;e. kompresję danych;f. szyfrowanie transferu danych;g. automatyczne aktualizacje oprogramowania importującego.

3. Proces anonimizacji oraz podproces sprawdzania poprawności anonimizacji zapewnia:a. automatyczną anonimizację orzeczeń z uzasadnieniami w oparciu o zaawansowaną

analizę morfoskładniową oraz zdefiniowane reguły;

2

Page 3: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

b. obsługę podprocesu sprawdzania poprawności anonimizacji, możliwość prowadzania korekt do automatycznej anonimizacji, raportowanie błędów za pośrednictwem panelu administracyjnego opartego na technologii webowej;

c. logowanie za pomocą loginu oraz hasła;d. obsługę 3 typów użytkowników o różnych uprawnieniach:

i. administratora;ii. osoby zatwierdzającej publikację;iii. osoby sprawdzającej anonimizację;

e. możliwość wyszukiwania zanonimizowanych orzeczeń na podstawie określonych kryterów;

f. zmiany stanów orzeczenia począwszy od oczekującego na sprawdzenie, przez sprawdzony skończywszy na opublikowany;

g. wprowadzanie metryki orzeczenia;h. logowanie zdarzeń systemowych;i. zarządzanie użytkownikami;j. możliwość sprawdzania poprawności opublikowanych orzeczeń z funkcjonalnością

raportowania o błędach na wskazane miejsce przy wykorzystaniu aplikacji webowej;4. Proces publikacji orzeczeń zapewnia:

a. publikację orzeczeń wraz z uzasadnieniami poddanych procesowi anonimizacji i podprocesowi sprawdzania poprawności anonimizacji;

b. wyszukiwanie orzeczeń na podstawie określonych kryteriów;c. wyszukiwanie pełnotekstowe;d. podpowiadanie treści zapytania w oparciu o treści opublikowanych orzeczeń;e. wydruk oraz konwersja do formatu .pdf treści opublikowanego orzeczenia;f. wyświetlanie orzeczeń podobnych na podstawie analizy treści orzeczenia;g. udostępnienie API do pobierania treści orzeczeń na żądanie;h. kategoryzowanie orzeczeń na podstawie drzewa haseł tematycznych;i. publikacja kanałów RSS;j. możliwość integracji z Biuletynem Informacji Publicznej sądu;

5. Proces weryfikacji orzeczeń zapewnia:a. logowanie za pomocą loginu oraz hasła;b. obsługę 3 typów użytkowników o różnych uprawnieniach:

i. administratora;ii. użytkownika.

c. wyświetlenie listy opublikowanych orzeczeń;d. przeszukiwanie listy opublikowanych orzeczeń zgodnie z przyjętymi kryteriami;e. weryfikację poprawności orzeczenia:

i. tryb weryfikacji;ii. możliwość oznaczenia fragmentu tekstu i zgłoszenia do niego uwagi;iii. wysyłkę uwagi do wydziału, który opublikował orzeczenie.

f. zarządzanie użytkownikami oraz adresami e-mail wydziałów sądów publikujących orzeczenia.

6. API zapewnia:

3

Page 4: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

a. dostęp do treści opublikowanych orzeczeń w postaci XML za pomocą interfejsu danych opartego o wzorzec REST przy wykorzystaniu protokołu http.

2.3 Komponenty systemu1. Silnik sterowania procesem anonimizacji orzeczeń sądowych (Workflow)2. Aplikacja webowa Panel Administracyjny (Manager)3. Aplikacja webowa Portal Orzeczeń (Publisher)4. Aplikacja webowa Portal Orzeczenictwa Eurpejskiego Trybunału Praw Człowieka5. Aplikacja webowa Panel Administracyjny Orzeczenictwa Eurpejskiego Trybunału Praw

Człowieka6. Aplikacja webowa Panel do weryfikacji orzeczeń (Verifier)7. API – interfejs pobierania danych8. Importer

2.4 Bezpieczeństwo1. Rozwiązanie zapewnia kontrolę dostępu do systemu opartą o użytkowników i hasła,

ograniczonych zakresem uprawnień oraz przynależnością do grupy dostępu do danych na poziomie sądu i wydziału.

2. Rozwiązanie uniemożliwia nieuprawnione pozyskanie danych z któregokolwiek modułu.3. Wszelkie operacje są monitorowane i rejestrowane w logach wraz z datą i czasem ich wykonania

(dotyczy zarówno dokumentów, użytkowników jak i procesów).

2.5 Dokumenty1. Podstawowym nośnikiem danych są pliki w formacie XML.2. Dokumentami zasilającymi System są:

a. orzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF;b. karty kwalifikacyjne orzeczeń, zawierające informacje o sygnaturze sprawy i dacie

orzeczenia, podstawie prawnej, haśle tematycznym oraz tezie.

2.6 Przebieg procesu publikacji orzeczeń1. odznaczenie do publikacji dokumentu w systemie repertoryjno-biurowym sądu;2. import wybranego dokumentu wraz z metadanymi na serwer w infrastrukturze centralnej za

pośrednictwem sieci WAN Ministerstwa Sprawiedliwości w określonym harmonogramie;3. automatyczna anonimizacja treści orzeczenia wraz z uzasadnieniem;4. odnalezienie właściwego dokumentu w bazie przy pomocy panelu administracyjnego,

wprowadzenie metryki orzeczenia, weryfikacja automatycznej anonimizacji przez użytkownika, możliwość wprowadzenia poprawek, ukrycia treści lub cofnięcia procesu anonimizacji dla określonego fragmentu dokumentu, zatwierdzenie poprawności dokumentu, publikacja orzeczenia w Internecie.

II. Specyfikacja systemuWłaścicielem oprogramowania opisanego w tym rozdziale jest Zamawiający.

4

Page 5: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

A. Oprogramowanie CentralneOpisane poniżej rozwiązania techniczne oparte są o otwarte oprogramowanie.

1. Silnik sterowania procesem anonimizacji orzeczeń sądowych (Workflow)1.1 Strukturalizacja, anonimizacja oraz publikacjaProgramy realizujące proces strukturalizacji oraz anonimizacji orzeczeń w Systemie oparte zostały na narzędziach typu Open Source (m. in. takie jak Sqlite3, LibreOffice, AbiWord, czy szereg bibliotek pomocniczych). Mają one postać skryptów w języku Ruby, programów w języku Java oraz w przeznaczonym dla środowiska Java języku Scala. Możliwe jest również uruchomienie ww. skryptów w języku Ruby w środowisku Java, przy pomocy oprogramowania JRuby.Strukturalizacja jako taka wykonywana jest dwuetapowo. W pierwszym etapie za pomocą oprogramowania LibreOffice wraz z jodconverter (przy małym wsparciu za pomocą programu AbiWord, który wykorzystywany jest do wydobycia dodatkowych danych metrykalnych) wejściowe dokumenty tekstowe (MS Word, RTF, OpenOffice) transformowane są do postaci XHTML. W etapie drugim ten XHTML poddawany jest analizie i zamianie na format XML, opracowany specjalnie dla potrzeb Systemu. Obydwa te etapy realizowane są przez skrypt doc2xml.rb.Oddzielnym procesem jest transformacja danych metrykalnych sprawy, w czasie której dane (w formacie XML) pobrane z systemu SAWA, są uzupełniane o dodatkowe informacje, dające się wydobyć z przetworzonych już orzeczeń, które zostały wydane danej sprawie. Zadanie to wykonywane jest przez skrypt build_case_xml.rb.Następnym krokiem w procesie przetwarzania jest anonimizacja orzeczeń. Do tego celu służy program anonymization-xml-1.2.1.jar. W normalnej sytuacji nie jest on jednak uruchamiany oddzielnie, lecz wraz z dwoma poprzednimi za jego uruchomienie odpowiada nadrzędny skrypt process_case.rb. Skrypt ten wykonuje oprócz tego jeszcze kilka dodatkowych zadań: dodaje odpowiednie informacje do roboczej bazy danych oraz ustawia w systemie plików informacje o właścicielu, grupie i prawach dostępu utworzonych plików.W środowisku produkcyjnym nad całością tego procesu czuwa dodatkowy skrypt watch_sources.rb, który uruchamiany jest jako tzw. demon systemu Linux. Okresowo, co 10 minut, sprawdza on, czy nie pojawiły się nowe lub zmienione dane pochodzące z importu z systemu repertoryjno-biurowego.Orzeczenia zweryfikowane przez pracowników sądu są przekazywane do publikacji, za proces publikacji odpowiedzialne są skrypty napisane w języku Python: ncourtGlobalKeywordsSuggestData.py i ncourtGlobalSuggestData.py odpowiedzialne są za przygotowanie danych dla usługi suggest, ncourt-indexer-backend.py i ncourt-prepare2index.py odpowiedzialne za proce tworzenia indeksów wyszukiwania. Wszystkie programy zostały opisane w szczegółach w dalszej części dokumentu.

1.2 Programy uczestniczące w przetwarzaniu danych

build_case_xml.rb

Zadaniem programu build_case_xml.rb jest utworzenie w katalogu docelowym (data/court) wynikowego pliku XML metryki sprawy. Plik ten tworzony jest na podstawie wejściowego, zaimportowanego z systemu sądowego pliku metryki (z katalogu data/source) i uzupełniany danymi wydobytymi z plików XML z treścią orzeczeń (przed anonimizacją). Pliki XML z treścią orzeczeń tworzone są przez program doc2xml.rb.

5

Page 6: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Program build_case_xml.rb uruchamiany jest jako drugi krok przetwarzania sprawy przez program process_case.rb.

Składnia wywołania:ruby -Ku build_case_xml.rb [-help] [-verbose|-quiet] input.xml ...

Opcje:Opcja Znaczenie-help powoduje wypisanie na standardowe wyjście tekstu

pomocy i zakończenie działania programu-verbose [tryb gadatliwy] włącza wypisywanie na standardowe

wyjście komunikatów, zawierających nazwy przetwarzanych oraz wynikowych plików

-quiet [tryb cichy] wyłącza wypisywanie na standardową diagnostykę komunikatów błędów

Parametry:Parametr Znaczenie Przykładinput.xml ...

wejściowe pliki XML zaimportowanych metryk, rozdzielone spacjami

/neurocourt/data/source/15/501515/0000512/RC/2011/000202/155015150000512_III_RC_000202_2011.xml

Program build_case_xml.rb ignoruje opcje inne niż wymienione powyżej, nie raportując żadnego błędu w razie podania innej opcji.Opcje mogą być prefiksowane dowolną liczbą myślników, tzn. zapis -verbose i ---verbose są równie dobre.

doc2xml.rbProgram doc2xml.rb służy do konwersji wejściowych, zaimportowanych z systemu sądowego, plików orzeczeń w formatach DOC, DOCX, ODT oraz RTF, do postaci niezanonimizowanych plików XML. Konwersja ta wykonywana jest za pomocą pakietu biurowego LibreOffice, przy czym w zależności od sposobu uruchomienia programu doc2xml.rb pakiet LibreOffice jest uruchamiany przez niego bezpośrednio lub też za pośrednictwem programów doc2xml-tuplespace.rb i doc2xml-server.rb.Konwersja plików orzeczeń jest pierwszym krokiem przetwarzania sprawy wykonywanym przez program process_case.rb.

Składnia wywołania:ruby -Ku doc2xml.rb [-help] [-verbose|-quiet] [-use-tuplespace] [-properties=properties-file-path] input.doc input.docx input.odt input.rtf ...

6

Page 7: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Opcje:Opcja Znaczenie-help powoduje wypisanie na standardowe wyjście tekstu pomocy i

zakończenie działania programu-verbose [tryb gadatliwy] włącza wypisywanie na standardowe wyjście

komunikatów, zawierających nazwy przetwarzanych oraz wynikowych plików

-quiet [tryb cichy] wyłącza wypisywanie na standardową diagnostykę komunikatów błędów

-use-tuplespace włącza tryb klient-serwer z pośrednikiem doc2xml-tuplespace.rb

Opcja Znaczenie Wartość domyślna

-properties=properties-file-path

ścieżka do pliku properties

/neurocourt/param/backend.properties

Parametry:Parametr Znaczenie Przykładinput.{doc,docx,odt,rtf}

wejściowe pliki orzeczeń zaimportwane z systemu sądowego

/neurocourt/data/source/15/501025/0001006/W/2012/000768/155010250001006_II_W_000768_2012_Uz_2012-12-04_001.rtf

Properties:Property Znaczenie Wartość domyślnaclassified.repertories.file

ścieżka do pliku XML z listą repertoriów, z których orzeczenia nigdy nie powinny być publikowane

/neurocourt/param/classified.xml

tuplespace.uri URL serwera "przestrzeni krotek" doc2xml-tuplespace.rb, pośredniczącego w rozdziale zadań do przetworzenia między serwery doc2xml-server.rb uruchomione w klastrze obliczeniowym

druby://localhost:7878

Program doc2xml.rb ignoruje opcje inne niż wymienione powyżej, nie raportując żadnego błędu w razie podania innej opcji.Opcje mogą być prefiksowane dowolną liczbą myślników, tzn. zapis -verbose i ---verbose są równie dobre.

doc2xml-server.rb

7

Page 8: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Program doc2xml-server.rb pobiera z "przestrzeni krotek" utrzymywanej przez server doc2xml-tuplespace.rb zadania - referencje do wejściowych plików orzeczeń - umieszczane tam przez aplikację doc2xml.rb uruchomioną w trybie klient-serwer (tzn. z opcją -use-tuplespace), następnie zaś przy pomocy pakietu LibreOffice wykonuje ich konwersję do wskazanego formatu.Na każdym serwerze backend-owym klastra powinna być uruchomiona jedna instancja doc2xml-server.rb.

Składnia wywołania:ruby -Ku doc2xml-server.rb [-help] [-daemon[ize] [-pidfile=pidfile-path]] [-log[file]=logfile-path] [-properties=properties-file-path]

Opcje:Opcja Znaczenie-help powoduje wypisanie na standardowe wyjście tekstu pomocy i zakończenie

działania programu

-daemon lub-daemonize

uruchomienie w trybie demona, tzn. programu odłączonego od terminala, działającego niezależnie od sesji użytkownika, który go uruchomiłwskazane jest jej użycie razem z opcją -pidfile=...

Opcja Znaczenie Wartość domyślna

-pidfile=pidfile-path ścieżka do pliku, w którym zostanie zapisany identyfikator procesu demonama sens jedynie wraz z opcją -daemon (lub -daemonize)

brak

-log=logfile-path lub-logfile=logfile-path

ścieżka do pliku loga, w którym zapisywane są komunikaty generowane przez pakiet LibreOffice oraz informacje o błędach przetwarzania

/neurocourt/log/doc2xml-server.log

-properties=properties-path

ścieżka do pliku properties /neurocourt/param/backend.properties

Properties:Property Znaczenie Wartość domyślnatuplespace.uri URL serwera "przestrzeni krotek"

doc2xml-tuplespace.rbdruby://localhost:7878

Program doc2xml-server.rb ignoruje opcje inne niż wymienione powyżej, nie raportując żadnego błędu w razie podania innej opcji.Opcje mogą być prefiksowane dowolną liczbą myślników, tzn. zapis -logfile i ---logfile są równie dobre.

doc2xml-tuplespace.rb

8

Page 9: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Program doc2xml-tuplespace.rb jest serwerem "przestrzeni krotek". Przestrzeń krotek jest mechanizmem zapożyczonym z języka Linda, realizującym asynchroniczną komunikację między serwerami (doc2xml-server.rb) i klientami (doc2xml.rb). Przekazują sobie one poprzez tę przestrzeń referencje do plików wymagających konwersji oraz zwracają wynik konwersji.Pojedyncza instancja programu doc2xml-tuplespace.rb powinna być uruchomiona na serwerze aktualizacji.

Składnia wywołania:ruby -Ku doc2xml-tuplespace.rb [-help] [-daemon[ize] [-pidfile=pidfile-path]] [-log[file]=logfile-path] [-properties=properties-file-path]

Opcje:Opcja Znaczenie-help powoduje wypisanie na standardowe wyjście tekstu pomocy i zakończenie

działania programu

-daemon lub-daemonize

uruchomienie w trybie demona, tzn. programu odłączonego od terminala, działającego niezależnie od sesji użytkownika, który go uruchomiłwskazane jest jej użycie razem z opcją -pidfile=...

Opcja Znaczenie Wartość domyślna

-pidfile=pidfile-path ścieżka do pliku, w którym zostanie zapisany identyfikator procesu demonama sens jedynie wraz z opcją -daemon (lub -daemonize)

brak

-log=logfile-path lub-logfile=logfile-path

ścieżka do pliku loga, w którym zapisywane są komunikaty błędów

/neurocourt/log/doc2xml-tuplespace.log

-properties=properties-path

ścieżka do pliku properties /neurocourt/param/update.properties

Properties:

Property Znaczenie Wartość domyślnatuplespace.uri URL serwera "przestrzeni krotek"

doc2xml-tuplespace.rbdruby://localhost:7878

Program doc2xml-tuplespace.rb ignoruje opcje inne niż wymienione powyżej, nie raportując żadnego błędu w razie podania innej opcji.Opcje mogą być prefiksowane dowolną liczbą myślników, tzn. zapis -logfile i ---logfile są równie dobre.

9

Page 10: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

ncourt-db.pyProgram ncourt-db.py służy do dodania lub odświeżenia w bazie danych informacji o dokumentach, które zostały zaimportowane i przetworzone. Jest on wywoływany przez program process_case.rb jako ostatni etap przetwarzania (po konwersji plików źródłowych, uzupełnieniu danych w metrykach i anonimizacji orzeczeń). W domyślnym trybie pracy program dodaje/aktualizuje dane tylko dla tych plików w zadanym katalogu wejściowym, które zostały zmodyfikowane od czasu poprzedniej aktualizacji bazy. Katalogiem wejściowym przy każdym wywołaniu jest katalog pojedynczej sprawy, program działa w trybie określonym przez opcję -f, która wymusza przetworzenie wszystkich plików w tym katalogu, niezależnie od daty ich modyfikacji.

Składnia wywołania:python ncourt_db.py input_dir courts_file db_name db_user db_password db_host db_port logfile [-c|-f]

Opcje:Opcja Znaczenie

-c powoduje, że program usuwa całą zawartość bazy, łącznie z jej strukturą (tabele, sekwencje, indeksy) i tworzy ją od nowa, a dopiero potem dodaje wszystkie dane

-f powoduje, że program dodaje/aktualizuje w bazie dane dla wszystkich plików w zadanym katalogu wejściowym, niezależnie od ich daty modyfikacji

Parametry:Parametr Znaczenie

input_dir katalog wejściowy z danymi (pliki XML metryk i orzeczeń)

courts_file plik z danymi sądów (normalnie "/neurocourt/param/courts.xml")

db_name nazwa bazy danych (normalnie "ncourt_documents")

db_user nazwa użytkownika, której używamy do połączenia z bazą danych (normalnie wartość parametru "document.database.user" z pliku konfiguracyjnego "/neurocourt/param/backend.properties"

db_password hasło użytkownika, którego używamy do połączenia z bazą danych (normalnie wartość parametru "document.database.password" z pliku konfiguracyjnego "/neurocourt/param/backend.properties"

db_host adres hosta na jakim działa serwer bazodanowy

db_port port na jakim działa serwer bazodanowy

logfile ścieżka do pliku loga

process_case.rbZadaniem programu process_case.rb jest całościowe przetworzenie plików związanych ze sprawą. Proces ten składa się z dwóch zadań:

● rozpakowanie archiwów ZIP zawierających pliki zaimportowane z systemu sądowego,● przetworzenie rozpakowanych plików.

10

Page 11: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Na zadanie przetworzenia rozpakowanych plików składają się zaś następujące kroki:● konwersja plików *.doc, *.docx, *.odt i *.rtf do formatu XML (przy pomocy programu

doc2xml.rb),● konwersja i uzupełnienie o informacje wydobyte z orzeczeń pliku XML z metryką sprawy (przy

pomocy programu build_case_xml.rb),● anonimizacja orzeczeń (vide: Anonimizacja xml),● dodanie lub odświeżenie informacji w bazie danych (przy pomocy programu ncourt-db.py).

Każdy z wyżej wymienionych kroków kończy się ustawieniem odpowiedniego właściciela i praw dostępu dla nowo utworzonych (lub odświeżonych) plików.

Składnia wywołania:ruby -Ku process_case.rb [-help] [-verbose|-quiet] [-disable-send-mail] [-use-tuplespace] [-force] [-force-anonimization] [-force-update-db] [-new-anonimization] [-force-conversion] [-log[file]=logfile-path] [-properties=properties-file-path] input-dir ...

Opcje:Opcja Znaczenie

-help powoduje wypisanie na standardowe wyjście tekstu pomocy i zakończenie działania programu

-verbose [tryb gadatliwy] włącza wypisywanie na standardowe wyjście komunikatów, zawierających nazwy przetwarzanych oraz wynikowych plików

-quiet [tryb cichy] wyłącza wypisywanie na standardową diagnostykę komunikatów błędów

-disable-send-mail wyłącza wysyłanie przez email powiadomień o zaistniałych błędach i problemach z przetwarzaniem

-use-tuplespace włącza tryb klient-serwer z pośrednikiem doc2xml-tuplespace.rb

-force wymusza wykonanie wszystkich kroków przetwarzania, za wyjątkiem konwersji plików wejściowych do formatu XMLbez równoczesnego użycia flagi -force-anonimization wykonuje anonimizację jedynie plików z xFlag="crude"

-force-anonimization wymusza wykonanie anonimizacji, także plików z xFlag z wartością inną od "crude" (w tym przypadku plik jest wersjonowany)

-force-update-db wymusza wprowadzenie do bazy nowych informacji o plikach (uruchomienie programu ncourt-db.py z opcją -f)

-new-anonimization opcja przeznaczona specjalnie dla trybu reanonimizacji, po zainstalowaniu nowego silnika anonimizacji

-force-conversion [opcja nieujawniona w tekście pomocy] wymusza ponowną konwersję plików wejściowych, a co za tym idzie nadpisanie wszystkich plików

11

Page 12: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

watch_sources.rbSkładnia wywołania:ruby -Ku watch_sources.rb [-verbose|-quiet] [-force] [-daemon[ize]] [-pidfile=pidfile-path] [-interval=seconds(default=600)] database-uri source-dir [output.log [error.log]]

Opcje:Opcja Znaczenie

-verbose włącza wypisywanie komunikatów nt. wykonywanych działań

-quiet wyłącza wypisywanie komunikatów, również tych dotyczących błędów

-force wymusza przetworzenie zadanych katalogów, nawet jeżeli daty modyfikacji

-daemon uruchomienie w trybie demona systemowego

-pidfile nazwa pliku, w którym ma zostać umieszczony identyfikator procesu demona

-interval parametr mówiący o tym, co ile sekund należy sprawdzić zawartość katalogu z danymi źródłowymi (domyślnie raz na 10 minut)

Parametry:Opcja Znaczenie

database-uri URI pomocniczej bazy danych (Sqlite3)

source-dir katalog w danymi wejściowymi, w którym są umieszczane pliki zaimportowane z systemu repertoryjno-biurowego

output.log plik z logiem działania programu; informacje o wykonywanych działaniach kierowane są na standardowe wyjście, jeżeli plik ten nie został określony

error.log plik z logiem błędów; jeżeli nie zostanie podany, informacje o błędach zapisywane są do pliku output.log lub kierowane na standardową diagnostykę,jeżeli plik ten nie został określony

Dla skryptu tego istnieje również odpowiedni systemowy skrypt startowy o nazwie watch_sources, który musi zostać umieszczony w katalogu /etc/init.d, służący do automatycznego uruchamiania tego demona w trakcie startu systemu, jak również do jego zatrzymywania.

1.3 Programy uczestniczące w aktualizacji danych dla portalu orzeczeń

ncourtGlobalKeywordsSuggestData.pyProgram ncourtGlobalKeywordsSuggestData.py służy do przygotowania globalnej bazy haseł tematycznych dla usługi Suggest dla opublikowanych orzeczeń. Globalna, oznacza w tym wypadku, że przy budowie tej bazy brane są pod uwagę hasła tematyczne ze wszystkich opublikowanych orzeczeń ze wszystkich sądów. Przygotowuje on plik tekstowy w formacie odpowiednim dla nscopegen, a następnie za pomocą tego programu tworzy właściwą bazę dla suggesta. Ponadto przygotowuje on pliki CSV, w których są informacje o częstotliwości występowania poszczególnych haseł w opublikowanych

12

Page 13: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

orzeczeniach. Do jego działania konieczne jest stworzenie wcześniej pliku konfiguracyjnego dla programu nscopegen. Podczas aktualizacji danych robi to program update_publisher.rb, który w odpowiednim momencie wywołuje ncourtGlobalKeywordsSuggestData.py.

Składnia wywołaniapython ncourtGlobalKeywordsSuggestData.py keywordsDataDir outputDir nscopegenDir suggestCfgFile publishedJudgementsAddsFilesDir

Parametry:Parametr ZnaczeniekeywordsDataDirDir katalog z plikami CSV z wszystkimi hasłami tematycznymi

outputDir katalog, w którym zostanie utworzony plik z bazą danych dla suggesta haseł tematycznych

nscopegenDir katalog, w którym znajduje się nscopegen

suggestCfgFile plik konfiguracyjny dla nscopegen

publishedJudgementsAddsFilesDir katalog z plikami 'adds' dla opublikowanych orzeczeń

ncourtGlobalSuggestData.pyProgram ncourtGlobalSuggestData.py służy do przygotowania globalnych baz sygnatur spraw i nazw sędziów dla usługi Suggest dla opublikowanych orzeczeń. Globalna, oznacza w tym wypadku, że przy budowie tej bazy brane są pod uwagę dane ze wszystkich opublikowanych orzeczeń ze wszystkich sądów. Przygotowuje on pliki tekstowe w formacie odpowiednim dla nscopegen, a następnie za pomocą tego programu tworzy właściwe bazy dla suggesta. Do jego działania konieczne jest stworzenie wcześniej plików konfiguracyjnych dla programu nscopegen. Podczas aktualizacji danych robi to program update_publisher.rb, który w odpowiednim momencie wywołuje ncourtGlobalSuggestData.py.

Składnia wywołania:python ncourtGlobalSuggestData.py signatures_suggest_cfg judges_suggest_cfg nscopegen_dir output_dir published_data_dir

Parametry:Parametr Znaczeniesignatures_suggest_cfg plik konfiguracyjny dla nscopegen do utworzenia bazy suggesta

sygnatur

judges_suggest_cfg plik konfiguracyjny dla nscopegen do utworzenia bazy suggesta sędziów

nscopegen_dir katalog, w którym znajduje się nscopegen

output_dir katalog, w którym zostaną utworzone plik z bazami danych dla suggesta

published_data_dir katalog z plikami XML opublikowanych orzeczeń

13

Page 14: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

ncourt-indexer-backend.pyProgram ncourt-indexer-backend.py dodaje do indeksu dokumentów dla Portalu Orzeczeń te opublikowane przez sądy na danym backendzie. Jest uruchamiany przez program backend-indexer.rb, na każdym backendzie osobno. Dane orzeczeń pobiera z bazy i dodatkowo z plików "adds" (hasła tematyczne i powołane przepisy). Jeśli w bazie brakuje nazwy edytora lub publikatora danego dokumentu próbuje ją pobrać z LDAP. Program sam nie otwiera indeksu przed dodawaniem dokumentów, dostaje on jako parametr token sesji już otwartego indeksu.

Składnia wywołania:python ncourt-indexer-backend.py input_dir output_dir nscope_server nscope_token db_name db_user db_password db_host db_port ldap_url ldap_users_base logfile

Parametry:Parametr Znaczenie

input_dir katalog z danymi wszystkich zaimportowanych i przetworzonych metryk i orzeczeń

output_dir katalog z danymi opublikowanych dokumentów

nscope_server adres serwera Neuroscope

nscope_token token sesji otwartego indeksu Neuroscope

db_name nazwa bazy danych, z której program pobiera dane opublikowanych orzeczeń

db_user nazwa użytkownika, której używamy do połączenia z bazą danych

db_password hasło użytkownika, którego używamy do połączenia z bazą danych

db_host adres hosta na jakim działa serwer bazodanowy

db_port port na jakim działa serwer bazodanowy

ldap_url adres URL LDAP-a

ldap_users_base część LDAP-a, w której są dane użytkowników

logfile ścieżka do pliku loga

ncourtKeywordsSuggestData.pyProgram ncourtKeywordsSuggestData.py służy do przygotowania baz haseł tematycznych dla usługi Suggest. Możemy przygotować bazę dla aplikacji administracyjnej, która jest taka sama dla każdego sądu (zawiera wszystkie możliwe hasła tematyczne) albo bazy suggest haseł tematycznych dla opublikowanych orzeczeń z każdego sądu, które zawierają tylko te hasła, które występują w opublikowanych dokumentach. W tym drugim przypadku zostaną również przygotowane pliki CSV, w których są informacje o częstotliwości występowania poszczególnych haseł w opublikowanych orzeczeniach dla każdego sądu osobno. Do działania programu konieczne jest stworzenie wcześniej pliku konfiguracyjnego dla programu nscopegen, ponieważ to ten program tworzy właściwe bazy na podstawie przygotowanych wcześniej przez ncourtKeywordsSuggestData.py plików tekstowych w odpowiednim

14

Page 15: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

formacie. Podczas aktualizacji danych pliki konfiguracyjne dla nscopegen przygotowuje backend_publisher.rb, który następnie wywołuje ncourtKeywordsSuggestData.py.

Składnia wywołania:python ncourtGlobalKeywordsSuggestData.py keywordsDataDir courtsFile outputDir nscopegenDir suggestCfgFile publishedJudgementsAddsFilesDir

Parametry:Parametr Znaczenie

keywordsDataDirDir katalog z plikami CSV z wszystkimi hasłami tematycznymi

courtsFile plik z danymi sądów (normalnie "/neurocourt/param/courts.xml")

outputDir katalog, w którym zostanie utworzony plik z bazą danych dla suggesta haseł tematycznych

nscopegenDir katalog, w którym znajduje się nscopegen

suggestCfgFile plik konfiguracyjny dla nscopegen

publishedJudgementsAddsFilesDir katalog z plikami 'adds' dla opublikowanych orzeczeń

ncourt-prepare2index.pyProgram ncourt-prepare2index.py służy do wstępnego przygotowania danych oznaczonych do publikacji orzeczeń dla programu dodającego je do indeksu bazy danych. Program wykonuje trzy czynności dla dokumentów, które są do publikacji, a nie są obecnie opublikowane - zmienia im w bazie statusy z "TO_PUBLISH" na "PUBLISHED", ustawia im datę publikacji w bazie i w plikach XML zmienia wartość atrybutu "xFlag" elementu głównego "xPart" na "published".

Składnia wywołania:python ncourt-prepare2index.py db_name db_user db_password db_host db_port logfile

Parametry:Parametr Znaczenie

db_name nazwa bazy danych, w której są dane orzeczeń

db_user nazwa użytkownika, której używamy do połączenia z bazą danych

db_password hasło użytkownika, którego używamy do połączenia z bazą danych

db_host adres hosta na jakim działa serwer bazodanowy

db_port port na jakim działa serwer bazodanowy

Logfile ścieżka do pliku loga

ncourtSuggestData.pyProgram ncourtSuggestData.py służy do przygotowania baz sygnatur spraw i nazw sędziów dla usługi Suggest. Możemy przygotować bazy dla aplikacji administracyjnej, które dla każdego sądu zawierają wszystkie sygnatury, dla których są w systemie przetworzone dokumenty i wszystkich sędziów

15

Page 16: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

występujących w tych dokumentach. Możemy też przygotować bazy dla opublikowanych orzeczeń z każdego sądu, które zawierają tylko sygnatury spraw opublikowanych dokumentów i sędziów, którzy się tam pojawiają. Do działania programu konieczne jest stworzenie wcześniej plików konfiguracyjnych dla programu nscopegen, ponieważ to ten program tworzy właściwe bazy na podstawie przygotowanych wcześniej przez ncourtSuggestData.py plików tekstowych w odpowiednim formacie. Podczas aktualizacji danych pliki konfiguracyjne dla nscopegen przygotowuje backend_publisher.rb, który następnie wywołuje ncourtSuggestData.py.

Składnia wywołania:python ncourtSuggestData.py a|c db_name db_user db_password db_host db_port signatures_suggest_cfg judges_suggest_cfg nscopegen_dir output_dir

Opcje:Opcja ZnaczenieA powoduje, że program przygotuje bazy danych suggest dla aplikacji

ncourt-adminC powoduje, że program przygotuje bazy danych suggest dla aplikacji

ncourt-client

Parametry:Parametr Znaczeniedb_name nazwa bazy danych przetworzonych orzeczeń (normalnie

"ncourt_documents")

db_user nazwa użytkownika, której używamy do połączenia z bazą danych (normalnie wartość parametru "document.database.user" z pliku konfiguracyjnego "/neurocourt/param/backend.properties"

db_password hasło użytkownika, którego używamy do połączenia z bazą danych (normalnie wartość parametru "document.database.password" z pliku konfiguracyjnego "/neurocourt/param/backend.properties"

db_host adres hosta na jakim działa serwer bazodanowy

db_port port na jakim działa serwer bazodanowy

signatures_suggest_cfg plik konfiguracyjny dla nscopegen do utworzenia baz suggesta sygnatur

judges_suggest_cfg plik konfiguracyjny dla nscopegen do utworzenia baz suggesta sędziów

nscopegen_dir katalog, w którym znajduje się nscopegen

output_dir katalog, w którym zostaną utworzone plik z bazami danych dla suggesta

Programy odpowiedzialne za wyznaczanie odnośników prawnych i dokumentów podobnych

16

Page 17: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

ncourt-features-adder-1.2.0.jarProgram ncourt-features-adder-1.2.0.jar służy do wyszukiwania mocnych cech i odnośników prawnych w treści opublikowanych orzeczeń (pliki -publ.xml). Mocnymi cechami orzeczenia nazywamy występujące w nim frazy, istotne z punktu widzenia tego, o czym jest dane orzeczenie. Wszystkie znalezione odnośniki prawne dodawane są do pliku -adds.xml danego orzeczenia. Mocne cechy, jak i najważniejsze linki prawne zapisywane są w pliku -ftrs.xml, który jest tworzony w tym samym katalogu, w którym znajduje się plik z orzeczeniem (-publ.xml). Dodatkowo odnośniki prawne oznaczane są w pliku ze zanonimizowanym orzeczeniem. Mocne cechy jak i linki wyszukiwane są niezależnie w każdym paragrafie xText w taki sposób, że nie mogą rozciągać się na więcej niż jeden paragraf. Dodatkowo pomijane są tagi xAnon. Następnie wszystkie wystąpienia odnośników prawnych znalezione przez plugin Grama zamieniane są na tagi xLexLink:

<xLexLink xArt="Numery artykułów, paragrafów"

xTitle="Tytuł odnośnika"

xAddress="Adres promulgacyjny"

xIsapId="Identyfikator aktu w Internetowym Systemie Aktów Prawnych">

Treść odnośnika

</xLexLink>

Składnia wywołania:

java -jar ncourt-features-adder-1.2.0.jar {-g URL|--gram URL} [--in-dir DIR] [--in-list FILE] [-i FILE|--in-file FILE] {-c FILE|--conf FILE} [-o FILE| --out-file FILE] [-s INT|--max-size INT] {-t DIR|--tmp-dir DIR} {-m MODE|--mode MODE} {-r DIR|--resource-dir DIR}

Parametry:

Parametry/opcje Znaczenie

-g, --gram adres serwera Gram z uruchomionym pluginem do linkowania (lawlink-plugin) oraz parserem (gram-parser-plugin).

--in-dir katalog z orzeczeniami, do których mają zostać dodane linki prawne. Uruchomienie aplikacji z tą opcję spowoduje, że orzeczenia zostaną nadpisane przez nową wersję posiadającą odnośniki.

--in-list plik z listą ścieżek do plików "publ", które należy przetworzyć

-i, --in-file Plik konfiguracyjny.

17

Page 18: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

-c, --conf nazwa bazy danych, z której program pobiera dane opublikowanych orzeczeń

-o, --out-file plik z wynikową treścią orzeczenia.

-s, --max-size maksymalny rozmiar przetwarzanych plików w megabajtach (domyślnie 10)

-t, --tmp-dir katalog, w którym aplikacja może zapisywać tymczasowe pliki

-m, --mode tryb w jakim ma działać program; dostępne opcje l - dodawanie linków, f - dodawanie mocnych cech dokumentów, a - dodawanie linków i cech

-r, --resource-dir katalog z danymi do ncourt-similarity-engine

Uruchomienie aplikacji z opcjami --in-file i --out-file powoduje przetworzenie jednego pliku w drugi. Bardziej skomplikowana jest opcja --in-dir. Rekursywnie szuka ona we wszystkich podkatalogach dokumentów opublikowanych tzn. takich, których nazwa kończy się na "-publ.xml". Następnie tworzy kopię tymczasową tego pliku (w katalogu podanym przy opcji tmp-dir), dodaje do niej linki prawne i jeżeli wszystko pójdzie dobrze - nadpisuje wersję oryginalną.

Plik konfiguracyjny musi mieć następujące pola:

#identyfikatory parserów z frazami używanymi do liczenia podobieństwa dokumentów

gram.parser.groupid.similarity = "SimilarityPhrases"

gram.parser.groupid.guessedthemes = "SimilarityPhrasesOrzeczenia"

similarity-xml-1.2.1.jarProgram similarity-xml-1.2.1.jar wykorzystywany jest do znajdowania dokumentów podobnych do zadanego. Dokumenty podobne wyznaczane są w oparciu o mocne cechy i linki prawne wygenerowane przez program ncourt-features-adder. Program do działania potrzebuje dostępu do bazy, w której znajdują się cechy dokumentów. Bazę tworzy skrypt similarDocsDataGenerator.py

Działanie programu podzielone jest na cztery etapy:

- dla każdego dokumentu o podanym identyfikatorze wyznaczone są dokumenty podobne

- dokumenty podobne zapisywane są w pliku -docs.xml obok pliku -adds.xml w katalogu data.path podanym w pliku konfiguracyjnym

- wyliczane są dokumenty podobne również dla dokumentów, które wyznaczone zostały jako "podobne" do podanych

- do pliku out-file wypisane zostaną identyfikatory dokumentów podobnych

18

Page 19: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Składnia wywołania:

java -jar similarity-xml-1.2.1.jar {-i FILE|--in-list FILE} {-o FILE|--out-file FILE} {-c FILE|--conf FILE}

Parametry:

Parametry Znaczenie

-i, --in-list plik z identyfikatorami dokumentów, dla których należy wyznaczyć dokumenty podobne. Kolejne identyfikatory zapisane są w nowych liniach. Zatem taki plik będzie miał postać:

(...)

155015450001512_III_RC_000262_2012_Uz_2013-03-08_001

155015450000503_I_Ns_000439_2009_Uz_2012-11-22_001

155015450000503_I_C_000006_2013_Uz_2013-05-16_001

(...)

-o, --out-file Nazwa pliku wynikowego. Zapisane zostaną w nim informacje o identyfikatorach wyznaczonych dokumentów podobnych. Plik taki będzie miał postać:

(...)

155015450001512_III_RC_000262_2012_Uz_2013-03-08_001: simId1 simId2 simId3 ...

155015450000503_I_Ns_000439_2009_Uz_2012-11-22_001: simId1 simId2 simId3 ...

155015450000503_I_C_000006_2013_Uz_2013-05-16_001: simId1 simId2 simId3 ...

(...)

-c, --conf plik konfiguracyjny

Plik konfiguracyjny musi mieć następujące pola:

similar-documents.database.url = adres bazy z cechami dokumentów

similar-documents.database.user = nazwa użytkownika do tej bazy

similar-documents.database.password = hasło do tej bazy

data.path = katalog z danymi

19

Page 20: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

gram.server = adres grama

similarDocsDataGenerator.pySkrypt similarDocsDataGenerator.py wykonuje operacje związane ze wstawianiem i aktualizacją danych w bazie dokumentów podobnych.

Składnia wywołania:

python similarDocsDataGenerator.py input_dir db_name db_user db_password db_host db_port logfile mode docs_to_update_file [last_update_file [unpublished_docs_dir]]

Parametry/opcje Znaczenie

input_dir katalog z plikami wejściowymi XML zawierającymi cechy dokumentów (pliki "ftrs")

db_name nazwa bazy danych

db_user nazwa użytkownika bazy danych

db_password hasło użytkownika bazy danych

db_host adres hosta na jakim działa serwer bazodanowy

db_port port na jakim działa serwer bazodanowy

logfile ścieżka do pliku loga

mode tryb pracy programu. Dostępne opcje:

i - inicjalizacja cech, czyli wypełnienie pustej tabeli z cechami ("features") w bazie i przygotowanie listy dokumentów, dla których trzeba zaktualizować dokumenty podobne

d - aktualizacja cech i cześciowo dokumentów w bazie i przygotowanie listy dokumentów, dla których trzeba zaktualizować dokumenty podobne

u - aktualizacja dokumentów podobnych w bazie (tabela "docs") na podstawie danych dostarczonych przez zewnętrzny program

docs_to_update_file plik wyjściowy, w którym zapisane są dokumenty, dla których program zewnętrzny ma wyliczyć dokumenty podobne (tryb "i" oraz "d") albo plik wejściowy, z danymi dokumentów podobnych wyliczonych przez program zewnętrzny (tryb "u")

last_update_file ścieżka do pliku z datą ostatniej aktualizacji (tryb 'i' oraz 'd')

20

Page 21: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

unpublished_docs_dir katalog zawierający pliki tekstowe przechowujące listy dokumentów, które zostały wycofane z publikacji (jeden plik na apelację)

2. Aplikacja webowa Panel administracyjny (Manager)Aplikacja webowa do interaktywnej kontroli wyniku anonimizacji orzeczeń sądowych. Istnieje 11 instancji aplikacji działających dla każdej z apelacji oddzielnie. Pula użytkowników oraz orzeczeń jest odrębna na poziomie każdego sądu. Komunikacja pomiędzy użytkownikami końcowymi a serwerem jest szyfrowana za pomocą protokołu SSL.

Logowanie do systemu:

21

Page 22: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Zakładka Szukanie:

Formularz wyszukiwania zawiera następujące kryteria:● sygnatura● typ:

○ dowolny○ wyrok○ wyrok wstępny○ postanowienie○ uzasadnienie○ zarządzenie○ protokół○ doręczenie○ zawiadomienie○ wezwanie○ inny

● status:○ dowolny○ do sprawdzenia○ trwa sprawdzanie○ sprawdzony

22

Page 23: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

○ do publikacji○ opublikowany

● sąd● wydział● data orzeczenia (data wydania “do”, “do” wraz z podręcznym kalendarzem)● data publikacji (data wydania “do”, “do” wraz z podręcznym kalendarzem)● sędzia● tezowane [tak | nie | wszystkie]● użytkownik [ja | wszyscy]● wyświetl niepublikowane [tak | nie]

Wyniki wyszukiwania prezentują listę dokumentów wraz z ich typem i statusem.

23

Page 24: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Zakładka Statystyki

Zakładka Reguły anonimizacjiZawiera zestaw jednolitych reguł anonimizacji, którymi kieruje się oprogramowanie anonimizacyjne oraz użytkownicy weryfikujący proces automatycznej anonizmizacji.

24

Page 25: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Zakładka Wsparcie

Zakładka Wsparcie zawiera dane kontaktowe do wsparcia technicznego, prawnego oraz konsultacji w zakresie anonimizacji dla Użytkownika Końcowego. Ponadto jest to miejsce na instrukcje użytkownika.

25

Page 26: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Zakładka Użytkownicy (widoczna dla użytkownika Administrator)

Zakładka Administrator pozwala na zarządzanie użytkownikami. Możliwa jest automatyzacja tworzenia kont użytkowników za pomocą odpowiednio sformatowanego pliku CSV.

26

Page 27: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Tworzenie nowego użytkownika:

Administrator w danym sądzie może zakładać konta użytkowników przydzielając im dostęp do jednego lub więcej wydziału macierzystego sądu. Rozróżniamy trzy typy uprawnień:

1. administrator (może edytować orzeczenia, może publikować orzeczenia, zarządzać użytkownikami)

2. osoba publikująca orzeczenia (może publikować orzeczenia)3. edytor orzeczeń (może edytować orzeczenia)

Administrator może również w dowolnym zakresie edytować konta użytkowników i usuwać konta.

27

Page 28: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Zakładka Logi (widoczna dla użytkownika Administrator)

Zakładka Logi umożliwa śledzenie zdarzeń systemowych wg następujących kryteriów: Dokumenty

o Rodzaj aktywności Rozpoczęcie sprawdzania Rezygnacja ze sprawdzania Ponowne sprawdzenie Zakończenie sprawdzania Przesładnie do publikacji Wycofanie z publikacji Wycofanie zmian Utajnienie Odtajnienie Inna czynność

o Sygnatura Użytkownicy

o Rodzaj aktywności Dodanie Usunięcie Edycja Inna czynność

o Podmiot

28

Page 29: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Metryka Orzeczenia

Część informacji takich znajdujących się w metryce musi zostać uzupełniona przez użytkownika, pozostałe zostały automatycznie zaimportowane wraz z dokumentem lub pobrane z jego treści. Hasła tematyczne ograniczone są do słownika haseł tematycznych.

29

Page 30: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Sprawdzanie anonimizacji

Dostępne są trzy tryby wyświetlania:1. rozszerzony - wyświetla wyróżniony oryginalny tekst jak i zanonimizowany2. zanonimizowany - wyświetla wyłącznie wyróżniony zanonimizowany tekst3. publiczny - wyświetla zanonimizowany tekst bez wyróżnienia

Wyróżnione kolorem żółtym elementy są efektem działania dodatku do automatycznej anonimizacji oraz dodatku do podświetlania wybranych haseł w tekstach będących częścią Oprogramowania Dedykowanego. Użytkownik może w każdej chwili przerwać sprawdzanie/poprawianie anonimizacji powracając do listy wyszukiwania, może anulować sprawdzanie, co spowoduje powrót dokumentu do wersji pierwotne, może również zatwierdzić sprawdzanie. Zatwierdzony dokument może zostać opublikowany w Internecie.

30

Page 31: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Usuwanie anonimizacji

Użytkownik może usunąć anonimizację, jeżeli uważa, że jest to konieczne, używając menu kontekstowego. Opcja Usuń anonimizację usunie tylko aktualnie zaznaczony element, Usuń wszystkie takie... spowoduje usunięcie wszystkich takich bytów z całego tekstu natomiast Zamień wszystkie takie... wyświetli listę zamienników na jakie w tym wypadku imię i nazwisko powinno zostać zamienione w całej treści orzeczenia.

Dodawanie anonimizacji

Aby zanonimizować tekst, użytkownik zaznacza fragment treści i, używając menu kontekstowego, decyduje, w jaki sposób powinien zostać zastąpiona zaznaczony tekst, jeżeli użyje opcji Utwórz wszystkie takie... wszystkie byty identyczne z zaznaczonym w całym dokumencie zostaną zastąpione na wybrane przez użytkownika zestawy znaków.

3. Aplikacja webowa Portal Orzeczeń (Publisher)Aplikacja webowa dostępna przez Biuletyn Informacji Publicznej sądów posiadających Portal Orzeczeń oraz pod adresem http://orzeczenia.ms.gov.pl.

31

Page 32: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Aplikacja umożliwia pełnotekstowe wyszukiwanie za pomocą słów kluczowych oraz sygnatury sprawy wraz z wbudowanym korektorem zapytań i generatorem natychmiastowych podpowiedzi. Wyświetla interaktywną mapę apelacji wraz z wyszczególnieniem publikujących sądów oraz rozwijane drzewo sądów, w których uruchomiony został Portal Orzeczeń wraz z ilością opublikowanych dokumentów.

32

Page 33: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Wyszukiwanie zaawansowane pozwala na zawężenie wyników wyszukiwania względem zastosowanych kryteriów.

33

Page 34: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Drzego haseł tematycznych przypisanych do orzeczeń z podziałem na Karne oraz Cywilne, pracy i ubezpieczeń społecznych. Wybór hasła tematycznego powoduje wyświetlenie wszystkich orzeczeń do niego przypisanych.

34

Page 35: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Metryka orzeczenia

35

Page 36: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Treść wyroku wraz z uzasadnieniem. Możliwe jest wydrukowanie dokumentu oraz eksport do formatu PDF. Jeżeli w treści przywołane zostały akty prawne, zostają one automatycznie podlinkowane do właściwej ustawy w Internetowym Systemie Aktów Prawnych.

36

Page 37: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Wszystkie przywołane w treści akty zebrane są w zakładce “Powołane przepisy”.

37

Page 38: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Orzeczenia o podobnej treści zebrane są w zakładce „Orzeczenia podobne”.

38

Page 39: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Zakładka „Kanały RSS” umożliwia pobranie nagłówków orzeczeń dla czytników RSS. Tytuł zawiera nazwę sądu oraz sygnaturę sprawy, której dotyczy orzeczenie, opis zawiera zalążek treści orzeczenia, autorem jest publikujący sąd. Udostępnione kanały RSS dotyczą wszystkich orzeczeń publikowanych na stronie orzeczenia.ms.gov.pl oraz oddzielnie publikowanych dla każdego sądu z osobna jak również dla każdego hasła tematycznego.

4. Aplikacja webowa Portal Orzeczenictwa Eurpejskiego Trybunału Praw CzłowiekaAplikacja webowa dostępna pod adresem http://etpzc.orzeczenia.ms.gov.pl.

39

Page 40: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Aplikacja umożliwia pełnotekstowe przeszukiwanie orzeczeń za pomocą słów kluczowych oraz pozostałych kryteriów.

40

Page 41: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Metryka orzeczenia

41

Page 42: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Treść orzeczenia. Możliwe jest wydrukowanie dokumentu oraz eksport do formatu PDF.

5. Aplikacja webowa Panel Administracyjny Orzeczenictwa Eurpejskiego Trybunału Praw CzłowiekaAplikacja służy do przeprowadzenia procesu publikacji orzeczenia wraz z obsługą ręcznej anonimizacji treści oraz wycofywania publikacji.

Logowanie do systemu:

42

Page 43: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Zakładka szukanie:

Formularz wyszukiwania zawiera następujące kryteria:● numer skargi● status:

○ nieprzetworzony○ do sprawdzenia○ trwa sprawdzanie○ sprawdzony○ do publikacji○ opublikowany

Wyniki wyszukiwania prezentują listę dokumentów wraz z ich typem i statusem.

Zakładka Dodaj nowy dokument:

43

Page 44: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Dodawanie nowego dokumentu wymaga wprowadzenia metadanych oraz załączeniu pliku w formacie .doc, docx, lub .rtf.

Zakładka Użytkownicy (widoczna dla użytkownika Administrator)\

Zakładka Administrator pozwala na zarządzanie użytkownikami. Możliwa jest automatyzacja tworzenia kont użytkowników za pomocą odpowiednio sformatowanego pliku CSV.

Tworzenie nowego użytkownika:

44

Page 45: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Administrator może zakładać konta użytkowników, przydzielając im dostęp do jednego lub więcej wydziału. Rozróżniamy trzy typy uprawnień:

1. administrator (może edytować orzeczenia, może publikować orzeczenia, zarządzać użytkownikami)

2. osoba publikująca orzeczenia (może publikować orzeczenia)3. edytor orzeczeń (może edytować orzeczenia)

Administrator może również w dowolnym zakresie edytować konta użytkowników i usuwać konta.

Zakładka logi:

45

Page 46: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Zakładka Logi umożliwa śledzenie zdarzeń systemowych wg następujących kryteriów: Dokumenty

o Rodzaj aktywności Rozpoczęcie sprawdzania Rezygnacja ze sprawdzania Ponowne sprawdzenie Zakończenie sprawdzania Przesładnie do publikacji Wycofanie z publikacji Wycofanie zmian Utajnienie Odtajnienie Inna czynność

o Sygnatura Użytkownicy

o Rodzaj aktywności Dodanie Usunięcie Edycja Inna czynność

o Podmiot

Metryka orzeceznia:

46

Page 47: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Sprawdzanie anonimizacji:

Dostępne są trzy tryby wyświetlania:1. rozszerzony - wyświetla wyróżniony oryginalny tekst jak i zanonimizowany

2. zanonimizowany - wyświetla wyłącznie wyróżniony zanonimizowany tekst3. publiczny - wyświetla zanonimizowany tekst bez wyróżnienia

Użytkownik może w każdej chwili przerwać sprawdzanie/poprawianie anonimizacji, powracając do listy wyszukiwania, może anulować sprawdzanie, co spowoduje powrót dokumentu do wersji pierwotnej, może również zatwierdzić sprawdzanie. Zatwierdzony dokument może zostać opublikowany w Internecie.

Dodawanie anonimizacji

47

Page 48: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Aby zanonimizować tekst, użytkownik zaznacza fragment treści i, używając menu kontekstowego, decyduje, w jaki sposób powinien zostać zastąpiony zaznaczony tekst, jeżeli użyje opcji Utwórz wszystkie takie... wszystkie byty identyczne z zaznaczonym w całym dokumencie zostaną zastąpione na wybrane przez użytkownika zestawy znaków.

Usuwanie anonimizacji

Użytkownik może usunąć anonimizację, jeżeli uważa, że jest to konieczne, używając menu kontekstowego. Opcja Usuń anonimizację usunie tylko aktualnie zaznaczony element, Usuń wszystkie takie... spowoduje usunięcie wszystkich takich bytów z całego tekstu, natomiast Zamień wszystkie takie... wyświetli listę zamienników, na jakie w tym wypadku imię i nazwisko powinno zostać zamienione w całej treści orzeczenia.

6. Aplikacja webowa Panel do weryfikacji orzeczeń (Verifier)

48

Page 49: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Alikacja webowa umożliwia zalogowanie, administrację użytkownikami, wyświetlanie listy opublikowanych orzeczeń, filtrowanie i sortowanie listy, wyświetlanie treści orzeczenia, możliwość zgłaszania uwag (błędów, poprawek) do fragmentu tekstu orzeczenia i wysyłania ich na adres e-mail właściwego wydziału sądu. System wyróżnia dwa rodzaje użytkowników: administrator, użytkownik. Administrator posiada możliwość dodawania, edycji oraz usuwania użytkowników.Administrator może wygenerować nowych użytkowników za pomocą załadowania pliku CSV z odpowiednio sformatowaną zawartością. Administrator ma możliwość edycji adresu e-mail każdego wydziału publikującego orzeczenia poprzez filtr sądu i wydziału. Użytkownik widzi zakładki: szukanie, reguły anonimizacji (odpowiada tej same zakładce w panelu administracyjnym), wsparcie (odpowiada tej same zakładce w panelu administracyjnym), mój profil (wyświetla dane użytkownika, umożliwia zmianę hasła).Zakładka szukanie wyświetla domyślnie formularz wyszukiwania oraz listę orzeczeń do weryfikacji wraz z ilością stron orzeczenia. Lista zawiera wszystkie orzeczenia, które zostały opublikowane na Portalu Orzeczeń.Formularz wyszukiwania zawiera kryteria: sygnatura, status [zweryfikowany | niezweryfikowany | trwa weryfikacja], sąd (wszystkie dostępne sądy), wydział (o ile zostanie wybrany sąd, zawiera listę wydziałów). Lista wyników wyszukiwania zawiera link do treści orzeczenia złożony z sygnatury, sądu oraz daty orzeczenia, typ dokumentu, status (zweryfikowany, niezweryfikowany, trwa weryfikacja) oraz adnotację [dokument nie był jeszcze weryfikowany | zweryfikowany przez użytkownik]. Lista może być sortowana rosnąco i malejąco po sygnaturze, statusie oraz dacie publikacji orzeczenia. Lista przy każdej pozycji zawiera przycisk “Weryfikuj” dla orzeczeni niezweryfikowanych, “Weryfikuj ponownie” dla orzeczeń zweryfikowanych oraz “Kontynuuj weryfikację” dla orzeczeń w trakcie weryfikacji. Weryfikacja poprawności publikacji orzeczenia polega na wyświetleniu treści orzeczenia i możliwości

49

Page 50: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

zgłoszenia uwag do jego fragmentu. Zaznaczenie co najmniej jednego znaku w treści i użycie prawego przycisku mysz powoduje wyświetleniu menu kontekstowego z elementem “Zgłoś uwagę”, po użyciu którego wyświetlone zostaje okno z formularzem. Zaznaczony fragment zostaje zacytowany, poniżej znajduje się pole edycyjne do wprowadzenia uwag (pole obowiązkowe). Przycisk wyślij powoduje przesłanie zacytowanego fragmentu wraz z uwagami sprawdzającego na adres e-mail wydziału sądu, który opublikował dane orzeczenie. Wiadomość zawiera także dane podstawowe orzeczenia - sygnaturę, wydział, sąd, data wydania. Istnieje możliwość edycji szablonu wiadomości e-mail z uwagami. Weryfikację można zakończyć przy użyciu przycisku “Zatwierdź”, co powoduje zmianę statusu orzeczenia na zweryfikowane. Można również przerwać weryfikację używając przycisku “Powrót”, co spowoduje zmianę statusu orzeczenia na “trwa weryfikacja”. Jednoczesna weryfikacja jednego orzeczenia przez dwóch różnych użytkowników nie jest możliwa. Połączenie z przeglądarką użytkownika jest szyfrowane.

7. API – interfejs pobierania danychAPI umożliwienia udostępnianie opublikowanych orzeczeń wraz z uzasadnieniami na żądanie użytkownika. API oparte jest na wzorcu architektury programowania REST i opiera się na wymianie informacji za pomocą protokołu HTTP. Treść orzeczeń udostępniania jest w formacie XML.

8. Importer8.1 WstępZadaniem oprogramowania służącego do importu danych do Portalu Orzeczeń jest pobieranie dokumentów orzeczeń sądów powszechnych wraz z metadanymi z sądu do infrastruktury centralnej. Pobierane mają być wyłącznie orzeczenia wskazane przez pracownika sądu do publikacji. Dane te są w kolejnych etapach przetwarzane i prezentowane w panelu administracyjnym. Z uwagi na wykorzystywanie różnych systemów repertoryjno-biurowych w sądach (SAWA, Sędzia2, Praetor) istnieją trzy różne importery danych.

8.2 Źródło danychŹródłem pobieranych danych są bazy MS SQL programów repertoryjno-biurowych SAWA, Sędzia2 oraz Praetor zainstalowane w sądach. Metadane orzeczeń pobierane są z tych samych baz i dotyczą samej sprawy (sąd, wydział, sygnatura, itp.), stron w sprawie, przedmiotu sprawy, składu sędziowskiego, protokolanta, orzeczeń powiązanych ze sprawą i ich dat prawomocności.

8.3 Format danych wyjściowychProgram importujący dane zapisuje metadane orzeczeń w pliku xml, natomiast treści orzeczeń w formacie, w jakim zapisane są w bazie. Mogą to być pliki w formacie doc, docx, odt lub rtf, dodatkowo dokumenty w formacie doc mogą być przechowywane w bazie w formie skompresowanego archiwum zip. Moduł zapisujący decyduje na podstawie nagłówka pliku o tym, w jakim formacie ma zostać zapisany. W sytuacji, gdy niemożliwym jest określenie formatu pliku, jest on zapisywany w pliku z rozszerzeniem unknown. Nazewnictwo plików:

● metadane orzeczenia:przykład: 155020000001003_II_Ca_000136_2013

● dokument orzeczenia:przykład: 155020000001003_II_Ca_000136_2013_Uz_2013-04-09_001

50

Page 51: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Znaczenie kolejnych członów oddzielonych znakiem '_' jest następujące:● '155020000001003' - wyróżnik sądu wraz z wyróżnikiem wydziału utworzony zgodnie z

instrukcją Krajowego Koordynatora do spraw koordynacji wdrożeń systemów informatycznych w sądach powszechnych dotyczącą generowania wyróżników wydziałów sądowych

● -'II' - numer wydziału● 'Ca' - repertorium● '000136' - numer sprawy (w danym roku) z danego repertorium (zapisywany zawsze na 6

pozycjach z zerami wiodącymi)● '2013' - rok sprawy● 'Uz' - typ dokumentu (tutaj uzasadnienie – typ domyślny)● '2013-04-09' - data wydania orzeczenia● '001' - numer dokumentu (zapisywany zawsze na 3 pozycjach z zerami wiodącymi) z danego dnia

dla danej sprawy (wymagany dla sytuacji, gdy jednego dnia wydane zostaje więcej niż 1 orzeczenia w sprawie)

Struktura pliku metadanych orzeczenia:<?xml version="1.0" encoding="utf-8"?><xCase>

<xCaseID>119280</xCaseID><xCourt>Sąd Okręgowy w Świdnicy</xCourt><xCourtID>155020000000000</xCourtID><xDepartment>II Wydział Cywilny Odwoławczy</xDepartment><xDepartmentID>155020000001003</xDepartmentID><xSignature xNmbr="6" xDepartment="II" xRepertory="Ca" xYear="2013" xOthers="" /><xDateOfReceipt>2013-05-07T00:00:00</xDateOfReceipt><xSubject>o uzgodnienie treści KW</xSubject><xParties>

<xIndividuals><xIndividual>

<xIndividualID>295187</xIndividualID><xAddresses>

<xAddress><xType>Zamieszkania</xType><xStreet>ul. Długa</xStreet><xHouseNmbr>4</xHouseNmbr><xFlatNmbr>1</xFlatNmbr><xTown>Wałbrzych</xTown><xZipCode>22-133</xZipCode><xCountry>Polska</xCountry>

</xAddress><xAddress>

<xType>Korespondencyjny</xType><xStreet>ul. Szeroka</xStreet><xHouseNmbr>1</xHouseNmbr><xFlatNmbr>7</xFlatNmbr><xTown>Poznań</xTown><xZipCode>05-355</xZipCode><xCountry>Polska</xCountry>

</xAddress></xAddresses>

51

Page 52: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

<xGivenName>Ewa</xGivenName><xFamilyName>Nowak</xFamilyName><xRole>Powód</xRole></xIndividual>

</xIndividuals><xOrganizations>

<xOrganization><xOrganizationID>295188</xOrganizationID><xAddresses><xAddress>

<xType>Korespondencyjny</xType><xStreet>ul. Krótka</xStreet><xHouseNmbr>6</xHouseNmbr><xFlatNmbr>8</xFlatNmbr><xTown>Wiązów</xTown><xZipCode>00-117</xZipCode><xCountry>Polska</xCountry>

</xAddress></xAddresses><xName>PZU w Warszawie</xName><xRole>Pozwany</xRole>

</xOrganization></xOrganizations>

</xParties><xReason>

<xJury><xJudge>Andrzej Mazur</xJudge><xJudge>Jerzy Kowalczyk</xJudge>

</xJury><xClerks>

<xClerk>Marcin Domagalik</xClerk></xClerks>

</xReason><xBecomeFinal>

<xBecomesFinal><xFileName>155020000001003_II_Ca_000136_2013_Uz_2013-04-09_001</xFileName><xDate>2013-04-09T00:00:00</xDate>

</xBecomesFinal><xBecomesFinal>

<xFileName>155020000001003_II_Ca_000136_2013_Uz_2013-04-19_001</xFileName><xDate>2013-04-09T00:00:00</xDate>

</xBecomesFinal></xBecomeFinal>

</xCase>

Opis struktury znaczników pliku metadanych orzeczenia:xCase – element główny sprawyxCaseID – identyfikator sprawy w baziexCourt – nazwa sądu (pobierana z lokalnej konfiguracji importu)xCourtID – identyfikator sądu (pobierany z lokalnej konfiguracji importu)xDepartment – nazwa wydziału (pobierana z lokalnej konfiguracji importu)xDepartmentID – identyfikator wydziału (psobierany z lokalnej konfiguracji importu)xSignature – sygnatura sprawy, w poszczególnych atrybutach są jej części:

52

Page 53: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

xNmbr – numer sprawyxDepartment – numer wydziału, z którego pochodzi sprawaxRepertory – kod repertorium, z którego pochodzi sprawaxYear – rok sprawyxOthers – atrybut dodatkowy (obecnie nieużywany)xDateOfReceipt – data wpływu sprawyxSubject – przedmiot sprawyxParties – strony w sprawiexIndividuals (wewnątrz 'xParties', zawiera listę elementów 'xIndividual') – osoby będące stronami w sprawiexIndividual – osoba będąca stroną w sprawie. Podelementy:xIndividualID – identyfikator osoby w bazie (jako podmiotu w sprawie)xAddresses – adresy tej osoby (korespondencyjny, zamieszkania)xGivenName – imię osobyxFamilyName – nazwisko osobyxRole – rola w sprawiexOrganizations (wewnątrz 'xParties', zawiera listę elementów 'xOrganization') – organizacje będące stronami w sprawiexOrganization – organizacja będąca stroną w sprawie. Podelementy:xOrganizationID – identyfikator organizacji w bazie (jako podmiotu w sprawie)xAddresses – adresy tej organizacjixName – nazwa organizacjixRole – rola w sprawiexAddresses (zawiera listę elementów 'xAddress') – adresy podmiotu w sprawiexAddress – adres podmiotu w sprawie. Podelementy:xType – typ adresuxStreet – ulicaxHouseNmbr – numer domuxFlatNmbr – numer lokaluxTown – miejscowośćxZipCode – kod pocztowyxCountry – krajxReason – przechowuje dane sędziów i protokolantówxJury (wewnątrz 'xReason', zawiera listę elementów 'xJudge') – sędziowie w sprawiexJudge – sędzia w sprawiexClerks (wewnątrz 'xReason', zawiera listę elementów 'xClerk') – protokolanci w sprawiexClerk – protokolant w sprawiexBecomeFinal (zawiera listę elementów 'xBecomesFinal') – daty prawomocności orzeczeńxBecomesFinal – przechowuje datę prawomocności jednego orzeczenia. Podelementy:xFilename – nazwa pliku orzeczenia, które ma datę prawomocnościxDate – data prawomocności orzeczenia

Elementy obowiązkowe metryki sprawy

53

Page 54: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Elementy, które muszą znaleźć się w metryce, żeby sprawa została przetworzona po pobraniu, to: 'xCase', 'xCaseID', 'xCourt', 'xCourtID', 'xDepartment', 'xDepartmentID', 'xSignature' i wszystkie jego atrybuty oprócz 'xOthers' oraz xDateOfReceipt.

8.4 Opis działania programu importującegoProgram importujący jest aplikacją działająca w środowisku telefinormatycznym danego sądu i składa się z usługi uruchomionej w tle oraz właściwego programu importującego. Usługa odpowiada za kontrolę uruchamiania procesu importu oraz jego aktualizacje. W tym celu odpytuje w określonym interwale serwer w celu pobrania aktualnego pliku konfiguracji zdalnej. W sytuacji, gdy pojawi się nowa wersja programu importującego, usługa dokonuje aktualizacji. Właściwy program importujący korzysta ze wskazanego w konfiguracji lokalnej katalogu tymczasowego, gdzie składuje pobierane dane oraz ich stan. Po zakończeniu procesu zbierania danych z serwera bazodanowego oraz porównywania ich stanu ze stanem z poprzedniego importu, tworzona jest paczka skompresowanego archiwum zip i przesyłana do serwera centralnego za pośrednictwem protokołu SFTP (rozszerzenie protokołu SSH-2). Zarówno usługa jak i program importujący generują odpowiednio logi z wykonywanych operacji. Program umożliwia import przyrostowy, tzn., że pobierane są wyłącznie dane nowe lub zmienione od czasu poprzedniego importu oraz pełny, podczas którego pobierane wszystkie dane zaznaczone do importu niezależnie od tego, czy były już wcześniej pobrane. Tryb przyrostowy jest domyślny, tryb pełnego importu używany jest, gdy nowa wersja importera wprowadza zmiany, które wymagają ponownego pobrania wszystkich danych.

8.5 Konfiguracje programu importującegoKonfiguracja działania programu importującego składa się z dwóch części – konfiguracji lokalnej (modyfikowanej przez dany sąd) oraz konfiguracji zdalnej zarządzanej z infrastruktury centralnej.

Plik lokalnej konfiguracji będący częścią importera zainstalowanego w sądzie określa m.in. takie parametry jak: identyfikator sądu i wydziałów, informacje niezbędne do połączenia z serwerem MS SQL (autoryzacja zintegrowana z systemem operacyjnym lub oparta na loginie i haśle), ścieżka do pliku zdalnej konfiguracji, katalog roboczy oraz lista wydziałów sądu, które znajdują się w danej lokalizacji. Importer przewiduje istnienie wielu lokalizacji baz danych dla jednego sądu.

W pliku konfiguracji zdalnej dla każdego sądu istnieć musi odpowiednia sekcja dotycząca ustawień importu. Określa on parametry połączenia SCP do serwera w infrastrukturze centralnej, na który mają być przesyłane dane, typ programu repertoryjno-biurowego oraz lista wydziałów, dla których chcemy określić dodatkowe parametry importu. Konfiguracja zawiera również harmonogram uruchomienia programu importującego.

B. Oprogramowanie Licencjonowane9Moduł do automatycznej anonimizacji9.1 Zadania modułu anonimizującegoAnonimizacja jest to proces przetwarzania treści w taki sposób, aby uniemożliwić rozpoznanie opisanych faktów, podmiotów lub okoliczności. Ma on na celu zapewnienie przestrzegania obowiązujących norm prawnych gwarantujących ochronę określonych dóbr i wartości w upublicznianych dokumentach.

54

Page 55: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Zadaniem modułu anonimizującego jest automatyczne usunięcie z orzeczenia wszelkich danych, które mogą umożliwić identyfikację występujących w dokumencie osób fizycznych. Proces ten musi być na tyle dokładny, by zanonimizowany dokument w jak największym stopniu zachował swoją czytelność i nie stracił żadnych treści natury ogólnej. Dokładny opis bytów i fraz wymagających usunięcia z tekstu zawarty został w Regułach anonimizacji.9.2 Reguły anonimizacji9.2.1 WprowadzenieAnonimizacja polega na wykonaniu jednej z czterech czynności:

I. Zamianie całej frazy na pojedynczy inicjał. Stosujemy ją przy anonimizacji miejscowości i nazw geograficznych oraz występujących samotnie w tekście imion lub nazwisk.

II. Zamiana całej frazy na pojedynczy inicjał, po którym następuje wielokropek „(...)”. Stosujemy ją w przypadku nazw urządzeń, pojazdów oraz handlowych nazw różnych substancji czy też innych produktów, w sytuacji gdy mają więcej niż 1 wyraz.

III. Zamianie całej frazy na parę inicjałów. Stosujemy ją jedynie w przypadku imioni nazwisk osób fizycznych.

IV. Zamianie pojedynczych wyrazów lub dłuższych ich ciągów na wielokropek „(...)”. Stosujemy ją w pozostałych przypadkach.

9.2.2 Anonimizowane treści orzeczeńW celu ułatwienia anonimizacji sporządzone zostały bardziej szczegółowe zasady, wg których należy ją przeprowadzać. W kolejnych podpunktach wymienione zostaną różne kategorie fraz (sformułowań) występujących w treści orzeczenia, wraz z informacją, jak należy z tymi frazami (pojęciami) postępować.

9.2.2.1 Dane osobowe osób fizycznych (zwłaszcza imion i nazwisk)Imiona i nazwiska osób fizycznych występujące w treści orzeczenia zamieniane są na inicjały. Stosowane są następujące reguły:

imię i nazwisko zamieniane są na inicjały np. Jan Kowalski anonimizowany jest do J. K.

jeżeli we frazie występuje więcej imion bądź nazwisk, brane są pod uwagę tylko pierwsze imię i ostatnie nazwisko np. Jan Marian Kowalski-Nowak anonimizowany jest do J. N.

jeżeli w tekście występuje więcej osób o tych samych inicjałach, w zanonimizowanej wersji pojawiają się liczby pomagające określić, której z nich dotyczy dany fragment. Przykładowo tekst Jan Kowalski oraz Jakub Konieczny założyli spółkę. Prezesem został Jan Kowalski. anonimizowany jest do J. K. (1) oraz J. K. (2) założyli spółkę. Prezesem został J. K. (1).

jeżeli w tekście występuje pojedyncze imię, bądź nazwisko, w zanonimizowanej wersji powinny pojawić się pojedyncze inicjały. Przykładowo tekst Jan oraz Tomasz poszli w odwiedziny do państwa Wróblewskich. anonizowany jest do J. oraz T. poszli w odwiedziny do państwa W.. Takich pojedynczych inicjałów nie numerujemy.

WYJĄTEK 1: Anonimizacji nie podlegają dane osobowe (imiona i nazwiska) osób fizycznych pełniących funkcje publiczne.WYJĄTEK 2: Anonimizacji nie są poddawani autorzy cytowanych książek, komentarzy, glos oraz artykułów naukowych.

55

Page 56: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

9.2.2.2 Nazwy miejscowościMiejscowości występujące w treści orzeczeń zamieniane są na pojedynczy inicjał. W przypadku, gdy nazwa miejscowości składa się z kilku wyrazów, tak jak np. Kąty Wrocławskie, w zanonimizowanej wersji pojawia się inicjał tylko pierwszego z nich.

WYŁĄCZENIE 1: Anonimizacji nie podlegają miasta opisujące siedzibę sądu, na przykład Sąd Apelacyjny we Wrocławiu nie podlega anonimizacji. WYJĄTEK 1: Anonimizacji nie podlegają miasta określające miejsce wydania nieanonimizowanej książki.

9.2.2.3 Nazwy geograficzne oraz administracyjnePrzymiotniki związane z nazwami geograficznymi zmieniane są na wielokropek „(...)”. W szczególności dotyczy to nazw:

województw, powiatów, gmin.

Rzeczownikowe nazwy geograficzne, pisane wielką literą, zamieniane są, tak jak miejscowości, na pojedynczy inicjał. Dotyczy to między innymi:

rzek, jezior, szczytów górskich, dzielnic miast.

Natomiast nazwy: dróg wraz z ich numerami (oraz innymi oznaczeniami) zamienia się na wielokropek „(...)”.

9.2.2.4 Adresy i numery lokalizacjiAdresy zamieniane są na wielokropek „(...)”. Pozostawiana jest tylko część informująca o tym, czego dotyczy dana fraza np.:

„ul.”, „plac”, „skwer”, „park” „rondo”.

9.2.2.5 Podmioty prowadzące działalność gospodarczą.W nazwach:

firm, spółek, spółdzielni lokali usługowych

występujących w treści orzeczenia, wszystkie nazwy własne oraz słowa mogące posłużyć do zidentyfikowania danej organizacji zamieniane są na wielokropek „(...)”. Pozostają jedynie określenia organizacyjno-prawne, takie jak:

typy spółek np. spółka z ograniczoną odpowiedzialnością, spółka jawna, spółka cywilna,

56

Page 57: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

typy przedsiębiorstwa, np. przedsiębiorstwo produkcyjno-handlowo-usługowe, skróty podmiotów, np.: s. a., sp. z o. o.

9.2.2.6 Organizacje społeczne, fundacje, stowarzyszenia, związki zawodowe oraz inne podmioty wykonujące zadania publiczne, zaś nie będące organami administracji publicznej.Nazwy tych podmiotów są anonimizowane w sposób analogiczny jak nazwy podmiotów prowadzących działalność gospodarczą (por. pkt 7.2.2.5).

WYJĄTKI: Nie anonimizujemy nazw organizacji ustalających różnego rodzaju normy, takich jak: American

National Standards Institute, Polski Komitet Normalizacyjny. Nie anonimizujemy nazw rodzajowych instytucji publicznych oraz zakładów

administracyjnych wykonujących zadania publiczne, takich jak: o Zakład Karny, o Zakład Opieki Zdrowotnej,o Szpital,o Biblioteka,

Przy jednoczesnej anonimizacji informacji uszczegóławiających owe podmioty, typu:

nr, nazwa, adres, miejsce świadczenia usług

Nie anonimizujemy nazwy organów samorządu zawodowego lub gospodarczego takich jak na przykład:

o Naczelna Izba Lekarska, o Krajowa Izba Biegłych Rewidentów, o Naczelna Rada Adwokacka, o Izba rzemieślnicza, Izba gospodarcza, Izba rolnicza, o Związek Rzemiosła Polskiego.

Nie anonimizujemy nazwy ogólnej instytucji naukowych, naukowo-badawczych, badawczo-rozwojowych o zasięgu krajowym lub międzynarodowym, np. Polska Akademia Nauk, Politechnika, Uniwersytet, Akademia Medyczna, Akademia Wychowania Fizycznego, Akademia Muzyczna, Akademia Sztuk Pięknych, itp

Przy jednoczesnej anonimizacji informacji uszczegóławiających, typu: instytut, zakład, katedra, wydział, rewir.

9.2.2.7 Kościoły i związki wyznanioweAnonimizujemy zarówno nazwy kościołów i związków wyznaniowych jak i informacje, pozwalające określić przynależność religijną konkretnych gmin wyznaniowych i parafii.

57

Page 58: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

9.2.2.8 Numery, symbole i identyfikatoryWszystkie identyfikatory, zarówno osób, organizacji, miejsc czy przedmiotów podczas anonimizacji powinny być zmieniane na wielokropek „(...)”. Dotyczy to w szczególności wszelkich rejestrów oraz zbiorów danych, np.:

numery PESEL, KRS, REGON, NIP, itd., numery ksiąg wieczystych, numery umów i faktur, numery licencji, numer paszportu, numer i seria dowodu osobistego (lub dowodu rejestracyjnego), numer

legitymacji, prawa jazdy, prawa wykonywania zawodu bądź innego dokumentu, numery rejestracyjne samochodów, numery VIN, numery fabryczne różnych produktów, numery silnika pojazdu, numery podwozia, numery

nadwozia, numery działek, numery szkół, przedszkoli i żłobków, numery telefonów i faksów, numer wpisu do ewidencji działalności gospodarczej, identyfikatory używane w internecie (z wyjątkiem tych, które przypominają normalne imiona i

nazwiska).

9.2.2.9 Nazwy urządzeń, pojazdów, nazwy różnych produktówW celu zwiększenia bezpieczeństwa procesu anonimizacji w Portalu orzeczeń anonimizacji poddawane są także nazwy urządzeń, pojazdów oraz innych produktów, przy czym nazwę jednowyrazową zamieniamy na inicjał, natomiast w przypadku nazw dłuższych do inicjału doklejamy wielokropek „(...)”.

9.2.2.10 Informacje chronione ustawowoAnonimizacji podlegają wszelkie informacje objęte prawną ochroną wyrażoną w konkretnej ustawie.

9.2.2.11 Pozostałe słowa i frazy wymagające anonimizacji7.2.2.11.1 Cyfry: Długie ciągi cyfr7.2.2.11.2 Treść haseł reklamowych i innych napisów.7.2.2.11.3 Nazwy: zespołów muzycznych, drużyn sportowych.

9.2.3 Nieanonimizowane treści orzeczeńAnonimizacji nie podlegają treści orzeczeń (frazy), które nie zawierają danych oraz informacji „niebezpiecznych”, czyli umożliwiających identyfikację podmiotu prawa. W szczególności są to treści orzeczenia związane z prawniczym charakterem orzeczeń, tzn. należą do kategorii języka prawnego (np. treść przepisów prawa) bądź języka prawniczego (argumentacja prawnicza, komentarz normy prawnej, wykładnia prawa czy doktryna prawa).

9.2.3.1 Terminologia prawna, prawnicza oraz odnosząca się do czynności kancelaryjnych administracji wymiaru sprawiedliwości.

58

Page 59: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Terminologia prawnicza obejmuje zarówno język prawny, jak i prawniczy oraz wszelkie pojęcia wynikające z instrukcji kancelaryjnej wymiaru sprawiedliwości. W praktyce stosowania owej terminologii można napotkać również sformułowania (frazy) dotyczące elektronicznych systemów wyszukiwania informacji prawniczej.

9.2.3.2 Oznaczenia czasu oraz odniesienia do określonych podmiotów bądź przedmiotów w czasie.Zasadą jest, że oznaczenia czasu czyli informacje o latach, miesiącach, dniach, godzinach, przedziałach czasowych pozostają nieanonimizowane.

WYJĄTEK: Informacje o dacie urodzenia konkretnej osoby fizycznej.

9.2.3.3 Organy władzy publicznej, zwłaszcza organy administracji publicznej (w tym nazwy urzędów) oraz wymiaru sprawiedliwości.

Nie anonimizujemy nazw organów lub urzędów, z zachowaniem następujących wyłączeńo Anonimizujemy informację o miejscu, w którym znajduje się ten urząd lub organ –

właściwość miejscową podmiotu.o Anonimizacji podlega również nazwa wewnętrznych jednostek organizacyjnych (tj.

wydziałów, komórek) organów i urzędów, np. Wydział Komunikacji Urzędu Miejskiego w Brzegu.

Nie anonimizujemy nazw organizacji międzynarodowych, których członkami są państwa (na przykład Światowa Organizacja Zdrowia, Międzynarodowy Fundusz Walutowy, UNESCO).

Nie anonimizujemy nazw państw Nie anonimizujemy nazw sądów (w sensie rodzajowym czy przedmiotowym - instancyjnym),

czyli nazw: sądy powszechne, sądy administracyjne, Sąd Rejonowy, Naczelny Sąd Administracyjny.

Nie anonimizujemy nazwy – Skarb Państwa. Nie anonimizujemy nazw organów władzy ustawodawczej czy wykonawczej.

9.2.3.4 Pozostałe nieanonimizowane treści orzeczeńTreści orzeczeń (frazy) wymienione w tym podpunkcie również nie są anonimizowane, ponieważ ich pozostawienie w tekście orzeczenia nie wpływa na możliwość zidentyfikowania podmiotu wskazanego w orzeczeniu, stąd nie stanowi to zagrożenia dla jego interesu prawnego. W ten sposób użytkownik Portalu orzeczeń może się zapoznać w szerszym stopniu z okolicznościami faktycznymi sprawy, co istotnie wpływa na możliwość zrozumienia sposobów stosowania i wykładni prawa przez wymiar sprawiedliwości.

Poniżej konkretne typy treści orzeczeń, które nie są anonimizowane. 1. Liczby porządkowe, liczby pewnych zdarzeń, osób, podmiotów, przedmiotów.2. Liczby z jednostkami.3. Kwota pieniężna.4. Choroby oraz rodzaje terapii.5. Nazwy związków chemicznych.6. Wykonywany (lub wyuczony) zawód, stanowisko służbowe oraz pełnione funkcje.

59

Page 60: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

9.3 Format przetwarzanych danych

Struktura pliku xml metryki orzeczenia<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"><xs:element name="xCase"><xs:complexType><xs:sequence><xs:element ref="xCaseID"/><xs:element ref="xCourt"/><xs:element ref="xCourtID"/><xs:element ref="xDepartment"/><xs:element ref="xDepartmentID"/><xs:element ref="xSignature"/><xs:element ref="xDateOfReceipt"/><xs:element minOccurs="0" ref="xSubject"/><xs:element minOccurs="0" ref="xParties"/><xs:element minOccurs="0" ref="xBecomeFinal"/><xs:element minOccurs="0" maxOccurs="unbounded" ref="xDocRef"/></xs:sequence></xs:complexType></xs:element><xs:element name="xCaseID" type="xs:token"/><xs:element name="xCourt" type="xs:string"/><xs:element name="xCourtID" type="xs:token"/><xs:element name="xDepartment" type="xs:string"/><xs:element name="xDepartmentID" type="xs:token"/><xs:element name="xSignature"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="xNmbr" use="required" type="xs:positiveInteger"/><xs:attribute name="xDepartment" use="required" type="xs:token"/><xs:attribute name="xRepertory" use="required" type="xs:token"/><xs:attribute name="xYear" use="required"><xs:simpleType><xs:restriction base="xs:positiveInteger"><xs:minInclusive value="1900"/><xs:maxInclusive value="2099"/></xs:restriction></xs:simpleType></xs:attribute></xs:extension></xs:simpleContent></xs:complexType></xs:element><xs:element name="xDateOfReceipt" type="xs:date"/><xs:element name="xSubject" type="xs:string"/><xs:element name="xParties"><xs:complexType><xs:sequence><xs:element minOccurs="0" ref="xIndividuals"/><xs:element minOccurs="0" ref="xOrganizations"/></xs:sequence>

60

Page 61: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

</xs:complexType></xs:element><xs:element name="xIndividuals"><xs:complexType><xs:sequence><xs:element minOccurs="0" maxOccurs="unbounded" ref="xIndividual"/></xs:sequence></xs:complexType></xs:element><xs:element name="xIndividual"><xs:complexType><xs:sequence><xs:element ref="xIndividualID"/><xs:element minOccurs="0" ref="xAddresses"/><xs:element minOccurs="0" ref="xGivenName"/><xs:element ref="xFamilyName"/><xs:element ref="xRole"/></xs:sequence></xs:complexType></xs:element><xs:element name="xOrganizations"><xs:complexType><xs:sequence><xs:element minOccurs="0" maxOccurs="unbounded" ref="xOrganization"/></xs:sequence></xs:complexType></xs:element><xs:element name="xOrganization"><xs:complexType><xs:sequence><xs:element ref="xOrganizationID"/><xs:element minOccurs="0" ref="xAddresses"/><xs:element ref="xName"/><xs:element ref="xRole"/></xs:sequence></xs:complexType></xs:element><xs:element name="xIndividualID" type="xs:token"/><xs:element name="xOrganizationID" type="xs:token"/><xs:element name="xAddresses"><xs:complexType><xs:sequence><xs:element minOccurs="0" maxOccurs="unbounded" ref="xAddress"/></xs:sequence></xs:complexType></xs:element><xs:element name="xAddress"><xs:complexType><xs:sequence><xs:element ref="xType"/><xs:element minOccurs="0" ref="xStreet"/><xs:element minOccurs="0" ref="xHouseNmbr"/><xs:element minOccurs="0" ref="xFlatNmbr"/><xs:element minOccurs="0" ref="xTown"/><xs:element minOccurs="0" ref="xZipCode"/>

61

Page 62: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

<xs:element minOccurs="0" ref="xCountry"/></xs:sequence></xs:complexType></xs:element><xs:element name="xType" type="xs:string"/><xs:element name="xStreet" type="xs:string"/><xs:element name="xHouseNmbr" type="xs:string"/><xs:element name="xFlatNmbr" type="xs:string"/><xs:element name="xTown" type="xs:string"/><xs:element name="xZipCode" type="xs:string"/><xs:element name="xCountry" type="xs:string"/><xs:element name="xGivenName" type="xs:string"/><xs:element name="xFamilyName" type="xs:string"/><xs:element name="xName" type="xs:string"/><xs:element name="xRole" type="xs:string"/><xs:element name="xBecomeFinal"><xs:complexType><xs:sequence><xs:element minOccurs="0" maxOccurs="unbounded" ref="xBecomesFinal"/></xs:sequence></xs:complexType></xs:element><xs:element name="xBecomesFinal"><xs:complexType><xs:sequence><xs:element ref="xFileName"/><xs:element ref="xDate"/></xs:sequence></xs:complexType></xs:element><xs:element name="xDocRef" abstract="true" type="xDocDescr"/><xs:element name="xDecision" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithJudgmentWithOther" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithJudgmentWithOtherWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithJudgmentWithOtherWithProtocolWithReason" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithJudgmentWithOtherWithReason" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithJudgmentWithOtherWithReasonWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithJudgmentWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithJudgmentWithProtocolWithOther" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithJudgmentWithProtocolWithOtherWithReason" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithJudgmentWithProtocolWithReason" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithJudgmentWithProtocolWithReasonWithOther" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithJudgmentWithReason" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithJudgmentWithReasonWithOther" substitutionGroup="xDocRef"/>

62

Page 63: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

<xs:element name="xDecisionWithJudgmentWithReasonWithOtherWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithJudgmentWithReasonWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithJudgmentWithReasonWithProtocolWithOther" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithOther" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithOtherWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithOtherWithJudgmentWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithOtherWithJudgmentWithProtocolWithReason" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithOtherWithJudgmentWithReason" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithOtherWithJudgmentWithReasonWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithOtherWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithOtherWithProtocolWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithOtherWithProtocolWithJudgmentWithReason" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithOtherWithProtocolWithReason" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithOtherWithProtocolWithReasonWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithOtherWithReason" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithOtherWithReasonWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithOtherWithReasonWithJudgmentWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithOtherWithReasonWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithOtherWithReasonWithProtocolWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithProtocolWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithProtocolWithJudgmentWithOther" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithProtocolWithJudgmentWithOtherWithReason" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithProtocolWithJudgmentWithReason" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithProtocolWithJudgmentWithReasonWithOther" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithProtocolWithOther" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithProtocolWithOtherWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithProtocolWithOtherWithJudgmentWithReason" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithProtocolWithOtherWithReason" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithProtocolWithOtherWithReasonWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithProtocolWithReason" substitutionGroup="xDocRef"/>

63

Page 64: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

<xs:element name="xDecisionWithProtocolWithReasonWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithProtocolWithReasonWithJudgmentWithOther" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithProtocolWithReasonWithOther" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithProtocolWithReasonWithOtherWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithReason" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithReasonWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithReasonWithJudgmentWithOther" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithReasonWithJudgmentWithOtherWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithReasonWithJudgmentWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithReasonWithJudgmentWithProtocolWithOther" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithReasonWithOther" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithReasonWithOtherWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithReasonWithOtherWithJudgmentWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithReasonWithOtherWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithReasonWithOtherWithProtocolWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithReasonWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithReasonWithProtocolWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithReasonWithProtocolWithJudgmentWithOther" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithReasonWithProtocolWithOther" substitutionGroup="xDocRef"/><xs:element name="xDecisionWithReasonWithProtocolWithOtherWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xJudgment" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithDecision" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithDecisionWithOther" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithDecisionWithOtherWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithDecisionWithOtherWithProtocolWithReason" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithDecisionWithOtherWithReason" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithDecisionWithOtherWithReasonWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithDecisionWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithDecisionWithProtocolWithOther" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithDecisionWithProtocolWithOtherWithReason" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithDecisionWithProtocolWithReason" substitutionGroup="xDocRef"/>

64

Page 65: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

<xs:element name="xJudgmentWithDecisionWithProtocolWithReasonWithOther" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithDecisionWithReason" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithDecisionWithReasonWithOther" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithDecisionWithReasonWithOtherWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithDecisionWithReasonWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithDecisionWithReasonWithProtocolWithOther" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithOther" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithOtherWithDecision" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithOtherWithDecisionWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithOtherWithDecisionWithProtocolWithReason" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithOtherWithDecisionWithReason" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithOtherWithDecisionWithReasonWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithOtherWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithOtherWithProtocolWithDecision" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithOtherWithProtocolWithDecisionWithReason" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithOtherWithProtocolWithReason" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithOtherWithProtocolWithReasonWithDecision" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithOtherWithReason" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithOtherWithReasonWithDecision" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithOtherWithReasonWithDecisionWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithOtherWithReasonWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithOtherWithReasonWithProtocolWithDecision" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithProtocolWithDecision" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithProtocolWithDecisionWithOther" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithProtocolWithDecisionWithOtherWithReason" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithProtocolWithDecisionWithReason" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithProtocolWithDecisionWithReasonWithOther" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithProtocolWithOther" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithProtocolWithOtherWithDecision" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithProtocolWithOtherWithDecisionWithReason" substitutionGroup="xDocRef"/>

65

Page 66: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

<xs:element name="xJudgmentWithProtocolWithOtherWithReason" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithProtocolWithOtherWithReasonWithDecision" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithProtocolWithReason" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithProtocolWithReasonWithDecision" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithProtocolWithReasonWithDecisionWithOther" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithProtocolWithReasonWithOther" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithProtocolWithReasonWithOtherWithDecision" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithReason" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithReasonWithDecision" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithReasonWithDecisionWithOther" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithReasonWithDecisionWithOtherWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithReasonWithDecisionWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithReasonWithDecisionWithProtocolWithOther" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithReasonWithOther" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithReasonWithOtherWithDecision" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithReasonWithOtherWithDecisionWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithReasonWithOtherWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithReasonWithOtherWithProtocolWithDecision" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithReasonWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithReasonWithProtocolWithDecision" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithReasonWithProtocolWithDecisionWithOther" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithReasonWithProtocolWithOther" substitutionGroup="xDocRef"/><xs:element name="xJudgmentWithReasonWithProtocolWithOtherWithDecision" substitutionGroup="xDocRef"/><xs:element name="xOther" substitutionGroup="xDocRef"/><xs:element name="xOtherWithDecision" substitutionGroup="xDocRef"/><xs:element name="xOtherWithDecisionWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xOtherWithDecisionWithJudgmentWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xOtherWithDecisionWithJudgmentWithProtocolWithReason" substitutionGroup="xDocRef"/><xs:element name="xOtherWithDecisionWithJudgmentWithReason" substitutionGroup="xDocRef"/><xs:element name="xOtherWithDecisionWithJudgmentWithReasonWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xOtherWithDecisionWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xOtherWithDecisionWithProtocolWithJudgment" substitutionGroup="xDocRef"/>

66

Page 67: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

<xs:element name="xOtherWithDecisionWithProtocolWithJudgmentWithReason" substitutionGroup="xDocRef"/><xs:element name="xOtherWithDecisionWithProtocolWithReason" substitutionGroup="xDocRef"/><xs:element name="xOtherWithDecisionWithProtocolWithReasonWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xOtherWithDecisionWithReason" substitutionGroup="xDocRef"/><xs:element name="xOtherWithDecisionWithReasonWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xOtherWithDecisionWithReasonWithJudgmentWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xOtherWithDecisionWithReasonWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xOtherWithDecisionWithReasonWithProtocolWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xOtherWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xOtherWithJudgmentWithDecision" substitutionGroup="xDocRef"/><xs:element name="xOtherWithJudgmentWithDecisionWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xOtherWithJudgmentWithDecisionWithProtocolWithReason" substitutionGroup="xDocRef"/><xs:element name="xOtherWithJudgmentWithDecisionWithReason" substitutionGroup="xDocRef"/><xs:element name="xOtherWithJudgmentWithDecisionWithReasonWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xOtherWithJudgmentWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xOtherWithJudgmentWithProtocolWithDecision" substitutionGroup="xDocRef"/><xs:element name="xOtherWithJudgmentWithProtocolWithDecisionWithReason" substitutionGroup="xDocRef"/><xs:element name="xOtherWithJudgmentWithProtocolWithReason" substitutionGroup="xDocRef"/><xs:element name="xOtherWithJudgmentWithProtocolWithReasonWithDecision" substitutionGroup="xDocRef"/><xs:element name="xOtherWithJudgmentWithReason" substitutionGroup="xDocRef"/><xs:element name="xOtherWithJudgmentWithReasonWithDecision" substitutionGroup="xDocRef"/><xs:element name="xOtherWithJudgmentWithReasonWithDecisionWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xOtherWithJudgmentWithReasonWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xOtherWithJudgmentWithReasonWithProtocolWithDecision" substitutionGroup="xDocRef"/><xs:element name="xOtherWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xOtherWithProtocolWithDecision" substitutionGroup="xDocRef"/><xs:element name="xOtherWithProtocolWithDecisionWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xOtherWithProtocolWithDecisionWithJudgmentWithReason" substitutionGroup="xDocRef"/><xs:element name="xOtherWithProtocolWithDecisionWithReason" substitutionGroup="xDocRef"/><xs:element name="xOtherWithProtocolWithDecisionWithReasonWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xOtherWithProtocolWithJudgment" substitutionGroup="xDocRef"/>

67

Page 68: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

<xs:element name="xOtherWithProtocolWithJudgmentWithDecision" substitutionGroup="xDocRef"/><xs:element name="xOtherWithProtocolWithJudgmentWithDecisionWithReason" substitutionGroup="xDocRef"/><xs:element name="xOtherWithProtocolWithJudgmentWithReason" substitutionGroup="xDocRef"/><xs:element name="xOtherWithProtocolWithJudgmentWithReasonWithDecision" substitutionGroup="xDocRef"/><xs:element name="xOtherWithProtocolWithReason" substitutionGroup="xDocRef"/><xs:element name="xOtherWithProtocolWithReasonWithDecision" substitutionGroup="xDocRef"/><xs:element name="xOtherWithProtocolWithReasonWithDecisionWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xOtherWithProtocolWithReasonWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xOtherWithProtocolWithReasonWithJudgmentWithDecision" substitutionGroup="xDocRef"/><xs:element name="xOtherWithReason" substitutionGroup="xDocRef"/><xs:element name="xOtherWithReasonWithDecision" substitutionGroup="xDocRef"/><xs:element name="xOtherWithReasonWithDecisionWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xOtherWithReasonWithDecisionWithJudgmentWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xOtherWithReasonWithDecisionWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xOtherWithReasonWithDecisionWithProtocolWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xOtherWithReasonWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xOtherWithReasonWithJudgmentWithDecision" substitutionGroup="xDocRef"/><xs:element name="xOtherWithReasonWithJudgmentWithDecisionWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xOtherWithReasonWithJudgmentWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xOtherWithReasonWithJudgmentWithProtocolWithDecision" substitutionGroup="xDocRef"/><xs:element name="xOtherWithReasonWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xOtherWithReasonWithProtocolWithDecision" substitutionGroup="xDocRef"/><xs:element name="xOtherWithReasonWithProtocolWithDecisionWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xOtherWithReasonWithProtocolWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xOtherWithReasonWithProtocolWithJudgmentWithDecision" substitutionGroup="xDocRef"/><xs:element name="xProtocol" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithDecision" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithDecisionWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithDecisionWithJudgmentWithOther" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithDecisionWithJudgmentWithOtherWithReason" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithDecisionWithJudgmentWithReason" substitutionGroup="xDocRef"/>

68

Page 69: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

<xs:element name="xProtocolWithDecisionWithJudgmentWithReasonWithOther" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithDecisionWithOther" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithDecisionWithOtherWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithDecisionWithOtherWithJudgmentWithReason" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithDecisionWithOtherWithReason" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithDecisionWithOtherWithReasonWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithDecisionWithReason" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithDecisionWithReasonWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithDecisionWithReasonWithJudgmentWithOther" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithDecisionWithReasonWithOther" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithDecisionWithReasonWithOtherWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithJudgmentWithDecision" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithJudgmentWithDecisionWithOther" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithJudgmentWithDecisionWithOtherWithReason" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithJudgmentWithDecisionWithReason" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithJudgmentWithDecisionWithReasonWithOther" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithJudgmentWithOther" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithJudgmentWithOtherWithDecision" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithJudgmentWithOtherWithDecisionWithReason" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithJudgmentWithOtherWithReason" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithJudgmentWithOtherWithReasonWithDecision" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithJudgmentWithReason" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithJudgmentWithReasonWithDecision" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithJudgmentWithReasonWithDecisionWithOther" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithJudgmentWithReasonWithOther" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithJudgmentWithReasonWithOtherWithDecision" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithOther" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithOtherWithDecision" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithOtherWithDecisionWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithOtherWithDecisionWithJudgmentWithReason" substitutionGroup="xDocRef"/>

69

Page 70: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

<xs:element name="xProtocolWithOtherWithDecisionWithReason" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithOtherWithDecisionWithReasonWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithOtherWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithOtherWithJudgmentWithDecision" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithOtherWithJudgmentWithDecisionWithReason" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithOtherWithJudgmentWithReason" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithOtherWithJudgmentWithReasonWithDecision" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithOtherWithReason" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithOtherWithReasonWithDecision" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithOtherWithReasonWithDecisionWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithOtherWithReasonWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithOtherWithReasonWithJudgmentWithDecision" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithReason" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithReasonWithDecision" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithReasonWithDecisionWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithReasonWithDecisionWithJudgmentWithOther" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithReasonWithDecisionWithOther" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithReasonWithDecisionWithOtherWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithReasonWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithReasonWithJudgmentWithDecision" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithReasonWithJudgmentWithDecisionWithOther" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithReasonWithJudgmentWithOther" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithReasonWithJudgmentWithOtherWithDecision" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithReasonWithOther" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithReasonWithOtherWithDecision" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithReasonWithOtherWithDecisionWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithReasonWithOtherWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xProtocolWithReasonWithOtherWithJudgmentWithDecision" substitutionGroup="xDocRef"/><xs:element name="xReason" substitutionGroup="xDocRef"/><xs:element name="xReasonWithDecision" substitutionGroup="xDocRef"/><xs:element name="xReasonWithDecisionWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xReasonWithDecisionWithJudgmentWithOther" substitutionGroup="xDocRef"/>

70

Page 71: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

<xs:element name="xReasonWithDecisionWithJudgmentWithOtherWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xReasonWithDecisionWithJudgmentWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xReasonWithDecisionWithJudgmentWithProtocolWithOther" substitutionGroup="xDocRef"/><xs:element name="xReasonWithDecisionWithOther" substitutionGroup="xDocRef"/><xs:element name="xReasonWithDecisionWithOtherWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xReasonWithDecisionWithOtherWithJudgmentWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xReasonWithDecisionWithOtherWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xReasonWithDecisionWithOtherWithProtocolWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xReasonWithDecisionWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xReasonWithDecisionWithProtocolWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xReasonWithDecisionWithProtocolWithJudgmentWithOther" substitutionGroup="xDocRef"/><xs:element name="xReasonWithDecisionWithProtocolWithOther" substitutionGroup="xDocRef"/><xs:element name="xReasonWithDecisionWithProtocolWithOtherWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xReasonWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xReasonWithJudgmentWithDecision" substitutionGroup="xDocRef"/><xs:element name="xReasonWithJudgmentWithDecisionWithOther" substitutionGroup="xDocRef"/><xs:element name="xReasonWithJudgmentWithDecisionWithOtherWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xReasonWithJudgmentWithDecisionWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xReasonWithJudgmentWithDecisionWithProtocolWithOther" substitutionGroup="xDocRef"/><xs:element name="xReasonWithJudgmentWithOther" substitutionGroup="xDocRef"/><xs:element name="xReasonWithJudgmentWithOtherWithDecision" substitutionGroup="xDocRef"/><xs:element name="xReasonWithJudgmentWithOtherWithDecisionWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xReasonWithJudgmentWithOtherWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xReasonWithJudgmentWithOtherWithProtocolWithDecision" substitutionGroup="xDocRef"/><xs:element name="xReasonWithJudgmentWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xReasonWithJudgmentWithProtocolWithDecision" substitutionGroup="xDocRef"/><xs:element name="xReasonWithJudgmentWithProtocolWithDecisionWithOther" substitutionGroup="xDocRef"/><xs:element name="xReasonWithJudgmentWithProtocolWithOther" substitutionGroup="xDocRef"/><xs:element name="xReasonWithJudgmentWithProtocolWithOtherWithDecision" substitutionGroup="xDocRef"/><xs:element name="xReasonWithOther" substitutionGroup="xDocRef"/><xs:element name="xReasonWithOtherWithDecision" substitutionGroup="xDocRef"/>

71

Page 72: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

<xs:element name="xReasonWithOtherWithDecisionWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xReasonWithOtherWithDecisionWithJudgmentWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xReasonWithOtherWithDecisionWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xReasonWithOtherWithDecisionWithProtocolWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xReasonWithOtherWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xReasonWithOtherWithJudgmentWithDecision" substitutionGroup="xDocRef"/><xs:element name="xReasonWithOtherWithJudgmentWithDecisionWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xReasonWithOtherWithJudgmentWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xReasonWithOtherWithJudgmentWithProtocolWithDecision" substitutionGroup="xDocRef"/><xs:element name="xReasonWithOtherWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xReasonWithOtherWithProtocolWithDecision" substitutionGroup="xDocRef"/><xs:element name="xReasonWithOtherWithProtocolWithDecisionWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xReasonWithOtherWithProtocolWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xReasonWithOtherWithProtocolWithJudgmentWithDecision" substitutionGroup="xDocRef"/><xs:element name="xReasonWithProtocol" substitutionGroup="xDocRef"/><xs:element name="xReasonWithProtocolWithDecision" substitutionGroup="xDocRef"/><xs:element name="xReasonWithProtocolWithDecisionWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xReasonWithProtocolWithDecisionWithJudgmentWithOther" substitutionGroup="xDocRef"/><xs:element name="xReasonWithProtocolWithDecisionWithOther" substitutionGroup="xDocRef"/><xs:element name="xReasonWithProtocolWithDecisionWithOtherWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xReasonWithProtocolWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xReasonWithProtocolWithJudgmentWithDecision" substitutionGroup="xDocRef"/><xs:element name="xReasonWithProtocolWithJudgmentWithDecisionWithOther" substitutionGroup="xDocRef"/><xs:element name="xReasonWithProtocolWithJudgmentWithOther" substitutionGroup="xDocRef"/><xs:element name="xReasonWithProtocolWithJudgmentWithOtherWithDecision" substitutionGroup="xDocRef"/><xs:element name="xReasonWithProtocolWithOther" substitutionGroup="xDocRef"/><xs:element name="xReasonWithProtocolWithOtherWithDecision" substitutionGroup="xDocRef"/><xs:element name="xReasonWithProtocolWithOtherWithDecisionWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xReasonWithProtocolWithOtherWithJudgment" substitutionGroup="xDocRef"/><xs:element name="xReasonWithProtocolWithOtherWithJudgmentWithDecision" substitutionGroup="xDocRef"/><xs:complexType name="xDocDescr">

72

Page 73: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

<xs:sequence><xs:element ref="xFileName"/><xs:element minOccurs="0" ref="xJury"/><xs:element minOccurs="0" ref="xClerk"/><xs:element minOccurs="0" ref="xSubject"/><xs:element minOccurs="0" ref="xCitedProvisions"/><xs:element minOccurs="0" ref="xSettlement"/><xs:element minOccurs="0" ref="xDate"/></xs:sequence></xs:complexType><xs:element name="xFileName" type="xs:token"/><xs:element name="xJury"><xs:complexType><xs:sequence><xs:element minOccurs="0" ref="xPresidingJudge"/><xs:element minOccurs="0" maxOccurs="unbounded" ref="xJudge"/></xs:sequence></xs:complexType></xs:element><xs:element name="xPresidingJudge" type="xs:string"/><xs:element name="xJudge" type="xs:string"/><xs:element name="xClerk" type="xs:string"/><xs:element name="xCitedProvisions" type="xs:string"/><xs:element name="xSettlement" type="xs:string"/><xs:element name="xDate" type="xs:date"/></xs:schema>

Struktura pliku xml orzeczenia<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"><xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/><xs:element name="xPart"><xs:complexType><xs:sequence><xs:element ref="xName"/><xs:element ref="xBlock"/></xs:sequence><xs:attribute ref="xml:space"/><xs:attribute name="xEditor" type="xs:token"/><xs:attribute name="xPublisher" type="xs:token"/><xs:attribute name="xClassifier" type="xs:token"/><xs:attribute name="xEditorFullName" type="xs:string"/><xs:attribute name="xPublisherFullName" type="xs:string"/><xs:attribute name="xClassifierFullName" type="xs:string"/><xs:attribute name="xClassified" type="xs:boolean"/><xs:attribute name="xVersion" use="required" type="xs:token"/><xs:attribute name="xLang" use="required" type="xs:token"/><xs:attribute name="xFromPg" use="required" type="xs:positiveInteger"/><xs:attribute name="xToPage" use="required" type="xs:positiveInteger"/><xs:attribute name="xFlag" use="required"><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="crude|checking|checked|to_publish|published"/></xs:restriction></xs:simpleType>

73

Page 74: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

</xs:attribute><xs:attribute name="xVolType" use="required" type="xs:token"/><xs:attribute name="xYear" use="required"><xs:simpleType><xs:restriction base="xs:positiveInteger"><xs:minInclusive value="1900"/><xs:maxInclusive value="2099"/></xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="xVolNmbr" use="required"><xs:simpleType><xs:restriction base="xs:token"><xs:pattern value="\d{6}"/></xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="xDocType" use="required" type="xs:token"/></xs:complexType></xs:element><xs:element name="xName"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"><xs:attributeGroup ref="xNameTitleGroup"/></xs:extension></xs:simpleContent></xs:complexType></xs:element><xs:element name="xTitle"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"><xs:attributeGroup ref="xNameTitleGroup"/></xs:extension></xs:simpleContent></xs:complexType></xs:element><xs:attributeGroup name="xNameTitleGroup"><xs:attribute name="xPrfx" type="xs:string"/><xs:attribute name="xSffx" type="xs:string"/><xs:attributeGroup ref="xAligningAttrs"/><xs:attributeGroup ref="xFormattingAttrs"/><xs:attribute name="xBrkAfter" type="xs:boolean"/></xs:attributeGroup><xs:attributeGroup name="xPrfx"><xs:attribute name="xPrfx" use="required" type="xs:string"/></xs:attributeGroup><xs:attributeGroup name="xSffx"><xs:attribute name="xSffx" use="required" type="xs:string"/></xs:attributeGroup><xs:attributeGroup name="xAligningAttrs"><xs:attribute name="xALIGNx"><xs:simpleType><xs:restriction base="xs:token">

74

Page 75: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

<xs:pattern value="left|center|right"/></xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="xVALIGNx"><xs:simpleType><xs:restriction base="xs:token"><xs:pattern value="top|middle|bottom"/></xs:restriction></xs:simpleType></xs:attribute></xs:attributeGroup><xs:attributeGroup name="xALIGNx"><xs:attribute name="xALIGNx" use="required"><xs:simpleType><xs:restriction base="xs:token"><xs:pattern value="left|center|right"/></xs:restriction></xs:simpleType></xs:attribute></xs:attributeGroup><xs:attributeGroup name="xVALIGNx"><xs:attribute name="xVALIGNx" use="required"><xs:simpleType><xs:restriction base="xs:token"><xs:pattern value="top|middle|bottom"/></xs:restriction></xs:simpleType></xs:attribute></xs:attributeGroup><xs:attributeGroup name="xFormattingAttrs"><xs:attribute name="xBold" type="xs:boolean"/><xs:attribute name="xItalic" type="xs:boolean"/><xs:attribute name="xUnderln" type="xs:boolean"/></xs:attributeGroup><xs:attributeGroup name="xBold"><xs:attribute name="xBold" use="required" type="xs:boolean"/></xs:attributeGroup><xs:attributeGroup name="xItalic"><xs:attribute name="xItalic" use="required" type="xs:boolean"/></xs:attributeGroup><xs:attributeGroup name="xUnderln"><xs:attribute name="xUnderln" use="required" type="xs:boolean"/></xs:attributeGroup><xs:attributeGroup name="xBrkAfter"><xs:attribute name="xBrkAfter" use="required" type="xs:boolean"/></xs:attributeGroup><xs:element name="xBlock"><xs:complexType><xs:group minOccurs="0" maxOccurs="unbounded" ref="xTextClassGroup"/></xs:complexType></xs:element><xs:group name="xTextClassGroup"><xs:choice><xs:element ref="xText"/>

75

Page 76: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

<xs:element ref="xRows"/><xs:element ref="xEnum"/><xs:element ref="xUnit"/></xs:choice></xs:group><xs:element name="xText"><xs:complexType mixed="true"><xs:sequence><xs:element minOccurs="0" maxOccurs="unbounded" ref="xTextGroup"/></xs:sequence><xs:attributeGroup ref="xAligningAttrs"/></xs:complexType></xs:element><xs:element name="xTextGroup" abstract="true"/><xs:element name="xTextFormatGroup" abstract="true" substitutionGroup="xTextGroup"/><xs:element name="xTextContentGroup" abstract="true" substitutionGroup="xTextGroup"/><xs:element name="xBx" substitutionGroup="xTextFormatGroup"><xs:complexType mixed="true"><xs:group minOccurs="0" maxOccurs="unbounded" ref="xBxGroup"/></xs:complexType></xs:element><xs:group name="xBxGroup"><xs:choice><xs:element ref="xIx"/><xs:element ref="xUx"/><xs:element ref="xSPANx"/><xs:element ref="xSUBx"/><xs:element ref="xSUPx"/><xs:element ref="xTextContentGroup"/></xs:choice></xs:group><xs:element name="xIx" substitutionGroup="xTextFormatGroup"><xs:complexType mixed="true"><xs:group minOccurs="0" maxOccurs="unbounded" ref="xIxGroup"/></xs:complexType></xs:element><xs:group name="xIxGroup"><xs:choice><xs:element ref="xBx"/><xs:element ref="xUx"/><xs:element ref="xSPANx"/><xs:element ref="xSUBx"/><xs:element ref="xSUPx"/><xs:element ref="xTextContentGroup"/></xs:choice></xs:group><xs:element name="xUx" substitutionGroup="xTextFormatGroup"><xs:complexType mixed="true"><xs:group minOccurs="0" maxOccurs="unbounded" ref="xUxGroup"/></xs:complexType></xs:element><xs:group name="xUxGroup"><xs:choice><xs:element ref="xBx"/><xs:element ref="xIx"/>

76

Page 77: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

<xs:element ref="xSPANx"/><xs:element ref="xSUBx"/><xs:element ref="xSUPx"/><xs:element ref="xTextContentGroup"/></xs:choice></xs:group><xs:element name="xSPANx" substitutionGroup="xTextFormatGroup"><xs:complexType mixed="true"><xs:group minOccurs="0" maxOccurs="unbounded" ref="xSPANxGroup"/></xs:complexType></xs:element><xs:group name="xSPANxGroup"><xs:choice><xs:element ref="xBx"/><xs:element ref="xIx"/><xs:element ref="xUx"/><xs:element ref="xSUBx"/><xs:element ref="xSUPx"/><xs:element ref="xTextContentGroup"/></xs:choice></xs:group><xs:element name="xSUBx" substitutionGroup="xTextFormatGroup"><xs:complexType mixed="true"><xs:group minOccurs="0" maxOccurs="unbounded" ref="xSUBxGroup"/></xs:complexType></xs:element><xs:group name="xSUBxGroup"><xs:choice><xs:element ref="xBx"/><xs:element ref="xIx"/><xs:element ref="xUx"/><xs:element ref="xSPANx"/><xs:element ref="xSUPx"/><xs:element ref="xTextContentGroup"/></xs:choice></xs:group><xs:element name="xSUPx" substitutionGroup="xTextFormatGroup"><xs:complexType mixed="true"><xs:group minOccurs="0" maxOccurs="unbounded" ref="xSUPxGroup"/></xs:complexType></xs:element><xs:group name="xSUPxGroup"><xs:choice><xs:element ref="xBx"/><xs:element ref="xIx"/><xs:element ref="xUx"/><xs:element ref="xSPANx"/><xs:element ref="xSUBx"/><xs:element ref="xTextContentGroup"/></xs:choice></xs:group><xs:element name="xBRx" substitutionGroup="xTextContentGroup"><xs:complexType/></xs:element><xs:element name="xHRx" substitutionGroup="xTextContentGroup">

77

Page 78: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

<xs:complexType/></xs:element><xs:element name="xLexLink" substitutionGroup="xTextContentGroup"><xs:complexType mixed="true"><xs:sequence><xs:element minOccurs="0" maxOccurs="unbounded" ref="xTextFormatGroup"/></xs:sequence><xs:attribute name="xArt" type="xs:string"/><xs:attribute name="xIsapId" type="xs:token"/><xs:attribute name="xTitle" type="xs:string"/><xs:attribute name="xAddress" type="xs:string"/></xs:complexType></xs:element><xs:element name="xAnon" substitutionGroup="xTextContentGroup"><xs:complexType mixed="true"><xs:sequence><xs:element minOccurs="0" maxOccurs="unbounded" ref="xTextFormatGroup"/></xs:sequence><xs:attribute name="xSubst" type="xs:string"/></xs:complexType></xs:element><xs:element name="xRows"><xs:complexType><xs:sequence><xs:element minOccurs="0" maxOccurs="unbounded" ref="xCOLxGroup"/><xs:group maxOccurs="unbounded" ref="xRowsGroup"/></xs:sequence><xs:attribute name="xALIGNx"><xs:simpleType><xs:restriction base="xs:token"><xs:pattern value="left|center|right"/></xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="xWIDTHx" type="xs:string"/></xs:complexType></xs:element><xs:attributeGroup name="xWIDTHx"><xs:attribute name="xWIDTHx" use="required" type="xs:string"/></xs:attributeGroup><xs:element name="xCOLxGroup" abstract="true"/><xs:element name="xCOLx" substitutionGroup="xCOLxGroup"><xs:complexType><xs:attributeGroup ref="xCOLxAttrs"/></xs:complexType></xs:element><xs:element name="xCOLGROUPx" substitutionGroup="xCOLxGroup"><xs:complexType><xs:sequence><xs:element minOccurs="0" maxOccurs="unbounded" ref="xCOLx"/></xs:sequence><xs:attributeGroup ref="xCOLxAttrs"/></xs:complexType></xs:element><xs:attributeGroup name="xCOLxAttrs">

78

Page 79: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

<xs:attributeGroup ref="xAligningAttrs"/><xs:attribute name="xSPANx" type="xs:positiveInteger"/><xs:attribute name="xWIDTHx" type="xs:string"/></xs:attributeGroup><xs:group name="xRowsGroup"><xs:choice><xs:element ref="xRow"/><xs:element ref="xEnum"/><xs:element ref="xUnit"/></xs:choice></xs:group><xs:element name="xRow"><xs:complexType><xs:sequence><xs:element maxOccurs="unbounded" ref="xClmn"/></xs:sequence><xs:attributeGroup ref="xAligningAttrs"/></xs:complexType></xs:element><xs:element name="xClmn"><xs:complexType><xs:group minOccurs="0" maxOccurs="unbounded" ref="xTextClassGroup"/><xs:attributeGroup ref="xAligningAttrs"/><xs:attribute name="xClmnSpan" type="xs:positiveInteger"/><xs:attribute name="xRowSpan" type="xs:positiveInteger"/><xs:attribute name="xWIDTHx" type="xs:string"/></xs:complexType></xs:element><xs:attributeGroup name="xClmnSpan"><xs:attribute name="xClmnSpan" use="required" type="xs:positiveInteger"/></xs:attributeGroup><xs:attributeGroup name="xRowSpan"><xs:attribute name="xRowSpan" use="required" type="xs:positiveInteger"/></xs:attributeGroup><xs:element name="xEnum"><xs:complexType><xs:sequence><xs:element minOccurs="0" ref="xBullet"/><xs:element maxOccurs="unbounded" ref="xEnumElem"/></xs:sequence></xs:complexType></xs:element><xs:element name="xBullet"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="xClmnSpan" type="xs:positiveInteger"/></xs:extension></xs:simpleContent></xs:complexType></xs:element><xs:element name="xEnumElem"><xs:complexType><xs:group maxOccurs="unbounded" ref="xTextClassGroup"/></xs:complexType>

79

Page 80: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

</xs:element><xs:element name="xUnit"><xs:complexType><xs:sequence><xs:element minOccurs="0" ref="xName"/><xs:element minOccurs="0" ref="xTitle"/><xs:group minOccurs="0" maxOccurs="unbounded" ref="xTextClassGroup"/></xs:sequence><xs:attributeGroup ref="xFormattingAttrs"/><xs:attribute name="xIsTitle" type="xs:boolean"/><xs:attribute name="xType"><xs:simpleType><xs:restriction base="xs:token"><xs:pattern value="none|part|book|sect|bran|titl|chpt|schp|arti|para|pass|pint|lett|slet"/></xs:restriction></xs:simpleType></xs:attribute></xs:complexType></xs:element><xs:attributeGroup name="xIsTitle"><xs:attribute name="xIsTitle" use="required" type="xs:boolean"/></xs:attributeGroup><xs:attributeGroup name="xType"><xs:attribute name="xType" use="required"><xs:simpleType><xs:restriction base="xs:token"><xs:pattern value="none|part|book|sect|bran|titl|chpt|schp|arti|para|pass|pint|lett|slet"/></xs:restriction></xs:simpleType></xs:attribute></xs:attributeGroup></xs:schema>

Zadaniem modułu anonimizującego jest znalezienie w konkretnym orzeczeniu obiektu typu xBlock, a następnie spójne zanonimizowanie wszystkich paragrafów xText. Anonimizacja polega na wykryciu wszystkich miejsc wymagających utajnienia i otoczenia ich nowym węzłem xAnon z atrybutem xSubst mówiącym o tym, na co powinien zostać zamieniony dany fragment tekstu.

Dla przykładowego orzeczenia z Tabeli 1 zanonimozowana wersja będzie miała postać taką, jak w Tabeli 2. Treść orzeczenia oraz jego struktura nie może zostać zmieniona tzn. wersja podstawowa od zanonimizowanej musi różnić się jedynie tagami <xAnon>. Należy tutaj zwrócić szczególną uwagę na tagi formatujące, takie jak <xBx> bądź <xIx>, gdyż dodanie tagów <xAnon> nie może zmieniać formatowania pliku.

<?xml version="1.0" encoding="UTF-8"?><xPart xVolType="15/500000/0000103/ACa" xYear="2010" xVolNmbr="000069" xDocType="Uz"><xName>Wyrok</xName>

80

Page 81: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

<xBlock><xText>Sygn. akt I ACa 69/10</xText><xText>po rozpoznaniu w dniu 17 lutego 2010 r. we Wrocławiu na rozprawie</xText><xText>sprawy z powództwa Jana Kowalskiego zamieszkałego w Świdnicy</xText></xBlock></xPart>Tabela 1: Przykładowe orzeczenie w formacie xml

<?xml version="1.0" encoding="UTF-8"?><xPart xVolType="15/500000/0000103/ACa" xYear="2010" xVolNmbr="000069" xDocType="Uz"><xName>Wyrok</xName><xBlock><xText>Sygn. akt I ACa 69/10</xText><xText>po rozpoznaniu w dniu 17 lutego 2010 r. we Wrocławiu na rozprawie</xText><xText>sprawy z powództwa <xAnon xSubst="J. K.">Jana Kowalskiego</xAnon> zamieszkałego w <xAnon xSubst="Ś.">Świdnicy</xAnon></xText></xBlock></xPart>Tabela 2: Przykładowe zanonimizowane orzeczenie w formacie xml

9.4 Interfejs modułuModuł anonimizacyjny jest programem wsadowym. Przyjmuje na wejściu argumenty:

Parametr Opis

-i, --in-list Plik z listą ścieżek do plików xml do zanonimizowania.

-o, --out-list Plik z listą wyjściowych plików na zanonimizowaną treść. Musi zawierać dokładnie tyle samo elementów co in-list.

Tabela 3: Parametry modułu anonimizującego.

Moduł przetwarzać ma kolejno orzeczenia z listy –in-list zapisując je w miejscu podanym w argumencie –out-list. Każde orzeczenie wejściowe oraz wynik działania anonimizatora jest plikiem xml, którego postać opisana została powyżej.

9.5 Test modułu do automatycznej anonimizacji (przeprowadzony po zawarciu umowy w sprawie zamówienia publicznego w sytuacji, o której mowa w pkt III pkt 4) niniejszego dokumentu)Na potrzeby weryfikacji poprawności funkcjonowania modułu do automatycznej anonimizacji przygotowane zostały dwa testy, z których pierwszy weryfikuje poprawność anonimizacji z Regułami anonimizacji oraz drugi, który sprawdza poprawność struktury przetworzonych plików xml. Test zostanie

81

Page 82: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

przeprowadzony w terminie wyznaczonym przez Zamawiającego (nie później jednak niż w terminie 2 tygodni od dnia zawarcia umowy w sprawie zamówienia publicznego) i w siedzibie Zamawiającego. Czas przeznaczony na przeprowadzenie testu to maksymalnie 2 godziny. Z testu zostanie sporządzony Protokół odbioru testów zgodny z załącznikiem nr 1 do Opisu przedmiotu zamówienia.

9.5.1 Test poprawności anonimizacjiNa potrzeby testu przygotowane zostały zestawy testów akceptacyjnych, sprawdzających czy program anonimizujący poprawnie przetwarza treść orzeczeń tzn. czy działa zgodnie ze zdefiniowanymi w rozdziale II.B. punkcie 9.2 Regułami anonimizacji. Testy akceptacyjne mają postać:

ANONYMIZE(„treść”) = „poprawna anonimizacja”lubANONYMIZE(„treść”) = NO_CHANGE gdzie "treść" to niezanonimizowany fragment orzeczenia, a "poprawna anonimizacja" to oczekiwany wynik. W miejscu poprawnej anonimizacji może pojawić się informacja NO_CHANGE – oznacza to, że treść nie wymaga żadnych zmian. Testy akceptacyjne dobrane zostały tak, aby pokryć wszystkie zasady anonimizacji z Reguł anonimizacji. W każdej treści pojawia się byt, który wymaga szczególnej uwagi – imiona, nazwiska, frazy numeryczne bądź daty. Liczba przygotowanych testów akceptacyjnych wynosi co najmniej 20 tysięcy.

W celu przeprowadzenia testu, wykorzystywany jest program do automatycznej anonimizacji w trybie wsadowym zgodny z opisem znajdującym się w rozdziale II.B punkcie 9.4 “Interfejs modułu” za pośrednictwem oprogramowania do weryfikacji, działającego w oparciu o testy akceptacyjne opisane powyżej. Program do weryfikacji wysyła do programu anonimizującego łańcuchy tekstu w postaci <xText>treść znajdujące się po lewej stronie testu akceptacyjnego opisanego powyżej</xText>, jako wynik oczekuje łańcuch tekstu ze zanonimizowaną treścią zgodnie z regułą testu, zawarty w tagu <xText><xAnon xSubst=”poprawna anonimizacja”>treść</xAnon></xText> zgodnie z opisem zwartym w rozdziale II.B punkcie 7.3 “Format przetwarzania danych”.

Program anonimizujący zdaje pojedynczy test akceptacyjny, jeśli dla zadanej treści zwraca dokładnie to, co zawarte jest w teście po prawej stronie z zachowaniem właściwej struktury pliku. Wymagana jest minimalna 95% skuteczność tzn. mechanizm anonimizacji może pomylić się maksymalnie dla 5% przygotowanych testów akceptacyjnych, w czasie przeznaczonym na test. Jeżeli warunek ten nie zostanie spełniony, wynik testu jest negatywny.

9.5.2 Test prawidłowego przetwarzania plików xml.Na potrzeby testu przygotowane zostały testy akceptacyjne w postaci plików xml zawierające orzeczenia wraz z uzasadnieniami, program testujący weryfikuje poprawność struktury przetworzonych plików xml zgodnie z zasadami opisanymi w rozdziale II.B punkcie 7.3 “Format przetwarzania danych”.

W celu przeprowadzenia testu, zostanie wykorzystany program do automatycznej anonimizacji w trybie wsadowym zgodny z opisem znajdującym się w rozdziale II.B punkcie 9.4 “Interfejs modułu za

82

Page 83: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

pośrednictwem oprogramowania do weryfikacji, działającego w oparciu testy akceptacyjne opisane powyżej. Program do weryfikacji wysyła do programu anonimizującego teksty orzeczeń w formacie xml, jako wynik oczekuje zanonimizowanych teksów w plikach xml o prawidłowej strukturze zgodnie z opisem zwartym w rozdziale II.B punkcie 7.3 “Format przetwarzania danych”.

Program anonimizujący zdaje pojedynczy test akceptacyjny, jeżeli zanonimizowany byt zostanie właściwie opisany w strukturze wyjściowego pliku w formacie xml. Wymagana jest minimalna 95% skuteczność tzn. mechanizm anonimizacji może mylić się dla maksymalnie 5% testów akceptacyjnych, w czasie przeznaczonym test. Jeżeli warunek ten nie zostanie spełniony, wynik testu jest negatywny.10. Moduł wyszukiwania (serwer/silnik wyszukiwania pełnotekstowego), dodatki rozszerzające wyszukiwarkę o korektor zapytań (correct), generator natychmiastowych podpowiedzi oraz serwer/silnik analizy językowej, plugins rozszerzeń modułu analizy językowej o dodatek do podświetlania wybranych haseł w tekstach, dodatek do anonimizacji tekstów.

10.1 WstępModuł wyszukiwania pełnotekstowego wykorzystywany jest jako wyszukiwarka w aplikacji webowej dla Użytkownika Końcowego. W celu integracji z Oprogramowaniem Centralnym wyszukiwarka musi posiadać ściśle określony interfejs programowania oraz pracować na ustalonym modelu danych.Funkcjonalności modułu wyszukiwania to:

● wyszukiwanie literalne po polach metrykalnych, takich jak data bądź typ wydziału, ● wysoka jakość i szybkość wyszukiwania pełnotekstowego,● wyszukiwanie niezależne od fleksji, pomijanie słów nieistotnych, ● wyszukiwanie wspierane przez analizę bliskości słów w zdaniach,● automatyczne generowanie streszczeń orzeczeń złożonych ze zdań najbardziej reprezentujących

wynik dla wyszukiwanej frazy na wzór tezy orzeczenia,● mechanizm oceny znalezionych orzeczeń ze względu na dopasowanie do wyszukiwanej frazy, ● mechanizm automatycznej korekty błędów we wpisanych przez użytkowników zapytaniach i

podpowiadania najbardziej prawdopodobnej, poprawnej wersji,● mechanizm sugerowania zapytań w oparciu o dane obecne w bazie, w tym sugerowanie sygnatur,

nazwisk sędziów, haseł tematycznych czy słów kluczowych pochodzących z treści oraz metryk orzeczeń prezentowanych w portalu,

● mechanizm kolorowania (podświetlania) wyszukiwanego tekstu.

Powyższe funkcjonalności zostaną opisane szczegółowo w znajdującym się poniżej opisie API.

10.2 API10.2.1 Protokół komunikacyjnySilnik wyszukiwania pełnotekstowego musi działać jako serwer HTTP, komunikacja z klientami ma się odbywać poprzez protokołu XML-RPC. Szczegółowy opis komunikatów wymienianych z serwerem przedstawiony jest w rozdziale opisującym metody serwera.

10.2.2 Model danychWyszukiwarka ma spełniać założenia dokumentowej bazy danych, opartej o indeksy wyszukiwania. Dokumenty w bazie zapisywane są za pomocą trzech obligatoryjnych informacji: identyfikatora, typu

83

Page 84: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

oraz opisu jego lokalizacji (URL). Oprócz tego dokumenty reprezentujące orzeczenia opisane są szeregiem opcjonalnych cech, które zostały przedstawione w dalszej części opisu. Oprócz tego istnieć powinna predefiniowana cecha any - używana podczas wyszukiwania i oznaczać ma, że wyszukiwanie (zadany warunek wyszukiwania) dotyczyć ma wszystkich cech, które mogą być przeszukiwane pełnotekstowo.

10.2.2.1 Typy cechCechy dokumentu definiowane są przez użytkownika w trakcie tworzenia indeksu metodą createIndex. Każda zdefiniowana cecha musi mieć określony typ. W silniku wyszukiwania Portalu Orzeczeń wymagane są 4 typy danych: text, number, date, boolean.

Typ textTyp text umożliwia przechowywanie dowolnych informacji tekstowych. Pola tekstowe mogą być traktowane w różny sposób, zależnie od parametrów określonych dla cechy tego typu w trakcie tworzenia indeksu. Włączenie lub wyłączenie funkcji określanej przez dany parametr następuje poprzez przypisanie mu wartości true albo false w polu t_params w parametrach metody createIndex (patrz punkt 1.3.1). Jeśli parametr nie zostanie określony, domyślnie przypisana zostanie wartość false. Dostępne są następujące parametry modyfikujące typ text:

TM_TEXT_ALLOWFTS – jeżeli wartość tego parametru zostanie ustawiona na true możliwe będzie przeszukiwanie cechy w sposób pełnotekstowy. Włączenie parametru dla zbyt wielu cech tekstowych może powodować wzrost zapotrzebowania na pamięć operacyjną oraz spowolnić wyszukiwanie z użyciem cechy specjalnej any.

TM_TEXT_SPLITSENTENCES – parametr ten informuje system, że wartość danej cechy tekstowej powinna być pamiętana w postaci osobnych zdań.

Podział treści na zdania ma wpływ na trafność wyszukiwania dla długich, wielozdaniowych tekstów. Dla tekstów krótszych, co najwyżej kilku zdaniowych (jak np. tytuły) parametr ten powinien być ustawiony na false.

TM_TEXT_INEXCERPT – jeśli parametr ten ma wartość true, wówczas cecha ta będzie uwzględniana przy budowaniu tzw. „strzępek” czyli fragmentów tekstu pokazujących kontekst w jakim występuje szukana fraza.

TM_TEXT_ALLOWCOMPARE – jeśli parametr ten ma wartość true, możliwe będzie sortowanie wyników wyszukiwania według tej cechy, a także porównywanie jej wartości, czyli zadawanie zapytań z użyciem operatorów (tzw. wyszukiwanie leksykalne). Włączenie parametru powoduje zwiększenie rozmiaru pamięci operacyjnej zajmowanej przez indeks.

Parametry TM_TEXT_SPLITSENTENCES i TM_TEXT_INEXCERPT są istotne tylko w przypadku gdy parametr TM_TEXT_ALLOWFTS zostanie ustawiony na true. W przeciwnym wypadku będa one ignorowane.

84

Page 85: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Typ numberTyp number przeznaczony jest do przechowywania wszelkich wartości liczbowych należących do zbioru liczb rzeczywistych. System wyszukiwarki jako separatora dziesiętnego zawsze używa znaku kropki ('.').

Typ dateTyp date umożliwia zdefiniowanie cech przechowujących daty. Wszystkie daty powinny być znormalizowane do strefy czasowej GMT i mieć jeden format zgodny z normą ISO 8601:%Y-%m-%dT%H:%M:%SZ, np. 2000-01-02T03:45:12ZZ uwagi na to, że implementacje typu XMLRPC datetime.iso8601 są różne na różnych platformach, przesyłanie w zapytaniach wartości cech typu date w tym formacie powinno się stosować jedynie do wąskiego zakresu dat bliskich dacie obecnej (lata 1970-2038). Poza tym zakresem, bezpieczniejszą metodą jest przesyłanie wartości cech typu date za pomocą stringa w podanym powyżej formacie.

Typ booleanTyp boolean umożliwia przechowywanie wartości logicznych true/false. Wyszukiwarka ma umożliwiać stosowanie różnych symboli do reprezentacji logicznej prawdy i fałszu. I tak symbole: true (typu boolean), 'true', 't', 'yes', 'y,' '1' są rozumiane jako true, a symbole false (typu boolean), 'false' , 'f', 'no', 'n', '0' są rozumiane jako false.

10.2.3 OperatoryZapytania o cechy typu text, number i date mogą korzystać z operatorów pozwalających określić zakres poszukiwanej wartości. Wyszukiwarka ma obsługiwać następujące operatory:

operator l. argumentów znaczenie

> 1 znalezione zostaną dokumenty, których zadana cecha ma wartość „większą niż” argument.

>= 1 znalezione zostaną dokumenty, których zadana cecha ma wartość „większą niż lub równą” argumentowi.

< 1 znalezione zostaną dokumenty, których zadana cecha ma wartość „mniejszą niż” argument.

<= 1 znalezione zostaną dokumenty, których zadana cecha ma wartość „mniejszą niż lub równą” argumentowi.

= 1 znalezione zostaną dokumenty, których zadana cecha ma wartość „równą” argumentowi.

W przypadku równości możliwe jest pominięcie operatora.

85

Page 86: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

<> 1 znalezione zostaną dokumenty, których zadana cecha ma wartość „różną od” argumentu.

range 2 znalezione zostaną dokumenty z podanego zakresu. Pierwszy argument oznacza dolną granicę zakresu, a drugi górną.

in dowolna znalezione zostaną dokumenty, których zadana cecha należy do wyliczonego zbioru argumentów.

10.2.4 Metody serweraMetody serwera wyszukiwarki pobierają argumenty, jak również zwracają wyniki w postaci asocjacyjnej tablicy par typu nazwa => wartość. Wartości tekstowe muszą być zakodowane za pomocą kodowania UTF-8.Jeżeli działanie wywołanej metody zakończy się sukcesem, zwróci ona tablicę asocjacyjną postaci:{ "status" => "OK", ... }W przypadku wystąpienia błędu wynikiem będzie tablica zawierająca jego kod:{ "status" => "error", "error" => "identyfikator_błędu" }

10.2.4.1 Metoda createIndexMetoda createIndex tworzy index o zadanej nazwie i strukturze. Nazwa indeksu musi być unikalna. Próba stworzenia indeksu o nazwie identycznej z nazwą innego, istniejącego już indeksu zakończy się błędem.Argumenty:

{ "index" => "nazwa_indeksu", "abbreviations" => "ścieżka_do_pliku_abbreviations", "stopwords" => "ścieżka_do_pliku_stopwords", "traits" => [{ "t_name" => "nazwa_cechy_1", "t_type" => "typ_cechy", "t_rank" => "waga_cechy" "t_params" =>{"nazwa_parametru_1" => "false" lub "true",…,"nazwa_parametru_n" => "false" lub "true"}},…,{"t_name" => "nazwa_cechy_n","t_type" => "typ_cechy_n",…,}]

86

Page 87: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

}

Zwracana wartość:{ "status" => "OK" }lub informacja o błędzie.

Nieobowiązkowy parametr abbreviations określa ścieżkę do pliku ze skrótami, który ma być użyty dla tworzonego indeksu. Dzięki temu możliwe będzie wyszukanie pewnych fraz po wysłaniu zapytań o związane z nimi skróty. W nieobowiązkowym parametrze stopwords możliwe jest podanie ścieżki do odpowiedniego, dla tworzonego indeksu, pliku definiującego tzw. stop words, czyli często występujące w danym indeksie słowa, które ze względu na swoją powszechność nie mają istotnej wartości informacyjnej. Jeżeli parametr nie zostanie podany, użyte zostaną domyślne stop words dla języka polskiego. Więcej na ten temat w rozdziale opisującym stop words.Lista traits zawiera definicje cech jakich można używać podczas przeszukiwania indeksu. Typy możliwe do użycia w polu t_type zostały opisane w punkcie 8.2.2.1. Dodatkowe parametry możliwe do ustawienia w polu t_params zależą od typu cechy i zostały opisane w opisie poszczególnych typów.Pole t_rank pozwala określić wagę danej cechy. Ma to sens jedynie dla cechy typu text, która może być przeszukiwana pełnotekstowo. Waga jest brana pod uwagę przy określaniu trafności wyniku. Dzięki temu możliwa jest sytuacja kiedy za bardziej trafne uznane zostaną dokumenty, które zawierają szukaną frazę w tytułach, a nie tylko w treści. Waga powinna być dowolną liczbą rzeczywistą większą od 0.0. Jeśli pole t_rank nie zostanie określone, przyjęta zostanie dla niego domyślna wartość 1.0.

10.2.4.2 Metoda startIndexMetoda ładuje/uruchamia index o zadanej nazwie – indeks musi zostać uruchomiony, aby był dostępny i aby można było w nim wyszukiwać. Indeksy są uruchamiane automatycznie w czasie uruchomienia serwera. Automatyczne ładowanie poszczególnych indeksów można włączać/wyłączać modyfikując odpowiednie wpisy w pliku konfiguracyjnym.Argumenty:{ "index" => "nazwa_indeksu", "readers" => "ilość_jednoczesnych_zapytań(number)"}Zwracana wartość:{ "status" => "OK" }lub informacja o błędzie (np. jeśli podany indeks już jest uruchomiony).

Nieobowiązkowy parametr readersokreśla maksymalną liczbę zapytań, które będą równolegle (jednocześnie) obsługiwane przez startowany indeks. Jeśli parametr nie zostanie podany, przyjęta zostanie wartość domyślna 1.

10.2.4.3 Metoda stopIndexMetoda zatrzymuje index o zadanej nazwie. Po zatrzymaniu nie jest on dostępny do czasu ponownego jego uruchomienia.Argumenty:{ "index" => "nazwa_indeksu" }Zwracana wartość:

87

Page 88: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

{ "status" => "OK" }lub informacja o błędzie (np. jeśli podany indeks nie jest uruchomiony).

10.2.4.4 Metoda openIndexMetoda ta otwiera indeks. Otwarcie indeksu i pobranie tokena sesji jest niezbędne, aby móc wywołać metody addDocument, updateDocument, removeDocuments. Otwarty indeks musi zostać zamknięty metodą closeIndex.Argumenty:{ "index" => "nazwa_indeksu" }Zwracana wartość:{ "status" => "OK", "token" => "wygenerowany_token_sesji" }lub informacja o błędzie.

10.2.4.5 Metoda closeIndexMetoda zamyka indeks i unieważnia sesję identyfikowaną przez token otrzymany od funkcji openIndex. Każde wywołanie funkcji openIndex powinno mieć odpowiadające jej wywołanie metody closeIndex. Argumenty:{ "token" => "wygenerowany token sesji" }Zwracana wartość:{ "status" => "OK" }lub informacja o błędzie.

10.2.4.6 Metoda removeIndexMetoda ta usuwa indeks o podanej nazwie. Metoda nie wymaga wcześniejszego otwarciaindeksu. UWAGA: pliki indeksu usuwane są fizycznie z dysku.Argumenty:{ "index" => "nazwa_indeksu" }Zwracana wartość:{ "status" => "OK" }lub informacja o błędzie.

10.2.4.7 Metoda addDocumentMetoda addDocument dodaje dokument do indeksu. Pozwala ona użytkownikowi na określenie zarówno jego cech obowiązkowych jak i dodatkowych. Cechy obowiązkowe to identyfikator dokumentu d_id, typ dokumentu d_type oraz informacja o lokalizacji dokumentu d_url. Cechy dodatkowe definiowane są przez użytkownika w momencie tworzenia indeksu. Jedną z cech dodatkowych jest treść dokumentu i użytkownik powinien zadbać o jej utworzenie.Argumenty:{"token" => "wygenerowany token sesji","document" => {"d_id" => "identyfikator dokumentu","d_type" => "typ dokumentu","d_url" => "lokalizacja dokumentu","d_rank" => statyczna_wartość_dokumentu(number)

88

Page 89: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

"d_categories" => ["id_kategorii_1","id_kategorii_2",...],"d_traits" => [{ "t_name" => "nazwa_cechy_1","t_value" => "wartość_cechy_1" },{ "t_name" => "nazwa_cechy_2","t_value" => "wartość_cechy_2" },…]}}Zwracana wartość:{ "status" => "OK" }lub informacja o błędzie.

Należy zwrócić uwagę, aby wartość cechy była zgodna z jej typem określonym w metodzie createIndex. Jeśli wartość nie będzie zgodna ze zdefiniowanym typem, funkcja addDocument zwróci błąd. Wyjątkiem są cechy typu date, których wartości mogą podawane na 2 sposoby: jako XMLRPC datetime.iso8601 albo jako text, w formacie opisanym w punkcie 8.2.2.1.Identyfikator dokumentu d_id to dowolny łańcuch znakowy identyfikujący dokument. Należy zwrócić uwagę, że musi on być unikalny. Próba dodania dokumentu o identyfikatorze już znajdującym się w indeksie zakończy się zgłoszeniem błędu.Typ d_type to dowolny łańcuch znakowy określający typ dokumentu (indeks może zawierać dokumenty różnych typów).Pole d_rank pozwala określić względną wartość dokumentu. Powinna to być liczba rzeczywista większa od 0.0. O sposobie jej wyznaczania decyduje użytkownik, pamiętając, że wyższa liczba oznacza wyższą pozycję na liście wyników. Jeżeli pole to nie zostanie określone, system przyjmie wartość domyślną równą 0.01. Wartość ta jest tylko jedną ze składowych (składową statyczną) do wyliczenia trafności dopasowania wyniku (pole score w wyniku wyszukiwania).Pole d_categories pozwala powiązać dokument z kategoriami taksonomii. Jest to lista identyfikatorów (typu string) kategorii, do których należy wprowadzany dokument. Warto zauważyć, że sama taksonomia (jej struktura, tytuły kategorii itp.) nie jest pamiętana w indeksie wyszukiwania – w indeksie pamiętane jest tylko powiązanie dokumentów z konkretnymi kategoriami.

10.2.4.8 Metoda updateDocumentMetoda ta służy do modyfikacji/aktualizacji danych dokumentu wcześniej wprowadzonego do indeksu za pomocą metody addDocument. Jeżeli dokument zadany za pomocą parametrów nie zostanie znaleziony w systemie metoda zwróci informację o błędzie, zatem metoda ta nie nadaje się do wprowadzania nowych dokumentów do indeksu.Argumenty i zwracane wartości są takie same, jak dla metody addDocument.Należy zwrócić uwagę, że przekazany metodzie jako argument document opis dokumentu musi być zawsze opisem kompletnym, to znaczy nie można za pomocą wielokrotnego wywołania tej metody uzupełniać opisu dokumentu przechowywanego w indeksie.

10.2.4.9Metoda updateTraits

89

Page 90: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Metoda updateTraits służy do szybkiej modyfikacji wartości poszczególnych cech (atrybutów dodatkowych) dokumentu. W czasie jednego wywołania tej metody zmienione mogą być cechy wielu dokumentów. Metoda ta nie pozwala na zmianę cech tekstowych, dla których ustawiona została flaga TM_TEXT_ALLOWFTS.Argumenty:{

"token" => "wygenerowany token sesji","set" => [

{ "t_name" => "nazwa_cechy_1","t_value" => "wartość_cechy_1" },{ "t_name" => "nazwa_cechy_2", "t_value" => "wartość_cechy_2" },…"where" => {

"d_id" => "identyfikator dokumentu", -- i/lub "d_type" => "typ dokumentu", -- i/lub "d_url" => "lokalizacja dokumentu", -- i/lub ":nazwa_cechy_1" => { "value" => "wartość_cechy_1" },

… }}Zwracana wartość:{

"status" => "OK","updated" => "liczba_zmodyfikowanych_dokumentów"

}

Pole token powinno zawierać token sesji zwrócony przez metodę openIndex.Pole set określa które cechy powinny zostać zmienione i jakie należy przypisać im wartości. Jest to lista słowników z których każdy zawiera nazwę cechy do zmiany (pole t_name) i wartość jaka ma zostać ustawiona (pole t_value). Wartości te definiowane są w taki sam sposób jak w przypadku metody addDocument.Pole where określa które dokumenty (a konkretnie cechy których dokumentów) zostaną zmodyfikowane. Dokumenty wybierane są podobnie jak ma to miejsce w przypadku metody query – wartość pola value ma taką samą postać (patrz punkt 2.6.7.2.4.11).

10.2.4.10 Metoda removeDocumentsMetoda removeDocuments służy do usuwania dokumentów z indeksu. Usuwane są wszystkie dokumenty spełniające iloczyn logiczny warunków zadanych w parametrach metody.Argumenty:{ "token" => "wygenerowany token sesji", "d_id" => "identyfikator dokumentu", -- i/lub "d_type" => "typ dokumentu", -- i/lub "d_url" => "lokalizacja dokumentu", -- i/lub ":nazwa_cechy_1" => { "value" => "wartość_cechy_1" },

90

Page 91: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

":nazwa_cechy_2" => { "value" => "wartość_cechy_2" }, ...}Zwracana wartość:{

"status" => "OK","removed" => "liczba_usuniętych_dokumentów"

}lub informacja o błędzie.

Pole value określające wartość cechy dokumentu do usunięcia ma taką samą postać jak w przypadku metody query (patrz punkt 4.2.4.11). W przypadku tej metody nazwy cech poprzedzone są dwukropkiem.

10.2.4.11 Metoda queryMetoda query jest główną metodą umożliwiającą wyszukiwanie. Argumenty tej metody pozwalają określić zestaw warunków jakie muszą spełniać dokumenty, aby znalazły się w zbiorze wyników, oraz zdefiniować liczność i uporządkowanie tego zbioru.Argumenty:{"index" => "nazwa_indeksu","d_id" => "identyfikator_dokumentu", -- i/lub"d_type" => "typ_dokumentu", -- i/lub"d_url" => "lokalizacja_dokumentu", -- i/lub"d_categories" => ["id_kategorii_1",...], –- i/lub":nazwa_cechy_typu_text_1" => {"value" => "zapytanie_pełnotekstowe" }, -- i/lub"normalisation" => true|false }, -- i/lub":nazwa_cechy_typu_text_2" => {"value" => ["operator", "tekst_1", (i/lub) "tekst_2"], "alias" => "nazwa_pola_wynikowego_1" }, -- i/lub":nazwa-cechy-typu-number" => {"value" => ["operator", "liczba_1", (i/lub) "liczba_2"],"alias" => "nazwa_pola_wynikowego_2" }, -- i/lub":nazwa-cechy-typu-date" => {"value" => ["operator", "data_1", (i/lub) "data_2"],"alias" => "nazwa_pola_wynikowego_3" }, -- i/lub":nazwa-cechy-typu-boolean" => {"value" => ["operator", "wartość_logiczna"]"alias" => "nazwa_pola_wynikowego_4" }, -- i/lub".funkcja-agregująca(argument)" => {"alias" => "nazwa_pola_wynikowego_5" }, -- i/lub…,"excerpt" => "true", -- albo"excerpt" => {"hard_limit" => liczba_1, -- i/lub

91

Page 92: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

"soft_limit" => liczba_2 }, -- i/lub"prefix" => "prefix_podświetlanego_tekstu","suffix" => "suffix_podświetlanego_tekstu""sort" => [["score", "desc"],["nazwa-cechy_lub_alias_1", "asc"], ...], -- i/lub"group" => ["nazwa_cechy_lub_alias_1", ...], -- i/lub"group_selector"=>[["nazwa_cechy_lub_alias_2",–-i/lub "metoda_selekcji"], ...]"from" => od_wyniku(integer), -- i/lub"limit" => limit_liczby_wyników(integer)}

W powyższym opisie argumentów metody query pokazane zostały przykłady pytań o cechy różnych typów. Pytania takie można dowolnie łączyć, może być tylko jedno lub może być ich wiele. Poniżej zostaną omówione poszczególne przypadki.Dla cech typu text możliwe są dwa rodzaje zapytań: pełnotekstowe i leksykalne. Pytanie pełnotekstowe zadajemy, przekazując w polu value pojedynczy tekst (string). Warto przypomnieć, że pełnotekstowo można przeszukiwać tylko wartości cech dla których parametr TM_TEXT_ALLOWFTS ma wartość true. Jeśli parametr ten nie zostanie włączony, próba wyszukiwania pełnotekstowego spowoduje błąd.Pytanie leksykalne zadajemy przekazując w polu value listę składającą się z operatora oraz jego argumentów tekstowych. W pytaniach leksykalnych możliwe jest zatem porównywanie wartości i z jednej strony wyszukiwanie dokumentów, których zadana cecha ma konkretną wartość, a z drugiej wyszukiwanie dokumentów, których wartość cechy należy do określonego przedziału.Jak łatwo zauważyć, lista może być wartością pola value dla cech typu text, number i date. We wszystkich tych przypadkach pierwszym elementem listy jest operator. Liczba i rodzaj pozostałych elementów zależą od operatora.Pole :nazwa_cechy_typu_text_1 definiuje zapytanie o cechę typu tekstowego z włączonym przeszukiwaniem pełnotekstowym, z uwzględnieniem fleksji (ponieważ wartość w polu value jest stringiem). Zostaną wyszukane dokumenty zawierająca podaną frazę, ale pole to nie znajdzie się na liście wyników, ponieważ nie został dla niego określony alias.Alias, to nazwa pod jaką wartość danego pola będzie widoczna na liście wyników. Aliasu można też używać w klauzulach sort i group. Zapytanie zdefiniowane w polu :nazwa_cechy_typu_text_2 definiuje alias, zatem wartość tego pola znajdzie się na liście wyników. Cecha o nazwie :nazwa_cechy_typu_text_2 będzie przeszukiwana leksykalnie, ponieważ wartość w polu value jest listą.Warto pamiętać, że w przypadku zapytań pełnotekstowych jako nazwy_cechy_typu_text można użyć nazwy specjalnej any, która spowoduje szukanie po wszystkich cechach, którym ustawiono parametr TM_TEXT_ALLOWFTS na wartość true. Any nie jest żadną konkretną cechą, dlatego nie można dla niej stosować aliasów.Dodatkowo dla zapytań pełnotekstowych możliwe jest wyłączenie normalizacji słów. Po wyłączeniu normalizacji nie będzie uwzględniana fleksja - wyszukiwane będą słowa z zapytania tylko w takiej formie, w jakiej zostały zadane. Normalizację można wyłączyć ustawiając w polu normalisation pytania o cechę wartośc false. Domyślnie normalizacja jest włączona.

92

Page 93: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Pole :nazwa_cechy_typu_number definiuje zapytanie o cechę typu liczbowego. Pole value określa o co pytamy. Wartością tego pola jest lista, której pierwszym elementem jest operator, a kolejnymi liczby – argumenty operatora. Argumenty mogą być podane na 2 sposoby – jako wartości typu liczbowego (int albo double) albo w postaci tekstowej (np. '23.76', '12'), jednak wszystkie w ten sam sposób.Pole :nazwa_cechy_typu_date definiuje zapytanie o datę. Składnia pola value jest analogiczna do składni w przypadku cech typu text i number. Argumenty, podobnie jak dla cech typu number, mogą być podane na 2 sposoby – jako wartości typu XMLRPC datetime.iso8601 albo w postaci tekstowej.Pole :nazwa_cechy_typu_boolean definiuje zapytanie o cechę typu logicznego. Wartości argumentów, jakie może zawierać pole value, zadane za pomocą typu boolean albo w postaci tekstowej.Należy zwrócić uwagę, że w parametrach metody query nazwy cech poprzedzone są dwukropkiem.Pole d_categories pozwala ograniczyć wyniki wyszukiwania do dokumentów należących do zadanej kategorii taksonomii (więcej informacji). Jest to lista identyfikatorów (typu string) kategorii, zatem możliwe jest podanie wielu identyfikatorów. Aby dokument znalazł się na liście wyników musi należeć do wszystkich wymienionych kategorii naraz. Pole excerpt określa, czy w wyniku mają być zwracane tzw. strzępki (fragmenty tekstu pokazujące kontekst w jakim występuje szukana fraza). Strzępki zostaną zwrócone jeśli pole excerpt będzie miało wartość true albo podany zostanie przynajmniej jeden z parametrów hard_limit, soft_limit i jeśli wśród warunków znalazły się zapytania o cechy, które mają ustawiony parametry TM_TEXT_ALLOWFTS i TM_TEXT_INEXCERPT na wartość true. Jeśli pole excerpt zostanie pominięte, strzępki nie zostaną zwrócone. Jeśli pole excerpt będzie miało wartość true, zwrócone strzępki nie będą w żaden sposób przycięte, tzn. będą się składać ze wszystkich zdań ze znalezionych dokumentów, które spełniają warunki podane w zapytaniu. Jeśli zostanie podany któryś z parametrów hard_limit, soft_limit, zwracane strzępki zostaną odpowiednio przycięte. Podany parametr soft_limit spowoduje przycięcie długości strzępków według zdefiniowanej w nim długości, z dokładnością do zdania. W strzępkach znajdzie się zatem taka ilość najbardziej pasujących do zapytania zdań, że ich łączna długość jest równa albo większa od soft_limit, natomiast bez ostatniego z nich, łączna długość pozostałych jest zawsze mniejsza od soft_limit. Mówiąc inaczej, strzępki zostaną zbudowane w ten sposób, że będą do nich dodawane pasujące zdania (w kolejności od bardziej do mniej pasujących), tak długo, aż ich łączna długość osiągnie albo przekroczy wartość podaną w soft_limit. Jeśli łączna długość wszystkich pasujących zdań będzie mniejsza od soft_limit, strzępki zostaną uzupełnione zdaniami, które z nimi sąsiadują. Podany parametr hard_limit spowoduje przycięcie strzępków według zdefiniowanej w nim długości, z dokładnością do słowa. W strzępkach znajdzie się zatem taka ilość najbardziej pasujących do zapytania zdań, że ich łączna długość jest mniejsza albo równa wartości hard_limit oraz maksymalna ilość kolejnych słów następnego najbardziej pasującego zdania, która spowoduje, że długość strzępków nie przekroczy wartość hard_limit. Jeśli podane zostaną oba te parametry strzępki zostaną zbudowane tak jak w przypadku soft_limit, a następnie jeśli ich długość przekracza hard_limit, ostatnie zdanie zostanie przycięte, tak jak dla hard_limit. W przypadku, gdy ostatnie słowo (z którym długość strzępków przekracza hard_limit jest długie (powyżej 20 znaków), zostanie ono przecięte, tak by długość strzępków była równa hard_limit. Jeśli zdanie będzie przecięte w środku, na końcu strzępków będzie doklejony fragment (…), który również wlicza się do ich długości. Jeśli zapytanie będzie o cechę specjalną any, a pasujące zdania będą tylko w cechach tekstowych, które nie mają ustawionego parametru TM_TEXT_INEXCERPT na wartość true, zwrócone strzępki będą puste.

93

Page 94: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

PrzykładyZałóżmy, że zdania:

A: Ala ma kota. (długość 12)B: Kot jest ładny. (długość 15)C: Ma ogon i wąsy bardzo długie. (długość 29)

pasują do zapytania.Bez parametrów soft_limit i hard_limit mamy strzępki:"Ala ma kota. Kot jest ładny. Ma ogon i wąsy bardzo długie. "

Dla hard_limit = 42 mamy strzępki:"Ala ma kota. Kot jest ładny. Ma ogon (...)" (długość = 12 + 1 + 15 + 1 + 3 + 5 + 5 = 42, trzecie zdanie przycięte)

Dla soft_limit = 20 mamy strzępki:"Ala ma kota. Kot jest ładny." (długość = 12 + 1 + 15 = 28)

Dla soft_limit = 20 i hard_limit>= 28 tak samo, bo długość powyższego strzępka nie jest wtedy większa od hard_limit.

Dla soft_limit = 20 i hard_limit = 25 mamy:"Ala ma kota. Kot (…)" (długość = 12 + 1 + 4 + 5 = 22, drugie zdanie przycięte)

Dla soft_limit = 30 i hard_limit = 40 mamy:"Ala ma kota. Kot jest ładny. Ma (…)" (długość = 12 + 1 + 15 + 1 + 3 + 5 = 37, trzecie zdanie przycięte)

Parametry prefix i suffix definiują sposób wyróżniania szukanej frazy w strzępku. Ich użycie ma zatem sens tylko wówczas, gdy w polu excerpt została ustawiona wartość true. Pole sort pozwala określić sposób uporządkowania wyników. Jego wartością jest lista kolumn sortowania. Każda kolumna jest dwuelementową listą, której pierwszym elementem jest nazwa (alias) pola wynikowego, a drugim elementem kierunek sortowania (asc - rosnąco lub desc – malejąco). Aby sortowanie po danym polu było możliwe, pole to musi mieć flagę TM_TEXT_ALLOWCOMPARE ustawioną na true.Pole group pozwala na grupowanie wyników. Jeżeli na liście wyników znajdzie się wiele rekordów, które w zadanych polach wynikowych mają taką samą wartość, to zwrócony zostanie tylko jeden z nich – reprezentant grupy. To, który rekord zostanie reprezentantem można określić za pomocą pola group_selector. Kolejność grupowania wyników zgodna jest z kolejnością pól w polu group.Pole group_selector pozwala określić sposób wyboru rekordów reprezentujących grupę w wyniku operacji grupowania. Jego argumentem jest lista par, w których pierwszy parametr to nazwa lub alias cechy, której chcemy użyć do wyboru reprezentanta grupy, a drugi to rodzaj selektora. Cechy użyte w polu group_selector powinny być inne niż cechy użyte w group, ponieważ wartość cech użytych do grupowania jest taka sama dla wszystkich elementów w obrębie grupy, a więc próba wyboru reprezentanta grupy w ten sposób nie da oczekiwanego rezultatu. Jeśli chodzi o selektory, to w chwili

94

Page 95: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

obecnej dostępne są dwa: min i max. Selektor min spowoduje, że reprezentantem grupy zostanie rekord mający w zadanym polu, po którym następuje wybór (innym niż pola, po których nastąpiło grupowanie), najmniejszą wartość w grupie. Analogicznie, selektor max spowoduje wybór spośród wszystkich rekordów grupy tego o największej wartości w zadanym polu. Aby selektor zadziałał na wybranym polu, konieczne jest ustawienie mu flagi TM_TEXT_ALLOWCOMPARE na true.Jeżeli w danym zapytaniu wykonujemy grupowanie rekordów, możemy użyć funkcji agregujących. Funkcje agregujące, to funkcje wyznaczające swoją wartość na podstawie wszystkich wartości danej cechy w grupie. Dokładniej zostały one opisane w punkcie. Jak można zauważyć w przykładowym zbiorze parametrów zapytania powyżej, nazwy funkcji agregujących poprzedzane są kropką. Wartością pola definiującego funkcję agregującą jest słownik zawierający tylko i wyłącznie jedno pole alias określające nazwę pod jaką wartość funkcji zostanie zwrócona w wyniku.Pole from pozwala określić tzw. offset czyli numer (począwszy od 0) pierwszego rekordu spośród wszystkich znalezionych, który zostanie zwrócony. Jeżeli pole from nie zostanie określone to przyjęta zostanie domyślna wartość 0.Natomiast pole limit pozwala określić rozmiar zwróconego zbioru wynikowego, czyli liczbę kolejnych rekordów począwszy od rekordu o numerze określonym przez from jakie mają zostać zwrócone. Jeżeli w parametrach zapytania limit nie zostanie określony, wówczas zwrócone zostaną wszystkie wyniki.Zbiór rekordów określony przez pola from i limit jest tworzony po wykonaniu sortowania i grupowania.Zwracana wartość:{ "status" => "OK", "from" => od_wyniku(integer), "limit" => limit_liczby_wyników(integer), "total" => sumaryczna_liczba_wyników(integer), "gross_total"=>sumaryczna_liczba_wyników

_przed_grupowaniem(integer), "time" => czas_wykonania_zapytania_przez_silnik(integer), "found" => [ { "d_id" => identyfikator_dokumentu, "d_type" => typ_dokumentu, "d_url" => lokalizacja_dokumentu, "score" => relatywny_wskaźnik_dopasowania(float), "excerpt" => "wycinek_tekstu_1", "nazwa-pola-wynikowego_1" => "znaleziona_wartość-1", "nazwa-pola-wynikowego_2" => "znaleziona_wartość-2", "nazwa-pola-wynikowego_3" => "znaleziona_wartość-3",

... }, {"d_id" => identyfikator_dokumentu, "d_type" => typ_dokumentu, "d_url" => lokalizacja_dokumentu, "score" => relatywny_wskaźnik_dopasowania(float), "excerpt" => "wycinek_tekstu_2",

95

Page 96: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

"nazwa_pola_wynikowego_1" => "znaleziona_wartość_1", "nazwa_pola_wynikowego_2" => "znaleziona_wartość_2", "nazwa_pola_wynikowego_3" => "znaleziona_wartość_3" }, ... ],}lub informacja o błędzie.

Pole score jest polem specjalnym. Jego wyspecyfikowanie w opcji sort powoduje automatyczne wyliczenie rankingu dokumentów (relatywnych wskaźników dopasowania dokumentów do zapytania, będących liczbami zmiennoprzecinkowymi) i umieszczenie odpowiednich wartości w zwróconym zestawie danych. Więcej informacji na ten temat można znaleźć w punkcie pt. Ranking wyników.

Składnia parametrów prefix i suffixParametry prefix i suffix pozwalają określić w jaki sposób będzie wyróżniana (podświetlana) szukana fraza w wybranych z tekstu, najlepiej dopasowanych do zapytania zdaniach. Każdy z tych parametrów składa się z dwóch logicznych części, rozdzielonych znakiem "^" (grot). Pierwsza z części odpowiada słabemu, a druga mocnemu dopasowaniu. Przez słabe i mocne dopasowanie rozumiemy odpowiednio: dopasowanie do części lub całości zadanej frazy.Przykładowo, dla zapytania prawo pracy, prefixu określonego jako "<weak>^<strong>" oraz suffixu określonego jako "</weak>^</strong>" otrzymać możemy następujący tekst:

Efektem wytężonej <weak>pracy</weak> posłów jest <weak>prawo</weak>, które powinno poprawić sytuację tysięcy rodzin... ...Związkowcy protestowali przeciwko zmianom w <strong>prawie pracy</strong>.

Składanie zapytań pełnotekstowychZapytania pełnotekstowe kierowane do systemu wyszukiwarki oprócz czystego tekstu zawierają nieobowiązkowe operatory:[spacja] – spacja pomiędzy frazą A i B (A B) oznacza, że poszukiwane będą dokumenty, w których frazy A i B występują w tym samym zdaniu, jest to zatem operator AND działający na poziomie zdań

, - przecinek pomiędzy frazą A i B (A, B) oznacza, że poszukiwane będą dokumenty, które zawierają frazę A i jednocześnie zawierają frazę B, ale frazy te mogą wystąpić w różnych zdaniach, jest to zatem operator AND działający na poziomie dokumentów

"" - fraza objęta cudzysłowem szukana będzie w całości, bez uwzględniania fleksji, w dokładnie takiej postaci w jakiej została wpisana przez użytkownika

' ' - fraza objęta apostrofami szukana będzie w całości, ale z uwzględnieniem fleksji dla składających się na nią słów

| - pałka pomiędzy słowami A i B (A|B) oznacza, że poszukiwane będą dokumenty zawierające słowo A lub słowo B. Operator ten ma zastosowanie wyłącznie dla słów, a między operatorem, słowem A i

96

Page 97: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

słowem B nie może być żadnego znaku białego (np. spacji). Jest to zatem operator OR działający na poziomie zdań.

* - gwiazdka pomiędzy frazami A i B (A*B) oznacza, że poszukiwane będą dokumenty zawierające frazę A lub frazę B. Jest to zatem operator OR działający na poziomie dokumentów.

Priorytet operatorów jest następujący. Najwyższy mają operatory: cudzysłów, apostrof oraz pałka. Potem kolejno spacja, przecinek i na końcu gwiazdka.

Przykład 1Zapytanie:"ala ma kota", jacek i agatka, "pojechali"

spowoduje, że poszukiwane będą dokumenty, które:1. zawierają frazę ala ma kota i jednocześnie2. zawierają zdanie, w którym występuje (w dowolnej formie) słowo jacek i słowo agatka (spójnik i

jest pomijany jako tzw. stopword) i jednocześnie3. zawierają słowo pojechali (dokładnie w tej formie)

Przykład 2Zapytanie:Makłowicz|Okrasa, makaron|spagetti|spaghetti

spowoduje, że poszukiwane będą dokumenty, które:1. zawierają zdania ze słowami Makłowicz lub Okrasa, a jednocześnie,2. zawierają zdania ze słowami makaron lub spagetti lub spaghetti.

Przykład 3Zapytanie'ala ma kota', pies Pankracy * Makłowicz|Okrasa

spowoduje, że poszukiwane będą dokumenty, które:1. zawierają frazę z wyrazami ala, ma, kota (w dowolnej formie, np. "ala mieć kot") i jednocześnie

zawierają zdanie, w którym występuje (w dowolnej formie) słowo pies i słowo Pankracy lub2. zawierają zdania ze słowami Makłowicz lub Okrasa.

10.2.4.12 Funkcje agregująceFunkcje agregujące to funkcje działające w trakcie grupowania rekordów, wyznaczające pewną wartość na podstawie wszystkich wartości zadanej cechy należących do jednej grupy. Przykładami funkcji agregujących mogą być funkcje wyliczające sumę lub wartość średnią grupowanej cechy czy też funkcja zwracająca liczbę rekordów należących do grupy. Wyszukiwarka ma udostępniać następujące funkcje:

funkcja Opis

97

Page 98: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

sum(cecha) wylicza sumę wartości cechy wchodzących w skład grupy.

avg(cecha) wylicza średnią wartości cechy o nazwie wchodzących w skład grupy.

count() dla każdej grupy zwraca liczbę należących do niej rekordów.

concat(cecha) skleja wartości cechy należące do grupy w jeden tekst używając jako łącznika sekwencji #:#.

min(cecha) zwraca najmniejszą wartość cechy wchodzącą w skład grupy.

max(cecha) zwraca największą wartość cechy wchodzącą w skład grupy.

Argument cecha oznacza nazwę pola (cechy) dokumentu lub określonego w zapytaniu aliasu tego pola, dla którego chcemy wyliczyć wartość funkcji. Nazwy cech w przypadku funkcji agregujących nie poprzedzamy dwukropkiem.Funkcje sum i avg mogą być używane tylko i wyłącznie dla cech typu liczbowego, funkcja concat tylko i wyłącznie dla cech typu tekstowego, a pozostałe funkcje dla cech dowolnego typu.

108.2.4.13 Ranking wynikówJak zostało wcześniej wspomniane, wyspecyfikowanie w polu sort parametrów metody query kolumny specjalnej score spowoduje wyliczenie rankingu wyników, czyli względnej wartości określającej jakość dopasowania danego wyniku do zapytania. Wyliczanie tej wartości ma sens tylko dla zapytań pełnotekstowych.Wartość score ma dwa składniki: składnik dynamiczny D oraz składnik statyczny S. Składnik statyczny, to wartość pola d_rank zdefiniowana dla dokumentu (np. przy jego dodawaniu metodą addDocument). Natomiast wartość składnika dynamicznego jest wyliczana na podstawie:

● liczby zdań zawierających szukaną frazę,● pozycji tych zdań w dokumencie,● wagi cechy w której znaleziono szukaną frazę, definiowanej przez użytkownika przy tworzeniu

indeksu za pomocą parametru t_rank.Końcowy wynik score jest sumą składnika dynamicznego i statycznego: score = D + S

Składowa dynamiczna jest znormalizowaną liczbą z przedziału 0.0 – 1.0, przy czym w każdym zbiorze wyników, wynik najlepiej dopasowany otrzymuje wartość 1.0. Składowa statyczna (pole d_rank) może być dowolną liczbą zmiennoprzecinkową większą bądź równą 0.0. Jak łatwo zauważyć, im większa będzie wartość d_rank (czyli składowej statycznej) tym mniejsze będzie znaczenie składowej dynamicznej.

10.2.4.14Metoda tokenize

98

Page 99: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Metoda tokenize służy do zamiany zadanego zapytania (tekstu) na ciąg tokenów. Tokenem może być, np. pojedyncze słowo, operator, znak specjalny. Jednym z zastosowań może być sprawdzenie jak wyszukiwarka rozumie nasze zapytanie, w przypadku, gdy wyniki zwracane przez metodę query nie zgadzają się z naszymi oczekiwaniami.Argumenty:{ "index" => "nazwa_indeksu","value" => "zapytanie_do_tokenizacji" }

Pole value zawiera tekst (string), który ma zostać poddany tokenizacji.

Zwracana wartość:{ "status" => "OK", "time" => czas_wykonania_zapytania_przez_silnik(integer),"parts" => [ { "tokens" => [

wartość_tokenu_1,wartość_tokenu_2,{

"token" => wartość_tokenu_3,"info" => informacja_o_tokenie_3

},...

},{

"operator" => operator_typu_pierwszego_1},{

"operator" => operator_typu_drugiego_1 "tokens" => [

wartość_tokenu_4,wartość_tokenu_5,{

"token" => wartość_tokenu_6,"info" => [

informacja_1_o_tokenie_6,informacja_2_o_tokenie_6,...

]},...

},...

]}

99

Page 100: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

lub informacja o błędzie.

W polu time metoda zwraca czas wykonania tokenizacji w milisekundach. Wyniki tokenizacji są w polu parts. Jest to lista części, na jakie dzielą zadany tekst występujące w nim operatory. Każda część to albo lista tokenów, różnych od operatora, albo operator pierwszego typu, tzn. działający na poziomie dokumentów przecinek ( , ) albo gwiazdka ( * ), albo operator drugiego typu, tzn. apostrof ( '' ), cudzysłów ( "" ) albo pałka ( | ) wraz z listą związanych z nim tokenów. Każdy pojedynczy token różny od operatora jest zwracany w postaci stringa, w przypadku, gdy jest to zwykłe słowo albo w postaci słownika, z polami token (gdzie trzymana jest wartość tokenu) oraz info (gdzie znajduje się informacja czym jest dany token, np. skrót, stopword, itp.).

Przykład 1Zapytanie:"A potem Miś idzie I nie wie gdzie..."

zwróci odpowiedź z następującą wartością pola parts:[{'tokens': [{'info': ['STOP_WORD'], 'token': 'a'}, 'potem', u'miś', 'idzie', {'info': ['STOP_WORD'], 'token': 'i'}, {'info': ['STOP_WORD'], 'token': 'nie'}, 'wie', {'info': ['STOP_WORD'], 'token': 'gdzie'}, {'info': ['STOP_WORD', 'SPECIFIC'], 'token': '.'}, {'info': ['STOP_WORD', 'SPECIFIC'], 'token': '.'}, {'info': ['STOP_WORD', 'SPECIFIC'], 'token': '.'}]}]

Przykład 2Zapytanie"Część pierwsza * część druga, trzecia, tak to jest* \"kiedy się wie\" że trzeba 'napisać' zapytanie, całkiem fajne* i ładne|brzydkie|"

zwróci odpowiedź z następującą wartością pola parts:[ {'tokens': [u'część', 'pierwsza']}, {'operator': 'OR_DOC'}, {'tokens': [u'część', 'druga']}, {'operator': 'AND_DOC'}, {'tokens': ['trzecia']}, {'operator': 'AND_DOC'}, {'tokens': ['tak', {'info': ['STOP_WORD'], 'token': 'to'}, {'info': ['STOP_WORD'], 'token': 'jest'}]}, {'operator': 'OR_DOC'}, {'operator': 'NO_NORM', 'tokens': ['kiedy', u'się', 'wie']}, {'operator': 'AND_DOC'}, {'tokens': [{'info': ['STOP_WORD'], 'token': u'że'}, {'info': ['STOP_WORD'], 'token': 'trzeba'}]}, {'operator': 'AND_DOC'}, {'operator': 'SH_NORM', 'tokens': [u'napisać']}, {'operator': 'AND_DOC'}, {'tokens': ['zapytanie']}, {'operator': 'AND_DOC'}, {'tokens': [u'całkiem', 'fajne']}, {'operator': 'OR_DOC'}, {'tokens': [{'info': ['STOP_WORD'], 'token': 'i'}]}, {'operator': 'AND_DOC'}, {'operator': 'OR_SENT', 'tokens': [u'ładne', 'brzydkie']}, {'operator': 'AND_DOC'}, {'tokens': [{"token": '|', "info" : ["SPECIFIC"]}]}]

10.2.4.15 Metoda correctMetoda correct służy do korygowania błędów w zapytaniu użytkownika. W wyniku działania zwraca poprawioną frazę, o którą mogło chodzić użytkownikowi. Typowym zastosowaniem tej metody jest funkcja „Czy chodziło Ci o?”.

Argumenty:{ "query" => "zapytanie_do_korekty","index" => "nazwa_indeksu" }

100

Page 101: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Pole query zawiera frazę, która ma zostać skorygowana, natomiast pole index określa zasób tematyczny na podstawie którego dokonywana będzie korekta zapytania.

Zwracana wartość:{ "status" => "OK","correct" => "skorygowane_zapytanie","details" => ["informacja1", "informacja2", ...],"time" => czas_wykonania_w_ms }lub informacja o błędzie.

W polu correct metoda zwraca skorygowane zapytanie, w polu details dodatkowe informacje na temat wykonanej korekty, a w polu time czas wykonania korekty w milisekundach.Wartością pola details jest lista stringów. W tej chwili może ona zwierać następujące wartości:

literał Znaczenie

diacritic korekta dotyczyła tylko i wyłącznie znaków diakrytycznych

punctuation korekta dotyczyła tylko i wyłącznie znaków interpunkcyjnych

10.2.4.16 Metoda suggestMetoda suggest generuje listę podpowiedzi, czyli fraz podobnych do zadanej frazy lub jej fragmentu. Lista ta jest uporządkowana według subiektywnej miary jakości podpowiedzi. Na jej początku znajdują się frazy, które funkcja uznała za najbardziej trafne.

Argumenty:{ "query" => "zapytanie_lub_jego_część","index" => "nazwa_indeksu","trait" => "nazwa_cechy" }Pole query zawiera zapytanie lub jego fragment, dla którego mają zostać znalezione podpowiedzi. Pola index i trait to odpowiednio nazwy indeksu i cechy, której wartości stanowią podstawę do wyszukania podpowiedzi.Argument trait, jeśli nie jest określony, przyjmuje wartość domyślną any oznaczającą, że podpowiedzi wybierane będą ze zbioru ogólnego. Inne wartości argumentu trait, zależą od struktury danego indeksu.

Zwracana wartość:{"suggest" => [ "res1", "res2", …, "res10" ],"status" => "OK""time" => czas_wykonania_w_ms }

101

Page 102: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Pole suggest zawiera tablicę 10 stringów, będących podpowiedzią dla zapytania query, w przypadku braku podpowiedzi dla danego indeksu, zwracana jest pusta lista. Metoda ta może również zwrócić informację o błędzie (np. jeśli podano błędne parametry wywołania).

10.2.4.17 Metoda systemInfoMetoda systemInfo pozwala uzyskać informacje dotyczące systemu wyszukiwarki, takie jak np. wersja silnika wyszukiwawczego czy lista dostępnych indeksów.

Argumenty:brakZwracana wartość:

{"engine_version" => "id_wersji_silnika_wyszukiwawczego","indices" => [ {"name" => "nazwa_indeksu_1",

"active" => True/False (wartość boolean) },{"name" => "nazwa_indeksu_2", …} ]

}lub informacja o błędzie.

10.2.4.18 Metoda indexInfoMetoda indexInfo pozwala uzyskać różne informacje dotyczące indeksu o zadanej nazwie, takie jak np. informacje statystyczne o liczbie zaindeksowanych dokumentów.

Argumenty:{ "index" => "nazwa_indeksu" }Zwracana wartość:

{ "status" => "ok", "documents" => "liczba_dokumentów_w_indeksie", "sentences" => "liczba_zdan_w_indeksie" }lub informacja o błędzie.

10.2.5 Skróty i stopwordsPodczas tworzenia indeksu metodą createIndex możemy użyć opcjonalnych parametrów abbreviations i stopwords. Pierwszy z nich służy do określenia ścieżki do pliku ze skrótami, których chcemy wyszukiwać w naszym indeksie. Dzięki temu będziemy mogli wyszukać dokumenty zawierające interesujące nas frazy wysyłając zapytania o związane z nimi skróty. Jeśli np. zdefiniujemy ZP jako skrót dla Zakład Produkcyjny, to w odpowiedzi wyszukiwarki na zapytanie o wartość „ZP” znajdą się wszystkie dokumenty zawierające frazę Zakład Produkcyjny. Każda linia pliku definiującego skróty dla danego indeksu ma następujący format:fraza --> skrót albofraza ==> skrótW pierwszym przypadku skrót jest zdefiniowany dokładnie dla podanej frazy, w drugim dodana jest normalizacja. Zatem definicja:

102

Page 103: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Bank Kredytowy --> BK spowoduje, że w odpowiedzi na zapytanie o „BK” znajdą się tylko te dokumenty, które zawierają tą frazę w takiej właśnie postaci.

Definicja:Bank Kredytowy ==> BK spowoduje, że w odpowiedzi na zapytanie o „BK” znajdą się wszystkie dokumenty zawierające frazę Bank Kredytowy w dowolnej formie gramatycznej, a więc np. Banku Kredytowego, Banki Kredytowe, itp.

Parametr stopwords służy do określenia ścieżki do pliku ze słowami, które uważamy za nieistotne podczas wyszukiwania. Słowa te nie będą brane pod uwagę przez wyszukiwarkę przy znajdywaniu odpowiedzi na pytanie. Przykładowo dla zapytania: duży biały kotnormalnie wyszukiwane będą wszystkie dokumenty, które w zadanej cesze, mają zdanie zawierające jednocześnie słowa duży, biały i kot (w dowolnej formie, o ile nie wyłączymy normalizacji)Jeśli jednak słowo duży znajdzie się na liście stopwords, wyszukiwane będą wszystkie dokumenty, które w zadanej cesze, mają zdanie zawierające jednocześnie tylko słowa biały i kot.Plik definiujący stopwords ma format:stopword1stopword2stopword3...

10.3 Moduł podświetlający frazy w tekściePojedyncze orzeczenie może składać się z kilku, bądź nawet kilkunastu stron. Portal Orzeczeń ułatwia wyszukiwanie w treści konkretnego orzeczenia podświetlając w nim każde wystąpienie podanej przez użytkownika frazy.Moduł podświetlający frazy musi wyszukiwać fraz niezależnie od fleksji. Każde znalezienie frazy musi być zaopatrzone dodatkową informacją o poziomie dopasowania tzn. czy wszystkie słowa z wyszukiwanej frazy zostały znalezione.Moduł będzie operować na tekście w formacie HTML. Znalezione wystąpienia fraz nie mogą być zależne od formatowania tekstu (tagów html). Musi być możliwe podświetlenie fraz bez modyfikacji struktury dokumentu.

10.3.1 API10.3.1.1 Protokół komunikacyjnyModuł podświetlający wybrane frazy w treści orzeczeń musi działać na zasadzie serwera HTTP, który udostępnia swoje zasoby zgodnie z konwencją REST, a komunikaty przesyłane pomiędzy klientem a serwerem powinny być serializowane do formatu JSON lub XML. Przykłady komunikatów w poniższym opisie prezentowane są przy pomocy formatu JSON.

10.3.1.2 Typy danych

103

Page 104: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

MatchTypeTyp MatchType reprezentuje sposób dopasowania zadanego zapytania do znalezionej przez funkcję matchQuery podfrazy. Przyjmuje wartości:

● Phrase - dopasowanie mocne. Zaznaczane jest, gdy w tekście wystąpi cała podana przez użytkownika fraza.

● Word - dopasowanie słabe. Zaznaczane jest, jeśli jakieś słowo należało do podanego zapytania.

MatchTypeAnnotationAdnotacja o dopasowaniu do zadanego zapytania:{ "@type" : "matchTypeAnnotation", "matchType" : MatchType}

RichTextTyp RichText reprezentuje tekst podzielony na paragrafy. Program traktuje takie paragrafy rozłącznie tzn. zdanie bądź fraza nie może występować na przecięciu dwóch paragrafów.

{ "paragraphs": [ "paragraf_1", "paragraf_2", "paragraf_3", ... ] }

AtomAtom reprezentuje pojedynczy, niepodzielny token, czyli najmniejszą rozważaną przez silnik część tekstu.{ "leftWhite" : "true" | "false", "rightWhite" : "true" | "false","text" m: "tekst" }

AnnotatedTextTyp AnnotatedText służy do reprezentacji tekstu, w którym niektóre kawałki zostały zaznaczone i nazwane. Obiekt AnnotatedText odpowiada bezpośrednio tekstowi, który był argumentem funkcji tzn. pominięcie wszystkich adnotacji i sklejenie ze sobą atomów i białych znaków spowoduje stworzenie dokładnie tego samego tekstu, dla którego został stworzony.

{ "phrases" : [ AtomPhrase|WhitePhrase|AnnotatedPhrase, AtomPhrase|WhitePhrase|AnnotatedPhrase, ... ] }

Obiekt AnnotatedText ma postać drzewa. Liśćmi w drzewie mogą być obiekty typu:● AtomPhrase - pojedynczy atom,

{ "@type" : "atomPhrase", "atom" : Atom}

● WhitePhrase - zbitka białych znaków występujących pomiędzy atomami.{ "@type" : "whitePhrase",

104

Page 105: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

"whites": "tekst"}

PhrasedTextTyp PhrasedText zwracany jest przez funkcje operujące na całym tekście i jest kolekcją obiektów AnnotatedText.

{ "paragraphs": [ AnnotatedText, AnnotatedText, ... ] }

10.3.1.3 API podświetlaniaFunkcjonalność podświetlania trafień w tekście realizowana jest przy pomocy funkcji metchQuery udostępnianej przez serwer podświetlający. W ogólności funkcja matchQuery służy do znajdowania i zaznaczania w tekście podanego zapytania. Istnieją dwa rodzaje dopasowań opisane typem MatchType (Phrase, Word).Moduł podświetlający zaznacza zapytania niezależnie od fleksji. Nie bierze też pod uwagę białych znaków i znaków interpunkcyjnych. Wynik działania funkcji matchQuery dla przykładowego tekstu:

Tekst: Jan Kowalski nigdy nie był na wakacjach. Kowalski jest domatorem, z Janem lepiej nie rozmawiać o urlopie.

Zapytanie:Jan Kowalski

Wynik:<Phrase>Jan Kowalski</Phrase> nigdy nie był na wakacjach. <Word>Kowalski</Word> jest domatorem, z <Word>Janem</Word> lepiej nie rozmawiać o urlopie.

Funkcja matchQuery jako argument przyjmuje obiekt RichText oraz zapytanie, które ma zostać znalezione i zaznaczone w tekście. W wyniku zwraca obiekt typu PhrasedText, w którym znalezione dopasowania zaznaczone są adnotacjami MatchTypeAnnotation.

10.4 Testy modułu wyszukiwania (przeprowadzony po zawarciu umowy w sprawie zamówienia publicznego w sytuacji, o której mowa w pkt III pkt 4) niniejszego dokumentu)Na potrzeby weryfikacji poprawności funkcjonowania modułu wyszukiwania przeprowadzone zostaną testy sprawdzające zgodność modułu do wyszukiwania z wymaganiami opsianymi w rodziale II. B pkt 8. Test zostanie przeprwadzony w terminie wyznaczonym przez Zamawiającego (nie później jednak niż w terminie 2 tygodni od dnia zawarcia umowy w sprawie zamówienia publicznego) i w siedzibie Zamawiającego. Czas przeznaczony na przeprowadzenie testu to maksymalnie 2 godziny. Z testu zostanie sporządzony Protokół odbioru testów zgodny z załącznikiem nr 1 do Opisu przedmiotu zamówienia.Weryfikacji zostaną poddane następujące funkcjonalności:

● poprawna integracja z Portalem Orzeczeń,● wyszukiwanie literalne po treści orzeczeń oraz polach metrykalnych orzeczenia, ● wysoka jakość i szybkość wyszukiwania pełnotekstowego,● składanie zapytań pełnotekstowych zgodnie z opisem w rodziale II. B. 8.2.4.11,

105

Page 106: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

● wyszukiwanie niezależne od fleksji, ● pomijanie słów nieistotnych, ● automatyczne generowanie streszczeń orzeczeń złożonych ze zdań najbardziej reprezentujących

wynik dla wyszukiwanej frazy na wzór tezy orzeczenia,● wyszukiwanie wspierane przez analizę bliskości słów w zdaniach,● mechanizm oceny znalezionych orzeczeń wyrażony w procentach ze względu na dopasowanie do

wyszukiwanej frazy,● mechanizm automatycznej korekty błędów we wpisanych przez użytkowników zapytaniach i

podpowiadania najbardziej prawdopodobnej, poprawnej wersji,● mechanizm sugerowania zapytań w oparciu o dane obecne w bazie, w tym sugerowanie sygnatur,

nazwisk sędziów, haseł tematycznych czy słów kluczowych pochodzących z treści oraz metryk orzeczeń prezentowanych w portalu,

● mechanizm kolorowania (podświetlania) wyszukiwanego tekstu.

Wynik testu uważa się za negatywny, jeżeli nie zostaną spełnione funkcjonalności, które w ramach testu zostały poddane weryfikacji.

11. Schemat infrastruktury centralnej

106

Page 107: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

107

Page 108: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Komponenty systemu znajdują się w trzech wyróżnionych strefach:● Frontend - część systemu odpowiedzialna za udostępnianie usługi użytkownikom, dostęp do

aplikacji odbywa się za pośrednictwem Internetu, zawiera instancje serwerów aplikacyjnych (Frontend) oraz serwer konfiguracji (Conf).

● Backend - część systemu w której aktualizowane i przechowywane są dane oraz realizowane są procesy biznesowe, odbywa się tam również proces anonimizacji oraz przygotowania danych do publikacji, zawiera 11 serwerów aplikacyjnych (Back office), serwer aktualizacji (Update), serwer kopii zapasowych (Backup).

● Strefa sądów - zawiera serwer lub serwery bazodanowe systemu repertoryjno-biurowego, zainstalowane jest oprogramowanie eksportujące orzeczenia do infrastruktury centralnej, przeglądarka internetowa użytkownika wewnętrznego (client).

Serwery FrontendPrzeznaczenie: Zadaniem serwerów w tej strefie jest udostępnianie usługi webowej użytkownikom sieci Internet. Ruch sieciowy sesji użytkowników zewnętrznych jest balansowany pomiędzy co najmniej dwoma serwerami Frontend za pomocą urządzenia Load Balancer, które nie jest komponentem Systemu.

Zainstalowane oprogramowanie: Debian GNU/Linux 6.0 amd64, Serwer aplikacji Apache Tomcat 7.0, Oracle Java 7 oraz aplikacje: ncourt-client, gram-server, Neurosoft Neuroscope 3.6.2

Serwer konfiguracji (Conf)

Przeznaczenie: Zadaniem tego serwera jest zarządzanie konfiguracją wszystkich serwerów frontendowych (konfiguracja systemu i aplikacji).

Zainstalowane oprogramowanie: Debian GNU/Linux 6.0 amd64, serwer polityki konfiguracji CFEngine (frontend), Nagios 3.2 (monitorowanie infrastruktury).

Serwer UpdatePrzeznaczenie: Zadaniem tego serwera jest wykonywanie zbiorczej aktualizacji (indeksów nscope zawierających wszystkie opublikowane orzeczenia).Indeksy działające na tym serwerze są wypełniane przez serwery Back office. Po zakończeniu tworzenia indeksu jest on kopiowany na wszystkie serwery frontendowe. Serwer ten pośredniczy również w procesie natychmiastowego wycofywania dokumentów z publikacji oraz pełni rolę zarządcy konfiguracji serwerów Back office.

Zainstalowane oprogramowanie: Debian GNU/Linux 6.0 amd64, Neurosoft Neuroscope 3.6, oprogramowanie wykonujące aktualizacje, serwer polityki konfiguracji CFEngine (backend),

108

Page 109: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

serwer NFS, Nagios 3.2 (monitorowanie infrastruktury).

Serwery Back office 1 - 11

Serwery backendowe odpowiedzialne będą za: odbiór danych, w szczególności nowych orzeczeń do anonimizacji, z poszczególnych sądów automatyczną anonimizację pobranych orzeczeń, umożliwienie ich weryfikacji oraz ręcznej anonimizacji (Aplikacja webowa Panel

administracyjny), przygotowanie danych do aktualizacji.

Zainstalowane oprogramowanie: Linux Debian, server aplikacji JAVA (tomcat lub jetty), aplikacja ncourt-client, Debian GNU/Linux 6.0 amd64, serwer aplikacji Apache Tomcat 7.0, Oracle Java 7 oraz aplikacje: ncourt-admin, gram-server, serwer bazy danych PostgreSQL, oprogramowanie wykonujące automatyczną anonimizację.

Serwer Demo

Przeznaczenie: Serwer wersji demo Aplikacji webowej Panel Administracyjny

Zainstalowane oprogramowanie: Linux Debian, server aplikacji JAVA (tomcat lub jetty), aplikacja ncourt-client, Debian GNU/Linux 6.0 amd64, serwer bazy danych PostgreSQL.

Serwer ETPCZPrzeznaczenie: Serwer aplikacji webowej prezentującej orzecznicwto Europejskiego Trybunału Praw Człowieka w Internecie oraz serwer aplikacji webowe do zarządzania publikacjami orzecznictwa.

Zainstalowane oprogramowanie: Debian GNU/Linux 8.0 amd64,

Serwer aplikacji Apache Tomcat 7.0, Oracle Java 7 oraz aplikacje: Neurocourt Admin, Neurosoft Neuroscope

Serwery BackupPrzeznaczenie: backup baz danych Systemu.

Zainstalowane oprogramowanie: Debian GNU/Linux 6.0 amd64 Bacula

109

Page 110: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Serwer bazodanowy w strefie sądówSerwer systemu repertoryjno-biurowego, z którym łączy się importer danych w trakcie pracy. Zainstalowane oprogramowanie:

Windows Server w wersji 2003 lub wyższej w wersjach 32 i 64 bitowych, MS SQL Server w wersji 2000 i lub wyższej.

Użytkownicy wewnętrzni (client)Wykorzystywane przeglądarki internetowe: Microsoft Internet Explorer 6 i wyższe, Mozilla Firefox 17 i wyższe, Chrome w każdej wersji.

Zamawiający zastrzega, że w skład infratruktury centralnej może wchodzić również inne oprogramowanie niż wyszczególnione powyżej, pełniące funkcję pomocniczą lub będące składową systemu operacyjnego.. Zamawiający zastrzega możliwość, że przedstawione wersje oprogramowania są wersjami najstarszymi w rzeczywistym systemie mogą występować nowsze wersje oprogramowania.

Infrastruktura sieciowa SystemuWszystkie serwery, stacje robocze oraz sieciowe elementy aktywne (switche) realizujące funkcjonalności sieci LAN posiadają przepustowość minimum 100 Mbit/s (Ethernet).Sieć WAN realizowana jest poprzez łącza dedykowane o przepustowości nie mniejszej niż 1 Mbit/s.Za prawidłowe działanie tych elementów infrastruktury sieciowej oraz łączy telekomunikacyjnych jak i za zapewnienie nowych elementów lub ich serwis odpowiada Zamawiający.

Infrastruktura sprzętowa SystemuSerwery w systemie występują tylko w architekturze x86. Zamawiający posiada serwery typu RACK i BLADE. Za prawidłowe działanie tych elementów infrastruktury jak i za dostawę nowych elementów odpowiada Zamawiający. Infrastruktura sprzętowa zlokalizowana jest w co najmniej jednej serwerowni znajdujących się pod adresami:

1. ul. Namysłowska 8, 50-304, Wrocław,2. ul. Komandorska 16, 50-022, Wrocław.

III. Zobowiązania Wykonawcy1. Usługa wsparcia technicznego i serwisu będzie świadczona przez Wykonawcę przez okres 36

(trzydzieści sześć) miesięcy, począwszy od pierwszego dnia następnego miesiąca po zawarciu Umowy. Natomiast w sytuacji, o której mowa w pkt III.4 Załącznika nr 1 do Umowy – Opis przedmiotu zamówienia przez okres 36 (trzydzieści sześć) miesięcy, począwszy od pierwszego dnia następnego miesiąca po przeprowadzeniu i odebraniu bez zastrzeżeń testów, o których mowa w pkt II.9.5. oraz pkt II.10.4. Załącznika nr 1 do Umowy – Opis przedmiotu zamówienia co zostanie potwierdzone podpisanym bez zastrzeżeń przez obie Strony Protokołem odbioru testów (Załącznik nr 1 do Załącznika nr 1 do Umowy – Opis przedmiotu zamówienia). W tym okresie realizowane będą również fakultatywnie Modyfikacje.

110

Page 111: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

2. udzielenie gwarancji na usługi objęte przedmiotem niniejszej Umowy na okres 12 miesięcy liczonych od dnia każdorazowego wykonania zgodnie z Umową zadań/zleceń składających się na usługę wsparcia technicznego i Serwisu.

3. modyfikacje Systemu o łącznej fakultatywnej pracochłonności do …….. (w zależności od treści oferty) osobogodzin w czasie trwania Umowy, zwane dalej „Modyfikacjami”.

4. W sytuacji, gdy Wykonawca nie jest w stanie świadczyć usługi wsparcia technicznego i serwisu dla Oprogramowania Licencjonowanego:

a) Wykonawca obowiązany jest do zastąpienia Oprogramowania Licencjonowanego oprogramowaniem równoważnym spełniającym wymogi z pkt II.B niniejszego dokumentu tak, aby Wykonawca mógł wywiązać się ze świadczenia usługi wsparcia technicznego i serwisu (utrzymanie) oraz zapewnił niezakłócone działanie Portalu Orzeczeń z dniem rozpoczęcia świadczenia usługi serwisu i wsparcia technicznego (utrzymanie), będącej przedmiotem niniejszego przetargu. W takim przypadku Wykonawca udzieli sądom powszechnym w rozumieniu art. 1 ustawy z dnia 27 lipca 2001 r. Prawo o ustroju sądów powszechnych (Dz. U. z 2013 r. poz. 427 ze zm.), tj. wszystkim sądom apelacyjnym, okręgowym i rejonowym wchodzącym w skład organizacji Sądownictwa Powszechnego Rzeczpospolitej Polskiej niezależnie od zmian w strukturze organizacyjnej, odpłatnej, niewyłącznej, nieograniczonej czasowo licencji, co najmniej na następujących polach eksploatacji, tj. - korzystanie na dowolnej liczbie stanowisk, - trwałe lub czasowe zwielokrotnienia jakimikolwiek środkami i w jakiejkolwiek formie, - w zakresie utrwalania i zwielokrotniania dokumentacji - wytwarzania określoną techniką egzemplarzy oraz w zakresie obrotu egzemplarzami, na których zostało one utrwalone - użyczenia lub najmu egzemplarzy, obejmującej następujące komponenty: moduł do automatycznej anonimizacji, serwer/silnik wyszukiwania pełnotekstowego, dodatki rozszerzające wyszukiwarkę o korektor zapytań (correct), generator natychmiastowych podpowiedzi oraz serwer/silnik analizy językowej, plugins rozszerzeń modułu analizy językowej o dodatek do podświetlania wybranych haseł w tekstach, dodatek do anonimizacji tekstów, dodatek do wykrywania imion i nazwisk (wraz z podręczną bazą imion i nazwisk) oraz o dodatek do wykrywania nazw geograficznych (wraz z podręczną bazą nazw). Wykonawca najpóźniej w pierwszym dniu rozpoczęcia świadczenia usługi serisu Systemu dostarczy Zamawiającemu dokument licencyjny. Wykonawca przeprowadzi instalację oraz konfigurację oprogramowania w infrastrukturze testowej na potrzeby przerowadzenia odbioru. Warunkiem odbioru jest przeprowadzenie testu opisanego w rozdziale II. B. pkt 9.5 oraz II. B. 10.4. Przed rozpoczęciem świadczenia usługi wsparcia technicznego i serwisu Wykonawca uruchomi oprogramowanie licencjonowane na środowisku produkcyjnym w infratrstrukturze centralnej.

b) Zamawiający i Użytkownik Końcowy nie mają prawa do:a. sprzedaży, wypożyczania, wynajmu czy też odstępowania oprogramowania

licencjonowanego jakimkolwiek osobom fizycznym, osobom prawnym czy też

111

Page 112: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

jednostkom organizacyjnym nie posiadającym osobowości prawnej bez pisemnej zgody Wykonawcy oraz na zasadach innych aniżeli opisane w niniejszej Umowie,

b. usuwania bądź zmiany znaków handlowych i informacji o Wykonawcy podanych w elementach oprogramowania licencjonowanego i materiałach towarzyszących,

c. modyfikowania kodu wynikowego jakiegokolwiek komponentu wchodzącego w skład oprogramowania licencjonowanego, przeprowadzania odwrotnej kompilacji ani odwrotnej asemblacji,

d. wykonywania kopii programów i danych, będących elementami oprogramowania licencjonowanego, w celach innych, niż związane z funkcjonowaniem Systemu Portal Orzeczeń,

e. samodzielnego oddzielania od całości oprogramowania licencjonowanego jakiejkolwiek jego części, kopiowania i umieszczania jej w jakimkolwiek innym miejscu, niż tam, gdzie dokonana została instalacja oprogramowania licencjonowanego w sposób inny, niż związany z funkcjonowaniem Systemu Portal Orzeczeń

f. samodzielnego dokonywania zmian w działaniu oprogramowania licencjonowanego oraz wszelkich innych zmian technicznych bez zgody Wykonawcy,

g. wprowadzania do nazewnictwa obowiązującego w oprogramowaniu licencjonowanego zmian, dodatków lub skrótów, które zniekształcają treść lub formę,

h. wykorzystywania oprogramowania licencjonowanego w innych celach niż wdrożenie i użytkowanie Systemu Portal Orzeczeń.

c) Zamawiający zobowiązany jest do ochrony oprogramowania licencjonowanego przed odtworzeniem kodu źródłowego, dekompilacją, wprowadzaniem do obrotu, udzielaniem sublicencji na rzecz podmiotów trzecich, wykorzystywaniem w inny sposób niż wynikający z przedmiotu Umowy, trwałym lub czasowym zwielokrotnianiem w całości lub w części za wyjątkiem utworzenia kopii bezpieczeństwa.

d) Zamawiający w celu należytego wykonania przedmiotu Umowy wyraża zgodę na korzystanie z kodów źródłowych Oprogramowania Centralnego, wyłącznie w celu i na czas realizowania przez Wykonawcę jego obowiązków umownych. Kody źródłowe do Oprogramowania Centralnego zostaną przekazane Wykonawcy w terminie 7 (siedmiu) dni od dnia zawarcia Umowy.

e) Wykonawca zobowiązuje się najpóźniej w ostatnim dniu realizacji Umowy do zwrotu użyczonych kodów źródłowych jak i również wszelkich nośników lub ich kopii wytworzonych w związku z realizacją obowiązków określonych niniejszą Umową.

f) Wykonawca każdorazowo wraz z przekazywaną wersją Oprogramowania Centralnego, przekaże Zamawiającemu kompletne kody źródłowe wraz z ich opisem i komentarzem, a także wszystkie elementy umożliwiające instalację i uruchomienie systemu. Opis i komentarz muszą umożliwiać ich samodzielną interpretację, modyfikację i rozwój przez Zamawiającego. Kody źródłowe powinny zawierać w szczególności opis architektury, opis zawartości, budowy i organizacji kodu źródłowego poszczególnych programów, opis poszczególnych programów, opis klas, zmiennych i atrybutów klas, opis protokołów transmisji danych oraz opis struktury baz danych.

g) W zakresie oprogramowania, na które Wykonawca udzieli Zamawiającemu licencji Zamawiający wymaga zdeponowania kodu źródłowego.

112

Page 113: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

h) Wykonawca zdeponuje w terminie dwóch tygodni od dnia zawarcia Umowy kody źródłowe do Oprogramowania Licencjonowane oraz wszystkie niezbędne biblioteki i moduły umożliwiające prawidłową kompilację dostarczonego oprogramowania wraz z deklaracją przekazania pełni praw majątkowych na wszystkich polach eksploatacji, w tym w szczególności wymienionych odpowiednio w art. 50 i art. 74 ust. 4 ustawy o prawie autorskim i prawach pokrewnych w przypadku zaniechania lub zawieszenia na okres dłuższy niż 180 dni rozwoju oprogramowania licencjonowanego przez Wykonawcę, jego następcę prawnego lub inny podmiot będący właścicielem oprogramowania, a także w przypadku ogłoszenia upadłości, zaprzestania prowadzenia działalności gospodarczej, likwidacji podmiotu posiadającej autorskie prawa majątkowe do oprogramowania licencjonowanego lub innego zdarzenia skutkującego wykreśleniem Wykonawcy z rejestru przedsiębiorców z wyłączeniem przypadków wykreślenia z rejestru z przyczyny łączenia, podziału, przejęcia spółki.

i) Do kodów źródłowych oprogramowania musi zostać dołączona szczegółowa procedura kompilacji, aktualna dokumentacja techniczna oraz aktualna dokumentacja użytkowa..

j) Kody źródłowe i szczegółową procedurę dot. przebiegu czynności kompilacji winny być zdeponowane w wersji elektronicznej, redundantnie - na dwóch nośnikach o gwarantowanej trwałości (nie krótszej niż 10 lat) w zalakowanych kopertach.

k) Zamawiający – w ramach wynagrodzenia umownego należnego Wykonawcy - oferuje depozyt. W przypadku, kiedy Wykonawca nie skorzysta z tej oferty, będzie on zobowiązany zabezpieczyć inne, odpowiednie miejsce deponowania (np. kancelarię notarialną), ponosząc przy tym wszelkie koszty z tym związane na okres 10 lat.

l) Na podstawie zdeponowanych kodów źródłowych, w terminie wskazanym w ust. 2 niniejszego paragrafu, Wykonawca w obecności specjalistów Zamawiającego dokona pełnej kompilacji całego oprogramowania z wykorzystaniem nośników przeznaczonych do depozytu. Poprawne działanie tak skompilowanego oprogramowania oznaczać będzie, że zdeponowane kody źródłowe są właściwe i kompletne.

m) W przypadku zmian w kodzie źródłowym oprogramowania, związanych z naprawami oprogramowania, aktualizacjami, przeglądami dokonywanymi przez Wykonawcę, Wykonawca dołączy do depozytu nową wersję kodu źródłowego lub „łatkę” (patch), której uruchomienie powoduje automatyczne uaktualnienie oprogramowania do najnowszej wersji.

n) Wykonawca zapewni i przeprowadzi aktualizację kodów źródłowych Oprogramowania Dedykowanego i ich wersjonowania co najmniej raz na kwartał.

IV. Sposób realizacji zobowiązania Wykonawcy

1. Szczegółowe zasady realizacji usługi gwarancyjnej1) Usługa gwarancyjna obejmuje wszystkie wykryte podczas eksploatacji Systemu błędy tj.

uszkodzenia, wady i nieprawidłowości w funkcjonowaniu Systemu powstałe w związku z realizacją przez Wykonawcę usługi utrzymaniowej.

2) W zakresie klasyfikacji błędów Systemu, ewidencji zgłoszeń, procedur odbioru, czasu realizacji zgłoszeń, naliczania kar umownych, odbioru usług mają zastosowanie odpowiednio postanowienia rozdziału IV, pkt 2 niniejszego dokumentu.

113

Page 114: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

2. Zasady realizacji usługi wsparcia technicznego i serwisu1) Ogólne zasady realizacji usługi:

a. Wykonawca świadczy usługę wsparcia technicznego i serwisu Systemu Portal Orzeczeń dla Zamawiającego oraz Użytkowników Końcowych wymienionych w Załączniku nr 2 do Umowy.

b. Usługa wsparcia technicznego i serwisu obejmuje:i. wszystkie komponenty Systemu opisane w rozdziale I,

ii. systemy operacyjne, w oparciu o które funkcjonuje System w infrastrukturze centralnej,

iii. zadania administracji wszystkimi komponentami Systemu,iv. obsługa kopii zapasowych baz danych Systemu i ich odtwarzania,v. usuwanie awarii Systemu oraz skutków awarii Systemu, sprzętu i

oprogramowania, a także wszelkich negatywnych skutków spowodowanych korzystaniem z błędnie działających wersji Systemu we wszystkich lokalizacjach funkcjonowania Systemu,

vi. usuwanie błędów w oprogramowaniu Systemu,vii. realizację konfiguracji Systemu,

viii. wytworzone Modyfikacje,ix. utrzymanie wersji demonstracyjnej Portalu Orzeczeń,x. w przypadku zmian w Systemie wynikających z instalacji nowych wersji na

skutek naprawy błędów lub Modyfikacji, Wykonawca dokona aktualizacji wersji demonstracyjnej Portalu Orzeczeń,

xi. zadania optymalizacji funkcjonowania Systemu w uzgodnieniu z Zamawiającym (w przypadku braku dojścia do porozumienia za wiążące uznaje się stanowisko Zamawiającego), obejmujące optymalizację kodu źródłowego Systemu, systemu baz danych w infrastrukturze centralnej, serwerów aplikacyjnych. Kryterium optymalizacji jest wydajność Systemu (czas dostępu do danych za pośrednictwem usługi nie może przekroczyć 3 sekund, logowanie do systemu nie może trwać dłużej niż 7 sekund).

xii. odtworzenie Systemu i przywrócenie do pełnej funkcjonalności po katastrofie, pod pojęciem katastrofy Zamawiający rozumie uszkodzenie lub całkowite zniszczenie większości istniejącej infrastruktury systemowej, kiedy do przywrócenia sprawności Systemu niezbędne są działania związane z odtwarzaniem zniszczonych zasobów sprzętowych i danych,

xiii. monitorowanie i rekomendowanie Zamawiającemu konieczność zainstalowania poprawek i nowych wersji, na poszczególnych elementach Systemu dla środowisk technologicznych w infrastrukturze centralnej, takich jak oprogramowania:

sieciowych systemów operacyjnych, aplikacyjne, bazodanowe, komunikacyjne (o ile system zawiera tego typu oprogramowanie), do prezentacji treści,

114

Page 115: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

oraz pozostałego oprogramowania technologicznego i narzędziowego będącego w posiadaniu Zamawiającego, a niezbędnego do bezpiecznego działania Systemu,

a następnie ich wdrożenie na wszystkich środowiskach wskazanych przez Zamawiającego lub na podstawie zgłoszeń instalacji poprawek żądanych do aktualizacji przez Zamawiającego wraz przygotowaniem dokumentacji instalacyjno – konfiguracyjnej (wdrożeniowej) jak i instalacji nowych środowisk na poziomie infrastruktury centralnej we wszystkich środowiskach Zamawiającego (produkcyjnych, testowych oraz aktualizacji tych instrukcji przy każdej istotnej zmianie.

c. Realizacja usługi wsparcia technicznego i serwisu będzie wykonywana w sposób niezakłócający normalnego funkcjonowania Użytkownika Końcowego pomiędzy godziną 7:00 a 18:00 w dni robocze, za wyjątkiem błędu typu Awaria, który realizowany będzie nieprzerwanie niezależnie od dnia i godziny.

d. Realizacja usługi wsparcia technicznego i serwisu będzie wykonywana z należytą starannością, zgodnie z wytworzoną w ramach realizacji systemu dokumentacją (w szczególności dokumentacją techniczną i eksploatacyjną) oraz zasadami współczesnej wiedzy technicznej.

e. Wykonawca zapewnia obsługę niemożliwych do zdiagnozowania i usunięcia w sposób zdalny (za pośrednictwem łącza VPN lub telefonicznie) błędów na miejscu u Użytkowników Końcowego lub u Zamawiającego przez specjalistę ze strony Wykonawcy.

f. Zamawiający zastrzega sobie prawo do modyfikacji Systemu przez Zamawiającego lub przez podmiot trzeci. Zamawiający każdorazowo po wprowadzeniu modyfikacji poinformuje Wykonawcę o wykonanych zmianach i przekaże aktualny kod źródłowy Systemu do wdrożenia przez Wykonawcę.

2) Wykonawca gwarantuje miesięczną dostępność usługi Aplikacja webowa Portal Orzeczeń w sieci Internet na poziomie nie mniejszym niż 99,8% pod rygorem naliczenia kar umownych na zasadach określonych w Umowie. Poziom dostępności będzie mierzony przy wykorzystaniu zewnętrznego narzędzia monitorującego usługę będącego w posiadaniu Zamawiającego.Rodzaje kwalifikacji zgłoszeń oraz czas ich realizacji.

Rodzaj problemu

Opis Czas reakcji

Czas na usunięcie błędu

Awaria Zatrzymanie eksploatacji Systemu w sieci Internet (strefa Frontend w infrastrukturze centralnej), utrata danych lub naruszenie ich spójności, w wyniku której niemożliwej jest prowadzenie bieżącej działalności Systemu.

1 godzina od zgłoszenia przez Zamawiającego

do 4 godzin od zgłoszenia przez Zamawiającego lub Użytkownika Końcowego w godzinach od 6:00 do 22:00 oraz 8 godzin od zgłoszenia w godzinach od 22:00 do 6:00.

Błąd Krytyczny

Błąd uniemożliwiający poprawne wykorzystanie Systemu lub jego istotnej funkcjonalności do realizacji procesów

1 godzina od zgłoszenia

do dwóch dni roboczych od zgłoszenia przez Zamawiającego lub

115

Page 116: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

biznesowych. Zakłócenie pracy Systemu polegające na ograniczeniu realizacji lub uciążliwości w realizacji jednej z funkcji Systemu. Działanie Systemu prowadzące do otrzymywania błędnych wyników przetwarzania danych lub praca Systemu, niezgodna z dokumentacją.

Po udostępnieniu rozwiązania czasowego pozwalającego na realizację błędnie działającej usługi (wdrożeniu obejścia) błąd krytyczny staje się Błędem Niekrytycznym.

przez Zamawiającego

Użytkownika Końcowego

Błąd Niekrytyczny

Zakłócenie pracy Systemu mogące mieć wpływ na jego funkcjonalność, natomiast nieograniczające zdolności operacyjnych Systemu w obrębie obsługi i wspomagania procesów biznesowych, niebędące Awarią, ani Błędem Krytycznym.

Błędy drobne, błędy ergonomiczne lub kosmetyczne błędy (np. format pól, brak walidacji, literówki, błędne nazwy, konieczność zbędnych „kliknięć” w celu uzyskania pożądanego przez użytkownika rezultatu, itp.).

2 godziny od zgłoszenia przez Zamawiającego

do 7 dni roboczych od daty zgłoszenia przez Zamawiającego lub Użytkownika Końcowego

Konfiguracja

1. Dostosowanie Systemu z uwagi na: zmiany prawa w tym w szczególności:

Zarządzenia Ministra Sprawiedliwości z dnia 12 grudnia 2003 r. w sprawie organizacji i zakresu działania sekretariatów sądowych oraz innych działów administracji sądowej (Dz. Urz. MS. Nr 5, poz. 22 ze zm.), ustawy z dnia 23 kwietnia 1964 r. Kodeks cywilny (t.j. Dz. U. z 2014 r. poz. 121 ze zm.), ustawy z dnia 17 listopada 1964 r. Kodeks postępowania cywilnego (t.j. Dz. U. z 2014 r., poz. 101 ze zm.), ustawy z dnia 6 czerwca 1997 r. Kodeks karny (Dz. U. Nr 88, poz. 553 ze zm.), ustawy z dnia 6 czerwca 1997 r. Kodeks postępowania karnego (Dz. U. Nr 89, poz. 555 ze zm.), ustawy z dnia 6 czerwca 1997 r. Kodeks karny wykonawczy (Dz. U. Nr 90, poz. 557 ze zm.), ustawy z dnia 24 sierpnia 2001 r. Kodeks postępowania w sprawach o wykroczenia (t.j. Dz. U. z 2013 r., poz. 395

8 godzin od zgłoszenia przez Zamawiającego

w terminie ustalonym przez Zamawiającego w porozumieniu z Wykonawcą, w przypadku braku porozumienia Stron, termin realizacji zostanie ustalony samodzielnie przez Zamawiającego

116

Page 117: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

ze zm.), ustawy z dnia 26 października 1982 r. o postępowaniu w sprawach nieletnich (t.j. Dz. U. z 2014 r., poz. 382 ze zm.), ustawy z dnia 26 czerwca 1974 r. – Kodeks pracy (Dz. U. z 2014 r. poz. 1502ze zm.), ustawy z dnia 29 sierpnia 1997 r. o ochronie danych osobowych (Dz. U. z 2014 r. poz. 1182 ze zm.), ustawa z dnia 6 września 2001 r. o dostępie do informacji publicznej (t.j. Dz. U. z 2014 r. poz. 782 ze zm.) ustawy z dnia 5 sierpnia 2010 r. o ochronie informacji niejawnych (Dz. U. z 2010 r. Nr 182, poz. 1228 ze zm.,), ustawy z dnia 17 lutego 2005 r. o informatyzacji działalności podmiotów realizujących zadania publiczne (t.j. Dz. U. z 2014 r. poz. 1114) oraz wydane na podstawie wskazanej ustawy rozporządzenia wykonawcze, ustawy z dnia 27 lipca 2001 r. o ochronie baz danych (Dz. U. Nr 128, poz. 1402 ze zm.), rozporządzenie Ministra Spraw Wewnętrznych i Administracji z dnia 29 kwietnia 2004 r. w sprawie dokumentacji przetwarzania danych osobowych oraz warunków technicznych i organizacyjnych, jakim powinny odpowiadać urządzenia i systemy informatyczne służące do przetwarzania danych osobowych (Dz. U. Nr 100, poz. 1024 ze zm.), ustawy z dnia 27 lipca 2001 r. Prawo o ustroju sądów powszechnych (Dz. U. z 2015 r., poz. 133 ze zm.) oraz wydane na podstawie art. 41 § 1 przywołanej ustawy rozporządzenie Ministra Sprawiedliwości z dnia 25 czerwca 2015 r. Regulamin urzędowania sądów powszechnych (Dz. U. z 2015 r., poz. 925),

zmiany organizacyjno - administracyjnych sądów, w tym w szczególności utworzenie nowego sądu, likwidacja sądu, utworzenie nowego wydziału, likwidacja wydziału,

zmiany w systemie repertoryjno-biurowym Użytkownika Końcowego lub zmiana systemu repertoryjno-biurowego,

zmiany konfiguracji Importera na żądanie Użytkownika Końcowego,

zmiany w środowisku teleinformatycznym Użytkownika Końcowego i Zamawiającego,

zmiany w konfiguracji sieci WAN w

117

Page 118: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

oparciu, o którą funkcjonuje System, aktualizacje przeglądarek internetowych, wdrożenie u Użytkownika Końcowego

modułu integracyjnego, przez który należy rozumieć część systemu repertoryjno - biurowego (SAWA/Sędzia2/Praetor) stanowiącą interfejs dostępu do danych będących przedmiotem importu w postaci uporządkowanej o aktualnej zawartości, Wykonawca dostosuje importer, tak, aby funkcjonował w oparciu o moduł integracyjny i wdroży lub zaktualizuje program u Użytkowników Końcowych zgodnie z Wykazem Lokalizacji Systemu Portal Orzeczeń (Załącznik nr 2 do Umowy) w terminie 2 miesięcy od dnia wdrożenia modułu integracyjnego u Użytkownika Końcowego,

2. Instalacja poprawek i nowych wersji do środowiska technologicznego Systemu.

3. Analiza i przeciwdziałanie zagrożeniom wynikającym z podatności komponentów Systemu lub systemów operacyjnych w infrastrukturze centralnej na cyberprzestępczość.

4. Optymalizacja funkcjonowania Systemu w uzgodnieniu z Zamawiającym, obejmująca optymalizację kodu źródłowego Systemu, systemu baz danych w infrastrukturze centralnej, serwerów aplikacyjnych.

5. Monitorowanie najczęściej zadawanych zapytań do wyszukiwarki orzeczeń w Portalu Orzeczeń w celu analizy trafności i dokonywanie w związku z tym stosownych praco rozwojowych w porozumieniu z Zamawiającym.

6. Monitorowanie najczęściej występujących błędów z programie do anonimizacji w celu dokonywania zmian rozwojowych mających na celu polepszenie skuteczności automatycznej anonimizacji w porozumieniu z Zamawiającym.

118

Page 119: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

3) Procedura realizacji zgłoszeń (Awaria, Błąd Krytyczny, Błąd Niekrytyczny, Konfiguracja)a. Zamawiający przewiduje następujące kanały komunikacji:

i. za pośrednictwem formatki ekranowej zgłoszenia w aplikacji Service Desk udostępnionej przez Zamawiającego,

ii. w przypadku zgłoszeń typu Awaria, dodatkowo telefonicznie lub faxem na numer wskazany przez Wykonawcę.

b. Zgłoszenie przesłane przez Zamawiającego lub Użytkownika Końcowego po godz. 16.30 w dniu roboczym Wykonawca przyjmuje do realizacji następnego dnia roboczego o godz. 7.30 z wyłączeniem Awarii, które przyjmuje się do realizacji niezwłocznie po zarejestrowaniu zgłoszenia.

c. Za moment zgłoszenia uznaje się datę i godzinę zarejestrowania zgłoszenia w aplikacji Service Desk lub moment zgłoszenia telefonicznego dla zgłoszenia typu Awaria.

d. Zamawiający kategoryzuje zgłoszenia na formularzu zgłoszenia zgodnie z kwalifikacją określoną w tabeli zawierającej rodzaje kwalifikacji zgłoszeń.

e. Prawidłowa realizacja zgłoszenia, musi być zweryfikowane i potwierdzona w testach akceptacyjnych przez Zamawiającego lub Użytkownika Końcowego. Czas poświęcony na weryfikację zgłoszenia nie jest wliczany w czas jego realizacji przez Wykonawcę.

f. W sytuacji kiedy rozwiązanie zgłoszenia wymaga zainstalowania nowej wersji Systemu, Wykonawca wykona aktualizację w środowiskach testowym oraz produkcyjnym w infrastrukturze centralnej zgodnie z procedurą opisaną w rozdziale IV, pkt. 5.

g. Uwagi zgłoszone przez przedstawiciela Użytkownika Końcowego bezpośrednio do Wykonawcy, dotyczące funkcjonowania i funkcjonalności, a skutkujące Modyfikacjami Systemu będą niezwłocznie, tj. nie później niż w ciągu 2 dni roboczych przekazywane do Zamawiającego za pośrednictwem Service Desku.

4) Procedura zgłaszania Zamawiającemu konieczności zainstalowania poprawek i nowych wersji poszczególnych elementów Systemu dla środowisk technologicznych.

a. Wykonawca przedstawia listę poprawek do zainstalowania do każdego środowiska technologicznego w cyklach kwartalnych. Zamawiający zawsze może żądać dodatkowego cyklu wykonania poprawek lecz nie więcej niż dwa razy na kwartał.

b. Zamawiający w terminie 7 dni roboczych od dnia dostarczenia listy poprawek do zainstalowania informuje Wykonawcę, które ze zgłoszonych poprawek będą podlegać realizacji.

c. Wykonawca przeprowadza wdrożenie poprawek podlegających realizacji w terminie 14 dni roboczych od dnia przekazania zatwierdzenia ich przez Zamawiającego.

d. Za nieterminowe wdrożenie poprawek podlegających realizacji naliczone zostaną kary umowne jak za Błąd Niekrytyczny.

5) Wykonawca przekazuje Zamawiającemu każdorazowo nową wersję Systemu za pomocą środków komunikacji elektronicznej zawierającą w szczególności;

i. numer wersji,ii. kompletne kody źródłowe,

iii. wykaz zmian w stosunku do poprzedniej wersji,

119

Page 120: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

iv. instrukcję użytkownika jeżeli wymagała aktualizacji ze szczególnym uwzględnieniem sposobu postępowania w związku z wprowadzonymi zmianami a także skutkami zmian wersji oprogramowania od strony użytkowej,

v. zaktualizowaną dokumentację.

4. Realizacja Modyfikacji Systemu 1) Pod pojęciem Modyfikacji Systemu Zamawiający rozumie zmiany w Systemie inne niż określone

w rozdziale IV, pkt 3, w tym w szczególności dodanie nowych funkcjonalności, zmiany kodu źródłowego inne niż wynikające z usługi wsparcia i serwisu.

2) Zamawiający może zlecić Wykonawcy Modyfikacje systemu, których pracochłonność liczona jest w wymiarze ….. (w zależności od treści oferty) osobogodzin w okresie trwania usługi wsparcia technicznego i serwisu.

3) Procedura zgłaszania zleceń Modyfikacji oraz kanały komunikacjia. Zgłoszenie Modyfikacji wykonywane będą za pośrednictwem za pośrednictwem formatki

ekranowej zgłoszenia w aplikacji Service Desk. b. Zamawiający określa kryteria jakościowe produktów Modyfikacji w zgłoszeniu zlecenia

Modyfikacji.c. Strony ustalają w drodze porozumienia pracochłonność i termin wykonania Modyfikacji.

Od momentu przedstawienia opisu Modyfikacji Wykonawca zobowiązany jest w ciągu nie więcej niż pięcu dni roboczych przedstawić szacowaną wycenę co do pracochłonności realizacji oraz termin wykonania pod rygorem naliczenia kar umownych. W razie braku porozumienia pomiędzy Stronami lub braku stanowiska Wykonawcy w tym zakresie wiążące jest stanowisko Zamawiającego.

d. Zamawiający potwierdza zlecenie Modyfikacji lub rezygnuje z niego.e. Potwierdzenie zlecenia Modyfikacji Systemu oznacza uzgodnienie przez strony terminu

wykonania Modyfikacji oraz jej pracochłonności. Datą, od której jest liczony termin realizacji Modyfikacji jest datą potwierdzenia zlecenia.

f. Przed przystąpieniem do wykonania Modyfikacji Systemu, Wykonawca przedstawia Zamawiającemu do akceptacji projekt zmian z elementami wskazanymi przez Zamawiającego. Zamawiający dokona akceptacji projektu zmian lub zgłosi uwagi w terminie nie dłuższym niż 2 dni robocze od dnia przedstawienia projektu. W przypadku zgłoszenia uwag, Wykonawca przedstawi ponownie projekt do akceptacji w terminie nie dłuższym niż 2 dni robocze.

g. Wykonawca przystępuje do wykonania Modyfikacji po akceptacji projektu zmian przez Zamawiającego.

h. Po wykonaniu Modyfikacji Wykonawca przedstawia Zamawiającemu nową wersję aplikacji Systemu i/lub środowiska technologicznego Systemu wraz ze stosowną dokumentacją.

i. Zamawiający weryfikuje przekazaną wersję sprawdzając, czy w zmodyfikowanej nowej wersji aplikacji Systemu zostały uwzględnione wymagania określone na formularzu zgłoszenia oraz w zaakceptowanym przez Zamawiającego projekcie zmian, a także czy przekazana wersja nie zawiera błędów i dokumentacja jest kompletna.

j. Wyniki weryfikacji Zamawiający przekazuje Wykonawcy drogą elektroniczną w postaci raportu z testowania wersji.

120

Page 121: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

k. W przypadku zgłoszenia zastrzeżeń przez Zamawiającego względem dostarczonej Modyfikacji, Wykonawca dokona stosownych poprawek. Po ponownym dostarczeniu przez Wykonawcę Modyfikacji zostanie przeprowadzony jej odbiór zgodnie z procedurą opisaną w pkt. h – j. Terminowa realizacja Modyfikacji będzie dochowana pod warunkiem, że bezusterkowy odbiór nastąpi w terminie ustalonym zgodnie z pkt. c.

l. W przypadku braku błędów uniemożliwiających poprawną i zgodną z określonymi kryteriami jakościowymi eksploatację zmodyfikowanej aplikacji Zamawiający dokonuje odbioru nowej wersji aplikacji.

m. Prawidłowość wykonania Modyfikacji zostanie potwierdzona podpisanym bez zastrzeżeń przez obie Strony Protokołem odbioru Modyfikacji (Załącznik nr 8 do Umowy).

5. Procedura instalacji nowej wersji Systemu1) Każdorazowo w przypadku powstania nowej wersji Systemu, jej instalacja na środowisku

produkcyjnym następuje na zlecenie Zamawiającego.2) Wykonawca, przez czas trwania Umowy, będzie prowadził ewidencję dostarczanych wersji

Systemu, zawierającą:a. numer kolejny,b. numer wersji,c. datę zatwierdzenia wersji przez Zamawiającego / polecenie instalacji wersji,d. datę instalacji wersji,e. skrótowy opis zmian, które wersja uwzględnia,f. ewentualne uwagi.

3) Wykonawca przedstawia ewidencję, o której mowa w ust. 2 w cyklu kwartalnym w ciągu siedmiu dni roboczych po zakończeniu kwartału z pominięciem dni ustawowo wolnych od pracy, lub niezwłocznie na żądanie Zamawiającego, nie później niż w ciągu siedmiu dni roboczych z zaznaczeniem wersji dystrybuowanych w danym kwartale, w postaci elektronicznej i papierowej.

4) Wykonawca przeprowadzi aktualizację kodów źródłowych oprogramowania i ich wersjonowania co najmniej raz na kwartał. Aktualizacja musi zapewnić zgodność wersji oprogramowania zainstalowanego w infrastrukturze centralnej oraz u Użytkownika Końcowego z aktualną wersją kodu źródłowego.

5) Na koniec każdego kwartału oraz na żądanie Zamawiającego Wykonawca przedstawi pakiet obejmujący kody źródłowe programu oraz instrukcję kompilacji i konsolidacji poszczególnych elementów oprogramowania, a także wszystkie elementy dodatkowe służące kompilacji i konsolidacji, z uwzględnieniem wszystkich etapów tworzenia oprogramowania na założonej linii technologicznej.

6. Dokumentacja1. Wykonawca zaktualizuje dokumentację zgodnie z zaakceptowanymi przez Zamawiającego

standardami w dziedzinie dokumentowania. 2. Wykonawca zobowiązuje się do opracowania dokumentacji w języku polskim w jednym

wydrukowanym egzemplarzu oraz w wersji elektronicznej w formacie DOC i formacie PDF w przypadku dokumentów tekstowych oraz innych formatach w przypadku diagramów oraz schematów drogą elektroniczną.

121

Page 122: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

3. Wszystkie dokumenty tworzone w ramach realizacji przedsięwzięcia charakteryzowały się będą wysoką jakością, na którą będą miały wpływ, takie czynniki jak:

a. Czytelna i zrozumiała struktura zarówno poszczególnych dokumentów jak i całej dokumentacji z podziałem na rozdziały, podrozdziały i sekcje

b. Zachowanie standardów, a także sposób pisania, rozumianych jako zachowanie jednolitej i spójnej struktury, formy i sposobu prezentacji treści poszczególnych dokumentów oraz fragmentów tego samego dokumentu jak również całej dokumentacji.

c. Kompletność dokumentu, rozumiana jako pełne, bez wyraźnych, ewidentnych braków przedstawienie omawianego problemu obejmujące całość z danego zakresu rozpatrywanego zagadnienia. Oznacza to w szczególności jednoznaczne i wyczerpujące przedstawienie wszystkich zagadnień w odniesieniu do systemu.

d. Spójność i niesprzeczność dokumentu, rozumianych jako zapewnienie wzajemnej zgodności pomiędzy wszystkimi rodzajami informacji umieszczonymi w dokumencie, jak i brak logicznych sprzeczności pomiędzy informacjami zawartymi we wszystkich przekazanych dokumentach oraz we fragmentach tego samego dokumentu.

4. Dokumentacja musi być przekazana w formatach umożliwiających jej późniejszą edycję.5. W przypadku zmian w Systemie wynikających z instalacji nowych wersji na skutek naprawy

błędów lub Modyfikacji, Wykonawca dokona aktualizacji dokumentacji Systemu. 6. Cała dokumentacja, o której mowa powyżej, podlegała będzie akceptacji Zamawiającego.

122

Page 123: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

Załącznik nr 1

PROTOKÓŁ ODBIORUTESTU

SPORZĄDZONY DNIA .....................................................W........................................................

W SPRAWIE ODBIORU TESTU SYSTEMU PORTAL ORZECZEŃ.

ZAMAWIAJĄCYSĄD APELACYJNY WE WROCŁAWIU

53-330 WROCŁAW, UL. ENERGETYCZNA 4

WYKONAWCA.................................................

.................................................

.................................................

Osoby obecne w trakcie Testu ze strony Zamawiającego:………………………………………………………………………………………………………

Osoby obecne w trakcie Testu ze strony Wykonawcy:………………………………………………………………………………………………………

1. Test poprawności anonimizacjia. Procentowy wynik Testu poprawności anonimizacji: …..b. Procentowy wynik Testu prawidłowego przetwarzania plików xml: …..

Wynik Testu poprawności anonimizacji POZYTYWNY/NETATYWNY*

2. Test modułu wyszukiwania

Wynik Testu modułu wyszukiwania POZYTYWNY/NETATYWNY*

Uwagi:

123

Page 124: Załącznik nr 1 - opis przedmiotu zamó Web vieworzeczenia z uzasadnieniami w formacie DOC, DOCX, RTF; ... "ala ma kota", jacek i agatka, "pojechali" spowoduje, że poszukiwane będą

………………………………………………………………………………………………………

………………………………………………………………………………………………………

………………………………………………………………………………………………………

………………………………………………………………………………………………………

………………………………………………………………………………………………………

Podpisy:

Zamawiający Wykonawca

imię, nazwisko, stanowisko

pieczątka instytucji

imię, nazwisko, stanowisko,

pieczątka instytucji

124