Kompania Google prezantoi një gjuhë të re deklarative të programimit logjik të quajtur Logica, e cila është e destinuar për manipulimin e të dhënave dhe translacionin e programeve në gjuhën SQL. Gjuha e re është e orientuar ndaj atyre që duan të përdorin sintaksën e programimit logjik kur shkruajnë pyetje për bazat e të dhënave. Aktualisht, kodi SQL i rezultatit mund të ekzekutohet në ruajtjen Google BigQuery ose në database PostgreSQL dhe SQLite, mbështetje për të cilat është ende eksperimentale. Në të ardhmen, planifikohet të zgjerohet numri i dialekteve SQL të mbështetur. Kodi i projektit është shkruar në gjuhën Python dhe është publikuar nën licencën Apache 2.0.
Logica vazhdon zhvillimin e njĂ« gjuhe tjetĂ«r tĂ« pĂ«rpunimit tĂ« tĂ« dhĂ«nave tĂ« zhvilluar nĂ« Google, Yedalog, dhe ofron njĂ« nivel abstraksioni qĂ« nuk Ă«shtĂ« i disponueshĂ«m nĂ« SQL-in standard. KĂ«rkesat nĂ« Logica programohen nĂ« formĂ«n e njĂ« grupi deklaratash logjike. MbĂ«shteten modulet, operacionet e importit dhe mundĂ«sia e pĂ«rdorimit tĂ« Logica nga ndĂ«rfaqja interaktive Jupyter Notebook. PĂ«r shembull, pĂ«r tĂ« formuar njĂ« pĂ«rmbledhje tĂ« personave qĂ« pĂ«rmenden mĂ« shpesh nĂ« lajme gjatĂ« vitit 2020, mund tĂ« pĂ«rdoret programi nĂ« gjuhĂ«n Logica pĂ«r tĂ« bĂ«rĂ« kĂ«rkesĂ« nĂ« bazĂ«n e tĂ« dhĂ«nave GDELT: @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 mentions.l run Mentions +âââââ-+âââââ-+ | person | mentions_count | +âââââ-+âââââ-+ | 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 | +âââââ-+âââââ-+
Shkrimi i kërkesave komplekse në SQL shkakton nevojën për të shkruar zinxhirë të gjatë shumë-rreshtorë, që nuk janë evidente për t'u kuptuar, duke penguar ripërdorimin e pjesëve të kërkesës dhe duke e bërë mbështetje të vështirë. Për llogaritjet tipike që përsëriten në SQL, mund të përdoren pikëpamje dhe funksione, por ato nuk mbështesin operacionet e importit dhe nuk ofrojnë fleksibilitetin që ofrojnë gjuhët me nivel të lartë (p.sh., nuk është e mundur të kalosh një funksion në një funksion). Logica lejon të kompozosh programe nga blloqe logjike të vogla, të kuptueshme dhe të disponueshme për ripërdorim, të cilat mund të testohen, lidhen me emra të caktuar dhe grupohen në paketa që janë të disponueshme për t'u përdorur në projekte të tjera.
Burimi: opennet.ru
