Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I would hate for my logic engine to be required to backtrack every time a candidate interpretation was evaluated. AFAIK, prolog allows no alternative. Nor can it support the many powerful probabilistic extensions for rule-based reasoning that arose 25(?) years ago, nor the many improvements and variations on impasse resolution.

IMHO, the choice of prolog unnecessarily straitjackets a modern production system, making the engineering approach of this startup that much less powerful, flexible, or viable than it should be.



The SWI-Prolog ecosystem supports some probabilistic extensions such as http://www.swi-prolog.org/pack/list?p=ccprism, and http://www.swi-prolog.org/pack/list?p=cplint.

Also, the (!/0) operator allows you to prune choice-points and control backtracking so that it is not unconditional. Many Prolog implementations support (->/2) operator, as well as ((*->)/2) -- the soft cut, for more fine-grained control. SWI has a nice library for even further control over backtracking as well: http://www.swi-prolog.org/pldoc/man?section=solutionsequence....

Also good Prolog programmers usually are not overly concerned with backtracking, as they usually have strong knowledge of modes and determinism. See: http://www.swi-prolog.org/pldoc/man?section=modes. This is mostly second-nature to a skilled Prolog developer.


These days Prolog is general purpose, powerful, pattern driven programming language that (once properly learned!) can put together database, persistence, networking, NLP crunching in one modular program unit. Associating it with expert-system or rule-based programming is a typical AI-winter misconception. Well, a similar one was also floating about deep-learning during the same frosty season :-)


what would be a better alternative to Prolog?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: