Skip to main content

Complex Evaluate

Python Version License Tests codecov

A Python library for evaluating complex ontology alignments in EDOAL (Expressive and Declarative Ontology Alignment Language) format adapting precision, recall, and f-measure metrics to the complex matching case.

Requirements

  • Python >= 3.9
  • NumPy
  • SciPy

📦 Installation

pip install complex_evaluate

📖 Usage

Basic Example

from complex_evaluate.evaluate import evaluate_edoal

# Compare two alignment files
precision, recall, f_measure = evaluate_edoal(
    'predicted_alignment.edoal',
    'reference_alignment.edoal'
)

print(f"Precision: {precision:.3f}")
print(f"Recall: {recall:.3f}")
print(f"F-measure: {f_measure:.3f}")

Comparing from strings

from complex_evaluate.evaluate import evaluate_edoal_string

predicted = '''<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
         xmlns="http://knowledgeweb.semanticweb.org/heterogeneity/alignment#">
  <Alignment>
    <map>
      <Cell>
        <entity1>
          <Class rdf:about="http://example.org#ClassA" />
        </entity1>
        <entity2>
          <Class rdf:about="http://example.org#ClassB" />
        </entity2>
      </Cell>
    </map>
  </Alignment>
</rdf:RDF>'''

reference = predicted  # Use same for identity test

p, r, f = evaluate_edoal_string(predicted, reference)
print(f"F-measure: {f}")  # Should be 1.0 for identical alignments

📊 Use Cases

This metric was used in the evaluation of OAEI 2025 in the Complex Matching track https://oaei.ontologymatching.org/2025/results/complex/index.html.

Also, this library is particularly useful for:

  • Ontology Alignment Evaluation: Benchmarking alignment approaches on complex matching tasks.
  • LLM reasoning training: The metric can enable the training of LLMs to reason about complex alignments, by providing a verifiable reward signal based on the score of the predicted alignment against a reference alignment.

🤝 Contributing

Contributions are welcome! Some areas for improvement:

  • Additional similarity metrics.
  • Performance optimizations.
  • Support for other alignment formats.
  • Extended documentation and examples.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

📚 Citation

If you use this library in your research, please cite it as follows:

@inproceedings{DBLP:conf/esws/SousaLS25,
  author       = {Guilherme Henrique Santos Sousa and
                  Rinaldo Lima and
                  C{\'{a}}ssia Trojahn dos Santos},
  title        = {On Evaluation Metrics for Complex Matching Based on Reference Alignments},
  booktitle    = {{ESWC} {(1)}},
  series       = {Lecture Notes in Computer Science},
  volume       = {15718},
  pages        = {77--93},
  publisher    = {Springer},
  year         = {2025}
}

Built with ❤️ for the Semantic Web and Ontology Matching community.

Metadata

Release files for complex-evaluate 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for complex-evaluate 0.0.1
File Size Uploaded
complex_evaluate-0.0.1.tar.gz 5.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for complex-evaluate 0.0.1
File Interpreter ABI Platform
complex_evaluate-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 11.1 kB

Release files / complex_evaluate-0.0.1.tar.gz

Download URL complex_evaluate-0.0.1.tar.gz
Size 5.0 kB
Tags Source
SHA-256 checksum
How to use checksums
3369fe26027007317dd60cad774fededc42f29c911363193dd837c324e408100
BLAKE2b-256 checksum
How to use checksums
c91ddb0f6df453f3ba7227f156d350616a48179a1f854c7f82019ae1b1874bbe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Release files / complex_evaluate-0.0.1-py3-none-any.whl

Download URL complex_evaluate-0.0.1-py3-none-any.whl
Size 6.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5e0e644376304b9af64395ebb734d02b68bcb24e97020712a5eda77e25d274a8
BLAKE2b-256 checksum
How to use checksums
85a8128207e30dca0e810816fc62a38df4a8e0265005ab60b1a30423352f0329
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page