Back to Discover
System Message
You are working in an Event Organizer Company, you need to map fields of 1 schema to another schema
Prompt
You are working in an Event Organizer Company, you need to map columns of 1 json to another
I have this INPUT SCHEMA with the type of the key:
INPUT SCHEMA:
```
{
"festival_franchise": {
"type": "string"
},
"festival_year": {
"type": "string"
},
"location_city": {
"type": "string"
},
"location_state": {
"type": "string"
},
"location_country": {
"type": "string"
},
"location_text": {
"type": "string"
},
"location_details": {
"type": "string"
},
"location_lat": {
"type": "Number"
},
"location_long": {
"type": "Number"
},
"date_presale_start": {
"type": "date"
},
"date_presale_end": {
"type": "date"
},
"date_general_sale_start": {
"type": "date"
},
"date_general_sale_end": {
"type": "date"
},
"date_start": {
"type": "date"
},
"date_end": {
"type": "date"
},
"date_text": {
"type": "string"
},
"faqs_question": {
"type": "string"
},
"faqs_answer": {
"type": "string"
},
"festival_line_up": {
"type": "string"
},
"festival_description": {
"type": "string"
},
"festival_thumbnail": {
"type": "string"
},
"festival_logo_light_mode": {
"type": "string"
},
"festival_logo_dark_mode": {
"type": "string"
},
"festival_splash": {
"type": "string"
},
"festival_explore_img": {
"type": "string"
},
"map_mbtiles": {
"type": "string"
},
"annotations": {
"type": "string"
},
"stages_name": {
"type": "string"
},
"stages_slug": {
"type": "string"
},
"stages_description": {
"type": "string"
},
"beyond_the_music_slug": {
"type": "string"
},
"premium_name": {
"type": "string"
},
"premium_slug": {
"type": "string"
},
"foods_slug": {
"type": "string"
},
"foods_description": {
"type": "string"
},
"faq_external_url": {
"type": "string"
},
"temp_activity_description": {
"type": "string"
},
"temp_activity_description_expires_at": {
"type": "date"
},
"show_on_home_screen": {
"type": "boolean"
},
"wristband_activation": {
"type": "boolean"
},
"artist_list": {
"type": "boolean"
},
"food_vendors": {
"type": "boolean"
},
"collect_set": {
"type": "boolean"
},
"missions": {
"type": "boolean"
},
"discord": {
"type": "boolean"
},
"tips": {
"type": "boolean"
},
"beyond_the_music": {
"type": "boolean"
},
"calendar": {
"type": "boolean"
},
"location": {
"type": "boolean"
},
"merch": {
"type": "boolean"
},
"community_meetup": {
"type": "boolean"
},
"section_food_vendors_img": {
"type": "string"
},
"section_merch_image": {
"type": "string"
},
"section_merch_link": {
"type": "string"
},
"section_merch_description": {
"type": "string"
},
"tradable_bits_venue_name": {
"type": "string"
},
"tradable_bits_performance_uid": {
"type": "string"
},
"tradable_bits_section_location_url": {
"type": "string"
},
"section_tips_wristband_url": {
"type": "string"
},
"section_tips_ada_url": {
"type": "string"
},
"festival_secondary_text": {
"type": "string"
},
"festival_vibe_tags": {
"type": "Relation",
"children": "festival_vibe_tag",
"relationWithChildren": "hasMany",
"childrenSchema": {
"label": { "type": "string" },
"value": { "type": "string" },
"description": { "type": "string" }
}
},
"missions": {
"type": "Relation",
"children": "missions"
"relationWithChildren": "hasMany",
"childrenSchema": {
"title": { "type": "string" },
"description": { "type": "string" },
"dates": { "type": "string" },
"reward": { "type": "string" },
"details": { "type": "string" },
"what_you_will_need": { "type": "string" },
"perk": { "type": "string" },
"sponsor": {
"type": "Relation",
"children": "sponsor",
"relationWithChildren": "hasOne",
"childrenSchema": {
"name": { "type": "string" },
"avatar": { "type": "string" }
}
}
}
},
"static_map": {
"type": "string",
"sample": ["static_map1.jpg", "static_map2.jpg", "static_map3.jpg"]
}
}
```
Map the INPUT SCHEMA (source) key to my RESULT SCHEMA (destination) for "Festival" using the OUTPUT SCHEMA format
RESULT SCHEMA:
```
{
"Event Name": "Name of the event",
"Vibe": "Description of the vibe",
"Sponsors": "All the sponsors of the festivals"
}
```
OUTPUT SCHEMA:
```
{
"source": "Key in INPUT SCHEMA, only use key that available in the INPUT SCHEMA, if need to get key from type = "relation", display the "destination" in a form of <children>.<key>, this field should never end with <children>, it must end with <key>. Consider all keys in <childrenSchema> before making a decision",
"destination": "Key of the destination in RESULT SCHEMA",
"description": "Describe why you choose the source key, and explain why you give that confidence score",
"confidenceScore": "Assigning a confidence score (0-100) for each potential match. RESULT SCHEMA includes key descriptions, INPUT SCHEMA include samples — use these to improve accuracy.
*Instructions*:
1. **Key Analysis**: For key in INPUT SCHEMA, list possible matches in RESULT SCHEMA based on:
- *Name Similarity*: Compare normalized names (ignore case/special chars, check abbreviations, stems).
- *Description Alignment*: If RESULT SCHEMA provides key descriptions, try to explain INPUT SCHEMA's key, then assess semantic fit.
- *Data Type*: Check if values (e.g., string, number) are compatible.
2. **Confidence Scoring**: For each candidate match, assign a score:
- **90–100**: Exact name match or unambiguous description alignment (e.g., **`"user_id"`** → **`"userID"`** + description: "Unique user identifier").
- **60–80**: Partial name match *and* compatible description (e.g., **`"cust_name"`** → **`"client_full_name"`** + description: "Name of the customer").
- **30–50**: Weak name match but plausible description (e.g., **`"addr"`** → **`"location"`** + description: "Physical address details").
- **0–20**: No clear match or conflicting types.",
"alternatives": "Keys that also likely to relate to the key of destination, these keys must be present in the INPUT SCHEMA"
}
```
Process to choose potential keys:
1. Try to generate the description for each key in INPUT SCHEMA first
2. for each destination key in RESULT SCHEMA, compare the description against the description of all the keys in the INPUT SCHEMA
3. Use the provided Instructions for confidenceScore to evaluate the matching between them
4. the highest score will be the source key, others high score will be listed as alternatives
Use the provided chain-of-thought instructions internally to ensure the best match, but do not include this internal reasoning in your final JSON output.
Only provide the final output as a single JSON array that maps the INPUT SCHEMA keys to the RESULT SCHEMA keys according to the OUTPUT SCHEMA format. The number of elements in that array must equal to number of attributes in RESULT SCHEMA, and each "destination" in the output array must be an attribute in RESULT SCHEMA.