Open Knowledge Format · GEO
Si una IA habla de tu universidad, que hable bien.
OKF publica el conocimiento que la universidad ya tiene en su web en un formato que ChatGPT, Perplexity o Gemini leen, entienden y citan —con enlace de vuelta a tu página.

Un archivo por concepto
Así habla el conocimiento de tu universidad.
Cada programa, servicio o hecho relevante se convierte en un archivo estructurado con tipo semántico, descripción controlada y enlace de atribución.

La gente ya no solo busca. Consulta.
La IA ya responde por tu universidad.
Pero no siempre responde bien.
Alucina
La IA inventa datos sobre tu universidad: cifras de matrícula incorrectas, programas que no existen, fechas erróneas.
Cita a otros
Fuentes de terceros —rankings, medios, foros— se posicionan por encima de la propia universidad cuando la IA responde.
Te ignora
El conocimiento sin estructurar queda excluido de las respuestas generativas. La IA lo omite porque no puede leerlo.
¿Qué es el Open knowledge format?
Tu conocimiento, en un formato que las máquinas entienden.
OKF es un paquete de conocimiento —una proyección automática del contenido existente de tu web Griddo— diseñado para que los grandes modelos de lenguaje lo procesen correctamente.
type
Define el concepto con precisión semántica. EducationalProgram, ResearchGroup, CampusService... la IA sabe exactamente qué tipo de entidad está leyendo.
title · description
Control directo del mensaje. La universidad decide el nombre exacto y la descripción que el modelo debe asociar a ese concepto, sin reinterpretaciones.
resource
Enlace canónico de atribución. Cada archivo apunta a la URL oficial. Cuando la IA cita, lo hace con el enlace de vuelta a tu página.
tags · atributos
Datos estructurados adicionales: ámbito, modalidad, duración, precio, idioma. Contexto rico que mejora la precisión de las respuestas generativas.
Nuestro propio bundle, en vivo
Así se ve el conocimiento de una universidad en OKF.
Este es el bundle OKF real de Griddo, generado desde nuestros esquemas y publicado en /okf/. Cada tipo de concepto —programas, eventos, noticias, taxonomías…— se declara con su frontmatter y sus relaciones.
---
type: Griddo Page Content Type
title: Program
description: Degree program with category filters for school, area, modality, and language. Template ProgramDetail. Data pack PROGRAMS.
resource: src/schemas/content-types/page/PROGRAM/index.ts
tags: [program, academic-offer, programs-data-pack]
timestamp: 2026-07-02T00:00:00Z
griddo_schema_type: PageContentType
griddo_from_page: true
griddo_translate: true
griddo_local: false
---
Belongs to the [PROGRAMS data pack](../../data-packs/programs.md). Each instance generates a page rendered by the `ProgramDetail` template.
Category fields (`MultiCheckSelect`) act as filters for [ProgramsDistributor](../../modules/programs-distributor.md) and related listing modules. A program can belong to multiple schools, areas, and modalities simultaneously.
# Schema
| Key | Field type | Title | Mandatory | Notes |
|---|---|---|---|---|
| `title` | TextField | Title | ✅ | Page title and CMS label. |
| `abstract` | Wysiwyg (not full) | Abstract | — | Short rich-text description. |
| `image` | ImageField | Image | — | Thumbnail shown in distributor cards. |
| `centers` | MultiCheckSelect | Centers | — | → [CENTER](../../taxonomies/center.md). `from: categories.centers` |
| `schools` | MultiCheckSelect | Schools | — | → [SCHOOL](../../taxonomies/school.md). `from: categories.schools` |
| `programTypes` | MultiCheckSelect | Program type | — | → [PROGRAM_TYPE](../simple/program-type.md). `from: categories.programTypes` |
| `academicAreas` | MultiCheckSelect | Academic area | — | → [ACADEMIC_AREA](../../taxonomies/academic-area.md). `from: categories.academicAreas` |
| `languages` | MultiCheckSelect | Languages | — | → [LANGUAGE](../../taxonomies/language.md). `from: categories.languages` |
| `modalities` | MultiCheckSelect | Modalities | — | → [MODALITY](../../taxonomies/modality.md). `from: categories.modalities` |
| `intake` | DateField | Starts On | — | Next intake date. `from: intake` |
| `duration` | TextField | Duration | — | Free text (e.g. "18 months"). `from: duration` |
| `seats` | TextField | Seats | — | Free text for available seats. `from: seats` |
| `data` | ReferenceField | Document to download | — | → DOCUMENT (structured data). Manual selection only. |
# Relationships
- Filtered in [ProgramsDistributor](../../modules/programs-distributor.md) by `schools`, `academicAreas`, `programTypes`, `modalities`, `languages`, `centers`.
- [STUDY_PLAN](../simple/study-plan.md) items in the PROGRAMS data pack display inside the `ProgramDetail` template via the StudyPlan module.
- [TESTIMONIAL](../simple/testimonial.md) items reference this program via their `programs` field.
# Citations
[1] [src/schemas/content-types/page/PROGRAM/index.ts](src/schemas/content-types/page/PROGRAM/index.ts)---
type: Griddo Page Content Type
title: Event
description: Academic and institutional events with mandatory date, time, image, and six category filters. Template EventDetail. Data pack EVENTS.
resource: src/schemas/content-types/page/EVENT/index.ts
tags: [event, calendar, events-data-pack]
timestamp: 2026-07-02T00:00:00Z
griddo_schema_type: PageContentType
griddo_from_page: true
griddo_translate: true
griddo_local: false
---
Belongs to the [EVENTS data pack](../../data-packs/events.md). Generates a page via the `EventDetail` template. All six category fields are **mandatory**, making events highly filterable across [EventsDistributor](../../modules/events-distributor.md).
# Schema
| Key | Field type | Title | Mandatory | Notes |
|---|---|---|---|---|
| `title` | TextField | Title | ✅ | |
| `eventDate` | DateField | Date | ✅ | `from: eventDate`. Indexable — used for sorting and filtering. |
| `eventTime` | TimeField | Time | ✅ | `from: eventTime` |
| `thumbImage` | ImageField | Image | ✅ | `from: thumbImage`. Shown in distributor cards. |
| `abstract` | Wysiwyg (not full) | Abstract | — | `from: abstract` |
| `centers` | MultiCheckSelect | Centers | ✅ | → [CENTER](../../taxonomies/center.md). `from: categories.centers` |
| `schools` | MultiCheckSelect | Schools | ✅ | → [SCHOOL](../../taxonomies/school.md). `from: categories.schools` |
| `services` | MultiCheckSelect | Services | ✅ | → [SERVICE](../../taxonomies/service.md). `from: categories.services` |
| `locations` | MultiCheckSelect | Locations | ✅ | → [LOCATION](../../taxonomies/location.md). `from: categories.locations` |
| `topics` | MultiCheckSelect | Topics | ✅ | → [TOPIC](../../taxonomies/topic.md). `from: categories.topics` |
| `type` | MultiCheckSelect | Event type | ✅ | → [EVENT_TYPE](../../taxonomies/event-type.md). `from: categories.type` |
# Relationships
- All six categories are mandatory — every event must be classifiable by center, school, service, location, topic, and type.
- [EventsDistributor](../../modules/events-distributor.md) filters on `eventDate` (indexable) and all category fields.
# Citations
[1] [src/schemas/content-types/page/EVENT/index.ts](src/schemas/content-types/page/EVENT/index.ts)---
type: Griddo Page Content Type
title: News
description: News items with date (indexable), image, and five mandatory category filters. Template NewsDetail. Data pack NEWS.
resource: src/schemas/content-types/page/NEWS/index.ts
tags: [news, editorial, news-data-pack]
timestamp: 2026-07-02T00:00:00Z
griddo_schema_type: PageContentType
griddo_from_page: true
griddo_translate: true
griddo_local: false
---
Belongs to the [NEWS data pack](../../data-packs/news.md) alongside [INS_NEWS](ins-news.md). Generates a page via the `NewsDetail` template. See also [INS_NEWS](ins-news.md) for institutional news without category filters.
# Schema
| Key | Field type | Title | Mandatory | Notes |
|---|---|---|---|---|
| `title` | TextField | Title | ✅ | |
| `newsDate` | DateField | Date | — | `from: newsDate`. Indexable — used for chronological ordering. |
| `abstract` | Wysiwyg (not full) | Abstract | — | `from: abstract` |
| `image` | ImageField | Image | ✅ | `from: image` |
| `centers` | MultiCheckSelect | Centers | ✅ | → [CENTER](../../taxonomies/center.md). `from: categories.centers` |
| `schools` | MultiCheckSelect | Schools | ✅ | → [SCHOOL](../../taxonomies/school.md). `from: categories.schools` |
| `services` | MultiCheckSelect | Services | ✅ | → [SERVICE](../../taxonomies/service.md). `from: categories.services` |
| `topics` | MultiCheckSelect | Topics | ✅ | → [TOPIC](../../taxonomies/topic.md). `from: categories.topics` |
| `types` | MultiCheckSelect | Type | ✅ | → [NEWS_TYPE](../../taxonomies/news-type.md). `from: categories.types` |
# Relationships
- `newsDate` is indexable — used by [NewsDistributor](../../modules/news-distributor.md) for sort and recency filtering.
- Both `NEWS` and `INS_NEWS` belong to the same [NEWS data pack](../../data-packs/news.md); distributors can filter by content type to show only one or both.
- `NEWS` has 5 mandatory category fields; [INS_NEWS](ins-news.md) has none — intended for high-level institutional announcements that cross all category boundaries.
# Citations
[1] [src/schemas/content-types/page/NEWS/index.ts](src/schemas/content-types/page/NEWS/index.ts)---
type: Griddo Taxonomy
title: Academic Area
description: Academic area — title only. Filter in PROGRAMS and TESTIMONIAL.
resource: src/schemas/content-types/simple/ACADEMIC_AREA/index.ts
tags: [academic-area, taxonomy, filter]
timestamp: 2026-07-02T00:00:00Z
griddo_data_packs: [PROGRAMS, TESTIMONIAL]
---
Minimal taxonomy — only a title. Used as `academicAreas` filter in [PROGRAM](../content-types/page/program.md).
# Schema
| Key | Field type | Title | Notes |
|---|---|---|---|
| `title` | TextField | Title | Mandatory. |
# Citations
[1] [src/schemas/content-types/simple/ACADEMIC_AREA/index.ts](src/schemas/content-types/simple/ACADEMIC_AREA/index.ts)---
type: Griddo Data Pack
title: Programs
description: Groups all program-related content types. Feeds ProgramsDistributor, ProgramsList template, and ProgramDetail page.
resource: src/schemas/data-packs/packs/PROGRAMS/index.ts
tags: [programs, data-pack, studies]
timestamp: 2026-07-02T00:00:00Z
griddo_category: STUDIES
---
# Content types in this pack
- [PROGRAM](../content-types/page/program.md) — Page content type. The core entity.
- [STUDY_PLAN](../content-types/simple/study-plan.md) — Curriculum nested structure.
- [ACADEMIC_AREA](../taxonomies/academic-area.md) — Filter taxonomy.
- [CENTER](../taxonomies/center.md) — Filter taxonomy (cross-pack).
- [SCHOOL](../taxonomies/school.md) — Filter taxonomy (cross-pack).
- [PROGRAM_TYPE](../content-types/simple/program-type.md) — Filter with CRM API ID.
- MODALITY, LANGUAGE, FORMAT — CategoryContentType filters.
# Citations
[1] [src/schemas/data-packs/packs/PROGRAMS/index.ts](src/schemas/data-packs/packs/PROGRAMS/index.ts)---
type: Griddo Module
title: Programs Distributor
description: Auto-feeds PROGRAM items from the PROGRAMS data pack. Renders a grid or list of program cards with optional image, heading, subtitle, content, and CTA button. Up to 6 items per instance.
resource: src/schemas/modules/ProgramsDistributor.ts
tags: [distributor, programs, programs-data-pack]
timestamp: 2026-07-02T00:00:00Z
griddo_schema_type: Module
griddo_category: distributors
griddo_data_packs: [PROGRAMS]
griddo_archetype: Distributor
---
Surfaces [PROGRAM](../content-types/page/program.md) items from the [PROGRAMS data pack](../data-packs/programs.md). This is the primary listing module for programs outside of dedicated list templates. Editors configure auto or manual mode; in auto mode the engine applies filter operators from the data pack query.
# Allowed in
| Template | Zone |
|---|---|
| [BasicTemplate](../templates/basic-template.md) | mainSection |
| [ProgramDetail](../templates/program-detail.md) | mainSection |
# Content fields
| Key | Type | Mandatory | Notes |
|---|---|---|---|
| `additional` | TextField | — | Eyebrow label above the heading. |
| `title` | HeadingField | — | Module heading. `isMockup: true`. |
| `subtitle` | Wysiwyg | — | Module subtitle. |
| `content` | Wysiwyg | — | Module body text. |
| `emptyState` | TextField | — | Message shown when no programs match. |
| `data` | ReferenceField | ✅ | Sources: `PROGRAM`. Max 6 items. Auto or manual mode. |
| `image` | RadioGroup | ✅ | Whether to show a program image on cards. Yes/No. |
| `link` | Link | — | CTA button (hideable). |
# Config fields
| Key | Type | Notes |
|---|---|---|
| `anchorID` | TextField | HTML anchor for in-page navigation. |
| `subtheme` | VisualUniqueSelection | Themes: `default`, `default-alt`, `inverse`. |
| `verticalSpacing` | Select | `small` / `medium` / `large`. |
# Flavors
## InnerProgramsDistributor
`src/schemas/modules/InnerProgramsDistributor.ts` — same data pack and source as base. No `sectionList` (used inside Inner/detail page zones). No `anchorID` or theme options — inherits from the parent template. Identical content fields.
## LandingProgramsDistributor
`src/schemas/modules/LandingProgramsDistributor.ts` — restricted to `ProgramLanding.mainSection` and `Landing.mainSection`. No `link` field (landing pages use a form instead). Otherwise identical.
# Relationships
- Feeds from [PROGRAM](../content-types/page/program.md) via [PROGRAMS data pack](../data-packs/programs.md).
- Also appears as default module in [ProgramDetail](../templates/program-detail.md) main section.
# Citations
[1] [src/schemas/modules/ProgramsDistributor.ts](src/schemas/modules/ProgramsDistributor.ts)
[2] [src/schemas/modules/InnerProgramsDistributor.ts](src/schemas/modules/InnerProgramsDistributor.ts)
[3] [src/schemas/modules/LandingProgramsDistributor.ts](src/schemas/modules/LandingProgramsDistributor.ts)---
type: Griddo Template
title: Program Detail
description: Detail page for a single PROGRAM item. Hero title, quick facts sidebar (intake, duration, seats, categories), sticky navigation, and a rich main section with all content and distributor modules.
resource: src/schemas/templates/ProgramDetail.ts
tags: [template, programs-data-pack, detail, program]
timestamp: 2026-07-02T00:00:00Z
griddo_schema_type: Template
griddo_template_type: ProgramDetail
griddo_data_packs: [PROGRAMS]
griddo_mode: detail
---
One page per [PROGRAM](../content-types/page/program.md) item. The richest template in the project: it accepts nearly every content module and all distributor modules relevant to programs. It is the landing destination for links from [ProgramsDistributor](../modules/programs-distributor.md) and [ProgramsList](programs-list.md).
# Zones
| Zone | Type | Max | Whitelist (abbreviated) |
|---|---|---|---|
| `navigation` | ComponentArray | 1 | `ProgramNavigation` |
| `mainSection` | ComponentArray | — | All collection + distributor modules |
# Content fields
| Key | Type | Mandatory | Notes |
|---|---|---|---|
| `heroTitle` | HeadingField | — | Page H1 (separate from the PROGRAM `title`). |
| `additional` | TextField | — | Eyebrow above hero title. |
| `abstract` | Wysiwyg (not full) | — | Short intro text. |
| `image` | ImageField | — | Hero image (hideable). |
| `data` | ReferenceField | — | `DOCUMENT` source — brochure download. Max 1. |
# Quick facts (sidebar fields)
| Key | Source | Notes |
|---|---|---|
| `intake` | DateField | Start date. |
| `duration` | TextField | e.g. "18 months". |
| `seats` | TextField | Number of seats. |
| `centers` | CENTER | Optional. |
| `schools` | SCHOOL | Optional. |
| `programTypes` | PROGRAM_TYPE | **Mandatory**. |
| `academicAreas` | ACADEMIC_AREA | Optional. |
| `languages` | LANGUAGE | Optional. |
| `modalities` | MODALITY | Optional. |
# Config
| Key | Notes |
|---|---|
| `titleSize` | `s` / `m` / `l` / `xl` (default: `m`). |
| `breadcrumbsDesktop` | Show breadcrumbs on tablet/desktop. |
| `breadcrumbs` | Show breadcrumbs on mobile. |
# Default module stack (mainSection)
ProgramIntroForm → BasicContent → CypherCollection → [StudyPlan](../modules/study-plan-module.md) → Quote → DownloadCollection → [TestimonialDistributor](../modules/testimonial-distributor.md) → StepCollection → [PeopleDistributor](../modules/people-distributor.md) → VerticalTabs → FAQCollection
# Relationships
- Template for [PROGRAM](../content-types/page/program.md) items.
- Linked from [ProgramsList](programs-list.md) and [ProgramsDistributor](../modules/programs-distributor.md).
- Accepts [NewsDistributor](../modules/news-distributor.md) for related news.
# Citations
[1] [src/schemas/templates/ProgramDetail.ts](src/schemas/templates/ProgramDetail.ts)Generative Engine Optimization
GEO es el nuevo SEO.
Si el SEO optimizaba para aparecer en Google, el GEO optimiza para ser citado correctamente por la IA. OKF es la capa técnica que lo hace posible.
01 · Correcto
OKF publica datos reales y verificados de la universidad. Menos alucinaciones, más respuestas precisas que citan tus fuentes.
02 · Favorable
Control de la narrativa: la universidad decide qué información aparece, cómo se describe y qué mensaje transmite.
03 · Con atribución
La IA enlaza de vuelta a la página oficial. Tráfico directo, atribución de marca y autoridad digital aumentan.
Pipeline automático
Cero trabajo extra. Se genera solo.
OKF no requiere que el equipo editorial haga nada diferente. El proceso ocurre en el fondo, a partir del contenido que ya existe.
1 · Contenido publicado
El equipo publica en Griddo como siempre: programas, noticias, servicios, investigación. Sin formato especial, sin esfuerzo adicional.
2 · Render de Griddo
Griddo lee el contenido estructurado de cada página y aplica el motor OKF: selecciona campos, asigna tipos semánticos y genera los archivos.
3 · Bundle /okf/
Los archivos OKF se publican automáticamente en la ruta /okf/ del dominio de la universidad, accesibles y rastreables.
4 · La IA lo cita
ChatGPT, Perplexity, Gemini y otros LLMs rastrean el bundle y empiezan a utilizar esos datos verificados en sus respuestas, con atribución.
La respuesta que quieres que dé la IA.
Con OKF activo, los modelos generativos disponen de datos correctos, verificados y enlazados. El resultado es una respuesta precisa que cita a la universidad como fuente.
¿Qué másteres de datos ofrece la Universidad UTEF?
La UTEF ofrece el Máster en Data Science (60 ECTS), un programa oficial orientado a la formación de profesionales en análisis de datos, machine learning y visualización avanzada. Disponible en modalidad presencial y online, con inicio en octubre. Para más información y matrícula, consulta la web oficial: universidad.edu/master-data-science
Fuente: Open Knowledge Format · universidad.edu/okf/
No lo afirmamos: lo medimos.
Comparamos el comportamiento de los modelos ante la misma pregunta, con y sin OKF activo. Los datos hablan.
Sin OKF
| Métrica | Resultado |
|---|---|
| Corrección de datos | Parcial |
| ¿Cita a la universidad? | No |
| ¿Enlaza a la web oficial? | No |
Con OKF
| Métrica | Resultado |
|---|---|
| Corrección de datos | Alta |
| ¿Cita a la universidad? | Sí |
| ¿Enlaza a la web oficial? | Sí |
¿Quieres ser un pionero?
Motor listo y probado.
La medición, en marcha.
El despliegue de los OKF está en producción y funcionando. Estamos validando el impacto en los modelos y construyendo las herramientas de medición GEO.
Motor OKF
El generador de archivos OKF está operativo y produce bundles estructurados a partir del contenido existente de Griddo.
Publicación
Los bundles se exponen en la ruta pública /okf/ del dominio, accesibles y rastreables por los LLMs.
Validado end-to-end
Pipeline completo probado: desde el contenido en Griddo hasta la respuesta del modelo con citación correcta.
Medición GEO
Dashboard de medición de presencia en IA en construcción: frecuencia de citación, corrección de datos, atribución.
Preguntas frecuentes
Todo lo que necesitas saber sobre OKF
Un estándar abierto para que las IAs lean tu conocimiento.
OKF es un formato —publicado por Google Cloud en junio de 2026— que estructura el conocimiento como archivos markdown con metadatos YAML, para que ChatGPT, Perplexity o Gemini puedan leerlo, verificarlo y citarlo. No es una base de datos ni una plataforma: es una convención.
Google Cloud, como estándar abierto y neutral.
Lo publicó Google Cloud (especificación v0.1, licencia Apache 2.0) como estándar independiente de cualquier proveedor. Cualquiera puede producir y consumir bundles OKF, sin SDK ni cuenta. Su valor está en la ubicuidad, no en la propiedad.
Ver la especificación en GitHubUn directorio de conceptos legible por máquinas.
Un bundle es una carpeta de archivos markdown donde cada archivo representa un concepto —un programa, un servicio, una fecha crítica— con una cabecera YAML (type, title, description, resource, tags, timestamp) y enlaces entre conceptos. El resultado es un grafo de conocimiento sin ninguna base de datos detrás.
OKF es la infraestructura del GEO.
El GEO determina si tu universidad aparece bien representada en las respuestas de la IA. OKF lo hace posible: publica tu conocimiento en una forma que los modelos pueden verificar y citar, con enlace de atribución de vuelta a tu web.
Cero. Se genera solo.
Tu equipo publica en Griddo como siempre. Griddo lee el contenido estructurado, aplica el motor OKF y expone los bundles automáticamente en la ruta /okf/ del dominio, rastreable por los LLMs. Sin formato especial ni tickets a IT.
El motor está listo; la medición GEO, en marcha.
La generación y publicación de bundles OKF están operativas y validadas de extremo a extremo. Estamos construyendo el panel de medición de presencia en IA. Disponible para universidades que ya usan Griddo.
Leer el análisis completo
Haz que el conocimiento de tu universidad sea legible —y citable— por la IA.
OKF está disponible para universidades que ya utilizan Griddo. Solicita una demo y te mostramos cómo queda el bundle de tu institución.
¿Quieres entender el estándar en profundidad? Lee Open Knowledge Format: el estándar que leen las IAs.
¿Quieres definir los bundles OKF de tu universidad?
Contáctanos y analizamos juntos como estructurar la ontología de tu universidad para que los LLMs describan tu universidad de la forma más precisa y adecuada.