Space Station

Back to our regularly scheduled programming

Heavy Geek Alert. Go away lest you be bored.

Now that the hubbub is dying down, I'm looking forward to returning to a normal routine. Richard Freytag has been working on turning his work on the Prolog grammar into something usable by my AI::Prolog module. Given that I have a local talk on this due for May, I'm hoping this will be done soon. If possible, I'll use it to throw together a simple expert system. Otherwise, I'll stick with an old-fashioned text adventure. More people can understand them.

One odd coincidence (it will take a while before I get to the coincidence part) I noticed is that Prolog is the language used in a book I found at Powell's Technical entitled "Inductive Logic Programming" (MIT Press). Inductive Logic Programming (ILP) is a type of programming combining machine learning and logic programs. In the programming most people do, you tell the computer how to twist and munge data every step of the way. After enough twisting and munging, you arrive at your goal. In logic programming, you describe your goal in logical terms and the computer figures out how to twist and munge the data for you. It can even make logical inferences. Tell the computer that all cats are furry and that Bob hunts all furry things and it will just "know" that Bob hunts cats, even though you didn't say it. In Prolog, it would look like this:

animal(cat).
furry(cat).
hunts(bob, Thing) :-
  animal(Thing),
  furry(Thing).


That looks a bit weird, but trust me, it's doing powerful things under the hood.

Inductive logic programming takes this one step further. By providing the computer with positive and negative examples of what you're trying to prove, it attempts to write a program that will satisfy all of your positive examples and none of your negative ones. If provided enough examples, and if it successfully produces such a program, the resulting program has predictive behavior. Instead of merely making logical inferences from existing facts and rules, it can make predictions. While still a relatively new technology, there is one field that it's being used in: detecting credit card fraud. Given the events of the past few days, I find that a bit amusing.
  • Current Mood: geeky geeky
I thought you were going to say that you fell asleep reading this post :)

The news story went fine. In fact, it came off better than I expected. I was surprised that I was the top story.
Nice, I wish I had managed to stay awake for it. I went to bed around a quarter after 10 and planned on watching tv for a while til I fell asleep...however I turned the tv off within minutes of lying down. I was out before I knew it.
I've been learning logic programming in Prolog lately but inductive logic programming is new to me. Any website references you know of? Text book money is kinda non-existent for me right now.
Lordy, I haven't don't Prolog for years. You've actually made me feel geeky and nostalgic in the same post.