Saltar al contenido principal

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:

  1. https://onto.identia.do o https://onto.client.example
  2. 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-Keyontology-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:

FicheroOficio
ontology/sis-core.jsonldOntología del Society Graph. Namespace https://w3id.org/sis/ns#. ~45 clases, ~50 propiedades de objeto.
ontology/sis-shapes.ttlFormas 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)

WorkspacePara qué en SiS
Ontology hubCargar 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.