LOGICA de Google para el análisis y procesamiento de datos.

¿Qué es Logica?

Logica es un lenguaje de programación de lógica declarativa de código abierto para la manipulación de datos. Logica es un sucesor de Yedalog , un lenguaje creado anteriormente por Google.

¿Por qué?

Logica es para ingenieros, científicos de datos y otros especialistas que desean usar la sintaxis de programación lógica al escribir consultas y canalizaciones para ejecutar en BigQuery .

Logica se compila en SQL y le brinda acceso a la potencia del motor de Google BigQuery con la conveniencia de la sintaxis de programación lógica. Esto es útil porque BigQuery es mucho más poderoso que los motores de programación lógica nativa de última generación.

Te animamos a que pruebes Logica, especialmente si

  • Ya usas programación lógica y necesitas más potencia computacional, o
  • Utilizas SQL, pero no te sientes satisfecho con su legibilidad, o
  • Deseas aprender programación lógica y aplicarla al procesamiento de Big Data.

En el futuro, Google planea admitir más dialectos y motores SQL.

¿Qué es Logica?

La programación lógica es un paradigma de programación declarativa donde el programa se escribe como un conjunto de declaraciones lógicas.

La programación lógica se desarrolló en la academia desde finales de los 60. Prolog y Datalog son los ejemplos más destacados de lenguajes de programación lógica. Logica es un lenguaje de la familia Datalog.

Los registros de datos y las bases de datos relacionales parten de la misma idea: piensa en los datos como relaciones y piensa en la manipulación de datos como una secuencia de operaciones sobre estas relaciones. Pero Datalog y SQL difieren en cómo se describen estas operaciones. Datalog está inspirado en la sintaxis matemática de la lógica proposicional de primer orden y SQL sigue la sintaxis del lenguaje natural.

SQL se basó en el lenguaje natural para dar acceso a las bases de datos a personas sin formación formal en programación informática o matemáticas. Esta conveniencia puede resultar costosa cuando la lógica que desea expresar no es trivial. Hay muchos ejemplos de consultas SQL difíciles de leer que corresponden a programas lógicos simples.

¿Cómo funciona Logica?

Logica compila el programa lógico en una expresión SQL, por lo que se puede ejecutar en BigQuery, el motor SQL de última generación.

Entre los teóricos de las bases de datos, se sabe que Datalog y SQL son equivalentes . Y, de hecho, la conversión de Datalog a SQL y viceversa suele ser sencilla. Sin embargo, hay algunos matices, por ejemplo, cómo tratar la disyunción y la negación. En Logica intentamos tomar decisiones que faciliten al máximo la comprensión de la estructura SQL resultante, lo que permitió al usuario escribir programas que se ejecuten de manera eficiente.

¿Por qué se llama Logica ?

Logica son las siglas de Logic with a ggregation .

¿Cómo aprender?

Aprende los conceptos básicos de Logica con el tutorial de CoLab. Ve ejemplos de uso de Logica en la carpeta de ejemplos.

El tutorial y los ejemplos muestran cómo acceder a Logica desde CoLab. También puedes instalar la herramienta de línea de comandos Logica.

Prerrequisitos

Para ejecutar programas de Logica en BigQuery, necesitarás un proyecto de Google Cloud . Una vez que tenga un proyecto, puedes ejecutar programas de Logica en CoLab proporcionando su ID de proyecto.

Para ejecutar Logica localmente, necesitas Python3 .

Para iniciar la ejecución de los predicados de Logica desde la línea de comandos, necesitarás una herramienta de línea de comandos de BigQuery . Para eso necesitas instalar Google Cloud SDK .

Instalación

Google Cloud Project es lo único que necesitas para ejecutar Logica en Colab, consulta el ejemplo de Hello World .

Puedes instalar el comando Logica de la siguiente manera.

# Install.
python3 -m pip install logica
# Run:
# To see usage message.
python3 -m logica
# To print SQL for HelloWorld program.
python3 -m logica - print Greet <<<'Greet(greeting: "Hello world!")'

Si incluyes la carpeta de Python, también podrá ejecutarla simplemente como

logica - print Greet <<<'Greet(greeting: "Hello world!")'

Alternativamente, puedes clonar el repositorio de GitHub:

git clone https://github.com/evgskv/logica
cd logica
./logica - print Greet <<<'Greet(greeting: "Hello world!")'

Muestras de código

Aquí hay un par de ejemplos de cómo se ve el código de Logica.

números primos

Encuentra números primos menores que 30.

Programa primes.l:

# Define natural numbers from 1 to 29.
N(x) :- x in Range(30);
# Define primes.
Prime(prime: x) :-
  N(x),
  x > 1,
  ~(
    N(y),
    y > 1,
    y != x,
    Mod(x, y) == 0
  );

Corriendo primes.l

$ logica primes.l run Prime
+-------+
| prime |
+-------+
|     2 |
|     3 |
|     5 |
|     7 |
|    11 |
|    13 |
|    17 |
|    19 |
|    23 |
|    29 |
+-------+

Menciones de noticias

¿Quién fue más mencionado en las noticias en 2020? Vamos a consulta Proyecto GDELT conjunto de datos.

Programa mentions.l

@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;

Corriendo mentions.l

$ logica mentions.l run Mentions
+----------------+----------+
|     person     | mentions |
+----------------+----------+
| donald trump   |  3624228 |
| joe biden      |  1591320 |
| los angeles    |  1221998 |
| george floyd   |   923472 |
| boris johnson  |   845955 |
| barack obama   |   541672 |
| vladimir putin |   486428 |
| bernie sanders |   409224 |
| andrew cuomo   |   375594 |
| nancy pelosi   |   375373 |
+----------------+----------+

Ten en cuenta que las ciudades de Los Ángeles y Las Vegas se mencionan en esta tabla debido a un problema conocido de clasificación errónea en el análisis de datos de GDELT.

Realimentación

Siéntete libre de crear problemas de github para errores y solicitudes de funciones.

¡Tus preguntas y comentarios son bienvenidos en nuestras discusiones de github !


A menos que se indique lo contrario, los archivos fuente de Logica se distribuyen bajo la licencia Apache 2.0 que se encuentra en el archivo LICENCIA.

Queremos seguir creando cursos gratuitos en nuestro canal de YouTube. Solo te pedimos tu ayuda para crecer más. Suscríbete por favor. (Cursos, talleres y charlas gratis para ti).

Ernesto Mota
Nací en el d.f., sigo siendo defeño, hoy radico en la hermosa ciudad de Cuernavaca, Morelos, soy Ing. en Sistemas computacionales, con un posgrado en Tecnologías de información, Doctorando en ambientes virtuales de aprendizaje y realidad aumentada, Tecnólogo es mi categoría laboral, y mi linea de investigación es la realidad aumentada aplicada a nuevos entornos de aprendizaje.

Últimos artículos

a

Publicasciones relaciodadas