Ką DI gali ir ko negali rašyti
Šiame straipsnyje
Viešo statistikos puslapio viršuje čia gali būti du ar trys sakiniai, aprašantys, ką skaitiklis nuveikė šį mėnesį. Juos rašo kalbos modelis. Modelis nieko neišgalvoja, ir verta aprašyti tai užtikrinančią tvarką, nes akivaizdus šios funkcijos kūrimo būdas tokios savybės neturi.
Serveris vykdo SQL, nusprendžia, kurį skaičių verta paminėti, ir parašo užklausą. Modelis vieną faktą paverčia vienu sakiniu prašoma kalba. Tada serveris perskaito atsakymą ir išmeta jį, jei jame yra ne iš užklausos gautas skaitmuo.
Taigi vienintelė modelio laisvė – formuluotė. Jis nesirenka, kas įdomu, neskaičiuoja ir neapvalina. Jis suteikia tai, ko negali šablonai: vienuolika kalbų, kurios skamba kaip kalba.
Trys patikros ir klaida, kuriai skirta kiekviena
Nė viena neparašyta iš atsargumo. Kiekviena yra todėl, kad 2026 m. rugpjūčio 17 d. nutiko konkreti klaida. Mažam modeliui duoti du vieno skaitiklio faktai — aktyviausia savaitės diena pirmadienis su 46 % ir 76 % lankytojų iš Lenkijos tarp 5 šalių, — o jis parašė sakinį, teigiantį, kad aktyviausias buvo trečiadienis ir kad 46 % lankytojų atėjo iš Lenkijos.
Dvi skirtingos klaidos viename sakinyje, ir nė viena nėra išgalvotas skaičius.
- Kiekvienas skaitmuo turi būti užklausoje. Tai aptinka išgalvotus skaičius. Yra pasekmė, kurią vėliau lengva suprasti klaidingai: užklausos instrukcijų dalyje visai nėra skaitmenų. Ji sako „vienas ar du sakiniai“, niekada „1-2“, nes kitaip 1 ir 2 taptų leistinais atsakymo skaičiais.
- Po vieną užklausą kiekvienam faktui. Tai aptinka sukeistus skaičius. Ankstesnis 46 buvo tikras — jis tiesiog priklausė kitam faktui, o patikra pagal skaičių aibę to nemato. Jei modelis mato tik vieną faktą, nėra ko sukeisti.
- Pavadinimai taip pat tikrinami. Tai aptinka „pirmadienio“ virtimą „trečiadieniu“. Pavadinimas yra fakte tiksline kalba, atsakyme jis turi pasirodyti pažodžiui, o kiti tos grupės pavadinimai – ne.
Ko jos neaptinka
Tai priklauso tam pačiam paaiškinimui kaip visa kita. Du dalykai praslysta.
Sakinio, teigiančio netiesą be skaitmenų — „dauguma lankytojų“, kai jų buvo 46 %, — neaptinka nė viena iš trijų patikrų. Vietoj to sumanymas tai suvaldo: vertinimas jau yra serverio pasirinktame fakte, o ne modelio laisvėje.
Ir sakinys apie kitą objektą nei jo faktas praslysta, jei tik skaitmenys sutampa. Nuo to saugo tik nurodymų besilaikantis modelis. Požymiams su pavadinimu — savaitės diena, įrenginys, robotas, puslapis — tai padengia ir trečioji patikra.
Patikra, aptinkanti tik išgalvotus skaičius, ankstesnį sakinį būtų praleidusi nepakeistą. Tai buvo tikri skaičiai netinkamose vietose – gedimo tipas, pasirodantis tik išvestyje, niekada pačioje idėjoje.