Comments 22
Make change submittable if commit author is «John Doe»
Make change submittable if commit message starts with «Fix „
Make change submittable only if Code-Review+2 is given by a non author
1+1=2 Code-Review
Make change submittable if all comments have been resolved
Make change submittable if it is a pure revert
Кстати, отличный пример rule-based модели
Мне кажется всё дело в том, что для многих это не слишком привычная для многих парадигма моделирования — но в LP сообществе эта тема очень популярна, то есть ASP и IDP — умеют интегрироваться с Prolog и вызывать его, если нужно.
Мы в одной из своих задач (не упомянутой здесь) использовали
https://labix.org/python-constraint
Библиотека для решения простых задач на ограничения прямо внутри Python, я думаю был бы реальный спрос и хорошие use-cases — и библиотеки напишут.
И в чём принципиальная разница между Probability Logic и Fuzzy Logic?
Скорее имеет смысл сравнивать Problog с Weighted Logic аля Markov Logic — у каждой формулы есть вес, но для весов не выполняются аксиомы вероятности и их нельзя нормально проинтерпретировать. Т.е. мы выяснили, что лучшая формула подходящая под данные — это
a & b --> c
с весом 42, а следом за ним другая формула с весом 33 — это много или мало? Не слишком ясно.
Вот тут много полезных ссылок:
https://www.quora.com/What-are-the-hot-topics-in-machine-learning-and-fuzzy-logic-together
Возможно будет коряво, но представляю себе это так:
Например допустим, я написал свою СУБД (со своими
С автогенерацией кода на основе логической модели – сложнее, но я где то слышал, что в узких областях экспериментировали с этим.
> Во всех комбинациях возможных запросов SQL
Скорее нужно в runtime требовать выполнения этого условия и проверять его, чем тестировать на всех возможных запросах.
> С автогенерацией кода на основе логической модели – сложнее, но я где то слышал, что в узких областях экспериментировали с этим.
Да, я об этом напишу в следующих статьях — по сути Sketching for ASP, как раз из этих идей и вырос.
www.sigops.org/s/conferences/sosp/2009/papers/klein-sosp09.pdf
Доказать _уже_ написанную (без оглядки на способ доказательства) программу на языке общего назначения (скажем, Java), как правило, нереально.
Вот я и мел в виду. Что почему бы средствами ASP например, парсить такие программы на языке общего назначения и создавая логическую модель — автоматически доказывать ее корректность. Например, отвечая на вопросы — при каких наборах входных параметров программа будет падать в необрабатываемые исключения (деление на ноль допустим).
Например, программа останавливается, когда, перебирая все тройки чисел, находит контр-пример к великой теореме Ферма. Если ASP докажет, что программа зависает — теорема доказана.
Или решать диофантовы уравнения можно так: если вход является решением, пусть программа падает. Вопрос к ASP — при каком входе программа падает.
Или подбирать ключи к шифрам, или…
Но как это запрограммировать? Может ли алгоритм в общем случае понять, простая задача тут или сложная. Если сложная, какие для неё известны методы решения.
очень простую арифметику, там нет ни каких полиномов с большими степенямиКак и в примере программы, проверяющей великую теорему Ферма.
Вообще хотелось бы статью на хабре о системах проверки доказательств.
Есть и другие, завязанные на функциональное программирование (в том числе Haskell).
> Вообще хотелось бы статью на хабре о системах проверки доказательств.
Я бы тоже её с радостью почитал :)
Что такое логическое программирование и зачем оно нам нужно