Matching EvaLuation Toolkit (MELT)
User Guide
A powerful framework for ontology, instance, and knowledge graph matching.
Get started now View it on GitHub
Overview
MELT is a powerful maven framework for developing, tuning, evaluating, and packaging ontology matching systems. It is optimized to be used in OAEI campaigns and allows to submit matchers to the SEALS and HOBBIT evaluation platform easily. MELT can also be used for non OAEI-related matching tasks and evaluation.
Found a bug? Don’t hesitate to open an issue.
Code Examples
The examples folder contains reference examples that you can use to better understand how MELT can be used for different tasks and that can be used as barebone project for specific applications. The examples are also referenced in the user guide here.
Code Documentation / JavaDoc
The MELT code is extensively documented using JavaDoc which is also published online:
About this User Guide
This guide is written for newcomers and practitioners in the matching domain. You can read this guide like a book chapter by chapter using the navigation pane on the left or by jumping directly to the section of your interest.
Note that you can also easily search the entire user guide:
Code search
You can use the search below to search the complete code base of MELT.
Installation
MELT is distributed through maven central. You can directly include MELT dependencies in your maven project from there. If you want to use the latest MELT development version (e.g. to try out new features or to contribute to the MELT project), clone the github repository and install it locally (mvn clean install
).
Special Installation Instructions for Module matching-ml
The ML module of MELT executes python code in the background. Before installing/using the dependency locally, you need to prepare your machine (once):
- make sure python 3 is installed
- install the requirements from the
requirements.txt
file
Modules Overview
MELT is grouped into multiple maven modules which are described below.
matching-assembly
Utility to automatically package matching systems.
matching-base
Contains the basic interfaces to implement a matcher e.g. MatcherURL.
matching-data
Contains the MELT track repository implementation and data structures such as Track
, or TestCase
.
matching-eval
Contains various tools to evaluate the performance of matchers and to analyze their result.
matching-eval-client
Contains the code for the JAR that can be used to evaluate matchers in the command line.
matching-jena-matchers
Contains modularized matchers that can be used to quickly assemble matching systems. Note that it is possible to easily chain those matchers building a matching pipeline.
matching-jena
Contains Jena-based classes related to matcher development as well as additional services such as caching of source and target ontologies.
matching-maven-plugin
Maven plugin for creating a container for the HOBBIT platform.
matching-ml
The machine learning extension for MELT. The ML extension allows communicating with a Python backend. Currently, gensim is supported. The module also contains a client to consume KGvec2go vectors.
matching-owlapi
Contains OWL-API-based classes related to matcher development as well as additional services such as caching of source and target ontologies.
matching-validation
Contains various validation services to validate new tracks and test cases. Validation includes parseability by multiple libraries using different releases and further checks.
receivers (receiver-hobbit, receiver-cli, receiver-http)
Contains utilities to wrap a matcher to a specific interface such as HTTP, SEALS, HOBBIT etc.
yet-another-alignment-api
MELT’s alignment API containing the Alignment
data structure and related functionality such as parsing or serializing of alignments.