Quiero mi portal de Anime: de las ontologías a Linked Open Data

Luego que mis compañeros, amigos y familiares me suministrarán una lista bastante completa de series y películas para mitigar el encierro de los últimos días, les confieso que no fue suficiente. Al final terminé por decantarme por un género narrativo que se concede más libertades comparados con los formatos de cine y televisión, el anime. Comencé por las recomendaciones seguras y clásicas de los compañeros: Death Note, Bleach, Shingeki No Kyojin, Psycho Pass, Kimetsu No Yaiba, One Punch Man, y un largo etc.

Con la lista preparada busqué las series de anime en los portales que me arrojaba google o los recomendados (de quién más si no de los compañeros), luego de utilizarlos al final quedé con la sensación de que les faltaba algo. De esta forma empiezo el check list con las funcionalidades que quiero para mi portal de anime, las comparto a continuación.

 

  1. Cómo consumidor de anime requiero adicionar una reseña del anime para dar mis opiniones.

 

Aunque parezca un requerimiento de poco peso, la reseña que deseo para el portal difiere a la acción de escribir en una caja de texto lo que pienso del mismo (bueno si, es el objetivo básico, pero quiero ir más allá). Para expresar mejor la idea, haré una reseña del anime Elfen Lied, de él me gustó su opening (cortina musical que se utiliza por lo general al inicio del anime –por favor perdonen el pleonasmo del spanglish—) no tanto como su trama.

 

“La primera vez que vi su opening me impactó la alusión que hace a las obras del pintor Gustav Klimt, entre las cuales logré apreciar (selección completamente subjetiva): árbol de la vida, el beso, lágrimas de oro y retrato de Adele Bloch. Ni hablar de la música que evoca la espiritualidad religiosa, en especial la cristiana.  Su tema me hizo recordar a los cantos gregorianos, la lagrimosa de Mozart y el Agnus Dei de Barber, debe ser porque todos son cantados en latín al igual que el opening, pero con la sonoridad del siglo XXI.  Para dejar claro el punto, suena a semana santa de hace años”

 

Regresando a el requerimiento, el objetivo principal es darle algún sentido a toda la información descrita en la reseña. Lo normal para brindar más detalle se podría crear enlaces a otras páginas que hablen, por ejemplo, de Gustav Klimt y de sus cuadros, cantos gregorianos, Agnus Dei, Mozart, Barber, etc. Pero quiero ir más allá de crear enlaces a páginas, me gustaría que el concepto de pintor estuviera relacionado con Klimt y que por medio de ese vínculo pudiera conocer a otros pintores con un estilo similar, incluso relacionar el anime con las obras musicales con lo que me permita buscar animes que utilicen música del mismo tipo.

 

  1. Como consumidor de anime requiero vincular el portal de anime con otros del mismo tipo para ampliar las búsquedas de títulos en todos los portales vinculados.

 

Qué interesante sería poder vincular portales y crear una especie de mesh donde se puede buscar información de anime de forma global y especializada. Para ir más allá que las búsquedas de google, los portales deben poseer un vocabulario común que permita “hablar” y “procesar” entre ellos (máquinas) las solicitudes de información.

Si en el portal se buscara el anime de Dragon Ball, me interesa que retorne todas las coincidencias de los portales vinculados con el nombre de: Son Goku, Kakarotto, Akira Toriyama, etc.

 

  1. Como consumidor de anime requiero hacer búsquedas semánticas para ser más asertivos en los resultados.

 

Y por qué no, imaginen que el mesh de portales de anime pueda inferir nueva información basadas en reglas definidas de clasificación de contenido como pueden ser la categoría, año, autor, etc.

Me imagino haciendo la siguiente pregunta a la red de portales de anime:

 

“Búscame los animes cuya trama se base en sociedades distópicas basadas en la obra 1984 de George Orwell y similares a Psyco Pass”

 

Como resultado de la consulta saldrán las series de anime que cumplan con el criterio, no importa en qué portal se encuentre alojada.

Creo saber lo que piensa amigo(a) lector(a): quiere meter inteligencia artificial y procesamiento de lenguaje natural para un simple portal de anime, recuerda que estoy aburrido, encerrado y con tiempo.

Luego de plantear los requerimientos del portal se ha definido el QUÉ del asunto, procedemos a plantear el CÓMO. Un enfoque tradicional para desarrollar un portal de este tipo vendría dado por un modelo relacional que me permita una clasificación inicial de autores, tipo, año, etc. Se implementaría su almacenamiento sobre un motor de bases de datos como MySQL, Postgresql, etc. Un sistema de despliegue de páginas web (ya sea enviados por un servidor web por solicitudes de páginas HTML o a través de SPA -Single Page Application-).

Para dar solución a los requerimientos planteados este tipo de desarrollo no funcionaría, así que buscamos otras alternativas que nos acerquen a nuestros objetivos.

Después de pasar unas buenas horas buscando formas para el desarrollo del portal, encuentro -la que creo- la solución para cumplir con los requerimientos, la Web Semántica viene en mi ayuda, pero entender su paradigma y su implementación es otra cosa y ocupo más horas de consulta y laboratorios basados en prueba y error en esta tarea. El primer concepto que hay que tener claro al intentar utilizar la Web Semántica es el de ontologías. Lo primero que encontré sobre ontologías está relacionado con la filosofía y la metafísica, les comparto una de las tantas definiciones que hallé.

 

“La Ontología es una parte o rama de la filosofía que estudia la naturaleza del ser, la existencia y la realidad, tratando de determinar las categorías fundamentales y las relaciones del --ser en cuanto ser“

 Tomado de: https://www.significados.com/ontologia/

 

Por más que trato de recordar las clases de Filosofía de la secundaria, lo único que viene a la mente es la imagen de Homero Simpson cuando tiene el monito tocando los platillos en su cabeza, literal. Afortunadamente el concepto de ontología en el contexto de teoría de la información hace referencia a dominios de conocimientos, que es más fácil de comprender.

 

“Una Ontología es una definición formal de tipos, propiedades, y relaciones entre entidades que realmente o fundamentalmente existen para un dominio de discurso en particular. Es una aplicación práctica de la ontología filosófica, con una taxonomía.”

 Tomado de: https://es.wikipedia.org/wiki/Ontolog%C3%ADa_(informática)

 

Vamos por partes, en la definición de ontología podemos extraer el concepto más importante que es “definición formal de tipos, propiedades, y relaciones entre entidades que realmente o fundamentalmente existen para un dominio de discurso en particular”, dicho de otra forma, necesito un(os) experto(s) en el dominio del discurso (anime es nuestro discurso) que me ayuden a describir por medio de propiedades y relaciones en qué consiste el anime.  Otro tema importante en la definición de ontología son las taxonomías, que no es más que clasificar la información (recuerden las clases de biología: especies, géneros, phylum subphylum, etc).

Llegados a este punto quiero hacer énfasis en el concepto de clasificación, término que pasa desapercibido en el día a día (menos para los que están en el área de análisis de datos, ahora se deben estar frotando las manos). Desde niños nos han enseñado a clasificar (colores, formas, etc.), nuestros antepasados por medio de la clasificación nos han proporcionado una  mejor forma de vida al escoger las mejores variedades de plantas que sean resistentes a plagas, produzcan más cosecha, entre otras muchas características deseables. La clasificación es inherente a los humanos, es uno de los mecanismos que nos permite avanzar como especie, lo hacemos de forma inconsciente ya sea de forma racional o por escala de valores sociales y éticos (un ejemplo típico es cuando nuestras madres nos decían: no me gusta que te juntes con fulanito). Antaño los que tenían más asertividad al momento de la clasificación eran los viejos de la tribu (de las decisiones que tomaran dependía la supervivencia), en parte por el cúmulo de experiencias vividas, los dichos “no le enseñe a su papá hacer hijos, más sabe el diablo por viejo que por diablo” no son gratuitos.

A todo ese conocimiento adquirido basado en la experiencia se le llama heurística (qué salgan a relucir esas incontables horas viendo anime), y es la que poseen mis expertos en anime. Ellos están al mismo nivel de un artesano ebanista que sabe escoger la madera para hacer sus muebles o el enólogo que con ver el color del vino y su fragancia sabe si es bueno o malo, sin siquiera probarlo. Ahora el reto que tenemos es cómo representar (instrumentalizar) ese conocimiento (que en cierta forma es subjetivo y su valides solo se logra por grupo de expertos). El problema no es trivial, cómo hacer para que el conocimiento de los expertos me genere respuestas a las preguntas del portal. Para colocar en contexto el problema, si tuvieras valores como los gustos de algún número de personas basados en su categoría, etc. Utilizaría árboles de decisiones (basados en sí y no) que me permiten por juicio de expertos clasificar los casos a analizar (no confundir con los árboles basados en la teoría de la entropía de la información de Shannon, que se construyen con modelos matemáticos).

Retomando el problema, encuentro que las ontologías ya tienen su “forma” para representar el conocimiento de los expertos. Se utiliza el lenguaje de Ontologías para la Web (Web Ontology Language -OWL) y se describe a través de etiquetas similares a XML.

A la consulta sobre la creación de ontologías con OWL siempre se remiten al ejemplo de clasificación de vinos. En la figura 1 se muestra la clasificación de la ontología en el programa Protege, el cual es un editor de ontologías. En la figura 2 se ilustra el mapa de conceptos, restricción y dependencias de la ontología. Las ontologías utilizan elementos de la teoría de conjunto como son: dominio, rango, conjuntos disyuntos, propiedades de conjuntos inversos, transitividad y simetría, conjunto universal, restricciones de existencia, y muchos otros conceptos más. Al final del artículo comparto un extracto del código fuente de la ontología.

Abrumado con la construcción de la ontología de anime y pensando si vale la pena tanto esfuerzo por un portal, me pregunto si ya alguién se la habrá ocurrido la misma idea y por fortuna para mí, la respuesta es sí. Encuentro en Internet una ontología que describe al dominio de conocimiento del anime (al final del documento les dejo el enlace).

De esta primera parte me queda un sinsabor con La web semántica, una tecnología que promete darle un orden al caos de información que existe en Internet y a través de ella brindar de semántica a nuestras páginas Web, pero a la ves su falta de simplicidad al momento de implementar la vuelve difícil de masificar.

Dejemos el artículo en este punto (ya está bastante extenso), en otro momento les comentaré como solucioné la construcción de la ontología del anime, su vinculación con otros dominios del conocimiento y su implementación en linked open data.

Apreciado lector(a) si has llegado hasta aquí en enhorabuena, eres un completo geek o desarrollador.

 

 Fig 1. Estructura de la ontología de vino desplegado en Protégé.

Imagen Ontología

 

Fig 2. Ontología de vino (tomada de: https://sites.google.com/site/semanticsimulations2/visioowl)

 

Imagen Ontología en protégé

 

Ontología de anime: https://www.kaggle.com/rtatman/between-our-worlds-an-anime-ontology

Extracto del código de la ontología de vino.

 

Imagen Extracto Ontología Vino

 

Luis Bertel
Equipo de Ingeniería de Software Me hace feliz: Leer
Mi color favorito es::
Azul tungsteno

Mi comida favorita
Kebab
Ver más artículos

Escríbenos


Para nosotros es muy importante contar con tu opinión, estamos dispuestos a escuchar y resolver todas tus solicitudes. Este espacio nos permite buscar acciones de mejora para continuar prestando nuestros servicios satisfactoriamente.

0 (Max. 20 Characters)
0 (Max. 400 Characters)
Enviar