from __future__ import annotations import sys from pathlib import Path ROOT = Path(__file__).resolve().parents[1] sys.path.insert(0, str(ROOT)) from answering import evaluate_query from clause_retrieval import init_clause_retrieval, load_ontology from config import CORPUS_MCKF_ONTOLOGY_PATH QUESTION = ( "Dönem başında kayıt yaptırırken tez dersi ve uzmanlık dersi seçmeyen öğrenci bir dönem " "boyunca dersine devam etmiş ve tezini tamamlamış ancak son aşamada enstitü ders " "seçmediğiniz için mezun olamıyorsunuz diyor. Burada kimler sorumluluklarını yapmamıştır " "kanun maddelerine göre?" ) def main() -> None: init_clause_retrieval(load_ontology(CORPUS_MCKF_ONTOLOGY_PATH)) result = evaluate_query(QUESTION) answer = result.get("answer", "") expected_sources = {"Madde 19", "Madde 22", "Madde 44"} actual_sources = set(result.get("source_ids", [])) required_phrases = ( "Aktör bazlı sorumluluk testi", "Öğrenci - koşullu sorumluluk", "Danışman - olası rehberlik/süreç sorumluluğu", "sorumluluğun kesin dağılımı yapılamaz", ) assert result.get("error", "") == "", result assert expected_sources <= actual_sources, actual_sources assert all(phrase in answer for phrase in required_phrases), answer print("Normative case analysis: PASS") print("Sources:", ", ".join(sorted(actual_sources))) if __name__ == "__main__": main()