Bayesian Logic Programming
bayesianlogic.github.io
bayesianlogic.github.io
Every well-formed BLOG model specifies a unique proper probability distribution over all possible worlds definable given its vocabulary •No infinite receding ancestor chains; •no conditioned cycles; •all expressions finitely evaluable; •Functions of countable sets
They instantiate some parts of the network and do inference with MCMC. I wonder how it compares to the Markov Logic approach from the University of Washington.
Anyone excited about this, I highly recommend checking out Stan; it's under active development, actually works with real problems, and is used in the real world. With NUTS and HMC they've really made good on their promises, and quite soon they'll have meaningful ADVI support. See this former discussion: https://news.ycombinator.com/item?id=10244771
How easy would the transition to PyStan be?
It is different, but the core semantics are the same so you just have to worry about new syntax (and worse python integration)
PyMC3 uses Theano to create a compute graph of the model which then gets compiled to C. Moreover, it gives us the gradient for free so that HMC and NUTS can be used which work models of high complexity.
I use it in production, despite it still being beta. We're close to the first stable release but there are still some small kinks to figure out.
Disclaimer: I'm a co-developer.
It will probably never get as popular as the generic term blog, so it will be difficult to search "how to do X in blog?", so it will probably never get as popular...
Perhaps they consider renaming it as bayelog or something.
Until Google "got it", searching for R was a pain (that was before the -lang suffix got popular)
Pick an unique name with several letters and a moderately used word, like Python or Ruby, it's not hard.
In fact, businesses can't get enough of it.
(Statistics isn't something strange to business-logic types anyways, they understand probabilities and confidence intervals.)
Confidence interval of 95% means that the estimator produces an interval that contains true parameter with probability 95%. It's not equivalent to the credible interval.
https://stats.stackexchange.com/questions/2272/whats-the-dif...
http://probabilistic-programming.org
There's probably some alternative, actively developed projects that have the same objective as BLOG listed on that page.
For example (pseudocode):
random Boolean IsRunning ~ BooleanDistrib(0.001);
random Boolean CarNearby ~ BooleanDistrib(0.001);
random Boolean HasGun ~ BooleanDistrib(0.002);
random Boolean IsTerrorist ~
if IsRunning then
if HasGun then BooleanDistrib(0.95)
else BooleanDistrib(0.04)
else
if CarNearby then BooleanDistrib(0.29)
else BooleanDistrib(0.001);
obs IsRunning = true;
obs HasGun = true;
query IsTerrorist;