Facebook y Web Semántica: Lo Bueno, lo Malo y lo Feo

6915 lecturas

Hace una semana, en el evento llamado F8, Facebook anunció el lanzamiento de una API (Application Programming Interface) llamada Facebook Graph API. Esta consiste en utilizar muchas de las propuestas que la comunidad de la Web Semántica viene haciendo hace años. Aquí detallo algunas (primeras) impresiones sobre este cambio.

Lo Bueno

Identificadores

Uno de los problemas más básicos en lo que respecta al área de "Representación del Conocimiento" es definir exactamente sobre qué estamos hablando: Por ejemplo, si me refiero a "Nueva York" o "El Padrino" es vital saber si uno se refiere a la ciudad o al estado (en el primer caso) y a la película o a la novela (en el segundo). La solución propuesta por la Web Semántica es asignar a cada cosa una URI (Uniform Resource Identifier) que -aunque técnicamente incorrecto- para el caso significa una "dirección web" (las que empiezan con http://). Cada uno de estos identificadores es universal y representa una sola cosa. Así, podemos identificar "El padrino" (la película) con un identificador diferente al usado para la película "El Padrino". Este identificador es sirve para identificar cualquier cosa (de manera única) en Internet. Así cuando hablamos de películas, ciudades o páginas web, sólo necesitamos indicar cuál URI identifica a cada una de estas cosas. Uno de los beneficios es que los computadores no necesitan ser programados para entender ciudades y películas, pues siempre nos referimos sólo a URIs.

Facebook ha tomado esta idea y parte de su API permite identificar las cosas que ya están en Facebook (como usuarios, páginas, fotos, etc..) usando estas URIs. Así por ejemplo, el identificador de Coca Cola es https://graph.facebook.com/cocacola, mientras que la URI que representa a una foto en particular es https://graph.facebook.com/98423808305.

Un paso más para Linked Data

Pero esto no queda sólo ahí: Una medida que es considerada como buena práctica en la Web Semántica (y en los grupos de Linked Data en general) es que las URIs sean derreferenciables: Esto significa que, además de ser un nombre universal con el que me refiero a cierta cosa, puedo poner esa URI en mi navegador y obtengo más información con respecto a la cosa que estoy mencionando. Así por ejemplo, al momento de poner la página de Coca Cola en el navegador, obtenemos más información (en formato JSON del cual ya habíamos hablado). Eventualmente podríamos encontrar más URIs, las que podríamos seguir poniendo en nuestro browser y seguir encontrando información relacionada(*).

Agregando RDFa (o casi)

Hace un tiempo les había contado de cómo Google había adoptado RDFa, que es una forma de "incrustar" información semántica y metadatos en páginas web. Facebook tomó un enfoque parecido definiendo su Open Graph Protocol. Este consiste básicamente en una serie de tags <meta> que contienen datos sobre de qué se trata la página actual, así como qué clasificación merece la cosa sobre la que se habla (película, foto, etc.).

Lo Malo

Pésima documentación

Uno esperaría que para una empresa tan grande, donde el contenido es lo más valioso que tienen, el desarrollo de aplicaciones sea vital. Sin embargo, esto no es tan claro, dado la falta de documentación (muchas veces confusa, e incompleta) sobre cómo utilizar las diferentes herramientas disponibles. Finalmente, la falta de buenos ejemplos y tutoriales for dummies (así como la falta de respuesta en los foros) hace mucho menos atractiva la nueva API.

OAuth 2.0

Sin ser un experto en seguridad, me encontré con que el mecanismo de validación (basado en OAuth 2.0 y usando múltiples llamadas tipo "ping pong" entre Facebook y la nueva aplicación) era engorroso. Nuevamente, la falta de documentación adecuada, así como la ambigüedad a la hora de pasar parámetros (a través de un GET o pardeando texto plano) hace más difícil crear aplicaciones.

Y… ¿Dónde están los estándares?

Me parece fantástico que Facebook adopte varias ideas que hace tiempo son reconocidas como "recomendables" por mucha gente. Sin embargo quedan varias preguntas: ¿Porqué no usar RDFa en vez de un invento sacado del sombrero como Open Graph Protocol? Los conceptos definidos en OGP existen hace rato en muchos otros vocabularios (como Dublin Core, ampliamente usado por bibliotecarios y científicos en general). Más aún, aunque es una primera iteración del protocolo, llama la atención que toda la descripción sea sólo en los tags META. ¿Que pasa si quiero hablar sobre una película y en la misma página un libro? ¿Cómo sé cuando estoy hablando sobre uno o el otro? ¿Y si quiero hablar sobre cosas que no caen en ninguna categoría mencionada en Open Graph Protocol? Sospecho que se produciría una mezcla que no es necesariamente lo que la gente quiere representar.

Lo Feo

Facebook ha cambiado sus políticas de privacidad de manera unilateral, haciendo públicos una serie de datos, tales como nombre, imagen de perfil, amigos, etc. Esto no le ha gustado a mucha gente, al punto que algunos senadores de EEUU están pidiendo que la FTC intervenga en el asunto.

Aunque desde el punto de vista de los investigadores tener todos esos datos disponibles es un sueño hecho realidad, lo cierto es que mucha gente probablemente no quiere publicar toda esa información y posiblemente ni siquiera saben de estos cambios.

Asimismo, Tim Berners-Lee (creador de la Web) manifestó hace algunos días en la WWW Conference su preocupación sobre el centralizar la información de la Web: La idea de un sistema distribuido, donde la gente no deba depender de una entidad exclusivamente, es un factor importante que permite la libertad y flexibilidad de la Web. Al depender de un sólo proveedor de información estamos sujetos a jugar con las reglas que él determine (como el cambio en las políticas de privacidad) sin que la gente pueda decir mucho al respecto.

(*) Por si acaso alguien encuentra que es una lata poner cada nueva URI en el navegador: Estas técnicas están pensadas para crear programas que puedan entender y navegar estos linos, la idea de ponerlos en el navegador es sólo con fines didácticos.

Imagen: Facebook Developers

Foto de Alvaro

— PhD en Ciencias Cognitivas e Investigador en temas de Open Data, Visualizaciones, Web Semántica, eScience y Web Science. Ingeniero civil en computación. Más información »