El futuro de la Web

Anuncio
EL FUTURO DE LA WEB
XML, RDF/RDFS, ontologías y la Web
semántica
Miguel Ángel Abián
La imagen representa los pulsos emitidos por el pulsar CP1919. Apareció en la portada del primer disco del grupo Joy Division, una estrella que dejó de girar demasiado
pronto, hace 25 años.
El futuro de la Web
EL FUTURO DE LA WEB
XML, RDF/RDFS, ontologías y la Web semántica
Resumen: El propósito de este trabajo es explicar desde un punto de vista práctico las
limitaciones de la Web actual (por ejemplo, la baja precisión de los motores de búsqueda
basados en palabras clave, como Google y Yahoo) y por qué necesitamos la Web semántica
(una Web “inteligente”). El término Web semántica corresponde a una visión en que tanto los
ordenadores –software– como las personas podrán encontrar, leer, comprender y usar los
datos de la World Wide Web. La Web semántica, basada en crear datos procesables por las
máquinas, permitirá el razonamiento automático, la gestión del conocimiento, la mejora del
comercio electrónico y la búsqueda de información de manera eficaz y precisa. Estas
características se explicarán en el tutorial, especialmente aplicadas al comercio electrónico.
En este trabajo se describen las principales tecnologías de la Web semántica: XML, XML
Schema, RDF, RDF Schema (RDFS) y ontologías. XML proporciona una sintaxis superficial
para documentos estructurados, pero no impone restricciones semánticas sobre el significado
de los documentos. XML Schema es un lenguaje para restringir la estructura de los
documentos XML. RDF es un modelo de datos para objetos (“recursos”) y las relaciones entre
ellos; proporciona una semántica (“significado”) sencilla para este modelo de datos, y estos
modelos de datos se pueden representar en una sintaxis de XML. RDFS es un lenguaje
universal que deja a los usuarios describir los recursos con sus propios vocabularios; RDFS es
necesario porque RDF no define la semántica de ningún dominio particular. Las ontologías son
especificaciones formales de cómo representar los objetos, conceptos y otras entidades que se
asume que existen en un área de interés, así como las relaciones que mantienen entre sí.
Abstract: The goal of this work is to explain the limitations of the current Web (e.g., the low
precision of keyword-based search engines, such as Google and Yahoo) from a practical
approach, and why we need the Semantic Web (an “intelligent” Web). The term Semantic Web
stands for a vision in which computers –software– as well as people can find, read,
comprehend, and make use of data over the World Wide Web. The Semantic Web, based on
creating machine-processable data, will allow automatic reasoning, knowledge management, ecommerce improvement, and information search in an accurate, efficient and less timeconsuming way. These issues will be explained in this tutorial, specially applied to e-commerce.
In this work the key Semantic Web technologies are described: XML, XML Schema, RDF,
RDFS and ontologies. XML provides a surface syntax for structured documents but imposes no
semantic constraints on the meaning of these documents. XML Schema is a language for
restricting the structure of XML documents. RDF is a data model for objects (“resources”) and
relations between them; it provides a simple semantics (“meaning”) for this data model, and
these data models can be represented in XML syntax. RDFS is a universal language that lets
users describe resources using their own vocabularies; RDFS is necessary because RDF does
not define the semantics of any particular domain. An ontology is an explicit formal specification
of how to represent the objects, concepts, and other entities that are assumed to exist in some
area of interest and the relationships that hold among them.
Keywords: e-commerce, e-business, b2c, b2b, Semantic Web, agents, intelligent agents,
shopbots, XML, RDF, RDFS, ontologies, metadata, machine-processable data, web services,
EDI, conventional EDI approach, VAN, VAN networks, OWL, DAML+OIL, knowledge,
knowledge base, knowledge representation, interoperability, syntactic interoperability, semantic
interoperability, Java, JENA, Protégé, SMORE, VKB, Enron, 11-S
© Miguel Ángel Abián, 2005
Página 2 de 103
http://www.javahispano.org
ÍNDICE
1. Introducción
Página 4
2. La Web actual. Glosario
Página 7
3. Problemas de la Web actual
Página 13
3.1 Introducción
3.2 Dificultad para encontrar información
3.3 Dificultad para implantar comercio electrónico B2B
4. La Web semántica
Página 13
Página 17
Página 21
Página 30
5. XML: un primer paso hacia la Web semántica
Página 49
6. RDF y RDFS: el pegamento semántico
Página 59
6.1 RDF y RDFS
Página 59
6.2 Aplicaciones de RDF y RDFS
Página 71
6.3 Nadie es perfecto: desventajas de RDFS
Página 82
Página 84
7. Ontologías
7.1 Introducción
7.2 Lenguajes de representación de ontologías y
herramientas
7.3 Aplicaciones de las ontologías
Página 84
Página 88
8. Algunas reflexiones sobre la Web semántica
Página 99
Página 102
Nota biográfica del autor
Página 103
© Miguel Ángel Abián, 2005
Página 3 de 103
El futuro de la Web
EL FUTURO DE LA WEB
XML, RDF/RDFS, ontologías y la Web semántica
Fecha de creación: 15.09.2005
Miguel Ángel Abián
mabian ARROBA aidima PUNTO es
Copyright (c) 2005, Miguel Ángel Abián. Este documento puede ser distribuido sólo bajo los
términos y condiciones de la licencia de Documentación de javaHispano v1.0 o posterior (la
última versión se encuentra en http://www.javahispano.org/licencias/).
Me agradaban, aunque no era consciente de ello, las demostraciones típicas de la mentalidad
matemática. Cuando fui mayor, encontré a otros que opinaban como yo en este asunto. Mi
amigo G. H. Hardy gozaba de este placer con una intensidad muy grande. Una vez me dijo que,
si pudiera encontrar una prueba de que yo me iba a morir antes de cinco minutos, lamentaría
naturalmente perderme, pero que ese pesar sería completamente sobrepasado por el placer que
le produciría la prueba. Estuve enteramente de acuerdo con él y no me ofendí en absoluto.
Bertrand Russell, Portraits from Memory and other Essays (1956)
Propongo considerar la pregunta: “¿Pueden pensar las máquinas?”. Ésta debería empezar con las
definiciones del significado de los términos “maquina” y “pensar”.
Alan Turing, Computing Machinery and Intelligence (1950)
1. Introducción
Este trabajo de divulgación no trata sobre Java, si bien esta palabra se mencionará
varias veces e incluso aparecerá algo de código escrito en Java. Trata del presente y, en
mayor medida, del futuro de la Web. La manera como se desarrolle la Web influirá en
nuestra forma de usarla (consultas, compras...), así que conviene saber hacia adónde
podría dirigirse la Web. En el caso de los programadores, aún resulta más acuciante
conocer las tecnologías que posiblemente dominarán la Web de aquí a unos años.
Actualmente, se admite que la Web del futuro será “inteligente”. Es decir, que estará
llena de información que las máquinas podrán “comprender” y a partir de la cual
extraerán conclusiones de interés para los usuarios. La necesidad de una Web
“inteligente” aparece en cuanto consideramos que la Web actual está formada por unas
11.500 millones de páginas estáticas (no creadas en respuesta a las acciones de los
usuarios). Los buscadores web más usados cubren bastante bien el total de la red:
Google cubre 8.800 millones de páginas; Yahoo, 8.000 millones, y MSN, 7.100 millones.
Ahora bien, ninguno de ellos ofrece búsquedas “inteligentes”, adaptadas a las
intenciones de los usuarios. Los procedimientos que usan para valorar la relevancia de
los resultados devueltos obedecen a criterios estadísticos, no a los del usuario. Por
ejemplo, un buscador web puede encontrar miles de páginas que contengan las palabras
© Miguel Ángel Abián, 2005
Página 4 de 103
http://www.javahispano.org
“García”, “México D. F” y “Venezuela”; pero es incapaz de aceptar una petición del tipo
“Busco a una persona apellidada García que viven en la calle Venezuela de la ciudad de
México D. F.”.
La inteligencia de la Web actual brilla por su ausencia cuando se intentan
búsquedas del estilo “¿Qué generales soviéticos defendieron la ciudad de Stalingrado
durante el cerco nazi?”, “¿Cómo se llamaba el sacerdote español que encabezó el
levantamiento popular contra las tropas napoleónicas?”, “¿Cómo se llamaba el
conquistador asiático de cuyo caballo se decía que no crecía la hierba por donde
pisaba?”, “¿Qué vicealmirante tuerto, manco y aquejado de depresión pronunció la frase
Inglaterra espera que cada hombre cumpla con su deber?” o “¿Qué valores del Ibex-35
reparten dividendo la próxima semana?”. Como veremos más adelante, la “estupidez” de
la Web no sólo exaspera a los usuarios (“Quien espera, desespera”), sino que tiene
consecuencias económicas muy relevantes para los usuarios y para las empresas que
desean realizar negocios electrónicos.
En este trabajo se explicarán las tecnologías que parecen más prometedoras para
lograr una Web mucho más “inteligente” (la Web semántica) que la actual: XML,
RDF/RDFS y ontologías. Todas ellas se enfocarán desde un punto de vista práctico y
autocontenido. Más que dedicarme a explicarlas exhaustivamente, las abordaré desde
un punto de vista divulgativo, más centrado en explicar para qué sirven y por qué son
como son que en dar una lista exacta de sus propiedades. En el caso de XML, como es
una tecnología muy popular, he dedicado bastante más espacio a explicar sus ventajas y
el enorme impacto que ha tenido sobre los sistemas de información y los negocios
electrónicos que a explicarlo técnicamente. En concreto, he hecho bastante hincapié
sobre las ventajas que XML ofrece sobre el enfoque EDI convencional (que dominó el
comercio electrónico en los años 70 y 80).
Una sugerencia: no deje que la abundancia de siglas o que palabras raras como
“ontologías” le desconcierten o le tiran para atrás. No se necesita ser un especialista o un
fanático de la informática para leer este trabajo, ni siquiera para escribirlo. Si está
familiarizado con la Web, con Java, con la orientación a objetos (OO) y ha leído algo
sobre XML y sobre comercio electrónico, este tutorial es idóneo para usted. Si desconoce
la OO o sus conocimientos de ella son muy superficiales, en los tutoriales
a) http://www.javahispano.org/tutorials.item.action?id=25
b) http://www.javahispano.org/tutorials.item.action?id=33
puede encontrar información sobre ella y sobre los lenguajes orientado a objetos (Java,
C++, Smalltalk, C#). Hay, eso sí, otro requisito que facilitará la lectura de este trabajo:
curiosidad por el futuro.
Quizás alguien se quede un tanto desconcertado porque vinculo –al final del
apartado 4– el futuro uso masivo de las tecnologías de la Web semántica con decisiones
estratégico-militares estadounidenses que proceden de los sucesos del 11 de septiembre
de 2001. No hay para tanto: muchas tecnologías que usamos hoy día (microondas,
rádares, láser, Internet) proceden de proyectos militares; hasta el punto de que la historia
de las telecomunicaciones es la historia de la Segunda Guerra Mundial y la Guerra Fría.
La misma mano que ha arrojado bombas nucleares, napalm y bombas recubiertas de
uranio empobrecido ha creado y difundido algunas de las tecnologías que usamos hoy.
Me costaría bien poco ponerme la toga de la Santa Imparcialidad Científica y contar los
avances científicos o técnicos sin referirme a las circunstancias sociales, históricas o
políticas que los han hecho posibles o los han acelerado; pero cada vez soy más
© Miguel Ángel Abián, 2005
Página 5 de 103
El futuro de la Web
consciente de que obrar así en nombre de la objetividad es traicionarla completamente.
Imaginemos que un extraterrestre desconocedor de la cultura del homo sapiens llegara a
la Tierra y que, paseando por alguna calle de un país hispanohablante, se preguntara de
dónde habían venido los átomos de una escultura que representa a un escritor manco y
vestido a la usanza del siglo XVI. Un astrofísico podría explicar al alienígena que esos
átomos se originaron en el centro de una estrella moribunda e incluso podría escribir las
ecuaciones matemáticas de las trayectorias que recorrieron en el espacio-tiempo hasta
alcanzar su posición actual. Una persona más avispada podría explicarle que los
humanos de un país levantan estatuas en homenaje a aquellos compatriotas suyos que
han destacado en el arte o en la ciencia, a modo de recordatorio para las futuras
generaciones. Ambas explicaciones son ciertas. La primera parece más objetiva que la
segunda, pero ¿cuál de las dos sería más útil para el extraterrestre?
En la página 47 incluyo un ejemplo de lo indigesta que resultó la mezcla de las
nuevas tecnologías con la rapiña humana. Cabe suponer que situaciones similares
sucederán también con la Web semántica. ¿Qué empresa tendrá el dudoso honor de ser
la Enron de la nueva Web?
Con El futuro de la Web no busco engañar a ningún lector o lectora: nadie puede
predecir el curso de los avances científicos o tecnológicos, y es posible –si bien
improbable– que la Web que usemos de aquí a diez o quince años se base en
tecnologías distintas a las mencionadas antes. Dicho de otro modo, alguna de estas
tecnologías podría tener la vida del pollo: veintiocho días y al degollo. De lo que no me
cabe ninguna duda es de que la Web del mañana no será como piensan las gentes
bienpensantes. En realidad, el futuro jamás ha sido como esperaban los bienpensantes.
Los físicos de finales del siglo XIX pensaban que la Física era una disciplina
acabada y completa, como la termodinámica clásica; faltaba solucionar dos o tres
detalles, sí, pero nada más. Afortunadamente (al menos para los físicos), el estudio de
los espectros atómicos y el experimento de Michelson-Morley acabaron con esa fúnebre
actitud y modificaron radicalmente la vida de los habitantes del siglo XX. Nada hacía
predecir que ese siglo sería el de las bombas nucleares, el láser, la biología molecular, la
bomba de cobalto, las sondas espaciales, los semiconductores, los computadores; pero
así fue. Al final, la disciplina prácticamente acabada se reveló incompleta y hasta
errónea. Acaso suceda algo similar con la idea de que ya tenemos las tecnologías que
permitirán, dentro de poco, dotar de inteligencia a la Web y expresar los datos de una
manera que sea comprensible para las máquinas y que permita hacer deducciones
automáticas a partir de ellos. Incluso admitiendo esa posibilidad, considero interesante
conocer las tecnologías que ahora parecen más prometedoras para que las máquinas
nos liberen de muchas tareas tediosas. Si de aquí a diez años las ontologías y RDF son
vías muertas, tan muertas como el átomo de Rutherford o la teoría del éter, espero que
no me juzgue demasiado severamente: he tratado de mirar lo más lejos que he podido.
© Miguel Ángel Abián, 2005
Página 6 de 103
http://www.javahispano.org
2. La Web actual. Glosario
La característica más llamativa de la Web es su estructura hipertextual: la World
Wide Web contiene una gigantesca cantidad de documentos de hipertexto (llamados
páginas web). Los documentos de hipertexto contienen enlaces que conectan con otros
documentos; un enlace puede ser una palabra, una frase o una imagen. A través de los
enlaces de un documento de hipertexto se puede acceder a otras secciones del
documento y a otros documentos, imágenes, vídeos, sonidos, etc. En general, se dice
que la red permite acceder a recursos web. Los recursos web son dispositivos físicos
(impresoras, ordenadores, agendas electrónicas, etc.) o estructuras de datos de software
accesibles (páginas web, imágenes, vídeos, directorios, etc.). Frente a los documentos
convencionales, cuya lectura es lineal, los documentos de hipertexto permiten una
lectura no lineal, en la que el lector puede saltar a información relacionada con el
documento que lee.
El término “hipertexto” fue introducido por Ted Nelson en 1965; con él se refería a
una colección de documentos (“nodos”) con referencias cruzadas o enlaces que,
mediante la ayuda de programas navegadores, permiten al lector moverse sencillamente
de un documento a otro. Nelson presentó así el nuevo concepto: “Déjeme introducir la
palabra hipertexto para designar un cuerpo de material escrito o gráfico interconectado
de una manera que podría no ser conveniente presentar o representar en papel”.
La Web, al igual que Internet, basa su funcionamiento en la pila o familia de
protocolos TCP/IP (encontrará una rápida descripción de estos protocolos en la primera
parte de Java y las redes, http://www.javahispano.org/tutorials.item.action?id=45). Dentro
de esta pila de protocolos, se destacan los protocolos de la capa de aplicación,
destinados a permitir la comunicación directa entre aplicaciones. Concretamente, el
protocolo de aplicación HTTP (HyperText Transfer Protocol, protocolo de transferencia
de hipertexto) permite acceder a documentos de hipertexto. Tales documentos se
escriben en HTML (HyperText Markup Language, lenguaje de etiquetado de hipertexto),
un lenguaje que especifica la forma como se muestran y los enlaces entre ellos. Por ello,
los términos página web y página HTML son intercambiables.
Cuando la Web comenzó a popularizarse, las páginas web se escribían a mano y
eran estáticas. Ahora hay muchísimas herramientas para la generación automática de
páginas web y abundan las páginas web activas (es decir, creadas como respuesta a
acciones y peticiones de los usuarios). Por ejemplo, cuando se hace una compra
electrónica, la página web que muestra los detalles de la transacción no existía antes de
la compra: se genera basándose en la información introducida por el comprador. Lo
mismo sucede cuando se consulta una base de datos remota mediante una interfaz web:
las páginas web con los resultados no existían antes de la consulta.
El uso actual de la Web se puede resumir en este texto de un grupo de trabajo del
W3C (W3C XML ProtocolWorking Group):
Hoy, el principal uso de la Web es para acceso interactivo a documentos y
aplicaciones. En casi todos los casos, este acceso es hecho por usuarios
humanos, que típicamente trabajan con navegadores web, reproductores de
audio u otros sistemas interactivos en el lado del usuario. La Web puede crecer
significativamente en poder y alcance si se extiende para permitir
comunicaciones entre aplicaciones, de un programa a otro.
© Miguel Ángel Abián, 2005
Página 7 de 103
El futuro de la Web
u
Aplicaciones de la World Wide Web
HTML
Capa de aplicación: HTTP
Capa de aplicación: FTP, SMTP, POP3...
Capa de transporte
Capa de red
Capa de enlace
Pila de
protocolos
TCP/IP
Miguel Ángel Abián, julio 2005
Figura 1. Estructura interna de la Web
Antes de continuar, conviene definir unos cuantos conceptos que aparecerán en
este documento:
Agente. Es una aplicación capaz de cumplir sus objetivos mediante
acciones autónomas y flexibles. Frente a los objetos o los
componentes, los agentes se caracterizan por su autonomía y
flexibilidad.
Agente inteligente. Una aplicación que automatiza la búsqueda de
información en la Web. Por ejemplo, hay agentes inteligentes que
recopilan para el usuario todas las nuevas noticias que sobre un
asunto determinado se van publicando en la Web, procedentes de
agencias de prensa, de periódicos, de chats, etc. Véase también la
definición de softbot.
Analizador sintáctico (parser). Programa que analiza, con respecto
a una gramática, la estructura (sintaxis) de un documento (en inglés, el
proceso se conoce como parsing). Una gramática (o sintaxis: son
términos equivalentes) es un conjunto de reglas formales que
especifican la estructura de los documentos aceptables o correctos.
Por ejemplo, una DTD (Document Type Definition, definición de tipos
de documentos) define una gramática para los documentos XML.
Mediante un analizador sintáctico de XML, se puede averiguar si un
© Miguel Ángel Abián, 2005
Página 8 de 103
http://www.javahispano.org
cierto documento XML cumple la gramática definida en la DTD; esto
es, si es válido para esa gramática. Aunque aquí sólo interesan los
analizadores de lenguajes de programación, existen también
analizadores de lenguajes naturales, capaces de averiguar si una
frase como “El gata pardo bien sentada en el sillón está” es o no
correcta.
API (Application Program Interface, interfaz de programación de
aplicaciones). Conjunto de subrutinas, protocolos y herramientas
para construir aplicaciones de software. Las buenas API proporcionan
a los programadores todos los bloques que necesitan para construir
aplicaciones de cierto tipo.
Base de conocimiento (knowledge base). Hechos (“Luis es un
empleado”), relaciones (“Los empleados tienen jefes”) y
procedimientos que forman el conocimiento sobre un dominio,
expresados en una forma que las máquinas puedan procesar. Si bien
el término se usará en el sentido anterior, también se emplea base de
conocimiento para denotar el conjunto de todo el conocimiento
explícito de una organización, que puede estar formado por manuales,
presentaciones, tutoriales, reglas internas, etc.
Cadena de aprovisionamiento (supply chain). Secuencia de
actividades que las organizaciones desarrollan para producir y
entregar un producto o servicio. En una empresa manufacturera, la
cadena de aprovisionamiento comienza con el procesado de las
materias primas, continúa con la fabricación de piezas y termina con el
ensamblado de las piezas y la distribución del producto final.
Comercio electrónico. Intercambio y procesado de la información por
medios electrónicos, con el fin de permitir transacciones económicas.
Comercio electrónico B2B
electrónico entre empresas.
(business-to-business).
Comercio
Comercio electrónico B2C (business-to-customer). Comercio
electrónico entre una empresa y los consumidores finales.
Dominio. Parte del mundo real que resulta de interés. Es sinónimo de
“área de interés”.
Integración (de sistemas). El proceso de juntar sistemas, dispositivos
y programas en una misma arquitectura, de modo que puedan
compartir e intercambiar datos.
Interoperabilidad. Según el proyecto IDEAS, es la capacidad de un
sistema o un producto para trabajar con otros sistemas o productos sin
especial esfuerzo por parte del cliente. Según la norma ISO 16100, es
la capacidad para compartir e intercambiar información, mediante una
sintaxis y una semántica comunes, para conseguir una relación
funcional específica mediante el uso de una interfaz común. Según el
IEEE (Institute of Electrical and Electronics Engineers, Instituto de
Ingenieros Eléctricos y Electrónicos) es “la capacidad de dos o más
sistemas o componentes para intercambiar información y usar la
información que ha sido intercambiada” ([IEEE Standard Computer
Dictionary: A Compilation of IEEE Standard Computer
Glossaries,1990]). Según Lisa L. Brownsword et al. ([Current
© Miguel Ángel Abián, 2005
Página 9 de 103
El futuro de la Web
Perspectives on Interoperability, marzo de 2004]), es la capacidad
de una colección de entidades comunicativas de a) compartir
información especificada; y b) de operar sobre esa información de
acuerdo con una semántica operacional establecida.
Modelo de negocio. Representación del negocio de una o más
empresas, definida según la terminología de los expertos del dominio
y sin vinculación a ningún sistema específico ni a ninguna aplicación
de software. El principal objetivo de un modelo de negocio es
representar formalmente el negocio mediante sus objetos de negocio y
las relaciones entre ellos. Por lo general, un modelo de negocio
consiste en una lista de objetos y de casos de uso.
Modelado empresarial. El proceso de construir modelos que
representen a las empresas (modelos de negocio, de datos, de
procesos, de toma de decisiones, etc.).
Negocio electrónico. Compra y venta de bienes y servicios mediante
Internet. Suele usarse como sinónimo de “comercio electrónico”, si
bien algunas empresas piensan que “comercio electrónico” es un
término más amplio que “negocio electrónico”.
Objeto de negocio. Una representación de cualquier elemento activo
en el dominio del negocio de una o más empresas. Como mínimo,
debe incluir estos características: nombre, definición, atributos,
comportamiento, relaciones y restricciones.
Portal. Sitio web que es o intenta ser un punto de partida para la
gente que entra en la Web. Generalmente, ofrecen servicios como
motores de búsqueda, noticias, charla o plática (chat), correo
electrónico, acceso a contenidos personalizados, etc. Hay portales
“generales”, que ofrecen información para el público en general. Otros
son empresariales, y permiten que las empresas, bien de un mismo
sector o de varios, se pongan en contacto, accedan a la información
que les interesa y que puedan intercambiar información e incluso
hacer negocios electrónicos.
Representación del conocimiento. Se refiere al modo en que el
conocimiento humano se describe formalmente en una máquina. El
propósito de cualquier representación del conocimiento es capturar
toda la información relevante de un dominio y codificarla de manera
que las máquinas puedan acceder a ella. Para representar el
conocimiento se emplean lenguajes formales (PROLOG, LISP, OIL,
DAML, RDF/RDFS, etc.) que expresan cosas e ideas mediante
sentencias que pueden ser procesadas por máquinas. Estos lenguajes
de representación del conocimiento tienen una sintaxis y una
semántica. La sintaxis especifica qué configuraciones de símbolos
son sentencias válidas (en español, por ejemplo, la sentencia *La
grande sol no es válida). La semántica determina a qué hechos se
refieren las sentencias.
Semántica. En informática, este término se usa para diferenciar entre
el significado de una sentencia y su formato. Supongamos que
empleamos en Java una sentencia así: suma = sumando1 –
sumando2. La sintaxis de la expresión es correcta, pero su semántica
© Miguel Ángel Abián, 2005
Página 10 de 103
http://www.javahispano.org
no (salvo que se defina la suma como una resta de números). Los
constructores en Java y en C++, por ejemplo, tienen semánticas
distintas. En C++, los compiladores llaman internamente a los
constructores de las clases; en Java, en cambio, las llamadas a los
constructores deben ser explícitamente escritas por el programador.
Como sabe cualquier desarrollador, un programa puede compilar
correctamente (su sintaxis es correcta), pero eso no entraña que
funcione bien: lo que hace (semántica) puede diferir de lo deseado.
Servicio web. Aplicación modular que puede ser llamada a través de
Internet y que usa HTTP y estándares abiertos de XML (como SOAP
[Simple Object Access Protocol, protocolo simple de acceso a
objetos], WSDL [Web Services Description Language, lenguaje de
descripción de los servicios web] y UDDI [Universal Description,
Discovery, and Integration; integración, descubrimiento y descripción
universales]). Mediante los servicios web, las aplicaciones escritas en
distintos lenguajes de programación y ejecutadas en distintas
plataformas pueden intercambiar datos o, por mejor decir, interoperar.
Las aplicaciones que acceden a un servicio web (es decir, los
consumidores del servicio) no necesitan conocer cómo se ha
implementado éste. Los servicios web pueden combinarse para
ejecutar operaciones complejas.
Sistema de información (SI). Colección organizada de hardware y
software que una organización usa para sus tareas diarias (pagos,
pedidos, gestión de nóminas, etc.). Los SI almacenan información, la
procesan y permiten acceder a ella. Normalmente, los SI
empresariales incluyen bases de datos relacionales.
Sofbot (software robot, robot de software). Agente inteligente que
usa herramientas de software y servicios basados en el
comportamiento de una persona. Especialmente populares son los
shopbots (shopping robots, robots de compra o agentes autónomos de
compra). Unos son pasivos (a partir de la información introducida por
el usuario, buscan información sobre productos); otros son activos
(tratan de anticiparse a los deseos de los usuarios ofreciendo
propuestas de compra). Los shopbots más populares (p. ej., The
Bargain Finder [El buscador de gangas]) permiten comparar los
precios que las tiendas virtuales asignan a un producto. Los shopbots
más avanzados buscan al mejor precio el producto buscado por el
usuario y lo compran automáticamente.
Software ERP (Enterprise Resource Planning, planificación de los
recursos empresariales). Software usado por las empresas para
planear y gestionar las funciones comerciales de su negocio:
planificación de la producción, seguimiento de los pedidos,
contabilidad, gestión de inventarios, recursos humanos, atención a los
clientes. Las siglas ERP suelen usarse como abreviatura de software
ERP o sistema ERP. Las empresas más conocidas que ofrecen
sistemas ERP son SAP, PeopleSoft, Oracle y BAAN. Todo ERP es un
SI.
W3C (World Wide Web Consortium). Consorcio fundado en 1994
para desarrollar estándares comunes para la Web. Inicialmente, el
© Miguel Ángel Abián, 2005
Página 11 de 103
El futuro de la Web
W3C estuvo vinculado al CERN (Centre Européen pour la Recherche
Nucléaire, Centro Europeo de Investigación Nuclear), donde se originó
la Web, y tuvo el apoyo de DARPA (Defense Advanced Research
Projects Agency, Agencia de Proyectos de Investigación Avanzada
para la Defensa) y de la Comisión Europea.
ACTORES DE UN SERVICIO WEB
Descripción
del servicio
WSDL + UDDI
Registro del
servicio
WSDL + UDDI
Servicio
Consumidor del
servicio
Proveedor del
Servicio
Descripción
del servicio
SOAP (Simple Object Access Protocol)
Establece cómo dos objetos en diferentes procesos pueden comunicarse mediante el
intercambio de datos XML.
UDDI (Universal Description, Discovery, and Integration)
Se encarga de listar los servicios web y de que estén disponibles para los consumidores
de servicios.
WSDL (Web Services Description Language)
Permite que los servicios web describan cómo deben ser llamados por otras aplicaciones.
Miguel Ángel Abián, agosto 2005
Figura 2. Estructura interna de los servicios web
© Miguel Ángel Abián, 2005
Página 12 de 103
http://www.javahispano.org
3. Problemas de la Web actual
3.1 Introducción
Si bien la Web actual constituye un avance tecnológico impresionante, adolece de
dos carencias cruciales. En primer lugar, no incorpora mecanismos que permitan el
procesado automático de la información; esto es, que hagan que la información
pueda ser procesada por máquinas. Por ejemplo, un programa buscador de información
que acceda a la página web de un profesor universitario desconoce que en el mundo hay
personas que trabajan en unas instituciones llamadas universidades y que imparten
clases a las que asisten unas personas llamadas alumnos, a quienes el profesor asigna
calificaciones según sus conocimientos de la materia impartida en las clases. Ignorando
toda esta información, el programa sólo puede realizar un procesado muy primitivo de la
información presentada en la página del profesor, basado en la búsqueda de palabras
clave en el texto de la página. Así, actualmente es impensable hacer consultas del estilo
“Obtenga la lista de los antiguos alumnos a los que el catedrático Julio Pellicer impartió la
asignatura de Termodinámica en la Universidad de Valencia y que ahora son profesores
en universidades españolas”. Ningún programa, por supuestamente inteligente que sea,
puede contestar a dicha consulta basándose en las páginas web actuales, pues éstas no
almacenan información sobre relaciones del tipo profesor-Universidad, alumno-profesor,
alumno-es-ahora-profesor, etc.
En segundo lugar, la Web actual no incluye mecanismos para la
interoperabilidad completa de los sistemas de información (SI) basados en la Web.
Dicho en otras palabras: no facilita la creación de una comprensión común y compartida
de un dominio, de forma que ésta pueda ser usada por personas, organizaciones y
máquinas. Para que haya una comprensión común de un dominio, los sistemas de
información de las partes interesadas en él deben cumplir tres tipos de interoperabilidad:
•
Interoperabilidad técnica. Se refiere a la capacidad de los SI para
intercambiar señales. Esta interoperabilidad exige una conexión física
(cable, fibra óptica, ondas electromagnéticas) entre los sistemas y un
conjunto de protocolos de comunicaciones (como la pila TCP/IP). La
interoperabilidad técnica constituye el primer nivel para lograr la
interoperabilidad: si dos ordenadores no pueden intercambiar señales, no
puede existir interoperabilidad alguna. Así como al principio los
ordenadores de distintos fabricantes no podían comunicarse, actualmente
lo raro es lo contrario. La existencia de Internet ha sido posible gracias a
la interoperabilidad técnica entre sistemas informáticos muy distintos.
Que dos SI interoperen técnicamente no significa que puedan
intercambiar datos, pues para intercambiar datos se precisa que los SI
usen un mismo formato para el intercambio de datos.
En lo que sigue no me referiré a la interoperabilidad técnica, pues la Web
goza de esta característica. De hecho, es uno de los motivos de su
popularidad. Siempre que me refiera a interoperabilidad de la Web o
de las aplicaciones basadas en ella, me estaré refiriendo a la
interoperabilidad sintáctica o a la semántica, o a ambas.
•
Interoperabilidad sintáctica. Se refiere a la capacidad de los SI para
leer datos procedentes de otros SI y obtener una representación que
puedan usar (objetos, p. ej.). En definitiva, significa que, en todos los SI
involucrados, tanto la codificación de los datos como los protocolos de
© Miguel Ángel Abián, 2005
Página 13 de 103
El futuro de la Web
acceso son compatibles. Desde luego, esto no implica que los SI
procesen los datos de una manera consistente con su significado. La
interoperabilidad sintáctica es alta cuando se encuentran disponibles
analizadores sintácticos (parsers) y APIs para manipular los datos
intercambiados, de manera que las organizaciones pueden usarlos para
incorporar esos datos a sus SI. El grado más alto de interoperabilidad
sintáctica se alcanza cuando dos SI cualesquiera intercambian datos
cualesquiera sin ningún acuerdo previo y de manera completamente
automática.
El primer paso para conseguir la interoperabilidad sintáctica consiste en
compartir algún tipo de formato de representación de datos (p. ej.,
almacenar los datos en forma de cadenas de texto dentro de un archivo
de texto) para los datos enviados.
El segundo paso pasa por que los datos intercambiados compartan,
además de un mismo formato, una misma estructura. Por ejemplo, si el SI
de una empresa almacena cada factura en un archivo de texto y reserva
una línea del archivo para el campo “Código Postal”, habrá problemas de
interoperabilidad sintáctica cuando trabaje con otro cuyas facturas se
almacenen en archivos de texto donde no haya una línea para el código
postal (porque éste se incluye en el campo “Dirección”, p. ej.). Para que el
primer SI pudiese trabajar con facturas del segundo, debería procesar las
facturas de éste de modo que a) se extrajera del campo “Dirección” el
código postal; b) se almacenara el código postal en el campo “Código
Postal”. Desde luego, la solución más sencilla sería usar una misma
estructura para las facturas de ambas empresas.
•
Interoperabilidad semántica. Es la capacidad de los SI para
intercambiar información basándose en un común significado de los
términos y expresiones que usan. En otras palabras: denota la capacidad
de los SI para intercambiar información consistente con el significado que
se le supone. Consideremos, por ejemplo, dos SI en que uno trabaja con
facturas donde el campo “Importe” significa “Importe de la factura en
dólares”; y el otro, con facturas donde ese campo significa “Importe de la
factura en euros”. Evidentemente, los dos SI carecen de interoperabilidad
semántica.
La interoperabilidad semántica no debe confundirse con la sintáctica: ésta
se refiere a la dificultad de procesar automáticamente los datos, no a su
“contenido”. Aquélla se refiere a la dificultad de relacionar los términos
desconocidos que aparecen en los datos con los ya conocidos o
definidos. La interoperabilidad semántica no puede existir antes de la
interoperabilidad técnica y la sintáctica.
En el comercio electrónico B2B, la falta de interoperabilidad semántica
produce grandes problemas: ¿cómo van a entenderse empresas que
definen de manera distinta objetos de negocio como “pedido” o
“producto”? ¿Cómo van a realizar transacciones electrónicas dos
empresas que entienden “precio” de distintas maneras (una, como la
cantidad que figura en su catálogo; otra, como esa cantidad más
impuestos y más gastos de envío)?
En campos como la medicina, la interoperabilidad semántica resulta
crucial: ni las aplicaciones médicas ni los médicos pueden comunicarse –
en el sentido estricto del término– si no definen las enfermedades de un
© Miguel Ángel Abián, 2005
Página 14 de 103
http://www.javahispano.org
mismo modo. Así, si una aplicación médica tiene como criterio
imprescindible para diagnosticar una leucemia que el número de
monocitos sea superior al 30%, mientras que otra emplea un 20%, jamás
se pondrán de acuerdo en si los pacientes con un 25% de monocitos
padecen o no la enfermedad.
La interoperabilidad no es una palabra de moda: las sociedades industriales y
postindustriales deben su existencia a la interoperabilidad. El gran logro de Henry Ford
no consistió en introducir correas que pasaban los automóviles de trabajador en
trabajador, sino en introducir un sistema donde las piezas se podían intercambiar y
ensamblar de manera sencilla, es decir, un sistema de componentes interoperables.
Antes de Ford, las piezas se construían y se ensamblaban de manera personalizada
para cada automóvil.
Igualmente, el éxito de la industria electrónica estriba en la interoperabilidad:
pueden crearse circuitos ensamblando componentes de distintos fabricantes; si uno se
estropea, puede cambiarse por un componente de otro fabricante. Como saben muchos
usuarios informáticos, un ordenador puede montarse ensamblando piezas de distintos
fabricantes. Por último, el éxito de la telefonía, ya sea fija o móvil, se debe a la
interoperabilidad: redes telefónicas de países distintos, cada una con sus estándares y
sus componentes telemáticos, interoperan para que dos personas separadas por miles
de kilómetros puedan hablar.
DEFINICIÓN DE INTEROPERABILIDAD
(según IEEE)
Capacidad de dos o más sistemas o componentes para
intercambiar información y usar la información que ha
sido intercambiada.
1. Interoperabilidad
técnica
2. Interoperabilidad
sintáctica
3. Interoperabilidad
semántica
Miguel Ángel Abián, julio de 2005
Figura 3. Tres tipos de interoperabilidad
© Miguel Ángel Abián, 2005
Página 15 de 103
El futuro de la Web
ORDENACIÓN DE LOS NIVELES DE INTEROPERABILIDAD
Organización X
Organización Y
Conocimiento
Interoperabilidad semántica
Conocimiento
Datos
Interoperabilidad sintáctica
Datos
Señales
Interoperabilidad técnica
Señales
Miguel Ángel Abián, julio de 2005
Figura 4. Tres niveles de interoperabilidad. Para conseguir la interoperabilidad en un
nivel, debe haberse conseguido en los niveles inferiores
De la falta de interoperabilidad de la Web se derivan muchos problemas,
demasiados para enumerarlos aquí. En lo que sigue consideraré los dos más relevantes
desde el punto de vista económico. Esto es, los dos problemas que más caros resultan a
las organizaciones y a los usuarios que usan la Web.
Si bien la falta de interoperabilidad no mete directamente la mano en la cartera de
nadie, sí tiene dos efectos sobre los consumidores. En primer lugar, causa que los
usuarios de la Web no aprovechen todas las ventajas económicas que proporciona
Internet. En segundo lugar, hace que tengan que pagar más por los productos ofrecidos
en Internet, pues las empresas repercuten en sus productos los costes derivados de la
falta de interoperabilidad.
© Miguel Ángel Abián, 2005
Página 16 de 103
http://www.javahispano.org
3.2 Dificultad para encontrar información
Antes de nada, conviene entender cómo funcionan los buscadores web basados en
palabras clave (Google, Yahoo y Alta Vista son algunos de los más populares). En
general, constan de tres grandes componentes:
1) Un “merodeador de la web” (webcrawler), encargado de descargar
documentos de la Web.
2) Un indexador que extrae los términos clave de los documentos
descargados. En Alta Vista, estos documentos se representan
mediante vectores de términos, en los que aparece la frecuencia de
cada término clave en el documento.
3) Una interfaz gráfica de búsqueda, mediante la cual hacen sus
consultas los usuarios. En Alta Vista, las palabras introducidas por el
usuario se buscan en una base de datos que almacena los vectores
de términos. Luego, se presentan al usuario los documentos que
tienen buena correlación con las palabras introducidas.
En el caso de Google, la relevancia de los términos no se determina como en Alta
Vista. Google usa un índice de citas o menciones: cuantos más hipervínculos apuntan a
un documento, más relevancia se le concede. Los documentos que se muestran antes
son los citados más veces en otros documentos.
Vista esa somera explicación de los buscadores web, es momento de considerar el
problema de la búsqueda de información. Un ejemplo bastará para entender la magnitud
del problema. Supongamos que alguien busca información sobre las antenas de los
insectos; para ello, escribe la palabra “antenas” en un buscador web (Google, por
ejemplo). En la búsqueda aparecerán miles de resultados: muchos se referirán a
aparatos de transmisión y recepción de ondas electromagnéticas; otros se referirán a las
antenas de los caracoles; algunos otros se referirán a las antenas de insectos que sólo
los especialistas saben que existen; unos pocos se referirán a las antenas de los
deformes peces que pueblan las fosas oceánicas... El usuario sabe sobre qué tipo de
antenas busca información, pero no puede transmitirla directamente al buscador. En
otras palabras: no puede dar al navegador órdenes como “Busco información sobre las
antenas de los insectos, no sobre los artilugios de ondas electromagnéticas”.
El ejemplo manifiesta que Google carece de ”inteligencia”: concede la misma
importancia a una página web sobre la venta de antenas parabólicas, siempre que esté
poco referenciada, que a una sobre la viscosidad de las antenas del Helix aspersa (por
definición, estas páginas tienen pocas referencias). También muestra que cualquier
buscador web se enfrenta con una cruda realidad: en cualquier lenguaje natural abundan
las palabras sinónimas o polisémicas (“antena” es un buen ejemplo). El funcionamiento
de los buscadores web actuales, explicado brevemente al principio de este subapartado,
resulta bien simple: se buscan las palabras de la búsqueda en los documentos de la
Web, sin atender a la sinonimia o polisemia de las palabras. Como el lector o la lectora
sabrá por propia experiencia, eso provoca que a veces sea necesario consultar docenas
o cientos de páginas hasta encontrar la información deseada. Hasta el momento, la
intervención humana resulta imprescindible para seleccionar la información que uno
desea.
Si las páginas web se escribieran en un lenguaje que permitiera almacenar
semántica, los buscadores web encontrarían no sólo las páginas donde aparecieran las
© Miguel Ángel Abián, 2005
Página 17 de 103
El futuro de la Web
palabras de la búsqueda, sino también todas aquellas páginas donde hubiera sinónimos
de esas palabras. Por ejemplo, una búsqueda basada en el término “modelado
empresarial” encontraría automáticamente páginas donde aparecieran términos como
“modelado de la empresa”, “modelado de las compañías”, etc. De la misma manera, una
búsqueda basada en el término “termitas” mostraría páginas con los términos
Reticulitermes lucifugus Rossi, Criptotermes brevis Walker y Kalotermes flavicollis Fabr.
No son los buscadores web los responsables últimos de la dificultad para encontrar
información en la Web, sino el lenguaje con que se construyen las páginas web: HTML.
Este lenguaje de etiquetado sólo permite especificar cómo se va a mostrar una página
HTML, pero resulta inútil para dar “contexto” a una página. Por ejemplo, HTML no
permite expresar que la palabra “antenas” en un documento está relacionada con un
insecto blancuzco y famoso por su voracidad hacia la madera, y no con un emisor o
receptor de radiofrecuencias. En pocas palabras: HTML no proporciona semántica a los
datos. Una sentencia HTML como
<H1> Soy lector de javaHispano </H1>
sólo indica que el dato “Soy lector de javaHispano” debe mostrarse como un encabezado
de tipo 1. Con esta información, una aplicación sabe cómo procesar gráficamente el
texto, pero desconoce cómo interpretarlo. En definitiva, con HTML es imposible generar
información susceptible de ser “comprendida” por máquinas (en el apartado 4 explicaré
qué significa que una máquina comprenda la información), de modo que se evite la
intervención humana para seleccionar la información relevante.
Resumiendo, éstos son los dos principales problemas con que se encuentran los
usuarios cuando buscan información en la Web:
•
Escasa precisión en los resultados. Algunas búsquedas generan
decenas de miles de páginas que carecen de interés; otras, por el
contrario, no generan ninguna.
•
Alta sensibilidad al vocabulario empleado en la búsqueda. Si los
documentos que verdaderamente interesan no emplean el mismo
vocabulario que la búsqueda, jamás aparecerán. Así, si uno busca
mediante la palabra clave “espín”, no encontrará ninguno de los
documentos en español donde sólo se usa el término inglés “spin”.
Ambos problemas ocasionan que el usuario nunca tenga la garantía de que ha
encontrado toda la información relevante para su consulta. En el caso de Google, vaya
por caso, se concede más importancia a mostrar los documentos más citados (los que
mayor índice de citas tienen) que a mostrar todos los documentos que podrían interesar
al usuario.
Por si la falta de inteligencia de los buscadores web no fuera bastante obstáculo
para encontrar información, no debemos olvidar que no pueden acceder a la información
almacenada en imágenes, vídeos o archivos de sonido. En todo caso, pueden acceder a
las descripciones textuales de esos archivos. Por ejemplo, una imagen donde aparezcan
las antenas de una abeja reina podrá mostrarse en un buscador si junto a la imagen hay
alguna etiqueta HTML que proporcione una descripción de la imagen (“antenas abeja
reina”, por ejemplo) o si el nombre de la imagen contiene esa descripción. En caso
contrario, el buscador jamás la encontrará.
© Miguel Ángel Abián, 2005
Página 18 de 103
http://www.javahispano.org
¡187000 registros!
Figura 5. Ejemplo del problema de buscar información. Si uno pretende encontrar a
un compañero de universidad mediante un buscador, se encuentra con miles de
las páginas, de las cuales sólo unas pocas (o ninguna) serán útiles
Las dificultades para encontrar información aparecen también en el comercio
electrónico. En el caso del comercio B2C, los consumidores encuentran tedioso
comparar precios de un mismo producto. Supongamos, vaya por caso, que una persona
desea comprar una crema de afeitar muy cara. Si quiere ahorrar dinero, comparará el
precio de la crema en distintas tiendas virtuales y la comprará en la más barata.
Enseguida llegarán los problemas: en unas tiendas, la crema aparecerá en la categoría
de “Higiene masculina”; en otras, en la de “Cosmética”; en algunas otras, en la de
“Parafarmacia”... Para encontrar la crema, el aspirante a cliente tendrá que buscar de un
modo distinto en cada tienda, y las tiendas abundan en la Web. La búsqueda de precios
mediante un buscador web tampoco resulta muy útil: al introducir el nombre de la crema
y la palabra “precio” aparecerán cientos o miles de páginas donde “precio” no se refiere a
esa crema (por ejemplo, en una página web de opinión, un usuario puede haber
mencionado la crema en cuestión y haber escrito el precio de otro producto).
El uso de agentes inteligentes tampoco resuelve el problema de encontrar la
tienda donde un producto esté más barato. Uno puede pensar que la solución pasa por
escribir o comprar un shopbot o agente autónomo de compra y configurarlo para que
visite todas las tiendas virtuales que ofrecen el producto y obtenga su precio en cada
© Miguel Ángel Abián, 2005
Página 19 de 103
El futuro de la Web
una; pero no es así: debido a las múltiples categorías en que se clasifica un mismo
producto, a las diferentes presentaciones de los catálogos (tablas HTML, archivos Word,
Excel, PDF, etc.) y a las variadas estructuras internas de las páginas web de las tiendas
y de los proveedores, cualquier agente actual deja fuera de la comparación a
muchísimas tiendas. Además, cualquier agente autónomo de compra se siente
desconcertado por la gran cantidad de palabras que usan los vendedores para definir sus
productos (“producto”, “ítem”, “artículo”, “product”...), y su binario desconcierto se traduce
en que no reconoce muchos productos. El sueño de cualquier consumidor –encontrar los
productos al precio más reducido posible– sigue requiriendo la intervención humana.
Figura 6. The Bargain Finder es un shopbot (agente autónomo de compra) pasivo.
Permite encontrar las tiendas que ofrecen los mejores precios para ciertos
artículos
Las dificultades para encontrar información no atañen sólo a los particulares. El
tiempo que las empresas dedican a buscar información entre los millones de páginas de
Internet y de las intranets empresariales equivale a billones de euros. Por ejemplo, un
informe de una consultora estadounidense, realizado en 2000, analizó el tiempo que
cuatrocientas organizaciones europeas y estadounidenses (públicas y privadas) invertían
en buscar información en la Web y en sus intranets. El resultado fue que los empleados
© Miguel Ángel Abián, 2005
Página 20 de 103
http://www.javahispano.org
empleaban una media de ocho horas semanales en buscar información, lo que equivalía
a unos cien billones de dólares.
Las empresas de tamaño pequeño y medio no suelen tener problemas para
encontrar información en sus intranets. Por el contrario, las empresas grandes que
almacenan en sus intranets miles o millones de páginas deben compensar la falta de
inteligencia de sus buscadores mediante la inteligencia y el tiempo de sus empleados.
La solución más inmediata para el problema de buscar información pasa por incluir
metadatos –esto es, datos que describen a los datos– en las páginas web. Los
metadatos son como etiquetas que describen qué significa cada dato. Por ejemplo,
cualquier sistema de gestión de bases de datos relacionales (SGBDR) almacena
metadatos sobre los datos. Imaginemos una base de datos de películas: el SGBDR
correspondiente asigna a todos los datos de una misma columna una descripción
(Nombre_Director, Fecha_Estreno, Actor_Principal, Actriz_Principal, Productor,
Recaudacion, etc.) y un tipo de datos (INTEGER, STRING, DATE, CURRENCY, etc.).
Toda estos metadatos se guardan en la propia base de datos de películas. (A veces, los
metadatos son realmente etiquetas: por ejemplo, el código de barras de cualquier
producto es un metadato.)
En el caso concreto de la crema de afeitar, si cada tienda virtual que la vende
incluyera un metadato numérico Precio cada vez que apareciera el nombre de la crema
(este metadato no tiene por qué ser visible para el usuario), los buscadores web tendrían
más fácil su tarea: sólo tendrían que buscar las páginas donde el nombre de la crema
aparece vinculado al metadato Precio. En general, los metadatos permiten que las
consultas sean más precisas y no devuelvan tantas páginas inútiles para el usuario.
Si bien el uso de metadatos facilita la búsqueda automática de información, dista
mucho de ser una solución perfecta. Volvamos al ejemplo de la crema: si consideramos
tiendas por todo el mundo, resulta impensable que todas usen un metadato Precio. Unas
usarán Price, otras Prix, algunas otras Preis... ¿Cómo puede saber el buscador web que
estos metadatos se refieren al mismo concepto? Mejor aún: ¿en verdad se refieren esos
metadatos al mismo concepto? En el Reino Unido, los precios vienen expresados en
libras esterlinas; en la Europa Occidental, en euros; en Estados Unidos, en dólares...
Para que el buscador pudiera comparar precios en tiendas de todo el mundo, necesitaría
una especie de biblioteca de términos equivalentes (Precio, Price, Prix, Preis...) y
conocer la relación exacta entre ellos, o precisaría que las tiendas usaran unos mismos
metadatos a la hora de describir los productos.
3.3 Dificultad para implantar comercio electrónico B2B
En el presente, el principal reto al que se enfrentan las empresas es la integración
con otras (clientes, proveedores, fabricantes y subcontratistas). Para lograr esto, los SI
de las empresas deben permitir el intercambio de información interempresarial, ya sea
comercial (albaranes, facturas, pedidos, etc.) o de carácter logístico o de planificación.
Compartir información no resulta fácil: cada SI usa distintos formatos, definiciones,
modelos de negocio...
La mejor manera de integrar los procesos de negocio y los SI de las organizaciones
que forman parte de una misma cadena de aprovisionamiento se basa en usar EDI
(Electronic Data Interchange, intercambio electrónico de datos). EDI es el intercambio
© Miguel Ángel Abián, 2005
Página 21 de 103
El futuro de la Web
automatizado de documentos comerciales electrónicos entre una organización y sus
socios comerciales, de modo que apenas se requiere la intervención humana. La DISA
(Data Interchange Standards Association, Asociación de Estándares de Intercambio de
Datos), proporciona la siguiente definición de EDI:
[es] el intercambio, de ordenador a ordenador, de datos de negocio en formatos
estándares. En EDI, la información se organiza de acuerdo con un conjunto de
formatos especificado por ambas partes, los cuales permiten una transacción
informática automática [en el original, “hands off”] que no requiere en cada
extremo ninguna intervención humana ni volver a teclear. La información
contenida en un conjunto de transacciones EDI es, en su mayor parte, la misma
que en los documentos impresos convencionalmente.
EDI se basa en la idea de que los datos deberían introducirse manualmente una vez
y, luego, ser pasados electrónicamente a las otras partes. Así se evita introducir los datos
una y otra vez en cada organización (lo cual requiere la intervención humana y resulta
propenso a errores) y se eliminan los documentos en papel. Mediante el uso de EDI, el
procesado y la transferencia de información es mucho más rápida, eficaz y exacta que
mediante el intercambio manual de papel o mediante la comunicación por teléfono o fax.
Indudablemente, EDI favorece la productividad de las organizaciones (menos errores,
menos papeleo, transmisión rápida de las órdenes, entregas más rápidas de los
pedidos).
En cualquier empresa típica, un proceso EDI comienza cuando la empresa envía a
su proveedor una orden EDI de compra. A continuación, el proveedor devuelve al
comprador una confirmación de la orden de compra. Cuando el proveedor tiene ya todos
los productos solicitados, envía al comprador una nota EDI de próxima entrega. Cuando
se produce la entrega, el proveedor envía una factura EDI; finalmente, el comprador
envía una orden de pago al banco con que trabaja, por la cual se transfiere dinero de la
cuenta del comprador a la del vendedor.
La meta última de EDI radica en compartir el conocimiento de todas las empresas
que forman parte de una misma cadena de aprovisionamiento, de manera que cada
empresa amplíe sus SI más allá de sus fronteras e integre en sus procesos de negocio
los de otras empresas involucradas en su cadena de aprovisionamiento. Este
conocimiento compartido alberga un gran valor económico y optima la cadena de
aprovisionamiento: permite suprimir intermediarios, gestiona mejor los procesos de
suministro, proporciona plazos precisos y actualizados de la entrega de productos,
permite hacer menos inventarios y utilizar mejor los almacenes, avisa de posibles
retrasos, hace posible que el cliente especifique sin ambigüedades el diseño de los
productos, posibilita que los distribuidores aprovechen mejor los transportes y ahorren
costos, etc. En resumen, EDI permite integrar los SI de los fabricantes, proveedores y
distribuidores para que los productos se produzcan y se distribuyan en las cantidades
adecuadas, en el momento correcto y de la manera más económica posible.
Hasta hace pocos años, el comercio electrónico B2B seguía el enfoque EDI
convencional o tradicional, consistente en que los SI de las empresas intercambian
mensajes EDI –es decir, mensajes de contenido, significado y formato normalizados– a
través de redes de valor añadido (VAN, Value Added Networks). ANSI X12 (Estados
Unidos) y UN/EDIFACT (resto del mundo) son los estándares más conocidos para
establecer la estructura y el significado de los mensajes entre organizaciones, si bien
existen muchos otros formatos (la mayoría, propietarios e incompatibles con los demás).
ANSI X12 y UN/EDIFACT definen una serie de documentos comerciales –facturas,
© Miguel Ángel Abián, 2005
Página 22 de 103
http://www.javahispano.org
pedidos, notas de entrega, etcétera–, así como documentos más especializados (p. ej.,
para usos gubernamentales o médicos). Para los negocios entre dos partes, sólo se
implementa un subconjunto del estándar elegido (estos subconjuntos se conocen como
directrices de implementación).
Las VAN son redes de telecomunicaciones, privadas, a las que las empresas
suscriptoras se conectan para intercambiar documentos EDI. Estas redes proporcionan
servicios de buzón de correo (los documentos que se envían a una empresa se
almacenan en un buzón, de donde ésta puede recogerlos cuando desee) y se encargan
de gestionar la red: garantizan la seguridad y confidencialidad de las comunicaciones,
certifican ante terceros la entrega de los mensajes... Muchas VAN son redes de punto a
punto o X.25 en las que se paga por la cantidad de información transmitida; a diferencia
de Internet, los protocolos de red que usan suelen ser propietarios.
Como los SI no usan internamente los contenidos, formatos y significados de los
documentos EDI, las organizaciones deben instalar “traductores” EDI que transformen
los formatos y significados de los documentos internos a los formatos y significados de
los mensajes interempresariales, y viceversa. Si el volumen de datos intercambiados no
es muy grande, una o más personas se pueden encargar de convertir los datos de un
formato a otro, pero esta solución resulta imposible en cualquier empresa que
intercambie diariamente cientos o miles de mensajes. Lógicamente, el intercambio de
mensajes normalizados se torna innecesario si los SI de las organizaciones son idénticos
o si se han construido según una arquitectura de integración, casos en que pueden
intercambiarse directamente los datos de cada SI.
En un sistema EDI convencional, el envío de un mensaje EDI conlleva cinco pasos:
1) En el SI de la organización emisora se exportan los datos de interés a
un archivo.
2) Se convierte el archivo de datos al formato ANSI X12 o UN/EDIFACT
3) Se transfiere el archivo de datos al SI de la segunda organización
(organización receptora).
4) Se convierte el formato del archivo (ANSI X12 o UN/EDIFACT) al
formato del SI receptor.
5) El SI receptor importa los datos, los verifica, los edita y los distribuye.
Actualmente, los sistemas ERP suelen tener módulos EDI que facilitan la
traducción de unos formatos a otros. Estas soluciones resultan caras para las pequeñas
y medianas empresas y, además, requieren un cierto trabajo de personalización.
© Miguel Ángel Abián, 2005
Página 23 de 103
El futuro de la Web
PURCHASE ORDER
UNB+UNOB:1+003897733:01:MFGB-PO+PARTNER ID:ZZ+000101:1050
+00000000000916++ORDERS'
UNH+1+ORDERS:S:93A:UN'
BGM+221+P1M24987E+9'
DTM+4:20000101:102'
FTX+PUR+3++PURCHASE ORDER BEFORE LINE ITEM
INSTRUCTIONS'
RFF+CT:123-456'
NAD+SE+10025392::92++SUPPLIER NAME'
CTA+SR+:STEVE'
NAD+BT+B2::92++COMPAQ COMPUTER CORPORATION+P O BOX
692000+HOUSTON+TX+77692000+US'
NAD+BY+MFUS::92++COMPAQ COMPUTER CORPORATION'
CTA+PD+:CLARETTA STRICKLAND-FULTON'
NAD+ST+CM6::92++COMPAQ COMPUTER CORPORATION+CCM6
RECEIVING DOCK:20555 SH
249+HOUSTON+TX+77070+US'
TAX+9++++++3-00105-5135-3'
CUX+2:USD:9'
PAT+1++1:1:D:45'
PCD+12:2'
TDT+20++++:::AIRBORNE'
LOC+16+COMPAQ DOCK'
TOD+2+NS+:::ORIGIN COLLECT'
IA+1+AA:EC+123456:VP'
IMD+F+8+:::PART DESCRIPTION INFORMATION
Figura 7. Ejemplo de una orden de compra en formato UN/EDIFACT (United
Nations/Electronic Data Interchange for Administration, Commerce and Transport).
Como puede apreciarse, la legibilidad es sumamente baja
© Miguel Ángel Abián, 2005
Página 24 de 103
http://www.javahispano.org
ISA*00*0000000000*01*01*PASSWORDME*01*123456789bbbbbb*9
87654321bbbbbb*890714*2210*U*00204*000000008*0*P*:
GS*IN*012345678*087654321*900509*2210*000001*X*002040
ST*810*0001
BIG*900713* 1001 *950625*P98932
N1*BT*ROYAL DISTRIBUTING COMPANY
N3*P.O. BOX 22327
N4*MYTOWN*NJ*42131
N1*ST*MYCORNER
N3*502 STREET
N4*CROSSROADS*MI*43103
N1*SE*GLOBAL CORPORATION
N3*920 MY STREET
N4*MY CITY*NJ*15445
PER*AD*A.MARTIN*TE*623435812
ITD*01*3*2**IO
ITI**3*CA*12.75**VC*7100
ITI**12*EA*.475**VC*P450
ITI**4*EA*.94**VC*1350Y
ITI**I*DZ*3.4**VC*1507
TDS*5111
CAD*M****TRAVELLER COMPANY
CTT*4*20
SE*21*000001
GE*1*000001
IEA*1*000000008
Figura 8. Ejemplo de una factura en formato ANSI X12 (American National
Standards Institute). El número que aparece tras la etiqueta (810) identifica el
documento como una factura
El enfoque EDI convencional tiene dos problemas fundamentales. Por un lado, el
elevado coste que supone desarrollar aplicaciones traductoras, completamente hechas a
medida (dependen del SI de cada empresa y del formato elegido para intercambiar
datos). Consideremos, por ejemplo, una pequeña y mediana empresa (PYME) que
fabrica sofás. Si tenemos en cuenta que tiene que trabajar con tiendas y con
proveedores de madera, tablero aglomerado, colas y telas, nos daremos cuenta de la
dificultad económica que supone desarrollar un traductor para cada par empresaproveedor o empresa-cliente. Incluso si todas las empresas se pusieran de acuerdo en
usar un formato común para el intercambio de datos, cada una debería desarrollar e
instalar su propio traductor.
Por otro lado, este enfoque adolece de inflexibilidad: una empresa que quiera
hacer negocios con un grupo de empresas que ya tienen un sistema de comercio B2B no
podrá intercambiar información con las otras hasta que no tenga en marcha su traductor
EDI. Si bien el enfoque EDI convencional proporciona interoperabilidad sintáctica, ésta se
halla restringida a pequeños entornos cerrados de empresas, casi siempre
© Miguel Ángel Abián, 2005
Página 25 de 103
El futuro de la Web
pertenecientes a un mismo sector. Imaginemos una empresa que vende un producto
sanitario a un precio un 30% más barato que sus competidores. Si la empresa decide
integrarse en un grupo de empresas que hacen negocios B2B (verbigracia, para
venderles directamente su producto o automatizar su sistema de compra de materias
primas), necesitará un tiempo para desarrollar, depurar y configurar el sistema traductor
encargado de transformar sus documentos internos al formato normalizado que las otras
empresas usan para intercambiar mensajes (y viceversa). Cuando tenga listo el
traductor, habrá desaparecido la ventaja competitiva que tenía y su oportunidad de hacer
negocio se habrá esfumado.
INTERCAMBIO DE DOCUMENTOS EN EL
ENFOQUE EDI CONVENCIONAL
Sistema de
información 2
Red privada a la que
acceden todas las empresas
que desean comerciar
electrónicamente entre sí
Traductor
EDI 2
Sistema de
información 1
Sistema de
información 3
Red
Traductor
EDI 1
Traductor
EDI 3
Miguel Ángel Abián, julio de 2005
Figura 9. Intercambio de documentos en el enfoque EDI convencional
Antes de la llegada de Internet, el comercio B2B era un lujo. Pocas empresas
podían permitirse el comercio B2B, pues la transferencia de los mensajes EDI se
realizaba mediante redes privadas, como las VAN. Las VAN se encargaban de transmitir
físicamente los mensajes EDI, de almacenarlos y también de los aspectos concernientes
a la seguridad y a la administración (identificación de los usuarios, certificación ante
terceros de la correcta entrega de los mensajes, confidencialidad, etc.). Así pues, la
empresa que deseaba hacer negocios electrónicos con otras no sólo debía desarrollar
sus traductores EDI, sino que también tenía que pagar el coste de la VAN.
(Las redes de valor añadido no se han extinguido completamente. Aún tienen una
cierta relevancia en Japón, Europa y Estados Unidos, sobre todo en el sector del
automóvil. Si sobreviven es, primero, porque las empresas involucradas quieren
© Miguel Ángel Abián, 2005
Página 26 de 103
http://www.javahispano.org
rentabilizar la enorme inversión que estas redes supusieron. Segundo, porque las VAN
garantizan un nivel de servicio –ancho de banda, fiabilidad– muy superior a Internet: es
natural que se prefiera una VAN para aplicaciones críticas (bancarias, militares, de
telemedicina).
COMERCIO B2B CON EL ENFOQUE EDI
CONVENCIONAL
Empresa 1
Archivos en
formato interno
Aplicación 2
Traductor
Aplicación 1
VAN (red de
valor añadido)
Documentos EDI
Documentos
EDI
Documentos
EDI
VAN
Documentos
EDI
Red
privada
Empresa 2
Documentos
EDI
Empresa 3
Miguel Ángel Abián, julio de 2005
Figura 10. El enfoque EDI convencional
Internet ha facilitado grandemente que cualquier empresa puede desarrollar
comercio B2B. Los protocolos de aplicación que se usan en la Web (HTTP, FTP, SMTP,
POP) permiten que las empresas puedan intercambiar documentos a través de Internet,
sin necesidad de usar redes de valor añadido. Sin embargo, la Web no ha resuelto el
problema fundamental del enfoque EDI convencional: la exigencia de usar programas
traductores para intercambiar datos entre distintos SI. La Web no proporciona por sí
misma ningún protocolo de intercambio de mensajes comerciales: actúa como medio de
transporte barato entre los mensajes que se envían las empresas, pero no “traduce” el
formato y el significado de éstos.
El lenguaje de la Web, HTML, sirve para decir a los navegadores cómo deben
mostrar los documentos, pero no especifica la estructura de los datos ni su semántica.
Consideremos, vaya por caso, una empresa que tiene un sitio web donde publica los
© Miguel Ángel Abián, 2005
Página 27 de 103
El futuro de la Web
pedidos que hace a sus proveedores (obvio cualquier aquí consideración sobre la
seguridad y la confidencialidad). El proveedor que acceda al sitio web encontrará un
documento HTML semejante a éste:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Pedido 1453</TITLE>
<META http-equiv=Content-Type content="text/html; charset=windows-1250">
<BODY text=#ffffff bgColor=#000000>
<P>Estimado señor García:</P>
<P>Necesitamos que nos entreguen lo antes posible 500 estanterías metálicas de dimensiones
1.500 x 450 mm, que corresponden al código A341DF de su catálogo. El catálogo que manejamos
es del 2004.</P>
<P>Tenga en cuenta el descuento que nuestra empresa tiene por ser cliente habitual (12%).
Necesitamos que nos envíen urgentemente las estanterías. El pago será el habitual (giro a 90
días).</P>
<P>Atentamente,</P>
<P>Luis Pérez</P>
<P>Gerente de PRODUCTOS METÁLICOS S.L.</P>
</BODY>
</HTML>
Ningún sistema de información puede manejar este tipo de documentos: no saben
qué hacer con ellos. Para que el pedido llegue a buen puerto, se necesita a una persona
que lea el documento y extraiga los datos relevantes: unidades, 500; producto,
estantería; dimensiones: 1.500 x 450 mm; referencia del producto: A341DF; descuento:
12% (revísese si realmente PRODUCTOS METÁLICOS S.L. es cliente habitual, que hay
mucho pícaro suelto); urgencia: alta; forma de pago: giro a 90 días. Después, esa
persona u otra deberá introducir manualmente esos datos en el sistema de información
de la empresa proveedora. Por ahora, ningún SI puede deducir del documento anterior
que debe realizar acciones tales como insertar un pedido de 500 estanterías en la base
de datos de pedidos o verificar que PRODUCTOS METÁLICOS S.L. es un buen cliente.
Así las cosas, hacer negocios electrónicos con el lenguaje estándar de la Web no
difiere mucho de hacerlos mediante teléfono o fax: al final, algunos seres humanos
deben traducir la información a términos que los SI puedan procesar e introducirla en
ellos.
En resumidas cuentas, la Web proporciona interoperabilidad técnica para el
comercio B2B, pero no interoperabilidad sintáctica ni semántica. Estas carencias
suponen un gran coste para las empresas, cuantificable en un 50-60% del coste de los
proyectos relacionados con el comercio B2B.
© Miguel Ángel Abián, 2005
Página 28 de 103
http://www.javahispano.org
Nota: En la Web, dos o más empresas siempre pueden hacer negocios B2B de
este modo: poniéndose antes de acuerdo sobre el formato y el significado de los
mensajes que intercambien (como sucede con el enfoque EDI convencional).
Estrictamente hablando, tendrían interoperabilidad; pero de un modo parcial y
restringido, pues no es ése el tipo de interoperabilidad que interesa en un
entorno web. Ese enfoque del comercio electrónico no considera las propiedades
de la Web, donde una empresa tiene a menudo que hacer negocios con
empresas con las que jamás había trabajado antes y con las que quizá nunca
vuelva a trabajar. En un entorno de negocios con muchas empresas y donde
éstas cambian continuamente, no resulta práctico que todas se reúnan y se
pongan de acuerdo a priori sobre el formato y el significado de los mensajes
comerciales, ni que adapten sus SI a estas necesidades.
© Miguel Ángel Abián, 2005
Página 29 de 103
El futuro de la Web
4. La Web semántica
La solución a los problemas anteriores vendrá de lo que se conoce como la Web
semántica. Tim Berners-Lee, creador de la WWW, es el inventor del concepto. Dejemos
que él mismo aclare qué es la Web semántica:
El primer paso es colocar los datos en la Web de un modo en que las máquinas
puedan entenderlos naturalmente o convertirlos a esa forma. Esto crea lo que yo
llamo una Web semántica: una red de datos que pueden ser procesados directa
o indirectamente por máquinas.
[Weaving the Web, 1999]
La Web semántica es una extensión de la actual Web en la cual la información
se da mediante un significado bien definido, lo que facilita que los ordenadores y
la gente trabajen en cooperación.
[The Semantic Web, Scientific American, mayo de 2001]
La Web semántica proporcionará estructura al contenido importante de las
páginas web, creando un entorno donde los agentes de software que viajan de
página en página puedan enseguida llevar a cabo complicadas tareas para los
usuarios. Así, un agente que venga de la página web de la clínica no sólo sabrá
que la página tiene palabras como “tratamiento, medicina, médico, terapia”
(como puede codificarse hoy), sino también que el Dr. Hartman trabaja en la
clínica los lunes, miércoles y viernes, y que el script [programa no compilado
realizado en un lenguaje de programación sencillo] toma un rango de datos en el
formato año-mes-día y devuelve fechas y horas de consulta.
[The Semantic Web, Scientific American, mayo de 2001]
Otra definición interesante es ésta:
Otro esquema de representación del conocimiento que procede de la
Inteligencia Artificial, la red semántica, se basa en redes similares de conceptos
interdependientes, pero aquí las dependencias se clasifican en distintos tipos
con interpretaciones específicas. Por ejemplo, los diferentes tipos de relaciones
podrían especificar que un concepto a “causa” otro concepto b, que “es una
parte de b”, o que a “es un caso especial de b”. La motivación tras las redes
semánticas es que los conceptos obtienen su significado mediante las relaciones
semánticas que tienen con otros conceptos.
[http://framework.v2.nl/archive/archive/node/text/default.xslt/nodenr-156647]
La definición oficial de la Web semántica dada por el W3C se resume aquí:
El propósito de la iniciativa de la Web semántica es tan amplio como el de la
Web: crear un medio universal para el intercambio de datos. Se considera para
interconectar eficazmente la gestión de la información personal, la integración de
las aplicaciones empresariales y compartir globalmente datos comerciales,
científicos y culturales. Los servicios para poner datos comprensibles por las
máquinas se están convirtiendo rápidamente en una prioridad para muchas
organizaciones, individuos y comunidades.
La Web sólo puede alcanzar todo su potencial si llega a ser un sitio donde se
puedan compartir datos y sean procesados por herramientas automáticas, así
como por personas. Para adaptar la Web, los programas del mañana deben ser
capaces de compartir y procesar datos incluso cuando estos programas se
hayan diseñado de forma completamente independiente. La Web semántica es
© Miguel Ángel Abián, 2005
Página 30 de 103
http://www.javahispano.org
una iniciativa del consorcio World Wide Web (W3C), diseñada para desempeñar
un papel de liderazgo en la definición de la Web. Éste desarrolla
especificaciones abiertas para aquellas tecnologías que están preparadas para
distribuciones a gran escala, e identifica –mediante el desarrollo avanzado de
código abierto– los componentes de la infraestructura que en el futuro se
necesitarán adaptar en la Web.
Berners-Lee plasmó su visión inicial de la Web semántica en la siguiente figura.
Figura 11. La Web semántica tal como la concibió Tim Berners-Lee. Figura de
Berners-Lee
© Miguel Ángel Abián, 2005
Página 31 de 103
El futuro de la Web
Red de datos
Recurso
enlaceA
enlaceA
Recurso
Red semántica
enlaceA
Recurso
enlaceA
Recurso
constaDe
enlaceA
contiene
enlaceA
Recurso
Cabecero
Herraje
enlaceA
Recurso
enlaceA
enlaceA
Recurso
Recurso
hechoDe
fabricadoPor
Empresa
Madera
pagaImpuestosA
es
Pino
es
Haya
Hacienda
Miguel Ángel Abián, julio de 2005
es
OrganismoPublico
Figura 12. Comparación entre una red de datos y una red semántica
La Web semántica se basará en que las máquinas comprendan el significado de la
información disponible en ella; de ahí el adjetivo “semántica”. Para los humanos,
comprender un signo o una palabra no es nada extraordinario: lo hacemos gratuitamente
a cada momento. Por sí solas, las palabras y los símbolos no son más que manchas
negras sobre el monitor o el papel. Si esas manchas cobran sentido (es decir, tienen
semántica) es porque nuestros cerebros se lo dan: al ver un símbolo, una palabra o una
imagen, el cerebro lo asocia automáticamente con los conceptos que ha ido
almacenando a lo largo de los años. Por decirlo de otra manera: la interpretación
semántica la proporcionamos nosotros, mejor dicho, nuestras estructuras neuronales.
Por ejemplo, la educación ha hecho que 7 + 3 tenga para todos la semántica (significado)
de “la suma de dos números naturales: el 7 y el 3” o, dicho manera más formal, de “una
operación algebraica definida en el cuerpo de los números naturales (N), donde 7 y 4 Є
N”. En cierta medida, el cerebro es una máquina traductora que convierte símbolos en
conceptos. ¿Por qué obra así? Seguramente, porque pasar del mundo simbólico al
conceptual ha sido muy provechoso para la supervivencia de la especie.
© Miguel Ángel Abián, 2005
Página 32 de 103
http://www.javahispano.org
Para las máquinas actuales, “comprender” no debe entenderse en el sentido de
“comprensión humana”, sino en el de “inferir, deducir”. Que las máquinas comprendan o
entiendan los datos significa que, mediante procesos lógico-matemáticos, sean capaces
de inferir conclusiones a partir de los datos. Veamos un ejemplo: una máquina a la que
se le programe la regla lógica “Toda persona es un ser vivo” puede comprender (deducir)
que, si Luis es una persona, es un ser vivo (la información de que Luis es una persona
debe ser suministrada por humanos).
Como vemos, hay poco de inteligencia en ese tipo de deducciones: la máquina
nunca sabrá qué es una persona ni podrá deducir conclusiones que no se deriven de la
aplicación de reglas lógicas (definidas por humanos) a los datos suministrados. Tim
Berners-Lee no es muy optimista sobre la inteligencia de las máquinas:
El concepto de documentos que las máquinas puedan entender no implica
ninguna inteligencia artificial que permita a la máquina comprender los
murmullos humanos. Sólo indica la habilidad de la máquina para resolver un
problema bien definido desarrollando operaciones bien definidas sobre datos
bien definidos. En lugar de pedir a las máquinas que entiendan el lenguaje
humano, implica pedir a la gente que haga un esfuerzo.
[What the Semantic Web can represent,
http://www.w3.org/DesignIssues/RDFnot.html, septiembre de 1998]
La expresión “pedir a la gente que haga un esfuerzo” significa que los humanos
deben representar los datos en algún lenguaje formal (lógico y axiomático), de manera
que las máquinas puedan usarlos para extraer inferencias lógicas. Estos lenguajes,
vinculados a la representación del conocimiento, se conocen como lenguajes de
representación del conocimiento.
© Miguel Ángel Abián, 2005
Página 33 de 103
El futuro de la Web
EJEMPLO DE BÚSQUEDA DE DOCUMENTOS EN
LA WEB SEMÁNTICA (1)
Regla lógica: Si la página X se relaciona con la página Y y la
página Y se relaciona con la página Z, entonces las páginas X y
Z están relacionadas
Se buscan todos los documentos relacionados con el libro
“Tristana”, de Pérez Galdós
Inferencia lógica: Si la página X aparece relacionada con
“Tristana”, la página Y con la página X y la página Y con la Z,
entonces Z está relacionada con “Tristana”
Por lo tanto, en la búsqueda aparecerán documentos que en la
Web no estaban referenciados directamente con el asunto de la
búsqueda.
Miguel Ángel Abián, julio de 2005
Figura 13. Ejemplo de una búsqueda en la Web semántica. Por un lado, las páginas
deberían almacenar información sobre las páginas con las que se relacionan; por otro
lado, el programa de búsqueda debería usar la regla lógica para efectuar inferencias
lógicas a partir de la información que encuentre en las páginas. Nótese que en el
proceso no hay nada que se parezca a la comprensión humana: sólo se aplican
literalmente unas reglas
© Miguel Ángel Abián, 2005
Página 34 de 103
http://www.javahispano.org
EJEMPLO DE BÚSQUEDA DE DOCUMENTOS EN
LA WEB SEMÁNTICA (2)
Regla lógica: Si una tienda A ha vendido más de 1000 unidades
del producto X, entonces pertenece a la lista de “Mejores
tiendas del año”
Se buscan todas las tiendas que figuran en la lista de “Mejores
tiendas del año”
Inferencia lógica: Si en la página web de la tienda A aparecen
vendidas más de 1000 unidades del producto X, entonces la
tienda A pertenece a la lista de “Mejores Tiendas del año”.
Por lo tanto, en la búsqueda aparecerán documentos en los que no
figura explícitamente el término “Mejores Tiendas de año”
Miguel Ángel Abián, julio de 2005
Figura 14. Ejemplo de una búsqueda en la Web semántica. El buscador inferirá
deducciones a partir de los datos expresados en las páginas.
Salvo que la investigación en inteligencia artificial (IA) experimente un espectacular
avance en los últimos años y podamos tener algún HAL 9000 sin tendencias asesinas, la
Web semántica sólo se podrá construir incorporando a los documentos información sobre
ellos (metadatos), de modo que las máquinas puedan procesarla mediante la aplicación
de reglas lógicas.
La historia de la Lógica (disciplina que estudia los principios formales del
razonamiento humano) comienza con Aristóteles. La Lógica es relevante para la Web
semántica por tres motivos: 1) permite desarrollar lenguajes formales que permiten
representar el conocimiento; 2) proporciona semánticas bien definidas: en un sistema
lógico, cada símbolo y cada expresión tiene un significado único e inambiguo; 3)
proporciona reglas de inferencia, a partir de las cuales se pueden extraer consecuencias
del conocimiento (estas reglas permiten validar demostraciones, es decir, comprobar si
una consecuencia se deriva de unas premisas). Lo que se conoce como interpretación
semántica automática de documentos no pasa de ser la aplicación de reglas lógicas a
unos datos presentados en algún lenguaje formal (como OWL, DAML+OIL o KIF/CL).
© Miguel Ángel Abián, 2005
Página 35 de 103
El futuro de la Web
Estos lenguajes se basan en la lógica descriptiva (lógica que proporciona un
formulismo para representar y expresar el conocimiento humano, basándose en métodos
de razonamiento bien establecidos y procedentes de un subconjunto de la lógica de
predicados o de primer orden). Por ejemplo, la frase “El único matemático de la
Universidad es profesor del hijo de Ferreia”, se expresa en lógica de primer orden como
x. [M(x) Λ (∀y. [M(y)
x = y]) Λ z. [P(x, z) Λ H(z, Ferreia) Λ (
z ≠ u]) Λ ∀t. [P(x,t)
t = z]]]
u. [H(u, Ferreia) Λ
Donde M(x) significa “x es matemático”; P(x, y) denota “x es profesor de y”; H(x, y)
significa “x es hijo de y”. M(x), P(x, y) y H(x, y) son funciones proposicionales.
Espero que no se cumpla aquí la consabida regla editorial de que cada fórmula en
un libro de divulgación reduce el número inicial de lectores a la mitad. El anterior ejemplo
busca tan sólo resaltar que los lenguajes en que se expresarán los metadatos en la Web
semántica se basan en la lógica, de modo que son inambiguos y no admiten
contradicciones. Los lenguajes naturales están muy bien para seres que se consideran
inteligentes, aunque sus acciones apunten hacia la conclusión contraria, pero no para las
máquinas. Frases como “El premio Nóbel Nash habló de su travesía por la locura en el
congreso” (¿tan mal organizado estaba el congreso?: tendré que revisar mi agenda),
“Luis trabaja en un pueblo abandonado por todos” (¿quién está abandonado: Luis o el
pueblo?) o “He visto al hijo de Juan, que ha ganado mil millones en la lotería (¿quién
tachará de su vocabulario la palabra “trabajar”: Juan o su hijo?) ejemplifican que los
lenguajes naturales no resultan los más apropiados para expresar conceptos
inambiguos.
Con la lógica que hay tras los lenguajes de la Web semántica, las máquinas podrán
realizar inferencias como hacen los humanos –especialmente, los matemáticos y los
filósofos– y justificarlas. Por ejemplo, un agente inteligente que tenga programada la
regla “Las compras de más de 300 € tienen un descuento del 10%” podrá justificar
lógicamente por qué permite descuentos a unos clientes y a otros no. Del mismo modo,
un agente que reclame a una persona 12 € por una entrada de cine, será capaz de
justificar formalmente por qué lo hace, basándose en el número de la tarjeta de crédito y
en el código de la entrada (es de esperar que los morosos usen métodos menos
formales para escapar de sus obligaciones). Los usuarios de la Web semántica no
tendrán que preocuparse de conocer la lógica formal de los lenguajes: solamente
deberán modelar con ellos las áreas de conocimiento de interés; luego, los lenguajes
deducirán de los datos introducidos las inferencias correspondientes.
© Miguel Ángel Abián, 2005
Página 36 de 103
http://www.javahispano.org
Figura 15. Representación de la frase “Tom believes that Mary wants to marry a
sailor” en el lenguaje lógico CG (Conceptual Graphs). Lenguajes formales como
éste permiten expresar los datos de manera que las máquinas puedan
“interpretarlos”. Figura de Tim Berners-Lee
<<daml:Class rdf:ID="Persona">
<rdfs:subClassOf rdf:resource="#SerVivo"/>
<rdfs:subClassOf>
<daml:Restriction>
<daml:onProperty rdf:resource="#tieneProgenitor"/>
<daml:toClass rdf:resource="#Persona"/>
</daml:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<daml:Restriction daml:cardinality="1">
<daml:onProperty rdf:resource="#tieneMadre"/>
</daml:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<daml:Restriction daml:cardinality="1">
<daml:onProperty rdf:resource="#tienePadre"/>
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
Figura 16. Representación en el lenguaje formal DAML de las relaciones entre una
persona y sus padres. Una persona es un ser vivo con dos características:
“tieneMadre” y “tienePadre”, que son especializaciones (subclases) de la
característica “tieneProgenitor”
© Miguel Ángel Abián, 2005
Página 37 de 103
El futuro de la Web
Nota para los lectores con inclinaciones lógicas: La lógica de primer orden (o
lógica de predicados) permite establecer formalmente sentencias (predicados) sobre
cosas y colecciones de cosas, sus tipos y propiedades, así como clasificarlas y
describirlas. En la lógica de primer orden, cada sentencia se divide en un sujeto y un
predicado; éste modifica o define las propiedades del sujeto. En esta lógica, los
predicados siempre se refieren a individuos u objetos y los cuantificadores (“todo”,
“algún”) sólo se permiten para individuos. Las sentencias se expresan en la lógica
de primer orden en la forma R(x), donde R es el predicado y x es el sujeto,
formulado como una variable. R(x) es una función proposicional; estas funciones se
convierten en proposiciones de sujeto-predicado cuando se asignan valores a sus
variables. Así, la función proposicional G(x) (“x es un gato”) origina una proposición
de sujeto-predicado cuando se asigna un valor a x: G(Silvestre) (“Silvestre es un
gato”).
Por ejemplo, “Todos las personas son mortales” (bueno, la he actualizado un
poco) se expresa así en la lógica de primer orden:
∀x : P(x)
M(x)
P es el predicado “es una persona”, M es el predicado “es mortal”. Por la regla del
modus ponens, Sócrates, por ser persona, es mortal (vamos, que el filósofo no se
escapa de la guadaña):
P(Sócrates)
M(Sócrates)
La lógica de segundo orden se forma como extensión de la de primer orden y,
a diferencia de ésta, permite cuantificar propiedades. En la lógica de primer orden
no pueden expresarse sentencias como “existe una propiedad...” o “para toda
propiedad...”. Una frase como “Si Juan es una persona y María es una persona, hay
una propiedad que Juan y Rosa comparten” no puede expresarse con la LPO; en
cambio, en LSO se expresa fácilmente:
Persona(Juan) Λ Persona (Rosa)
P (P(Juan) Λ P(Rosa))
La LSO no es tan “perfecta” como la LPO y no admite una teoría formal de
demostraciones como la de la LPO, que cuenta con algoritmos de demostración
perfectamente definidos. Algunas sentencias de la LSO originan situaciones
paradójicas. Por ejemplo, la paradoja de Epiménides el Cretense, quien dijo “Todos
los cretenses mienten”, plantea una contradicción (esta sentencia no puede
expresarse mediante la lógica de primer orden). Si Epiménides mentía, era mentira
que mintiera y, por tanto, decía la verdad; si decía la verdad, mentía, porque
precisamente eso era lo que decía que estaba haciendo. La actitud de los
pensadores hacia este tipo de paradojas varía mucho: San Pablo pensaba que, más
que una paradoja lógica, era una prueba irrefutable de la perversidad de los
paganos; en cambio, los filósofos hegelianos no veían nada raro en la paradoja,
pues veían contradicciones en todas partes (salvo en el Absoluto), incluso en 1 + 1
=2. Corolario: los filósofos no hegelianos y las máquinas aman la LPO, pues no da
lugar a enunciados contradictorios.
Ciertos subconjuntos de la LPO, especializados en clasificar cosas, se
denominan lógicas descriptivas (cada familia de lógicas descriptivas se origina de un
determinado subconjunto de la LPO). Si bien las lógicas descriptivas carecen de la
potencia expresiva de la LPO –es decir, no pueden representar tantas cosas como
ésta–, son matemáticamente trazables y son computables.
© Miguel Ángel Abián, 2005
Página 38 de 103
http://www.javahispano.org
La Web semántica permitirá a los usuarios buscar información de una manera
imposible hoy. Por ejemplo, no sólo permitirá saber qué páginas web almacenan
Manifeste du Surréalisme, publicado por André Breton en 1924, sino que también
informará al usuario de que Breton escribió también un segundo manifiesto llamado
Second Manifeste du Surréalisme, en que abordaba cuestiones tratadas en el primero y
cuyo tema principal era el papel de los sueños en la vida, y proporcionará –si así se
desea– una lista de los textos en los que Breton abordó ese tema, así como de libros y
artículos relacionados con Breton, el surrealismo y las vanguardias. Asimismo, el usuario
podrá encontrar, mediante una sola consulta, una lista de todos los escritores cuyas
obras han sido influidas por el surrealismo (Fernando Arrabal, por ejemplo) y enlaces a
estudios críticos sobre esa influencia. Como los críticos literarios se caracterizan por una
tendencia gregaria a no ponerse de acuerdo, el usuario del futuro podrá disfrutar de la
búsqueda muchísimo más que el usuario actual.
Los buscadores del futuro permitirán consultas como “Busco todos los mecánicos
que tengan su taller a menos de 1 km de la calle Manuel Candela y que trabajen para la
compañía de seguros Siempre Seguro. Muéstrame primero los más baratos”. Mediante la
información codificada en la página web de cada mecánico (mediante metadatos como
Trabaja_Para_Compañía y Tarifa_Por_Hora), el agente podrá encontrar a esos
mecánicos en un santiamén.
La Web semántica también permitirá consultas basadas en otras consultas. Por
ejemplo, imagínese un agente inteligente que busque información sobre pintores.
Cuando se encuentre con sitios web que proporcionan interfaces de búsqueda para
bases de datos sobre pinturas y pintores (la interfaz típica sería un formulario donde se
pueda escribir nombres de pintores, cuadros o movimientos pictóricos), el agente
introducirá en esas interfaces los nombres de los pintores sobre los cuales busca
información y buscará luego en los resultados devueltos por las consultas. La Web
semántica proporcionará maneras de buscar datos que forman parte de lo que hoy se
conoce como la “Internet oculta”.
Asimismo, la Web semántica también permitirá el uso de agentes personales
encargados de extraer información de múltiples fuentes, cada una con su propia manera
de representar los datos, y de informar a los usuarios de los sucesos que son de interés
(conciertos, charlas, estrenos de películas, etc.). Por ejemplo, un agente personal al que
se le hayan proporcionado las preferencias musicales del usuario Miguel Ángel Abián le
avisará cada vez que Lou Reed saque un nuevo disco (sobre todo si contiene material
nuevo, que ya va siendo hora) o que vaya de gira por Europa (sobre todo si la gira pasa
por España o Francia). Para lograrlo, el agente trabajará con fuentes muy distintas:
periódicos virtuales, páginas de agencias de noticias internacionales, páginas de venta
de entradas por Internet...
Por último, los buscadores web del mañana no sólo encontrarán las páginas donde
aparezcan los términos de la búsqueda, sino también todas aquellas páginas donde haya
sinónimos de esas palabras. Así, una búsqueda basada en el término “B2C” encontrará
también páginas donde aparezcan términos como “business-to-consumer”, “business-2consumer” o “B-to-C”.
© Miguel Ángel Abián, 2005
Página 39 de 103
El futuro de la Web
LA WEB DEL FUTURO
Agentes
Servicios
Datos
Metadatos
Miguel Ángel Abián, julio de 2005
Figura 17. En el futuro, la Web estará repleta de metadatos legibles para las
máquinas. Los agentes de la Web semántica usarán esos metadatos para
concertar citas, realizar transacciones monetarias y de bienes, comparar precios,
obtener información, reservar entradas...
El lector habrá notado que casi siempre hablo de la Web semántica usando el futuro
simple: esta Web no existe aún, pero ya tenemos las tecnologías que nos llevarán hasta
ella. En la figura 18 se detallan las más importantes.
© Miguel Ángel Abián, 2005
Página 40 de 103
http://www.javahispano.org
Figura 18. Figura extraída de la documentación del W3C sobre la Web semántica
Desglosemos un poco los principales componentes de la figura:
a) XML (Extensible Markup Language). Es el lenguaje que actualmente
se usa para intercambiar datos en la red.
b) RDF (Resource Description Framework). Es un lenguaje que
describe metadatos y fuentes de información (documentos, imágenes,
etc.).
c) Ontologías. Son conceptualizaciones que definen el significado de un
conjunto de conceptos para un determinado dominio. Las ontologías
se expresan en lenguajes formales como OWL.
d) Lógica. El razonamiento lógico permite determinar si los datos son
correctos e inferir conclusiones a partir de ellos.
e) Prueba. Las pruebas explican y verifican los pasos de los
razonamientos lógicos.
f) Confianza. Se refiere a técnicas que aseguran la identidad y fiabilidad
de los datos y servicios.
En los próximos apartados estudiaremos algunas de estas tecnologías. Con ellas, la
Web pasará de ser una colección de documentos a ser una base de conocimiento, de
la cual se podrán extraer conclusiones a partir de premisas.
© Miguel Ángel Abián, 2005
Página 41 de 103
El futuro de la Web
Al lector interesado en ver cómo funcionan a pequeña escala las tecnologías de la
Web semántica, le recomiendo el proyecto Haystack (http://haystack.lcs.mit.edu/). Este
proyecto desarrolla aplicaciones que usan las tecnologías de la Web semántica para
personalizar la navegación, de acuerdo con los gustos del usuario. Especialmente
interesantes son el “navegador semántico” y la extensión (plug-in) Piggy-Bank para el
navegador Firefox. El primero está basado en Eclipse e incluye muchas funciones
interesantes: navegar por páginas web ordinarias y por páginas que usan tecnologías de
la Web semántica, organizar fotografías digitales y archivos de música, recopilar
información en minoportales...
Figura 19. Captura de pantalla del navegador semántico del proyecto Haystack.
El navegador se puede descargar de la dirección
http://haystack.lcs.mit.edu/staging/eclipse-download.html
© Miguel Ángel Abián, 2005
Página 42 de 103
http://www.javahispano.org
Nota informativa: Si no conoce el maravilloso entorno integrado de desarrollo que es
Eclipse o si lo conoce y quiere ampliar sus conocimientos, puede consultar los
siguientes artículos de javaHispano:
1) http://www.javahispano.org/articles.article.action?id=75
2) http://www.javahispano.org/articles.article.action?id=81
3) http://www.javahispano.org/articles.article.action?id=97
Para conocer la impactante interfaz gráfica que Eclipse ofrece gratuitamente a los
programadores, le recomiendo JLibrary (http://jlibrary.javahispano.net/es/index.html),
obra de Martín Pérez, miembro de javaHispano y autor de recomendables artículos y
tutoriales sobre patrones e interfaces gráficas.
La extensión Piggy-Bank (http://simile.mit.edu/piggy-bank/) para el navegador web
Firefox permite recoger metadatos semánticos de las páginas web e incluso crearlos a
partir del código HTML. Con esta información, los usuarios pueden combinar
informaciones de múltiples fuentes, almacenar la información de interés en “bancos
semánticos” y navegar de forma eficaz por sitios web, según sus preferencias.
Figura 20. Captura de pantalla de la extensión Piggy-Bank para Firefox. Extraída de
http://simile.mit.edu/piggy-bank/
© Miguel Ángel Abián, 2005
Página 43 de 103
El futuro de la Web
Tímidamente todavía, algunas empresas están incorporando metadatos a sus
productos, con vistas a que no se queden rezagados respecto a la futura Web semántica.
Por ejemplo, la compañía Adobe trabaja en su XMP (eXtensible Metadata Platform,
plataforma extensible de metadatos), una tecnología que permite incluir directamente
metadatos en aplicaciones, archivos, bases de datos, incluso en datos binarios.
Independientemente del formato de los datos, XMP permite introducir “paquetes XMP” en
ellos. Se puede encontrar más información sobre esta tecnología en
http://www.adobe.com/products/xmp/main.html. La inclusión de metadatos en los
archivos permitirá que las aplicaciones de la Web semántica puedan conocer su
contenido sin necesidad de abrirlos y leerlos. Por el momento, XMP se encuentra
disponible para Photoshop 7.0, Acrobat 5.0, FrameMaker 7.0, GoLive 6.0, InCopy 2.0,
InDesign 2.0, Illustrator 10 y LiveMotion 2.0.
En http://www.ftrain.com/google_takes_all.html se encuentra el interesante trabajo
de ficción August 2009: How Google beat Amazon and Ebay to the Semantic Web,
escrito por Paul Ford, quien describe lo que podría suceder si Google adoptara técnicas
de la Web semántica. El artículo se publicó en 2002. Curiosamente, menciona de pasada
que Apple compró España y la renombró como Different-thinking Capitalist Republic of
Information (¿?). Si es un chiste se me escapa la gracia, la verdad.
Figura 21. El futuro según Paul Ford. Imagen extraída del trabajo de ficción August
2009: How Google beat Amazon and Ebay to the Semantic Web
(http://www.ftrain.com/google_takes_all.html)
© Miguel Ángel Abián, 2005
Página 44 de 103
http://www.javahispano.org
Por el momento, las tecnologías de la Web semántica no se han probado a gran
escala, si bien están despertando cierto interés en el ámbito militar y en el de los
servicios de inteligencia y espionaje. Baste una sola muestra: como consecuencia de la
guerra contra el terrorismo en la que se haya enfrascado el reelecto presidente George
Walker Bush, el programa VKB (Virtual Knowledge Base) del Departamento de Defensa
de los Estados Unidos ha recibido un gran impulso. Sus fines son detectar relaciones
entre todos los datos que circulan por la Web, mediante servicios web (para permitir la
interoperabilidad de los datos) y ontologías. A toro pasado, no cabe duda de que habría
sido muy útil una Web semántica que relacionara la información que la CIA tenía sobre
los terroristas del 11-S y la que tenían los escuelas de pilotos y los organismos oficiales
encargados de expedir licencias de vuelo. Según los servicios de inteligencia
estadounidenses, toda esa información estaba ahí, pero dispersa y en formatos no
interoperables.
(Las lágrimas de cocodrilo que derramaron algunos responsables del FBI y de la
CIA –Robert Mueller, por ejemplo– por no haber tenido algo similar a la Web semántica
antes del once de septiembre de 2001 se podrían haber evitado si hubieran prestado
más atención a la información que tenían. Según el informe oficial sobre el 11-S,
redactado por una comisión especial del Senado y de la Cámara de Representantes
estadounidenses, la CIA no tuvo en cuenta las advertencias de las otras agencias de
información y de seguridad; en particular, el informe prueba que la Administración de
Bush recibió, en el verano de 2001, avisos de que los terroristas de Bin Laden
preparaban “un ataque espectacular contra Estados Unidos” y que estaban entrenándose
para secuestrar aviones de línea. Así las cosas, una web semántica hubiera determinado
que ni George Tenet ni Robert Mueller –directores en 2001 de la CIA y del FBI,
respectivamente– merecían estar en sus puestos. Curiosamente, nadie habló entonces
de dimisiones ni de destituciones. A la vista de la forma como se trató al ex presidente
Bill Clinton por mentir sobre su relación con una oronda becaria –estuvo muy cerca de
ser destituido–, cualquier observador imparcial concluiría que es muchísimo más
peligroso mantener relaciones extramatrimoniales que descuidar gravemente la
seguridad nacional. En fin, de muy poco sirve la interoperabilidad de los datos si la gente
que toma decisiones mira hacia otro lado.)
¿Cómo acabará el programa VKB? Tecnológicamente, no lo sé: es muy ambicioso.
Económicamente, a la vista de lo que sucedió con muchos productos de alta tecnología
del siglo pasado (chips, ordenadores, el proyecto de la guerra de las galaxias [que
nombre tan bien elegido..., tan comercial, ¿verdad?], Internet), supongo que unas pocas
empresas privadas sacarán tajada del dinero público y podrán comercializar, de aquí a
unos cuantos años, productos basados en todo lo que los contribuyentes
estadounidenses han costeado. Como es habitual, el Gobierno estadounidense elige a
las empresas ganadoras, y ya se sabe que the winner takes all.
Según James Woolsey (ex director de la CIA), “esta cuarta guerra mundial [la
guerra contra el terrorismo] durará para nosotros considerablemente más que la Primera
o la Segunda. Esperemos que no más que las cuatro décadas completas que duró la
Guerra Fría” (frase pronunciada en una conferencia en la Universidad de California, el 3
de abril de 2003). Parece, pues, que unas cuantas privilegiadas empresas
estadounidenses van a tener fondos de sobra durante unos cuantos años. Asegurada su
supremacía tecnológica mediante la inversión pública en la empresa privada, Estados
Unidos –mejor dicho, su gobierno– se permitirá sermonear al mundo sobre las ventajas y
virtudes de la liberalización de los mercados y de la no intervención del Estado en
asuntos empresariales (salvo cuando se trata de rescatar a grandes bancos que han
quebrado por inversiones especulativas o mala gestión, claro está, pues alguien debe
© Miguel Ángel Abián, 2005
Página 45 de 103
El futuro de la Web
pagar los platos rotos), e incluso seguirá acusando a la Unión Europea de ser “un club de
subvenciones” y continuará alegrándose por el progresivo deterioro de modelos sociales
como el sueco. Tal comportamiento resulta extremadamente razonable: los titiriteros no
quieren compartir los hilos que controlan a los muñecos; sus recetas para lograr el éxito
son suyas y de nadie más.
Alguien debería recordar lo que era IBM antes de conseguir un jugoso contrato del
Gobierno estadounidense para desarrollar chips y ordenadores: una poco prometedora
empresa que fabricaba máquinas de escribir y tarjetas perforadas. ¿Alguien la imagina
cotizando en la bolsa si no hubiera llegado ese providencial contrato? Sin él, hoy sólo
sería recordada como la empresa cuyas tarjetas perforadas del censo fueron utilizadas
por los nazis para localizar a los judíos y aniquilarlos de forma eficaz y despiadada, y
cuyo fundador –Thomas J. Watson– recibió una medalla de manos de Hitler en 1937.
¿Cuántos pueden recordar a los competidores de IBM (en el mercado de las máquinas
de escribir o de las tarjetas perforadas) que no obtuvieron contratos del Gobierno?
Seguramente, tantos como los que creen de corazón en el libre mercado y lo practican
en ambas direcciones, no sólo en una...
Figura 22. Arquitectura del proyecto Virtual Knowledge Base (VKB) del
Departamento de Defensa de los Estados Unidos. Como es de suponer, no hay
disponible mucha información sobre él
© Miguel Ángel Abián, 2005
Página 46 de 103
http://www.javahispano.org
Nota para los lectores con inclinaciones económicas o bursátiles:
Enron es mi ejemplo favorito de lo que sucede cuando se deja que el libre
mercado campe a sus anchas, y éste se encuentra con las nuevas tecnologías (la Web)
y los viejos vicios. Esta compañía de distribución de gas y electricidad, que había
comenzado como una pequeña empresa de gas en Tejas, basó su éxito –y su pronto y
estrepitoso fracaso– en la estrategia de libre mercado aplicada a la distribución de gas
natural y electricidad en Estados Unidos. En su momento, Enron se citaba como
ejemplo de que, gracias a las bondades del libre mercado –en este caso, la
desregulación del mercado estadounidense de gas y electricidad–, las empresas
estadounidenses serían más competitivas, productivas y atractivas para el consumidor.
En otras palabras: las empresas eran buenas por naturaleza, sólo había que dejarlas
trabajar sin ahogarlas con normas medioambientales y laborales, regulaciones y cosas
similares... Los hechos demostraron más bien lo contrario. Si bien la cantinela del libre
mercado decía lo habitual (eliminar regulaciones y normas conduce a rentabilidades
mayores y a la competencia entre empresas, lo cual beneficia a los consumidores), la
realidad fue muy distinta: si el precio de la electricidad era de unos 30 dólares por
megavatio/hora entre abril de 1998 y junio de 2000, en el primer semestre de 2001 se
había multiplicado por 8. Además, había constantes interrupciones del suministro, es
decir, apagones; y la compañía eléctrica más importante de California quebró. Visto lo
visto, en junio de 2001 volvió la regulación, y la Comisión Federal Reguladora de
Energía impuso unos precios máximos por el megavatio/hora (como sucede en Francia
y España).
¿Estaría equivocado Ronald Reagan cuando dijo “El gobierno no es la solución a
nuestros problemas, es el problema”? ¿Por qué funcionó tan mal el libre mercado?
Pues porque los beneficios se antepusieron a los consumidores: Enron se dedicó a
especular con contratos a largo plazo (prohibidos antes de la desregulación), de modo
que casi todo el suministro a largo plazo de electricidad y gas quedaba comprado o
vendido. En consecuencia, el suministro al contado (para hoy) era muy escaso, y se
pedían por él precios cada vez más altos. Curiosamente, cuanta más escasez había de
electricidad, más “averías” ocurrían en las centrales hidroeléctricas, que obtenían
grandes beneficios cuando se disparaba el precio al contado del megavatio/hora.
Curiosamente también, Enron enviaba electricidad fuera de California para aumentar la
escasez de electricidad al contado en ese estado y subir más los precios. Mientras
tanto, la cotización bursátil de Enron subía como la espuma. Una empresa que
compraba y vendía electricidad y gas por Internet, ¿cómo no iba a subir en plena fiebre
de las puntocom, cuando subían hasta las sillas de la Bolsa?
¿Cómo acabó este experimento de libre mercado? Enron quebró (los 1000
millones de dólares para las pensiones de los empleados se esfumaron), los
consumidores –particulares y empresas– pagaron precios exorbitantes por el gas y la
electricidad, y el Gobierno de los Estados Unidos gastó más de 40.000 millones de
dólares en restablecer las condiciones de suministro propias de un país desarrollado. Al
final, cuando los especuladores ya habían expoliado a los clientes, papá Estado –ese
Estado al que tan poco aprecian algunos partidarios del libre mercado, salvo cuando la
codicia los pone en apuros– pagó el pato. ¿Final feliz?
(Cuando Enron se derrumbaba, se solicitó al Gobierno que redujera la deuda de
la empresa. Curioso: ¿no debía el Estado ocuparse de sus propios asuntos y dejar al
mercado en paz? ¿Por qué debía salvar a las empresas que se arruinaban por sus
fraudes y su avaricia?)
© Miguel Ángel Abián, 2005
Página 47 de 103
El futuro de la Web
Las fraudulentas prácticas contables de Enron dan para un manual de
contabilidad moderna. Me limitaré a señalar aquí una muy llamativa (la difunta Arthur
Andersen no pensaba lo mismo): Enron contabilizaba las ventas de gas y electricidad
que se iban a entregar al año siguiente como ingresos actuales, sin contabilizar como
gasto el dinero necesario para comprar el gas o la electricidad. Es decir, ¡se obtenían
beneficios sin gasto alguno! Enron fue durante un tiempo el equivalente financiero de la
máquina del movimiento perpetuo.
Claro está, en la historia de Enron hubo algunos hechos que fueron bastante
miserables. Que altos directivos (entre ellos el presidente de la empresa, Ken Lay)
vendieran acciones de Enron por valor de cientos de millones de dólares mientras
recomendaban a sus empleados que mantuvieran las suyas demostró dos cosas: a) la
ética de los dirigentes de la empresa se había desplomado a niveles sorprendentes; b)
era el momento de abandonar el barco.
No le quepa ninguna duda de que la Web semántica tendrá su Enron. Vigile su
cartera.
© Miguel Ángel Abián, 2005
Página 48 de 103
http://www.javahispano.org
5. XML: un primer paso hacia la Web semántica
Hoy día se acepta que la Web semántica se construirá basándose en XML
(Extensible Markup Language, lenguaje extensible de etiquetado) y en las tecnologías
asociadas. La ubicación exacta del lugar que ocupará XML se muestra en la figura 18.
XML aparece sobre dos rectángulos marcados como Unicode y URI porque se basa en
estas dos tecnologías. Unicode es un estándar cuya meta es asignar enteros no
negativos a los caracteres escritos de los idiomas más extendidos y proponer distintas
maneras de codificar binariamente esos números (las codificaciones más comunes son
UTF-8, UTF-16 y UTF-32), amén de definir algoritmos para asegurar la interoperabilidad
cuando se procesan textos que usan Unicode. Como XML se basa en Unicode, los
documentos XML pueden usar caracteres de casi todas las lenguas que se hablan en la
Tierra (la versión 3.1 de Unicode incluía más de 90.000 caracteres). Si desea más
información sobre Unicode, la encontrará en la primera parte del tutorial Java y las redes
(http://www.javahispano.org/tutorials.item.action?id=45). XML usa URIs (Uniform
Resource Identifiers, identificadores uniformes de recursos) para especificar de forma
única los recursos de la Web semántica, del mismo que la Web actual usa URLs
(Uniform Resource Locators, localizadores uniformes de recursos).
Mientras que HTML es un lenguaje de marcado para documentos de hipertexto,
XML es un lenguaje de marcado para documentos de todas clases. Se dice que XML es
extensible porque permite al programador asociar sus propias etiquetas (metadatos) a
los datos. El aspecto de un documento XML es similar al mostrado en la figura 23.
<empresa>
<nombreEmpresa>
AIDIMA
</nombreEmpresa >
<direccion>
<calle>
Benjamín Franklin
</calle>
<numero>
13
</numero>
<poblacion>
Paterna
</poblacion>
<codigoPostal>
46017
</codigoPostal>
<pais>
España
</pais>
</direccion>
<telefono>
+(34) 961265070
</telefono>
</empresa>
Figura 23. Ejemplo de un documento XML
© Miguel Ángel Abián, 2005
Página 49 de 103
El futuro de la Web
Como vemos, un documento XML consiste en una serie anidada de etiquetas
abiertas (<) y cerradas (>), donde cada etiqueta tiene ciertos valores. Es potestad del
programador definir los nombres de las etiquetas y sus combinaciones permitidas (por
ejemplo, que una etiqueta <calle> no puede encontrarse fuera de unas etiquetas
<direccion></direccion>). Para ello, puede usar documentos DTD (Document Type
Definition, definición de tipos de documentos) o esquemas XML. Las DTD y los
esquemas XML son usadas por los analizadores sintácticos (parsers) para comprobar
si un documento XML es válido; es decir, si cumple la gramática.
<?xml version="1.0" encoding="utf-8"?>
<!ELEMENT E-MAIL (DE, A, ASUNTO, CUERPO)>
<!ELEMENT DE (#CDATA)*>
<!ELEMENT A (#CDATA)*>
<!ELEMENT ASUNTO (#CDATA)*>
<!ELEMENT CUERPO (#CDATA)*>
Figura 24. Ejemplo de una DTD
<E-MAIL>
<DE>Miguel Ángel Abián</DE>
<A>javaHispano</A>
<ASUNTO>Saludos</ASUNTO>
<CUERPO>Saludos a los lectores de javaHispano.</CUERPO>
</E-MAIL>
Figura 25. Ejemplo de un documento XML válido según la anterior DTD
© Miguel Ángel Abián, 2005
Página 50 de 103
http://www.javahispano.org
<?xml version="1.0" encoding="utf-8"?>
<!-- Esquema XML para un pedido -->
<!-- Un pedido se compone de varias líneas de pedido, cada una con el -->
<!-- nombre del producto y el número de unidades -->
<xsd:schema xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
<xsd:element name="pedido">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="lineaPedido"
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="lineaPedido">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="nombreProducto"/>
<xsd:element ref="cantidad"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="nombreProducto" type="xsd:string"/>
<xsd:element name="cantidad" type="xsd:string"/>
</xsd:schema>
Figura 26. Ejemplo de un esquema XML. Los esquemas permiten introducir más
información (tipos de datos, por ejemplo) que las DTD.
© Miguel Ángel Abián, 2005
Página 51 de 103
El futuro de la Web
<?xml version="1.0" encoding="utf-8"?>
<pedido
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:noNombrespaceSchemaLocation="lineaPedido.xsd">
<lineaPedido>
<nombre>silla de oficina</nombre>
<cantidad>2</cantidad>
</lineaPedido >
<lineaPedido>
<nombre>mesa de reuniones</nombre>
<cantidad>3</cantidad>
</lineaPedido>
<lineaPedido>
<nombre>cajonera</nombre>
<cantidad>6</cantidad>
</lineaPedido>
</pedido>
Figura 27. Ejemplo de un documento XML. Los esquemas permiten introducir más
información (tipos de datos, por ejemplo) que las DTD
Resulta innegable que XML constituye un gran paso adelante para lograr la
interoperabilidad sintáctica, tan necesaria para el comercio electrónico. He aquí algunas
ventajas generales de usar XML:
Cualquier documento y cualquier tipo de dato puede expresarse como un
documento XML. Este lenguaje permite definir los datos
independientemente de cualquier lenguaje o plataforma y, por ello,
constituye un formato universal para el intercambio de datos.
Por su propia naturaleza, XML es autodescriptivo. Un documento XML no
sólo almacena datos, sino también la estructura de éstos. Resulta fácil
compartir documentos XML entre empresas y personas, porque una
persona que lea un documento XML descubrirá enseguida su estructura.
Los documentos XML pueden desarrollarse tal y como quiera una
persona o una organización. Nada impide a una empresa que desarrolle
una serie de esquemas o DTDs para los tipos de documentos con que
trabaja (facturas, pedidos, órdenes de producción, albaranes,
reclamaciones...) y que exija a sus clientes y proveedores que usen
documentos XML conformes a esos esquemas o DTDs.
La estructura de los documentos XML puede comprobarse
automáticamente, de manera que se rechacen aquellos documentos que
no están construidos siguiendo los esquemas o DTDs elegidos. Si dos
empresas trabajan con un conjunto común de esquemas o DTDs, pueden
analizar cualquier documento que una vaya a enviar a la otra, con lo que
se evita el envío de documentos incorrectos. Por ejemplo, si una empresa
© Miguel Ángel Abián, 2005
Página 52 de 103
http://www.javahispano.org
va a enviar una factura en la que falta el importe y usa un analizador de
XML antes de hacerlo, se ahorrará enviar un documento que el SI de la
otra empresa rechazará.
Como XML se basa en texto ordinario, los documentos XML son idóneos
para transportarlos a través de Internet; red donde conviven muchas
plataformas y sistemas informáticos distintos, cada uno con sus propios
formatos de archivos.
Como Unicode es el juego de caracteres predefinido para XML, se
pueden crear documentos XML para casi todos los lenguajes humanos.
Ha sido y es enorme el impacto que han tenido XML y las tecnologías que lo
emplean (XSL, XSLT, UDDI, etc.) en las empresas relacionadas con las tecnologías de la
información:
1) Sin lugar a dudas, XML se ha convertido en el formato universal para
intercambiar datos entre organizaciones, ya sean públicas o privadas.
Tanto la Comisión Europea como los gobiernos estadounidense y japonés
promueven la adopción de tecnologías basadas en XML.
La llegada de XML y de la Web ha hecho caer en desuso las redes
privadas VAN, que usaban aplicaciones “traductoras” para pasar los
mensajes de un miembro de la red al formato de otro miembro y
transmitían los mensajes mediante formatos binarios propios. Las rígidas
arquitecturas de las redes VAN, de costoso mantenimiento, a duras penas
han podido resistir a XML y a la popularización de la Web.
2) El panorama de las transacciones B2B se ha visto radicalmente
modificado por la aparición de XML. Hay en el mercado docenas de
productos compatibles con las especificaciones para el intercambio
comercial de documentos XML desarrolladas por organizaciones como
OASIS (Organization for the Advancement of Structured Information
Standards), UN/CEFACT (United Nations Center for Trade Facilitation and
Electronic Business), el consorcio ebXML, RosettaNet, etc. Estas
organizaciones tienen por fin promover estándares universales para el
uso de XML, con el propósito de facilitar el intercambio de datos
comerciales electrónicos. Por poner un solo ejemplo, la arquitectura
ebXML comienza con un modelo de los datos y procesos de la empresa,
convierte el modelo en esquemas XML y define los requisitos para las
aplicaciones que procesan los documentos y los intercambian con sus
socios.
3) XML ha sido la pieza clave (el “pegamento”) a la hora de integrar
aplicaciones empresariales. Como las empresas odian tirar a la basura el
dinero invertido en sistemas de información, XML se ha hecho muy
popular para la integración de aplicaciones, sistemas y bases de datos
ya existentes, con el objetivo de que los sistemas resultantes puedan
integrarse con sistemas ERP y comerciar electrónicamente mediante la
Web. Indirectamente, XML ha cambiado mucho las intenciones de los
vendedores de sistemas ERP (SAP, Oracle, PeopleSoft, IBM, etc.), que
ven ahora que utilizar formatos propios y no tender a la integración de sus
productos con los de la competencia les dejaría, a medio plazo, fuera del
mercado.
© Miguel Ángel Abián, 2005
Página 53 de 103
El futuro de la Web
4) XML ha conseguido introducirse en el corazón de las dos plataformas de
software más populares (J2EE y .Net). Por una parte, ambas tienen APIs
para trabajar directamente con todas las tecnologías basadas en XML.
Por otra parte, tanto J2EE como .Net usan XML para configurar y
distribuir las aplicaciones ASP .Net (Active Server Pages) y JSP (Java
Server Pages), respectivamente.
5) XML ha liberado a las empresas de desarrollar en una plataforma u en
otra, pues los servicios web, basados en XML, permiten integrar
aplicaciones de distintas plataformas.
6) Casi todos los vendedores de sistemas de gestión de bases de datos
relacionales han incorporado XML a sus productos. Algunos incluso
ofrecen bases de datos que sólo almacenan XML; la mayoría incluye la
conversión automática de las tablas relacionales (modelo EntidadRelación) a esquemas XML.
7) El impacto de XML en los portales ha sido grande. Distintos portales
pueden tener un mismo “esqueleto” en XML y distintas presentaciones
(mediante distintas plantillas XSLT [Stylesheet Language Transformation,
transformación del lenguaje de hojas de estilo]). Así se evita tener que
escribir y mantener el código HTML para cada portal: si se desea cambiar
la apariencia gráfica de uno no se necesita modificar todas sus etiquetas
HTML; basta usar otra plantilla XSLT. La unión de XML y XSLT ha
resultado muy ventajosa para separar contenido y presentación.
En el ámbito empresarial, el uso de XML y de la Web para intercambiar mensajes
se conoce como el enfoque EDI actual o el nuevo enfoque EDI. Tanto el nuevo enfoque
como el convencional se basan en el intercambio de mensajes consensuados entre las
partes, si bien el convencional no emplea XML ni Internet (y, en consecuencia, tampoco
la Web). ¿Qué ventajas proporciona el nuevo enfoque frente al anterior? En primer lugar,
XML es un estándar universal y abierto, para el cual hay disponibles muchas
herramientas gratuitas o muy baratas. En el caso de los estándares ANSI X12 y
UN/EDIFACT, ambos abiertos e incompatibles entre sí, el problema residía en
implementarlos (la norma UN/EDIFACT ocupa unas tres mil hojas) y en que las
implementaciones eran propiedad de las grandes empresas capaces de tal proeza.
Sorprende, vaya por caso, el espacio que la norma ANSI X12 dedica al conjunto de
transacciones 864 (Text Message). Es más: puede que hielen la sangre a quien tenga
que implementarlas. Sin embargo, tantas páginas sólo vienen a definir lo que hoy
consideramos un correo electrónico sin documentos adjuntos. En teoría, los estándares
anteriores buscaban que el proceso de intercambiar mensajes EDI fuera independiente
de cualquier hardware o software; pero la realidad ha sido otra: los sistemas traductores
se hallan fuertemente ligados a las plataformas para las cuales se desarrollan.
En segundo lugar, XML aprovecha las ventajas de la Web: los documentos XML
son de texto plano y pueden transmitirse perfectamente por HTTP. Los documentos EDI
usados en el enfoque EDI convencional se transmitían a través de redes privadas,
mediante protocolos de red (como X.25) que no pertenecían a TCP/IP.
En tercer lugar, XML permite crear documentos legibles para los humanos, quienes
pueden intuir su contenido sin necesidad de usar ninguna aplicación; XML se basa en
Unicode y es lo bastante flexible como para que cualquier empresa cree sus propios
documentos. En el enfoque EDI convencional, los mensajes intercambiados solían
© Miguel Ángel Abián, 2005
Página 54 de 103
http://www.javahispano.org
codificarse en formato binario, lo que obligaba a usar aplicaciones muy específicas para
leerlos y mostrarlos. Frente a la flexibilidad de XML para generarla infinidad de
documentos internacionales, los mensajes EDI destacaban por su rigidez y sólo
permitían usar el juego de caracteres ASCII, insuficiente para otros idiomas que no sean
el inglés.
En cuarto lugar, existen muchos analizadores sintácticos (parsers) de XML y APIs
que pueden usarse para transformar los documentos XML en representaciones que las
aplicaciones pueden procesar (objetos, registros), así como muchos SI que permiten
importar y exportar datos en XML (hay bases de datos que manejan XML como formato
propio). Incluso si una empresa debe desarrollar algún tipo de traductor formato propioXML, puede usar muchas herramientas y parsers que ya existen (la mayoría, de código
abierto o libre), lo cual abarata mucho el desarrollo, implantación y configuración del
traductor. En otras palabras: cuando XML no permite una interoperabilidad sintáctica
completa entre dos SI, facilita enormemente conseguirla. Recurriendo a una metáfora
zoológica, podemos decir que los documentos XML son camaleones (pueden ser
procesados por muchas herramientas y aplicaciones, y pueden mostrarse de muchas
maneras distintas). Huelga decir que el enfoque EDI convencional nunca contó con
herramientas y APIs como las descritas, ni con ninguna cualidad camaleónica: cada
empresa debía reinventar la rueda. Como los traductores EDI se hacían a medida para el
SI de cada empresa, no se podían aprovechar para empresas que usaran otros SI (por lo
general, los traductores eran propiedad de las compañías arrendadoras de las VAN).
Finalmente, el acceso a la Web es muy barato y permite hacer negocios con
empresas de todo el mundo. Las empresas que en las décadas de 1970, 1980 o 1990
usaban el enfoque EDI convencional se veían obligadas a trabajar con redes privadas,
cuyo alquiler resultaba muy caro y a las que estaban conectadas pocas empresas.
Incluso hoy, cuesta unos 40.000 €uros unirse a una VAN de tamaño medio. Trabajar con
estas redes limita las oportunidades de hacer negocios; pues una empresa sólo puede
negociar con otras conectadas a la misma VAN que ella, y las transacciones van de uno
a uno (punto a punto): del emisor al buzón del receptor. En cambio, la Web permite hacer
negocios con un número de empresas virtualmente infinito y las transacciones son de
uno a muchos. Consideremos, por ejemplo, el caso de un hospital que necesita comprar
material sanitario en grandes cantidades. Mediante la web, el hospital podrá acceder a
un e-marketplace y presentar a la vez su pedido a docenas de distribuidores y
fabricantes de material sanitario (negocio de uno a muchos). Una vez recibidas las
correspondientes ofertas, podrá elegir la más barata.
© Miguel Ángel Abián, 2005
Página 55 de 103
El futuro de la Web
Nota: En el mundo del comercio electrónico no cabe sólo el blanco y el negro:
hay muchos grises. Así, hay enfoques combinados que mezclan las
características del enfoque EDI convencional y del nuevo (basado en la Web y
XML). Unos sustituyen las VAN (redes de valor añadido) por Internet, pero
mantienen formatos que no se basan en XML. Otros usan a la vez las VAN,
Internet y la Web, pero mantienen sus propios formatos propietarios. Algunos
otros usan traductores XML/EDI. Por poner un solo ejemplo de estos enfoques
combinados, mencionaré el sistema TradeWeb de la empresa General Electric
Information Systems (antes propiedad de Global eXchange Services, comprada
por General Electric en 2002). TradeWeb se basa en un servidor web que
expone los formularios de los documentos comerciales más usuales (facturas,
pedidos, etc.). Los usuarios sin sistemas EDI convencionales –PYMEs, tiendas–
acceden al servidor mediante Internet y un navegador web. Cuando un usuario
de este tipo rellena un formulario, TradeWeb lo envía a una VAN donde están
conectadas las empresas que pueden atender su petición (grandes empresas
con sistemas EDI convencionales). Como los pequeños usuarios carecen de
aplicaciones para recibir y mostrar mensajes EDI, las empresas conectadas a la
VAN se los envían en formato web (HTML). En Estados Unidos y México, unos
6.000 proveedores de DaimlerChrysler usan TradeWeb.
Pese a los laureles y excelencias de XML, no proporciona una interoperabilidad
completa, pues no incorpora ningún mecanismo para garantizar la interoperabilidad
semántica. XML sirve para especificar el formato y estructura de cualquier documento;
pero no impone ninguna interpretación común de los datos del documento. Desde el
punto de vista semántico, XML resulta casi inútil: dado un documento XML, no se pueden
reconocer en él los objetos y relaciones del dominio de interés.
El marcado de los documentos XML es una forma de metadatos. Etiquetas como
<precio> o <autor> ayudan a que los humanos intuyamos el significado de lo que vaya
entre las etiquetas. Cuando una persona lee una DTD, puede extraer la semántica de
sus elementos prestando atención a los nombres de los elementos (<fechaEntrega>, p.
ej.) o a los comentarios que figuran en ella. En otras palabras: puede interpretar
semánticamente la DTD. Por el contrario, para un programa que procese documentos
XML, las etiquetas carecen de sentido o significado.
En el caso del comercio B2B, que XML no incluya ningún mecanismo para la
interpretación semántica automática constituye un gran problema. Varias empresas
pueden intercambiar documentos XML si todas las partes se han puesto de acuerdo
sobre las DTD (o los esquemas) que van a usar, pero surgirán problemas cuando
aparezcan empresas que usen otras DTD, aunque sean equivalentes. Por ejemplo, un SI
que acepte etiquetas <precio> no será capaz de procesar etiquetas <precioUnidad>,
aunque sean semánticamente equivalentes. Por ahora, la única manera de integrar las
DTD procedentes de empresas que no han establecido acuerdos previos consiste en que
una persona establezca la relación entre las etiquetas de una DTD y las de las otras.
Las DTD apenas admiten semántica: no hay nada en las DTD que corresponde al
concepto de herencia, y el único tipo de datos primitivo que admiten es PCDATA, es
decir, cadenas de texto. Para ser justo, dejo constancia de que los esquemas XML son
más ricos en semántica que las DTD, pues permiten incluir algunas expresiones
semánticas (X contiene a Y; X sigue a Y; si X, también Y; si X, no Y). Ahora bien, éstas
© Miguel Ángel Abián, 2005
Página 56 de 103
http://www.javahispano.org
no bastan para representar los objetos del complejo mundo real. De todos modos,
incluso si un esquema de XML contiene la escasa semántica que permiten las anteriores
expresiones, ningún procesador de XML podrá validarla en un documento.
Si retornamos al ejemplo de la crema de afeitar y suponemos que todas las tiendas
virtuales han decidido usar documentos XML en los que aparecen las etiquetas
<precio>x</precio> (donde x es un número que corresponde al precio en euros y en que
la coma señala los decimales), podremos hablar de interoperabilidad completa (sintáctica
y semántica). Desgraciadamente, esta situación resulta quimérica: en el mundo real, las
tiendas usan etiquetas del estilo <precio>34,45</precio>, <coste>34,45</coste>,
<precioOferta>34,45</precioOferta>, <price>30.50</price>... Huelga decir que ni la Web
actual ni XML proporcionan mecanismos para que una máquina sepa que esas etiquetas
significan lo mismo o algo similar.
En los últimos años se ha hablado mucho de los servicios web, a veces con
entusiasmo monomaniático. El principal argumento comercial que se esgrime a favor de
los servicios web consiste en que una empresa cualquiera puede encontrar y usar
automáticamente los servicios web ofrecidos por otras (compra de productos, realización
de operaciones financieras, reserva de billetes o entradas). Actualmente, las tecnologías
basadas en XML no permiten este uso automático de los servicios web, pues no hay
asociada una interpretación semántica de tipo automático. Por ejemplo, un servicio web
que ofrezca un método CalcularAmortizacion() carece de interés para las empresas,
pues no sabrán si el cálculo se refiere a la amortización lineal, a la basada en
coeficientes, etc. (salvo que exista un acuerdo previo entre las empresas consumidoras
del servicio o que haya personas encargadas de interpretar semánticamente el método;
esto es, de leer la documentación del servicio web).
Quizás algún lector piense que eso de la semántica es algo muy abstracto y que
importa poco o nada, o que lo verdaderamente importante para los negocios electrónicos
son los protocolos de red, la conexión física y las políticas de seguridad, o que con XML
basta para hacer negocios en el mundo real. No es así: las consecuencias económicas
que tiene la falta de interoperabilidad semántica son enormes. En Europa, se calcula que
el 20-30% de los gastos relacionados con el comercio electrónico deriva de la falta de
interoperabilidad semántica. Este gasto se debe a que, aunque los SI empresariales
usen las mismas tecnologías (por ejemplo, XML para describir los datos), el significado
de los modelos de negocio suele diferir. Incluso nociones comunes tan habituales como
“pedido” o “cliente” pueden significar cosas muy distintas en cada empresa. Como
consecuencia, el intercambio de información entre empresas suele ser, en el mejor de los
casos, un proceso semimanual. La principal dificultad a la que se enfrenta el modelado
empresarial reside en traducir los objetos de negocio de una empresa a los de otras, y
viceversa. Sin esa traducción, la integración automática de los SI de las empresas que
forman parte de una misma cadena de aprovisionamiento resulta imposible: no existe un
entendimiento común.
Para mostrar los problemas que derivan de no contar con un entendimiento común
(es decir, con una misma semántica), consideraré un caso real: una empresa que
comercializa escaleras encargó tres mil escaleras a otra. El mensaje intercambiado era
parecido a éste (por motivos de confidencialidad, he cambiado el formato):
© Miguel Ángel Abián, 2005
Página 57 de 103
El futuro de la Web
<pedido>
<emisor>empresa XXX</emisor>
<receptor>empresa YYY</receptor>
<familiaProducto> A1234VU</familiaProducto>
<producto> A547</producto>
<peldaños>6</peldaños>
<descripcion>Escalera doble “PLUS” de seis peldaños (6P) </descripcion>
...
</pedido>
Al cabo de unas semanas, la primera empresa recibió tres mil escaleras de siete
peldaños (seis peldaños y la plataforma superior). ¿Por qué? Pues porque la segunda
interpretó que la plataforma no es un peldaño, interpretación opuesta a la de la primera.
Finalmente, ambas empresas se repartieron solidariamente los costes derivados de no
compartir un vocabulario común.
© Miguel Ángel Abián, 2005
Página 58 de 103
http://www.javahispano.org
6. RDF y RDFS: el pegamento semántico
6.1 RDF y RDFS
RDF (Resource Description Framework, marco de descripción de recursos) es un
lenguaje para representar información sobre recursos de la Web (metadatos). Según el
W3C, el objetivo de RDF radica en “especificar semántica para los datos basados en
XML, de una manera interoperable y estandarizada”. Debido a su carácter general,
también puede representar datos.
¿Por qué se recurre a RDF para describir recursos, y no a XML? El motivo estriba
en que XML no es apropiado para incluir semántica, tal como se vio en el apartado
anterior. El modelo de un dominio puede representarse con varias DTD o varios
esquemas XML, y una DTD o un esquema pueden corresponder a muchos modelos
distintos. Por así decirlo, XML no está orientado a objetos.
Ejemplo de la ambigüedad semántica de XML
Usuario
compra
Producto
Rubén compra la silla ref. 120 en la compra con código 112
<compra codigo=“112”>
<usuario>Rubén </usuario>
<producto>silla ref. 120</producto>
</compra>
<producto nombre =“silla ref. 120”>
<comprador>Rubén
<compra codigo=“112” />
</comprador>
<usuario nombre =“Rubén”>
</producto>
<compra codigo=“112”>
<producto>silla ref. 120</producto>
</compra>
</usuario>
Miguel Ángel Abián, agosto de 2005
Figura 28. Una relación tan sencilla como ésta puede codificarse en XML de
distintas formas. Partiendo de los DTD o de los esquemas XML correspondientes a
los tres ejemplos, resulta imposible determinar cuál es la relación (compra) y
cuáles son los objetos (usuario y producto)
© Miguel Ángel Abián, 2005
Página 59 de 103
El futuro de la Web
Si bien suele decirse que RDF es un lenguaje (como he escrito al principio de este
apartado), lo cierto es que resulta más exacto describirlo como un modelo de datos para
las instancias de metadatos o, por abreviar, como un modelo de metadatos. En RDF, la
construcción básica es la tripleta (sujeto, propiedad, objeto). Toda tripleta RDF
corresponde a una sentencia RDF: la parte que identifica a qué se refiere la sentencia es
el sujeto; la parte que identifica la característica del sujeto a la que se refiere la
sentencia es la propiedad o el predicado; la parte que identifica el valor de la propiedad
es el objeto.
En la figura 29 se incluye la representación gráfica de una tripleta de RDF.
RDF (Resource Description Framework )
RDF es una recomendación del W3C para describir recursos
En RDF, el concepto fundamental es la tripleta, que se
representa como nodos conectados por líneas con etiquetas
(los nodos representan recursos; las líneas con etiquetas,
propiedades de estos recursos). Los tres elementos de una
tripleta se representan mediante URIs
El correo [email protected] pertenece a la empresa identificada por
http://www.miempresa.es
Sujeto
Propiedad
Objeto
http://www.terminos.es/empresas/correo
mailto:[email protected]
http://www.miempresa.es
Miguel Ángel Abián, julio de 2005
Figura 29. Fundamentos de RDF
Los sujetos, las propiedades y los objetos son recursos. Los recursos con que
trabaja RDF no son necesariamente recursos presentes en la Web: pueden ser
personas, animales, objetos materiales, números de teléfono o de fax, reuniones, ideas o
conceptos, etc. En general, un recurso RDF es cualquier cosa con identidad. Para
identificarlos se recurre a los URI (Uniform Resource Identifier, identificadores uniformes
de recursos). Estos localizadores son como unos URL universales (Uniform Resource
Locator, localizadores uniformes de recursos), que no se limitan a identificar entidades
que tengan localizaciones en la Web o que sean accesibles mediante aplicaciones
© Miguel Ángel Abián, 2005
Página 60 de 103
http://www.javahispano.org
informáticas. Cualquier organización o persona puede crear URIs y usarlos para trabajar
con sus dominios de interés. Frente a los URL, los URI permiten referirse a un mismo
recurso ubicado en distintas localizaciones.
Los URI no tienen significado por sí mismos: son identificadores, y la persona o la
organización que los crea se responsabiliza de darles significado. Así, para
www.miempresa.com, “correo” puede significar “correo general de una empresa”,
mientras que para otra empresa (www.aidima.es, vaya por caso) puede significar “correo
de la persona de contacto de una empresa”. Una aplicación que extraiga datos RDF de
www.miempresa.com y www.aidima.es considerará que las respectivas propiedades
http://www.miempresa.es/empresas#correo y http://www.aidima.es/asociados#correo se
refieren a cosas distintas, si bien será incapaz de averiguar en qué difieren. Igualmente,
una aplicación que encuentre dos o más recursos vinculados a un mismo URI, sabrá que
se refieren a un mismo concepto, aun cuando no podrá saber cuál es. El vocabulario de
RDF se define en el recurso http://www.w3.org/1999/02/22-rdf-syntax-ns#.
Aparte de en forma gráfica o en forma de tripletas (sujeto, propiedad, objeto), las
sentencias RDF pueden representarse en XML (RDF/XML). Consideremos, vaya por
caso, la sentencia “La página web http://www.uv.es/documentacion/java ha sido creada
por Luisa Rodenas”. En la forma de (sujeto, propiedad, objeto) quedaría así:
(http://www.uv.es/documentacion/java, http://www.definiciones.org/definiciones/creador, “Luisa
Rodenas”)
En forma de XML quedaría así::
<?xml version=”1.0”, encoding=”UTF-8”?>
<rdf:RDF
xmlns: rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#”
xmlns:definiciones=“http://www.definiciones.org/definiciones/”>
<rdf:Description rdf:about=“http://www.uv.es/documentacion/java”>
<definiciones:creador>
Luisa Rodenas
</definiciones:creador>
</rdf:Description>
</rdf:RDF>
Encabezado
Cuerpo
Pie
Nótese que la propiedad creador y la página web se representan como URIs,
mientras que el objeto se representa como una cadena de texto. No hay impedimento
ninguno a que el objeto (la persona llamada Luisa Rodenas) se represente mediante
URIs (por ejemplo, como http://www.uv.es/alumnos/lrodenas o mailto:[email protected]).
De hecho, en este caso es mucho más conveniente usar URIs, pues así los programas
no confundirán a la Luisa Rodenas que ha creado una página en la web de la
Universidad de Valencia (España) con otra Luisa Rodenas que, vaya por caso, estudie
en una universidad colombiana. Si usamos una dirección de correo para identificar el
objeto, el código XML correspondiente a la sentencia anterior queda así:
© Miguel Ángel Abián, 2005
Página 61 de 103
El futuro de la Web
<?xml version=”1.0”, encoding=”UTF-8”?>
<rdf:RDF
xmlns: rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#”
xmlns:definiciones=“http://www.definiciones.org/definiciones/”>
<rdf:Description rdf:about=“http://www.uv.es/documentacion/java”>
<definiciones:creador rdf:resource=“mailto:[email protected]” />
</rdf:Description>
</rdf:RDF>
Encabezado
Cuerpo
Pie
La ventaja de usar RDF/XML, esto es, la representación en XML de RDF, estriba en
poder reutilizar todas las herramientas existentes para XML. Se pueden aprovechar los
analizadores sintácticos, las transformaciones XSLT, la representación en memoria de
los objetos XML (mediante DOM/SAX), etc. Resulta importante no identificar RDF con
XML: existe una representación en XML de RDF, pero eso es todo. RDF no está ligado a
XML; si mañana se decide usar otra representación para RDF, no habrá que modificar la
sintaxis de tripletas ni la semántica de RDF.
En la siguiente página se muestra la representación en RDF de una sentencia más
complicada que la anterior.
© Miguel Ángel Abián, 2005
Página 62 de 103
http://www.javahispano.org
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:s="http://example.org/students/vocab#">
<rdf:Description rdf:about="http://example.org/courses/6.001">
<s:students>
<rdf:Bag>
<rdf:li rdf:resource="http://example.org/students/Amy"/>
<rdf:li rdf:resource="http://example.org/students/Mohamed"/>
<rdf:li rdf:resource="http://example.org/students/Johann"/>
<rdf:li rdf:resource="http://example.org/students/Maria"/>
<rdf:li rdf:resource="http://example.org/students/Phuong"/>
</rdf:Bag>
</s:students>
</rdf:Description>
</rdf:RDF>
Figura 30. Representaciones en RDF de la sentencia “El curso 6.001 tiene como
estudiantes a Amy, Mohamed, Johann, Maria y Phuong”. Extraído de la
documentación oficial sobre RDF (W3C)
© Miguel Ángel Abián, 2005
Página 63 de 103
El futuro de la Web
RDF no se asocia a ningún dominio en particular: se puede emplear en cualquier
campo. Cada persona u organización puede definir su propia terminología o vocabulario
mediante lo que se conoce como RDFS (RDF Schema, esquema RDF), que se define en
función de sentencias RDF. Además, RDFS permite especificar las entidades a las que
pueden aplicarse los atributos del vocabulario. Por caso, en el dominio de una biblioteca
se podría usar RDFS para definir un vocabulario concreto (autorDe, tieneCarnetDeSocio,
estaSancionado, etc.) y especificar condiciones tales como que estaSancionado sólo
puede aplicarse a socios de la biblioteca.
¿Resulta verdaderamente necesario definir un esquema para RDF? Sí: un esquema
RDF permite comprobar si un conjunto de tripletas RDF (un conjunto de metadatos, en
definitiva) resulta válido o no para ese esquema. Al disponer de un esquema RDF, se
puede comprobar si las propiedades aplicadas a los recursos son correctas (un reloj no
puede tener una propiedad que sea NumeroSeguridadSocial, p. ej.) y si los valores
vinculados a las propiedades tienen sentido (p. ej., carece de sentido que una propiedad
vendeAccionDeBolsa tenga como valor a un simpático marsupial). RDFS permite
controlar la validez de los valores y restringir las entidades a las cuales pueden aplicarse
ciertas propiedades.
Pese a la similitud ente los términos “esquema RDF” (RDFS) y “esquema XML”, sus
significados son muy distintos. Los esquemas XML, al igual que las DTD, especifican el
orden y las combinaciones de etiquetas que son aceptables en un documento XML. En
cambio, los esquemas RDF especifican qué interpretación hay que dar a las sentencias
de un modelo de datos RDF; mas dejan libre la representación sintáctica del modelo.
Así, un esquema XML puede obligar a que las etiquetas <Producto> de los
documentos XML estén dentro de etiquetas <Vendedor>; pero carece de medios para
expresar que hay una relación vende entre las instancias de Vendedor y las de Producto,
o que un Vendedor es una especialización (subclase) de Persona. En síntesis, los
esquemas XML modelan datos expresados en XML, mientras que los esquemas RDF
(RDFS) modelan conocimiento. Dicho de otra manera: XML y los esquemas XML son un
lenguaje de modelado de datos, en tanto que RDF y RDFS son un lenguaje de modelado
de metadatos.
El modelo de metadatos que RDFS permite expresar coincide con el de los
lenguajes de programación orientada a objetos (Smalltalk, Java, C#), pues permite
expresar clases e instancias. Si no conoce bien estos conceptos, puede consultar estos
tutoriales:
1) http://www.javahispano.org/tutorials.item.action?id=25
2) http://www.javahispano.org/tutorials.item.action?id=33
Advertencia: Debo señalar que, si bien el modelo de datos de RDFS se basa en
el de los modernos lenguajes orientados a objetos (LOO), existe una diferencia
bastante llamativa. A saber: las propiedades definidas en RDFS son globales;
esto es, no están encapsuladas como atributos en las definiciones de las clases.
A diferencia de lo que ocurre en los LOO, RDFS permite asignar a una clase, sin
modificarla, nuevas propiedades. Si desea conocer más sobre las peculiaridades
de los lenguajes de programación orientados a objetos, le remito al tutorial
http://www.javahispano.org/tutorials.item.action?id=33).
© Miguel Ángel Abián, 2005
Página 64 de 103
http://www.javahispano.org
Las restricciones que RDFS introduce son análogas a las de los lenguajes OO con
tipos (C++, Java, C#). Del mismo modo que una propiedad come no puede tener como
valor una piedra, no se puede llamar al método come() de un objeto piedra.
RDFS incluye tres clases principales:
1) rdfs:Resource. Todas las entidades descritas por expresiones RDF
son recursos y se consideran instancias de la clase rdfs:Resource.
Páginas atrás se definió el concepto de recurso en RDF.
2) rdfs:Class. Corresponde al concepto de clase en los lenguajes de
programación orientados a objetos. Las clases RDF pueden
representar páginas web, organizaciones, personas, búsquedas en
la Web, etc. Cada clase es miembro de rdfs:Class, clase de todas las
clases; cuando se crea una nueva clase mediante un esquema RDF,
la propiedad rdf:type del recurso representado por la clase adquiere
como valor el recurso rdfs:Class o alguna subclase de rdfs:Class.
Cuando un recurso tiene una propiedad rdf:type cuyo valor es una
determinada clase, se dice que el recurso es una instancia de esa
clase. Todas las clases son recursos. Una tripleta RDF/RDFS como
(Persona, rdf:type, rdfs:Class) indica que Persona es una clase.
3) rdf:Property. Representa el subconjunto de recursos RDF que son
propiedades. El dominio de estos recursos se describe mediante la
propiedad rdfs:domain, y el rango mediante rdfs:range; las jerarquías
de propiedades se describen mediante rdfs:subPropertyOf.
rdfs:range es una instancia de rdf:Property que se usa para
establecer que los valores de una propiedad son instancias de una o
más clases; rdfs:domain es una instancia de rdf:Property empleada
para establecer que un recurso con una cierta propiedad es instancia
de una o más clases. Por ejemplo: las tripletas (BonoTesoro,
rdf:type, rdfs:Class), (vende, rdf:type, rdf:Property) y (vende,
rdfs:domain, BonoTesoro) establecen que las sentencias
RDF/RDFS con la propiedad vende tienen como sujetos instancias
de la clase BonoTesoro. Otro ejemplo: las tripletas (Banco, rdf:type,
rdfs:Class), (vende, rdf:type, rdf:Property) y (vende, rdfs:range,
Banco) establecen que las sentencias RDF/RDFS con la propiedad
vende tienen como objetos instancias de la clase Banco.
Una propiedad relevante de RDFS es rdfs:subClassOf, que describe una clase
como subclase de otra. Solamente las instancias de rdfs:Class pueden tener la propiedad
rdfs:subClassOf.
Para los metadatos, RDFS define varias propiedades:
rdfs:comment proporciona la descripción en lengua natural de un
recurso. Por ejemplo, <rdfs:comment> “Las neveras enfrían lo que se
introduce en ellas”</rdfs:comment>.
© Miguel Ángel Abián, 2005
Página 65 de 103
El futuro de la Web
rdfs:label proporciona una versión legible para los humanos del
nombre del recurso. P. ej., <rdfs:label>Frigorífico</rdfs:label>.
rdfs:seeAlso especifica un recurso que proporciona información
adicional sobre el recurso principal. P. ej., <rdfs:seeAlso
http://www.vocabulario.es/aparatos</rdfs:seeAlso>.
rdfs:isDefinedBy indica cuál es el recurso donde se define el
recurso principal. Está propiedad es una subpropiedad
(rdfs:subPropertyOf) de la propiedad rdfs:seeAlso.
VOCABULARIO DE RDFS (RDF SCHEMA)
Los usuarios de RDF pueden definir sus propias terminologías mediante
el lenguaje de esquemas RDFS. Con RDFS se puede definir un
vocabulario especializado, especificar las propiedades aplicables a las
clases de objetos y describir las relaciones entre clases. El vocabulario
de RDFS se define en http://www.w3.org/2000/01/rdf-schema#
Clases de RDFS:
Propiedades de RDFS:
a)
rdfs:Resource
a)
rdfs:domain
b)
rdfs:Class
b)
rdfs:range
c)
rdfs:Literal
c)
rdfs:subPropertyOf
d)
rdfs:Datatype
d)
rdfs:subClassOf
e)
rdfs:Container
e)
rdfs:member
f)
rdfs:ContainerMembershipProperty
f)
rdfs:seeAlso
g)
rdfs:isDefinedBy
h)
rdfs:comment
i)
rdfs:label
Miguel Ángel Abián, julio de 2005
Figura 31. Vocabulario de RDFS
El
vocabulario
completo
de
RDFS
se
define
en
el
URI
http://www.w3.org/2000/01/rdf-schema#. En resumen, puede aceptarse que RDFS
proporciona:
•
•
•
•
•
Clases
Jerarquías de clases
Propiedades
Jerarquías de propiedades
Restricciones sobre los dominios y los rangos
© Miguel Ángel Abián, 2005
Página 66 de 103
http://www.javahispano.org
La semántica de RDF y RDFS, expresada mediante la lógica de predicados
(subconjunto de la lógica de primer orden), se explica en http://www.w3.org/TR/rdf-mt/.
Codificar la semántica en un lenguaje formal resulta muy conveniente, pues la hace
inambigua y comprensible para las máquinas. Con un lenguaje formal se proporciona
una base firme para razonar automáticamente.
Por eficacia computacional, RDF y RDFS tienen también sus semánticas
expresadas mediante tripletas (sujeto, propiedad, objeto). En las semánticas se incluye
un sistema de inferencia robusto y completo. Las reglas del sistema de inferencia son de
la forma
SI
ENTONCES
C contiene determinadas tripletas
se añaden a C ciertas tripletas
Donde C es un conjunto no vacío de tripletas. Veamos un ejemplo de regla de
inferencia:
SI
ENTONCES
C contiene la tripleta (?x, rdfs:subclassOf, ?y)
y (y?, rdfs:subclassOf, ?z)
C también contiene la tripleta (?x, rdfs:subClassOf, ?z)
La notación ?x significa “cualquier recurso x”; los nombres de las variables
empiezan con ?. La sentencia (?x, rdfs:subclassOf, ?y) define el conjunto de recursos x
que son subclases del conjunto de recursos y. En román paladino, la anterior regla de
inferencia significa “Si el recurso x es subclase del recurso y y, al mismo tiempo, el
recurso y es subclase del recurso z, entonces el recurso x es subclase del recurso z”.
Reglas de inferencia como la anterior pueden ser aprovechadas por las máquinas
para realizar deducciones. Así, una aplicación que busque información sobre
marsupiales mostrará páginas sobre canguros rojos, aunque en ellas no figure la palabra
“marsupial”, pues podrá deducir que Canguro es una subclase (rdfs:subClassOf) de
Marsupial y que rojo es una propiedad de Canguro. Basándose en esas deducciones, el
buscador concluirá que las páginas sobre canguros pueden interesar al usuario.
Veamos un ejemplo completo de inferencia con tripletas RDF/RDFS. Consideremos
las siguientes tripletas, que actúan como axiomas para la inferencia:
(InspectorSanitario, rdf:type, rdfs:Class)
(InspectorSanitario, rdfs:SubclassOf, Funcionario)
(Restaurante, rdf:type, rdfs:Class)
(inspecciona, rdf:type, rdfs:property)
(inspecciona, rdf:domain, InspectorSanitario)
(inspecciona, rdf:range, Restaurante)
Aceptando lo anterior, se sigue que:
(JuanRodrigo, inspecciona, elBuenTenedor)
(JuanRodrigo, rdf:type, Funcionario)
Es decir: si Juan Rodrigo inspecciona el restaurante “El buen tenedor”, entonces
Juan Rodrigo es funcionario. Un agente inteligente podría usar esta deducción para
buscar los datos sobre Juan Rodrigo en las bases de datos de empleados públicos o
para pedir a la Administración información sobre él.
© Miguel Ángel Abián, 2005
Página 67 de 103
El futuro de la Web
El ejemplo propuesto es muy simple; pero no debemos olvidar que habrá
situaciones con cientos o miles de clases, subclases, instancias, propiedades y
subpropiedades. En tales situaciones se mostrará la verdadera potencia de la
interpretación semántica automática, que permitirá extraer deducciones escondidas entre
avalanchas de datos aparentemente inconexos.
La figura 32 incluye un ejemplo de la representación gráfica en RDFS de una
jerarquía de clases de vehículos. La clase Camion (Truck) es subclase directa de la clase
VehiculoMotor (MotorVehicle). La clase Furgoneta (Van) es subclase directa de la clase
VehiculoMotor y tiene una subclase MiniFurgoneta (MiniVan). A su vez, MiniFurgoneta es
subclase de VehiculoPasajeros (PassengerVehicle), que a su vez es subclase directa de
VehiculoMotor.
Figura 32. Representación en RDF de una jerarquía de clases. Extraída de la
documentación oficial sobre RDF (W3C). En el apartado 7 veremos que esta
jerarquía es una ontología
En la figura 33 se muestra en XML el esquema RDF correspondiente a la figura
anterior. A diferencia de lo que ocurre con XML, RDFS proporciona una representación
única de un modelo de datos.
© Miguel Ángel Abián, 2005
Página 68 de 103
http://www.javahispano.org
<?xml version="1.0"?>
<!DOCTYPE rdf:RDF [<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#">]>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xml:base="http://example.org/schemas/vehicles">
<rdf:Description rdf:ID="MotorVehicle">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
</rdf:Description>
<rdf:Description rdf:ID="PassengerVehicle">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:subClassOf rdf:resource="#MotorVehicle"/>
</rdf:Description>
<rdf:Description rdf:ID="Truck">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:subClassOf rdf:resource="#MotorVehicle"/>
</rdf:Description>
<rdf:Description rdf:ID="Van">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:subClassOf rdf:resource="#MotorVehicle"/>
</rdf:Description>
<rdf:Description rdf:ID="MiniVan">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:subClassOf rdf:resource="#Van"/>
<rdfs:subClassOf rdf:resource="#PassengerVehicle"/>
</rdf:Description>
</rdf:RDF>
Figura 33. Representación en RDF/XML de la jerarquía de clases representada en la
figura anterior. Código extraído de la documentación oficial sobre RDF (W3C). Los
atributos ID se utilizan como abreviaturas. Por ejemplo, el ID “MiniVan” representa
el URI completo http://example.org/schemas/vehicles#MiniVan
© Miguel Ángel Abián, 2005
Página 69 de 103
El futuro de la Web
En la siguiente figura se muestra la descripción RDF/XML correspondiente a la
clase Persona.
Figura 34. Representación en RDF/XML de la clase Persona. Código procedente de la
documentación oficial sobre RDFS
Según el código RDF/XML de la figura superior, Persona es subclase de la clase
Animal (es decir, todas las personas son animales). Una persona tiene un atributo de
edad (age), cuyo valor es un entero. También tiene un número de seguridad social (ssn),
que es un entero. Por último, tiene una propiedad de estado marital (MaritalStatus), que
sólo puede tomar uno de estos valores: casado/a (Married), divorciado/a (Divorced),
soltero/a (Single), viudo/a (Widowed).
© Miguel Ángel Abián, 2005
Página 70 de 103
http://www.javahispano.org
6.2 Aplicaciones de RDF y RDFS
La aplicación más conocida que usa RDF/RDFS es RSS (al principio RSS
significaba Rich Site Summary, luego RDF Site Summary y, finalmente, Real Simple
Syndication). RSS es un vocabulario RDF usado para describir información de manera
que pueda ser reutilizada por muchas partes; su propósito es distribuir (syndication) un
conjunto de titulares llamados canales (feeds o channels). Un canal RSS siempre
contiene un título o cabecera, un breve resumen de la información del canal (una noticia,
p. ej.) y un enlace a la página web donde está el texto completo. Los enlaces a canales
RSS suelen indicarse mediante alguno de estos iconos rectangulares:
Figura 35. Iconos que indican enlaces a canales RSS
En la Web, RSS suele usarse para distribuir las noticias o los contenidos de una
página web. Un uso típico consiste en incluir los titulares de una página web en otra.
Incluso hay páginas web formadas sólo por titulares de otras páginas. Existen programas
llamados lectores o agregadores de canales (feed readers o feed aggregators), que
procesan las páginas web que usan RSS e informan al usuario de los nuevos artículos y
noticias que van publicándose, así como de las modificaciones y actualizaciones que se
van produciendo en las noticias y los artículos ya publicados. El usuario que incluya
varios canales RSS en un lector de canales (es decir, que se suscriba a ellos) accederá a
una versión resumida de las noticias y artículos publicados en distintas páginas web, sin
tener que visitarlas de una en una; eso sí, si desea leer un artículo completo, deberá ir a
la página donde se almacena.
Debo señalar que no todas las especificaciones de RSS están relacionadas con
RDF (las especificaciones 0.91, 0.92, 0.93, 0.94, 2.0 y 2.0.1 no lo están; la 0.9 y la 1.0
sí). En consecuencia, sólo las páginas web que usen la especificación RSS 0.9 o 1.0
(http://purl.org/rss/1.0/) podrán participar, al menos directamente, en la Web semántica.
Aun cuando RSS es la aplicación RDF/RDFS más popular, no constituye un buen
ejemplo de las posibilidades de ambas tecnologías. Por ejemplo, no muestra la
estructura (sujeto, propiedad, objeto), un rasgo diferenciador frente a XML.
© Miguel Ángel Abián, 2005
Página 71 de 103
El futuro de la Web
Canales
Entradas
RSS
Figura 36. Captura de pantalla de una página web (http://www.newsisfree.com/) que
es una compilación de titulares
Por lo general, al trabajar con RSS hay que distinguir entre proveedores de
información y consumidores de información. Los primeros publican canales RSS
donde cada entrada contiene un resumen de alguna noticia. Los segundos usan lectores
de canales RSS para leer los resúmenes de las noticias; si lo desean, acceden a las
noticias completas siguiendo los enlaces de las entradas RSS. Los lectores de canales
RSS ahorran mucho tiempo a los usuarios habituales de muchos sitios web, pues
pueden echar un vistazo rápido a los contenidos de decenas de sitios, sin necesidad de
visitarlos de uno en uno.
© Miguel Ángel Abián, 2005
Página 72 de 103
http://www.javahispano.org
VOCABULARIO BÁSICO DE RSS 1.0
RSS 1.0 ha sido diseñado para ser extensible. Cualquiera puede desarrollar
añadir vocabularios adicionales (módulos, en la jerga de RSS) y añadirlos a
RSS 1.0. Esta flexibilidad permite incluir y procesar tantos metadatos
como uno quiera. El vocabulario que se incluye aquí es el básico.
• <channel>
•
<title>
•
<link>
•
<description>
•
<image>
•
<items>
•
<textinput>
•
•
•
•
•
•
•
•
•
•
•
•
•
<item>
<title>
<link>
<description>
<textinput>
<title>
<description>
<name>
<link>
<image>
<title>
<url>
<link>
Miguel Ángel Abián, julio de 2005
Figura 37. Vocabulario básico de RSS 1.0. Todos los metadatos básicos de una
noticia o un artículo se pueden capturar con este vocabulario
© Miguel Ángel Abián, 2005
Página 73 de 103
El futuro de la Web
<?xml version="1.0" encoding="ISO-8859-1"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://my.netscape.com/rdf/simple/0.9/">
<channel>
<title>Barrapunto</title>
<link>http://barrapunto.com/</link>
<description>La información que te interesa</description>
</channel>
<image>
<title>Barrapunto</title>
<url>http://barrapunto.com/topics/topicbarrapunto.png</url>
<link>http://barrapunto.com/</link>
</image>
<item>
<title>Ondas en el fondo cósmico de neutrinos</title>
<link>http://barrapunto.com/article.pl?sid=05/06/24/129250</link>
</item>
<item>
<title>Visualización de información geográfica utilizando J2EE</title>
<link>http://barrapunto.com/article.pl?sid=05/06/24/1635215</link>
</item>
<item>
<title>Otro nuevo estado de la materia</title>
<link>http://barrapunto.com/article.pl?sid=05/06/24/123219</link>
</item>
<textinput>
<title>Search Barrapunto</title>
<description>Search Barrapunto stories</description>
<name>query</name>
<link>http://barrapunto.com/search.pl</link>
</textinput>
</rdf:RDF>
Figura 38. Archivo RSS extraído de Barrapunto (http://barrapunto.com/)
© Miguel Ángel Abián, 2005
Página 74 de 103
http://www.javahispano.org
Existe otra aplicación, bastante conocida, que usa RDF/RDFS: Dublin Core. Dublin
Core (http://dublincore.org) es un vocabulario desarrollado por la comunidad de
bibliotecología para representar metadatos sobre documentos y recursos. Incluye las
etiquetas que se muestran en la figura 39. Su descripción completa está en
http://purl.org/dc/elements/1.1/).
Figura 39. El vocabulario DublinCore. Extraído de http://dublincore.org/
© Miguel Ángel Abián, 2005
Página 75 de 103
El futuro de la Web
<?xml version="1.0" encoding="iso-8859-1" ?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/"
xmlns:syn="http://purl.org/rss/1.0/modules/syndication/">
<channel rdf:about="http://www.elmundo.es/">
<title>BLOGs de elmundo.es</title>
<link>http://www.elmundo.es/</link>
<description>RSS de elmundo.es - Diario El Mundo del siglo XXI</description>
<dc:language>es</dc:language>
<dc:rights>Copyright 2005, Mundinteractivos</dc:rights>
<dc:date>2005-06-06T15:08+02:00</dc:date>
<dc:publisher>Mundinteractivos</dc:publisher>
<dc:creator>Mundinteractivos - El Mundo</dc:creator>
<dc:description>Blog, James Blog</dc:description>
<dc:subject>Noticias, news, última hora, breaking news, españa, spain, europa</dc:subject>
<syn:updatePeriod>hourly</syn:updatePeriod>
<syn:updateFrequency>1</syn:updateFrequency>
<syn:updateBase>2001-01-01T00:00+00:00</syn:updateBase>
<items>
<rdf:Seq>
<rdf:li rdf:resource="http://www.elmundo.es/elmundo/2005/06/03/cineclu/1117794469.html" />
<rdf:li rdf:resource="http://www.elmundo.es/elmundo/2005/06/02/cineclu/1117713388.html" />
</rdf:Seq>
</items>
<image rdf:resource="http://www.elmundo.es/imagen/canalima.gif" />
</channel>
<image rdf:about="http://www.elmundo.es/imagen/canalima.gif">
<title>elmundo.es</title>
<url>http://www.elmundo.es/imagen/canalima.gif</url>
<link>http://www.elmundo.es/</link>
<dc:creator>Mundinteractivos (internet at elmundo.es)</dc:creator>
</image>
<item rdf:about="http://www.elmundo.es/elmundo/2005/06/02/cineclu/1117713388.html">
<title>¡Menos humos! (prohibido fumar en la pantalla)</title>
<link>http://www.elmundo.es/elmundo/2005/06/02/cineclu/1117713388.html</link>
</item>
</rdf:RDF>
Figura 40. Este documento, extraído de la versión digital del diario español El Mundo, usa
el vocabulario RDF conocido como Dublin Core
Por ejemplo, está es la definición en RDFS de la propiedad rights:
- <rdf:Property rdf:about="http://purl.org/dc/elements/1.1/rights">
<rdfs:label xml:lang="en-US">Rights Management</rdfs:label>
<rdfs:comment xml:lang="en-US">Information about rights held in and over the
resource.</rdfs:comment>
© Miguel Ángel Abián, 2005
Página 76 de 103
http://www.javahispano.org
<dc:description xml:lang="en-US">Typically, a Rights element will contain a rights
management statement for the resource, or reference a service providing such information.
Rights information often encompasses Intellectual Property Rights (IPR), Copyright, and
various Property Rights. If the Rights element is absent, no assumptions can be made about
the status of these and other rights with respect to the resource.</dc:description>
<rdfs:isDefinedBy rdf:resource="http://purl.org/dc/elements/1.1/" />
<dcterms:issued>1999-07-02</dcterms:issued>
<dcterms:modified>2002-10-04</dcterms:modified>
<dc:type rdf:resource="http://dublincore.org/usage/documents/principles/#element" />
<dcterms:hasVersion rdf:resource="http://dublincore.org/usage/terms/history/#rights-004" />
</rdf:Property>
En la página siguiente vemos cómo se describiría con el vocabulario DublinCore el
vídeo al cual pertenece el siguiente fotograma.
Figura 41. Fotograma del vídeo musical de la canción Atmosphere del grupo Joy
Division, dirigido por Anton Corbijn. Se reproduce sin ánimo alguno de lucro
© Miguel Ángel Abián, 2005
Página 77 de 103
El futuro de la Web
<?xml version="1.0" encoding="iso-8859-1" ?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<rdf:Description rdf:about="http://videos.ejemplo.com/joydivision/atmosphere.mpg">
<dc:creator>Anton Corbijn</dc:creator>
<dc:title>Vídeo musical de Atmosphere</dc:title>
<dc:description>Vídeo rodado en España en 1988. Se desconoce en qué playa se rodó.
Duración: 4 min 26 seg. La calidad de la imagen es buena. En el Reino Unido, fue editado
por Factory Communications Ltd (FACV 213), como apoyo promocional al recopilatorio
Substance de Joy Division. </dc:description>
<dc:date>1988-06-20</dc:date>
</rdf:Description>
</rdf:RDF>
Los metadatos basados en XML o en RDF pueden usarse no sólo para describir
recursos audiovisuales, sino también para describir fragmentos de éstos (escenas,
secuencias, fotogramas), de modo que puedan encontrarse los fragmentos de interés
mediante búsquedas. Por ejemplo, un aficionado a las películas de Stanley Kubrick
podría “etiquetar” semánticamente cada fotograma de 2001: A Space Odyssey, con el fin
de encontrarlos rápidamente mediante búsquedas por palabras clave.
© Miguel Ángel Abián, 2005
Página 78 de 103
http://www.javahispano.org
EJEMPLO DE ANOTACIONES SEMÁNTICAS
CON MPEG-7
Descripción en MPEG-7 de una
secuencia de una pélícula
<Mpeg7>
<Description xsi:type="SemanticDescriptionType">
<Semantics>
<Label>
<Name> Fotograma de 2001 </Name>
</Label>
<Definition>
<FreeTextAnnotation>
Momento en que el mono golpea contra un
esqueleto el hueso que le ha servido de arma.
Este fotograma precede a una de las elipsis
cinematográficas más brillantes de la
historia del cine, la cual representa un
salto de miles de años.
</FreeTextAnnotation>
</Definition>
<MediaOccurrence>
<MediaLocator>
<MediaUri> sec9-12.jpg </MediaUri>
</MediaLocator>
</MediaOccurrence>
</Semantics>
</Description>
</Mpeg7>
Miguel Ángel Abián, agosto de 2005
Figura 42. Anotación semántica del fotograma de una película. MPEG-7 es un estándar
para describir los datos multimedia (http://www.cselt.it/mpeg). Se basa en XML y RDF
© Miguel Ángel Abián, 2005
Página 79 de 103
El futuro de la Web
MPEG-7 Description
Content Structure
Content Management
Creation information:
Creation
Creator
Creation corrdinates
Creation location
Creation date
Content Semantics
Still region SR1:
Creation information
Text annotation
Concept C1:
Label
Property
Property
Segment-semantic base
relation:
hasMediaSymbolOf
Concept-semantic
base relation:
hasPropertyOf
Photographer: Seungyup
Place: Columbia University
Time: 19 September 1998
Spatial segment
decompos ition:
No overlap, gap
Media information:
Media profile
Media format
Media instance
Comradeship
Object-event
relation:
hasAccompanierOf
Still region SR2:
Text annotation
Color structure
Shake hands
Object-event
relation:
hasAgentOf
704x480 pixels
True color RGB
http://www.alex&ana.jpg
Alex
Ana
Usage unformation:
Rights
Columbia University,
All rights reserved
Still region SR3:
Text annotation
Matching hint
Color structure
Directional spatial
segment relation:
left
Segment-semantic base
relation:
hasMediaPerceptionOf
Agent object
AO1:
Label
Person
Event EV1:
Label
Semantic time
Semantic place
Agent object
AO2:
Label
Person
Figura 43. Ejemplo de las posibilidades que ofrece MPEG-7 para describir recursos
audivisuales. Imagen de Ana B. Benítez
La extensión Piggy-Bank (http://simile.mit.edu/piggy-bank/) para el navegador web
Firefox (http://www.mozilla.org/products/firefox/), mencionada ya en el apartado 3, extrae
la información RDF asociada a las páginas web visitadas. Si las páginas web no
contienen información RDF, permite generarla a partir del código HTML de la página y
almacenarla en el ordenador. Es decir, esta extensión separa los metadatos, del código
de formato de la página, y permite almacenarlos en RDF. En consecuencia, el usuario
puede extraer información RDF procedente de distintas fuentes, guardarla en su
ordenador y navegar uniformemente por ella.
La posibilidad de obtener una vista unificada de los datos provenientes de múltiples
fuentes resulta muy útil. Imagine el caso de un usuario que acaba de comprar un
automóvil y desea comparar las condiciones que le ofrecen las compañías aseguradoras.
Con un navegador ordinario, el usuario tendría que mantener abiertas distintas ventanas,
cada una con la página web de una aseguradora. Empleando la extensión Piggy-Bank, el
usuario verá toda la información relevante en una misma ventana, de una forma
© Miguel Ángel Abián, 2005
Página 80 de 103
http://www.javahispano.org
homogénea (no con los diferentes formatos de las páginas web de las aseguradoras), y
podrá navegar por ella sin tener que saltar de una ventana a otra.
Figura 44. La extensión Piggy-Bank del navegador Firefox presenta, en una vista
unificada, información procedente de múltiples fuentes. Imagen extraída de la
documentación oficial sobre Piggy-Bank
Ahora que hemos visto las características fundamentales de RDF/RDFS y algunas
de sus aplicaciones, podemos apreciar mejor sus ventajas semánticas frente a XML. De
un lado, las unidades semánticas de un dominio se expresan naturalmente mediante la
estructura (sujeto, propiedad, objeto) de RDF. Esto es, RDF tiene un expresividad casi
universal (permite representar casi todo lo que uno desee). El modelo de un dominio, con
© Miguel Ángel Abián, 2005
Página 81 de 103
El futuro de la Web
sus objetos y relaciones, se representa naturalmente en RDF, sin ambigüedades. Por
ejemplo, la relación de la figura 28 (usuario compra producto) se representa en RDF de
una sola manera; con XML había distintas posibilidades.
De otro lado, mientras que una expresión XML no tiene semántica propia (unas
etiquetas anidadas, p. ej., pueden interpretarse como un relación tipoDe, parteDe o
subclaseDe), una expresión RDF/RDFS tiene una semántica propia (verbigracia, el
significado de la relación subClassOf se encuentra perfectamente definido, con
independencia de cualquier analizador o procesador de las expresiones RDF/RDFS). Así
como la semántica de un documento XML la proporciona la aplicación que lo procesa
(porque alguien se la ha programado: p. ej., cuando se recibe una etiqueta <Producto>
hay que transformar la cadena de texto en un double y sumarle el 16% de IVA...) o la
persona que lo lee, la semántica de un documento RDF/RDFS ya va insertada en el
documento, independientemente de cualquier aplicación que lo procese. Es más: un
procesador de RDF/RDFS que no respete la semántica del lenguaje será un procesador
mal programado.
6.3 Nadie es perfecto: desventajas de RDFS
Habiendo llegado hasta aquí, deberíamos preguntarnos si la Web semántica no
sería posible sólo con XML y RDFS (considero que RDF está incluido en RDFS): XML
proporcionaría la interoperabilidad sintáctica; RDFS, la interoperabilidad semántica. La
respuesta es no. RDFS tiene muchas carencias:
•
No se pueden declarar restricciones de rango (rdfs:range) que sean
validas sólo para algunas clases. rdfs:range define el rango de una
propiedad para todas las clases. Así, RDFS no permite expresar que
los televisores sólo funcionan con corriente alterna, mientras que otros
aparatos pueden funcionar con corriente alterna o continua. Veamos un
ejemplo más zoológico: en RDFS no se puede especificar que el rango
de tieneCria es Liebre cuando se aplica a liebres, y Tigre cuando se
aplica a tigres.
•
No se pueden representar algunas características de las propiedades.
En concreto, no se puede declarar que una propiedad es transitiva
(como menorQue), simétrica (como tocaA), inversa (como
raizCuadradaDe y CuadradoDe) o única (como AbueloMaternoDe).
•
No se puede reflejar que unas determinadas clases son disjuntas. Por
ejemplo, la clase Persona tiene asociada dos clases disjuntas (Hombre
y Mujer). En RDFS, puede declararse que Hombre y Mujer son
subclases de Persona, pero no que son disjuntas. En otras palabras:
resulta imposible especificar que ninguna persona puede ser a la vez
hombre y mujer).
•
No permite expresar restricciones de cardinalidad. Por lo tanto, una
propiedad no está restringida en cuanto al número de valores que puede
tomar. Así, no se puede expresar que una cuenta bancaria no puede
tener más de seis titulares o que un hijo siempre tiene un padre y una
madre.
© Miguel Ángel Abián, 2005
Página 82 de 103
http://www.javahispano.org
•
Existen algunas expresiones cuya semántica no es estándar (es decir,
no pueden expresarse mediante la lógica de primer orden). Esta
característica es sumamente indeseable, pues causa que haya
sentencias indecibles (sentencias de las que, dado un sistema de
axiomas o premisas, no se puede afirmar o negar nada).
En suma, RDFS no es lo bastante completo para describir los recursos de la Web
con el detalle que se precisa. Bien: ¿por qué se utiliza? Porque es tan general que puede
emplearse en muchos dominios y porque sirve como “puente” entre los vocabularios de
cada uno.
© Miguel Ángel Abián, 2005
Página 83 de 103
El futuro de la Web
7. Ontologías
7.1 Introducción
Como vimos en el apartado anterior, RDFS no es la mejor solución para describir
recursos de una manera compatible con los objetivos de la Web semántica. Para
conseguirlos, hay que recurrir a lenguajes de descripción del conocimiento más
avanzados. Estos lenguajes son lenguajes formales de ontologías.
La descripción de un dominio de interés (esto es, de sus conceptos y de las
relaciones entre ellos) se llama modelo conceptual del dominio. En el campo de la
informática, los modelos conceptuales deben transformarse en una forma que pueda
almacenarse en la memoria de los ordenadores y que permita aplicar algoritmos.
El propósito de las ontologías, que provienen del campo de la Inteligencia Artificial,
estriba en proporcionar modelos conceptuales con las características descritas en el
párrafo anterior. La definición que el Diccionario de la Real Academia Española (DRAE)
da al término Ontología es la convencional: “Parte de la metafísica que trata del ser en
general y de sus propiedades trascendentales”. Dicho de otra manera: la Ontología
estudia las categorías fundamentales del ser (ser debe entenderse en el sentido de
cualidad de la existencia, no en el de un ser). En informática, una ontología (nótese la
minúscula inicial) designa la descripción de un dominio mediante un vocabulario común
de representación. Alto: no crea que las ontologías son abstracciones para distraer a los
programadores con veleidades filosóficas, inservibles para quienes tienen que llegar a fin
de mes. En realidad, todos los seres humanos usamos ontologías:
La Ontología es la primera ciencia. La Ontología implica descubrir categorías e
incluir objetos en ellas de maneras que tengan sentido. Cuando Aristóteles miró
alrededor del Mundo Antiguo, vio que era valioso empezar a categorizar sus
partes. Dividió el mundo según sus elementos y procesos constituyentes, de los
primeros intentos de clasificación de animales y plantas a la Física y la
Metafísica. Desde Aristóteles, esta tares se ha dividido entre varias ciencias
discretas. La mayoría de los científicos no piensan en lo que hacen como una
ontología; pero, en muchas maneras, es exactamente lo que comenzó
Aristóteles hace dos mil años. Este trabajo continúa no sólo en las ciencias
“duras”, sino también en las ciencias sociales. Es algo que hacemos todos
nosotros, cada día.
Cuando hacemos una lista de cosas que hacer, o de los discos y libros que más
queremos comprar, o de vídeos que intentamos alquilar, estamos categorizando:
estamos dedicándonos a una rudimentaria ontología. Concediendo prioridad a
los elementos de una lista, asignamos relaciones entre varias cosas. La
ontología puede ser relativamente simple o puede ser bastante compleja.
[Center for Commercial Ontolog. Prospectus,
http://www.acsu.buffalo.edu/~koepsell/center.htm]
Toda ontología modela, mediante conceptos y relaciones, lo que conocemos sobre
un dominio o un área de conocimiento. A menudo, las ontologías se representan
mediante clases, propiedades y atributos de las clases, relaciones entre clases y
restricciones sobre los atributos y propiedades de las clases (por ejemplo, una bicicleta
tiene dos ruedas, pero no una o tres).
© Miguel Ángel Abián, 2005
Página 84 de 103
http://www.javahispano.org
Veamos otra definición de ontología:
Especificación de la conceptualización de un dominio del conocimiento [nota
mía: una conceptualización es una visión, abstracta y simplificada, del dominio
que se quiere representar]. Una ontología es un vocabulario controlado que
describe de manera formal objetos y las relaciones entre ellos, y que tiene una
gramática para usar los términos del vocabulario con el fin de expresar algo con
significado dentro de un dominio de interés específico. El vocabulario se usa
para hacer búsquedas y aserciones. Los compromisos ontológicos son acuerdos
para usar el vocabulario de una manera consistente para compartir
conocimiento. Las ontologías pueden incluir glosarios, taxonomías y
diccionarios, pero normalmente tienen más expresividad y reglas más estrictas
que estas herramientas. Una ontología formal es un vocabulario controlado que
se expresa en un lenguaje de representación de ontologías.
[http://members.optusnet.com.au/~webindexing/Webbook2Ed/glossary.htm,
octubre de 2004]
Aunque la definición anterior es la más común, debo señalar que se refiere a
ontologías formales (aquellas que pueden ser usadas por las máquinas). No todas las
ontologías deben ser formales: hay ontologías que se expresan con una forma
restringida y estructurada del lenguaje natural, e incluso mediante el lenguaje natural
(español, francés, inglés...).
En lo que sigue consideraré sólo ontologías formales, que tienen semánticas
formales. Es decir, semánticas que describen el significado del conocimiento de una
forma precisa. La palabra precisa significa aquí que la semántica no se refiere a
opiniones ni intuiciones, y que las máquinas y las personas deben interpretarla de una
misma forma. En definitiva, una semántica formal usa la lógica de primer orden o un
subconjunto de ella (como las lógicas descriptivas). Disponer de una semántica formal
resulta indispensable para implementar sistemas de inferencia o de razonamiento
automático (esto es, sin intervención humana). Las utilidades del razonamiento
automático son varias:
•
•
•
Se puede comprobar automáticamente si una ontología es
consistente con el conocimiento del dominio de interés al cual está
asociada.
Se puede comprobar automáticamente si las relaciones entre las
clases corresponden a los propósitos de la ontología y se pueden
detectar relaciones espurias.
Permite clasificar automáticamente las instancias en clases.
© Miguel Ángel Abián, 2005
Página 85 de 103
El futuro de la Web
Las ontologías son una herramienta para compartir información y conocimiento, es
decir, para conseguir la interoperabilidad. Al definir un vocabulario formal de los
conceptos del dominio y un conjunto de relaciones entre ellos, permiten que las
aplicaciones comprendan la información (uso comprender en el sentido explicado en el
apartado 4). Una DTD se puede considerar como una paupérrima ontología, compuesta
sólo por términos y no por relaciones. También un esquema XML se puede considerar
como una ontología muy pobre (como ya se explicó en el apartado anterior, la semántica
de los esquemas resulta muy rudimentaria para describir el mundo).
¿Qué aspecto tienen las ontologías? Por lo general, toman la forma de una
jerarquía de términos que representan los conceptos básicos de un determinado dominio.
Ejemplo de ontología (1)
André Breton
Class Escritor extends Persona
Nombre: String
Nacionalidad: Pais
FechaNacimiento: Date
FechaMuerte: Date
Movimiento: MovimientoLiterario
Trabajos: Libro (multiplicidad n)
Class Libro extends Obra
Titulo: String
Autor: Escritor
Nadja
Class MovimientoLiterario
Nombre: String
Escritores: Escritor (multiplicidad n)
Surrealismo
Miguel Ángel Abián, julio de 2005
Figuro 45. Una ontología de escritores. La ontología mostrada en la figura define las
clases Escritor, Libro y MovimientoLiterario. Las dos primeras son subclases de otras
dos (Persona y Obra) que, por motivos de espacio, no aparecen aquí. André Breton,
Nadja y Surrealismo son instancias de las clases de la ontología
© Miguel Ángel Abián, 2005
Página 86 de 103
http://www.javahispano.org
Ejemplo de ontología (2)
Red actual
Red semántica
subclaseDe
enlaceA
Escritor
enlaceA
Persona
enlaceA
HTML
HTML
enlaceA
HTML
escribe
enlaceA
HTML
HTML
enlaceA
enlaceA
Libro
perteneceMovimiento
MovimientoLiterario
subclaseDe
enlaceA
HTML
s
Obra
Recurso
HTML
Miguel Ángel Abián, julio de 2005
Figura 46. Las ontologías sirven para establecer redes semánticas
En el entorno de la Web, lo usual es que las ontologías se representen en formato
XML. Este hecho no debe vincularlas indisolublemente con XML, pues una ontología
representa conocimiento; no es un formato de mensajes. A diferencia de las ontologías,
XML carece de una semántica que permita el razonamiento automático. Por ejemplo, una
descripción XML de André Breton y de los libros que escribió no permitiría inferir
conclusiones tan sencillas como que André Breton, por ser Escritor, debe ser una
Persona.
© Miguel Ángel Abián, 2005
Página 87 de 103
El futuro de la Web
7.2 Lenguajes de representación de ontologías y
herramientas
Hay muchos lenguajes que se usan para representar las ontologías o, por mejor
decir, el conocimiento. En el entorno de la Web, los más conocidos son RDFS, OWL y
DAML+OIL. Como DAML+OIL es un lenguaje bastante similar a OWL y está siendo
superado por él, no lo consideraré aquí. De todos modos, el lector interesado en
DAML+OIL puede consultar http://www.daml.org/language/features.html.
RDFS se vio en el apartado anterior, donde también se dio fe de sus limitaciones. Si
bien RDF es un modelo de representación de metadatos, puede usarse como lenguaje
general para la representación del conocimiento. Como ejemplo de ontología
representada en RDF/XML (la sintaxis XML para RDF), incluyo una ontología sobre
derechos de acceso a los recursos de la Web (está extraída de
http://www.w3.org/2001/Talks/0710-ep-grid/slide21-0.html).
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
La ontología se describe
mediante sentencias RDFS
(toda sentencia RDFS válida
es una sentencia RDF).
<rdf:Description about="http://www.w3.org/2001/02/acls/ns#">
<rdfs:comment>A namespace for describing Access Control Lists</rdfs:comment>
<rdfs:comment>$Revision: 1.3 $ $Date: 2001/07/11 00:11:43 $</rdfs:comment>
<rdfs:seeAlso resource="http://www.w3.org/2001/02/acls/acls-for-ns"/>
Define una nueva clase.
</rdf:Description>
En la ontología, nos
referiremos a ella como
ResourceAccessRule.
<rdfs:Class ID="ResourceAccessRule">
<rdfs:label xml:lang="en">Access Rule</rdfs:label>
<rdfs:comment>An assertion of access privileges to a resource.</rdfs:comment>
<rdfs:isDefinedBy resource="http://www.w3.org/2001/02/acls/ns#"/>
</rdfs:Class>
<rdf:Class ID="Identity">
<rdfs:label xml:lang="en">Identity</rdfs:label>
<rdfs:comment>Any entity to which access may be granted to a resource.</rdfs:comment>
<rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
</rdf:Description>
Subclase de Resource.
<rdf:Class ID="Principle">
<rdfs:label xml:lang="en">Principle</rdfs:label>
<rdfs:comment>An Identity to which credentials or other uniquely distinguishing characteristics
may be assigned.</rdfs:comment>
<rdfs:subClassOf rdf:resource="#Identity"/>
</rdf:Description>
Subclase de Identity.
<rdf:Class ID="Group">
<rdfs:label xml:lang="en">Group</rdfs:label>
<rdfs:comment>Collection of Principles.</rdfs:comment>
Subclase de Identity.
<rdfs:subClassOf rdf:resource="#Identity"/>
© Miguel Ángel Abián, 2005
Página 88 de 103
http://www.javahispano.org
</rdf:Description>
<rdf:Property ID="accessor">
<rdfs:label xml:lang="en">accessor</rdfs:label>
<rdfs:comment>The resource identifying an entity (for intance, a user) to whom access privileges
have been granted.</rdfs:comment>
<rdfs:range rdf:resource="#Identity"/>
<rdfs:domain rdf:resource="#ResourceAccessRule"/>
<rdfs:isDefinedBy resource="http://www.w3.org/2001/02/acls/ns#"/>
</rdf:Property>
Propiedad con rango Identity y
<rdf:Property ID="access">
dominio Resource.
<rdfs:label xml:lang="en">access</rdfs:label>
<rdfs:comment>The access privileges extended to an accessor.</rdfs:comment>
<rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
<rdfs:domain rdf:resource="#ResourceAccessRule"/>
<rdfs:isDefinedBy resource="http://www.w3.org/2001/02/acls/ns#"/>
</rdf:Property>
Propiedad con rango Literal y
dominio ResourceAccessRule.
<rdf:Property ID="hasAccessTo">
<rdfs:label xml:lang="en">has access to</rdfs:label>
<rdfs:comment>Relates an Access Rule to the resources to which the rule applies. The inverse
relation is 'accessedBy'</rdfs:comment>
<rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
<rdfs:domain rdf:resource="#ResourceAccessRule"/>
<rdfs:isDefinedBy resource="http://www.w3.org/2001/02/acls/ns#"/>
</rdf:Property>
Propiedad con rango Resource y
</rdf:RDF>
dominio ResourceAccessRule.
La clase Identity se define como una subclase de la clase RDFS Resource, y
Principle se define como subclase de Identity. Por lo tanto, la ontología anterior define
una jerarquía de clases así:
Resource
Identity
Principle
OWL (Web Ontology Language [sic]) es un lenguaje desarrollado por W3C. Es una
extensión de RDFS y emplea el modelo de tripletas de RDF. En cierto modo, es un
RDFS mejorado, que mantiene una buena relación entre eficacia computacional y poder
expresivo. Entre las propiedades que incluye para restringir las instancias de una clase,
se destacan disjointWith (expresa la exclusividad mutua de las clases), unionOf (expresa
uniones de clases) y oneOf (enumera todas las instancias de una clase). Para restringir
los valores de las propiedades, se puede usar rdfs:domain y rdfs:range (provienen de
RDFS), TransitiveProperty (indica que una propiedad es transitiva), inverseOf (indica que
una propiedad es inversa de otra), minCardinality (especifica el número mínimo de
elementos que participan en una relación), maxCardinality (especifica el número máximo
de elementos que participan en una relación).
© Miguel Ángel Abián, 2005
Página 89 de 103
El futuro de la Web
Como puede verse, OWL tiene mucha más capacidad expresiva que RDFS.
Además, OWL facilita la importación y exportación de clases: incluye propiedades como
sameAs, equivalentClass,
equivalentProperty, differentFrom, etc. Por ejemplo,
equivalentClass permite establecer que la clase onto1:Persona (de la ontología onto1) y
la clase onto2:SerHumano (de otra ontología, llamada onto2) son equivalentes; esto es,
que cada instancia de una clase es también instancia de la otra clase, y viceversa. La
capacidad de expresar que dos entidades son iguales resulta muy útil cuando se integran
o se mezclan ontologías y permite la interoperabilidad.
OWL tiene una sintaxis abstracta (independiente de cualquier representación
computacional), una basada en XML y otra basada en RDF. La siguiente ontología la
expreso mediante la sintaxis abstracta de OWL, con el fin de no vincular las ontologías
con XML. La ontología, con algunos cambios y traducida, se ha extraído de
http://www.cs.man.ac.uk/~horrocks/ISWC2003/Tutorial/.
Ontology(
Definición OWL de la clase planta.
Class(pp:planta partial)
Class(pp:hierba partial pp:planta)
Class(pp:arbol partial pp:planta)
Class(pp:macho partial)
Class(pp:hembra partial)
Class(pp:joven partial)
Class(pp:adulto partial)
Class(pp:anciano partial pp:adulto)
Definición OWL de que hierba es una
subclase de planta. OWL permite expresar lo
mismo con SubClassOf.
Definición OWL de que anciano es una subclase
de adulto. OWL permite expresar lo mismo con
SubClassOf.
Class(pp:mascota complete restriction(pp:es_mascota_de someValuesFrom(owl:Thing)))
La clase mascota sólo puede tomar valores de la
clase OWL Thing cuando participa en la relación
es_mascota_de.
Class(pp:animal partial restriction(pp:come someValuesFrom(owl:Thing)))
Class(pp:gato partial pp:animal)
Class(pp:perro partial pp:animal)
Class(pp:oveja partial pp:animal restriction(pp:come allValuesFrom pp:hierba))
Class(pp:perro partial pp:animal)
Expresión OWL de que una oveja sólo come
(relación) hierba.
© Miguel Ángel Abián, 2005
Página 90 de 103
http://www.javahispano.org
Class(pp:persona partial pp:animal)
Class(pp:hombre complete intersectionOf(pp:persona pp:macho pp:adulto))
La clase hombre es la intersección de las clases
persona, macho y adulto.
Class(pp:mujer complete intersectionOf(pp:hembra pp:persona pp:adulto))
Class(pp:senyora+anciana complete intersectionOf(pp:anciano pp:hembra pp:persona))
Class(pp:senyora+anciana partial
intersectionOf(restriction(pp:tiene_mascota allValuesFrom(pp:gato))
restriction(pp:tiene_mascota someValuesFrom(pp:animal))))
La clase senyoraanciana es la intersección de las clases
persona, hembra y anciano. Además, para la clase
senyoraanciana, la relación tiene_mascota sólo puede
tomar valores de la clase gato. En una palabra: una
señora anciana sólo puede tener gatos como mascotas.
Un amante de los animales tiene como mínimo tres mascotas.
Class(pp:amante+animales complete
intersectionOf(pp:persona restriction(pp:tiene_mascota minCardinality(3))))
Class(pp:propietario+mascota complete
intersectionOf(restriction(pp:tiene_mascota someValuesFrom(pp:animal)) pp:persona))
Class(pp:propietario+gato complete
intersectionOf(pp:persona restriction(pp:tiene_mascota someValuesFrom(pp:gato))))
DisjointClasses(pp:perro pp:gato)
DisjointClasses(pp:joven pp:adulto)
La propiedad come es la inversa de comido_por.
Una instancia no puede pertenecer a la clase gato y a
la clase perro.
ObjectProperty(pp:comido_por)
ObjectProperty(pp:come inverseOf(pp:comido_por) domain(pp:animal))
ObjectProperty(pp:tiene_mascota domain(pp:persona) range(pp:animal))
ObjectProperty(pp:es_mascota_de inverseOf(pp:tiene_mascota))
SubPropertyOf(pp:tiene_mascota pp:gusta_a)
Las personas tienen animales
como mascotas.
Individual(pp:Miguel type(owl:persona))
Individual(pp:Dolly type(pp:oveja))
Individual(pp:Fido type(pp:dog) value(pp:es_mascota_de pp:Luis))
Sentencias sobre individuos: Miguel es una persona,
Dolly es una oveja, Fido es un perro y es mascota de Luis.
© Miguel Ángel Abián, 2005
Página 91 de 103
El futuro de la Web
Individual(pp:Consolacion type(pp:anciano) type(pp:hembra)
value(pp:tiene_mascota pp:Sonrisas))
)
La señora Consolación es una anciana que tiene una mascota
llamada Sonrisas.
La ontología anterior, pese a su simplicidad, ya permite realizar algunos
razonamientos automáticos. De la última sentencia, p. ej., un programa deduciría que
Sonrisas es un gato, pues Consolación es una persona (los propietarios de mascotas son
personas) y, por tanto, es una señora anciana (pues es persona, mujer y anciana). Como
todas las mascotas de las señoras ancianas son gatos, Sonrisas debe ser un minino.
Figura 47. Traducción de las clases de OWL al modelo UML de Java
© Miguel Ángel Abián, 2005
Página 92 de 103
http://www.javahispano.org
En http://onto.stanford.edu:8080/wino/index.jsp puede hallarse un agente que
recomienda vinos a partir de una base de conocimiento, compuesta por una ontología de
vinos y comidas y por un sistema de razonamiento automático. Si quiere saber cómo
funcionarán los agentes del futuro, le recomiendo que eche una ojeada a este agente de
vinos, pues muestra perfectamente las tres partes en que se descompone el
funcionamiento del agente: consultar la ontología, realizar búsquedas y dar formato a los
resultados.
Existen varios editores de ontologías gratuitos. Entre ellos, destacan Protégé
(http://protege.stanford.edu/),
Kaon
(http://kaon.semanticweb.org/),
OILed
(http://oiled.man.ac.uk) y ORIENT (http://www.alphaworks.ibm.com/tech/semanticstk).
Exceptuando el penúltimo, todos se basan en Java, lo cual da cuenta del interés que
Java sigue despertando entre los desarrolladores de tecnologías avanzadas. ORIENT es
una extensión (plug-in) de Eclipse.
Figura 48. Edición de una ontología de animales con Kaon
(http://kaon.semanticweb.org/)
© Miguel Ángel Abián, 2005
Página 93 de 103
El futuro de la Web
Después de evaluar exhaustivamente las anteriores herramientas de edición de
ontologías y algunas más, he llegado a la conclusión de que la más recomendable es
Protégé (http://protege.stanford.edu/). Es un editor de ontologías escrito en Java, gratuito
y de código abierto. Tras él hay una gran comunidad de desarrolladores y de usuarios
universitarios, empresariales y gubernamentales. Actualmente, Protégé permite trabajar
con RDFS (las ontologías se pueden exportar a RDFS) y dispone de una extensión para
OWL. Su sencillez y su buena documentación lo hacen ideal para los neófitos en
ontologías.
Figura 49. Protégé en acción. Se está usando una ontología que describe un
periódico. En la imagen se muestra el formulario que permite introducir instancias
de las clases. Captura de pantalla extraída de la documentación oficial de Protégé
© Miguel Ángel Abián, 2005
Página 94 de 103
http://www.javahispano.org
Figura 50. Protégé en acción. Se está usando una ontología que describe un
periódico. En la imagen se muestra tanto el navegador de clases como el editor de
clases. Captura de pantalla extraída de la documentación oficial de Protégé
JENA (http://jena.sourceforge.net/) es un framework desarrollado por los
laboratorios de HP. Su fin es manipular metadatos desde aplicaciones escritas en Java.
En su versión 2, JENA incluye un analizador sintáctico de RDF, una API para RDF, una
API de ontologías que permite trabajar con OWL, DAML y RDFS, un subsistema de
razonamiento y un sistema de persistencia. Por si fuera poco, permite trabajar con el
lenguaje de consultas de RDF (RDQL).
Consideremos el siguiente código en OWL (corresponde a una ontología de
cámaras de fotografía y se ha extraído de la documentación oficial de JENA):
© Miguel Ángel Abián, 2005
Página 95 de 103
El futuro de la Web
<owl:Class rdf:ID="SLR">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Camara"/>
<owl:Restriction>
<owl:onProperty rdf:resource="#Visor"/>
<owl:hasValue rdf:resource="#ATravesDeLaLente"/>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
SLR (Single Lens Reflex) es una cámara cuya lente se usa tanto para enfocar como
para tomar la fotografía.
El código Java que generaría JENA a partir del anterior código en OWL sería éste:
// Se crea la instancia ATravesDeLaLente
OntClass Window = m.createClass(camNS + "Window");
Individual throughTheLens = m.createIndividual(camNS + "ATravesDeLaLente", Window);
// Se crea la propiedad visor
ObjectProperty visor = m.createObjectProperty(camNS + "visor");
// Se crea la restricción tieneValor
RestriccionTieneValor mirarATravesDeLaLente =
m.createHasValueRestriction(null, visor, ATravesDeLaLente);
// Se crea la clase Camara
OntClass Camara = m.createClass(camNS + "Camara");
// Se crea la intersección para definir la clase SLR (un tipo especial de cámara)
IntersectionClass SLR = m.createIntersectionClass(camNS + "SLR",
m.createList(new RDFNode[] { mirarATravesDeLaLente, Camara}));
La manera como se carga un modelo RDF desde Java se ilustra con este ejemplo,
extraído también de la documentación de JENA:
String personURI = "http://enalgunaparte/JuanPerez";
String givenName = "Juan";
String familyName = "Perez";
String fullName = givenName + " " + familyName;
Model model = ModelFactory.createDefaultModel();
Resource juanPerez = model.createResource(personURI);
johnSmith.addProperty(VCARD.FN, fullName);
johnSmith.addProperty(VCARD.N, model.createResource()
.addProperty(VCARD.Given, givenName)
.addProperty(VCARD.Family, familyName));
© Miguel Ángel Abián, 2005
Página 96 de 103
http://www.javahispano.org
Una vez cargado el modelo en la memoria, la información puede recuperarse como
se muestra en este ejemplo:
// Se recupera el recurso Juan Pérez
String johnSmithURI = "http://enalgunaparte/JuanPerez";
Resource jPerez = model.getResource(juanPerezURI);
// Se recupera el valor de la propiedad N
Resource name = (Resource) jPerez.getProperty(VCARD.N).getObject();
// Se recupera el valor de la propiedad FN
String fullName = (String) jPerez.getProperty(VCARD.FN).getObject();
VCARD es una clase que representa una tarjeta para negocios electrónicos. El
modelo de datos representa la tarjeta de Juan Pérez. La propiedad VCARD.N designa el
nombre del usuario de la tarjeta; VCARD.FN designa el nombre completo (nombre y
apellidos).
Java es también el lenguaje con que se ha escrito SMORE
(http://www.mindswap.org/2005/SMORE/), una herramienta que posibilita incluir
anotaciones OWL en documentos HTML. Sus dos principales objetivos son permitir que
el usuario maneje clases, propiedades e instancias de las ontologías que ya existen
(también permite crear ontologías desde cero) y permitir que éste haga el marcado
semántico de sus páginas web al mismo tiempo que las crea.
© Miguel Ángel Abián, 2005
Página 97 de 103
El futuro de la Web
Figura 51. En la imagen pueden apreciarse algunas de las utilidades que SMORE
incorpora: editor de HTML, de RDF/XML, navegador de clases, etc. Captura de
pantalla extraída de la documentación oficial sobre SMORE
© Miguel Ángel Abián, 2005
Página 98 de 103
http://www.javahispano.org
Figura 52. SMORE en acción: haciendo anotaciones semánticas en una página web
7.3 Aplicaciones de las ontologías
En primer lugar, las ontologías pueden usarse para mejorar la búsqueda de
información en la Web y en las intranets de las organizaciones, así como para navegar
por ellas. Si se definieran una o más ontologías para cada dominio, los contenidos web
podrían describirse en función de los términos ontológicos. De este modo, se podrían
expandir las búsquedas mediante términos de las categorías más específicas de la
ontología. Las ontologías evitarían así las ambigüedades en las búsquedas, pues el
usuario podría subir uno o más niveles en la jerarquía de clases para establecer el
sentido del término que usa en la búsqueda. Por ejemplo, en el ejemplo de las antenas
(apdo. 3.1), el buscador web notaría que la palabra “antena” aparece en varias
ontologías y preguntaría al usuario si está interesado en aparatos o en animales. En el
segundo caso, el buscador podría mostrar una lista de especies animales con antenas,
de suerte que el usuario pudiera concretar más su búsqueda. Asimismo, podrían usarse
axiomas que definieran los términos en función de otros términos (por ejemplo, persona
sería lo mismo que ser humano), lo que solucionaría el problema de los sinónimos. La
facilidad con que las ontologías se integran en sistemas de razonamiento automático
permitirá hacer búsquedas como las descritas en anteriores apartados y evitar las
dificultades que se expusieron en el subapartado 3.1.
© Miguel Ángel Abián, 2005
Página 99 de 103
El futuro de la Web
En segundo lugar, las ontologías favorecen la interoperabilidad. Las ontologías
que permiten especificar cómo un término se relaciona con otros términos (las escritas
en OWL, vg.) facilitan la interoperabilidad semántica. Por ejemplo, una ontología podría
especificar que Funcionario es una Persona cuya propiedad organizacion toma el valor
“Estado”. Cualquier aplicación que comprenda los términos Persona y organizacion
podrá usar Funcionario, aunque no entienda (esto es, aunque en su ontología no exista)
el término Funcionario.
En tercer lugar, las ontologías pueden usarse para comprobar la validez de los
datos. Por ejemplo, la anterior ontología de plantas y animales podría usarse para
comprobar si ciertas afirmaciones son válidas o no. En ella, afirmaciones como “El perro
Fido tiene una mascota llamada Miau” serían falsas, pues sólo las personas tienen
mascotas.
Especialmente interesante es el uso de ontologías para la validación de datos
procedentes de bases de datos. Por ejemplo, una ontología que establezca que una
instancia de la clase TrabajadorAutonomo debe estar vinculada a una o más instancias
de la clase ActividadEconomica podría usarse para comprobar que todos los autónomos
registrados en una base de datos tienen al menos una actividad. Del mismo modo,
podría usarse para buscar aquellas actividades sin ningún trabajador asociado
(incompletitud de los datos).
En cuarto lugar, las ontologías son útiles para organizar las colecciones de
recursos multimedia. Las ontologías permiten incluir anotaciones semánticas en
colecciones de imágenes, audio, vídeos y otros recursos no textuales. Actualmente, esos
recursos se indexan mediante metadatos que pueden usarse para buscar mediante
palabras clave. El principal problema de esa forma de trabajar estriba en que cada
persona u organización escoge sus propias etiquetas, lo cual dificulta encontrar los
resultados correctos. Por ejemplo, una búsqueda de imágenes mediante las palabras
clave “presidente” y “Adolfo Suárez” no producirá los mismos resultado que una basada
en “jefe de Estado” y “Adolfo Suárez”. Con las ontologías, los recursos no textuales se
pueden relacionar con información concreta del dominio al que pertenecen, de manera
que encontrarlos sea más sencillo y eficaz. Si no he incluido la clasificación de recursos
multimedia en el punto anterior es porque la búsqueda de recursos multimedia siempre
ha sido mucho más difícil que la de recursos textuales.
En quinto lugar, las ontologías se usarán para programar agentes inteligentes, que
entenderán e integrarán las informaciones procedentes de distintas fuentes. En el futuro,
los servicios web se describirán mediante ontologías. Los agentes las usarán para
buscar los servicios web que les interesen y utilizarlos automáticamente, sin intervención
humana.
En sexto lugar, las ontologías facilitarán el comercio electrónico. En el
subapartado 3.1 se mostró que compradores y vendedores sufren un mismo problema: la
falta de integración de las heterogéneas descripciones de los productos. A menudo, no
existe un consenso sobre cómo describir los productos de un dominio (alimentación, por
caso) y cómo catalogarlos; y las diversas descripciones que los vendedores usan para
sus productos acrecientan la dificultad de buscar productos y servicios de forma rápida y
precisa. Construir catálogos que puedan ser usados por muchos usuarios y
organizaciones no es más que construir una ontología para un dominio.
© Miguel Ángel Abián, 2005
Página 100 de 103
http://www.javahispano.org
Por si fuera poco, las ontologías dotan a los datos de semántica comprensible para
las máquinas y, por tanto, permiten la automatización de muchos procesos. Así, los
agentes que usen ontologías podrán buscar productos, negociar compras, localizar
servicios de interés para los usuarios. En el caso de que varias empresas usen una
misma ontología, sus sistemas de información podrán procesar automáticamente los
datos que intercambien, pues compartirán una misma semántica. Incluso en el caso de
empresas que usen distintas ontologías, existen herramientas que permiten rápidamente
traducir los términos de una ontología a otra o mezclar ontologías, incluso de manera
automática o semiautomática. En suma, el uso de ontologías en las empresas permitirá
hacer negocios electrónicos con otras empresas, de modo automático y sin que sea
necesario ponerse de acuerdo a priori sobre la semántica de los datos. Dicho con otras
palabras: las ontologías y las tecnologías que las usan permitirán, por un lado, que los
compradores localicen productos y servicios con características específicas y, por otro,
que los vendedores localicen a posibles compradores que correspondan a ciertos
perfiles.
RosettaNet (http://www.rosettanet.org/) proporciona un excelente ejemplo de
ontología vertical (propia de un dominio, no de varios) para el comercio electrónico. Esta
ontología semiformal describe en detalle los productos de las industrias de hardware y
software. RosettaNet crea, en primer lugar, definiciones de las propiedades que tienen
ciertos productos habituales en el comercio electrónico. Luego distribuye estas
propiedades entre las empresas y organizaciones relacionadas con el hardware y el
software, con el fin de que enumeren los valores que pueden tener esas propiedades.
Finalmente, distribuye las definiciones de las propiedades y sus valores entre las
empresas, para que usen esas propiedades y valores como formato de descripción de
sus productos. Así, RosettaNet define varios metadatos para la propiedad CPU: Property
Name, Synonym, Property Definition, Dictionary References, Where Used, Property
Type... Incluso hay metadatos que contienen metadatos. Por caso, Property Name
consta de los metadatos Acronym y Abbreviation.
Dos empresas que usan RosettaNet pueden intercambiar automáticamente datos,
pues todas las propiedades tienen un significado bien establecido (interoperabilidad
semántica) y la organización RosettaNet proporciona una sintaxis XML para los
documentos comerciales más habituales (interoperabilidad sintáctica).
© Miguel Ángel Abián, 2005
Página 101 de 103
El futuro de la Web
8. Algunas reflexiones sobre la Web semántica
La Web semántica se acerca ahora más a una realidad que a una visión, pero sería
imprudente omitir los problemas que plantea implantarla y las críticas que ha merecido.
Para empezar, el paso de la Web actual a la semántica tardará un tiempo. No se
pretende que la Web semántica sustituya a la actual, sino que sea una extensión lógica
de ésta. La transición de una a otra no será inmediata, pues los millones de páginas de la
Web no pueden rellenarse de metadatos de un día para otro. Existen herramientas que
permiten, de forma semiautomática, incorporar metadatos a las páginas web, pero no
son prácticas cuando se trata con terabytes de información.
En segundo lugar, la creación de ontologías consensuadas dista mucho de ser una
tarea rápida. En cualquier área de interés, resulta difícil que los actores se pongan de
acuerdo en definir una ontología común. Las ontologías no son verdades inmutables o
absolutas: dependen del punto de vista de los humanos que las crean. Por ejemplo, una
ontología médica describirá a las personas de una forma completamente distinta a como
lo hace una ontología fiscal o filosófica. La frase “Según el cristal con que se mira, la
botella está medio llena o medio vacía” es muy apropiada para las ontologías. Cualquier
ontología refleja unas concepciones específicas del mundo y del área de interés. No
puede haber ontologías universales, pues cada persona o cada comunidad tienen sus
intereses. Incluso hay diferencias entre las traducciones de una misma ontología, ya que
las palabras pueden alterar su significado al ser traducidas. La palabra “person”, vaya por
caso, tiene en inglés un sentido legal del que “persona” carece en español. Una posible
solución para permitir la interoperabilidad de las ontologías pasa por definir unas
ontologías comunes, útiles para el intercambio de información entre distintas partes, que
sean compatibles con las ontologías particulares de cada área de interés.
En tercer lugar, algunos piensan que la Web semántica tardará muchísimo en
materializarse; pues la relacionan con la Inteligencia Artificial, campo donde los avances
han sido muy lentos. Poco peso tiene esta crítica: ya vimos en el apartado 4 que asociar
la Web semántica con la IA resulta incorrecto. El planteamiento de la Web del futuro
estriba en que los humanos nos tomemos la molestia de añadir metadatos a los datos,
de suerte que las máquinas puedan interpretarlos; no en confiar en que las máquinas
puedan asemejarse a las mentes humanas o en que sean capaces de entender los
lenguajes naturales.
En cuarto lugar, algunos opinan que la Web semántica requiere un esfuerzo inútil.
En otras palabras, creen que no se necesita una nueva Web. Me resulta difícil
comprender esta creencia, pues los problemas de la Web actual son bien patentes para
cualquiera que busque información. Supongo que, cuando Tim Berners-Lee comenzó a
escribir en HTML los nombres y números de teléfono de la gente del CERN, habría
mucha gente que le comentaría la inutilidad de su esfuerzo: ¿acaso no se podían buscar
los números de teléfono en la guía telefónica o en los listines del CERN? En una de las
empresas para las que trabajo, los viejos del lugar recuerdan muy bien su reacción
cuando se introdujo el correo electrónico. Exceptuando al informático de la empresa y al
gerente, todos pensaban que el correo electrónico era bien inútil: ¿para qué iban a enviar
un correo a un compañero, cuando podían dejarle una nota sobre la mesa? (Quizá como
venganza tardía, el informático conserva, enmarcada en la pared de su despacho, una
nota de las que usaban antes del correo electrónico.) Moraleja: mucha gente no percibe
© Miguel Ángel Abián, 2005
Página 102 de 103
http://www.javahispano.org
las ventajas de las nuevas tecnologías hasta que no las han probado, aunque las
desventajas de las existentes resulten incuestionables.
Por último, existe la percepción de que la Web semántica resultará demasiado
compleja (muchas tecnologías distintas, muchos acrónimos). Algunos críticos incluso la
han denominado “Pedantic Web” (el chiste es intraducible al español). No negaré que la
proliferación de nuevos conceptos y lenguajes desconcierta al principio, mas creo que la
pregunta que debemos hacernos es sencilla: ¿son necesarios? En la Web semántica,
serán las máquinas las que razonen a partir de los datos. Como cualquiera puede intuir,
una meta tan ambiciosa no puede conseguirse usando HTML. ¿Tendrá el usuario que
dominar todas las nuevas tecnologías y cursar algún doctorado en Ciencias de la
Computación? No: los usuarios no necesitarán saber RDF ni OWL para navegar por la
Web semántica, del mismo modo que el usuario actual no precisa saber HTML ni
conocer las especificaciones del protocolo HTTP. Incluso los usuarios avanzados que
necesiten escribir sus propias ontologías contarán con editores de ontologías (Protégé, p.
ej.) que les evitarán escribir directamente código RDF o OWL.
Nota biográfica del autor: Miguel Ángel Abián es licenciado en Ciencias Físicas
por la U. de Valencia y obtuvo la suficiencia investigadora dentro del Dpto. Física
Aplicada de la U.V. con una tesina acerca de relatividad general y electromagnetismo.
Además, ha realizado diversos cursos de postgrado sobre bases de datos, lenguajes de
programación Web, sistemas Unix, comercio electrónico, firma electrónica, UML y Java.
Ha colaborado en diversos programas de investigación TIC relacionados con el estudio
de fibras ópticas y cristales fotónicos, ha obtenido becas de investigación del IMPIVA y
de la Universidad Politécnica de Valencia y ha publicado artículos en el IEEE
Transactions on Microwave Theory and Techniques y en el European Congress on
Computational Methods in Applied Sciences and Engineering, relacionados con el
análisis de guías de onda inhomogéneas y guías de onda elípticas.
En el ámbito laboral ha trabajado como gestor de carteras y asesor fiscal para una
agencia de bolsa y actualmente trabaja simultáneamente en los departamentos de I+D y
de Sistemas de la Información de AIDIMA (Instituto Tecnológico del Mueble y Afines),
ubicado en Paterna (Valencia), en tareas relacionadas con proyectos nacionales e
internacionales de I+D e I+D+i. En dicho instituto se están desarrollando proyectos
europeos de comercio electrónico B2B para la industria del mueble basados en Java y
XML (más información en www.aidima.es). Ha impartido formación en calidad,
normalización y programación para ELKEDE (Grecia), CETEBA (Brasil) y CETIBA
(Túnez), entre otros.
Últimamente, aparte de asesorar técnica y financieramente a diversas empresas de
la Comunidad Valenciana, es investigador en las Redes de Excelencia INTEROP
(www.interop-noe.org) y ATHENA (www.athena-ip.org) del Sexto Programa Marco de la
Comisión Europea, que pretenden marcar las pautas para tecnologías de la información
en la próxima década y asegurar el liderazgo de Europa en las tecnologías de la
sociedad del conocimiento. Ambos proyectos tienen como fin la interoperabilidad del
software (estudian tecnologías como J2EE, .Net y CORBA, servicios web, tecnologías
orientadas a aspectos, ontologías, etc.), y en ellos participan empresas como IBM U.K.,
COMPUTAS, SIEMENS, FIAT, TXT, GRAISOFT, SAP, EADS, además de numerosas
universidades europeas y centros de investigación en ingeniería del software.
Sus intereses actuales son el diseño asistido por ordenador de guías de ondas y
cristales fotónicos, la evolución de la programación orientada a objetos, Java, UEML, el
intercambio electrónico de datos, el surrealismo y París, siempre París.
© Miguel Ángel Abián, 2005
Página 103 de 103
Descargar