谷歌发布逻辑编程语言Logica

Google 推出了一种新的声明式逻辑编程语言 Logica,专为数据操作和将程序转换为 SQL 而设计。 这种新语言针对的是那些在编写数据库查询时想要使用逻辑编程语法的人。 目前,生成的 SQL 代码可以在 Google BigQuery 存储或 PostgreSQL 和 SQLite DBMS 中执行,对此的支持仍处于实验阶段。 未来计划扩大支持的 SQL 方言的数量。 该项目代码是用 Python 编写的,并在 Apache 2.0 许可证下发布。

Logica 继续开发另一种 Google 开发的数据处理语言 Yedalog,并提供标准 SQL 中不具备的抽象级别。 Logica 中的查询以一组逻辑语句的形式编程。 支持模块、导入以及从交互式 Jupyter Notebook shell 使用 Logica 的能力。 例如,要生成 2020 年新闻中最常提及的人物的摘要,您可以使用以下 Logica 程序访问 GDELT 数据库: @OrderBy(Mentions, “mentions desc”); @Limit(提及次数, 10); 提及(人:,提及?+= 1)不同:- gdelt-bq.gdeltv2.gkg(人:,日期:),Substr(ToString(日期),0, 4)==“2020”,the_persons ==拆分(persons, ";"), the_persons 中的人; $logica提及.l运行提及+——————-+——————-+ | 人 | 提及次数 | +—————-+——————-+ | 唐纳德·特朗普 | 3077130 | 1078412 | 洛杉矶| 1054827 | | 乔·拜登 | 872919 | 674786 | 乔治·弗洛伊德 | 乔治·弗洛伊德438181 | 410587 | 鲍里斯·约翰逊 | 387383 | 345462 | 巴拉克·奥巴马 | 325487 | XNUMX | 弗拉基米尔·普京 | XNUMX | XNUMX | 伯尼·桑德斯 | 伯尼·桑德斯XNUMX | XNUMX | 安德鲁·科莫 | 安德鲁·科莫XNUMX | XNUMX | 拉斯维加斯| XNUMX | XNUMX +—————-+——————-+

在 SQL 中编写复杂的查询会导致需要编写繁琐的多行链,这些链不易理解,会干扰查询部分的重用,并使维护变得复杂。 对于典型的重复计算,SQL可以使用视图和函数,但它们不支持导入操作,并且不提供高级语言的灵活性(例如,不能将函数传递给函数)。 Logica 允许您用小的、可理解的、可重用的逻辑块来编写程序,这些逻辑块可以进行测试、与特定名称相关联,并分组到可以用作其他项目的一部分的包中。

来源: opennet.ru

添加评论