GeoCatch-Prolog is an interactive geography learning platform designed to teach and assess knowledge about Brazil through a combination of rule-based reasoning and educational gameplay.
Built with Java and Prolog, the application leverages knowledge representation and logical inference to deliver dynamic learning experiences, allowing users to explore geographic concepts, discover facts, and test their understanding through quizzes and challenges.
The project integrates Java with Prolog using the JPL (Java-Prolog Library), enabling seamless communication between the user interface and the underlying knowledge base.
Detailed project documentation is available at:
https://github.com/YanMatheus/IA-TP1-GeoCatch/blob/master/GeoCatch/Documentação.pdf
- State Capitals
- Federative Units
- International Borders
- Geographic Extremes
- Territorial Area
- Coastal States
- Population Data
- Geographic Regions
- State Curiosities and Facts
GeoCatch-Prolog was designed with extensibility in mind, making it easy to add new educational topics and datasets.
Create a new Prolog file containing the facts and rules for the desired topic.
Example:
newtopic.pl
Register the new topic inside the Functions class:
public class Functions {
ArrayList<String> functionsname = new ArrayList<String>();
TreeMap<String,String> DBCapital;
TreeMap<String,String> DBFu;
TreeMap<String,String> DBPopulation;
TreeMap<String,String> DBCountryBorder;
TreeMap<String,String> DBFrontier;
TreeMap<String,String> DBRegion;
TreeMap<String,String> DBArea;
TreeMap<String,String> DBCoastalState;
TreeMap<String,String> DBCuriosity;
TreeMap<String,String> DBNewTopic;
}Initialize the topic in the constructor:
this.DBNewTopic = new TreeMap<>();
functionsname.add("newtopic");FunctionsObject.getDBNewTopic().get(key);Explore geographic information through interactive maps and visual learning experiences.
Test acquired knowledge through a quiz engine powered by the project's knowledge base.
Users are rewarded based on performance through a progression and ranking system.
- Java
- Prolog
- JPL (Java-Prolog Library)
- Knowledge-Based Systems
- Rule-Based Reasoning
- Educational Software Design




