commit | 76b879731c9b059fb96d82a16826ab81e3a2b7ed | [log] [tgz] |
---|---|---|
author | Akron <nils@diewald-online.de> | Mon Jun 02 16:59:59 2025 +0200 |
committer | Akron <nils@diewald-online.de> | Mon Jun 02 16:59:59 2025 +0200 |
tree | ebfa485fbdcd12dfd2825f30e3dbd4d1c5d87ac2 | |
parent | e5aaf0af3b981a49ae410ea247060affeec8be11 [diff] |
Only add whitespace around not-escaped parentheses Change-Id: I4ebfb44e10e67a9d21442203e7a6b0ff203d88c6
A KorAP service using the KoralPipe mechanism to rewrite terms in queries and responses between different annotations.
KoralPipe-TermMapper is a tool for transforming linguistic annotations between different annotation schemes. It allows you to define mapping rules in YAML configuration files and apply these mappings to JSON-encoded linguistic annotations.
go get github.com/KorAP/KoralPipe-TermMapper
termmapper -c config.yaml -p 8080 -l info
Command line options:
--config
or -c
: YAML configuration file containing mapping directives (required)--port
or -p
: Port to listen on (default: 8080)--log-level
or -l
: Log level (debug, info, warn, error) (default: info)--help
or -h
: Show help messageMapping rules are defined in YAML files with the following structure:
- id: mapping-list-id foundryA: source-foundry layerA: source-layer foundryB: target-foundry layerB: target-layer mappings: - "[pattern1] <> [replacement1]" - "[pattern2] <> [replacement2]"
Each mapping rule consists of two patterns separated by <>
. The patterns can be:
[key]
or [foundry/layer=key]
or [foundry/layer=key:value]
[term1 & term2]
or [term1 | term2]
or [term1 | (term2 & term3)]
Transform a JSON object using the specified mapping list.
Parameters:
:map
: ID of the mapping list to usedir
(query): Direction of transformation (atob or btoa
, default: atob
)foundryA
(query): Override default foundryA from mapping listfoundryB
(query): Override default foundryB from mapping listlayerA
(query): Override default layerA from mapping listlayerB
(query): Override default layerB from mapping listRequest body: JSON object to transform
Example request:
POST /opennlp-mapper/query?dir=atob&foundryB=custom HTTP/1.1 Content-Type: application/json { "@type": "koral:token", "wrap": { "@type": "koral:term", "foundry": "opennlp", "key": "PIDAT", "layer": "p", "match": "match:eq" } }
Example response:
{ "@type": "koral:token", "wrap": { "@type": "koral:termGroup", "operands": [ { "@type": "koral:term", "foundry": "custom", "key": "PIDAT", "layer": "p", "match": "match:eq" }, { "@type": "koral:term", "foundry": "custom", "key": "AdjType", "layer": "p", "match": "match:eq", "value": "Pdt" } ], "relation": "relation:and" } }
Copyright (C) 2025, IDS Mannheim
Author: Nils Diewald
TermMapper is free software published under the BSD-2 License.
Disclaimer: This software was developed (as an experiment) with major assistance by AI (mainly Claude 3.5-sonnet and Claude 4-sonnet).