Google опубликовал язык логического программирования Logica

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
13-Апр-2021 16:30

Компания Google представила новый декларативный язык логического программирования Logica, предназначенный для манипулирования данными и транслирующий программы в язык SQL. Новый язык ориентирован на тех, кто хочет использовать синтаксис логического программирования при написании запросов к БД. В настоящее время результирующий SQL-код может выполняться в хранилище Google BigQuery или в СУБД PostgreSQL и SQLite, поддержка которых пока является экспериментальной. В будущем планируется расширить число поддерживаемых SQL-диалектов. Код проекта написан на языке Python и опубликован под лицензией Apache 2.0.
Logica продолжает развитие другого разработанного в Google языка обработки данных Yedalog и предоставляет уровень абстракции, недоступный в штатном SQL. Запросы в Logica программируются в форме набора логических утверждений. Поддерживаются модули, операции импорта и возможность использования Logica из интерактивной оболочки Jupyter Notebook.
Например, для формирования сводки персон, наиболее часто упоминаемых в новостях за 2020 год, можно использовать следующую программу на языке Logica для обращения к БД 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 |
   +----------------+----------------+
Написание сложных запросов на SQL приводит к необходимости написания громоздких многострочных цепочек, не очевидных для восприятия, мешающих повторному использованию частей запроса и затрудняющих сопровождение. Для типовых повторяющихся вычислений в SQL можно использовать представления и функции, но они не поддерживают операции импорта и не предоставляют гибкости, свойственной высокоуровневым языкам (например, невозможно передать функцию в функцию). Logica позволяет компоновать программы из небольших, понятных и доступных для повторного использования логических блоков, которые могут быть протестированы, связаны с определёнными именами и сгруппированы в пакеты, доступные для использования в составе других проектов.
===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_logica, #_google, #_bigquery
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 08:58
Часовой пояс: UTC + 5