Idea: Google DataBase
Introducción innecesaria (te la podés saltear):
Como les había comentado con anterioridad, soy un tipo al que se le ocurren ideas locas todo el tiempo, y decidí que algunas las iba a ir escribiendo acá en el blog para compartirlas con ustedes. Después de todo, el blog está lleno de ideas mías, el blog se trata de eso en definitiva. En este caso, la idea es algo que yo no podría realizar, aunque quisiera, a menos que me llamen los de Google Inc. y me ofrezcan ir a trabajar al Googleplex… y después de que pase todo eso, no me despierte en mi cama dándome cuenta de que otra vez tuve ese maravilloso sueño de ir a trabajar ahí.
La Idea (la parte importante):
la idea es que Google provea un servicio y una infraestructura para que los creadores de contenido, webmasters, bloggers, etc, puedan crear Bases de Datos (en realidad, tablas) y las puedan incrustrar en sus páginas web. Algo como google docs o el extinto google wave o incluso spreadsheets, pero de tablas.
Vos entrás, creás una tabla en Google DataBase y obtenés un resultado final que sería el código HTML/javascript para incrustar en tu foro, en tu blog, en tu sitio web como ahora se hace con los videos de youtube o como se podía hacer con un documento de Wave o un documento de Docs. Pero la database no sería realmente eso que «se ve», sino que sería una base de datos que le queda a Google en SUS servidores. Google automáticamente analizaría «inteligentemente» esa tabla/tablas que creaste y las relacionaría con otras miles de tablas que crearon otros usuarios sobre la misma temática.
A los usuarios de internet les serviría tener acceso a la información creada por otros. Imaginen un «Google Open DataBase Searcher» que te permita buscar en las DB públicas. ¿Necesitás hacer una linda lista de países, con sus capitales y otros datos, como superficie, clima o iconito de su bandera? Le preguntás a los GODS, encontrás 30 tablas creadas que tienen esos datos, seleccionás la más valorada, copiás el código y lo incrustás en tu página web. ¿No te alcanza? Si tenés una Tabla con los países y sus capitales y banderas… pero no tiene el clima, y otra tabla tiene el clima, pero no las banderas… entonces las mezclas y generás tu propia tabla con países, climas, banderas y capitales. Y cada vez que el autor de la tabla original actualice los datos, si querés, se actualiza también la tuya en tu página (con permiso previo).
Llegado un tiempo, habría suficientes datos, actualizados, dinámicos, (casi) no repetidos, ordenados, configurables, filtrables, editables, etc, etc… de casi cualquier cosa que imagines. Toda esa información disponible para toda la humanidad.
A Google lo beneficiaría porque sería otra forma más de quedarse con nuestros datos, cosa que a ellos les encanta. Además, sería una forma muy eficiente. Y es que el hecho de que los datos estén expresados de forma ordenada en tablas ayudaría muchísimo en los resultados de google. Imaginen: googleás «¿cuáles son los paises con más habitantes del mundo?». Hoy en día, google sólo puede responderte si existe una página web que literalmente diga «Los países con más habitantes del mundo son…», esa información no es dinámica, no sabés si está actualizada y es difícil de utilizar.
Los Google Open DataBase Searchers buscan en las tablas sobre países, la que tengan el campo numérico «cantidad de habitantes» y la ordena por valor, y te pasa los primeros 5 puestos. O preguntas más complejas, gracias a las bases de datos «públicas», se contestarían fácilmente, en un lenguaje que tanto las máquinas (el buscador/interprete de tablas) como los humanos podamos entender. Incluso preguntas súmamente específicas podrían ser contestadas: ¿Cuál es el miembro más antiguo de un determinado foro de internet? ¿Cuántos post por mes publica n3ri.com.ar? ¿Quién fue el antepenúltimo intendente de Calamuchita? ¿Cuál fue el precio del aceite de oliva en el 2008 en todos los supermercados?
Hay cientos de «preguntas» que se le puede hacer a una «tabla», de forma automática, con el uso de una mínima «inteligencia artificial». Si tiene campos numéricos, estos pueden ordenarse, promediarse, filtrarse, sumarse, compararse, agruparse. Si tiene campos de texto también pueden ordenarse, filtrarse, compararse, agruparse.
Para un programa «inteligente» es extremadamente difícil entender el lenguaje humano. Si le das a este supuesto programa un texto que describe, de manera coloquial, sobre los países latinoamericanos y sus capitales y climas, y luego le preguntás «¿cuántos países tienen capital que comienza con C?» le sería literalmente imposible responderte. En cambio, es mucho más posible programar un programa «inteligente» de análisis de Bases de Datos, que pueda «entender» y responder ese tipo de preguntas. Porque un programa puede fácilmente «buscar capitales» en la tabla países, «ordenar por primera letra» y «devolver una lista de países que el campo Capital comience con C».
Si tienen índices y relaciones con otras bases de datos, las combinaciones son innumerables. Siendo ambicioso, se podría generar una enorme base de datos relacionales de «conceptos». Tu tabla de países/capitales, relacionada con mi tabla de mapas de lugares turísticos, mi tabla de mapas relacionada con tu tabla aeropuertos/país, que a su vez está relacionada con una tabla de destinos/precios de la página oficial de una aerolínea. Podrías con una sola pregunta a los GODS saber el precio de los pasajes a tus 3 ciudades favoritas de Europa, ver mapas de sitios turísticos, fotos de los lugares… todo junto, aunque ninguna de las páginas web que crearon esas tablas te ofrezca «toda» la información. Sería como cuando navegás por los artículos/enlaces internos de Wikipedia… pero automático y ordenado. Los GODS «navegarían por esas tablas relacionadas entre sí para darte tu respuesta.
Y menciono a Wikipedia, porque esto es algo que podría ser creado sólo por Google o Wikipedia. Wikipedia ya tiene la información, habría que «convertirla en tablas», pero google tiene el poder económico necesario para hacerlo andar, y la motivación para crear algo como esto. (además, WODS no me hubiera quedado tan bien como nombre de mi invento).
Esto tiene un trasfondo filosófico también: siempre creí que «la información debería ser libre y pública»… y además, ordenada, lo cual la haría… accesible.
Algunos proyectos con ideas similares existen, la wikipedia en cierto sentido, es una «fuente» de datos, editable, abierta y actualizada; pero obviamente no está ordenada en forma de tablas, ni es fácilmente accesible su información desde fuera de la propia página de wikipedia. También he leído sobre «Bases de Datos Abiertas» creadas por universidades o para compartir datos científicos, en especial compartir datos de investigaciones médicas, pero la mayoría son textos y no tablas, ni tienen algún tipo de recolección e interpretación automática de esos datos, como imagino que los GODS harían; aunque sí tiene programas o web apps que permiten subir/bajar información a una base de datos centralizada. Incluso hay Organizaciones que fomentan los «Datos Libres», y hasta hay una licencia copyleft para bases de datos. Estos se parecen filosóficamente muchísimo a la idea que les presento aquí, pero difieren mucho en la implementación.
Luego están los proyectos de Open Data del gobierno norteamericano, imitado por muchas otras instituciones. Y mientras leía el artículo correspondiente en wikipedia, al final me encuentro con una pequeña línea en la que se describe un ejemplo de «uso de bases de datos abiertas» muy similar al que les di yo aquí mismo, y cito: «FlyOnTime.us – Uses data from the Bureau of Transportation Statistics to find the most on-time flight from one city to another.»
Bueno, llegado a esta parte del post, seguí buscando ejemplos de OpenData, y me encontré con una página que hace casi todo lo que yo imaginé… sigo mirando y descubro que Google la compró el año pasado. O sea, es posible que los muchachos de Moutain View estén pensando lo mismo que yo, de hecho, según el artículo de wikipedia sobre FreeBase, ya están usando los datos de esta página en Google News. Además de que con la compra de FreeBase, adquirieron un interesante software que renombraron a Google Refine, que te permite este manejo avanzado de tablas y Open DataBases de las que le hablé. Con un par de videos, en los que muestran lo que podés hacer con esta herramienta. Pero como toda herramienta, no lo hace sola, sino que tenés que hacerlo vos. Pero posiblemente en un par de años tengamos unos GODS funcionales tal y como se los describí aquí.
¿Conclusión? Estamos ante OOOOOOOTRO caso más de una de mis tantas ideas locas que descubro que «otro ya lo inventó, lo produjo y lo vendió por una suma millonaria a Google»


Cradwel
Para mi, dentro de poco encontramos una dirección tipo: n3ri@google.com
V
¡Muy buena idea!
¿Conociste Google Squared?
http://en.wikipedia.org/wiki/Google_Squared
Por otro lado, lo que se investiga en Data Mining, Machine Learning o cualquier disciplina relacionada al Natural Language Processing tiene mucho que ver con tu propuesta, pero a través de la recolección estructurada de datos no estructurados. Es decir, sin necesidad de tablas. Seguramente ya lo hayas tenido en cuenta en tu idea, de todas maneras 😉
Es decir, las propuestas de recolección de datos actuales apuestan a los datos no estructurados y ya no tanto a datos en tablas (que son más cómodos para los robots pero no para los humanos).
N3RI
Si, de hecho esta idea me surgió investigando sobre Data Mining, y pensé que en vez de buscarle una solución al complicado problema de procesar datos no estructurados, podríamos retroceder un paso y ver cómo motivar a «la humanidad» para que produzca más datos estructurados… que son mucho más simples de interpretar para las máquinas.
jMdZ
A mi me suena a Google Table Fusion :S
N3RI
Google Table Fusion sería una pequeña parte, pero no lo más importante de la idea. Sería una pata, pero sin el resto sólo sería un spreadsheet online que se puede exportar. Fusion Tables es más bien un «mostrador de datos» en gráficos, que te permite hacer merge de datos. Y está en uno de los links que puse al final, junto con Google Refine. Además Fusion Tables ya aparece en Google Docs.
Lo importante, lo que describo como «GODS», o sea un sistema «IA» de «data mining» (por describirlo de alguna forma) que interprete la información de esas tablas, las indexe y que se integre con Google Search, es algo que todavía no existe.
Tampoco es parte de la idea de Fusion Tables, que sean «abiertas» y se puedan compartir o «buscar» o usar, es como un Google Spreadsheets, pero de tablas. En ese sentido FreeBase (comprado por Google) se parece mucho más a mi idea que Fusion.
N3RI
Ojo, Mauro, fijate que al final del artículo reconozco que cuando llegué a esa parte, siguiendo links de wikipedia, me enteré de que los putos de google ya habían comprado/hecho algo parecido… me quedé pensando «tiro todo el post a la mierda o lo publico igual?»
Fabio
creo que el único problema que veo así a simplevista es la gran pregunta ¿por qué Google?
¡es algo que podés empezar vos mísmo!
a ver, empezando con tablas básicas, desde países, país-ciudad, país-estado/provincia-codigo postal, etc.
son genéricas, muchas se pueden conseguir.
que uno pueda pedírselas al sitio en base a un XML, JSON o CSV, por ende tenga muy poco costo de procesamiento por parte del sitio, sean siempre archivos planos ,fáciles de servir, fáciles de distribuír.
De esta manera si estás armando tu propio proyecto y te faltan las tablas base, importás las de este mega-sistema proveedor, como un wiki de datos que todo proyecto puede llegar a necesitar.
así tenés por un lado los archivos, construíbles, editables, replicables, y por otro un segmento de datos de encabezado para poder localizarlo , título, descripción, tags, idioma, etc.
Una gran base de dimensiones pero con todas las variantes que cada vez que nos toca programar tenemos que llenar a mano y algo se nos puede olvidar 😛
Sumado a que puede servir de base de conocimientos. Wikipedia falla en este punto, en ofrecer listas que no son fácilmente actualizables, etc.
Es más , podrías linkear cada registro de una tabla a un enlace «fuente» para poder mantenerlos actualizados.
Obviamente FreeBase te mata porque es básicamente eso, pero mucho más complejo. Por ahí haciendo la versión simplificada encontrás un nicho 😛
N3RI
Es que la idea es que Google sea ese «mega-sistema proveedor». Google o Wikipedia. Cualquiera de los dos, porque se dedican a «acumular información de la humanidad», en ese sentido es mejor Wikipedia, pero Google además se dedica «a buscar información».
Obviamente lo tiene que hacer una empresa grande y multinacional, a mí me llevaría años generar algo así, que ellos podrían generar en una semana (o comprarlo hecho). Además, puestos a programar… programaría el sistema GODS, el «intérprete de tablas», esa es la parte interesante.
FreeBase (comprado por Google) es la parte de HACER las tablas, pero luego de hechas… hay que interpretarlas, y eso sería lo que bauticé GODS. Imaginate entrar en google y preguntarle a los dioses (GODS) cosas como «¿cuál es el celular más barato de todos los que se venden en Buenos Aires que tenga sistema operativo Android 7.2 y que su pantalla sea de menos de 4 pulgadas?». Es algo que el google actual no puede responder, pero un sistema así sí podría. Incluso podría, automáticamente, responderte… con una tabla, una que él mismo arme en base a tablas más completas «sobre celulares». GODS encuentra una tabla de celulares que usan android con todas las especificaciones técnicas, creada por Tecnogeek y otra de celulares que vendemos en BsAs, que sólo tiene los nombres, creada por Garbarino. Las lee, las interpreta, las filtra y te crea una tablita 😛
N3RI
Gracias Cradwel, Valentin, Fabio y Mauro por pasarse por acá a comentar.
Diego
Aca esta la parte del principio para incrustar las spreasheets en el blog.
http://docs.google.com/support/bin/answer.py?hl=en&answer=55244
Interesante artículo.
Abrazo