Prolog approximates first-order logic and represents programs as sets of Horn clauses. It performs inference through resolution and searches for solutions through backtracking with unification. Prolog can represent semantic networks and frames to describe relationships between objects, classes, and their properties. It can also perform depth-first search on graphs to find paths between nodes. However, Prolog has limitations in representing higher-order relationships and probabilities.