Ontología — how-to aprobado
El banco de ontología es banco de ontología (Knowledge Explorer), pin 4a886d97 bajo infra/ontology-catalog/. En pantalla no se pinta la marca: «Explorador de Ontología». En esta guía interna sí se nombra, porque hay que operarlo.
Esto no sustituye Explorar y no es el manual del producto aguas arriba. Es cómo SiS usa el banco: cargar el contrato (sis-core + formas), validar SHACL, consultar SPARQL. El resto de workspaces se nombra y se deja.
1. Abrir
Dos caminos, el mismo sitio:
https://onto.identia.doohttps://onto.client.example- Botón Ontología en la Consola (izquierda de Explorar) — atajo. Visible solo con
dev:write.
Pestaña nueva → proveedor de identidad (OIDC) → el correo tiene que estar en correos-autorizados.txt (generado de SOCIETY_ADMIN_EMAILS). Hoy: dandrade@client.example. Ampliar: una línea en ese fichero y containers compose up -d oauth2-proxy.
Si el botón sale apagado: falta SOCIETY_ontology-catalog_PUBLIC_URL en el .env y en el compose de la caja. El title al pasar el ratón dice el motivo.
El explorador no vive bajo /ontology-catalog/app/. Su SPA llama /api/… en absoluto. Servirlo bajo una ruta de la Consola da pestaña en blanco con HTTP 200.
Development local: 127.0.0.1:8000 + almacén de grafo del catálogo :6379. orquestador de contenedoresfile con Python 3.14 falla gensim; pin 3.12. SPA no manda X-API-Key → ontology-catalog_ALLOW_ANONYMOUS=true en localhost. En cliente: false (falla cerrada).
2. Qué hay que cargar
Los artefactos viven en el repo SiS, no dentro de la imagen del explorer:
| Fichero | Oficio |
|---|---|
ontology/sis-core.jsonld | Ontología del Society Graph. Namespace https://w3id.org/sis/ns#. ~45 clases, ~50 propiedades de objeto. |
ontology/sis-shapes.ttl | Formas SHACL (doalmacén de objetos, rango, cardinalidad, vocabulario cerrado). |
En el explorer: Ontology hub → cargar / importar esos dos ficheros (JSON-LD y Turtle). No esperes que el deploy los deje ya dentro: el grafo de cliente se desplegó vacío a propósito.
Trampa al parsear sis-core.jsonld. Un Graph de rdflib ve 25 tripletas y un solo sujeto (la cabecera): los nodos viven en un grafo con nombre (@id + @graph). Sin aviso. Con Dataset son cientos de tripletas. Validar contra lo primero da un verde perfecto sobre nada. tools/check_shacl.py ya usa el camino correcto; el workbench, si importa «plano», puede no.
3. Tour mínimo (lo que importa a SiS)
| Workspace | Para qué en SiS |
|---|---|
| Ontology hub | Cargar sis-core / formas; ver clases y propiedades del contrato |
| SHACL (pestaña del hub) | Validar el grafo contra sis-shapes.ttl |
| SPARQL (Analyze) | Consultar el catálogo ya materializado |
| Graph (Explore) | Ver el grafo del catálogo — no es Explorar de la Consola |
El resto existe y se nombra para no buscarlo: Vocabulary, Reasoning, Decisions, Import/Merge, Registry, Entity resolution, Lineage, KG overview. No clones el skill/manual de banco de ontología; ábrelos el día que haga falta.
Validar SHACL — inference=none
rdfs:range no es una restricción: es una regla de entailment. Todo objeto de la propiedad se convierte en la clase del rango. Con inference=rdfs, cualquier sh:class sobre esa propiedad es tautológica.
Medido con una violación inyectada:
inference=rdfs → 0 violaciones
inference=none → 1 violación
El entailment materializa el tipo como triple real: ni sh:node que exija rdf:type explícito lo distingue. Las formas de SiS se validan con inference=none. Está escrito en sis-shapes.ttl y en tools/check_shacl.py (ci-check).
Si el workbench ofrece un interruptor de inferencia RDFS, déjalo apagado para estas formas.
4. Qué no hace
- No es Explorar. El grafo vivo se recalcula de SQL; esto mira un catálogo ya materializado.
- No sustituye el Society Graph.
- No hay sync automático SiS → catálogo. [P]
- No hay tenancy dentro del motor: un almacén, un grafo. Mezclar los dos clientes colisiona identificadores (22 medidas). Aislamiento = una instalación por cliente.
- MCP hacia los agentes no está en la imagen
agents-host. - almacén de grafo del catálogo: en 2026-08-19 los datos no sobrevivieron a un reinicio. Hasta confirmar el volumen, es motor, no almacén.
- Cabecera de
docs/ontology-catalog-EVALUACION.md(«estudio, no adopción») está desfasada: está en los dos clientes. El how-to es este, no ese estudio.
5. Borde y deploy
sis-interna es internal: true: orquestador de contenedores acepta ports: y no los aplica. Por eso ontology-catalog-rele (socat) publica 127.0.0.1:8010.
proxy de entrada → oauth2-proxy (quién) → rele → explorer. La clave se inyecta detrás. Apps proveedor de identidad (OIDC) distintas: onto-identia / onto-legaldesign.
Parches en infra/ontology-catalog/patches/. No forkear.
Despliegue del servicio: Desplegar ontología. Runbook 27 entero.