This project showcases Prolog's strength in knowledge representation by creating a "smart" genealogy database. The system is built on a foundation of simple facts (parent, married, etc.). From this core data, a powerful set of rules can infer a wide variety of complex family relationships, from siblings and grandparents to nth cousins, once removed.
Language: Prolog
Skills: Logic Programming, Knowledge Representation, Rule-Based Inference Engines, Recursion.
Knowledge Representation: A large knowledge base of facts defines individuals and their direct relationships.
Complex Rule Inference: Rules infer intricate relationships like sibling, uncle-of, grandparent-of, and is-nth-cousin-of.
Recursive Rules: Leverages recursion to define transitive relationships, such as ancestor, which can traverse the entire family tree.
Blood Relation Checking: Includes a rule (is-blood-related-to) that can determine if two individuals share a common ancestor.