olski.werdykt¶
Werdykt o zdaniu: zgłoszenie wraz z tym, co autor ma przeczytać.
Werdykt mówi o zdaniu więcej niż to, do której klasy je liczy,
bo autor ma na niego zareagować.
Zdanie o dwóch odczytaniach dostaje wiersz z tymi odczytaniami,
a Verdict.explain pokazuje, gdzie one się rozchodzą;
znaleziskiem, czyli tym, co autor ma poprawić, jest zdanie,
które od odczytania dzieli jeden znak (Naprawa),
a wieloznaczność nim nie jest
(docs/subset.md#wieloznaczność-jest-odpowiedzią-a-nie-znaleziskiem);
zdanie odrzucone dostaje miejsce, na którym rozbiór stanął,
a zatrzymania każde takie miejsce, bo pierwsze zasłania następne.
Skąd te odczytania się biorą, mówi Verdict.morfologia:
rozchodzą się w rolach, a zaczynają w lemacie i znaczniku formy.
Kto pyta o cały tekst, dostaje nad_tekstem i Podsumowanie,
czyli tyle wpisów (Zdanie), ile zdań,
oraz jedną odpowiedź policzoną z nich regułą.
Wpis niesie obok werdyktu to, czego z jednego zdania nie widać:
zdania stojące przed nim w akapicie i zaimek wskazujący na dwie rzeczy naraz.
Warstwa ta ani nie wnosi wieloznaczności, ani jej nie zdejmuje,
bo jest wypowiedzią o warstwach pod nią (docs/architecture.md).
Gramatykę czyta gotową z olski/subset/,
a segmentację, po której werdykt pada, z olski/segmentacja.py.
Podział na moduły jest tu decyzją i idzie za tym, o co dany moduł pyta.
olski.werdykt.wykazy liczy z lasu wykaz wypisywany pod każdym odczytaniem,
olski.werdykt.odrzucone płaci rozbiorem drugim za dwie odpowiedzi
o napisie, którego gramatyka nie wyprowadza,
olski.werdykt.zdanie składa z tego werdykt o jednym zdaniu,
a olski.werdykt.tekst pyta o cały tekst.
Import idzie tędy w jedną stronę i żaden z tych czterech nie zawraca:
wykazy i odrzucone nie wiedzą o zdaniu,
a zdanie nie wie o tekście.
Podkreślenie w nazwie znaczy tu prywatne dla pakietu, a nie dla modułu:
poza niego wychodzą same nazwy wyliczone w __all__.
ODNIESIENIE = 'niejasne odniesienie'
module-attribute
¶
ODNIESIENIE_W_ZDANIU = 'niejasne odniesienie w zdaniu'
module-attribute
¶
POPRAWKA = 'poprawka jednego znaku'
module-attribute
¶
WIELOZNACZNE = 'wieloznaczne'
module-attribute
¶
ZGŁOSZENIA = (WIELOZNACZNE, POPRAWKA, ODNIESIENIE, ODNIESIENIE_W_ZDANIU)
module-attribute
¶
ZNALEZISKA = (POPRAWKA, ODNIESIENIE)
module-attribute
¶
BRAK_ODCZYTANIA = 'brak odczytania'
module-attribute
¶
FRAGMENT = 'fragment'
module-attribute
¶
NIEDOMKNIĘTE = 'unclosed'
module-attribute
¶
__all__ = ['BRAK_ODCZYTANIA', 'check', 'dalsze_zatrzymania', 'FRAGMENT', 'nad_tekstem', 'Naprawa', 'NIEDOMKNIĘTE', 'niespełnione_żądania', 'ODNIESIENIE', 'ODNIESIENIE_W_ZDANIU', 'OdczytaniaFormy', 'Podsumowanie', 'POPRAWKA', 'Verdict', 'werdykt', 'WIELOZNACZNE', 'zatrzymania', 'Zdanie', 'ZGŁOSZENIA', 'ZNALEZISKA', 'Żądanie']
module-attribute
¶
Naprawa
dataclass
¶
Poprawka jednego znaku, po której olski to zdanie czyta.
Klasa jest jedna na wszystkie takie poprawki, bo autorowi mówią one to samo: olski tego zdania nie czyta, a od czytania dzieli je jeden znak. Świadkiem jest w każdej z nich gramatyka, bo poprawka wchodzi tutaj dopiero wtedy, gdy rozbiór poprawionego napisu daje odczytanie. Reguła stojąca na takim świadku nie żąda kalibracji, której brak zamknął pakiet reguł (docs/linter.md#co-zamknęło-pakiet-reguł).
Liczba odczytań idzie razem z poprawką, bo policzona drugi raz żądałaby trzeciego rozbioru nad zdaniem, które werdykt rozebrał już dwa razy.
Source code in olski/werdykt/odrzucone.py
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | |
Podsumowanie
dataclass
¶
Znaleziska nad tekstem i to, o czym olski milczy, dla tego, kto pyta o cały tekst.
Liczby te wychodzą z wpisów jedną regułą — fragment nie jest zdaniem, więc nie wchodzi do mianownika, a zdanie odrzucone jest milczeniem, dopóki nie ma poprawki — i pyta o nie więcej niż jeden wołający, więc policzone u każdego z nich rozjeżdżają się po cichu: mianownik mniejszy o fragment czyta się jak pomiar, a nie jak pomyłka.
Zdanie naprawialne stoi w dwóch licznikach naraz, w naprawialne i w
bez_odczytania, bo gramatyka go nie wyprowadza i pokrycie liczy je
tak samo jak przedtem: znalezisko mówi o autorze, a nie o podzbiorze.
Source code in olski/werdykt/tekst.py
123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 | |
zdań
instance-attribute
¶
wieloznaczne
instance-attribute
¶
naprawialne
instance-attribute
¶
bez_odczytania
instance-attribute
¶
fragmentów
instance-attribute
¶
niejasnych_odniesień
instance-attribute
¶
znalezisk
property
¶
Ile znalezisk narzędzie ma nad tekstem, bez względu na to, które.
Pyta o to kod wyjścia (olski/check.py), bo o samym znalezisku
rozstrzyga tu jedno miejsce, a znalezisko dopisane później dostaje ten
kod wyjścia razem z własnym licznikiem. Wieloznaczność do tej liczby nie
wchodzi (ZNALEZISKA).
ze_zdań(zdania)
classmethod
¶
Podsumowanie tych zdań, choćby przyszły z kilku plików naraz.
Source code in olski/werdykt/tekst.py
173 174 175 176 177 178 179 180 181 182 183 184 185 | |
explain()
¶
Source code in olski/werdykt/tekst.py
187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 | |
__init__(zdań, wieloznaczne, naprawialne, bez_odczytania, fragmentów, niejasnych_odniesień)
¶
Zdanie
dataclass
¶
Jedno zdanie tekstu: werdykt o nim wraz z tym, co dokłada tekst wokół.
Werdykt orzeka o samym zdaniu, a dwa pozostałe pola biorą się z akapitu, bo zdanie samo nie wie, co stoi przed nim.
Source code in olski/werdykt/tekst.py
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
werdykt
instance-attribute
¶
sąsiedztwo
instance-attribute
¶
odniesienia
instance-attribute
¶
zgłoszenia
property
¶
Nazwy zgłoszeń, które olski ma o tym zdaniu, w kolejności ZGŁOSZENIA.
Jedno miejsce mówi, co olski nad zdaniem zgłasza: liczy z niego
Podsumowanie i ocenia je baza sądów (harness/sądy.py).
Napis niepunktowany nie ma żadnego, jak w Verdict.zgłoszenie.
znaleziska
property
¶
Te ze zgłoszeń, które są znaleziskiem (ZNALEZISKA).
__init__(werdykt, sąsiedztwo, odniesienia)
¶
OdczytaniaFormy
dataclass
¶
Forma zdania wraz z odczytaniami, którymi tam stać może, każde napisem.
Odczytanie jest napisem, a nie parą lematu i znacznika, bo oba wydruki wypisują je razem, a rozdzielone kazałyby każdemu z nich składać ten napis osobno.
Source code in olski/werdykt/wykazy.py
29 30 31 32 33 34 35 36 37 38 39 | |
Żądanie
dataclass
¶
Czego czasownik zdania żąda od tego, co w jego pozycji stanęło.
Wiersz jest jeden na obsadzoną pozycję, a nie jeden na rolę, bo jedna rola
obsadza czasem dwie pozycje naraz: Autor doradza czytelnikowi poprawkę.
ma dopełnienie w celowniku obok dopełnienia w bierniku, a czasownik żąda
od nich czego innego.
Source code in olski/werdykt/wykazy.py
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | |
Verdict
dataclass
¶
What olski says about one sentence.
Source code in olski/werdykt/zdanie.py
141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 | |
text
instance-attribute
¶
result
instance-attribute
¶
nielicencjonowane
instance-attribute
¶
zatrzymanie
instance-attribute
¶
naprawa
instance-attribute
¶
punktowane
property
¶
Czy tekst punktuje ten napis jako zdanie.
Mianownik pomiaru pyta o to, a nie o status, bo odpowiedź jest ta
sama nad oboma werdyktami o napisie niepunktowanym i nie kosztuje rozbioru,
którego kosztuje domknięcie
(olski.werdykt.tekst.Podsumowanie).
zgłoszenie
property
¶
Czy narzędzie ma o tym zdaniu coś do powiedzenia.
Wydruk domyślny niesie dwa zgłoszenia: wieloznaczność oraz poprawkę
jednego znaku, a znaleziskiem jest tylko druga
(docs/subset.md#wieloznaczność-jest-odpowiedzią-a-nie-znaleziskiem).
Zaimek wskazujący na dwie rzeczy naraz pada obok werdyktu,
bo rzeczy nazywa zdanie obok (olski/odniesienia.py), więc tutaj go nie ma.
Warunek stoi tu raz, bo pyta o niego wydruk nad każdym zdaniem osobno;
olski.werdykt.tekst.Podsumowanie liczy każde z tych zgłoszeń
nad tekstem i liczy je osobno.
Napis niepunktowany zostaje poza zgłoszeniem także wtedy, gdy poprawkę
ma, bo nagłówek i pozycja listy dochodzą tu jako takie napisy i żadne z
nich nie jest zdaniem, którego autor nie domknął
(docs/extraction.md); wydruk pokazuje je do flagi --zatrzymania.
czytane
property
¶
Czy olski to zdanie czyta.
Nieczytane są trzy: zdanie odrzucone, napis, którego nic nie domyka,
i fragment. O polszczyźnie żadnego z nich olski nie orzeka,
więc wydruk milczy o nich do flagi (olski/check.py).
status
property
¶
Klasa, do której werdykt to zdanie liczy, czyli słowo pomiaru.
Wydruk komendy go nie podaje, bo dzieli zdania po liczbie odczytań,
a nie po tym, czy narzędzie ma o zdaniu co powiedzieć (znalezisko).
Czytają je pomiar pokrycia (olski/pokrycie.py), sondy w harness/
i znaczek na stronie (witryna/skrypt.js).
readings
property
¶
Streszczenia odczytań, każde raz (streszczenia).
Odczytanie jest krotką streszczeń, po jednym na zdanie składowe, więc wpisem tej listy jest krotka, a nie jedno streszczenie.
Lista jest po to, żeby pokazać różnicę między odczytaniami,
a różnicę spoza zasięgu streszczenia nazywa wiersz o konstytuencie
(_rozbieżny), więc powtórzony napis nie zostawia jej nienazwanej.
Liczbę odczytań podaje las (Result.ile),
więc skrócenie tej listy jej nie rusza.
morfologia
property
¶
Czym formy stoją w każdym odczytaniu: wpis na streszczenie z readings.
Wiersz dostaje forma czytana więcej niż jednym sposobem, a odczytania w
nim licencjonują ją w tym kształcie (olski.parse.Leaf.odczytania);
wiersze składa olski.werdykt.wykazy._pod_streszczeniem,
a nad streszczeniem, które zbiera kilka kształtów,
bierze odczytania z każdego z nich.
Wpisów jest tyle, ile streszczeń, więc nad zdaniem urwanym na
olski.parse.MAX_READINGS mówią one o odczytaniach wypisanych.
Zdanie bez ani jednego odczytania dostaje jeden wpis, a w nim każde
odczytanie każdej formy (olski.werdykt.wykazy._morfologia_zdania):
odsiać ich nie ma czym.
Rozstrzyga się to tutaj, a nie w wydruku, bo wydruki są dwa
(olski/check.py i witryna/werdykty.py) i rozjechałyby się po cichu.
rachunki
property
¶
Za co płaci każde odczytanie: wpis na streszczenie z readings.
Wychodzą stąd pozycje policzone, a sumę liczy z nich ten, kto ją pokazuje
(olski.cennik.razem): jest nią miejsce w kolejce odczytań,
bo las porządkuje je sumą cennika po całym drzewie.
Streszczenie zbiera czasem kilka kształtów, a rachunek jest tego, który wyszedł z lasu pierwszy, czyli tego, przez którego to streszczenie stoi tam, gdzie stoi.
żądania
property
¶
Czego czasownik żąda od obsadzonych pozycji: wpis na streszczenie z readings.
Po co ta odpowiedź autorowi i czego ona nie mówi, wywodzi
olski/żądania.py; wpis jest na streszczenie z tego samego powodu, co
przy morfologia, i grupuje go to samo pytanie o las.
Warunku na zdanie odrzucone nie ma i nie ma go czemu stawiać: pozycję obsadza czytanie, a takie zdanie nie ma ani jednego, więc lista wychodzi stąd pusta sama. Morfologia ma tam wpis, bo mówi o formach, a nie o rolach.
rozbieżne
property
¶
Konstytuenty rozbieżne, którym streszczenia naprawdę się różnią.
Jedno streszczenie znaczy, że streszczenie tej różnicy nie widzi
(Rozbieżność), a wypisane byłoby wierszem bez treści.
Warunek stoi tu raz na oba wydruki, na wiersz poleceń i na witrynę,
bo napisany dwa razy rozjechałby się po cichu.
explain(brak_odczytania=BRAK_ODCZYTANIA)
¶
Co narzędzie ma o tym zdaniu do powiedzenia, jednym wierszem.
Nazwa braku przychodzi argumentem, bo dwa tryby nazywają go różnie, a mówią pod obiema nazwami to samo o analizie, więc powód stoi tu raz. Bierze ją samo zdanie odrzucone: poprawka jednego znaku i napis, którego nic nie punktuje jako zdania, mówią autorowi co innego i idą przed nim.
Source code in olski/werdykt/zdanie.py
310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 | |
__init__(text, result, nielicencjonowane, zatrzymanie, naprawa)
¶
zatrzymania(segmenty, grammar=None)
¶
Każde zatrzymanie odrzuconego zdania, a nie samo pierwsze.
Werdykt nazywa jedno miejsce (na_czym_stanęło), a zdanie długie ma ich
kilka i pierwsze zasłania resztę, więc kto pisze pod tę gramatykę, nie widzi z
werdyktu, ile jeszcze poprawek to zdanie zabierze.
Cięcie nie wskazuje usterki ani granicy konstrukcji, tak samo jak jedno zatrzymanie jej nie wskazuje.
Source code in olski/werdykt/odrzucone.py
150 151 152 153 154 155 156 157 158 159 160 161 | |
check(text, grammar=None)
¶
Check every sentence of a text against the grammar.
Bare verdicts and nothing else:
what the surrounding text adds comes with nad_tekstem.
Source code in olski/werdykt/tekst.py
47 48 49 50 51 52 53 | |
nad_tekstem(text, w_zdaniu=False)
¶
Co narzędzie ma do powiedzenia o tekście: wpis na zdanie, w kolejności zdań.
Wejście jest jedno na oba wyjścia — wiersz poleceń (olski/check.py)
i witrynę (witryna/werdykty.py) — bo różnią się one brzegiem, a nie
środkiem: pierwsze drukuje wiersze, drugie składa JSON. Znalezisko dopisane
następne dochodzi przez to w jednym miejscu i w jednym się liczy
(Podsumowanie.ze_zdań).
w_zdaniu przepuszcza flagę do warstwy zaimkowej i pyta o nią sonda
oceniająca, a nie wydruk (olski/odniesienia.py).
Sąsiedztwa liczą się zawsze, choć wiersz poleceń pyta o warstwę
rozstrzygającą dopiero pod flagą: obok rozbioru nie kosztują nic, bo tną
tekst na zdania, a słowa liczą w nich dopiero pod świadkiem
(olski.rozstrzyganie.Sąsiedztwo).
Source code in olski/werdykt/tekst.py
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | |
dalsze_zatrzymania(verdict, grammar=None)
¶
Zatrzymania tego zdania poza tym, które nazwał już werdykt.
Zdanie z czytaniem nie stanęło nigdzie, więc krotka jest wtedy pusta, i tak
samo pusta jest nad fragmentem. Segmentacja idzie tu drugi raz, bo werdykt
segmentów nie niesie (werdykt).
Pierwsze zatrzymanie bierze się z Result.furthest, a nie z rozbioru:
werdykt tę liczbę już policzył,
a rozbiór po całym zdaniu jest najdroższy z całej pętli.
Węzeł stamtąd nazywa tutaj tę samą krawędź,
bo oba wołania olski.segmentacja.morphology biorą ten sam napis.
Source code in olski/werdykt/zdanie.py
421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 | |
niespełnione_żądania(verdict, deklaracja=OSOBY_PROJEKTU)
¶
Pozycje, w których czasownik żąda kogoś, a nikt w nich nie stoi.
Obie połowy pytania spotykają się tutaj: żądanie przychodzi z pliku żądań
(olski.żądania.żąda_osoby), a spełnienie z deklaracji projektu
(olski/osoby.py). Wiersz zostaje po tej pozycji, której żądania nie
spełnia nic z tego, czym jest jej głowa.
Wiersz jest o zdaniu, a nie o odczytaniu, i tym różni się ten wykaz od
Verdict.żądania. Pozycję obsadza czytanie, więc wiersz mówi tyle,
że w którymś z nich stoi rzecz tam, gdzie czasownik żąda kogoś. Zdanie
wieloznaczne ma czytań kilkanaście, a wiersz o jednej pozycji w każdym z nich
ten sam, więc wykaz na odczytanie kazałby przeczytać kilkanaście kopii
jednego wiersza.
Source code in olski/werdykt/zdanie.py
448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 | |
werdykt(zdanie, segmenty, grammar=None, zatrzymanie=True)
¶
Werdykt o zdaniu już zsegmentowanym, wraz z całym podsumowaniem.
Segmenty przychodzą argumentem, a nie powstają tutaj, bo zależą od napisu, a nie od gramatyki: kto pyta o jedno zdanie kilka gramatyk — sonda różnicowa nad prozą — segmentuje je raz i pyta tyle razy, ile ma wariantów.
Zatrzymanie jest najdroższym z podsumowań i jedynym, które wolno pominąć.
Nad zdaniem odrzuconym przechodzi tablicę drugi raz
i unifikuje przy tym przebyte ciała (olski.parse.podsumuj),
a nad prozą, której olski w większości nie wyprowadza,
odrzuconych jest osiem zdań na dziesięć,
więc waży w takim przebiegu więcej niż każde inne podsumowanie.
Czytają je Verdict.explain i kolejka blokerów (olski/pokrycie.py);
kto go nie czyta, prosi o werdykt bez niego.
Flagą, a nie pytaniem leniwym: Result trzymający las liczyłby punkt przy
pierwszym pytaniu, ale przebieg nad bankiem drzew pyta o niego przy każdym
zdaniu odrzuconym, a las porzuca rozmyślnie, bo waży tyle, ile jego tablica
(zmierz_zdanie w harness/pomiar.py).
Napis bez znaku kończącego pyta o zatrzymanie mimo flagi, bo od niego zależy
wtedy sam status: poprawki domykającej szuka się nad analizą, która doszła
do końca (olski.werdykt.odrzucone._naprawa),
a nad napisem punktowanym nie szuka się jej wcale.
Source code in olski/werdykt/zdanie.py
373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 | |