Stored Transformation
Stored transformation detail
Inspect version history, edit inputs, and save a new version without overwriting prior records.
{ "externalId": .id, "name": [{lang: "es", value: .name.value}], "hasDescription": [.shortDescription.value | {shortDescription: [{lang: "es", value: .}]}], "hasLocation": [.location.value.coordinates as $c | {asWkt: ("POINT(" + ($c[0]|tostring) + " " + ($c[1]|tostring) + ")"), autonomousCommunity: "Comunidad de Madrid", country: "España", municipality: "Colmenarejo", postalCode: "28270", province: "Madrid", lat: $c[1], long: $c[0]}] }
{
"externalId": "trailroute_lr-01",
"hasDescription": [
{
"shortDescription": [
{
"lang": "es",
"value": "Dificultad: baja"
}
]
}
],
"hasLocation": [
{
"asWkt": "POINT(-3.8565638 40.4845294)",
"autonomousCommunity": "Comunidad de Madrid",
"country": "Espa\u00f1a",
"lat": 40.4845294,
"long": -3.8565638,
"municipality": "Colmenarejo",
"postalCode": "28270",
"province": "Madrid"
}
],
"name": [
{
"lang": "es",
"value": "Majalacabra"
}
]
}
Trace Details
{
"attempts": [
{
"attempt_number": 1,
"compile_ok": true,
"error_message": null,
"execution_ok": true,
"jq_expression": ".id",
"schema_valid": true,
"stage": "field",
"target_field": "externalId",
"used_hints": true
},
{
"attempt_number": 1,
"compile_ok": true,
"error_message": null,
"execution_ok": true,
"jq_expression": "[{lang: \"es\", value: .name.value}]",
"schema_valid": true,
"stage": "field",
"target_field": "name",
"used_hints": true
},
{
"attempt_number": 1,
"compile_ok": true,
"error_message": null,
"execution_ok": true,
"jq_expression": "[.shortDescription.value | {shortDescription: [{lang: \"es\", value: .}]}]",
"schema_valid": true,
"stage": "field",
"target_field": "hasDescription",
"used_hints": true
},
{
"attempt_number": 1,
"compile_ok": true,
"error_message": null,
"execution_ok": true,
"jq_expression": "[.location.value.coordinates as $c | {asWkt: (\"POINT(\" + ($c[0]|tostring) + \" \" + ($c[1]|tostring) + \")\"), autonomousCommunity: \"Comunidad de Madrid\", country: \"Espa\u00f1a\", municipality: \"Colmenarejo\", postalCode: \"28270\", province: \"Madrid\", lat: $c[1], long: $c[0]}]",
"schema_valid": true,
"stage": "field",
"target_field": "hasLocation",
"used_hints": true
},
{
"attempt_number": 1,
"compile_ok": true,
"error_message": null,
"execution_ok": true,
"jq_expression": "{ \"externalId\": .id, \"name\": [{lang: \"es\", value: .name.value}], \"hasDescription\": [.shortDescription.value | {shortDescription: [{lang: \"es\", value: .}]}], \"hasLocation\": [.location.value.coordinates as $c | {asWkt: (\"POINT(\" + ($c[0]|tostring) + \" \" + ($c[1]|tostring) + \")\"), autonomousCommunity: \"Comunidad de Madrid\", country: \"Espa\u00f1a\", municipality: \"Colmenarejo\", postalCode: \"28270\", province: \"Madrid\", lat: $c[1], long: $c[0]}] }",
"schema_valid": true,
"stage": "global",
"target_field": null,
"used_hints": true
}
],
"events": [
{
"payload": {
"field_name": "externalId",
"hint_hash": "ff962c29659ce571e4de69eeac59990ce03fac39ab0f53c4fb56ec6d5a7a004e",
"match_result": {
"candidate_source_path": "id",
"confidence": 0.95,
"identified": true,
"reasoning": "The source field \u0027id\u0027 semantically matches the target \u0027externalId\u0027."
},
"prompt_payload": {
"field_name": "externalId",
"field_schema": {
"type": "string"
},
"hints": "id \u2192 externalId\r\nname.value \u2192 name[0].value ; name[0].lang = \"es\"\r\nshortDescription.value \u2192 hasDescription[0].shortDescription[0].value ; hasDescription[0].shortDescription[0].lang = \"es\"\r\ndescription.value \u2192 hasDescription[0].longDescription[0].value ; hasDescription[0].longDescription[0].lang = \"es\"\r\nextraInfo.value \u2192 hasDescription[0].keyword[0]\r\nalternateName.value \u2192 hasDescription[0].externalId\r\nlocation.value.coordinates[0] \u2192 hasLocation[0].long\r\nlocation.value.coordinates[1] \u2192 hasLocation[0].lat\r\nlocation.value.coordinates \u2192 hasLocation[0].asWkt as \"POINT({coordinates[0]} {coordinates[1]})\"\r\nautonomousCommunity is not in source \u2192 hasLocation[0].autonomousCommunity = \"Comunidad de Madrid\"\r\ncountry is not in source \u2192 hasLocation[0].country = \"Espa\u00f1a\"\r\nmunicipality is not in source \u2192 hasLocation[0].municipality = \"Colmenarejo\"\r\npostalCode is not in source \u2192 hasLocation[0].postalCode = \"28270\"\r\nprovince is not in source \u2192 hasLocation[0].province = \"Madrid\"",
"input_summary": {
"path_count": 42,
"paths": [
"alternateName",
"alternateName.metadata",
"alternateName.type",
"alternateName.value",
"category",
"category.metadata",
"category.type",
"category.value",
"dataProvider",
"dataProvider.metadata",
"dataProvider.type",
"dataProvider.value",
"description",
"description.metadata",
"description.type",
"description.value",
"extraInfo",
"extraInfo.metadata",
"extraInfo.type",
"extraInfo.value",
"id",
"location",
"location.metadata",
"location.type",
"location.value",
"location.value.coordinates",
"location.value.coordinates[0]",
"location.value.coordinates[1]",
"location.value.type",
"name",
"name.metadata",
"name.type",
"name.value",
"shortDescription",
"shortDescription.metadata",
"shortDescription.type",
"shortDescription.value",
"source",
"source.metadata",
"source.type",
"source.value",
"type"
],
"root_type": "dict"
},
"output_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"externalId": {
"type": "string"
},
"hasDescription": {
"items": {
"properties": {
"externalId": {
"type": "string"
},
"keyword": {
"items": {
"type": "string"
},
"type": "array"
},
"longDescription": {
"items": {
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value",
"lang"
],
"type": "object"
},
"type": "array"
},
"shortDescription": {
"items": {
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value",
"lang"
],
"type": "object"
},
"minItems": 1,
"type": "array"
}
},
"required": [
"shortDescription"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"hasLocation": {
"items": {
"properties": {
"asWkt": {
"type": "string"
},
"autonomousCommunity": {
"type": "string"
},
"country": {
"type": "string"
},
"county": {
"type": "string"
},
"externalId": {
"type": "string"
},
"lat": {
"type": "number"
},
"locality": {
"type": "string"
},
"long": {
"type": "number"
},
"municipality": {
"type": "string"
},
"postalCode": {
"type": "string"
},
"province": {
"type": "string"
},
"streetAddress": {
"type": "string"
}
},
"required": [
"autonomousCommunity",
"country",
"municipality",
"postalCode",
"province"
],
"type": "object"
},
"type": "array"
},
"name": {
"items": {
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value",
"lang"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"publicAccess": {
"type": "boolean"
},
"relatedTo": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"name",
"hasDescription"
],
"type": "object"
},
"required": false,
"task": "match"
},
"response": "{\"identified\":true,\"candidate_source_path\":\"id\",\"reasoning\":\"The source field \u0027id\u0027 semantically matches the target \u0027externalId\u0027.\",\"confidence\":0.95}",
"system_prompt": "You perform semantic field matching between a target schema field and source JSON paths. Return exactly one flat JSON object and nothing else. Do not wrap the result in markdown. Do not nest the result under keys like match, result, mapping, output, or data. Use exactly these keys: \"identified\", \"candidate_source_path\", \"reasoning\", \"confidence\". \"identified\" must be a JSON boolean. \"candidate_source_path\" must be a string path or null. \"reasoning\" must be a short string. \"confidence\" must be a JSON number between 0.0 and 1.0. If no reliable match exists, return identified=false, candidate_source_path=null, a brief reasoning string, and confidence=0.0. Example valid output: {\"identified\":true,\"candidate_source_path\":\"datetime\",\"reasoning\":\"The source field semantically matches the target date.\",\"confidence\":0.92}",
"used_hints": true
},
"stage": "semantic_match",
"timestamp": "2026-05-19T06:32:14.179043+00:00"
},
{
"payload": {
"field_name": "name",
"hint_hash": "ff962c29659ce571e4de69eeac59990ce03fac39ab0f53c4fb56ec6d5a7a004e",
"match_result": {
"candidate_source_path": "name",
"confidence": 0.95,
"identified": true,
"reasoning": "Source field \u0027name\u0027 provides the value for target name[0].value."
},
"prompt_payload": {
"field_name": "name",
"field_schema": {
"items": {
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value",
"lang"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"hints": "id \u2192 externalId\r\nname.value \u2192 name[0].value ; name[0].lang = \"es\"\r\nshortDescription.value \u2192 hasDescription[0].shortDescription[0].value ; hasDescription[0].shortDescription[0].lang = \"es\"\r\ndescription.value \u2192 hasDescription[0].longDescription[0].value ; hasDescription[0].longDescription[0].lang = \"es\"\r\nextraInfo.value \u2192 hasDescription[0].keyword[0]\r\nalternateName.value \u2192 hasDescription[0].externalId\r\nlocation.value.coordinates[0] \u2192 hasLocation[0].long\r\nlocation.value.coordinates[1] \u2192 hasLocation[0].lat\r\nlocation.value.coordinates \u2192 hasLocation[0].asWkt as \"POINT({coordinates[0]} {coordinates[1]})\"\r\nautonomousCommunity is not in source \u2192 hasLocation[0].autonomousCommunity = \"Comunidad de Madrid\"\r\ncountry is not in source \u2192 hasLocation[0].country = \"Espa\u00f1a\"\r\nmunicipality is not in source \u2192 hasLocation[0].municipality = \"Colmenarejo\"\r\npostalCode is not in source \u2192 hasLocation[0].postalCode = \"28270\"\r\nprovince is not in source \u2192 hasLocation[0].province = \"Madrid\"",
"input_summary": {
"path_count": 42,
"paths": [
"alternateName",
"alternateName.metadata",
"alternateName.type",
"alternateName.value",
"category",
"category.metadata",
"category.type",
"category.value",
"dataProvider",
"dataProvider.metadata",
"dataProvider.type",
"dataProvider.value",
"description",
"description.metadata",
"description.type",
"description.value",
"extraInfo",
"extraInfo.metadata",
"extraInfo.type",
"extraInfo.value",
"id",
"location",
"location.metadata",
"location.type",
"location.value",
"location.value.coordinates",
"location.value.coordinates[0]",
"location.value.coordinates[1]",
"location.value.type",
"name",
"name.metadata",
"name.type",
"name.value",
"shortDescription",
"shortDescription.metadata",
"shortDescription.type",
"shortDescription.value",
"source",
"source.metadata",
"source.type",
"source.value",
"type"
],
"root_type": "dict"
},
"output_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"externalId": {
"type": "string"
},
"hasDescription": {
"items": {
"properties": {
"externalId": {
"type": "string"
},
"keyword": {
"items": {
"type": "string"
},
"type": "array"
},
"longDescription": {
"items": {
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value",
"lang"
],
"type": "object"
},
"type": "array"
},
"shortDescription": {
"items": {
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value",
"lang"
],
"type": "object"
},
"minItems": 1,
"type": "array"
}
},
"required": [
"shortDescription"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"hasLocation": {
"items": {
"properties": {
"asWkt": {
"type": "string"
},
"autonomousCommunity": {
"type": "string"
},
"country": {
"type": "string"
},
"county": {
"type": "string"
},
"externalId": {
"type": "string"
},
"lat": {
"type": "number"
},
"locality": {
"type": "string"
},
"long": {
"type": "number"
},
"municipality": {
"type": "string"
},
"postalCode": {
"type": "string"
},
"province": {
"type": "string"
},
"streetAddress": {
"type": "string"
}
},
"required": [
"autonomousCommunity",
"country",
"municipality",
"postalCode",
"province"
],
"type": "object"
},
"type": "array"
},
"name": {
"items": {
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value",
"lang"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"publicAccess": {
"type": "boolean"
},
"relatedTo": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"name",
"hasDescription"
],
"type": "object"
},
"required": true,
"task": "match"
},
"response": "{\"identified\":true,\"candidate_source_path\":\"name\",\"reasoning\":\"Source field \u0027name\u0027 provides the value for target name[0].value.\",\"confidence\":0.95}",
"system_prompt": "You perform semantic field matching between a target schema field and source JSON paths. Return exactly one flat JSON object and nothing else. Do not wrap the result in markdown. Do not nest the result under keys like match, result, mapping, output, or data. Use exactly these keys: \"identified\", \"candidate_source_path\", \"reasoning\", \"confidence\". \"identified\" must be a JSON boolean. \"candidate_source_path\" must be a string path or null. \"reasoning\" must be a short string. \"confidence\" must be a JSON number between 0.0 and 1.0. If no reliable match exists, return identified=false, candidate_source_path=null, a brief reasoning string, and confidence=0.0. Example valid output: {\"identified\":true,\"candidate_source_path\":\"datetime\",\"reasoning\":\"The source field semantically matches the target date.\",\"confidence\":0.92}",
"used_hints": true
},
"stage": "semantic_match",
"timestamp": "2026-05-19T06:32:18.046627+00:00"
},
{
"payload": {
"field_name": "hasDescription",
"hint_hash": "ff962c29659ce571e4de69eeac59990ce03fac39ab0f53c4fb56ec6d5a7a004e",
"match_result": {
"candidate_source_path": "shortDescription",
"confidence": 0.92,
"identified": true,
"reasoning": "shortDescription directly maps to hasDescription\u0027s shortDescription field."
},
"prompt_payload": {
"field_name": "hasDescription",
"field_schema": {
"items": {
"properties": {
"externalId": {
"type": "string"
},
"keyword": {
"items": {
"type": "string"
},
"type": "array"
},
"longDescription": {
"items": {
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value",
"lang"
],
"type": "object"
},
"type": "array"
},
"shortDescription": {
"items": {
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value",
"lang"
],
"type": "object"
},
"minItems": 1,
"type": "array"
}
},
"required": [
"shortDescription"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"hints": "id \u2192 externalId\r\nname.value \u2192 name[0].value ; name[0].lang = \"es\"\r\nshortDescription.value \u2192 hasDescription[0].shortDescription[0].value ; hasDescription[0].shortDescription[0].lang = \"es\"\r\ndescription.value \u2192 hasDescription[0].longDescription[0].value ; hasDescription[0].longDescription[0].lang = \"es\"\r\nextraInfo.value \u2192 hasDescription[0].keyword[0]\r\nalternateName.value \u2192 hasDescription[0].externalId\r\nlocation.value.coordinates[0] \u2192 hasLocation[0].long\r\nlocation.value.coordinates[1] \u2192 hasLocation[0].lat\r\nlocation.value.coordinates \u2192 hasLocation[0].asWkt as \"POINT({coordinates[0]} {coordinates[1]})\"\r\nautonomousCommunity is not in source \u2192 hasLocation[0].autonomousCommunity = \"Comunidad de Madrid\"\r\ncountry is not in source \u2192 hasLocation[0].country = \"Espa\u00f1a\"\r\nmunicipality is not in source \u2192 hasLocation[0].municipality = \"Colmenarejo\"\r\npostalCode is not in source \u2192 hasLocation[0].postalCode = \"28270\"\r\nprovince is not in source \u2192 hasLocation[0].province = \"Madrid\"",
"input_summary": {
"path_count": 42,
"paths": [
"alternateName",
"alternateName.metadata",
"alternateName.type",
"alternateName.value",
"category",
"category.metadata",
"category.type",
"category.value",
"dataProvider",
"dataProvider.metadata",
"dataProvider.type",
"dataProvider.value",
"description",
"description.metadata",
"description.type",
"description.value",
"extraInfo",
"extraInfo.metadata",
"extraInfo.type",
"extraInfo.value",
"id",
"location",
"location.metadata",
"location.type",
"location.value",
"location.value.coordinates",
"location.value.coordinates[0]",
"location.value.coordinates[1]",
"location.value.type",
"name",
"name.metadata",
"name.type",
"name.value",
"shortDescription",
"shortDescription.metadata",
"shortDescription.type",
"shortDescription.value",
"source",
"source.metadata",
"source.type",
"source.value",
"type"
],
"root_type": "dict"
},
"output_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"externalId": {
"type": "string"
},
"hasDescription": {
"items": {
"properties": {
"externalId": {
"type": "string"
},
"keyword": {
"items": {
"type": "string"
},
"type": "array"
},
"longDescription": {
"items": {
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value",
"lang"
],
"type": "object"
},
"type": "array"
},
"shortDescription": {
"items": {
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value",
"lang"
],
"type": "object"
},
"minItems": 1,
"type": "array"
}
},
"required": [
"shortDescription"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"hasLocation": {
"items": {
"properties": {
"asWkt": {
"type": "string"
},
"autonomousCommunity": {
"type": "string"
},
"country": {
"type": "string"
},
"county": {
"type": "string"
},
"externalId": {
"type": "string"
},
"lat": {
"type": "number"
},
"locality": {
"type": "string"
},
"long": {
"type": "number"
},
"municipality": {
"type": "string"
},
"postalCode": {
"type": "string"
},
"province": {
"type": "string"
},
"streetAddress": {
"type": "string"
}
},
"required": [
"autonomousCommunity",
"country",
"municipality",
"postalCode",
"province"
],
"type": "object"
},
"type": "array"
},
"name": {
"items": {
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value",
"lang"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"publicAccess": {
"type": "boolean"
},
"relatedTo": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"name",
"hasDescription"
],
"type": "object"
},
"required": true,
"task": "match"
},
"response": "{\"identified\":true,\"candidate_source_path\":\"shortDescription\",\"reasoning\":\"shortDescription directly maps to hasDescription\u0027s shortDescription field.\",\"confidence\":0.92}",
"system_prompt": "You perform semantic field matching between a target schema field and source JSON paths. Return exactly one flat JSON object and nothing else. Do not wrap the result in markdown. Do not nest the result under keys like match, result, mapping, output, or data. Use exactly these keys: \"identified\", \"candidate_source_path\", \"reasoning\", \"confidence\". \"identified\" must be a JSON boolean. \"candidate_source_path\" must be a string path or null. \"reasoning\" must be a short string. \"confidence\" must be a JSON number between 0.0 and 1.0. If no reliable match exists, return identified=false, candidate_source_path=null, a brief reasoning string, and confidence=0.0. Example valid output: {\"identified\":true,\"candidate_source_path\":\"datetime\",\"reasoning\":\"The source field semantically matches the target date.\",\"confidence\":0.92}",
"used_hints": true
},
"stage": "semantic_match",
"timestamp": "2026-05-19T06:32:23.800147+00:00"
},
{
"payload": {
"field_name": "hasLocation",
"hint_hash": "ff962c29659ce571e4de69eeac59990ce03fac39ab0f53c4fb56ec6d5a7a004e",
"match_result": {
"candidate_source_path": "location",
"confidence": 0.95,
"identified": true,
"reasoning": "Source location coordinates map to hasLocation lat/long and WKT"
},
"prompt_payload": {
"field_name": "hasLocation",
"field_schema": {
"items": {
"properties": {
"asWkt": {
"type": "string"
},
"autonomousCommunity": {
"type": "string"
},
"country": {
"type": "string"
},
"county": {
"type": "string"
},
"externalId": {
"type": "string"
},
"lat": {
"type": "number"
},
"locality": {
"type": "string"
},
"long": {
"type": "number"
},
"municipality": {
"type": "string"
},
"postalCode": {
"type": "string"
},
"province": {
"type": "string"
},
"streetAddress": {
"type": "string"
}
},
"required": [
"autonomousCommunity",
"country",
"municipality",
"postalCode",
"province"
],
"type": "object"
},
"type": "array"
},
"hints": "id \u2192 externalId\r\nname.value \u2192 name[0].value ; name[0].lang = \"es\"\r\nshortDescription.value \u2192 hasDescription[0].shortDescription[0].value ; hasDescription[0].shortDescription[0].lang = \"es\"\r\ndescription.value \u2192 hasDescription[0].longDescription[0].value ; hasDescription[0].longDescription[0].lang = \"es\"\r\nextraInfo.value \u2192 hasDescription[0].keyword[0]\r\nalternateName.value \u2192 hasDescription[0].externalId\r\nlocation.value.coordinates[0] \u2192 hasLocation[0].long\r\nlocation.value.coordinates[1] \u2192 hasLocation[0].lat\r\nlocation.value.coordinates \u2192 hasLocation[0].asWkt as \"POINT({coordinates[0]} {coordinates[1]})\"\r\nautonomousCommunity is not in source \u2192 hasLocation[0].autonomousCommunity = \"Comunidad de Madrid\"\r\ncountry is not in source \u2192 hasLocation[0].country = \"Espa\u00f1a\"\r\nmunicipality is not in source \u2192 hasLocation[0].municipality = \"Colmenarejo\"\r\npostalCode is not in source \u2192 hasLocation[0].postalCode = \"28270\"\r\nprovince is not in source \u2192 hasLocation[0].province = \"Madrid\"",
"input_summary": {
"path_count": 42,
"paths": [
"alternateName",
"alternateName.metadata",
"alternateName.type",
"alternateName.value",
"category",
"category.metadata",
"category.type",
"category.value",
"dataProvider",
"dataProvider.metadata",
"dataProvider.type",
"dataProvider.value",
"description",
"description.metadata",
"description.type",
"description.value",
"extraInfo",
"extraInfo.metadata",
"extraInfo.type",
"extraInfo.value",
"id",
"location",
"location.metadata",
"location.type",
"location.value",
"location.value.coordinates",
"location.value.coordinates[0]",
"location.value.coordinates[1]",
"location.value.type",
"name",
"name.metadata",
"name.type",
"name.value",
"shortDescription",
"shortDescription.metadata",
"shortDescription.type",
"shortDescription.value",
"source",
"source.metadata",
"source.type",
"source.value",
"type"
],
"root_type": "dict"
},
"output_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"externalId": {
"type": "string"
},
"hasDescription": {
"items": {
"properties": {
"externalId": {
"type": "string"
},
"keyword": {
"items": {
"type": "string"
},
"type": "array"
},
"longDescription": {
"items": {
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value",
"lang"
],
"type": "object"
},
"type": "array"
},
"shortDescription": {
"items": {
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value",
"lang"
],
"type": "object"
},
"minItems": 1,
"type": "array"
}
},
"required": [
"shortDescription"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"hasLocation": {
"items": {
"properties": {
"asWkt": {
"type": "string"
},
"autonomousCommunity": {
"type": "string"
},
"country": {
"type": "string"
},
"county": {
"type": "string"
},
"externalId": {
"type": "string"
},
"lat": {
"type": "number"
},
"locality": {
"type": "string"
},
"long": {
"type": "number"
},
"municipality": {
"type": "string"
},
"postalCode": {
"type": "string"
},
"province": {
"type": "string"
},
"streetAddress": {
"type": "string"
}
},
"required": [
"autonomousCommunity",
"country",
"municipality",
"postalCode",
"province"
],
"type": "object"
},
"type": "array"
},
"name": {
"items": {
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value",
"lang"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"publicAccess": {
"type": "boolean"
},
"relatedTo": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"name",
"hasDescription"
],
"type": "object"
},
"required": false,
"task": "match"
},
"response": "{\"identified\":true,\"candidate_source_path\":\"location\",\"reasoning\":\"Source location coordinates map to hasLocation lat/long and WKT\",\"confidence\":0.95}",
"system_prompt": "You perform semantic field matching between a target schema field and source JSON paths. Return exactly one flat JSON object and nothing else. Do not wrap the result in markdown. Do not nest the result under keys like match, result, mapping, output, or data. Use exactly these keys: \"identified\", \"candidate_source_path\", \"reasoning\", \"confidence\". \"identified\" must be a JSON boolean. \"candidate_source_path\" must be a string path or null. \"reasoning\" must be a short string. \"confidence\" must be a JSON number between 0.0 and 1.0. If no reliable match exists, return identified=false, candidate_source_path=null, a brief reasoning string, and confidence=0.0. Example valid output: {\"identified\":true,\"candidate_source_path\":\"datetime\",\"reasoning\":\"The source field semantically matches the target date.\",\"confidence\":0.92}",
"used_hints": true
},
"stage": "semantic_match",
"timestamp": "2026-05-19T06:32:26.909083+00:00"
},
{
"payload": {
"field_name": "publicAccess",
"hint_hash": "ff962c29659ce571e4de69eeac59990ce03fac39ab0f53c4fb56ec6d5a7a004e",
"match_result": {
"candidate_source_path": null,
"confidence": 0.0,
"identified": false,
"reasoning": "No source field matches the target boolean field."
},
"prompt_payload": {
"field_name": "publicAccess",
"field_schema": {
"type": "boolean"
},
"hints": "id \u2192 externalId\r\nname.value \u2192 name[0].value ; name[0].lang = \"es\"\r\nshortDescription.value \u2192 hasDescription[0].shortDescription[0].value ; hasDescription[0].shortDescription[0].lang = \"es\"\r\ndescription.value \u2192 hasDescription[0].longDescription[0].value ; hasDescription[0].longDescription[0].lang = \"es\"\r\nextraInfo.value \u2192 hasDescription[0].keyword[0]\r\nalternateName.value \u2192 hasDescription[0].externalId\r\nlocation.value.coordinates[0] \u2192 hasLocation[0].long\r\nlocation.value.coordinates[1] \u2192 hasLocation[0].lat\r\nlocation.value.coordinates \u2192 hasLocation[0].asWkt as \"POINT({coordinates[0]} {coordinates[1]})\"\r\nautonomousCommunity is not in source \u2192 hasLocation[0].autonomousCommunity = \"Comunidad de Madrid\"\r\ncountry is not in source \u2192 hasLocation[0].country = \"Espa\u00f1a\"\r\nmunicipality is not in source \u2192 hasLocation[0].municipality = \"Colmenarejo\"\r\npostalCode is not in source \u2192 hasLocation[0].postalCode = \"28270\"\r\nprovince is not in source \u2192 hasLocation[0].province = \"Madrid\"",
"input_summary": {
"path_count": 42,
"paths": [
"alternateName",
"alternateName.metadata",
"alternateName.type",
"alternateName.value",
"category",
"category.metadata",
"category.type",
"category.value",
"dataProvider",
"dataProvider.metadata",
"dataProvider.type",
"dataProvider.value",
"description",
"description.metadata",
"description.type",
"description.value",
"extraInfo",
"extraInfo.metadata",
"extraInfo.type",
"extraInfo.value",
"id",
"location",
"location.metadata",
"location.type",
"location.value",
"location.value.coordinates",
"location.value.coordinates[0]",
"location.value.coordinates[1]",
"location.value.type",
"name",
"name.metadata",
"name.type",
"name.value",
"shortDescription",
"shortDescription.metadata",
"shortDescription.type",
"shortDescription.value",
"source",
"source.metadata",
"source.type",
"source.value",
"type"
],
"root_type": "dict"
},
"output_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"externalId": {
"type": "string"
},
"hasDescription": {
"items": {
"properties": {
"externalId": {
"type": "string"
},
"keyword": {
"items": {
"type": "string"
},
"type": "array"
},
"longDescription": {
"items": {
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value",
"lang"
],
"type": "object"
},
"type": "array"
},
"shortDescription": {
"items": {
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value",
"lang"
],
"type": "object"
},
"minItems": 1,
"type": "array"
}
},
"required": [
"shortDescription"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"hasLocation": {
"items": {
"properties": {
"asWkt": {
"type": "string"
},
"autonomousCommunity": {
"type": "string"
},
"country": {
"type": "string"
},
"county": {
"type": "string"
},
"externalId": {
"type": "string"
},
"lat": {
"type": "number"
},
"locality": {
"type": "string"
},
"long": {
"type": "number"
},
"municipality": {
"type": "string"
},
"postalCode": {
"type": "string"
},
"province": {
"type": "string"
},
"streetAddress": {
"type": "string"
}
},
"required": [
"autonomousCommunity",
"country",
"municipality",
"postalCode",
"province"
],
"type": "object"
},
"type": "array"
},
"name": {
"items": {
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value",
"lang"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"publicAccess": {
"type": "boolean"
},
"relatedTo": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"name",
"hasDescription"
],
"type": "object"
},
"required": false,
"task": "match"
},
"response": "{\"identified\":false,\"candidate_source_path\":null,\"reasoning\":\"No source field matches the target boolean field.\",\"confidence\":0.0}",
"system_prompt": "You perform semantic field matching between a target schema field and source JSON paths. Return exactly one flat JSON object and nothing else. Do not wrap the result in markdown. Do not nest the result under keys like match, result, mapping, output, or data. Use exactly these keys: \"identified\", \"candidate_source_path\", \"reasoning\", \"confidence\". \"identified\" must be a JSON boolean. \"candidate_source_path\" must be a string path or null. \"reasoning\" must be a short string. \"confidence\" must be a JSON number between 0.0 and 1.0. If no reliable match exists, return identified=false, candidate_source_path=null, a brief reasoning string, and confidence=0.0. Example valid output: {\"identified\":true,\"candidate_source_path\":\"datetime\",\"reasoning\":\"The source field semantically matches the target date.\",\"confidence\":0.92}",
"used_hints": true
},
"stage": "semantic_match",
"timestamp": "2026-05-19T06:32:29.350286+00:00"
},
{
"payload": {
"field_name": "relatedTo",
"hint_hash": "ff962c29659ce571e4de69eeac59990ce03fac39ab0f53c4fb56ec6d5a7a004e",
"match_result": {
"candidate_source_path": null,
"confidence": 0.0,
"identified": false,
"reasoning": "No source field semantically matches \u0027relatedTo\u0027."
},
"prompt_payload": {
"field_name": "relatedTo",
"field_schema": {
"items": {
"type": "string"
},
"type": "array"
},
"hints": "id \u2192 externalId\r\nname.value \u2192 name[0].value ; name[0].lang = \"es\"\r\nshortDescription.value \u2192 hasDescription[0].shortDescription[0].value ; hasDescription[0].shortDescription[0].lang = \"es\"\r\ndescription.value \u2192 hasDescription[0].longDescription[0].value ; hasDescription[0].longDescription[0].lang = \"es\"\r\nextraInfo.value \u2192 hasDescription[0].keyword[0]\r\nalternateName.value \u2192 hasDescription[0].externalId\r\nlocation.value.coordinates[0] \u2192 hasLocation[0].long\r\nlocation.value.coordinates[1] \u2192 hasLocation[0].lat\r\nlocation.value.coordinates \u2192 hasLocation[0].asWkt as \"POINT({coordinates[0]} {coordinates[1]})\"\r\nautonomousCommunity is not in source \u2192 hasLocation[0].autonomousCommunity = \"Comunidad de Madrid\"\r\ncountry is not in source \u2192 hasLocation[0].country = \"Espa\u00f1a\"\r\nmunicipality is not in source \u2192 hasLocation[0].municipality = \"Colmenarejo\"\r\npostalCode is not in source \u2192 hasLocation[0].postalCode = \"28270\"\r\nprovince is not in source \u2192 hasLocation[0].province = \"Madrid\"",
"input_summary": {
"path_count": 42,
"paths": [
"alternateName",
"alternateName.metadata",
"alternateName.type",
"alternateName.value",
"category",
"category.metadata",
"category.type",
"category.value",
"dataProvider",
"dataProvider.metadata",
"dataProvider.type",
"dataProvider.value",
"description",
"description.metadata",
"description.type",
"description.value",
"extraInfo",
"extraInfo.metadata",
"extraInfo.type",
"extraInfo.value",
"id",
"location",
"location.metadata",
"location.type",
"location.value",
"location.value.coordinates",
"location.value.coordinates[0]",
"location.value.coordinates[1]",
"location.value.type",
"name",
"name.metadata",
"name.type",
"name.value",
"shortDescription",
"shortDescription.metadata",
"shortDescription.type",
"shortDescription.value",
"source",
"source.metadata",
"source.type",
"source.value",
"type"
],
"root_type": "dict"
},
"output_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"externalId": {
"type": "string"
},
"hasDescription": {
"items": {
"properties": {
"externalId": {
"type": "string"
},
"keyword": {
"items": {
"type": "string"
},
"type": "array"
},
"longDescription": {
"items": {
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value",
"lang"
],
"type": "object"
},
"type": "array"
},
"shortDescription": {
"items": {
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value",
"lang"
],
"type": "object"
},
"minItems": 1,
"type": "array"
}
},
"required": [
"shortDescription"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"hasLocation": {
"items": {
"properties": {
"asWkt": {
"type": "string"
},
"autonomousCommunity": {
"type": "string"
},
"country": {
"type": "string"
},
"county": {
"type": "string"
},
"externalId": {
"type": "string"
},
"lat": {
"type": "number"
},
"locality": {
"type": "string"
},
"long": {
"type": "number"
},
"municipality": {
"type": "string"
},
"postalCode": {
"type": "string"
},
"province": {
"type": "string"
},
"streetAddress": {
"type": "string"
}
},
"required": [
"autonomousCommunity",
"country",
"municipality",
"postalCode",
"province"
],
"type": "object"
},
"type": "array"
},
"name": {
"items": {
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value",
"lang"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"publicAccess": {
"type": "boolean"
},
"relatedTo": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"name",
"hasDescription"
],
"type": "object"
},
"required": false,
"task": "match"
},
"response": "{\"identified\":false,\"candidate_source_path\":null,\"reasoning\":\"No source field semantically matches \u0027relatedTo\u0027.\",\"confidence\":0.0}",
"system_prompt": "You perform semantic field matching between a target schema field and source JSON paths. Return exactly one flat JSON object and nothing else. Do not wrap the result in markdown. Do not nest the result under keys like match, result, mapping, output, or data. Use exactly these keys: \"identified\", \"candidate_source_path\", \"reasoning\", \"confidence\". \"identified\" must be a JSON boolean. \"candidate_source_path\" must be a string path or null. \"reasoning\" must be a short string. \"confidence\" must be a JSON number between 0.0 and 1.0. If no reliable match exists, return identified=false, candidate_source_path=null, a brief reasoning string, and confidence=0.0. Example valid output: {\"identified\":true,\"candidate_source_path\":\"datetime\",\"reasoning\":\"The source field semantically matches the target date.\",\"confidence\":0.92}",
"used_hints": true
},
"stage": "semantic_match",
"timestamp": "2026-05-19T06:32:31.973350+00:00"
},
{
"payload": {
"field_name": "externalId",
"hint_hash": "ff962c29659ce571e4de69eeac59990ce03fac39ab0f53c4fb56ec6d5a7a004e",
"jq_expression": ".id",
"prompt_payload": {
"candidate_source_path": "id",
"field_name": "externalId",
"field_schema": {
"type": "string"
},
"hints": "id \u2192 externalId\r\nname.value \u2192 name[0].value ; name[0].lang = \"es\"\r\nshortDescription.value \u2192 hasDescription[0].shortDescription[0].value ; hasDescription[0].shortDescription[0].lang = \"es\"\r\ndescription.value \u2192 hasDescription[0].longDescription[0].value ; hasDescription[0].longDescription[0].lang = \"es\"\r\nextraInfo.value \u2192 hasDescription[0].keyword[0]\r\nalternateName.value \u2192 hasDescription[0].externalId\r\nlocation.value.coordinates[0] \u2192 hasLocation[0].long\r\nlocation.value.coordinates[1] \u2192 hasLocation[0].lat\r\nlocation.value.coordinates \u2192 hasLocation[0].asWkt as \"POINT({coordinates[0]} {coordinates[1]})\"\r\nautonomousCommunity is not in source \u2192 hasLocation[0].autonomousCommunity = \"Comunidad de Madrid\"\r\ncountry is not in source \u2192 hasLocation[0].country = \"Espa\u00f1a\"\r\nmunicipality is not in source \u2192 hasLocation[0].municipality = \"Colmenarejo\"\r\npostalCode is not in source \u2192 hasLocation[0].postalCode = \"28270\"\r\nprovince is not in source \u2192 hasLocation[0].province = \"Madrid\"",
"source_fragment": "trailroute_lr-01",
"source_json": {
"alternateName": {
"metadata": {},
"type": "string",
"value": "LR-01"
},
"category": {
"metadata": {},
"type": "string",
"value": "TrailRoute"
},
"dataProvider": {
"metadata": {},
"type": "string",
"value": "nec-ccoc"
},
"description": {
"metadata": {},
"type": "string",
"value": "Comenzamos"
},
"extraInfo": {
"metadata": {},
"type": "string",
"value": "Encinar"
},
"id": "trailroute_lr-01",
"location": {
"metadata": {},
"type": "geo:json",
"value": {
"coordinates": [
-3.8565638,
40.4845294
],
"type": "Point"
}
},
"name": {
"metadata": {},
"type": "string",
"value": "Majalacabra"
},
"shortDescription": {
"metadata": {},
"type": "string",
"value": "Dificultad: baja"
},
"source": {
"metadata": {},
"type": "string",
"value": "portal-randev6"
},
"type": "PointOfInterest"
},
"task": "synthesize"
},
"response": "{\"jq_expression\":\".id\"}",
"system_prompt": "You generate a jq expression for one target field. Return exactly one flat JSON object and nothing else. Do not wrap the result in markdown. Do not nest the result under keys like result, output, data, or expression. Use exactly this output schema: {\"jq_expression\": string}. \"jq_expression\" must be a JSON string containing only the jq expression for the target field. Use candidate_source_path as the primary source location, verify it against source_json, and use source_fragment as the focused local value. Do not return explanations or extra keys. Example valid output: {\"jq_expression\":\".datetime\"}",
"used_hints": true
},
"stage": "jq_synthesis",
"timestamp": "2026-05-19T06:32:34.439359+00:00"
},
{
"payload": {
"field_name": "name",
"hint_hash": "ff962c29659ce571e4de69eeac59990ce03fac39ab0f53c4fb56ec6d5a7a004e",
"jq_expression": "[{lang: \"es\", value: .name.value}]",
"prompt_payload": {
"candidate_source_path": "name",
"field_name": "name",
"field_schema": {
"items": {
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value",
"lang"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"hints": "id \u2192 externalId\r\nname.value \u2192 name[0].value ; name[0].lang = \"es\"\r\nshortDescription.value \u2192 hasDescription[0].shortDescription[0].value ; hasDescription[0].shortDescription[0].lang = \"es\"\r\ndescription.value \u2192 hasDescription[0].longDescription[0].value ; hasDescription[0].longDescription[0].lang = \"es\"\r\nextraInfo.value \u2192 hasDescription[0].keyword[0]\r\nalternateName.value \u2192 hasDescription[0].externalId\r\nlocation.value.coordinates[0] \u2192 hasLocation[0].long\r\nlocation.value.coordinates[1] \u2192 hasLocation[0].lat\r\nlocation.value.coordinates \u2192 hasLocation[0].asWkt as \"POINT({coordinates[0]} {coordinates[1]})\"\r\nautonomousCommunity is not in source \u2192 hasLocation[0].autonomousCommunity = \"Comunidad de Madrid\"\r\ncountry is not in source \u2192 hasLocation[0].country = \"Espa\u00f1a\"\r\nmunicipality is not in source \u2192 hasLocation[0].municipality = \"Colmenarejo\"\r\npostalCode is not in source \u2192 hasLocation[0].postalCode = \"28270\"\r\nprovince is not in source \u2192 hasLocation[0].province = \"Madrid\"",
"source_fragment": {
"metadata": {},
"type": "string",
"value": "Majalacabra"
},
"source_json": {
"alternateName": {
"metadata": {},
"type": "string",
"value": "LR-01"
},
"category": {
"metadata": {},
"type": "string",
"value": "TrailRoute"
},
"dataProvider": {
"metadata": {},
"type": "string",
"value": "nec-ccoc"
},
"description": {
"metadata": {},
"type": "string",
"value": "Comenzamos"
},
"extraInfo": {
"metadata": {},
"type": "string",
"value": "Encinar"
},
"id": "trailroute_lr-01",
"location": {
"metadata": {},
"type": "geo:json",
"value": {
"coordinates": [
-3.8565638,
40.4845294
],
"type": "Point"
}
},
"name": {
"metadata": {},
"type": "string",
"value": "Majalacabra"
},
"shortDescription": {
"metadata": {},
"type": "string",
"value": "Dificultad: baja"
},
"source": {
"metadata": {},
"type": "string",
"value": "portal-randev6"
},
"type": "PointOfInterest"
},
"task": "synthesize"
},
"response": "{\"jq_expression\":\"[{lang: \\\"es\\\", value: .name.value}]\"}",
"system_prompt": "You generate a jq expression for one target field. Return exactly one flat JSON object and nothing else. Do not wrap the result in markdown. Do not nest the result under keys like result, output, data, or expression. Use exactly this output schema: {\"jq_expression\": string}. \"jq_expression\" must be a JSON string containing only the jq expression for the target field. Use candidate_source_path as the primary source location, verify it against source_json, and use source_fragment as the focused local value. Do not return explanations or extra keys. Example valid output: {\"jq_expression\":\".datetime\"}",
"used_hints": true
},
"stage": "jq_synthesis",
"timestamp": "2026-05-19T06:32:41.805961+00:00"
},
{
"payload": {
"field_name": "hasDescription",
"hint_hash": "ff962c29659ce571e4de69eeac59990ce03fac39ab0f53c4fb56ec6d5a7a004e",
"jq_expression": "[.shortDescription.value | {shortDescription: [{lang: \"es\", value: .}]}]",
"prompt_payload": {
"candidate_source_path": "shortDescription",
"field_name": "hasDescription",
"field_schema": {
"items": {
"properties": {
"externalId": {
"type": "string"
},
"keyword": {
"items": {
"type": "string"
},
"type": "array"
},
"longDescription": {
"items": {
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value",
"lang"
],
"type": "object"
},
"type": "array"
},
"shortDescription": {
"items": {
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value",
"lang"
],
"type": "object"
},
"minItems": 1,
"type": "array"
}
},
"required": [
"shortDescription"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"hints": "id \u2192 externalId\r\nname.value \u2192 name[0].value ; name[0].lang = \"es\"\r\nshortDescription.value \u2192 hasDescription[0].shortDescription[0].value ; hasDescription[0].shortDescription[0].lang = \"es\"\r\ndescription.value \u2192 hasDescription[0].longDescription[0].value ; hasDescription[0].longDescription[0].lang = \"es\"\r\nextraInfo.value \u2192 hasDescription[0].keyword[0]\r\nalternateName.value \u2192 hasDescription[0].externalId\r\nlocation.value.coordinates[0] \u2192 hasLocation[0].long\r\nlocation.value.coordinates[1] \u2192 hasLocation[0].lat\r\nlocation.value.coordinates \u2192 hasLocation[0].asWkt as \"POINT({coordinates[0]} {coordinates[1]})\"\r\nautonomousCommunity is not in source \u2192 hasLocation[0].autonomousCommunity = \"Comunidad de Madrid\"\r\ncountry is not in source \u2192 hasLocation[0].country = \"Espa\u00f1a\"\r\nmunicipality is not in source \u2192 hasLocation[0].municipality = \"Colmenarejo\"\r\npostalCode is not in source \u2192 hasLocation[0].postalCode = \"28270\"\r\nprovince is not in source \u2192 hasLocation[0].province = \"Madrid\"",
"source_fragment": {
"metadata": {},
"type": "string",
"value": "Dificultad: baja"
},
"source_json": {
"alternateName": {
"metadata": {},
"type": "string",
"value": "LR-01"
},
"category": {
"metadata": {},
"type": "string",
"value": "TrailRoute"
},
"dataProvider": {
"metadata": {},
"type": "string",
"value": "nec-ccoc"
},
"description": {
"metadata": {},
"type": "string",
"value": "Comenzamos"
},
"extraInfo": {
"metadata": {},
"type": "string",
"value": "Encinar"
},
"id": "trailroute_lr-01",
"location": {
"metadata": {},
"type": "geo:json",
"value": {
"coordinates": [
-3.8565638,
40.4845294
],
"type": "Point"
}
},
"name": {
"metadata": {},
"type": "string",
"value": "Majalacabra"
},
"shortDescription": {
"metadata": {},
"type": "string",
"value": "Dificultad: baja"
},
"source": {
"metadata": {},
"type": "string",
"value": "portal-randev6"
},
"type": "PointOfInterest"
},
"task": "synthesize"
},
"response": "{\"jq_expression\":\"[.shortDescription.value | {shortDescription: [{lang: \\\"es\\\", value: .}]}]\"}",
"system_prompt": "You generate a jq expression for one target field. Return exactly one flat JSON object and nothing else. Do not wrap the result in markdown. Do not nest the result under keys like result, output, data, or expression. Use exactly this output schema: {\"jq_expression\": string}. \"jq_expression\" must be a JSON string containing only the jq expression for the target field. Use candidate_source_path as the primary source location, verify it against source_json, and use source_fragment as the focused local value. Do not return explanations or extra keys. Example valid output: {\"jq_expression\":\".datetime\"}",
"used_hints": true
},
"stage": "jq_synthesis",
"timestamp": "2026-05-19T06:32:48.924245+00:00"
},
{
"payload": {
"field_name": "hasLocation",
"hint_hash": "ff962c29659ce571e4de69eeac59990ce03fac39ab0f53c4fb56ec6d5a7a004e",
"jq_expression": "[.location.value.coordinates as $c | {asWkt: (\"POINT(\" + ($c[0]|tostring) + \" \" + ($c[1]|tostring) + \")\"), autonomousCommunity: \"Comunidad de Madrid\", country: \"Espa\u00f1a\", municipality: \"Colmenarejo\", postalCode: \"28270\", province: \"Madrid\", lat: $c[1], long: $c[0]}]",
"prompt_payload": {
"candidate_source_path": "location",
"field_name": "hasLocation",
"field_schema": {
"items": {
"properties": {
"asWkt": {
"type": "string"
},
"autonomousCommunity": {
"type": "string"
},
"country": {
"type": "string"
},
"county": {
"type": "string"
},
"externalId": {
"type": "string"
},
"lat": {
"type": "number"
},
"locality": {
"type": "string"
},
"long": {
"type": "number"
},
"municipality": {
"type": "string"
},
"postalCode": {
"type": "string"
},
"province": {
"type": "string"
},
"streetAddress": {
"type": "string"
}
},
"required": [
"autonomousCommunity",
"country",
"municipality",
"postalCode",
"province"
],
"type": "object"
},
"type": "array"
},
"hints": "id \u2192 externalId\r\nname.value \u2192 name[0].value ; name[0].lang = \"es\"\r\nshortDescription.value \u2192 hasDescription[0].shortDescription[0].value ; hasDescription[0].shortDescription[0].lang = \"es\"\r\ndescription.value \u2192 hasDescription[0].longDescription[0].value ; hasDescription[0].longDescription[0].lang = \"es\"\r\nextraInfo.value \u2192 hasDescription[0].keyword[0]\r\nalternateName.value \u2192 hasDescription[0].externalId\r\nlocation.value.coordinates[0] \u2192 hasLocation[0].long\r\nlocation.value.coordinates[1] \u2192 hasLocation[0].lat\r\nlocation.value.coordinates \u2192 hasLocation[0].asWkt as \"POINT({coordinates[0]} {coordinates[1]})\"\r\nautonomousCommunity is not in source \u2192 hasLocation[0].autonomousCommunity = \"Comunidad de Madrid\"\r\ncountry is not in source \u2192 hasLocation[0].country = \"Espa\u00f1a\"\r\nmunicipality is not in source \u2192 hasLocation[0].municipality = \"Colmenarejo\"\r\npostalCode is not in source \u2192 hasLocation[0].postalCode = \"28270\"\r\nprovince is not in source \u2192 hasLocation[0].province = \"Madrid\"",
"source_fragment": {
"metadata": {},
"type": "geo:json",
"value": {
"coordinates": [
-3.8565638,
40.4845294
],
"type": "Point"
}
},
"source_json": {
"alternateName": {
"metadata": {},
"type": "string",
"value": "LR-01"
},
"category": {
"metadata": {},
"type": "string",
"value": "TrailRoute"
},
"dataProvider": {
"metadata": {},
"type": "string",
"value": "nec-ccoc"
},
"description": {
"metadata": {},
"type": "string",
"value": "Comenzamos"
},
"extraInfo": {
"metadata": {},
"type": "string",
"value": "Encinar"
},
"id": "trailroute_lr-01",
"location": {
"metadata": {},
"type": "geo:json",
"value": {
"coordinates": [
-3.8565638,
40.4845294
],
"type": "Point"
}
},
"name": {
"metadata": {},
"type": "string",
"value": "Majalacabra"
},
"shortDescription": {
"metadata": {},
"type": "string",
"value": "Dificultad: baja"
},
"source": {
"metadata": {},
"type": "string",
"value": "portal-randev6"
},
"type": "PointOfInterest"
},
"task": "synthesize"
},
"response": "{\"jq_expression\":\"[.location.value.coordinates as $c | {asWkt: (\\\"POINT(\\\" + ($c[0]|tostring) + \\\" \\\" + ($c[1]|tostring) + \\\")\\\"), autonomousCommunity: \\\"Comunidad de Madrid\\\", country: \\\"Espa\u00f1a\\\", municipality: \\\"Colmenarejo\\\", postalCode: \\\"28270\\\", province: \\\"Madrid\\\", lat: $c[1], long: $c[0]}]\"}",
"system_prompt": "You generate a jq expression for one target field. Return exactly one flat JSON object and nothing else. Do not wrap the result in markdown. Do not nest the result under keys like result, output, data, or expression. Use exactly this output schema: {\"jq_expression\": string}. \"jq_expression\" must be a JSON string containing only the jq expression for the target field. Use candidate_source_path as the primary source location, verify it against source_json, and use source_fragment as the focused local value. Do not return explanations or extra keys. Example valid output: {\"jq_expression\":\".datetime\"}",
"used_hints": true
},
"stage": "jq_synthesis",
"timestamp": "2026-05-19T06:33:01.509299+00:00"
},
{
"payload": {
"field_expressions": {
"externalId": ".id",
"hasDescription": "[.shortDescription.value | {shortDescription: [{lang: \"es\", value: .}]}]",
"hasLocation": "[.location.value.coordinates as $c | {asWkt: (\"POINT(\" + ($c[0]|tostring) + \" \" + ($c[1]|tostring) + \")\"), autonomousCommunity: \"Comunidad de Madrid\", country: \"Espa\u00f1a\", municipality: \"Colmenarejo\", postalCode: \"28270\", province: \"Madrid\", lat: $c[1], long: $c[0]}]",
"name": "[{lang: \"es\", value: .name.value}]"
},
"jq_filter": "{ \"externalId\": .id, \"name\": [{lang: \"es\", value: .name.value}], \"hasDescription\": [.shortDescription.value | {shortDescription: [{lang: \"es\", value: .}]}], \"hasLocation\": [.location.value.coordinates as $c | {asWkt: (\"POINT(\" + ($c[0]|tostring) + \" \" + ($c[1]|tostring) + \")\"), autonomousCommunity: \"Comunidad de Madrid\", country: \"Espa\u00f1a\", municipality: \"Colmenarejo\", postalCode: \"28270\", province: \"Madrid\", lat: $c[1], long: $c[0]}] }",
"validation_passed": true
},
"stage": "generation_complete",
"timestamp": "2026-05-19T06:33:01.519725+00:00"
},
{
"payload": {
"jq_filter": "{ \"externalId\": .id, \"name\": [{lang: \"es\", value: .name.value}], \"hasDescription\": [.shortDescription.value | {shortDescription: [{lang: \"es\", value: .}]}], \"hasLocation\": [.location.value.coordinates as $c | {asWkt: (\"POINT(\" + ($c[0]|tostring) + \" \" + ($c[1]|tostring) + \")\"), autonomousCommunity: \"Comunidad de Madrid\", country: \"Espa\u00f1a\", municipality: \"Colmenarejo\", postalCode: \"28270\", province: \"Madrid\", lat: $c[1], long: $c[0]}] }",
"output_json": {
"externalId": "trailroute_lr-01",
"hasDescription": [
{
"shortDescription": [
{
"lang": "es",
"value": "Dificultad: baja"
}
]
}
],
"hasLocation": [
{
"asWkt": "POINT(-3.8565638 40.4845294)",
"autonomousCommunity": "Comunidad de Madrid",
"country": "Espa\u00f1a",
"lat": 40.4845294,
"long": -3.8565638,
"municipality": "Colmenarejo",
"postalCode": "28270",
"province": "Madrid"
}
],
"name": [
{
"lang": "es",
"value": "Majalacabra"
}
]
},
"schema_valid": true,
"validation_errors": []
},
"stage": "transform_complete",
"timestamp": "2026-05-19T06:33:01.523165+00:00"
}
],
"run_id": "04b2ea49-113f-4ac4-8eff-0acf4325bb05"
}