From 4acbbe1929d14975f669891c276d88b8d0d4867d Mon Sep 17 00:00:00 2001 From: lila Date: Fri, 24 Jul 2026 13:26:33 +0200 Subject: [PATCH] updating prompt --- data-pipeline/prompt | 231 ++++++++++++++++++++++++++++++++----------- 1 file changed, 172 insertions(+), 59 deletions(-) diff --git a/data-pipeline/prompt b/data-pipeline/prompt index 8073694..50fa6d9 100644 --- a/data-pipeline/prompt +++ b/data-pipeline/prompt @@ -1,73 +1,186 @@ -You are a multilingual lexicographer. Output ONLY valid JSON. No markdown fences, no explanations, no commentary. +You are a multilingual lexicographer generating vocabulary data for a language-learning app. -The following words are English nouns: -child -work -life -world -hand -eye -book -friend -school -city +Source language: german +Part of speech: noun +Target languages: en, it, es, fr -For each word, generate ALL distinct senses (meanings). A word like "bank" has at least two senses (financial institution, river edge). A word like "house" may have two (building, dynasty). Most words have one. +Input words: +Wand +Dach +Tor +Zaun +Ecke +Mitte +Kante +Oberfläche +Innenstadt +Außenbereich +Umwelt +Gelegenheit +Vorteil +Entscheidung -For each sense, provide: -- sense_index: integer starting at 0 -- definitions: array of 1-2 student-friendly definitions in English, max 15 words each -- examples: array of 1-2 natural sentences in English using the word in this sense -- difficulty: "easy", "medium", or "hard" (use the CEFR guide below) -- translations: object with keys "de", "it", "es", "fr" (exclude the source language). Each value is an array of translation objects. -Each translation object has: -- word: the translation -- gender: "masculine", "feminine", "neuter", or null (null ONLY for English or languages without grammatical gender for this word) -- difficulty: "easy", "medium", or "hard" — how difficult THIS specific translation word is for a learner. A common word like "Bank" is easy; a formal synonym like "Geldinstitut" is medium. +Return ONLY valid JSON. +Do not include markdown fences. +Do not include explanations. +Do not include comments. +Do not include trailing commas. -CEFR difficulty guide (for calibration, do not include CEFR levels in output): -- A1/A2 → easy (beginner, everyday vocabulary) -- B1/B2 → medium (intermediate, less common or more formal) -- C1/C2 → hard (advanced, rare, literary, or technical) +The response must be a JSON array with exactly one object per input word, in the same order as the input words. -Output format: JSON object where keys are the input words, values are arrays of sense objects. +Each word object must have this shape: -Example for the English noun "bank": { - "bank": [ + "headword": string, + "language": "en", + "pos": "noun", + "senses": [ { - "sense_index": 0, - "definitions": ["An institution where one can deposit and borrow money."], - "examples": ["She deposited her paycheck at the bank."], - "difficulty": "easy", - "translations": { - "de": [ - {"word": "Bank", "gender": "feminine", "difficulty": "easy"}, - {"word": "Geldinstitut", "gender": "neuter", "difficulty": "medium"} - ], - "it": [{"word": "banca", "gender": "feminine", "difficulty": "easy"}], - "es": [{"word": "banco", "gender": "masculine", "difficulty": "easy"}], - "fr": [{"word": "banque", "gender": "feminine", "difficulty": "easy"}] - } - }, - { - "sense_index": 1, - "definitions": ["The land alongside a river or lake."], - "examples": ["They picnicked on the bank of the river."], - "difficulty": "medium", - "translations": { - "de": [{"word": "Ufer", "gender": "neuter", "difficulty": "medium"}], - "it": [{"word": "riva", "gender": "feminine", "difficulty": "medium"}], - "es": [{"word": "orilla", "gender": "feminine", "difficulty": "medium"}], - "fr": [{"word": "rive", "gender": "feminine", "difficulty": "medium"}] - } + "sense_index": number, + "difficulty": "easy" | "medium" | "hard", + "definitions": string[], + "examples": string[], + "translations": [ + { + "target_language": "de" | "it" | "es" | "fr", + "word": string, + "gender": "masculine" | "feminine" | "neuter" | null, + "difficulty": "easy" | "medium" | "hard" + } + ] } ] } Rules: -- Definitions and examples MUST be in English. -- Every sense MUST have translations for all target languages. -- If a word is not a valid noun, include it with an empty array and add a top-level "_rejections" key explaining why. -- Do not invent senses. Only include meanings that are genuinely distinct. + +1. The headword must be exactly one of the input words. +2. language must be "en". +3. pos must be "noun". +4. Include only common, learner-relevant senses. +5. Most words should have 1 sense. +6. Polysemous words may have 2 or 3 senses. +7. Do not include rare, archaic, highly technical, or literary senses unless they are common. +8. sense_index must start at 0 and increase by 1. +9. definitions must be written in English. +10. examples must be written in English. +11. Include 1 or 2 definitions per sense. +12. Include 1 or 2 example sentences per sense. +13. Each definition must be student-friendly and at most 15 words. +14. Each example should naturally contain the headword or a clear form of it. +15. Every sense must have translations for all target languages: de, it, es, fr. +16. Do not include English as a target_language. +17. You may include up to 2 translations per target language per sense if they are genuinely common synonyms or difficulty variants. +18. Do not include more than 2 translations per target language per sense. +19. Do not duplicate the same translation word for the same target language within one sense. +20. Use the base dictionary form of the translated noun. +21. Do not include articles or determiners in translations. +22. German translation nouns must be capitalized. +23. Spanish, French, and Italian translation nouns should be lowercase unless they are proper nouns. +24. For target_language "de", gender must be "masculine", "feminine", or "neuter". +25. For target_language "it", "es", or "fr", gender must be "masculine" or "feminine". +26. For this prompt, gender must never be null. +27. difficulty must be one of: "easy", "medium", "hard". +28. senses.difficulty describes how common or advanced the meaning is. +29. translations.difficulty describes how difficult the specific target-language word is for a learner. +30. A common translation like "Bank" may be easy, while a formal synonym like "Geldinstitut" may be medium. +31. If a word cannot be treated as a valid English noun, return it with "senses": []. + +Difficulty calibration: + +- easy: beginner, everyday vocabulary, roughly CEFR A1/A2 +- medium: intermediate, less common or more formal vocabulary, roughly CEFR B1/B2 +- hard: advanced, rare, literary, or technical vocabulary, roughly CEFR C1/C2 + +Do not include CEFR levels in the output. + +Example output shape for the English noun "bank": + +[ + { + "headword": "bank", + "language": "en", + "pos": "noun", + "senses": [ + { + "sense_index": 0, + "difficulty": "easy", + "definitions": [ + "An institution where people deposit and borrow money." + ], + "examples": [ + "She deposited her paycheck at the bank." + ], + "translations": [ + { + "target_language": "de", + "word": "Bank", + "gender": "feminine", + "difficulty": "easy" + }, + { + "target_language": "de", + "word": "Geldinstitut", + "gender": "neuter", + "difficulty": "medium" + }, + { + "target_language": "it", + "word": "banca", + "gender": "feminine", + "difficulty": "easy" + }, + { + "target_language": "es", + "word": "banco", + "gender": "masculine", + "difficulty": "easy" + }, + { + "target_language": "fr", + "word": "banque", + "gender": "feminine", + "difficulty": "easy" + } + ] + }, + { + "sense_index": 1, + "difficulty": "medium", + "definitions": [ + "The land alongside a river or lake." + ], + "examples": [ + "They picnicked on the bank of the river." + ], + "translations": [ + { + "target_language": "de", + "word": "Ufer", + "gender": "neuter", + "difficulty": "medium" + }, + { + "target_language": "it", + "word": "riva", + "gender": "feminine", + "difficulty": "medium" + }, + { + "target_language": "es", + "word": "orilla", + "gender": "feminine", + "difficulty": "medium" + }, + { + "target_language": "fr", + "word": "rive", + "gender": "feminine", + "difficulty": "medium" + } + ] + } + ] + } +]