Select Git revision
report.py 1.99 KiB
#!/usr/bin/python3.10
# -*-coding:Utf-8 -*
#==============================================================================
# ontoScorer: [brief description of the module]
#------------------------------------------------------------------------------
# Detailed module description, if needed
#==============================================================================
class Report:
def __init__(self, reference_ontology, generated_ontology, comparison_result, metrics):
self.reference_ontology = reference_ontology
self.generated_ontology = generated_ontology
self.comparison_result = comparison_result
self.metrics = metrics
def generate(self):
report_str = "=== Ontology Evaluation Report ===\n"
report_str += f"\nReference Ontology: {self.reference_ontology.path}"
report_str += f"\nNumber of classes in Reference Ontology: {len(self.reference_ontology.classes)}"
report_str += f"\n\nGenerated Ontology: {self.generated_ontology.path}"
report_str += f"\nNumber of classes in Generated Ontology: {len(self.generated_ontology.classes)}"
# Comparison of the number of classes
report_str += "\n\nComparison Result: "
if len(self.reference_ontology.classes) > len(self.generated_ontology.classes):
report_str += "The generated ontology has fewer classes than the reference ontology."
elif len(self.reference_ontology.classes) < len(self.generated_ontology.classes):
report_str += "The generated ontology has more classes than the reference ontology."
else:
report_str += "The generated ontology and the reference ontology have the same number of classes."
report_str += "\n\nEvaluation Metrics:"
report_str += f'\nPrecision: {self.metrics.scores["overall"]["precision"]}'
report_str += f'\nRecall: {self.metrics.scores["overall"]["recall"]}'
report_str += f'\nF1 Score: {self.metrics.scores["overall"]["f1"]}'
return report_str