Spaces:
Sleeping
Sleeping
| """ | |
| Course synonym/alias expansion for the KASIT RAG pipeline. | |
| Maps common student abbreviations and nicknames to official KASIT course names. | |
| expand_query() appends matched official names to the query so BM25, vector | |
| search, and HyDE all benefit without losing the original terms. | |
| """ | |
| import re | |
| # Keys are lowercase aliases students commonly use. | |
| # Values are the official course names as they appear in the knowledge base. | |
| COURSE_SYNONYMS: dict[str, str] = { | |
| # ── Natural Language Processing ────────────────────────────────────────── | |
| "nlp": "Natural Language Processing", | |
| "natural language": "Natural Language Processing", | |
| # ── Linear Algebra ─────────────────────────────────────────────────────── | |
| "linear algebra": "Linear Algebra for Computer Science", | |
| "linear": "Linear Algebra for Computer Science", | |
| "linalg": "Linear Algebra for Computer Science", | |
| # ── Artificial Intelligence ─────────────────────────────────────────────── | |
| "ai": "Artificial Intelligence", | |
| "intro ai": "Introduction to Artificial Intelligence", | |
| "intro to ai": "Introduction to Artificial Intelligence", | |
| "introduction ai": "Introduction to Artificial Intelligence", | |
| # ── Machine Learning ────────────────────────────────────────────────────── | |
| "ml": "Machine Learning and Neural Networks", | |
| "machine learning": "Machine Learning and Neural Networks", | |
| "neural networks": "Machine Learning and Neural Networks", | |
| "mlnn": "Machine Learning and Neural Networks", | |
| # ── Deep Learning ───────────────────────────────────────────────────────── | |
| "dl": "Deep Learning", | |
| "deep learning": "Deep Learning", | |
| # ── Data Structures ─────────────────────────────────────────────────────── | |
| "ds": "Data Structures", | |
| "data struct": "Data Structures", | |
| # ── Operating Systems ───────────────────────────────────────────────────── | |
| "os": "Operating Systems", | |
| # ── Object-Oriented Programming ─────────────────────────────────────────── | |
| "oop": "Object-Oriented Programming", | |
| "object oriented": "Object-Oriented Programming", | |
| "object-oriented": "Object-Oriented Programming", | |
| "oo programming": "Object-Oriented Programming", | |
| # ── Software Engineering ────────────────────────────────────────────────── | |
| "se": "Software Engineering", | |
| "soft eng": "Software Engineering", | |
| "software eng": "Software Engineering", | |
| # ── Database ───────────────────────────────────────────────────────────── | |
| "dbms": "Database Management Systems", | |
| "database management": "Database Management Systems", | |
| "db management": "Database Management Systems", | |
| "db techniques": "Database Techniques and Applications", | |
| "database techniques": "Database Techniques and Applications", | |
| "advanced db": "Advanced Topics in Databases", | |
| "advanced databases": "Advanced Topics in Databases", | |
| "nosql": "NoSQL Databases", | |
| "no sql": "NoSQL Databases", | |
| "non-relational": "NoSQL Databases", | |
| # ── Computer Networks ───────────────────────────────────────────────────── | |
| "networks": "Computer Networks", | |
| "networking": "Computer Networks", | |
| "cn": "Computer Networks", | |
| # ── Network Security ────────────────────────────────────────────────────── | |
| "net sec": "Network Security", | |
| "network sec": "Network Security", | |
| # ── Discrete Mathematics ────────────────────────────────────────────────── | |
| "discrete": "Discrete Mathematics", | |
| "discrete math": "Discrete Mathematics", | |
| # ── Theory of Algorithms ────────────────────────────────────────────────── | |
| "algorithms": "Theory of Algorithms", | |
| "algo": "Theory of Algorithms", | |
| # ── Theory of Computation ──────────────────────────────────────────────── | |
| "toc": "Theory of Computation", | |
| "computation theory": "Theory of Computation", | |
| # ── Introduction to Programming ────────────────────────────────────────── | |
| "intro programming": "Introduction to Programming", | |
| "intro to programming": "Introduction to Programming", | |
| "intro prog": "Introduction to Programming", | |
| # ── Advanced Java Programming ───────────────────────────────────────────── | |
| "java": "Advanced Java Programming", | |
| "advanced java": "Advanced Java Programming", | |
| "java programming": "Advanced Java Programming", | |
| # ── Computer Graphics ───────────────────────────────────────────────────── | |
| "cg": "Computer Graphics", | |
| "graphics": "Computer Graphics", | |
| # ── Computer Vision ─────────────────────────────────────────────────────── | |
| "cv": "Computer Vision", | |
| "vision": "Computer Vision", | |
| # ── Digital Image Processing ───────────────────────────────────────────── | |
| "dip": "Digital Image Processing", | |
| "image processing": "Digital Image Processing", | |
| # ── Computer Organization ──────────────────────────────────────────────── | |
| "computer org": "Computer Organization", | |
| "co": "Computer Organization", | |
| # ── Computer Architecture and Assembly Language ─────────────────────────── | |
| "computer arch": "Computer Architecture and Assembly Language", | |
| "assembly": "Computer Architecture and Assembly Language", | |
| "asm": "Computer Architecture and Assembly Language", | |
| "architecture": "Computer Architecture and Assembly Language", | |
| # ── Digital Logic ──────────────────────────────────────────────────────── | |
| "digital logic": "Digital Logic", | |
| # ── Cryptography ───────────────────────────────────────────────────────── | |
| "crypto": "Cryptography", | |
| "encryption": "Cryptography", | |
| # ── Information Security and Privacy ───────────────────────────────────── | |
| "infosec": "Information Security and Privacy", | |
| "info security": "Information Security and Privacy", | |
| # ── Security Fundamentals ──────────────────────────────────────────────── | |
| "security basics": "Security Fundamentals", | |
| "sec fundamentals": "Security Fundamentals", | |
| # ── Penetration Testing and Ethical Hacking ─────────────────────────────── | |
| "pentest": "Penetration Testing and Ethical Hacking", | |
| "pen test": "Penetration Testing and Ethical Hacking", | |
| "pentesting": "Penetration Testing and Ethical Hacking", | |
| "ethical hacking": "Penetration Testing and Ethical Hacking", | |
| # ── Cybersecurity Programming ───────────────────────────────────────────── | |
| "cybersecurity programming": "Cybersecurity Programming", | |
| "cyber programming": "Cybersecurity Programming", | |
| # ── Cybersecurity for Physical Systems ──────────────────────────────────── | |
| "cpss": "Cybersecurity for Physical Systems", | |
| "cps security": "Cybersecurity for Physical Systems", | |
| # ── Security Operations ─────────────────────────────────────────────────── | |
| "sec ops": "Security Operations", | |
| "secops": "Security Operations", | |
| # ── Security Intelligence ───────────────────────────────────────────────── | |
| "sec intel": "Security Intelligence", | |
| "security intel": "Security Intelligence", | |
| # ── Security Management and Auditing ───────────────────────────────────── | |
| "security audit": "Security Management and Auditing", | |
| "security management": "Security Management and Auditing", | |
| # ── Web Applications Development ───────────────────────────────────────── | |
| "web dev": "Web Applications Development", | |
| "web development": "Web Applications Development", | |
| "web apps dev": "Web Applications Development", | |
| # ── Advanced Web Applications ───────────────────────────────────────────── | |
| "advanced web": "Advanced Web Applications", | |
| "awa": "Advanced Web Applications", | |
| # ── Web Application Security ───────────────────────────────────────────── | |
| "web sec": "Web Application Security", | |
| "web security": "Web Application Security", | |
| # ── Web Server Programming ─────────────────────────────────────────────── | |
| "web server": "Web Server Programming", | |
| "server programming": "Web Server Programming", | |
| # ── Mobile Programming ──────────────────────────────────────────────────── | |
| "mobile": "Mobile Programming", | |
| "mobile prog": "Mobile Programming", | |
| # ── Mobile Development Frameworks ──────────────────────────────────────── | |
| "mobile frameworks": "Mobile Development Frameworks", | |
| "mobile dev": "Mobile Development Frameworks", | |
| # ── Cloud Computing ─────────────────────────────────────────────────────── | |
| "cloud": "Cloud Computing", | |
| "cc": "Cloud Computing", | |
| # ── Internet of Things ──────────────────────────────────────────────────── | |
| "iot": "Internet of Things", | |
| # ── Embedded Systems ───────────────────────────────────────────────────── | |
| "embedded": "Embedded Systems", | |
| # ── Intelligent Robots ──────────────────────────────────────────────────── | |
| "robotics": "Intelligent Robots", | |
| "robots": "Intelligent Robots", | |
| # ── Parallel and Distributed Systems ───────────────────────────────────── | |
| "parallel systems": "Parallel and Distributed Systems", | |
| "distributed systems": "Parallel and Distributed Systems", | |
| "pds": "Parallel and Distributed Systems", | |
| # ── Systems Programming and Compiler Construction ───────────────────────── | |
| "compilers": "Systems Programming and Compiler Construction", | |
| "compiler": "Systems Programming and Compiler Construction", | |
| "system programming": "Systems Programming and Compiler Construction", | |
| # ── Computer Ethics ─────────────────────────────────────────────────────── | |
| "comp ethics": "Computer Ethics", | |
| "ethics": "Computer Ethics", | |
| # ── Computer Ethics and Documentation ──────────────────────────────────── | |
| "ethics and docs": "Computer Ethics and Documentation", | |
| # ── Human-Computer Interaction ─────────────────────────────────────────── | |
| "hci": "Human-Computer Interaction", | |
| "human computer": "Human-Computer Interaction", | |
| # ── Data Mining ─────────────────────────────────────────────────────────── | |
| "data mining": "Data Mining", | |
| # ── Big Data ────────────────────────────────────────────────────────────── | |
| "big data": "Big Data", | |
| # ── Data Visualization ──────────────────────────────────────────────────── | |
| "data viz": "Data Visualization", | |
| "visualization": "Data Visualization", | |
| # ── Data Science Fundamentals ───────────────────────────────────────────── | |
| "data science basics": "Data Science Fundamentals", | |
| "data science fundamentals": "Data Science Fundamentals", | |
| "dsf": "Data Science Fundamentals", | |
| # ── Data Engineering and Analytics ─────────────────────────────────────── | |
| "data engineering": "Data Engineering and Analytics", | |
| "dea": "Data Engineering and Analytics", | |
| # ── AI and Data Science Ethics ──────────────────────────────────────────── | |
| "ai ethics": "AI and Data Science Ethics", | |
| "data science ethics": "AI and Data Science Ethics", | |
| # ── AI Programming ──────────────────────────────────────────────────────── | |
| "ai programming": "AI Programming", | |
| "ai prog": "AI Programming", | |
| # ── Pattern Recognition and Information Analysis ────────────────────────── | |
| "pattern recognition": "Pattern Recognition and Information Analysis", | |
| # ── Ontology and Knowledge Graphs ───────────────────────────────────────── | |
| "ontology": "Ontology and Knowledge Graphs", | |
| "knowledge graphs": "Ontology and Knowledge Graphs", | |
| # ── Knowledge Representation and Reasoning ─────────────────────────────── | |
| "krr": "Knowledge Representation and Reasoning", | |
| "knowledge representation": "Knowledge Representation and Reasoning", | |
| # ── Knowledge Management Systems ───────────────────────────────────────── | |
| "kms": "Knowledge Management Systems", | |
| "knowledge management": "Knowledge Management Systems", | |
| # ── Graph Theory ────────────────────────────────────────────────────────── | |
| "graphs": "Graph Theory", | |
| "graph theory": "Graph Theory", | |
| # ── Numerical Analysis ──────────────────────────────────────────────────── | |
| "numerical": "Numerical Analysis", | |
| # ── Computational Problems and Techniques ──────────────────────────────── | |
| "computational problems": "Computational Problems and Techniques", | |
| "comp problems": "Computational Problems and Techniques", | |
| # ── Modeling and Simulation ─────────────────────────────────────────────── | |
| "modeling": "Modeling and Simulation", | |
| "simulation": "Modeling and Simulation", | |
| # ── Operations Research ─────────────────────────────────────────────────── | |
| "or": "Operations Research", | |
| "ops research": "Operations Research", | |
| # ── Project Management ──────────────────────────────────────────────────── | |
| "pm": "Project Management", | |
| "proj management": "Project Management", | |
| # ── IT Project Management ───────────────────────────────────────────────── | |
| "it pm": "IT Project Management", | |
| "it project": "IT Project Management", | |
| # ── Total Quality Management ────────────────────────────────────────────── | |
| "tqm": "Total Quality Management", | |
| "quality management": "Total Quality Management", | |
| # ── Management Information Systems ─────────────────────────────────────── | |
| "mis": "Management Information Systems", | |
| "management info systems": "Management Information Systems", | |
| # ── Information Systems and Applications ────────────────────────────────── | |
| "info systems": "Information Systems and Applications", | |
| # ── Intelligent Business Systems ────────────────────────────────────────── | |
| "ibs": "Intelligent Business Systems", | |
| "intelligent business": "Intelligent Business Systems", | |
| # ── Business Simulation ─────────────────────────────────────────────────── | |
| "business sim": "Business Simulation", | |
| "biz simulation": "Business Simulation", | |
| # ── E-Business ─────────────────────────────────────────────────────────── | |
| "e business": "E-Business", | |
| "ebusiness": "E-Business", | |
| "electronic business": "E-Business", | |
| # ── E-Learning ──────────────────────────────────────────────────────────── | |
| "e learning": "E-Learning and Its Applications", | |
| "elearning": "E-Learning and Its Applications", | |
| "electronic learning": "E-Learning and Its Applications", | |
| # ── Statistical Packages ────────────────────────────────────────────────── | |
| "stats packages": "Statistical Packages", | |
| "statistics packages": "Statistical Packages", | |
| # ── Applied Statistics ──────────────────────────────────────────────────── | |
| "applied stats": "Applied Statistics", | |
| # ── Geographic Information Systems ──────────────────────────────────────── | |
| "gis": "Geographic Information Systems", | |
| "geographic info systems": "Geographic Information Systems", | |
| # ── Document Analysis and Recognition ──────────────────────────────────── | |
| "document analysis": "Document Analysis and Recognition", | |
| "dar": "Document Analysis and Recognition", | |
| # ── Multimedia ──────────────────────────────────────────────────────────── | |
| "multi media": "Multimedia", | |
| # ── Digital Forensics ───────────────────────────────────────────────────── | |
| "forensics": "Digital Forensics", | |
| # ── Reverse Engineering and Malware Analysis ────────────────────────────── | |
| "reverse engineering": "Reverse Engineering and Malware Analysis", | |
| "re": "Reverse Engineering and Malware Analysis", | |
| "malware analysis": "Reverse Engineering and Malware Analysis", | |
| "malware": "Reverse Engineering and Malware Analysis", | |
| # ── Verification and Security Models ───────────────────────────────────── | |
| "security models": "Verification and Security Models", | |
| "verification": "Verification and Security Models", | |
| # ── Secure Software Engineering ─────────────────────────────────────────── | |
| "secure se": "Secure Software Engineering", | |
| "secure software": "Secure Software Engineering", | |
| # ── Advanced Topics in Software Engineering ─────────────────────────────── | |
| "advanced se": "Advanced Topics in Software Engineering", | |
| "advanced software engineering": "Advanced Topics in Software Engineering", | |
| # ── Systems Analysis and Design ─────────────────────────────────────────── | |
| "sad": "Systems Analysis and Design", | |
| "systems analysis": "Systems Analysis and Design", | |
| # ── IT Fundamentals ─────────────────────────────────────────────────────── | |
| "it basics": "IT Fundamentals", | |
| "it fund": "IT Fundamentals", | |
| # ── IT Entrepreneurship and Innovation ─────────────────────────────────── | |
| "entrepreneurship": "IT Entrepreneurship and Innovation", | |
| "it startup": "IT Entrepreneurship and Innovation", | |
| # ── Social Media ───────────────────────────────────────────────────────── | |
| "social media": "Social Media", | |
| "sm": "Social Media", | |
| # ── Computer Fundamentals ──────────────────────────────────────────────── | |
| "comp fundamentals": "Computer Fundamentals", | |
| "computer basics": "Computer Fundamentals", | |
| # ── Modern Digital Skills ───────────────────────────────────────────────── | |
| "digital skills": "Modern Digital Skills", | |
| "mds": "Modern Digital Skills", | |
| # ── Career Preparation ──────────────────────────────────────────────────── | |
| "career prep": "Career Preparation", | |
| "job prep": "Career Preparation", | |
| "اعداد وظيفي": "Career Preparation", | |
| # ── Python (Special Topic) ──────────────────────────────────────────────── | |
| "python": "Special Topic in Digital Skills Python Programming and Problem Solving", | |
| "python programming": "Special Topic in Digital Skills Python Programming and Problem Solving", | |
| # ── Special Topics in Data Science ─────────────────────────────────────── | |
| "special topics data science": "Special Topics in Data Science", | |
| "data science special": "Special Topics in Data Science", | |
| # ── Security Risk Management and Ethics ─────────────────────────────────── | |
| "security risk": "Security Risk Management and Ethics", | |
| "srme": "Security Risk Management and Ethics", | |
| # ── Adaptive User Systems ───────────────────────────────────────────────── | |
| "adaptive systems": "Adaptive User Systems", | |
| "user systems": "Adaptive User Systems", | |
| # ════════════════════════════════════════════════════════════════════════ | |
| # OFFICE HOURS — English | |
| # ════════════════════════════════════════════════════════════════════════ | |
| "office hours": "office hours faculty schedule", | |
| "consultation hours": "office hours consultation", | |
| "visiting hours": "office hours visit faculty", | |
| "office schedule": "office hours faculty schedule", | |
| "when can i visit": "office hours visit", | |
| "when can i see": "office hours visit faculty", | |
| "meet the professor": "office hours faculty", | |
| "meet professor": "office hours faculty", | |
| "meet dr": "office hours faculty", | |
| "visit dr": "office hours visit faculty", | |
| "visit professor": "office hours visit faculty", | |
| "see the professor": "office hours faculty", | |
| "faculty availability": "office hours faculty schedule", | |
| "professor availability": "office hours faculty schedule", | |
| # ════════════════════════════════════════════════════════════════════════ | |
| # FEES / TUITION / COST — English | |
| # ════════════════════════════════════════════════════════════════════════ | |
| "tuition": "credit hour fees tuition program", | |
| "tuition fees": "credit hour fees tuition program", | |
| "credit hour fees": "credit hour fees program track", | |
| "credit hour cost": "credit hour fees program track", | |
| "credit hour price": "credit hour fees program track", | |
| "program fees": "credit hour fees program track", | |
| "program cost": "credit hour fees program track", | |
| "how much does it cost": "credit hour fees tuition program", | |
| "how much is": "credit hour fees tuition", | |
| "registration fees": "registration fees credit hour", | |
| "enrollment fees": "registration fees credit hour", | |
| "mutanafis": "Regular Mutanafis track credit hour fees", | |
| "parallel track": "Parallel track credit hour fees", | |
| "international track": "International track credit hour fees USD", | |
| "muwazi": "Parallel Muwazi track credit hour fees", | |
| "regular track": "Regular Mutanafis track credit hour fees", | |
| # Programs by name (fees context) | |
| "cs program": "Computer Science CS credit hour fees", | |
| "cis program": "Computer Information Systems CIS credit hour fees", | |
| "bit program": "Business Information Technology BIT credit hour fees", | |
| "cys program": "Cybersecurity CYS credit hour fees", | |
| "ai program": "Artificial Intelligence AI credit hour fees", | |
| "ds program": "Data Science DS credit hour fees", | |
| "computer science program": "Computer Science CS credit hour fees", | |
| "cybersecurity program": "Cybersecurity CYS credit hour fees", | |
| "data science program": "Data Science DS credit hour fees", | |
| # ════════════════════════════════════════════════════════════════════════ | |
| # MAKRAMA / GRANT PROGRAMS — English | |
| # ════════════════════════════════════════════════════════════════════════ | |
| "makrama": "makrama scholarship grant benefit program", | |
| "maqrama": "makrama scholarship grant benefit program", | |
| "army makrama": "Army Makrama military scholarship armed forces", | |
| "army scholarship": "Army Makrama military scholarship armed forces", | |
| "military scholarship": "Army Makrama Jaseem Makrama military", | |
| "armed forces scholarship": "Army Makrama military scholarship", | |
| "civil defense scholarship": "Army Makrama civil defense scholarship", | |
| "public security scholarship": "Army Makrama public security scholarship", | |
| "intelligence scholarship": "Army Makrama general intelligence scholarship", | |
| "gendarmerie scholarship": "Army Makrama gendarmerie Darak scholarship", | |
| "jaseem": "Jaseem Makrama military disability martyr", | |
| "jaseem makrama": "Jaseem Makrama military disability martyr", | |
| "martyr scholarship": "Jaseem Makrama martyr children scholarship", | |
| "children of martyrs": "Jaseem Makrama martyr children", | |
| "military disabled": "Jaseem Makrama military disability 40 percent", | |
| "teachers makrama": "Teachers Makrama Ministry of Education scholarship", | |
| "teacher scholarship": "Teachers Makrama Ministry of Education", | |
| "ministry of education scholarship": "Teachers Makrama Ministry of Education", | |
| "education employee scholarship": "Teachers Makrama Ministry of Education", | |
| "scholarship": "makrama scholarship grant benefit program", | |
| "grant program": "makrama scholarship grant benefit program", | |
| "benefit program": "makrama scholarship grant benefit program", | |
| # ════════════════════════════════════════════════════════════════════════ | |
| # GRADE BOUNDARIES — English | |
| # ════════════════════════════════════════════════════════════════════════ | |
| "grade boundary": "grade boundaries score needed Fall 2025", | |
| "grade boundaries": "grade boundaries score needed Fall 2025", | |
| "grade cutoff": "grade boundaries cutoff score", | |
| "passing score": "grade boundaries passing score", | |
| "passing grade": "grade boundaries passing grade", | |
| "what score for a": "grade boundaries A score needed", | |
| "what grade for": "grade boundaries score needed", | |
| "score needed": "grade boundaries score needed", | |
| "score for a": "grade boundaries A score needed", | |
| "score for b": "grade boundaries B score needed", | |
| "minimum score": "grade boundaries minimum score", | |
| "grade scale": "grade boundaries grade scale", | |
| "grading": "grade boundaries grading system", | |
| # ════════════════════════════════════════════════════════════════════════ | |
| # FACULTY EMAIL / CONTACT — English | |
| # ════════════════════════════════════════════════════════════════════════ | |
| "email": "email faculty contact directory", | |
| "faculty email": "email faculty contact directory", | |
| "professor email": "email faculty contact directory", | |
| "contact professor": "email contact faculty directory", | |
| "contact faculty": "email contact faculty directory", | |
| "faculty contact": "email contact faculty directory", | |
| "faculty directory": "faculty directory email contact", | |
| "contact dr": "email contact faculty", | |
| "reach professor": "email contact faculty", | |
| "reach dr": "email contact faculty", | |
| "department members": "faculty directory department members", | |
| # ════════════════════════════════════════════════════════════════════════ | |
| # SUMMER SEMESTER — English | |
| # ════════════════════════════════════════════════════════════════════════ | |
| "summer semester": "summer semester courses schedule 2026", | |
| "summer course": "summer semester courses schedule", | |
| "summer courses": "summer semester courses schedule", | |
| "summer 2026": "Summer 2026 semester courses schedule", | |
| "summer schedule": "summer semester courses schedule", | |
| "summer registration": "summer semester courses registration", | |
| # ════════════════════════════════════════════════════════════════════════ | |
| # FINAL EXAM SCHEDULE — English | |
| # ════════════════════════════════════════════════════════════════════════ | |
| "final exam": "final exam schedule date hall lab", | |
| "final exam schedule": "final exam schedule date hall lab", | |
| "final exam date": "final exam schedule date", | |
| "exam date": "exam schedule date", | |
| "exam schedule": "exam schedule date hall lab", | |
| "when is the final": "final exam schedule date", | |
| "where is the final": "final exam schedule hall lab", | |
| "what hall": "exam schedule hall location", | |
| "what lab": "exam schedule lab location", | |
| "exam location": "exam schedule hall lab location", | |
| "exam hall": "exam schedule hall location", | |
| "exam lab": "exam schedule lab location", | |
| "second semester exam": "second semester 2025 2026 final exam", | |
| "second semester final": "second semester 2025 2026 final exam", | |
| # ════════════════════════════════════════════════════════════════════════ | |
| # SEMESTER / ACADEMIC CALENDAR — English | |
| # ════════════════════════════════════════════════════════════════════════ | |
| "first semester": "first semester Fall 2025 2026", | |
| "second semester": "second semester Spring 2025 2026", | |
| "fall 2025": "Fall 2025 2026 first semester", | |
| "spring 2026": "second semester Spring 2026", | |
| # ════════════════════════════════════════════════════════════════════════ | |
| # Arabic colloquial query expansions | |
| # Maps informal/dialect terms students use → standard Arabic terms that | |
| # appear in the knowledge base so BM25 and vector search can match. | |
| # ════════════════════════════════════════════════════════════════════════ | |
| # ── "Where is the exam?" (location) ────────────────────────────────── | |
| # Jordanian dialect: وين / فين / في وين → مختبر قاعة موقع | |
| "وين": "مختبر قاعة موقع", | |
| "فين": "مختبر قاعة موقع", | |
| "في وين": "مختبر قاعة موقع", | |
| "وين الامتحان": "مختبر قاعة موقع امتحان", | |
| "فين الامتحان": "مختبر قاعة موقع امتحان", | |
| "وين الاختبار": "مختبر قاعة موقع امتحان", | |
| # ── "In which lab / hall?" ──────────────────────────────────────────── | |
| "في اي مختبر": "مختبر تكنولوجيا", | |
| "في أي مختبر": "مختبر تكنولوجيا", | |
| "في اي قاعة": "قاعة", | |
| "في أي قاعة": "قاعة", | |
| "في اي المختبرات": "مختبر تكنولوجيا", | |
| "في أي المختبرات": "مختبر تكنولوجيا", | |
| "في اي القاعات": "قاعة", | |
| "في أي القاعات": "قاعة", | |
| "اي مختبر": "مختبر تكنولوجيا", | |
| "اي قاعة": "قاعة", | |
| # ── "When is the exam?" (time/date) ────────────────────────────────── | |
| # Jordanian colloquial: امتى / وقتيش / إمتى → موعد تاريخ وقت | |
| "امتى": "موعد تاريخ وقت", | |
| "إمتى": "موعد تاريخ وقت", | |
| "وقتيش": "موعد تاريخ وقت", | |
| "امتى الامتحان": "موعد تاريخ امتحان", | |
| "امتى الاختبار": "موعد تاريخ امتحان", | |
| # ── Lab / hall informal spellings ──────────────────────────────────── | |
| "لاب": "مختبر", | |
| "لابات": "مختبرات", | |
| "اختبار": "امتحان", | |
| "تيست": "امتحان", | |
| # ════════════════════════════════════════════════════════════════════════ | |
| # Arabic — Office Hours (ساعات الدوام المكتبي) | |
| # ════════════════════════════════════════════════════════════════════════ | |
| "ساعات المكتب": "ساعات الدوام المكتبي أعضاء هيئة التدريس", | |
| "ساعات الاستقبال": "ساعات الدوام المكتبي", | |
| "ساعات الدوام": "ساعات الدوام المكتبي", | |
| "دوام مكتبي": "ساعات الدوام المكتبي", | |
| "وقت الدكتور": "ساعات الدوام المكتبي", | |
| "وقت الاستاذ": "ساعات الدوام المكتبي", | |
| "وقت الدكتورة": "ساعات الدوام المكتبي", | |
| "متى يكون الدكتور": "ساعات الدوام المكتبي", | |
| "متى يكون الاستاذ": "ساعات الدوام المكتبي", | |
| "زيارة الدكتور": "ساعات الدوام المكتبي زيارة", | |
| "زيارة الاستاذ": "ساعات الدوام المكتبي زيارة", | |
| "اقابل الدكتور": "ساعات الدوام المكتبي", | |
| "اشوف الدكتور": "ساعات الدوام المكتبي", | |
| "متى الدكتور موجود": "ساعات الدوام المكتبي", | |
| "وقت الاستشارة": "ساعات الدوام المكتبي استشارة", | |
| "ساعة مكتبية": "ساعات الدوام المكتبي", | |
| # ════════════════════════════════════════════════════════════════════════ | |
| # Arabic — Fees / Tuition (رسوم) | |
| # ════════════════════════════════════════════════════════════════════════ | |
| "رسوم": "رسوم الساعات الدراسية رسوم التسجيل", | |
| "تكلفة": "رسوم الساعات الدراسية تكلفة", | |
| "رسوم الساعة": "رسوم الساعات الدراسية", | |
| "رسوم الساعات": "رسوم الساعات الدراسية", | |
| "رسوم التسجيل": "رسوم التسجيل الدراسي", | |
| "كم رسوم": "رسوم الساعات الدراسية رسوم التسجيل", | |
| "قديش الساعة": "رسوم الساعات الدراسية", | |
| "قديش الدراسة": "رسوم الساعات الدراسية", | |
| "بكم الساعة": "رسوم الساعات الدراسية", | |
| "كم تكلف": "رسوم الساعات الدراسية تكلفة", | |
| "كم ثمن": "رسوم الساعات الدراسية", | |
| "تكاليف الدراسة": "رسوم الساعات الدراسية تكاليف", | |
| "برنامج التنافس": "برنامج التنافس رسوم الساعات الدراسية", | |
| "تنافس": "برنامج التنافس رسوم", | |
| "موازي": "برنامج الموازي رسوم الساعات الدراسية", | |
| "برنامج الموازي": "برنامج الموازي رسوم الساعات الدراسية", | |
| "دولي": "البرنامج الدولي رسوم بالدولار", | |
| "برنامج دولي": "البرنامج الدولي رسوم بالدولار", | |
| "دينار": "رسوم بالدينار الأردني", | |
| "دولار": "رسوم بالدولار البرنامج الدولي", | |
| # ════════════════════════════════════════════════════════════════════════ | |
| # Arabic — Makrama / Grant Programs (مكرمة) | |
| # ════════════════════════════════════════════════════════════════════════ | |
| "مكرمة": "مكرمة منحة دراسية برنامج دعم", | |
| "المكرمة": "مكرمة منحة دراسية", | |
| "مكرمة الجيش": "مكرمة الجيش القوات المسلحة الأردنية منحة", | |
| "مكرمة المعلمين": "مكرمة المعلمين وزارة التربية والتعليم منحة", | |
| "مكرمة الجسيم": "مكرمة الجسيم شهداء مصابون عسكريون منحة", | |
| "منحة": "منحة مكرمة دراسية", | |
| "شهداء": "أبناء الشهداء مكرمة الجسيم", | |
| "أبناء الشهداء": "مكرمة الجسيم أبناء الشهداء والمصابين", | |
| "جسيم": "مكرمة الجسيم عجز عسكري 40", | |
| "المصابون العسكريون": "مكرمة الجسيم مصابون عسكريون", | |
| "القوات المسلحة": "مكرمة الجيش القوات المسلحة الأردنية", | |
| "الدفاع المدني": "مكرمة الجيش الدفاع المدني", | |
| "الأمن العام": "مكرمة الجيش الأمن العام", | |
| "المخابرات": "مكرمة الجيش المخابرات العامة", | |
| "الدرك": "مكرمة الجيش الدرك", | |
| "وزارة التربية": "مكرمة المعلمين وزارة التربية والتعليم", | |
| "ضابط ارتباط": "مكرمة المعلمين ضابط ارتباط", | |
| "نظام الموازي": "برنامج الموازي مكرمة الجسيم", | |
| "مكرمة الطالب": "مكرمة منحة دراسية", | |
| # ════════════════════════════════════════════════════════════════════════ | |
| # Arabic — Grade Boundaries (حدود الدرجات) | |
| # ════════════════════════════════════════════════════════════════════════ | |
| "حدود الدرجات": "حدود الدرجات درجة النجاح الفصل الأول", | |
| "الدرجة المطلوبة": "حدود الدرجات درجة مطلوبة", | |
| "علامة النجاح": "حدود الدرجات درجة النجاح", | |
| "كم علامة للنجاح": "حدود الدرجات درجة النجاح", | |
| "كم علامة للـ a": "حدود الدرجات درجة A", | |
| "كم علامة للـ b": "حدود الدرجات درجة B", | |
| "حد النجاح": "حدود الدرجات درجة النجاح", | |
| "درجة الـ a": "حدود الدرجات درجة A", | |
| "درجة A": "حدود الدرجات A", | |
| "درجة B": "حدود الدرجات B", | |
| "كم ادرس": "حدود الدرجات", | |
| # ════════════════════════════════════════════════════════════════════════ | |
| # Arabic — Faculty Email / Contact (بريد إلكتروني) | |
| # ════════════════════════════════════════════════════════════════════════ | |
| "بريد": "بريد إلكتروني أعضاء هيئة التدريس", | |
| "بريد إلكتروني": "بريد إلكتروني أعضاء هيئة التدريس", | |
| "ايميل": "بريد إلكتروني", | |
| "إيميل": "بريد إلكتروني", | |
| "ايميل الدكتور": "بريد إلكتروني أعضاء هيئة التدريس", | |
| "ايميل الاستاذ": "بريد إلكتروني أعضاء هيئة التدريس", | |
| "تواصل مع الدكتور": "بريد إلكتروني تواصل أعضاء هيئة التدريس", | |
| "كيف اتواصل": "بريد إلكتروني تواصل", | |
| "رقم الدكتور": "بريد إلكتروني تواصل أعضاء هيئة التدريس", | |
| # ════════════════════════════════════════════════════════════════════════ | |
| # Arabic — Summer Semester (الفصل الصيفي) | |
| # ════════════════════════════════════════════════════════════════════════ | |
| "صيفي": "الفصل الصيفي مواد جدول", | |
| "الصيفي": "الفصل الصيفي مواد جدول", | |
| "الصيف": "الفصل الصيفي مواد جدول", | |
| "فصل صيفي": "الفصل الصيفي مواد جدول", | |
| "مواد الصيف": "مواد الفصل الصيفي جدول", | |
| "جدول الصيفي": "جدول مواد الفصل الصيفي", | |
| "تسجيل الصيفي": "تسجيل الفصل الصيفي مواد", | |
| # ════════════════════════════════════════════════════════════════════════ | |
| # Arabic — Final Exam Schedule (امتحانات نهائية) | |
| # ════════════════════════════════════════════════════════════════════════ | |
| "نهائي": "امتحان نهائي جدول موعد", | |
| "امتحان نهائي": "امتحان نهائي جدول موعد قاعة", | |
| "الامتحان النهائي": "امتحان نهائي جدول موعد قاعة", | |
| "جدول الامتحانات": "جدول الامتحانات النهائية موعد", | |
| "جدول الامتحانات النهائية": "جدول الامتحانات النهائية موعد قاعة", | |
| "موعد الامتحان": "موعد امتحان جدول تاريخ", | |
| "موعد الامتحان النهائي": "موعد امتحان نهائي جدول", | |
| "متى الامتحان النهائي": "موعد امتحان نهائي جدول", | |
| "وين الامتحان النهائي": "قاعة مختبر امتحان نهائي", | |
| "مكان الامتحان": "قاعة مختبر امتحان موقع", | |
| # ════════════════════════════════════════════════════════════════════════ | |
| # Arabic — Semester references (فصل أول / ثاني) | |
| # ════════════════════════════════════════════════════════════════════════ | |
| "فصل أول": "الفصل الأول 2025 2026", | |
| "الفصل الأول": "الفصل الأول Fall 2025 2026", | |
| "فصل ثاني": "الفصل الثاني 2025 2026", | |
| "الفصل الثاني": "الفصل الثاني Spring 2026", | |
| # ════════════════════════════════════════════════════════════════════════ | |
| # Arabic — Course schedule / registration (جدول المواد) | |
| # ════════════════════════════════════════════════════════════════════════ | |
| "جدول المواد": "جدول المواد الدراسية شعبة", | |
| "جدول الدراسة": "جدول المواد الدراسية", | |
| "مواد مفتوحة": "شعب مفتوحة تسجيل", | |
| "شعبة": "شعبة section تسجيل", | |
| "شعب": "شعب sections تسجيل", | |
| "مفتوحة": "شعبة مفتوحة للتسجيل", | |
| "مغلقة": "شعبة مغلقة ممتلئة", | |
| "مسجلين": "عدد المسجلين شعبة", | |
| "يدرس": "يدرّس مادة دكتور مدرس", | |
| "من يدرس": "من يدرّس مادة أستاذ", | |
| "مين يعلم": "من يدرّس مادة أستاذ مدرس", | |
| "ييجي": "مادة متاحة شعبة", | |
| # ════════════════════════════════════════════════════════════════════════ | |
| # JORDANIAN DIALECT — عامية أردنية | |
| # Maps everyday colloquial phrases Jordanian students type to the | |
| # Modern Standard Arabic (fusha) terms used in the knowledge base. | |
| # Organised by topic so additions are easy to find and extend. | |
| # ════════════════════════════════════════════════════════════════════════ | |
| # ── Interrogative / question words ─────────────────────────────────── | |
| "شو": "ما ماذا", | |
| "شو هو": "ما هو", | |
| "شو هي": "ما هي", | |
| "شو يعني": "ماذا يعني", | |
| "شو المطلوب": "ما المطلوب ما الشروط", | |
| "شو الشروط": "ما الشروط المتطلبات", | |
| "شو اللي": "ما الذي", | |
| "كيفاش": "كيف", | |
| "كيف بعمل": "كيف أقوم بـ", | |
| "كيف بسوي": "كيف أقوم بـ", | |
| "مين": "من", | |
| "مين الاستاذ": "من يدرّس أستاذ مدرس", | |
| "مين الدكتور": "من يدرّس أستاذ دكتور", | |
| "مين بدرّس": "من يدرّس مادة أستاذ", | |
| "مين بيدرس": "من يدرّس مادة أستاذ", | |
| "مين بعلم": "من يدرّس مادة أستاذ", | |
| # ── General request / intent phrases ───────────────────────────────── | |
| "بدي": "أريد", | |
| "بدي اعرف": "أريد معرفة", | |
| "بحتاج": "أحتاج", | |
| "بحتاج اعرف": "أحتاج معرفة", | |
| "قولي": "أخبرني", | |
| "احكيلي": "أخبرني", | |
| "خبرني": "أخبرني", | |
| "وضحلي": "اشرح لي وضح", | |
| "ساعدني": "مساعدة", | |
| "ابي اعرف": "أريد معرفة", | |
| "بدي اشوف": "أريد الاطلاع على", | |
| "حابب اعرف": "أريد معرفة", | |
| "فيه معلومات عن": "معلومات حول", | |
| "فيه شي عن": "معلومات حول", | |
| # ── Course / subject queries ────────────────────────────────────────── | |
| "مادة": "مادة مقرر دراسي", | |
| "ماده": "مادة مقرر دراسي", | |
| "مواد": "مواد مقررات دراسية", | |
| "مادتي": "مادتي مقرري", | |
| "الماده": "المادة المقرر", | |
| "شو المادة": "ما المادة ما المقرر", | |
| "اي مادة": "أي مادة مقرر", | |
| "سكشن": "شعبة section", | |
| "سكشنات": "شعب sections", | |
| "كلاس": "محاضرة شعبة", | |
| "كلاسات": "محاضرات شعب", | |
| "كلاس مفتوح": "شعبة مفتوحة للتسجيل", | |
| "كلاس زحمة": "شعبة ممتلئة مغلقة", | |
| "زحمة": "شعبة ممتلئة مغلقة", | |
| "فاضية": "شعبة مفتوحة متاحة", | |
| "مو زحمة": "شعبة مفتوحة متاحة", | |
| "كم طالب": "عدد المسجلين شعبة", | |
| "كم مسجل": "عدد المسجلين شعبة", | |
| "فيه مقاعد": "مقاعد متاحة شعبة مفتوحة", | |
| "مقعد": "مقعد شعبة تسجيل", | |
| "فاضي مقعد": "مقعد متاح شعبة مفتوحة", | |
| # ── Mid-term exam (Jordanian dialect) ──────────────────────────────── | |
| "ميد": "امتحان منتصف الفصل mid", | |
| "الميد": "امتحان منتصف الفصل mid", | |
| "ميدترم": "امتحان منتصف الفصل midterm", | |
| "امتحان الميد": "امتحان منتصف الفصل midterm", | |
| "وين الميد": "قاعة مختبر امتحان منتصف الفصل", | |
| "امتى الميد": "موعد تاريخ امتحان منتصف الفصل", | |
| "وقت الميد": "موعد امتحان منتصف الفصل", | |
| # ── Final exam (Jordanian dialect) ─────────────────────────────────── | |
| "فاينل": "امتحان نهائي final", | |
| "الفاينل": "امتحان نهائي final", | |
| "اكسم": "امتحان نهائي exam", | |
| "أكسم": "امتحان نهائي exam", | |
| "اكزام": "امتحان exam", | |
| "وين الفاينل": "قاعة مختبر امتحان نهائي", | |
| "امتى الفاينل": "موعد تاريخ امتحان نهائي", | |
| "وقت الفاينل": "موعد امتحان نهائي جدول", | |
| "جدول الفاينل": "جدول الامتحانات النهائية موعد قاعة", | |
| # ── Quiz ───────────────────────────────────────────────────────────── | |
| "كويز": "اختبار قصير quiz", | |
| "كويزات": "اختبارات قصيرة quizzes", | |
| "كويز متى": "موعد اختبار قصير", | |
| # ── Grades / marks (Jordanian dialect) ─────────────────────────────── | |
| "علامة": "درجة علامة grade", | |
| "علاماتي": "درجاتي علاماتي", | |
| "علامتي": "درجتي علامتي", | |
| "شو علامتي": "ما درجتي علامتي", | |
| "كم طلعت": "ما الدرجة", | |
| "طلع كم": "ما الدرجة", | |
| "نجحت": "نجح درجة النجاح", | |
| "رسبت": "رسب درجة الرسوب", | |
| "ناجح": "ناجح درجة النجاح", | |
| "راسب": "راسب رسب حدود الدرجات", | |
| "بدي انجح": "درجة النجاح حدود الدرجات", | |
| "علامة الباس": "درجة النجاح passing grade", | |
| "الباس": "درجة النجاح passing", | |
| "شو الباس": "ما درجة النجاح حدود الدرجات", | |
| "الفيل": "درجة الرسوب fail", | |
| "شو الفيل": "ما درجة الرسوب حدود الدرجات", | |
| "باس مارك": "درجة النجاح حدود الدرجات", | |
| "علامة جيد": "درجة جيد B grade boundaries", | |
| "علامة ممتاز": "درجة ممتاز A grade boundaries", | |
| "شو بدي اجيب": "حدود الدرجات درجة النجاح", | |
| "بدي آخذ أي": "حدود الدرجات درجة A", | |
| "بدي آخذ بي": "حدود الدرجات درجة B", | |
| # ── Fees / cost (Jordanian dialect) ────────────────────────────────── | |
| "فلوس": "رسوم تكلفة دفع", | |
| "شو بدفع": "كم الرسوم رسوم الساعات الدراسية", | |
| "بدفع كم": "كم الرسوم رسوم الساعات الدراسية", | |
| "بكم": "رسوم تكلفة", | |
| "غالي": "رسوم تكلفة سعر", | |
| "رخيص": "رسوم تكلفة سعر", | |
| "الساعة بكم": "رسوم الساعة الدراسية", | |
| "كم دينار الساعة": "رسوم الساعة الدراسية بالدينار", | |
| "بدفع عليها": "رسوم الساعات الدراسية", | |
| "شو بدفعش": "رسوم ما الرسوم", | |
| "المبلغ": "رسوم المبلغ المطلوب", | |
| "بكم الساعة": "رسوم الساعة الدراسية", | |
| # ── Registration / enrollment (Jordanian dialect) ───────────────────── | |
| "بسجل": "تسجيل مواد", | |
| "كيف بسجل": "كيفية تسجيل المواد", | |
| "بدي اسجل": "أريد تسجيل مواد", | |
| "سجلت": "تسجيل", | |
| "موعد التسجيل": "موعد تسجيل المواد", | |
| "وقت التسجيل": "موعد تسجيل المواد", | |
| "اشطب": "حذف مادة", | |
| "بشطب": "حذف مادة", | |
| "شطب مادة": "حذف مادة", | |
| "سحب مادة": "حذف مادة سحب", | |
| "اضيف مادة": "إضافة مادة", | |
| "بضيف مادة": "إضافة مادة", | |
| "إضافة وحذف": "إضافة وحذف المواد تسجيل", | |
| "الدروب": "حذف مادة drop", | |
| "دروبت": "حذف مادة drop", | |
| "ساعات منجزة": "ساعات معتمدة منجزة", | |
| "ساعات خلصتها": "ساعات معتمدة منجزة", | |
| "كم ساعة خلصت": "كم ساعة معتمدة منجزة", | |
| "باقيلي": "ساعات متبقية للتخرج", | |
| "متطلبات التخرج": "شروط التخرج ساعات معتمدة", | |
| # ── Lecture schedule / timing (Jordanian dialect) ───────────────────── | |
| "وقت الكلاس": "وقت المحاضرة جدول", | |
| "وين الكلاس": "قاعة مختبر محاضرة", | |
| "وين المحاضرة": "قاعة مختبر محاضرة", | |
| "موعد المحاضرة": "وقت المحاضرة جدول", | |
| "جدول الدكتور": "جدول المواد أستاذ مدرس", | |
| "امتى الكلاس": "موعد وقت المحاضرة", | |
| "امتى المحاضرة": "موعد وقت المحاضرة", | |
| "يوم المحاضرة": "يوم موعد المحاضرة جدول", | |
| # ── Office hours (more Jordanian dialect) ──────────────────────────── | |
| "الدكتور موجود": "ساعات الدوام المكتبي أعضاء هيئة التدريس", | |
| "بلاقي الدكتور": "ساعات الدوام المكتبي", | |
| "بشوف الدكتور": "ساعات الدوام المكتبي", | |
| "بروح على مكتب": "ساعات الدوام المكتبي", | |
| "وين مكتب الدكتور": "مكتب أستاذ ساعات الدوام", | |
| "وين مكتب الاستاذ": "مكتب أستاذ ساعات الدوام", | |
| "رح اجي": "ساعات الدوام المكتبي زيارة", | |
| "بقدر اجي": "ساعات الدوام المكتبي", | |
| "فين مكتبه": "مكتب ساعات الدوام المكتبي", | |
| # ── Email / contact (Jordanian dialect) ────────────────────────────── | |
| "ايميله": "بريده الإلكتروني أعضاء هيئة التدريس", | |
| "ايميلها": "بريدها الإلكتروني أعضاء هيئة التدريس", | |
| "ايميل الاستاذة": "بريد إلكتروني أعضاء هيئة التدريس", | |
| "كيف اتواصل مع": "بريد إلكتروني تواصل", | |
| "اكتبله": "بريد إلكتروني تواصل", | |
| "ارسلله": "بريد إلكتروني إرسال", | |
| "رقمه": "بريد إلكتروني تواصل أعضاء هيئة التدريس", | |
| # ── Makrama / grants (Jordanian dialect) ───────────────────────────── | |
| "عسكري": "مكرمة الجيش القوات المسلحة الأردنية", | |
| "ابو عسكري": "مكرمة الجيش أبناء العسكريين", | |
| "ولد عسكري": "مكرمة الجيش أبناء العسكريين", | |
| "بنت عسكري": "مكرمة الجيش أبناء العسكريين", | |
| "معلم": "مكرمة المعلمين وزارة التربية والتعليم", | |
| "ابو معلم": "مكرمة المعلمين أبناء المعلمين", | |
| "ولد معلم": "مكرمة المعلمين أبناء المعلمين", | |
| "بنت معلم": "مكرمة المعلمين أبناء المعلمين", | |
| "شهيد": "مكرمة الجسيم أبناء الشهداء", | |
| "ابن شهيد": "مكرمة الجسيم أبناء الشهداء", | |
| "مجروح": "مكرمة الجسيم مصابون عسكريون عجز", | |
| "عجز": "مكرمة الجسيم نسبة عجز 40 بالمئة", | |
| "نسبة عجز": "مكرمة الجسيم نسبة عجز عسكري", | |
| "بدي امتحن": "منحة مكرمة امتحان قبول", | |
| "كيف اقدم": "كيفية التقديم منحة مكرمة", | |
| "كيف اتقدم": "كيفية التقديم منحة مكرمة", | |
| # ── Program / department (Jordanian dialect) ────────────────────────── | |
| "قسم": "قسم تخصص برنامج", | |
| "تخصص": "تخصص برنامج دراسي", | |
| "شو التخصص": "ما التخصص البرنامج", | |
| "كلية": "كلية الحاسوب والمعلومات KASIT", | |
| "الكلية": "كلية الحاسوب والمعلومات KASIT", | |
| "كاسيت": "KASIT كلية الحاسوب والمعلومات", | |
| "الجامعة": "جامعة الأردن University of Jordan", | |
| "جامعة الاردن": "جامعة الأردن University of Jordan KASIT", | |
| "الأردن الجامعة": "جامعة الأردن University of Jordan", | |
| "اليو جي": "جامعة الأردن UJ University of Jordan", | |
| # ── Summer semester (more Jordanian dialect) ───────────────────────── | |
| "صيف": "الفصل الصيفي مواد جدول", | |
| "كلاسات الصيف": "مواد الفصل الصيفي جدول", | |
| "مواد الصيفي": "مواد الفصل الصيفي جدول", | |
| "تسجيل الصيف": "تسجيل الفصل الصيفي مواد", | |
| "بسجل صيفي": "تسجيل الفصل الصيفي مواد", | |
| "فيه صيفي": "الفصل الصيفي مواد متاحة", | |
| "مواد متاحة الصيف": "مواد الفصل الصيفي متاحة للتسجيل", | |
| # ── Academic standing / GPA (Jordanian dialect) ─────────────────────── | |
| "معدل": "المعدل التراكمي GPA", | |
| "المعدل": "المعدل التراكمي GPA", | |
| "جي بي اي": "المعدل التراكمي GPA", | |
| "معدلي": "معدلي التراكمي GPA", | |
| "شو معدلي": "ما معدلي التراكمي GPA", | |
| "رفع المعدل": "رفع المعدل التراكمي", | |
| "انذار": "إنذار أكاديمي academic warning", | |
| "فصل": "فصل أكاديمي academic dismissal", | |
| "مراجعة علامة": "مراجعة درجة اعتراض", | |
| "اعتراض على علامة": "مراجعة اعتراض درجة", | |
| } | |
| # Sort by length descending so longer phrases match before shorter substrings. | |
| _SORTED_ALIASES = sorted(COURSE_SYNONYMS.keys(), key=len, reverse=True) | |
| # Pre-compile one pattern per alias for whole-word matching. | |
| _PATTERNS = { | |
| alias: re.compile(r"\b" + re.escape(alias) + r"\b", re.IGNORECASE) | |
| for alias in _SORTED_ALIASES | |
| } | |
| def expand_query(query: str) -> str: | |
| """ | |
| Append official course names for any aliases found in the query. | |
| The original query is preserved; expansions are appended so all | |
| retrieval methods see both the student term and the official name. | |
| """ | |
| lower = query.lower() | |
| additions: list[str] = [] | |
| for alias in _SORTED_ALIASES: | |
| if _PATTERNS[alias].search(lower): | |
| official = COURSE_SYNONYMS[alias] | |
| # Only add if the official name is not already present. | |
| if official.lower() not in lower and official not in additions: | |
| additions.append(official) | |
| if not additions: | |
| return query | |
| return query + " " + " ".join(additions) | |