IPSM API API Reference
Inter Platform Semantic Mediator API
Request Content-Types: application/json
Response Content-Types: application/json
Schemes: http
Version: 1.0.0
Alignments
List alignments
Lists alignments uploaded to the IPSM.
Available alignments info
Response Example (200 OK)
[
{
"descId": "string",
"id": "integer",
"date": "integer",
"name": "string",
"sourceOntologyURI": "string",
"targetOntologyURI": "string",
"version": "string",
"creator": "string",
"description": "string"
}
]
Upload new alignment
Alignment configuration
Request Content-Types: application/xml
Request Example
{
"name": "string",
"version": "string",
"creator": "string",
"description": "string",
"onto1": {
"Ontology": {
"about": "string"
}
},
"onto2": {
"Ontology": {
"about": "string"
}
},
"steps": {
"step": {
"cell": "string",
"order": "integer"
}
},
"map": {
"Cell": {
"entity1": {},
"entity2": {},
"relation": "string"
}
}
}
Alignment uploaded successfully
Alignment already uploaded
Wrong arguments
Alignment with the same ID but different definition exists
Response Content-Types: application/json
Response Example (201 Created)
{
"message": "string"
}
Response Example (208 Already Reported)
{
"message": "string"
}
Response Example (400 Bad Request)
{
"message": "string"
}
Response Example (409 Conflict)
{
"message": "string"
}
Delete alignment identified by name+version
Name of the alignment to delete
Version of the alignment to delete
Get an alignment identified by name+version
Name of the alignment to be retrieved
Version of the alignment to be retrieved
Alignment successfuly returned
Alignment not found
Alignment retrieval failed
Response Content-Types: application/xml
Response Example (400 Bad Request)
{
"message": "string"
}
Response Example (500 Internal Server Error)
{
"message": "string"
}
Channels
List active IPSM channels
The endpoint returns the list of all IPSM channels which are currently active.
Array of channel information records
Response Example (200 OK)
[
{
"id": "integer",
"descId": "string",
"source": "string",
"inpAlignmentName": "string",
"inpAlignmentVersion": "string",
"outAlignmentName": "string",
"outAlignmentVersion": "string",
"sink": "string"
}
]
Create new channel
Channel configuration
Request Content-Types: application/json
Request Example
{
"source": "string",
"inpAlignmentName": "string",
"inpAlignmentVersion": "string",
"outAlignmentName": "string",
"outAlignmentVersion": "string",
"sink": "string",
"parallelism": "integer"
}
Delete channel based on the ID
ID of channel to delete
Translation
Translate JSON-LD message via sequence of alignments
Translation request data
Request Example
{
"alignIDs": [
{
"name": "string",
"version": "string"
}
],
"graphStr": "string"
}
Translation successful
Error during translation
Response Content-Types: application/json
Response Example (200 OK)
{
"message": "string",
"graphStr": "string"
}
Response Example (400 Bad Request)
{
"message": "string",
"graphStr": "string"
}
Logging
Get the current IPSM logging level
Current logging level successfuly returned
Response Content-Types: application/json
Response Example (200 OK)
{
"message": "string",
"level": "string"
}
Set logging level
Logging level
Logging level set successfully
Response Content-Types: application/json
Response Example (200 OK)
{
"message": "string",
"level": "string"
}
Schema Definitions
ChannelInfo: object
- id: integer
-
Identifier of the channel
- descId: string
-
Business identifier of the channel
- source: string
-
Identifier representing the source of the channel, i.e. Apache Kafka topic from which IPSM reads the RDF data to be translated
- inpAlignmentName: string
-
Name of the input alignment, used for translating the incoming RDF data
- inpAlignmentVersion: string
-
Version of the input alignment, used for translating the incoming RDF data
- outAlignmentName: string
-
Name of the output alignment, used for translating the outgoing RDF data
- outAlignmentVersion: string
-
Version of the output alignment, used for translating the outgoing RDF data
- sink: string
-
Identifier of the sink of the channel, i.e. Apache Kafka topic to which IPSM publishes translated RDF data
Example
{
"id": "integer",
"descId": "string",
"source": "string",
"inpAlignmentName": "string",
"inpAlignmentVersion": "string",
"outAlignmentName": "string",
"outAlignmentVersion": "string",
"sink": "string"
}
ChannelConfig: object
- source: string
-
Identifier representing the source of the channel, i.e. Apache Kafka topicfrom which IPSM reads the RDF data to be translated
- inpAlignmentName: string
-
Name of the input alignment, used for translating the incoming RDF data
- inpAlignmentVersion: string
-
Version of the input alignment, used for translating the incoming RDF data
- outAlignmentName: string
-
Name of the output alignment, used for translating the outgoing RDF data
- outAlignmentVersion: string
-
Version of the output alignment, used for translating the outgoing RDF data
- sink: string
-
Identifier of the sink of the channel, i.e., Apache Kafka topic to which IPSM publishes translated RDF data
- parallelism: integer 1
-
Internal parallelism of the channel, e.g., the value 5 means that the channel can consume 5 messages in parallel (preserving their time order)
Example
{
"source": "string",
"inpAlignmentName": "string",
"inpAlignmentVersion": "string",
"outAlignmentName": "string",
"outAlignmentVersion": "string",
"sink": "string",
"parallelism": "integer"
}
Alignment: object
- name: string
-
Alignment name
- version: string
-
Alignment version
- creator: string
-
Alignment creator
- description: string
-
Alignment description
- onto1: object
-
onto1
-
- Ontology: object
-
Contains the URI identifying the ontology
-
- about: string
-
URI identifying the ontology
- onto2: object
-
onto2
-
- Ontology: object
-
Contains the URI identifying the ontology
-
- about: string
-
URI identifying the ontology
- steps: object
-
Steps
-
- step: object
-
Alignment step
-
- cell: string
-
Alignment cell ID
- order: integer
-
Order of cell application
- map: object
-
map
-
- Cell: object
-
Cell
-
- entity1: object
-
The first aligned ontology entity
-
- entity2: object
-
The second aligned ontology entity
-
- relation: string
-
Relation
Example
{
"name": "string",
"version": "string",
"creator": "string",
"description": "string",
"onto1": {
"Ontology": {
"about": "string"
}
},
"onto2": {
"Ontology": {
"about": "string"
}
},
"steps": {
"step": {
"cell": "string",
"order": "integer"
}
},
"map": {
"Cell": {
"entity1": {},
"entity2": {},
"relation": "string"
}
}
}
AlignmentInfo: object
- descId: string
-
Business identifier
- id: integer
-
Technical identifier
- date: integer
-
UNIX timestamp of upload to IPSM
- name: string
-
Name of the alignment
- sourceOntologyURI: string
-
URI of the source ontology for alignment
- targetOntologyURI: string
-
URI of the target ontology for alignment
- version: string
-
Alignment version
- creator: string
-
Alignment creator
- description: string
-
Alignment description
Example
{
"descId": "string",
"id": "integer",
"date": "integer",
"name": "string",
"sourceOntologyURI": "string",
"targetOntologyURI": "string",
"version": "string",
"creator": "string",
"description": "string"
}
LoggingResponse: object
- message: string
- level: string ALL, TRACE, DEBUG, INFO, WARN, ERROR, OFF
Example
{
"message": "string",
"level": "string"
}
AlignmentID: object
- name: string
-
Alignment name
- version: string
-
Alignment version
Example
{
"name": "string",
"version": "string"
}
TranslationRequest: object
- alignIDs: AlignmentID
-
Sequence of alignment IDs to ba applied
-
AlignmentID - graphStr: string
-
JSON-LD message as a string
Example
{
"alignIDs": [
{
"name": "string",
"version": "string"
}
],
"graphStr": "string"
}
TranslationResponse: object
- message: string
-
Info on the success of the translation
- graphStr: string
-
Translated JSON-LD message as a string
Example
{
"message": "string",
"graphStr": "string"
}