Planificando un sitio con Web Semántica

La planeación de la web semántica me ha parecido un articulo bastante interesante por lo cual me he tomado la libertad de traducirlo de modo que me sirva para proyectos que diseñe e implemente en el futuro y de paso aportar con conocimiento a alguien mas que este en busca de nuevas tecnologías en el ámbito web.

La dirección del articulo en ingles esta en la siguiente dirección:

http://www.ibm.com/developerworks/xml/library/x-plansemantic/index.html?ca=drs-

Prepara tu sitio para estructurar los datos

La Web semántica trae oportunidades para que los usuarios pueden obtener resultados inteligentes en sus búsquedas, y para sus dueños conseguir mas trafico como usuarios que buscan lo que realmente quieren. Pero estos beneficios no aparecerán mágicamente. Este post te lleva a través de los aspectos de la arquitectura de la información e infraestructura general que necesitas para tomar una verdadera ventaja de esta palpable oportunidad.

Este post discute lo que necesitas saber para hacer tu sitio parte de la Web semántica. Empieza con una discusión de los problemas que la Web Semántica e intenta resolver y moverlo a tecnología involucrada, como Resource Description Framework(RDF), Web Ontology Language (OWL), and SPARQL Protocol and RDF Query Language (SPARQL). Verás como la Web Semántica es dividida en capas desde la web existente. Cubrirán algunas dificultades que quieres saber cuando planificas un nuevo Web Site y darte algunos ejemplos específicos de como usar tecnologías como RDFa y Microformatos para que tu Web Site existente sea parte de la Web Semántica.

Introducción a la Web Semántica

El World Wide Web es el gran recurso de información producido por la humanidad. Desafortunadamente, a pesar que depende de computadoras en su operación, mucha de la información es solamente entendida por humanos y no por computadoras. Mientras las computadoras pueden usar la sintaxis de los documentos HTML para mostrarla en un browser o navegador, las mismas no pueden entender el contenido– la semántica.

La Web Semántica es una visión del futuro de la web de Tim Berners-Lee. Su sueño no esta todavía realizado, suficientes bloques generados son ahora puestos para que tomes ventaja de varias tecnologías de Web Semántica en tu Web Site, incluyendo RDF, OWL y SPARQL. La meta de la Web Semántica es mostrar los recursos de información de la Web como datos que las computadoras puedan interpretar automáticamente.

La web era originalmente todos los documentos. El click sobre un enlace en tu browser web dispara la petición a un Servidor web que te envie un documento, ademas que te los mostraría. El documento puede ser el calendario de los próximos 7 dias, o puede ser un correo de un amigo. El browser realmente no especifica; solo sigue las reglas internas para mostrar la página. Tu debes entender la información en la misma.

Estructurando los datos se agrega valor a esos datos. Con estructura consistente, puede ser usado en mas de una forma. Puedes ver hoy en dia la demanda de la estructura de datos en la proliferación de APIs que se tienen suspendida en sitios web como parte de la Web 2.0 un API esta estructurando datos, de una variedad de fuentes de los poderosos mashups. La idea tras los mashups es que los datos con incluidos de varias fuentes en la Web, cuando son combinados y mostrados en una manera unificada, esta combinación de elementos agrega valor y eleva la fuente de información.

Los APIs individuales que todos estan ocupando para resolver el mismo extracto del problema que la Web Semántica esta intentando direccionar: Exponer el contenido de la web como datos y disparar la combinación de fuentes de datos en diferentes formas al generar un nuevo valor. Mas bien generar y mantener tu propio API, puedes generar tu Web site tomando gran ventaja de la infraestructura de la Web Semántica que ya tiene su lugar. Si tu web site es tu API, puedes reducir la sobrecarga de desarrollarlo y mantenerlo. De forma similiar, generara soluciones personalizadas para cada web site donde quiere poner datos, puedes implementar una solución basada en tecnologías de Web Semántica y tener trabajo intercambiable en muchos web sites — incluyendo web sites que no estaban consciente antes de empezar a desarrollar.

Resumen de tecnologías de Web Semántica

Las tecnologías de Web Semántica pueden ser consideradas en términos de capas, cada capa descansa y extiende la funcionalidad de las debajo de la capas. La Web semántica esta hablando a menudo como si hubiera una entidad separada, es una extensión y mejora de la web existente sino un reemplazo.
Figura 1. Pila de la tecnología de la Web Semántica

Pila de la Web Semántica

Pila de la Web Semántica

Como se muestra en la Figura 1, la capa base de la Web Semántica es HTTP y URIs. Son comúnmente consideradas “Web” sino “Web Semántica”, pero cada propósito de la tecnología de la Web Semántica descansa en los principios Web. URIs son los nombres de la Web Semántica. HTTP son los verbos: GET, PUT y POST tambien como un numero de soluciones probadas en los campos de autenticación y encriptación.

El Resource Description Framework (RDF) es una gramática para codificar relaciones. Un triple RDF tiene tres componentes: un sujeto, un predicado (o verbo), y un objeto. Cada uno puede ser expresado como un recurso en la Web, eso es un URI. Es medio ambiguo codificar datos en documentos XML aleatorios. Puedes comparar las diferentes formas de expresar una relación en XML mediante el Listado 1 con el triple RDF en el Listado 2.

Listado 1: Relaciones ambiguas en XML

  • <author>
        <uri>page</uri>
        <name>Rob</name>
    </author>
    
    <person name="Rob">
        <work>page</work>
    </person>
    
    <document href="http://www.example.org/test/page" author="Rob" />

Listado 2 muestra el triple RDF

Listado 2: Relaciones ambiguas en XML

  • <page> <author> <Rob> .

Las relaciones expresadas en los ejemplos mostrados en Listado 1 es “Rob es el autor de página” una simple sentencia– todavía expresada en varias formas en XML. Debería ser difícil generar software que derive esa relación desde todas las maneras posibles de expresarlo en XML. Pero un expresado RDF que relaciona solamente una forma viene a ser factible al generar un parser genérico.

En dias anteriores a la Web semántica, estaba esperando producir contenido debía hacer todo su contenido disponible en RDF y hacer pronto una metafora de los datos disponibles. Desafortunadamente, quizas porque la principal expresión XML de RDF se veia una innecesaria complejidad. de lentitud.

Mas sucesos de representaciones RDF, como Notation3 (N3) y Terse RDF Triple Languaje (Turtle) estan ahora disponibles pero han sido desactivados al sobrevenirse la inercia. Una solución al problema fue inspirada por los microformatos. Con microformatos, el valor semántico es agregado al contenido existente HTML usando patrones consistentes de estándares en elementos y atributos HTML. Microformatos existen para estrechar items comunes de datos como información de contenido e items de calendario. El equivalente de W3C es RDFa, los datos embebidos RDF en XHTML.

La implementación es ligeramente mas compleja que los microformatos pero es lejanamente mas genérico — nada que puedas expresar en RDF, puedes agregarlo a documentos XHTML usando RDFa. A traves de esta técnica la Web Semántica puede ser inicializada en contenido existente web.

Por supuesto el RDF embebido en documentos XHTML como RDFa no es bueno para todos las herramientas de Web Semántica, que requieren salida. La solución W3C para esto es Gleaning Resource Descriptions from Dialects of Languages (GRDDL). La idea es que puedes ejecutar un documento XHTML existente a traves de una transformación XLS al generar RDF. Puedes enlazar cualquier transformación GRDDL a traves de la directa inclusión de referencias o indirectamente a través de perfiles y nombres de documento.

Mientras la ambigüedad expresada semánticamente con RDF es buena, aunque si cualquier lo hizo, es de poco uso si no tienes idea de como el RDF en diferentes sitios es relacionado. El RDF triple en el Listado 2 expresa una relación de autor en el predicado, y mientras el significado puede ser obvio para ti, las computadoras necesitan ayuda. Si expresas una relación de autor en un archivo RDF en un sitio, puede la computadora asumir que fueran la misma cosa? Que si tienes una relación escrita en RDF triple? Necesitas una forma al expresar un vocabulario común, será capaz de decir que mi autor y tu autor son la misma cosa, y que el “autor” y el “escritor” son análogos. En la web Semántica este problema es resuelto por ontologías, y el estándar W3C para expresar ontologías es el Lenguaje de Ontología Web (OWL).

Una vez que tienes algunas fuentes de datos en RDF, y tienes ontologías para permitir determinar las relaciones entre ellas, necesitas una forma de conseguir el uso de información fuera de ellos. El protocolo simple y RDF Query Language (o SPARQL, pronunciado ‘sparkle’) es una sintaxis como SQL para expresar consultas entre datos RDF y ver las consultas que actúen como datos RDF. El paradigma fundamental para SPARQL es un patrón de concordancia y es diseñado para trabajar en la Web como datos combinados al disparar fuentes y ser flexibles. Por ejemplo concordancias pueden ser descritas como opcionales, que lo hacen mucho mejor que en la consulta de datos SQL rotos. Romper datos tiene una impredecible e inconfiable estructura, que es que puedes esperar encontrar si tus datos estan combinados de varias fuentes en la Web sino desde una simple bien controlada base de datos.

Lo que necesitas saber cuando planeas una Web Semántica

Como lo has visto, si generas el próximo gran sito Web 2.0, puedes ahorrar tiempo si planeas desde el inicio a el uso de la tecnología de Web semántica y cambiar tu Web Site en un API, si no crear una API separado para su Web Site. Una Web Semántica te da libre funcionalidad como API. Usualmente una API es una forma de conseguir estructurar datos, en formato XML o JSON, fuera de un Web Site sin estructura. LLeva a un doble acercamiento: Tienes páginas web para consumo humano y tienes un API donde las computadoras pueden meter información estructurada para procesamiento automático. Sin embargo, esto crea trabajo extra para ti; si esperas que la gente haga uso de tu API, entonces tienes que documentarlo, apoyarlo y mantenerlo sincronizado con nuevas características en tu Sitio Web. Con una Web Semántica tu sitio es la estructura de datos. No necesitas una implementación separada. Tu y tus usuarios pueden tomar ventaja de otras herramientas de Web semántica para hacer el procesamiento automático.

Este aumenta algunas dificultades para planearlo. Con un API estas libre de definir tu propio formato de datos para cada item de información que quieres entregar, en la web semántica esto es análogo al definir tu propia ontología. El diseño de ontología puede ser una dificultad al conseguir un poco de experiencia, deberías considerar si cualquier de los grandes arreglos de existencia sera disponible para los tipos de datos que pleneas usar, que será discutido en la siguiente sección.

Cuando diseñas un API usualmente consideras un modelo de objetos para conceptualizar la organización y los desarrolladores pueden entender cuando ellos consiguen la colección de items o simplemente items o que colección de items les pertenecen. En un sitio de Web semántica este será parcialmente determinado por la elección de la ontología, pero tambien por el esquema de URI, Luego veras el acercamiento al hacer tus URIs usables como parte de tu API.

Finalmente en un web site existente tu y tus usuarios todavía se benefician de la web semántica, si actualizan su contenido al tomar ventaja de GRDDL, RDFa y microformatos.

Evaluando tus datos en un contexto de ontología existente

La parte más compleja de la web semántica es diseñar una ontología que iguales tus datos. Llegar a la correcta ontología es usualmente un elemento critico de implementación satisfactoria de proyectos de Web semántica. Afortunadamente, muchas ontologías ya existen. Tabla 1 algunas de ellas.

DublinCore Este elemento estándar metadato para cruce de dominio descripción de recurso provee un simple y estandarizado conjunto de convenciones para describir cosas en linea de manera que sean fáciles de encontrar.
SIOC Semantically-Interlinked Online Communities Project es una ontología que expresa la información contenida explicita e implícitamente en discusión de métodos en Internet, como blogs, foros o listas de correo.
FOAF The Friend of a Friend ontology (Amigo de un amigo) describe individualmente sus actividades y sus relaciones con otra gente y objetos. FOAF permite la descripción de redes sociales en una distribución de moda.
DOAP Description Of A Project (Descripción de un proyecto) es una ontología para describir proyectos open source.
ResumeRDF Esta ontología expresa un resumen o currículum vitae (CV) incluyendo información del trabajo, experiencia académica o habilidades.

Además muchas ontologías son de dominio especifico en campos como tecnología, científico, químico y lingüístico. Estas aplicaran a menos sitios web que las listadas. Un lote de tus datos es como ajustarlos dentro de al menos una de las areas cubiertas por las ontologías en la Tabla 1, en que caso puedes caso puedes incorporarlas en tu planeación.

Eligiendo un esquema semántico URI

Si tu web site es tu API, entonces tus URIs son los métodos que programadores accesará al obtener los datos. Un suceso sensible y estructura consistente es por eso muy importante, necesitas pensarlo en avanzado porque cambios frecuentes después de todo esta lanzado costará la buena voluntad de tu audiencia. Deberías tambien recordar que los componentes de un triple RDF son usualmente URIs. Al cambiarlos invalidará muchos RDF existentes que refieren a tu sitio web.

En dias anteriores a la web, la estructura de URI reflejaba la organización de archivos en un servidor web. Si vendes un particular tipo de widget entre una colección de productos, este URI puede ser similar a: http://www.mysite.com/products/gadgets/widget.html.

La ventaja de esto es que es relativamente semántica clara; si tambien vendes un doodad, entonces un obvio URI donde tu puedes esperar los detalles del producto es: http://www.anothersite.com/products/gadgets/doodad.html.

La relación entre el widget y el dooad es lejanamente claro. El problema principal son inflexibles; la categoría de jerarquía es corregida.

Como un web avanzado genera dinámicamente sitios que son la norma. Pero mientras los sitios fueran mas flexibles con estructura no grande atado a un particular esquema de archivos, el monto de información semántica en el decrementado URI. La página que muestras es determinada por alguna información criptada en la cadena de consulta. Por ejemplo, el URI del widget puede ser: http://www.mysite.com/inventory.cgi?pid=12345 y el URI del doodad puede ser: http://www.mysite.com/inventory.cgi?pid=67890.

Repentinamente la URI te da un poco de valor semántico. Esto ciertamente no es claro que los dos productos pueden estar en la misma categoría. Mas recientemente los sistemas manejadores de contenido (CMS) y los frameworks de desarrollo Web empezaron a direccionar esta dificultad. Ahora es mas fácil tener URI semánticamente estructurada todavia retiene la flexibilidad de páginas dinámicas. Este es alcanzado a través de URIs que se refieren no a un archivo fisico en el servidor, pero el contenido que puede ser entregado de un script o una página en una ubicación diferente. En la configuración de Ruby en el framework Rails es alcanzado a través de rutas (reglas que mapean coincidentes URIs al especificar controladores y acciones). En paquetes CMS la característica depende en mod_rewrite de Apache (o el equivalente en otros servidores) y es a menudo referenciado como “Search engine friendly URIs” (Búsqueda de URIs amigables) o algo similar. Cuando eliges un CMS o framework de desarrollo para tu sitio mira si es capaz.

Una nota final: Si es posible considerar quitar la extensión del nombre de tus archivos en los URIs. La extensión de archivo (.html, .cgi) no provee información semántica que es relevante al usuario y actualmente causa problemas en la ejecución. Si cambias tu web stie al usar PHP en lugar de scripts CGI, repentinamente tienes diferentes URIs pero cumplen el mismo propósito. Esto es malo para el valor semántico de tus URIs, tambien como el ranking Google. Un método mas elegantemente semántico es tomar ventaja de las cabeceras HTTP al hacer negociación de contenido. Considera la siguiente URI:

http://www.mysite.com/products/gadgets/widget.

Un browser generalmente indicaría que prefiere el tipo de contenido usando le cabecera Aceptar HTTP. Cuando pregunta por este recurso, el servidor web puede chequear esa cabecera, note text/html es una de las opciones, y sirve una página HTML. Si tienes una aplicación mashup que quiere RDF entonces la cabecera Aceptar en la petición HTTP debería contener application/rdf+xml y el servidor web de la misma URI puede servir una versión de la página RDF.

Al presente este funcionalidad de negociación de contenido no esta disponible en muchas off-the-shelf soluciones CMS, pero en corto termino debería ser posible para muchos de ellos usar URIs sin las extensiones de archivo, que significa que puedes agregar esta funcionalidad en el futuro sin actualizar el esquema URI.

Tomar ventaja de herramientas de agregado semántico

Si estas emocionado de la web semántica en tu infraestructura web, o solo quieres hacer tu contenido existente mas usado, hay varias oportunidades al incluir estructura al contenido existente en tu sitio web. Este es dominio de microformatos, RDFa y GRDDL. Tabla 2 la información mas común de tipos que puedes fácilmente marcarlos como datos estructurados.

Tabla 2. Oportunidades para marcar la estructura y transformación automática

Tipo de Información Estructura marcada
Gente y Organizaciones hCard, RDF vCard
Calendarios y Eventos hCalendar, RDF Calendar
Opiniones, Ratings y Revisiones VoteLinks, hReview
Redes Sociales XFN, FOAF
Licencias rel-license
Tags, Keywords, Categorias rel-tag
Listas y Outlines XOXO

Agregando el marcado estructurado a tu página es simple. Listado 3 y 4 muestra un fragmento de información de contenido HTML sin ellas y con información adicional de marcado requerido para RDF vCard respectivamente.

Listado 3. Información de contacto sin estructura

  • <div class=”contactinfo”>
    Rob Crowther. Web hacker
    at
    <a href=”http://example.org”&gt;
    Example.org
    </a>.
    You can contact me
    <a href=”mailto:robertc@example.org”>
    via e-mail
    </a> or on my work phone at 0123 456789.
    </div>

Listado 4. Información de contacto usando vCard

  • <div xmlns:contact=”http://www.w3.org/2001/vcard-rdf/3.0#&#8221; class=”contactinfo”
    about=”http://example.org/staff/robertc”&gt;
    <span property=”contact:fn”>Rob Crowther</span>.
    <span property=”contact:title”>Web hacker</span>
    at
    <a rel=”contact:org” href=”http://example.org”&gt;
    Example.org
    </a>.
    You can contact me
    <a rel=”contact:email” href=”mailto:robertc@example.org”>
    via e-mail
    </a>
    or on my
    <span property=”contact:tel”>
    <span property=”contact:type”>work</span>
    phone at
    <span property=”contact:value”>0123 456789</span>
    </span>.
    </div>

En el Listado 4, puedes ver elementos span agregados al delimitar el significado semantico de texto, atributos indicando que significan. Agrega el nombre “contact” enlazado al vocabulario RDF vCard. Luego indica que este elemento es acerca del recurso representado por el URI http://example.org/staff/robertc.

Entonces agregas metadatos usando el atributo rel para enlazar relaciones y el atributo property en no enlaces. La parte ligeramente compleja es el telefono porque necesitas especificar un tipo como un número. Alcanzando esto anidas el tipo y los elementos de valor dentro del elemento tel. Agregando esta estructura permite a los usuarios agregar detalles del contacto a su libro de direcciones con un simple click del mouse.

Otros procesamientos automaticos es posible con otras formas estructuradas, Technorati hace uso de microformato rel-tag al categorizar esta agregación a los post del blog. Un rel-tag es mostrado en el Listado 5, y como puedes ver. es simple un link que hace uso del atributo rel. La parte significativa es la última bit de URI despues del final /.

Esto es el tag (usando la normal convención de configuración URI donde un espacio es representado por un señal plus)

Listado 5 rel-tag para Technorati para el tag ‘semantic web’

Si escribers un post de un blog realacionado a la Web Semántica que incluye el codigo del Listado 5 y haces un ping a tecnorati al dejarle saber que tu hiciste un nuevo post (mucho del software blog puede ser configurado para hacer esto automáticamente), entonces su crawler indexara tu post e incluirá un resumén de la página que tus elementos de tag enlazaron a lo largor de cualquier otros post con el mismo tag (mira la figura 2).

Figura 2.La página ‘web semántica’ en Technorati, generado desde rel-tag

Ejemplo Web Semántica

Ejemplo Web Semántica

Conclusiones

En este articulo, viste como las tecnologias de web semántica direcciona la necesidad para estructurar datos en la web en una manera estandard y consistente, en contraste al actual método popular de que cada sitio definia su propio API. Puede ver como las tecnologias de web semántica agregaron valor en capas del HTTP y URIs en la web existente, primero permitiendo la expresión ambigua de relaciones con RDF, permitiéndoles compartir el significado con OWL ontologías basadas y finalmente consultar el conocimiento distribuido usando SPARQL. El post tambien enfoca en como puedes tomar ventaja de las ontologías existentes al definir que tus datos son y usan un esquema semántico URI al habilitar tu sitio web a ser tu API. Finalmente el post enfoca como puedes actualizar el contenido de tu web existente usando RDFs y Microformatos entonces con servicios GRDDL puedes automáticamente extraer RDF de tus páginas.

A través de la promesa de web semántica de Tim Berners-Lee es todavía a ser realizada, los años de investigación y pensamiento están siendo hechos y empiezan a rendir frutos en términos de soluciones a problemas prácticos de la gente de hoy. La fuerte colaboración de avance en Web 2.0 lidero mas requerimientos para estructuras y codificar los datos disponibles en la red. Con alguna planeación puedes estar en posición de tomar ventaja de las herramientas de la web semántica que te ayudan a suplir esa necesidad.

Recursos

Conseguir productos y tecnologias

  • IBM trial software: Build your next development project with trial software available for download directly from developerWorks.

Discusión

Saludos.

Anuncios