Hacker News Digest

16 августа 2025 г. в 19:50 • dyna.org • ⭐ 129 • 💬 13

OriginalHN

#dyna#logic-programming#machine-learning#datalog#clojure#python#java#reinforcement-learning

Dyna – Logic Programming for Machine Learning

Dyna — декларативный логический язык с весами для исследователей машинного обучения.
Он позволяет описывать что вычислять, не заботясь о как. Примеры:

c(I,K) += a(I,J) * b(J,K).          % умножение матриц
fib(N) := fib(N-1)+fib(N-2).       % числа Фибоначчи
phrase(X,I,K) max= phrase(Y,I,J)*phrase(Z,J,K)*rule(X,Y,Z).  % CKY-разбор

История: проект начат в 2004 для сокращения разрыва между математикой и кодом.

  • Dyna 1.0 добавил произвольные полукольца к Datalog.
  • Dyna 2.0 убрал ограничение на единое полукольцо, разрешил свободные переменные, ленивые и энергичные вычисления, наследование через dynabases.

Актуальные исследования

  • Реализация через реляционную алгебру и перезапись термов.
  • Использование обучения с подкреплением для выбора оптимального порядка вычислений.

Ключевые статьи

  • PhD M. Francis-Landau «Declarative Programming Via Term Rewriting» (2024).