Skip to content

EBAU Practical Cases (OAS V2)

Use Cases Catalog: EBAU Ecosystem under OAS V2

Architecture: Open Assessment Standard (OAS v1beta1)

Educational Scope: Baccalaureate (LOMLOE) and Baccalaureate Evaluation for University Access (EBAU) - Spanish Language and Literature II (Spain).

The EBAU (Selectividad) ecosystem is the paradigmatic model of punitive “High-Stakes” assessment. Unlike the holistic approach of the IB, the EBAU focuses on technical precision, rigorous syntactic analysis, and strict penalization for spelling and grammatical errors (which can subtract up to 3 points from the final grade).

This document details the implementation in Assessment as Code of the key questions of the Spanish Language and Literature II exam, demonstrating how OAS V2 handles ruthless spelling correction and the drawing of syntax trees.

1. Question 1: Summary and Theme (Precision and Conciseness)

The student must read a journalistic or literary text and write a summary (max. 8 lines) and state the theme (a single sentence). “Copy and paste” from the original text (reverse paraphrasing) is severely penalized.

A. The UI/UX Engine (ExerciseType)

apiVersion: colabedu.ai/v1beta1
kind: ExerciseType
metadata:
id: "es.etype.ebau.resumen_tema.v1"
title: "UI Engine: EBAU Summary and Theme"
spec:
ui_components:
- type: "split_pane_widget"
left: "pdf_viewer" # Exam text
right: "dynamic_forms_widget" # Strict forms for summary and theme
config:
fields:
- id: "tema"
type: "text_input"
max_words: 15 # Forces conciseness of the theme
- id: "resumen"
type: "text_area"
max_lines: 8 # Physical limit in the UI
report_components:
- type: "score_header_widget"
- type: "rubric_breakdown_table_widget"
- type: "markdown_viewer_widget"
configuration_schema:
- key: "timer_duration_minutes"
type: "integer"
default: 20

B. C0 Layer (The Punitive Rubric of Andalusia/Madrid)

- id: "es.rub.ebau.lengua.resumen.v1"
level: "C0"
type: "BLOCK_RUBRIC"
authority_scope: "REGIONAL_MADRID"
content: |
Scale: 0-1.5
Criteria:
- Theme (0.5 pts): Must capture the author's intention and the central issue in a single noun phrase or short sentence. Penalize if it's a generic or too extensive title.
- Summary (1.0 pts): L1.0 (Excellent): Brief, complete, objective, own writing. L0 (Zero): It is a copy-paste of sentences from the text, or includes personal opinion.

C. C3 Layer (The Internal Plagiarism Detection Algorithm)

This is where Server-Driven AI shines. We ask the LLM to act as an inefficient paraphrasing detector.

- id: "es.dir.ebau.anti_copypaste.v1"
level: "C3"
type: "BLOCK_DIRECTIVE"
content: |
preprocessing_directives:
- rule: "Literality Detection: Compare the 'Summary' generated by the student with the original text. If more than 20% of the summary are exact word strings copied from the original text (except proper nouns), the Summary score MUST BE ZERO (0 points)."
- rule: "Personal Opinion: If the summary contains marks of subjectivity (e.g., 'I think', 'The author does well to', evaluative adjectives not present in the original), subtract 0.5 points."

D. The Final Recipe (C1)

apiVersion: colabedu.ai/v1beta1
kind: Recipe
metadata:
id: "es.recipe.ebau.resumen.perez_reverte.v1"
spec:
level: "C1"
exerciseTypeRef: "es.etype.ebau.resumen_tema.v1"
rubric_refs: ["es.rub.ebau.lengua.resumen.v1"]
context_refs: ["es.ctx.ebau.texto.perez_reverte.v1"]
directive_refs: ["es.dir.ebau.anti_copypaste.v1", "es.dir.ebau.penalizacion_ortografica.v1"]

2. Question 2: Syntactic Analysis (The Technical “Final Boss”)

The student must syntactically analyze a complex sentence (e.g., “Students preparing for the EBAU suffer a lot of stress, but trust their possibilities”). Traditionally this is done on paper by drawing “boxes” or “trees”.

A. The UI/UX Engine (ExerciseType)

ColabEdu has developed a specific syntax_tree_builder_widget in Flutter so the student can visually segment and label sentences.

apiVersion: colabedu.ai/v1beta1
kind: ExerciseType
metadata:
id: "es.etype.ebau.analisis_sintactico.v1"
title: "UI Engine: EBAU Syntactic Tree Generator"
spec:
ui_components:
- type: "prompt_banner_widget" # Shows the sentence
- type: "syntax_tree_builder_widget" # The student drags and labels (NP, VP, Link, DO, etc.)
report_components:
- type: "score_header_widget"
- type: "syntax_tree_diff_widget" # Compares the student's tree with the AI's "Golden Tree"
configuration_schema:
- key: "terminology_standard"
type: "string"
default: "NGLE" # Nueva Gramática de la Lengua Española (RAE)

B. C2 Layer (The Context and the “Golden Path”)

For syntactic analysis, the AI does not need to evaluate creatively. It compares the JSON tree generated by the student in the UI with the perfect JSON tree saved in the C2 Layer.

- id: "es.ctx.ebau.oracion.coordinada.v1"
level: "C2"
type: "BLOCK_CONTEXT"
content: |
Sentence: "Me disgusta que los políticos mientan."
Golden_Tree (JSON):
{
"type": "Complex Sentence",
"components": [
{"text": "Me", "function": "IO", "type": "NP"},
{"text": "disgusta", "function": "Core", "type": "VP"},
{"text": "que los políticos mientan", "function": "Subject", "type": "Noun Subordinate Clause"}
]
}

C. The Final Recipe (C1)

apiVersion: colabedu.ai/v1beta1
kind: Recipe
metadata:
id: "es.recipe.ebau.sintaxis.subordinada.v1"
spec:
level: "C1"
exerciseTypeRef: "es.etype.ebau.analisis_sintactico.v1"
rubric_refs: ["es.rub.ebau.sintaxis.estricta.v1"]
context_refs: ["es.ctx.ebau.oracion.coordinada.v1"]

3. Question 3: Argumentative Text (The Spelling Filter)

The student must write an argumentative text of about 200-250 words on a topic related to the text of Question 1. Here comes into play the most feared rule of the EBAU: The Global Spelling Penalty.

A. The Spelling Penalty Directive (Global C3)

In Spain, spelling and grammatical errors can lower the grade of the entire exam (not just the essay). The general rule is:

  • First spelling error: No penalty (sometimes).
  • Subsequent spelling errors: -0.25 points each.
  • Accent marks (tildes): -0.10 points each.
  • Maximum penalty cap: -3 points (or sometimes direct fail).

It is implemented as a BLOCK_DIRECTIVE injected into all EBAU recipes.

- id: "es.dir.ebau.penalizacion_ortografica.v1"
level: "C3"
type: "BLOCK_DIRECTIVE"
authority_scope: "NATIONAL_SPAIN"
content: |
postprocessing_directives:
- rule: "Global Spelling Penalty: Upon completing the exercise evaluation, scan the text produced by the student."
- condition: "Spelling mistakes (b/v, h, g/j, etc.)"
action: "Subtract 0.25 points from the TOTAL FINAL SCORE for each mistake (the first is forgiven)."
- condition: "Accentuation mistakes (tildes)"
action: "Subtract 0.10 points from the TOTAL FINAL SCORE for each omitted or misplaced accent mark."
- execution: "Generate a final report in the `rubric_breakdown_table_widget` called 'Spelling Deductions' showing the incorrect word, the correction, and the points subtracted."

4. Conclusion

The EBAU ecosystem forces the AI to behave in a hyper-deterministic and punitive manner.

While in the IB the AI acts as a mentor that values the “attempt” and “understanding”, in the EBAU the AI acts as a Syntactic and Spelling Auditor. Thanks to the layer separation in OAS v1beta1, we can use the same base LLM (Gemini), but drastically altering its behavior through the BLOCK_DIRECTIVE of Layer C3 and the rigid rubrics of Layer C0.