El hueco estaba antes que el agente
Tu agente no alucina tu esquema. Lo está leyendo. Una norma de catalogación con veinte años encima trae una prueba para saber si una definición la puede leer alguien que no estuvo en la sala — así que la pasamos por nuestro propio glosario, y encontró 11 términos que citan un corpus que no existe.
Hay una frase en «Semantics Evolved», de Jessica Talisman, que reordena entero el debate sobre agentes y datos malos:
El consumidor máquina no crea el hueco y no, tu agente no está alucinando. Como la consulta y el trabajo humanos ocultan el hueco de comprensión, los agentes sacan a la superficie el significado equivocado simplemente porque lo entienden mal, a falta de conceptos robustos con definición.
Original: «The machine consumer does not create the gap and no, your agent is not hallucinating. Because human inquiry and labor conceals the gap in understanding, agents surface the wrong meaning because they simply misunderstand for lack of robust concepts with definitions.»
Conviene enunciar el mecanismo despacio, porque el reflejo va en dirección
contraria. Un analista no sabe si cust_status_cd significa dado de alta o
facturado. Pregunta al ingeniero que mantiene el pipeline. Obtiene respuesta.
La usa. No queda nada escrito, así que el siguiente analista hace la misma
pregunta y recibe la misma respuesta. El coste es recurrente y no se le imputa
nunca a la definición: se absorbe como la fricción normal de trabajar en un
sitio.
Un agente no tiene ingeniero a quien preguntar. Donde el contexto publicado infradetermina el significado, no se detiene:
Completa la definición a partir de su exposición estadística previa a los esquemas de otras miles de organizaciones, y lo que completa es plausible, y específico de una empresa que no es la tuya.
Original: «It completes the definition from prior statistical exposure to thousands of other organizations’ schemas, and the completion is plausible, and specific to a company that is not yours.»
Eso no es un defecto del modelo. Es un instrumento leyendo un indicador que siempre estuvo mal, y diciéndolo por fin en voz alta.
La prueba que existe desde 2005
Lo interesante del texto de Talisman no es el diagnóstico. Es que la biblioteconomía y las ciencias de la información llevan décadas cargando las pruebas para esto, y son baratas de ejecutar.
ISO/IEC 11179-4 exige que una definición se sostenga sola: que diga qué es el concepto, qué valores admite y cuáles rechaza, y dónde se acaba. Una descripción que expande la etiqueta en una versión más larga de la etiqueta no ha resuelto nada, porque la etiqueta es donde empezó la ambigüedad.
ANSI/NISO Z39.19 establece que un término entra en un vocabulario controlado por uno de tres fundamentos distintos, y pide reconciliarlos con intención:
- warrant literario — el corpus que se describe,
- warrant de usuario — lo que dicen realmente las personas y las máquinas que buscan,
- warrant organizativo — lo que la institución aprueba.
Aparecen por separado porque entran en conflicto. El fallo del que avisa la norma es concreto: el warrant organizativo se cuela en el sitio del warrant de usuario, y el término preferido por la institución queda registrado como evidencia de lo que dicen los consumidores.
Las dos son auditables. Ninguna exige un programa de investigación. Así que las apuntamos a nuestro propio glosario.
Qué encontró aquí
ontoref mantiene un vocabulario controlado en .ontoref/ontology/glossary.ncl,
tipado por un contrato que ya separa los compartimentos que una caja de texto no
puede: una definition, una nota de alcance en notes, aliases,
related_terms, y un origin que registra por qué autoridad existe el término.
Treinta y tantos términos, y la cifra exacta se mueve — que es justamente por lo
que se mide con un comando y no de memoria.
nickel export .ontoref/ontology/glossary.ncl | jq '[.terms[].origin.kind] | group_by(.)'
terms: 35
origin.kind Adr=9 Axiom=5 External=17 Practice=1 Schema=1 Tension=2
External CON ref 6
External SIN ref 11
sin nota de alcance 18
Dos hallazgos, y el segundo es el que escuece.
Dieciocho de ellos no declaran frontera. Más de la mitad
del vocabulario dice qué es un concepto y nunca dónde se acaba. Es
exactamente la pregunta que, según Talisman, un catálogo no puede responder —
«no puedes preguntar qué conceptos no declaran frontera», You cannot ask which
concepts have no stated boundary — y la única razón por la
que nosotros sí podemos hacerla es que definition y notes son campos
distintos. Tener la capacidad y no haber ejercido nunca la consulta es un estado
distinto de no tenerla. Era el nuestro.
Once términos declaran un warrant que no tienen. El contrato dice:
origin | origin_type | default = { kind = 'External, ref = "" },
'External significa warrant literario: este término viene de un corpus externo
al proyecto. Un término admitido sin que nadie pensara en su warrant se registra,
por tanto, citando un cuerpo de literatura sin literatura citada. No es un
campo vacío: es un campo afirmando en silencio algo falso. Once de ellos.
Un default es una decisión que se ejecuta una vez por término sin que nadie la tome.
La misma sustitución, una capa más arriba
El grafo de nodos también carga warrant — [| 'Adr, 'Emergence, 'Interview, 'Session, 'External |], añadido por el ADR-069 a raíz de
su artículo anterior.
Esos cinco son tipos de procedencia donde los tres de Z39.19 son fundamentos,
pero la correspondencia se lee sin esfuerzo: 'Adr y 'Session son
organizativos, 'Interview y 'Emergence son de usuario, 'External es
literario.
Cinco nodos llevan warrant hoy: tres 'Session, uno 'Adr, uno
'Interview. Cuatro organizativos, uno de usuario, cero literarios.
Es la sustitución que nombra la norma, en un proyecto que ya había leído la norma y tipado el campo. Se ve únicamente porque el campo estaba tipado — que es el argumento para tiparlo, y ningún consuelo.
Lo que un validador no alcanza
ontoref trae validate ontology: extremos colgantes, aristas reflexivas, tipos
de arista contra un vocabulario congelado, reciprocidad simétrica, rutas de
artefacto que resuelven. Es un gate de verdad, rompe CI, y no se cansa.
También es, estructuralmente, la prueba con la que Talisman abre:
Una definición escrita por los productores de datos y validada por los productores de datos comprueba si los productores están de acuerdo.
Original: «A definition written by data producers and validated by data producers tests if producers agree.»
validate ontology comprueba que nuestras declaraciones cohieren entre sí.
Eso es la prueba de que-los-productores-están-de-acuerdo, una capa más arriba.
Cada fichero bajo .ontoref/ lo escribió y lo califica la misma parte. El axioma
sufficient-verification ya concede la forma del asunto — la verificación es
local y parcial, y se renuncia a la completitud como base de la confianza — pero
el warrant es precisamente el eje sobre el que la verificación local es ciega.
Que las declaraciones cohieran no dice nada sobre si un segundo lector entendería
lo mismo.
Así que la afirmación honesta, y es más estrecha que la que hemos estado tentados de hacer: ontoref mueve la calificación de la opinión a la ejecución. No la mueve del productor al consumidor. Un gate que se re-ejecuta es enormemente mejor que un comité que se reunió una vez. No es un juez distinto.
Falta un lector, no un guardián
El arreglo tentador — hacer origin obligatorio, rechazar términos sin warrant —
va en la dirección equivocada, y el proyecto ya tiene escrito por qué: un warrant
obligatorio es captura por ceremonia. Acabas con el glosario entero con el
campo relleno para pasar el gate, que es peor que once defaults honestos, porque
ahora la mentira supera el tipado.
Lo que falta es lo contrario de un gate. El warrant de usuario de Z39.19 se cosecha: se lee donde los consumidores ya escriben — tickets, títulos de cuadros de mando, prompts a asistentes internos — y cada término cosechado que choca con el preferido se registra como etiqueta alternativa en vez de corregirse.
Corregir la terminología de un consumidor borra la evidencia. Registrarla preserva la evidencia.
Original: «Correcting a consumer’s terminology deletes evidence. Registering it preserves the evidence»
En ese punto concreto vamos por delante de la norma con la que convergemos:
skos:hiddenLabel mantiene buscable una forma obsoleta pero no registra por
qué se rechazó, mientras que la política de rendering de ontoref tipa el
rechazo — 'Calque, 'FalseFriend, 'Displaces, 'Regional — que es lo que
impide que alguien «arregle» un falso amigo de vuelta seis meses después.
Pero aquí todos los alias los declara el autor. Dos superficies ya tienen la
materia prima y ninguna alimenta el registro: interaction-trace, el registro
JSONL tipado de las sesiones de agente y humano, y drift-observation, el
observador de fondo sobre el árbol de la ontología. El material está en disco.
Nada lo lee hacia el vocabulario.
Dos direcciones, y nada arreglado
Este post no termina con un arreglo. Termina con dos entradas en la cartera de pendientes, que es una afirmación más débil y más cierta:
- bl-049 — cosechar warrant de usuario hacia el registro. La auditoría se
queda en Soft, nunca en Hard, por lo dicho arriba. Sería el segundo indicador
medible del polo de emergencia; la auditoría opcional
--warrantfue el primero. - bl-050 — tipar la relación de
related_terms. Hoy es unArray Stringpelado. Dos conceptos pueden coexistir, pero nada distingue «estos dos son cercanos» de «estos dos son el mismo», ni carga la no-transitividad deliberada que hace seguro encadenarskos:closeMatch. Un tipo de relación, no el vocabulario de mapeo de SKOS importado entero.
La medición es el entregable. Once y dieciocho son ya números que produce un comando, con una periodicidad, contra un fichero que cualquiera puede leer. Estarán mal de otra manera el trimestre que viene, y la diferencia con el trimestre pasado es que podremos decirlo.
Tu agente nunca fue el que se inventaba cosas. Fue el primer lector que tuviste que no podía preguntar.