edubase_post_question
Publish or update quiz questions in EduBase, supporting various question types, dynamic parameters, and rich formatting for educational assessments.
Instructions
Publish or update a question. Questions are the atomic building blocks of the EduBase Quiz system and represent the lowest level in the hierarchy (Questions -> Quiz sets -> Exams).
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | External unique question identifier for question management. Should be maximum 64 characters long! On repeated uploads, the questions are updated (rather then added) based on this value, which can be an arbitrary text. If the question already exists at upload time with the same external identifier (in the given folder or Quiz set), the existing question will be updated instead of being added as a new one. - Use cases: - Integration with external systems - Version control - Batch updates - Content synchronization - Best practices: - Use consistent naming conventions - Include version, source or date information - Consider hierarchical IDs for related content Example: - id=MATHEMATICS_ARITHMETIC_BASIC_ADDITION_STATIC_001 - type=numerical - content=What is 2+2? - answer=4 | |
| type | Yes | Type of the question. EduBase supports various question types to accommodate different assessment needs: - Basic Types: - GENERIC: Strict matching including spaces and punctuation - TEXT: Basic text input with flexible matching (ignores spaces and punctuation) - FREE-TEXT: Extended text response with semi-automatic grading - READING: Non-assessed text display for complex question groups - Choice-Based Types: - CHOICE: Single correct answer selection - MULTIPLE-CHOICE: Multiple correct answers - ORDER: Sequence arrangement (arrange items in correct order) - TRUE/FALSE: Statement evaluation (true statements in ANSWER, false in OPTIONS) - Numerical Types: - NUMERIC: Numerical value validation with fractions, constants, intervals - DATE/TIME: Calendar date validation with adjustable precision - EXPRESSION: Mathematical expression evaluation - Advanced Types: - MATRIX/MATRIX:EXPRESSION: Matrix evaluation (format: [a;b|c;d] for 2x2) - SET/SET:TEXT: Unordered collection validation - FILE: File submission evaluation Example: type=numerical | |
| content | Yes | The main question text that will be displayed to the test taker. Supports rich formatting options: - LaTeX Support (requires QUESTION_FORMAT=LATEX): - Inline: $$...$$ - Block: $$$$...$$$$ - IMPORTANT: When using LaTeX in questions, you MUST use double dollar signs ($$...$$) for inline math or quadruple dollar signs ($$$$...$$$$) for block math. - Single dollar signs ($...$) are NOT supported and will not render correctly. The inline or block method must be used, as $...$ won't work! - Parameters: Use curly braces {parameter_name} (defined in PARAMETERS field) - Quick expressions: Use ~~~expression~~~ for simple parameter calculations, e.g., area of a circle is ~~~{r}*{r}*pi~~~ - Style formatting with EduTags: - Bold: [[B]]...[[/B]] - Italic: [[I]]...[[/I]] - Underline: [[U]]...[[/U]] - Subscript: [[SUB]]...[[/SUB]], Superscript: [[SUP]]...[[/SUP]] - Code: [[CODE]]...[[/CODE]], [[CODEBLOCK]]...[[/CODEBLOCK]] - Colors: [[COLOR:{color}]]...[[/COLOR]], [[BACKGROUND:{color}]]...[[/BACKGROUND]] - Tables: Use [[..]] format with semicolons for columns, vertical bars for rows, e.g., [[Header 1; Header 2 | Data 1; Data 2]] - Answer placeholders: [[___]] (3 underscores), for fill-in-the-gaps Example: content=Calculate the area of a circle with radius {r} using $$A = \pi r^2$$ | |
| question_format | No | Controls question text rendering. - NORMAL: Default text formatting with standard font size, recommended for most tasks - LATEX: Enables LaTeX for mathematical, scientific notations (using KaTeX) - LONG: Smaller font with automatic paragraph breaks (ideal for lengthy text) Example: question_format=LATEX | |
| answer | Yes | The correct answer(s) for the question. - For multiple answers, separate with triple-and operator ("&&&") - Parameters can be used in curly braces {param_name} - LaTeX Support (requires QUESTION_FORMAT=LATEX): - Inline: $$...$$ - Block: $$$$...$$$$ - IMPORTANT: When using LaTeX in answer, you MUST use double dollar signs ($$...$$) for inline math or quadruple dollar signs ($$$$...$$$$) for block math. - Single dollar signs ($...$) are NOT supported and will not render correctly. The inline or block method must be used, as $...$ won't work! - Usage by question type: - CHOICE: The correct option - MULTIPLE-CHOICE: All correct options - TEXT/NUMERICAL/EXPRESSION: Expected response(s) - ORDER: Items in correct sequence - TRUE/FALSE: True statements (false statements go in OPTIONS) - MATRIX types: Use format [a;b|c;d] for matrices - SET types: Unordered collection of elements Example: answer=Paris answer=sin(x)^2+cos(x)^2 # with type = EXPRESSION answer=$$sin^2(x)+cos^2(x)$$ # with type = CHOICE so it renders correctly | |
| language | Yes | The language of the question. - Alpha-2 code according to ISO 639-1 Example: language=hu # Hungarian | |
| image | No | Attach an image to the question. Supported formats: PNG, JPEG, WebP Format: filename=data, where data is either a base64-encoded image or a URL | |
| answer_order | No | Controls whether the sequence of multiple answers matters. - Plus sign (+) to indicate YES - Blank field or minus sign (-) indicates NO (default) - When using answer_label, this is automatically activated - Essential for questions where sequence is important (e.g., steps in a process) Example: answer_order=+ Example API call: id=europe_cities_population type=text content=List the following European cities in descending order by population (largest first) answer=London &&& Madrid &&& Paris answer_order=+ | |
| answer_label | No | Text displayed in/above the input field during the test. - Separate multiple labels with triple-and operators ("&&&") - Automatically activates the answer_order function - Perfect for multi-part questions where each part needs clear labeling - Useful for creating pairing/matching questions Example: answer_label=a) Distance (km) &&& b) Time (hours) &&& c) Speed (km/h) Example API call: id=basic_math type=numerical content=Given the number 16:\n\na) What is double this number?\n\nb) What is half of this number?\n\nc) What is this number plus 10? answer=32 &&& 8 &&& 26 answer_label=a) Double &&& b) Half &&& c) Plus 10 points=3 | |
| answer_hide | No | Controls whether correct answers are hidden on the results page. - Plus sign (+) to indicate YES - Blank field or minus sign (-) indicates NO (default) - Useful for test security and preventing answer sharing - Critical for reusable questions and practice tests Example: answer_hide=+ Example API call: id=uk_countries type=text content=Name any of the countries within the United Kingdom! answer=England &&& Northern Ireland &&& Scotland &&& Wales answer_require=1 answer_hide=+ | |
| answer_indefinite | No | Allows users to add any number of input fields using + and - buttons. - Plus sign (+) to indicate YES - Blank field or minus sign (-) indicates NO (default) - Answer labels will not appear when this is enabled - Ideal for brainstorming exercises or questions with variable number of answers Example: answer_indefinite=+ Example API call: id=name_countries type=text content=Name as many European countries as you can think of. answer=France &&& Germany &&& Italy &&& Spain &&& United Kingdom &&& ... answer_indefinite=+ | |
| answer_format | No | Defines how to display the answer on the results page. - Only applicable for FREE-TEXT questions - Format: type or type:value - Available types: - normal: standard text (default) - code: with syntax highlighting (specify language after colon) Example: answer_format=code:python answer_format=code:sql Example API call: id=sql_basics type=free-text content=Write a SQL query to select all columns from the "users" table where the age is greater than 18. answer=SELECT * FROM users WHERE age > 18 answer_format=code:sql | |
| answer_require | No | Number of answers required for maximum score. - Not applicable for CHOICE and FREE-TEXT questions - Perfect for questions with multiple valid answers where only a subset needs to be provided - Useful when asking students to provide any X examples from a larger set Example: answer_require=3 Example API call: id=uk_countries type=text content=Name any one of the countries within the United Kingdom! answer=England &&& Northern Ireland &&& Scotland &&& Wales answer_require=1 | |
| subject | No | Subject classification for organizing questions. - Provides primary categorization for content organization - Use the question editor in the EduBase UI for an up-to-date list of possible values Example: subject=Mathematics category=Algebra | |
| category | No | Category, another layer of organization as seen in SUBJECT | |
| path | No | Path where question will be stored in personal QuestionBase. - Default: /API - Supports hierarchical structure with forward slashes - Always start with a forward slash! Example: path=/Mathematics/Calculus/Derivatives | |
| options | No | Incorrect options or false statements for choice-based question types. - Required for CHOICE, MULTIPLE-CHOICE question types - For TRUE/FALSE, these are the false statements (ANSWER contains true statements) - Separate multiple options with triple-and operators ("&&&") - Parameters can be used in curly braces {param_name} - LaTeX Support (requires QUESTION_FORMAT=LATEX): - Inline: $$...$$ - Block: $$$$...$$$$ - IMPORTANT: When using LaTeX in questions, you MUST use double dollar signs ($$...$$) for inline math or quadruple dollar signs ($$$$...$$$$) for block math. - Single dollar signs ($...$) are NOT supported and will not render correctly. The inline or block method must be used, as $...$ won't work! Example: options=London &&& Berlin &&& Madrid Example API call: id=capital_france type=choice content=What is the capital of France? answer=Paris options=London &&& Berlin &&& Madrid | |
| options_fix | No | Controls the arrangement of answers and options. - Available values: - all: Answers appear first, followed by options - abc: Sort all items (answers and options) alphabetically - first:N: Place first N options at the end - last:N: Place last N options at the end - answers: Place all answers at the end - Useful for maintaining consistent presentation or for specific pedagogical purposes For alphabetical ordering: - When migrating content from textbooks or past exams, can maintain original lettering system (a, b, c...) for: - Reference consistency with printed materials - Alignment with answer keys - Compatibility with existing grading systems - Cross-referencing with study guides - Particularly valuable when: - Test takers need to refer to both digital and printed materials - Questions are part of a larger standardized test system - Maintaining consistency with existing worksheets or textbooks - Digitizing legacy assessment materials Example: options_fix=abc Example API call: id=fruit_types type=multiple-choice content=Which of these are citrus fruits? answer=Lemon &&& Orange options=Apple &&& Banana &&& Grape options_fix=abc Example API call: id=vocab_synonyms type=multiple-choice content=Select all words that mean "happy": answer=b) Joyful &&& d) Merry options=a) Angry &&& c) Sleepy &&& e) Tired options_fix=abc | |
| options_order | No | Define exact presentation order of answers and options. - Format: ANSWER:N or OPTION:N items separated by "&&&" - ANSWER:N references the Nth provided answer - OPTION:N references the Nth provided option - OPTION_NONE:N references the Nth third option (for TRUE/FALSE questions) - All answers and options must be specified exactly once Example: options_order=OPTION:0 &&& ANSWER:0 &&& OPTION:1 &&& ANSWER:1 Example API call to create a chronologically ordered timeline id=historical_chronology type=multiple-choice content=Which of these events occurred during the Industrial Revolution (1760-1840)? answer=Invention of the Steam Engine &&& First Steam Locomotive &&& First Commercial Railway options=Printing Press Invented &&& First Electric Light Bulb &&& First Powered Flight options_order=OPTION:0 &&& ANSWER:0 &&& ANSWER:1 &&& ANSWER:2 &&& OPTION:1 &&& OPTION:2 | |
| points | No | Maximum points for a fully correct answer. - Default: 1 point - For questions with multiple answers, partial credit is possible based on SUBSCORING method Example: points=10 | |
| subscoring | No | Method for calculating partial credit for partially correct answers. - Not applicable for CHOICE, READING and FREE-TEXT questions - Available values: - PROPORTIONAL: Points awarded proportionally to correct answers (default) - LINEAR_SUBSTRACTED:N: Linear scoring with N points subtracted for each error - CUSTOM: Use custom point distribution defined in SUBPOINTS field - NONE: No partial credit, all-or-nothing scoring Example: subscoring=LINEAR_SUBSTRACTED:2 Example API call: id=math_problem type=numerical content=What is the sum and product of {a} and {b}? answer={a}+{b} &&& {a}*{b} parameters={a; INTEGER; 1; 100} &&& {b; INTEGER; 1; 100} points=4 subscoring=CUSTOM subpoints=25 &&& 75 | |
| subpoints | No | Define specific point values for each answer in percentages. - Only used when subscoring=CUSTOM - Specify percentage values separated by triple-and operators ("&&&") - Not applicable for CHOICE, READING and FREE-TEXT questions - Values should sum to 100 (for percentage) Example: subpoints=50 &&& 25 &&& 25 Example meaning: For a 10-point question with three answers: - First answer: 5 points (50%) - Second answer: 2.5 points (25%) - Third answer: 2.5 points (25%) | |
| penalty_scoring | No | Controls how penalty points should be applied. - Available values: - DEFAULT: Standard penalty application, which might vary by question type (default) - PER_ANSWER: Apply penalties for each incorrect answer - PER_QUESTION: Apply penalties once per question Example: penalty_scoring=PER_ANSWER | |
| penalty_points | No | Points deducted for completely incorrect answers. - No penalty applied if answer is partially correct - No penalty for empty/unanswered questions - Use positive values (recommended) Example: penalty_points=2 Example API call with penalties: id=physics_multiple_choice type=multiple-choice content=Which of the following are forms of energy? Select all that apply. answer=Kinetic &&& Potential &&& Thermal options=Velocity &&& Acceleration points=3 penalty_scoring=PER_QUESTION penalty_points=1 | |
| hint_penalty | No | Point deduction for using hints/solutions/videos during a test. - Format: type or type:value - Types: - NONE: No penalty (default) - ONCE:N%: Single deduction regardless of number used - PER-HELP:N%: Deduction for each hint (only for HINT_PENALTY) Examples: hint_penalty=ONCE:20% or hint_penalty=ONCE:0.2 hint_penalty=PER-HELP:10% solution_penalty=ONCE:50% video_penalty=ONCE:15% Example API call with comprehensive penalty system: id=area_circle_parametric type=expression content=Find an expression for the area of a circle with radius {r}. answer=pi*{r}^2 parameters={r; INTEGER; 2; 10} points=10 subject=Mathematics category=Geometry hint=Think about the formula for circle area &&& Remember that area involves squaring the radius solution=The formula for circle area is $$\pi r^2$$ penalty_scoring=PER_ANSWER penalty_points=3 hint_penalty=PER-HELP:10% solution_penalty=ONCE:50% # Each hint used reduces score by 10%, viewing solution reduces score by 50% | |
| solution_penalty | No | Similar to HINT_PENALTY Point deduction for viewing steps of the solution (NONE, ONCE:N%) (default: NONE) | |
| solution_image | No | Attach an image to the solution steps. Supported formats: PNG, JPEG, WebP Format: filename=data, where data is either a base64-encoded image or a URL | |
| video_penalty | No | Similar to HINT_PENALTY Point deduction for video assistance used (NONE, ONCE:N%) (default: NONE) | |
| manual_scoring | No | Controls when to enable manual scoring. - Not applicable for READING and FREE-TEXT questions - Available values: - NO: Never use manual scoring (default) - NOT_CORRECT: Only manually score incorrect answers - ALWAYS: Always require manual scoring Example: manual_scoring=NOT_CORRECT | |
| parameters | No | Parameter definitions for dynamic question generation. One of EduBase's most powerful features, allowing creation of dynamic questions where each user gets a unique variant of the same question. - Separate multiple parameters with triple-and operators ("&&&") - Up to 128 parameters can be defined Parameter Types: 1. FIX (Fixed Value): - Format: {name; FIX; value} - Sets a predefined constant value (integer or fraction) - Example: {pi; FIX; 3.1415} 2. INTEGER (Whole Numbers): - Simple: {name; INTEGER} - Extended: {name; INTEGER; min; max} - Full: {name; INTEGER; min; max; inside; outside} - Generate random integers within specified ranges - Use '-' for omitting min/max values - Examples: * {p; INTEGER} - any integer * {p; INTEGER; 10; 20} - integer between 10 and 20 (inclusive) * {p; INTEGER; -; -; [10-20]; [12-14] ||| [16-18]} - integer between 10-20, excluding 12-14 and 16-18 3. FLOAT (Decimal Numbers): - Simple: {name; FLOAT; precision} - Extended: {name; FLOAT; precision; min; max} - Full: {name; FLOAT; precision; min; max; inside; outside} - Generate random decimal numbers - Specify precision (decimal places) - Examples: * {p; FLOAT; 2} - float with 2 decimal places * {p; FLOAT; 5; 0; 1} - float between 0 and 1 with 5 decimals * {p; FLOAT; 1; 0; 10; -; [0-1]} - float between 0-10 excluding 0-1, with 1 decimal 4. FORMULA (Expressions): - Simple: {name; FORMULA; formula} - Full: {name; FORMULA; formula; precision} - Define parameters based on other parameters - Examples: * {d; FORMULA; {b}^2-4*{a}*{c}} - quadratic formula discriminant * {p; FORMULA; 2*{q}+1} - linear expression 5. LIST (Random Selection): - Format: {name; LIST; value1; value2; value3; ...} - Randomly select from predefined values - Up to 64 elements - Examples: * {primes; LIST; 2; 3; 5; 7; 11} * {animals; LIST; dog; cat; snake; camel} 6. PERMUTATION: - Format: {name; PERMUTATION; value1; value2; value3; ...} - Creates permutated parameters accessible as {name_1}, {name_2}, etc. - Example: {p; PERMUTATION; A; B; C; D} * So {p_1} will be a different letter than {p_2} - Example: {primes; PERMUTATION; 2; 3; 5; 7} * So both {primes_1} and {primes_2} will be different single digit primes 7. FORMAT: - Format: {name; FORMAT; parameter; type; ...} - Format parameters based on other parameters - Supported types: NUMBER, NUMERTEXT, ROMAN - Optional extra parameters based on type * NUMBER * precision: number of decimal places - Examples: * {pp; FORMAT; p; NUMBER; 1} - format as number rounded to 1 decimal * {pp; FORMAT; p; NUMBERTEXT} - format number as text * {pp; FORMAT; p; ROMAN} - format number as Roman numeral Best Practices: - Order parameters so dependent ones come later - Use simple notation when possible - Avoid unnecessary parameters - Use CONSTRAINTS field to ensure valid combinations Examples: parameters={pi; FIX; 3.14159} &&& {r; INTEGER; 1; 10} parameters={a; INTEGER; 1; 5} &&& {b; INTEGER; -10; 10} &&& {c; INTEGER; -10; 10} &&& {d; FORMULA; {b}^2-4*{a}*{c}} parameters={country; LIST; France; Germany; Italy} &&& {capital; LIST; Paris; Berlin; Rome} parameters_sync=+ # Ensures each country is paired with its correct capital | |
| parameters_sync | No | Controls synchronization of LIST parameter selections. - Plus sign (+) to indicate YES - Blank field or minus sign (-) indicates NO (default) - When enabled, the Nth value from each LIST is selected together - Critical for paired data like countries and capitals Example: parameters_sync=+ Example API call: id=capital_city type=text content=What is the capital city of {country}? answer={capital} parameters={country; LIST; France; Germany; Italy} &&& {capital; LIST; Paris; Berlin; Rome} parameters_sync=+ | |
| constraints | No | Define rules that parameter combinations must satisfy. - Mathematical expressions that must evaluate to true - Parameters must be in curly braces {param} - Allowed relations: <, <=, =, >=, >, <> - Multiple constraints separated by triple-and operators ("&&&") Examples: constraints={b}^2-4*{a}*{c}>0 constraints={a}+{b}>{c} &&& {b}+{c}>{a} &&& {c}+{a}>{b} constraints={x}+{y}<10 &&& {x}<4 | |
| expression_check | No | Define how expressions should be validated (RANDOM, EXPLICIT, COMPARE) (default: RANDOM). - RANDOM: Evaluates expressions at randomly generated points - EXPLICIT: Checks expressions at predefined values against target values - COMPARE: Direct comparison of expressions without variables Example: expression_check=RANDOM | |
| expression_variable | No | Specifies variable names used in expressions (separate multiple variables with &&&) (default: x). - Multiple variables can be used for multivariable expressions - Variable names must be used consistently in answer and validation Examples: expression_variable=t &&& v # For distance formula using time and velocity | |
| expression_decimals | No | Sets precision for decimal calculations (default: 2). - Inherited from decimals field if not specified - Critical for controlling accurate validation of expressions Example: expression_decimals=4 # For high-precision calculations | |
| expression_functions | No | Controls whether functions can be used in user inputs (+ for yes, - for no) (default: +). - Enabled by default with + sign - Disable with - sign when students should use alternative forms - Affects available input options for test takers - Supported functions include: * Basic: sqrt, abs, round, floor, ceil * Logarithmic: ln, log, log10 * Trigonometric: sin, cos, tan, csc, sec, arcsin/asin, arccos/acos, arctan/atan * Hyperbolic: sinh, cosh, tanh, arcsinh/asinh, arccosh/acosh, arctanh/atanh * Conversions: degree2radian, radian2degree, number2binary, number2hexadecimal, roman2number, etc. * Two-parameter (use semicolon separator): min(a;b), max(a;b), mod(n;i), fmod(n;i), div(a;b), intdiv(a;b), gcd(a;b), lcm(a;b), number2base(n;b), base2number(n;b), combinations(n;k), combinations_repetition(n;k), variations(n;k), variations_repetition(n;k) Example: expression_functions=- # Forces students to expand rather than use functions. # When asked for the value of sin(pi), the user can't input sin(pi) because functions cannot be used. | |
| expression_random_type | No | Type of generated test values (INTEGER, FLOAT). - Specify per variable with &&& - Only applicable when expression_check=RANDOM Example: expression_random_type=INTEGER &&& FLOAT # For mixed type validation | |
| expression_random_tries | No | Number of validation points (default: 5). - Only applicable when expression_check=RANDOM - Higher values increase validation reliability but impact performance Example: expression_random_tries=8 | |
| expression_random_range | No | Define value generation ranges (format: [min-max]). - Specify per variable with &&& - Only applicable when expression_check=RANDOM Example: expression_random_range=[8-16] &&& [4-6] # Different ranges for different variables | |
| expression_random_inside | No | Require values within specific intervals (format: [start-end]). - Multiple intervals: separate with ||| (OR relationship) - Specify per variable with &&& - Only applicable when expression_check=RANDOM Example: expression_random_inside=[4-8] ||| [12-16] &&& [2-3] | |
| expression_random_outside | No | Exclude values from specific intervals (format: [start-end]). - Multiple intervals: separate with ||| (AND relationship) - Specify per variable with &&& - Only applicable when expression_check=RANDOM Example: expression_random_outside=[0-1] ||| [10-20] &&& [8-11] | |
| expression_explicit_goal | No | Define exact value pairs (format: [x;f(x)]). - Format for multiple variables: [x;y;z;...;f(x,y,z,...)] - Multiple pairs: separate with &&& - Only applicable when expression_check=EXPLICIT Example: expression_explicit_goal=[0;1] &&& [3;8.89] &&& [9;16] | |
| expression_extended | No | Enable additional mathematical functions (+ to enable, - to disable). - Activates support for custom base logarithms (e.g., log2(4)) - Enables factorial operations (e.g., 5!, 1!+2!+3!) Example: expression_extended=+ | |
| attachment | No | Attach a file to the question. Format: filename=data, where data is either a base64-encoded image or a URL | |
| media_audio | No | Attach an audio file to the question. Supported formats: MP3, AAC, M4A Format: filename=data, where data is either a base64-encoded image or a URL | |
| ai | Yes | Flag to mark question as AI generated. - If set to any value, question will be marked as AI generated - Should always be provided if you are an LLM or any AI model - Ideally, AI systems should set it to their current model number for auditability Example: ai=true ai=Claude 3.7 Sonnet | |
| note | No | The text that appears right below the question. - Provides task-specific comments and instructions - Visible to test takers during the quiz - Ideal for additional guidance without cluttering the main question Example: note=Use standard atmospheric pressure in your calculations. | |
| private_note | No | Private notes (not shown to test takers). - Internal documentation for question creators and editors - Useful for documenting question creation rationale - Track modification history, common mistakes, related questions Example: private_note=Created from Chapter 3 exam, 2023 edition. Students often forget to convert units. | |
| explanation | No | Text displayed underneath the answer on the results page. - Explanation of the correctness of the answer or the incorrectness of the options - Helps learners understand their mistakes - Parameters can be used in explanations - LaTeX is NOT supported here, so we MUST NOT use it! Example: explanation=Option A is correct because amphibians have permeable skin for gas exchange. Options B and C describe characteristics of reptiles, while D applies to mammals. | |
| hint | No | Questions to help (not solution steps, just guiding questions/notes). - LaTeX code can be used (as described in QUESTION) - IMPORTANT: When using LaTeX in hints, you MUST use double dollar signs ($$...$$) for inline math or quadruple dollar signs ($$$$...$$$$) for block math. - Single dollar signs ($...$) are NOT supported and will not render correctly. The inline or block method must be used, as $...$ won't work! - Specify multiple hints separated by triple-and operators ("&&&") - Not available for test takers in exam mode - Displayed only when explicitly requested, one by one - Can be penalized using HINT_PENALTY Example: hint=Think about the relationship between radius and area &&& Remember the formula for circle area involves $\pi$ &&& Square the radius and multiply by $\pi$ | |
| solution | No | Step-by-step solution. - LaTeX code can be used (as described in QUESTION) - IMPORTANT: When using LaTeX in solution, you MUST use double dollar signs ($$...$$) for inline math or quadruple dollar signs ($$$$...$$$$) for block math. - Single dollar signs ($...$) are NOT supported and will not render correctly. The inline or block method must be used, as $...$ won't work! - Specify multiple solution steps separated by triple-and operators ("&&&") - Each step is displayed one at a time - Can be penalized using SOLUTION_PENALTY - Not available in exam mode Example: solution=Using the power rule, we differentiate each term: &&& For $x^2$: $\frac{d}{dx}(x^2) = 2x$ &&& For $x$: $\frac{d}{dx}(x) = 1$ &&& The constant term disappears: $\frac{d}{dx}(5) = 0$ &&& Therefore, $\frac{d}{dx}(x^2 + x + 5) = 2x + 1$ | |
| source | No | Specify source of question content (not shown to test takers). - Use cases include training material sources, documentation references, content attribution - Important for tracking question origins and copyright compliance Example: source=Mathematics Textbook Chapter 5, Page 123 source=Company Safety Manual 2023, Section 3.4.2 | |
| decimals | No | Decimal precision (default: 2). - Applicable only for NUMERIC / EXPRESSION / MATRIX / MATRIX:EXPRESSION / SET questions - The expected decimal precision of the final answer - Examples: Finance (decimals=2), Chemistry (decimals=4) Example: decimals=3 | |
| tolerance | No | Evaluation tolerance method. - Applicable only for NUMERIC / EXPRESSION / MATRIX / MATRIX:EXPRESSION / SET questions - Notation: type or type:value - Types: - ABSOLUTE: maximum difference between answer and user input * Example: ABSOLUTE:0.1 - RELATIVE: maximum difference in percentage (symmetric mean absolute percentage error, SMAP value is used) * Example: RELATIVE:5% or RELATIVE:0.05 - QUOTIENT: integer multiple / QUOTIENT2: scalar multiple * Example: QUOTIENT or QUOTIENT2:SYNCED Example: tolerance=ABSOLUTE:0.01 | |
| datetime_precision | No | Date/time precision. - Applicable only for DATE/TIME questions - Accepted values: YEAR / MONTH / DAY (default) - Defines granularity of date validation Example: datetime_precision=MONTH | |
| datetime_range | No | Date/time range (interval) question. - Applicable only for DATE/TIME questions - Plus sign (+) to indicate YES, while blank field or minus sign (-) indicates NO (default) - Enables date range responses with the format {from}-{to} Example: datetime_range=+ | |
| numerical_range | No | Number range (interval) question. - Only applicable for NUMERIC questions - Plus sign (+) to indicate YES, while blank field or minus sign (-) indicates NO (default) - Enables interval responses with the format {from}-{to} Example: numerical_range=+ | |
| truefalse_third_options | No | Activate the third option for TRUE/FALSE questions. - Plus sign (+) to display the third option OR - Specify options separated by triple-and operators ("&&&") to automatically enable the feature - Parameters can be used in curly braces {param_name} Example: truefalse_third_options=Cannot be determined from the information given &&&Not applicable | |
| truefalse_third_options_label | No | Label of the third option for TRUE/FALSE questions. - If blank, the text "none" is displayed (default) - Only applicable when TRUEFALSE_THIRD_OPTIONS is enabled Example: truefalse_third_options_label=Not enough information | |
| freetext_characters | No | Limit the number of characters that can be entered. - Applicable only for FREE-TEXT questions - Format: minimum-maximum, but you can specify only a minimum or maximum as well - Integer(s) between 0-4000 Example: freetext_characters=100-1000 freetext_characters=10- # Minimum 10 characters | |
| freetext_words | No | Limit the number of words that can be entered. - Applicable only for FREE-TEXT questions - Format: minimum-maximum, but you can specify only a minimum or maximum as well - Integer(s) between 0-4000 Example: freetext_words=-50 # Max. 50 words | |
| freetext_rules | No | Automatic evaluation of free text questions. - Applicable only for FREE-TEXT questions - Notation: {type; keywords} - Type: - 1: if keywords are included within input, answer is correct (maximum points) - 2: if keywords are included within input, answer is wrong (0 points) - 3: if no keywords are included within input, answer is good (maximum points) - 4: if keywords are not included within input, answer is wrong (0 points) - Keywords: comma-separated list (must not contain semicolons!) Example: freetext_rules={1; mitochondria, ATP, cellular respiration} | |
| main_category | No | The name of the category (for which CATEGORY will be a subcategory). - Empty by default, e.g. CATEGORY will be treated as the main category - Specify multiple levels (up to 2!) by using the triple-per operator (///) with highest main category on the left Example: main_category=Analytic Geometry /// Vectors | |
| tags | No | Tag questions with custom user-defined tags. - Use ID or code of pre-registered tags - Only previously registered tags can be used (must be pre-registered in EduBase UI) - Specify multiple tags separated by triple-and operators ("&&&") - User-controlled categorization that can be created at user or organization level - Use cases include: - Personal content organization (e.g., "My Calculus Questions", "Spring 2024") - Department-level categorization (e.g., "IT Department", "CS101") - Custom taxonomies for specialized content organization - Tags are flexible, customizable, and searchable in the UI Example: tags=Algebra &&& High School &&& Exam Prep | |
| labels | No | Categorize questions with instance-level labels. - Pre-defined values specific to each EduBase instance - Values controlled by instance administrators (cannot be created by users) - Consistent across all users in an instance - Specify multiple labels separated by triple-and operators ("&&&") - Use cases include: - System-wide flags (e.g., "needs_review", "featured") - Quality indicators (e.g., "verified", "deprecated") - Processing status (e.g., "ai_generated", "manually_checked") Example: label=verified &&& featured | |
| group | No | Add a question to a question group in a Quiz set. - If the group doesn't exist, it will be created automatically as a complex task with default settings - Only applicable when uploading DIRECTLY to a Quiz set - Existing group settings will not be changed when adding more questions Example: group=Basic_Arithmetic |