openapi: 3.0.1
info:
title: "Ontology / Knowledge Graph Matcher"
description: "This interface represents an Ontology / KnowledgeGraph Matcher. It is also in use by the [Ontology Alignment Evaluation Initiative (OAEI)](http://oaei.ontologymatching.org)."
license:
name: MIT
url: https://opensource.org/licenses/MIT
version: 1.0.0
externalDocs:
description: "See the MELT repository"
url: https://github.com/dwslab/melt
servers:
- url: http://localhost:8080
paths:
/match:
post:
summary: Computes the alignment between two given ontologies/knowledge graphs.
description: >-
The ontologies can either be uploaded via files (multipart/form-data) which is the default or
via public URLs (application/x-www-form-urlencoded) which means that the ontologies need to be provided on a public server and only the URL is transmitted to the matcher.
Switch between them via the drop down list at the `request body` level.
To try out the `multipart/form-data` you can use the following curl command (`cmt-rdf` and `conference.rdf` are local paths to ontology files):
```
curl -F 'source=@cmt.rdf' -F 'target=@conference.rdf' {URL_of_the_matcher}
```
tags:
- match
requestBody:
required: true
content:
multipart/form-data:
schema:
required:
- source
- target
type: object
properties:
source:
type: string
format: binary
description: The source ontology/knowledge graph as a file (upload). The format of the file depends on the matcher. Possible formats rdf/xml, turtle, n3
target:
type: string
format: binary
description: The target ontology/knowledge graph as a file (upload). The format of the file depends on the matcher. Possible formats rdf/xml, turtle, n3
inputAlignment:
type: string
format: binary
description: The input alignment as a file(upload) which is optional. The format needs to be the [alignment format](https://moex.gitlabpages.inria.fr/alignapi/format.html)
parameters:
type: string
format: binary
description: The parameters as a file(upload) which is optional. Currently supported formats are JSON and YAML. The parameters are usually only key value pairs. Some keys are already defined in [MELT](https://github.com/dwslab/melt/blob/master/matching-base/src/main/java/de/uni_mannheim/informatik/dws/melt/matching_base/ParameterConfigKeys.java).
application/x-www-form-urlencoded:
schema:
required:
- source
- target
type: object
properties:
source:
type: string
description: The URI of the source ontology/knowledge graph. The format of the file depends on the matcher. Possible formats rdf/xml, turtle, n3. The URI can be a file URI pointing to a local file or an external URI.
target:
type: string
description: The URI of the target ontology/knowledge graph. The format of the file depends on the matcher. Possible formats rdf/xml, turtle, n3. The URI can be a file URI pointing to a local file or an external URI.
inputAlignment:
type: string
description: The URI of the input alignment which is optional. The format needs to be the [alignment format](https://moex.gitlabpages.inria.fr/alignapi/format.html). The URI can be a file URI pointing to a local file or an external URI.
parameters:
type: string
description: The URI of the parameters which is optional. Currently supported formats are JSON and YAML. The parameters are usually only key value pairs. Some keys are already defined in [MELT](https://github.com/dwslab/melt/blob/master/matching-base/src/main/java/de/uni_mannheim/informatik/dws/melt/matching_base/ParameterConfigKeys.java). The URI can be a file URI pointing to a local file or an external URI.
responses:
'200':
description: The alignment in the [alignment format](https://moex.gitlabpages.inria.fr/alignapi/format.html) either as file (application/xml in case of multipart request) or as file URL (represented as a string in case of form-urlencoded request)
content:
application/xml:
schema:
$ref: '#/components/schemas/RDF'
examples:
xml:
summary: Two correspondences
value: |
yes
0
??
text/plain:
schema:
type: string
description: The URL which points to the alignment file.
example: 'file:///home/oaei/myalignment.rdf'
'400':
description: Some errors on the client side(like not providing a source or target OR formatted in the wrong way).
content:
text/plain:
schema:
type: string
description: Any text which describes the error
example: 'No source is provided'
'500':
description: Any server errors.
content:
text/plain:
schema:
type: string
description: Any text which describes the error
example: 'Could not read file'
components:
schemas:
RDF:
type: object
properties:
Alignment:
type: object
properties:
xml:
type: string
level:
type: string
type:
type: string
map:
type: array
items:
type: object
xml:
name: map
properties:
Cell:
type: object
properties:
entity1:
type: object
properties:
rdf:resource:
type: string
xml:
attribute: true
entity2:
type: object
properties:
rdf:resource:
type: string
xml:
attribute: true
relation:
type: string
enum: ['=','>', '<', '~>', '%', '?']
measure:
type: number
format: float
xml:
prefix: 'rdf'
namespace: 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'