• Saltar al contenido principal
  • Saltar a la barra lateral principal

Tecnologías web para servicios de información

Las cosas de las que se me ocurre hablar en clase, pero que luego nunca me da tiempo.

Usted está aquí: Inicio / Arquitectura de la información web / Protégé paso a paso: guía básica para crear ontologías

Protégé paso a paso: guía básica para crear ontologías

19 mayo, 2026 por Jose A. Senso Deja un comentario

Llevo años hablando en clase de ontologías, grafos de conocimiento y de lo importante que es modelar bien la información, y siempre acabamos en la pizarra con dibujitos raros que prometo que tienen sentido. Así que en esta entrada vamos a bajar a tierra el tema usando Protégé, que es uno de esos programas feos (por no decir antipáticos) pero bastante imprescindibles para construir ontologías en la vida real.

Esto no va de hacer un manual exhaustivo de Protégé (para eso ya está el famoso “manual de pizzas” y miles de tutoriales en YouTube), sino que te suene qué es una ontología en Protégé, qué pinta tienen las clases, las propiedades y las restricciones, y que puedas seguir un ejemplo sencillo sin morir en el intento. Con eso, para una asignatura como esta, vamos más que servidos.

Qué es Protégé y para qué lo vamos a usar

Protégé es un editor de ontologías desarrollado por la Universidad de Stanford que permite trabajar con OWL y RDF(S) sin tener que escribir todo a mano en sintaxis rara. Te da una interfaz gráfica donde vas definiendo clases, propiedades y axiomas, y luego puedes pasarle un razonador por encima para comprobar si lo que has hecho tiene sentido o has creado un pequeño monstruo lógico.

En este contexto, lo vamos a usar como laboratorio: un sitio donde experimentar con cómo pasar de “tengo un dominio en la cabeza” a “tengo una ontología que una máquina puede interpretar mínimamente bien”. Nada de construir el próximo esquema de Google, sólo un modelo decente para entender el proceso.

 

Antes de abrir Protégé: decide de qué va tu ontología

Antes de lanzarte a crear clases como si no hubiera mañana, merece la pena dedicar cinco minutos a responder tres preguntas muy simples:

  • ¿De qué va mi ontología (el dominio)?

  • ¿Para qué la quiero (qué tipo de consultas debería responder)?

  • ¿Qué no voy a modelar ahora para no complicarme la vida?

Si lo que quieres es aprender a construir el vocabulario relacionado con el dominio que te interesa, lo mejor es que leas este artículo que escribí hace años. En él cuento, de forma sencilla, los pasos que hay que dar para obtener un vocabulario especializado en una área temática concreta. Una vez que tengas los términos, solo falta vincularlos. Y eso es lo que hace una ontología.

Para esta entrada podríamos, por ejemplo, hacer una ontología mínima sobre la propia asignatura: asignaturas, estudiantes, profesorado y trabajos entregados (prefiero hacer esta primera ontología de algo sencillo, que todos conozcamos, para que resulte más sencilla su comprensión). No vamos a modelar toda la universidad, ni todos los grados, ni la vida académica completa del estudiante; sólo lo justo para hacer algunas preguntas interesantes.

 

Crear el proyecto en Protégé

Puedes trabajar con el editor de dos formas:

  • O te lo descargas de aquí y lo instalas en tu ordenador. Es decir, trabajas en modo local.
  • O trabajas en modo online conectándote a la versión WebProtégé.

Cuando abras Protégé, lo normal es crear un proyecto nuevo en OWL (OWL ontology);

  • Nuevo proyecto → OWL ontology.

  • Si estás en la versión en local te pedirá que elijas una IRI. Puedes poner, por ejemplo, algo tipo https://blogs.ugr.es/tecweb/ontologias/curso2026.

  • Guarda el archivo en una carpeta donde luego lo encuentres (si estás con la opción local).

A partir de ahí tendrás varias pestañas importantes: Classes, Object properties, Data properties, Individuals y alguna más donde viven los axiomas y las anotaciones.

 

Paso 1: sacar la lista de conceptos (clases)

Volvemos al ejemplo de la asignatura. Queremos modelar, como mínimo:

  • Asignatura

  • Estudiante

  • Profesor

  • Trabajo

Cuando hablamos de clases en una ontología, en realidad estamos hablando de categorías de cosas: conjuntos de individuos que comparten unas características mínimas. Asignatura, Estudiante o Trabajo no son “cosas concretas”, sino etiquetas para agrupar muchas instancias posibles que se parecen lo suficiente entre sí como para tratarlas igual en el modelo. Una vez tienes claras esas clases, ya puedes empezar a decir qué relaciones hay entre ellas y qué propiedades tiene cada una.

En la pestaña Classes irías creando algo como:

  • Persona

    • Estudiante

    • Profesor

  • Asignatura

  • Trabajo

Con eso ya tienes el esqueleto de tu ontología.

 

Paso 2: definir relaciones (propiedades de objeto)

Ahora necesitamos contar cómo se relacionan esas clases entre sí. Aquí entran las Object properties. En una ontología, las object properties son simplemente relaciones entre individuos: conectan una cosa con otra cosa. Si digo que Estudiante01 matriculadoEn TecWeb2026, esa relación matriculadoEn es una propiedad de objeto que une un individuo de la clase Estudiante con un individuo de la clase Asignatura. A diferencia de las propiedades de datos, que van de un individuo a un valor literal (un número, una fecha, una cadena de texto), las propiedades de objeto siempre enlazan dos instancias de clases de la ontología.

Siguiendo el ejemplo, podríamos definir cosas como:

  • imparte (dominio: Profesor, rango: Asignatura)

  • matriculadoEn (dominio: Estudiante, rango: Asignatura)

  • entrega (dominio: Estudiante, rango: Trabajo)

En la pestaña Object properties creas cada propiedad, le das nombre, y en la parte de dominio y rango indicas qué clases conecta. Sólo con esto ya se puede empezar a razonar sobre quién puede hacer qué en tu pequeño mundo.

Además de decir qué clases conecta una propiedad de objeto, en OWL podemos indicar algunas características especiales que afectan a la inferencia. Por ejemplo, una propiedad funcional es aquella de la que sólo puede haber un valor por individuo (si TecWeb2026 tieneCoordinador JoseSenso y la propiedad tieneCoordinador es funcional, no puede haber dos coordinadores distintos a la vez). Una propiedad inversa funcional impone la restricción en sentido contrario: cada valor sólo puede pertenecer a un individuo, como ocurriría con algo tipo tieneNumeroExpediente si lo modeláramos como propiedad de objeto sobre un recurso “Expediente”.

También hay propiedades transitivas (si A precede B y B precede C, entonces A precede C), simétricas (si A esHermanoDe B, entonces B esHermanoDe A) o asimétricas (si A esHijoDe B, nunca será cierto que B esHijoDe A). Para una primera ontología en Protégé suele bastar con entender bien las funcionales, inversas y, como mucho, marcar alguna propiedad como transitiva o simétrica cuando el significado lo pida claramente.

 

Paso 3: añadir datos (propiedades de datos)

Por contraste, las data properties conectan un individuo con un valor literal: Estudiante01 tieneEmail «alguien@correo.ugr.es» o Trabajo1_TecWeb tieneCalificacion 9.5 usan propiedades que no llevan a otra cosa del modelo, sino a datos básicos como cadenas de texto, números o fechas.

  • tieneNombre (dominio: Persona, rango: xsd:string)

  • tieneEmail (dominio: Persona, rango: xsd:string)

  • tieneCalificacion (dominio: Trabajo, rango: xsd:decimal)

  • tieneFechaEntrega (dominio: Trabajo, rango: xsd:dateTime)

 

Paso 4: poner un poco de disciplina (restricciones)

Hasta ahora sólo hemos dicho “existen estas cosas” y “se pueden relacionar así”. Si quieres que la ontología empiece a tener algo de carácter, necesitas restricciones mínimas:

  • Una Asignatura debería estar impartida por al menos un Profesor.

  • Un Trabajo debería estar relacionado con al menos un Estudiante.

En Protégé, esto se expresa con restricciones de cardinalidad y existenciales, del estilo “cada Asignatura tiene al menos un Profesor que la imparte”. No te preocupes por la notación formal la primera vez; céntrate en que la frase en lenguaje natural tenga sentido y luego tradúcela a la interfaz.

 

Paso 5: crear individuos y probar el modelo

Llega el momento de poner nombres propios: en la pestaña Individuals puedes crear instancias concretas de tus clases.  Una instancia es un ejemplo concreto de una clase dentro de una ontología. En vez de un ejemplo genérico, vamos a usar directamente cosas de la asignatura.

Por ejemplo:

  • Un individuo TecWeb2026 de tipo Asignatura.

  • Un individuo BlogGrupoA de tipo RecursoWeb.

  • Un individuo Trabajo1_TecWeb de tipo Trabajo.

  • Un individuo Estudiante01 de tipo Estudiante.

  • Un individuo JoseSenso de tipo Profesor.

Después puedes ir asignando propiedades entre ellos:

  • JoseSenso imparte TecWeb2026.

  • Estudiante01 matriculadoEn TecWeb2026.

  • Estudiante01 entrega Trabajo1_TecWeb.

  • Trabajo1_TecWeb usaRecurso BlogGrupoA.

  • Trabajo1_TecWeb implementaTecnologia CMS.

Aquí es donde se ve si todo lo anterior era razonable o si empiezan a salir cosas raras: si el modelo está bien montado, Protégé no debería quejarse de que un Trabajo use un RecursoWeb relacionado con la asignatura, ni de que un Estudiante entregue ese trabajo dentro de Asignatura. Si algo no encaja, el propio editor (o el razonador, en el siguiente paso) te lo hará saber.

Paso 6: encender el razonador y ver qué pasa

Una de las gracias de usar Protégé es poder lanzar un razonador (HermiT, Pellet, etc.) para ver si tu ontología es consistente.

  • Activa el razonador.

  • Deja que recalcule la jerarquía de clases.

  • Comprueba si aparecen clases “inconsistentes” o si hay individuos que acaban en sitios donde no esperabas.

Si algo está mal modelado, el razonador suele chivarse con alguna clase en rojo o avisos de que has creado algo imposible (al estilo “una asignatura que no puede tener profesor, pero a la vez debe tener al menos uno”).

 

Y ahora, ¿qué hago con esta ontología?

A estas alturas, con que entiendas el flujo completo ya me doy por satisfecho. Deberías tener claro el proceso para:

  1. Decidir el dominio y el objetivo.

  2. Definir clases.

  3. Añadir propiedades de objeto y de datos.

  4. Poner algunas restricciones sensatas.

  5. Crear individuos y probar.

  6. Pasar el razonador y arreglar lo que haga falta.dte.us+1

Si quisieras ir más allá, a partir de aquí podrías:

  • Publicar la ontología en la web.

  • Vincularla con otros vocabularios ya existentes.

  • Usarla como base para consultas SPARQL sobre datos anotados con ella.

 

Para seguir trasteando

Si después de esto Protégé no te da demasiada pereza, te recomiendo echar un ojo a algún tutorial paso a paso (hay varios en español bastante decentes) y a ejemplos clásicos como el de las pizzas, que usan justo para enseñar OWL desde cero. También es buena idea mirar catálogos de vocabularios como BARTOC para ver cómo otra gente modela dominios parecidos al tuyo antes de reinventar la rueda.

Si llegas hasta aquí sin odiar Protégé, ya has hecho buena parte del camino. A partir de este punto, todo es iterar: probar, romper la ontología, mirar qué dice el razonador y volver a empezar. Si en algún momento te ves tentado de tirar el portátil por la ventana, respira: incluso así estarás entendiendo muy bien cómo funciona esto.

 

  • Tweet

Publicado en: Arquitectura de la información web, La Web Semántica Etiquetado como: editores, ontologías, owl, protege

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.

Barra lateral principal

Buscar

Categorías

Etiquetas

administrador del sitio analítica web Apache arquitectura web bibliometría CMS congresos diseño pensado en el usuario Drupal gestión de proyectos Google http linked data microdatos microformatos MySQL OAI-PMH OJS ontologías opds open access Open Data open publication distribution system open source posicionamiento RDF redes sociales repositorios revistas electrónicas robots.txt rss SEO SEO semántico servidores web sindicación de contenidos software TFG trabajo colaborativo uniform server uniserver URI URL VIAF webmaster web semántica

Archivos

Estadísticas

  • 799

Copyright © 2026 · Magazine Pro en Genesis Framework · WordPress · Acceder

En BlogsUGR utilizamos cookies propias con finalidad técnica y para personalizar su experiencia de usuario. Algunos blogs de BlogsUGR pueden utilizar cookies de terceros para fines analíticos.

 

Puede aprender más sobre qué cookies utilizamos o desactivarlas en los .

Tecnologías web para servicios de información
Powered by  GDPR Cookie Compliance
Resumen de privacidad

BlogsUGR utiliza cookies propias para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a BlogsUGR, haces algún comentario o seleccionas el idioma de un blog. Rechazar las cookies propias podría suponer la imposibilidad de acceder como usuario a BlogsUGR.

Algunos blogs de BlogsUGR utilizan cookies de terceros con fines analíticos para recabar estadísticas sobre la actividad del usuario en dicho blog y la actividad general del  mismo.

Cookies estrictamente necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Cookies de terceros

Algunos blogs de BlogsUGR utilizan Google Analytics para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

Dejar esta cookie activa nos permite mejorar nuestra web.

También algunos blogs de BlogsUGR utilizan cookies de twitter.com que se utilizan para la visualización de esta red social en el blog.

Política de cookies

La presente política de cookies tiene por finalidad informarle de manera clara y precisa sobre las cookies que se utilizan en los blogs del servicio BlogsUGR de la Universidad de Granada.

¿Qué son las cookies?

Una cookie es un pequeño fragmento de texto que los sitios web que visita envían al navegador y que permite que el sitio web recuerde información sobre su visita, como su idioma preferido y otras opciones, con el fin de facilitar su próxima visita y hacer que el sitio le resulte más útil. Las cookies desempeñan un papel muy importante y contribuyen a tener una mejor experiencia de navegación para el usuario.

Tipos de cookies

Según quién sea la entidad que gestione el dominio desde dónde se envían las cookies y se traten los datos que se obtengan, se pueden distinguir dos tipos: cookies propias y cookies de terceros.

Existe también una segunda clasificación según el plazo de tiempo que permanecen almacenadas en el navegador del cliente, pudiendo tratarse de cookies de sesión o cookies persistentes.

Por último, existe otra clasificación con cinco tipos de cookies según la finalidad para la que se traten los datos obtenidos: cookies técnicas, cookies de personalización, cookies de análisis, cookies publicitarias y cookies de publicidad comportamental.

Para más información a este respecto puede consultar la Guía sobre el uso de las cookies de la Agencia Española de Protección de Datos.

Cookies utilizadas en la web

A continuación se identifican las cookies que están siendo utilizadas en este portal así como su tipología y función:

Todos los blogs de BlogsUGR utilizan cookies técnicas y propias, necesarias para la personalización de su experiencia de usuario y para el mantenimiento de sesión.

Algunos blogs de BlogsUGR pueden utilizar cookies de Twitter para personalizar la visualización de dicha red social en el blog.

Algunos blogs de BlogsUGR pueden utilizar Google Analytics, un servicio de analítica web desarrollada por Google, que permite la medición y análisis de la navegación en las páginas web. En su navegador podrá observar cookies de este servicio. Según la tipología anterior se trata de cookies  de terceros, de sesión y de análisis.

A través de esta analítica web se obtiene información relativa al número de usuarios que acceden a la web, el número de páginas vistas, la frecuencia y repetición de las visitas, su duración, el navegador utilizado, el operador que presta el servicio, el idioma, el terminal que utiliza y la ciudad a la que está asignada su dirección IP. Información que posibilita un mejor y más apropiado servicio por parte de este portal.

Para garantizar el anonimato, Google convertirá su información en anónima truncando la dirección IP antes de almacenarla, de forma que Google Analytics no se usa para localizar o recabar información personal identificable de los visitantes del sitio. Google solo podrá enviar la información recabada por Google Analytics a terceros cuanto esté legalmente obligado a ello. Con arreglo a las condiciones de prestación del servicio de Google Analytics, Google no asociará su dirección IP a ningún otro dato conservado por Google.