Google hefur kynnt Logica, nýtt rökfræðilegt forritunarmál sem er hannað til að vinna með gögn og þýðir forrit yfir í SQL. Nýja tungumálið er ætlað þeim sem vilja nota rökfræðilega forritunarsetningafræði þegar þeir skrifa gagnagrunnsfyrirspurnir. Eins og er er hægt að keyra SQL kóðann í Google BigQuery eða í PostgreSQL og SQLite gagnagrunnum, þó að stuðningur við þá sé enn á tilraunastigi. Fleiri SQL mállýskur eru áætlaðar í framtíðinni. Kóði verkefnisins er skrifaður í Python og gefinn út undir Apache 2.0 leyfinu.
Logica byggir á Yedalog, öðru gagnavinnslumáli sem þróað var hjá Google, og býður upp á abstrakt stig sem ekki er tiltækt í innfæddum SQL. Fyrirspurnir í Logica eru forritaðar sem safn rökfræðilegra setninga. Einingar, innflutningsaðgerðir og möguleikinn á að nota Logica innan Jupyter Notebook gagnvirka skeljarinnar eru studdar. Til dæmis, til að búa til yfirlit yfir fólkið sem oftast var nefnt í fréttum árið 2020, gætirðu notað eftirfarandi Logica forrit til að fá aðgang að GDELT gagnagrunninum: @OrderBy(Mentions, "mentions desc"); @Limit(Mentions, 10); Mentions(person:, mentions? += 1) distinct :- gdelt-bq.gdeltv2.gkg(persons:, date:), Substr(ToString(date), 0, 4) == "2020", the_persons == Split(persons, ";"), person in the_persons; $ logica nefnir.l keyra Nefndir +—————-+—————-+ | manneskja | fjöldi_nema | +—————-+—————-+ | donald trump | 3077130 | | los angeles | 1078412 | | joe biden | 1054827 | | george floyd | 872919 | | boris johnson | 674786 | | Barack Obama | 438181 | | vladimir putin | 410587 | | bernie sanders | 387383 | | andrew cuomo | 345462 | | las vegas | 325487 | +—————-+—————-+
Að skrifa flóknar SQL fyrirspurnir krefst þess að skrifa fyrirferðarmiklar fjöllínukeðjur sem eru erfiðar að skilja, hindra endurnotkun fyrirspurnarhluta og flækja viðhald. Hægt er að nota skoðanir og föll fyrir dæmigerðar, endurteknar útreikninga í SQL, en þau styðja ekki innflutningsaðgerðir og skortir sveigjanleika háþróaðra forritunarmála (til dæmis er ekki hægt að senda fall innan falls). Logica gerir þér kleift að setja saman forrit úr litlum, skiljanlegum og endurnýtanlegum rökfræðiblokkum sem hægt er að prófa, tengja við ákveðin nöfn og flokka í pakka sem eru tiltækir til notkunar í öðrum verkefnum.
Heimild: opennet.ru
