Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Waypoint — Travel Destination Matcher

A forward-chaining expert system that matches travelers to curated destinations using weighted attribute scoring and synonym normalization.

Quick Start

python main.py

Requires tkinter (ships with most Python installs). On Ubuntu/Debian:

sudo apt-get install python3-tk

Architecture

File Role
schema.py Attribute definitions, valid values, weights, and synonyms
inference_engine.py Knowledge base validation, fact normalization, forward-chaining & scoring
main.py Tkinter desktop GUI (entry point)
destinations.json Persistent knowledge base (30 destinations)

GUI Tabs

  • Find My Destination — Select your preferences from dynamic dropdowns, get ranked results with match percentages and explainability.
  • Teach Waypoint — Add new destinations with schema-validated attributes.
  • Browse Destinations — Search and filter the full knowledge base.

How It Works

  1. Dynamic fact ingestion — The system only asks about attributes actually used in the current rule set, ordered by weight. Add a new attribute to any destination and the UI picks it up automatically.
  2. Synonym normalization — Type "cheap", "chill", or "party" and they map to canonical values (low, relaxation, nightlife).
  3. Weighted certainty scoring — Each match gets a certainty% based on attribute weights: budget (3.0) > climate (2.5) > activity (2.0) > duration (1.5) > companions (1.0).
  4. Explainability — Every result shows which attributes matched and which didn't.
  5. Schema validation — The KBG rejects invalid destinations and reports why.

Extending

Add a new attribute (e.g. region) in one place:

  1. Add the attribute spec to ATTRIBUTE_SCHEMA in schema.py
  2. Add it to a few destinations in destinations.json

The system starts asking about it immediately — no other code changes needed.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages