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

Discussion in 'Мировые новости. Обсуждения.' started by Suicide, 13 Apr 2021.

  1. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,198
    Likes Received:
    5,789
    Reputations:
    693
    Компания Google представила новый декларативный язык логического программирования Logica, предназначенный для манипулирования данными и транслирующий программы в язык SQL. Новый язык ориентирован на тех, кто хочет использовать синтаксис логического программирования при написании запросов к БД. В настоящее время результирующий SQL-код может выполняться в хранилище Google BigQuery или в СУБД PostgreSQL и SQLite, поддержка которых пока является экспериментальной. В будущем планируется расширить число поддерживаемых SQL-диалектов. Код проекта написан на языке Python и опубликован под лицензией Apache 2.0.

    Logica продолжает развитие другого разработанного в Google языка обработки данных Yedalog и предоставляет уровень абстракции, недоступный в штатном SQL. Запросы в Logica программируются в форме набора логических утверждений. Поддерживаются модули, операции импорта и возможность использования Logica из интерактивной оболочки Jupyter Notebook. Например, для формирования сводки персон, наиболее часто упоминаемых в новостях за 2020 год, можно использовать следующую программу на языке Logica для обращения к БД GDELT:


    Code:
     @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 позволяет компоновать программы из небольших, понятных и доступных для повторного использования логических блоков, которые могут быть протестированы, связаны с определёнными именами и сгруппированы в пакеты, доступные для использования в составе других проектов.

     
    seostock and ms13 like this.
Loading...