گوگل یک زبان برنامه نویسی منطقی اعلامی جدید به نام Logica را معرفی کرده است که برای دستکاری داده ها و ترجمه برنامه ها به SQL طراحی شده است. این زبان جدید برای کسانی است که می خواهند از دستور برنامه نویسی منطقی هنگام نوشتن پرس و جوهای پایگاه داده استفاده کنند. در حال حاضر، کد SQL حاصل را میتوان در فضای ذخیرهسازی Google BigQuery یا در DBMSهای PostgreSQL و SQLite اجرا کرد که پشتیبانی از آنها هنوز آزمایشی است. در آینده برنامه ریزی شده است که تعداد گویش های SQL پشتیبانی شده را گسترش دهد. کد پروژه به زبان پایتون نوشته شده و تحت مجوز آپاچی 2.0 منتشر شده است.
Logica به توسعه زبان پردازش داده دیگر توسعه یافته توسط Google، Yedalog ادامه می دهد و سطحی از انتزاع را ارائه می دهد که در SQL استاندارد موجود نیست. کوئری ها در Logica در قالب مجموعه ای از عبارات منطقی برنامه ریزی می شوند. از ماژول ها، واردات و توانایی استفاده از Logica از پوسته نوت بوک تعاملی Jupyter پشتیبانی می کند. به عنوان مثال، برای ایجاد خلاصه ای از افرادی که اغلب در اخبار سال 2020 ذکر شده اند، می توانید از برنامه Logica زیر برای دسترسی به پایگاه داده GDELT استفاده کنید: @OrderBy(Mentions, "mentions desc"); @Limit(ذکر، 10)؛ ذکر (شخص:، ذکر؟ += 1) متمایز :- gdelt-bq.gdeltv2.gkg(افراد:، تاریخ:)، Substr(ToString(تاریخ)، 0، 4) == «2020»، the_persons == تقسیم (افراد، ";")، شخص در افراد $ logica references.l اجرا می شود ذکر +—————-+—————-+ | شخص | ذکر_شمار | +—————-+—————-+ | دونالد ترامپ | 3077130 | | لس آنجلس | 1078412 | | جو بایدن | 1054827 | | جرج فلوید | 872919 | | بوریس جانسون | 674786 | | باراک اوباما | 438181 | | ولادیمیر پوتین | 410587 | | برنی سندرز | 387383 | | اندرو کومو | 345462 | | لاس وگاس | 325487 | +—————-+—————-+
نوشتن پرس و جوهای پیچیده در SQL منجر به نیاز به نوشتن زنجیره های چند خطی دست و پا گیر می شود که درک آنها واضح نیست، در استفاده مجدد از بخش هایی از پرس و جو دخالت می کند و تعمیر و نگهداری را پیچیده می کند. برای محاسبات تکراری معمولی، SQL میتواند از نماها و توابع استفاده کند، اما از عملیات واردات پشتیبانی نمیکنند و انعطافپذیری زبانهای سطح بالا را فراهم نمیکنند (به عنوان مثال، نمیتوانید تابعی را به یک تابع منتقل کنید). Logica به شما امکان می دهد برنامه هایی را از بلوک های منطقی کوچک، قابل فهم و قابل استفاده مجدد بسازید که می توانند آزمایش شوند، با نام های خاص مرتبط شوند و در بسته هایی گروه بندی شوند که می توانند به عنوان بخشی از پروژه های دیگر استفاده شوند.
منبع: opennet.ru