Google, mantıksal programlama dili Logica'yı yayınladı

Google, veri işleme ve programları SQL'e çevirmek için tasarlanmış yeni bir bildirimsel mantık programlama dili olan Logica'yı tanıttı. Yeni dil, veritabanı sorguları yazarken mantıksal programlama sözdizimini kullanmak isteyenlere yöneliktir. Şu anda, ortaya çıkan SQL kodu Google BigQuery depolama alanında veya desteği hala deneysel olan PostgreSQL ve SQLite DBMS'lerde yürütülebilir. Gelecekte desteklenen SQL lehçelerinin sayısının arttırılması planlanmaktadır. Proje kodu Python'da yazılmıştır ve Apache 2.0 lisansı altında yayınlanmıştır.

Logica, Google tarafından geliştirilen başka bir veri işleme dili olan Yedalog'un geliştirilmesine devam ediyor ve standart SQL'de bulunmayan bir düzeyde soyutlama sağlıyor. Logica'daki sorgular bir dizi mantıksal ifade biçiminde programlanır. Etkileşimli Jupyter Notebook kabuğundan modülleri, içe aktarmaları ve Logica'yı kullanma yeteneğini destekler. Örneğin 2020 yılı haberlerde en sık adı geçen kişilerin özetini oluşturmak için GDELT veritabanına erişmek üzere aşağıdaki Logica programını kullanabilirsiniz: @OrderBy(Mentions, “mentions desc”); @Limit(Bahsetmeler, 10); Mentions(kişi:, bahseder? += 1) Different :- gdelt-bq.gdeltv2.gkg(kişiler:, tarih:), Substr(ToString(tarih), 0, 4) == “2020”, the_persons == Bölünmüş (kişiler, ";"), the_persons'daki kişi; $ mantıka bahseder.l Mansiyonları çalıştır +—————-+—————-+ | kişi | Bahsedilenler_sayısı | +—————-+—————-+ | donald trump | 3077130 | | los angeles | 1078412 | | joe biden | 1054827 | | george floyd | 872919 | | boris johnson | 674786 | | Barrack Obama | 438181 | | vladimir putin | 410587 | | Bernie zımpara makineleri | 387383 | | andrew cuomo | 345462 | | las vegas | 325487 | +—————-+—————-+

SQL'de karmaşık sorgular yazmak, anlaşılması kolay olmayan hantal, çok satırlı zincirler yazma ihtiyacını doğurur, sorgunun bazı bölümlerinin yeniden kullanımını engeller ve bakımı karmaşık hale getirir. Tipik tekrarlanan hesaplamalar için SQL, görünümleri ve işlevleri kullanabilir, ancak bunlar içe aktarma işlemlerini desteklemez ve üst düzey dillerin esnekliğini sağlamaz (örneğin, bir işlevi bir işleve aktaramazsınız). Logica, test edilebilen, belirli adlarla ilişkilendirilebilen ve diğer projelerin parçası olarak kullanılabilecek paketler halinde gruplandırılabilen küçük, anlaşılır ve yeniden kullanılabilir mantıksal bloklardan programlar oluşturmanıza olanak tanır.

Kaynak: opennet.ru

Yorum ekle