Resumen
- RFC 3151 normalizaba una cadena pública y convertía espacios, separadores y caracteres reservados literales en una forma determinista
urn:publicid:; acertar la conversión no validaba dueño ni recurso. - La equivalencia era estrictamente léxica: tras normalizar, dos URN solo eran equivalentes si eran idénticas. El mismo nombre aún podía producir mapas, bytes y conductas distintas.
- La resolución seguía varios caminos — catálogo, ruta local, conocimiento integrado o caché —, por lo que selección, mapeo, recuperación, análisis y resultado necesitaban recibos propios.
El problema era llevar un nombre, no localizarlo
Una entidad externa XML tenía identificador de sistema e identificador público. El primero era una URI por definición y solía apuntar a una ubicación local. El segundo era una cadena heredada de SGML, usada como nombre más global y persistente.
Cuando XSLT, XML Schema y otras especificaciones empezaron a exigir URI, esos nombres no cabían. RFC 3151 no reemplazó catálogos instalados ni fingió que una ubicación local era estable. Creó el espacio formal publicid para expresar la cadena con sintaxis URN.
La forma URI podía parecer una promoción de autoridad. No lo era. Un dueño no registrado seguía sin registro; una política débil seguía débil. La unicidad y la persistencia se heredaban del identificador original.
El documento era Informational y negaba ser un estándar de Internet. Sus ejemplos eran pedagógicos, no identificadores cuya existencia estuviera garantizada. Una transformación de ejemplo probaba la regla, no un despliegue ni una respuesta de red.
Normalizar hacía comparable y perdía historia
Antes de transcribir, una secuencia de espacios, tabuladores, retornos o saltos de línea se convertía en un solo espacio. Los blancos de los extremos desaparecían. El RFC daba por cumplido ese paso.
Dos capturas con sangrías diferentes podían terminar en la misma cadena. Eso era útil para comparar y destructivo para reconstruir la fuente. Guardar solo la URN borraba qué blancos habían existido.
El espacio normalizado pasaba a +. Como las secuencias ya estaban colapsadas, no debían aparecer plus consecutivos generados por blancos. Un plus literal tomaba %2B. Visualmente cercanos, registraban hechos diferentes.
Un recibo serio conserva fuente, codificación, cadena normalizada, versión de reglas y salida exacta. La base de datos que conserva solo el resultado puede comparar, pero no explicar el proceso.
Los delimitadores preservaban forma sin certificarla
Los Formal Public Identifiers componían propietario, clase, descripción, idioma o secuencia y, a veces, versión. Solían separar campos con // y usar :: dentro de componentes.
RFC 3151 hizo // → : y :: → ;. Así conservaba una estructura visible sin exigir que el traductor entendiera toda la gramática SGML. Reconocer un FPI correcto quedaba fuera de alcance.
Por eso, un : de salida demostraba una pareja de barras en la cadena normalizada, no que el propietario estuviera registrado ni que los campos fueran válidos.
Los literales necesitaban rutas separadas: : fuera de :: era %3A; / fuera de //, %2F; ;, %3B. Apóstrofo, interrogación, almohadilla y porcentaje también se escapaban. El orden de reemplazo era parte del algoritmo.
Una prueba de ida y vuelta puede certificar que no se perdió un carácter normalizado. No puede certificar asignación, resolución ni contenido.
Igualdad de texto no era igualdad de recurso
La regla fue deliberadamente pequeña: dos URN eran equivalentes si y solo si eran léxicamente idénticas. No había plegado de mayúsculas, alias de propietarios ni interpretación semántica de campos.
Un catálogo local podía dirigir dos nombres a un archivo, sin convertirlos en el mismo nombre del espacio. Y una URN idéntica podía atravesar dos catálogos o cachés y obtener archivos distintos.
El RFC permitía más de un identificador público para un recurso. Por tanto, ni identidad de nombre implicaba identidad de bytes ni diversidad de nombre implicaba diversidad de recurso. Nombre, regla elegida, destino, contenido y comportamiento se observaban por separado.
RFC 3986, RFC 8141 y otros textos posteriores cuentan la evolución de URI y URN. No cambian retrospectivamente el resultado de un catálogo ni amplían la equivalencia de 3151.
La debilidad del dueño cruzaba el puente
Los FPI con propietario registrado debían ser únicos. Los informales y los de dueño no registrado podían serlo o no, y no existía una política general de cumplimiento.
La persistencia también venía de la fuente. El dueño registrado ofrecía una expectativa mejor, no disponibilidad garantizada. El esquema IDN basado en dominio heredaba las debilidades de persistencia de los dominios.
Añadir urn:publicid: no mantenía el catálogo, no renovaba un dominio y no fijaba para siempre una representación. Para una cosa sin identificador público, primero había que crear el nombre según su propio régimen; después se aplicaba la conversión.
La procedencia debía guardar dueño, política, registro, momento de asignación y cadena, no deducir autoridad de la apariencia.
Resolver seguía siendo una decisión local
El RFC enumeró catálogos OASIS, componentes convertidos en rutas locales, conjuntos conocidos por el programa y mecanismos URI como cachés. No diseñó un servicio mundial único.
El orden de catálogos, las reglas de reescritura, la base, el montaje de archivos y la edad de caché podían elegir destinos diferentes. Un match probaba que una regla ganó. Faltaba probar que el destino se abrió y qué devolvió.
Luego venían los bytes y su hash, el parser y sus políticas, los diagnósticos y el efecto en la aplicación. Un booleano resolved convertía toda esa cadena en una afirmación imposible de auditar.
No se especificó validación. La ausencia de nuevas consideraciones de seguridad no autenticó propietario, catálogo, caché ni contenido. Un codificador correcto podía conducir con precisión a una regla obsoleta o maliciosa.
La ejecución tenía derecho a contradecir la sintaxis
Una URN perfecta puede encontrar un archivo local viejo. La regla coincide, la apertura funciona y el parser acepta; aun así, la aplicación usa una versión equivocada. En otra máquina, la misma URN puede seleccionar una DTD distinta.
La especificación manda sobre la transcripción. La ejecución responde quién resolvió, qué regla ganó, qué bytes llegaron y qué ocurrió. Esas respuestas no invalidan el algoritmo, pero impiden atribuirle un resultado que nunca prometió.
La virtud histórica fue una frontera pequeña. El nombre público entró en la arquitectura URI sin convertirse en ubicación. Transportar identidad fue un paso; resolverla siguió siendo otro sistema.
Fuentes
- Texto de RFC 3151
- Registro de RFC 3151
- RFC 3151 en HTML
- Historia de RFC 3151
- RFC 2141 — sintaxis URN
- RFC 2396 — sintaxis URI
- RFC 2483 — servicios de resolución
- RFC 3406 — definición de espacios URN
- RFC 3986 — sintaxis URI
- RFC 8141 — URN
- XML 1.0, segunda edición
- OASIS XML Catalogs 1.0
- Espacios URN formales de IANA
- Primacía del código en ejecución
- Sobre las capas de realidad
- Especificación inicial mínima
Informe para miembros
Contexto ampliado del perfil
Inicia sesión con el nivel de membresía adecuado para desbloquear el informe completo y las notas de las fuentes.
Solo para Strategic Circle
Strategic Circle
Abierto a todos los lectores. Desbloquea informes de perfil después de unirte e iniciar sesión.
Únete a Strategic CircleSolo para Leadership Alliance
Leadership Alliance
Para propietarios y directivos cualificados de activos de propiedad intelectual; inicia sesión para desbloquear los informes de la alianza.
Unirse a Leadership Alliance
