FOR SOME strange reason developers seem surprised when I tell them I love using Prolog for web development. I understand it's not a popular choice, but it is a suitable one. In this post I explain why I think Prolog is great for web development, and introduce Simple Web, which I developed to lower the barrier to entry.
SOFTWARE ARCHITECTURE is a tricky subject at the best of times, often mitigated by following a framework. However, when you find yourself in the wilds of Prolog, there's not much guidance out there, and not many templates to follow. In this post, I'll provide some guidance built on the principal of substitution.
SIMPLE, CLASSIC games like Rock, Paper, Scissors are good to code when learning a new language. The lovely thing about making this game in Prolog is you're just encoding what it is, not how it is. It's a subtle difference, but I'll point it out during this explanation.
SOME FOLKS don't make their data available through RDF formats, or nice SPARQL endpoints, instead they provide a (REST/RESTFUL) API and will return JSON data for your request. It can be a little tricky figuring out how to get this data into your SWI-Prolog program. So in this post I demonstrate with a simple example.
READING THE docs for plunit, it can be quite tricky to figure out how to setup a nice unit testing environment and actually run those tests. In this post I demonstrate how I do it, keeping my tests separate from my code, and running them with a handy command.
THERE WAS a time, long ago, before SVMs and Neural Nets, when AI was all rule based. Nowadays, with the prevalence of "curve-fitting" AI, these techniques are known as GOFAI, or "Good Old Fashioned Artificial Intelligence". In this post we look at a super simple example and consider why you'd use this instead of a more modern method.
A KEY idiom in Prolog is the idea that it runs both forwards and backwards. If you've never programmed in Prolog before, this can be mind-blowing! You can write one "function" and get many different uses out of it. In this post we'll take a look at what this means as a teaser that might tempt you into giving Prolog a go.