We used tuProlog for rule-based intelligent agents in several applications and it worked pretty well, but its poor performance eventually led us to look for alternative implementations. That was about five years ago, though, and perhaps it has improved.