mthom / scryer-prolog

A modern Prolog implementation written mostly in Rust.
BSD 3-Clause "New" or "Revised" License
2.08k stars 125 forks source link

Support probabilistic reasoning #69

Open XVilka opened 5 years ago

XVilka commented 5 years ago

Like in ProbLog:

mthom commented 5 years ago

Probabilistic reasoning is something I'm very interested in! I will have a look. Thanks.

XVilka commented 5 years ago

See also https://github.com/SWI-Prolog/roadmap/issues/53 - it has some good references too.

XVilka commented 4 years ago

One of the ways to solve this is to make port of the cplint to Scryer. It depends on these 3 more additional libraries though:

neko-gynoid commented 3 months ago

I'm quite curious, as a new prolog user specifically interested in probabilistic stuff (currently looking to target SWI, but Scryer looks like a promising alternative), if this is something that has seen any attention, or what kind of effort would be required to make this happen? How hard, specifically, would it be to get cplint ported? If it were prolog pure throughout, I might be tempted to attempt to get something working as an exercise (no promises on quality, newbie here). I can't grok rust right now at all, and that isn't on the table for the moment. Thanks for this great tool :)

hurufu commented 3 months ago

@neko-gynoid If you are interested in extending Scryer then feel more than welcome! If you just want to solve a problem at hand there is ProbLog it is very good at working with Markov Models. I never heard of cplint, so I can't comment on that. Also take a note that statistical reasoning is highly dependent on CLP(⁠ℝ) there are some implementations online, but I don't know the complexity of porting them and also how to seamlessly integrate it with other CLP modules.

On a side note probabilistic reasoning is kinda hot right now with all neurosymbolic stuff (eg. kProbLog), so it would be cool to port probabilistic reasoning to Scryer :) Alas I don't have any use for it personally.

neko-gynoid commented 3 months ago

I'll look through your suggestions and try to evaluate what would be best :)