← Documentación

¿Qué es un caso ovni?

En UFO@home, un caso reúne todo lo que se sabe de un suceso: lo que se vio, quién, cómo puede explicarse, lo que dijeron los testigos al ser preguntados. Un caso es de lo que trata una investigación: una noche, un lugar, un título. No describe el suceso en sí. Enumera lo que ocurrió a su alrededor, como eventos, cada uno un documento aparte. Nadie tiene que escribirlos todos: un caso puede ser una sola observación, y crecer.

Los eventos de un caso#

Un caso contiene tres tipos de evento.

  • Observaciones. Por lo general al menos una: el relato de un testigo, que UFO@home reproduce. Un caso puede contener otras, de otros testigos del mismo suceso, cada una con su propio relato, que pueden discrepar.
    • Interpretaciones. Una explicación alternativa de lo que se vio: una cometa, un planeta, un avión, un engaño. Es a su vez una observación, reproducida junto a la del testigo, para poder compararlas.
  • Entrevistas. Una conversación mantenida con un testigo, que fija lo que dijo al ser preguntado. No se reproduce.

Los eventos de un caso pueden estar vinculados#

Un evento rara vez está solo: una interpretación es una interpretación de algo, una entrevista se mantiene con alguien. Estas remisiones son lo que el lector sigue de uno a otro.

De → ACómo
Una interpretación → una observaciónUna interpretación nombra la observación primaria que explica: el relato del testigo del que es otra interpretación. No se entiende sin ella.
Una entrevista → una observaciónUna entrevista nombra la observación del testigo con quien se celebró, o la de cada testigo cuando fueron varios.
Una observación → una entrevistaEn sentido inverso: un pasaje de una entrevista puede decir de qué momento de la observación habla. La observación enumera entonces, en ese momento, los pasajes que la cuentan, cada uno un enlace de vuelta a la entrevista.

Un evento se designa por un id que es propio dentro del caso y en ningún otro sitio. Solo lo necesita un evento al que se remite.

En el editor de casos#

El editor de casos: el selector de los eventos del caso, y el + que añade uno.
El editor de casos: el selector de los eventos del caso, y el + que añade uno.
El grupo Archivo del editor de casos: el archivo del caso como texto, completado según su propio esquema.
El grupo Archivo del editor de casos: el archivo del caso como texto, completado según su propio esquema.

El editor abre un caso como un selector de sus eventos («Observación de Q. B.», «Entrevista a Q. B.»), y el elegido se abre debajo. El + añade un evento del tipo elegido, y el grupo Archivo muestra el caso como texto.

  • Abrir un caso. Carga un case.json desde un archivo o una dirección, o parte de una grabación y elige «Añadir a un caso».
  • El selector enumera los eventos («Observación de Q. B.», una interpretación, «Entrevista a Q. B.»). El que eliges se abre debajo, en su propio editor: el de observación para una observación o una interpretación, el de entrevista para una entrevista. Lo que cambiaste en los demás se conserva.
  • El identificador junto al selector es el id del evento, por el que los demás eventos lo designan. Da uno a un evento al que quieras remitir; el editor propone uno y se lo da a la observación con la que se celebra una entrevista.
  • + añade un evento: una observación (en blanco, desde un archivo o una dirección), una interpretación de una observación o una entrevista (con quién se celebró, un título, quién la realizó, por qué medio). La papelera elimina el evento mostrado.
  • Los dos grupos del caso: los Eventos, el selector y el evento mostrado, y el Archivo, el case.json como texto, completado según su propio esquema, para editar, cargar y guardar. Ambos dicen lo mismo: lo que cambia en uno cambia en el otro.
  • Guardar descarga el caso con sus archivos (un zip cuando hay varios). Hasta entonces el caso solo cambia en la página, y el editor avisa antes de lo que se perdería.

Parte técnica: el archivo del caso#

Un caso es un case.json, cuyo esquema es case.schema.json: un título, una fecha y sus events. Cada evento tiene un eventType (sighting, interpretation o interview) y una url cuando tiene un archivo propio, relativa al caso. Las remisiones son interpretationOf e interviewOf, cada una un id o una lista.

Cada extracto de abajo es de solo lectura, y cada uno conoce el formato: pon el cursor dentro de un objeto y pulsa Ctrl+Espacio (⌥+I en Mac) para listar todas las claves que podrían ir ahí, con lo que el modelo dice de cada una.

Un ejemplo#

{
  "id": "SaintLo2026",
  "title": "Saint-Lô",
  "time": "2026-08-11 02:30",
  "events": [
    { "type": "event", "eventType": "sighting", "id": "qb", "time": "2026-08-11 02:30", "title": "Q. B.", "url": "observer-saint-lo.json" },
    { "type": "event", "eventType": "sighting", "id": "kite", "interpretationOf": "qb", "title": "A kite", "url": "interpretation-kite.json" },
    { "type": "event", "eventType": "interview", "id": "interview-qb-1", "interviewOf": "qb", "time": "2026-10-13 21:27",
      "medium": "video", "by": [{ "people": "BeauJerome" }], "url": "interview-qb-1.json" }
  ]
}

El caso#

CampoSignificado
idEl identificador del caso. En rr0.org es el nombre del directorio del expediente
titleCómo se llama el caso
summaryUna frase o dos, en tantos idiomas como se quiera: lo que dice de un caso un enlace que lleva a él al compartirse
imageUna imagen que representa el caso donde solo se enlaza
timeCuándo ocurrió, como RR0 escribe una fecha ("1948-07-24 02:45", "1954")
eventsLo que ocurrió a su alrededor, en orden (véase más abajo)

Los eventos#

CampoSignificado
type, eventType"event", y la clase: sighting (una observación o una interpretación), interview. Un caso puede tener clases propias (article, image, book…), que UFO@home deja de lado
idCon lo que los demás eventos lo designan, único entre los eventos del caso. Solo lo necesita un evento al que se remite
urlEl archivo propio del evento (la grabación de una observación, la transcripción de una entrevista), relativo al caso
time, place, title, summary, byCuándo, dónde, cómo se llama, lo que estableció, quién lo hizo ({ "people": "…" } o { "org": "…" })
interpretationOfDe una interpretación: el id, o ids, de las observaciones primarias de las que es una interpretación
interviewOfDe una entrevista: el id, o ids, de las observaciones de los testigos con quienes se celebró
mediumDe una entrevista: in-person, phone, video, chat, email, letter u other

Todo lo demás de un caso (su clasificación, su lugar, sus fuentes) lo define RR0 y pasa por UFO@home sin leerse. Lo que UFO@home reproduce de un caso son sus observaciones; muestra sus interpretaciones al lado y guarda sus entrevistas.

<rr0-case-editor>

El editor de casos: el selector de sus eventos, cada uno abierto en el editor de su tipo, y el archivo del caso como texto.

<script type="module" src="https://ufoathome.org/lib/rr0-sighting-editor.mjs"></script>
<rr0-case-editor src="/cases/saint-lo/case.json"></rr0-case-editor>

El módulo del editor de grabaciones lo registra, con el <rr0-sighting-editor> que contiene. El editor de entrevistas se descarga la primera vez que se muestra una entrevista.

MiembroTipoQué hace
srcatributoLa dirección de un caso (case.json), o de una sola grabación, que entonces ofrece añadir a un caso.
trackatributoLa dirección de la grabación que se abre primero, relativa al caso; por defecto la del primer observador.
sightingDatapropiedadLa grabación mostrada, como objeto simple.
sightingEditorpropiedadEl <rr0-sighting-editor> que lo contiene, para quien necesite más de lo que este elemento ofrece.
caseSessionpropiedadEl caso que se está editando, cuando hay uno abierto.
dirtypropiedadVerdadero cuando el caso, o alguna de sus grabaciones, tiene cambios sin guardar.