Contents

Preface
1 Introduction to Ruby for AI Programming
 1.1 Classes
 1.2 Arrays
 1.3 Strings
 1.4 Code Blocks
 1.5 Iterators, the Enumerable Mixin, and Blocks
 1.6 Hash tables
 1.7 File I/O
 1.8 Exceptions
2 Search
 2.1 Heuristic Graph Search
 2.2 Alpha Beta Search in games
3 An Overview of Knowledge Representation
4 Reasoning and Knowledge Representation with PowerLoom
 4.1 Why PowerLoom?
 4.2 PowerLoom Overview
 4.3 The PowerLoom JRuby Interface
5 Descriptive Logic Reasoning and the Semantic Web
6 Natural Language Processing
 6.1 Chart Parser
 6.2 Statistical Natural Language Processing
  6.2.1 Hidden Markov Models
  6.2.2 Training Hidden Markov Models
  6.2.3 Using the trained Markov model to tag text
7 Neural Networks
 7.1 Back Propagation
  7.1.1 Code
  7.1.2 Training Data
 7.2 Recurrent Networks
  7.2.1 Code
  7.2.2 Training Data
8 Probabilistic Reasoning
Bibliography