Se habla de Web semántica o web 3.0 para denominar un nuevo escenario web en el cual ya no solo el usuario pueda leer y escribir en la web ( web 2.0 ) sino extraer la dimensión de profundidad; la dimensión del significado de lo que contiene. Dejémoslo ahí, ya que de intentar especificar más en detalle el término nos perderíamos en una discusión eterna de ambigüedades.
A lo largo de la historia los grandes filósofos se han preocupado de la semántica de las cosas a través de la dialéctica sin lograr ningún resultado claro y mucho menos definitivo. Sócrates dedicó prácticamente todos sus esfuerzos a ello, más aun, según su más importante discípulo, negaba la capacidad semántica del lenguaje humano por lo que jamás dejó texto alguno escrito. Yo estoy de acuerdo, aunque en mi caso algún texto escrito dejaré a la posteridad del olvido. Efectivamente, cada interlocutor va a entender diferentes cosas de lo que aquí puedo estar escribiendo, y eso que considero que tengo una gran virtud literaria. Obviamente no todo el mundo opinará así; más aun, mucha gente, más de lo que la humanidad se merece, ni siquiera logre entender la mitad de los cosas que escribo. Por tanto, si la semántica es propia del receptor, más que del emisor ... ¿ a qué "flipao" se le ocurriría pretender que una computadora, por muy "super" que sea, logre interpretar ni un 10% de este texto ?
Se están haciendo grandes esfuerzos por imponer a las páginas web un lenguaje de metadatos estructurado que faciliten a los buscadores extraer el significado de lo que contienen. Leyendo a los impulsores de estos estándares; como XML, RDF, OML etc ... tengo la sensación de que cuanta más doctrina se aplica a la ingeniería más se nubla nuestra capacidad creativa y por tanto se pierde la verdadera esencia de ésta: el ingenio.
Estos estándares tienen un buen fundamento, sin duda, pero carecen de una de las claves más importantes que ha hecho posible que internet llegue a miles de millones de usuarios: la facilidad de uso. No me imagino a mi padre con sus 77 años, que ahora ya se atreve a dejar comentarios en blogs y foros, teniendo que definir un esquema XML, OML o de cualquier tipo estructurado por cada cosa que escribe por ahí. Tampoco me imagino a ninguno de mis amigos haciendo eso, ni siquiera a mí. Esto ya significa que el 99,9% de los contenidos web no tendrán profundidad, estarán fuera de la indebidamente denominada web semántica.
Otros caminos de investigación, seguramente menos dotados económicamente, van en dirección totalmente opuesta, pero desde el criterio lógico con un sentido de la orientación mucho más claro. Desde mi punto de vista, y desde la máxima de retroalimentación de la inteligencia artificial, lo lógico es que en cada búsqueda se cree o perfeccione el esquema de lo que se espera encontrar. Eso proporciona el dinamismo adecuado para el auto-aprendizaje del motor de búsqueda. Cada pequeña búsqueda, cada pequeña interacción con el usuario, se convierte en más inteligencia artificial; del mismo modo que ocurre en nuestro cerebro cuando interactuamos a través de los sentidos con el medio que nos rodea. Aunque en nuestro caso tenemos un componente de desarrollo exponencial ya que además de interactuar con el medio, lo hacemos con nuestros semejantes.
Mantengo una estrecha relación con este reto tecnológico; podría decir casi que estoy casado con él. Una empresa cercana a mí extrae información de la web focalizándola hacia "hitos" muy simples. Por ahora su sistema informático se basa en un motor de búsqueda inteligente semi-artesanal pero muy eficaz por el componente humano. Llevan años trabajando con diversas universidades de gran prestigio con el fin de lograr un procesador semántico de contenidos web; pero persiguen una meta inalcanzable ya que la semántica de un texto difiere en función del condicionante de lo que se espera encontrar: R<=f(Q)|k; donde R es el resultado esperado, Q la "query" o consulta lanzada y k el condicionante de la interpretación esperada. Por tanto, para una misma búsqueda podríamos encontrar un indeterminado número de respuestas si no acotamos el resultado al condicionante k.
El procedimiento correcto sería preguntar algo que condicione la interpretación, y para cada interpretación hay que definir un algoritmo "k". Quizá con un sistema experto, capaz de auto-modelarse, una herramienta tipo CASE pero más potente, podríamos lograr que el propio motor de búsqueda genere los algoritmos "k". Si conseguimos esto, lo de la web semántica será un pequeño aperitivo en el camino hacia el logro de un auténtico oráculo. Esto a día de hoy me parece intentar pretender llegar a la luna con una catapulta. Hay otros pasos que dar antes, como por ejemplo aquello de lo que hablé en Neuromática; y otras muchas cosas importantes que están más a nuestro alcance. (*1)
Para cualquier programador con un mínimo intelectual resulta bastante sencillo realizar un procesador de interpretación de condicionantes ( un algoritmo k ) Si la pregunta que lanzo al buscador, por ejemplo, es del tipo: "Yogur Desnatado"|diferentes sabores; el buscador realizaría dos cosas diferentes. 1) buscar el intérprete o algoritmo k que se corresponda con "diferentes sabores" y 2) tratar mediante dicho algoritmo todos los textos de la web que estén relacionados directa o indirectamente con "yogur desnatado". Ambas tareas son relativamente fáciles para un motor de búsqueda o de indexación como puede ser Google. Pero este motor de búsqueda no se limitaría a buscar sino a procesar todas esas búsquedas. A nadie se le ocurriría la majadería de indexar todas las posibles respuestas en función del intérprete por tanto tenemos que procesar bajo demanda todos los resultados de la primera tarea. Irremediablemente cada cliente de este buscador tendría que ser una aplicación de procesamiento distribuido; de lo contrarío la computadora del motor de procesamiento de algoritmos k reventaría ( insisto, por muy "super" que sea ).
Para simplificar la escalabilidad y la mejora del motor distribuido, cada usuario podría aportar sus propios algoritmos k. Si quiero hacer una búsqueda semántica puedo escribir un pequeño script en un lenguaje de programación simple y adaptado en lo posible al lenguaje humano, que me proporcione la interpretación k que quiero lograr. Dicho script estará asociado a una serie de palabras clave que determinen su usabilidad. Por ejemplo "diferentes sabores". Este sencillo script buscará en un texto web palabras relacionadas con el sabor y determinará la asociación de esas palabras con las claves de búsqueda de la primera parte, en el caso del ejemplo "yogur desnatado". Esta determinación nunca será exacta del todo, a esto se refería Sócrates, pero por lo menos se acercará bastante a lo que se pretende.
En definitiva; lo que necesita la web3.0 ( ya no me gusta el término web semántica ) son precisamente 3 cosas:
1) Un nuevo buscador capaz de hacer estas dos tareas de búsqueda: buscar las palabras objeto y buscar el algoritmo de interpretación,
2) un explorador web capaz de procesar de forma distribuida los algoritmos k,
y
3) un lenguaje de programación ( o interprete ) "humanizado" para definir los algoritmos "k".
He profundizado más en el análisis de estos tres puntos, y a día de hoy llevo un desarrollo técnico bastante extenso del punto 2 y 3. No obstante, no es el objeto de este artículo, así que todo aquel osado colaborador que quiera aportar su granito de arena, ya sabe cómo ponerse en contacto conmigo ;^)
1*: Espero poder dedicarle unas líneas a esto en otra ocasión porque creo que sufrimos un mal endémico del que no somos conscientes. La ciencia y la tecnología humana se van a estancar si no se pone un poco de orden a las metas que queremos lograr. Debe haber un camino progresivo que actualmente no está nada claro. La mayor parte del I+D+i está fundamentado en obsesiones económicas que no van a ver ningún fruto si no se resuelven problemas más inmediatos que lamentablemente, a primera vista, no tienen ningún atractivo para los inversores.