Arquitectura de datos y trazabilidad en Philologica: por qué no todo grafo es GraphRAG
Por Manuel Enrique Morales Santiago
Cuando una herramienta de inteligencia artificial revisa un manuscrito académico, la pregunta importante no es únicamente si encuentra un fragmento relevante. También hay que saber qué relación existe entre ese fragmento y la afirmación que se está evaluando.
Durante el desarrollo de Philologica, esta diferencia llevó a una decisión de arquitectura: separar deliberadamente la recuperación de información por similitud semántica de la conservación de procedencia y relaciones de evidencia.
Philologica no debe describirse como una implementación convencional de GraphRAG. La plataforma combina dos motores con responsabilidades distintas:
- un almacén vectorial para recuperar contexto por similitud;
- un Academic Evidence Graph para estructurar y recorrer relaciones de procedencia.
El problema: recuperar contexto no equivale a demostrar procedencia
Un sistema RAG convencional recupera fragmentos próximos a la consulta, pero la revisión académica también necesita saber qué evidencia respalda una afirmación, si una cita resuelve a una fuente y qué decisión tomó el revisor.
Recuperar un fragmento relevante no equivale a reconstruir la relación que hace relevante a ese fragmento.
1. Ingesta y fragmentación documental
El módulo server/services/DocIndexer.js divide la documentación Markdown en fragmentos semánticos utilizando encabezados y límites de tamaño. Cada fragmento conserva ruta, idioma, encabezado y texto indexado.
2. Indexación y recuperación por similitud
server/services/VectorStore.js calcula la similitud coseno entre consultas y embeddings almacenados.
- Se genera el embedding.
- Se recuperan candidatos mediante
vectorStore.search. - Se filtran por idioma y se limita el contexto.
- Se construye un prompt.
- El wrapper genera la respuesta.
El almacén vectorial es un índice semántico, no una fuente canónica de verdad.
3. Academic Evidence Graph: representar lo que el vector no conserva
Philologica define un Academic Evidence Graph para representar proyectos, manuscritos, revisiones, secciones, afirmaciones, citas, fuentes, extractos, hallazgos, argumentos, terminología y decisiones humanas.
Sus relaciones incluyen CITES, RESOLVES_TO, CONTAINS_EVIDENCE, SUPPORTED_BY, PARTIALLY_SUPPORTED_BY, CONTRADICTED_BY, PART_OF_ARGUMENT, USES_TERM y REVIEWED_BY.
La documentación especifica una representación relacional en MySQL mediante tablas de nodos y aristas; no introduce una base de datos de grafos independiente.
4. Recorrido de procedencia y auditoría
graphReader.js permite seguir la cadena: Afirmación → Cita → Fuente → Extracto de evidencia → Hallazgo → Decisión humana.
- ¿Tiene la afirmación una cita asociada?
- ¿La cita se puede resolver a una fuente?
- ¿Existe un extracto vinculado?
- ¿La relación es completa, parcial, contradictoria o incierta?
- ¿Se ha registrado una decisión humana?
El recorrido observado es determinista y acotado a nodos y aristas registrados. No se ha confirmado un pipeline GraphRAG de comunidades, resúmenes jerárquicos ni búsquedas global/local.
5. Procedencia antes que autoridad automática
Una relación registrada no demuestra automáticamente que una afirmación sea verdadera. El modelo diferencia relaciones respaldadas, parcialmente respaldadas, contradichas, soporte no concluyente y revisión humana pendiente.
- Lo que el sistema ha detectado.
- Lo que ha podido relacionar.
- Lo que una persona ha validado.
6. Gobernanza vertical y control del dato
- las consultas se cualifican por organización, usuario y proyecto;
- el recorrido se limita al proyecto;
- los extractos son acotados;
- se contemplan hashes;
- las decisiones humanas quedan registradas.
Philologica diseña la capa de evidencia para mantener aislamiento por organización y proyecto, conservar procedencia y limitar el contenido persistido. La soberanía efectiva del dato debe verificarse contra la configuración concreta del entorno desplegado.
7. Graphify pertenece a otra capa
Graphify analiza la arquitectura del código mediante dependencias AST, símbolos, funciones, tipos y componentes. Es un grafo de arquitectura de software, mientras que el Academic Evidence Graph es un grafo de investigación y procedencia.
8. Qué es y qué no es Philologica en el commit auditado
| Componente | Función confirmada | No debe confundirse con |
|---|---|---|
DocIndexer.js |
Fragmentación y embeddings | Extracción de un grafo GraphRAG |
VectorStore.js |
Recuperación por similitud | Fuente canónica de evidencia |
| Academic Evidence Graph | Nodos, aristas y procedencia | Índice vectorial |
graphReader.js |
Trazabilidad de evidencias | Búsqueda global por comunidades |
| Graphify | Grafo AST del código | Grafo académico |
| Wrappers de modelos | Embeddings y generación | Orquestador GraphRAG completo |
La auditoría no encontró una implementación explícita llamada GraphRAG ni etapas identificables propias del pipeline GraphRAG convencional.
Conclusión: la trazabilidad es una capacidad, no un efecto de marketing
Philologica separa recuperación semántica y trazabilidad relacional. La búsqueda vectorial ayuda a encontrar contexto; el Academic Evidence Graph permite demostrar procedencia y revisar la relación entre una afirmación y su evidencia.
No es GraphRAG en el sentido técnico estricto del pipeline de comunidades y consultas local/global. Es una arquitectura separada, deliberada y orientada a la trazabilidad.
