Personalized Menu

Prolog · OWL · SWRL · SPARQL · SHACL · DMN · BPMN

Personalized Menu is a knowledge engineering project that recommends dishes tailored to a user's dietary needs and preferences by combining several complementary knowledge representation and reasoning technologies. Built for the KEBI course, it layers a formal ontology, rule-based inference, decision logic, and process modeling into a single recommendation pipeline rather than relying on a single formalism.

Each technology handles a distinct concern: the ontology models domain knowledge, SWRL and Prolog handle inference and constraint logic, SPARQL retrieves data, SHACL guarantees consistency, DMN captures decision tables, and BPMN frames the overall recommendation workflow.

How it works

  • OWL ontology — models the menu domain — dishes, ingredients, dietary categories and allergens — with formal semantics as the shared knowledge base.
  • SWRL rules — extend the ontology with rule-based inference to derive personalized dish suitability from user constraints.
  • Prolog — implements the core recommendation logic, reasoning over facts and rules to select menu items matching user preferences.
  • SPARQL queries — retrieve and filter dishes and their properties directly from the ontology-backed knowledge base.
  • SHACL validation — enforces shape constraints on ontology instances so recommendation data stays consistent and well-formed.
  • DMN decision model — captures the business rules used to score and rank menu options for a given user profile.
  • BPMN extension — models the end-to-end recommendation process as a business workflow, tying the reasoning steps together.