Esta charla tiene por objetivo discutir los patrones de diseño de la web 2.0 y las nuevas tendencias de la web semántica. Los 12 patrones que dirigen la presentación son: Information sharing, User-centered design, MVC architecture, Participation & collaboration, Social networking, Search & recommendation engines, Folksonomy, Community & collective intelligence, Inter-operability & data portability, Rich user experience, Separation of content and presentation, Web as a platform (ubiquity).
Junto con esto se presentan brevemente algunos frameworks y módulos de Python que permiten el desarrollo de este tipo de aplicaciones web. Asimismo, se muestran ejemplos de consumo de APIs de servicios web populares (JSON, XML, feeds y HTML scraping) y un ejemplo de procesamiento de contenido a través de herramientas semánticas.
More info at:
http://ar.pycon.org/2009/conference/schedule/event/30/
Download original slideshow in PDF format at:
http://ar.pycon.org/2009/conference/schedule/event/30/
Licensing and Acknowledgements at: http://ar.pycon.org/2009/conference/schedule/event/30/
Python en la Web Semántica by Santiago Andrés Coffey is licensed under a Creative Commons Reconocimiento-No comercial-Compartir bajo la misma licencia 2.5 Argentina License.
http://creativecommons.org/licenses/by-nc-sa/2.5/ar/
20. HTTP://WWW.E-XAMPLE.COM http://examp.le
BROWSER
DIRECTORY
DIRECTORY WEB SERVER
DIRECTORY
JPG ROUTE DISPATCHER
GIF
CONTROLLER
JS
HTML
HTML MODEL VIEW
HTML
HTML DATA
BASE
SITIO WEB: REPOSITORIO APLICACIÓN WEB:
DE PÁGINAS ESTÁTICAS MULTI-CAPA, CON ESTADO
31. WEB 1.0: NAVEGAR TODO PARA DESCUBRIR
WEB 2.0: TEORÍA DEL ICEBERG
(SÓLO SE VE EL 10%)
32.
33. ¿Qué hace una web semántica?
• Integración (aggregation)
• Definición de ontologías
• Análisis semántico
• Agregado de valor (filtrado,
asociación, recomendación, etc.)
35. ¿De qué habla (cuál es el significado)
el contenido de un determinado
documento HTML?
¿Cuál es el contenido
relevante de un determinado
documento HTML?
¿En qué idioma está un
texto determinado?
36. ¿Qué palabras son equivalentes
entre sí? (stemming)
¿Se pueden inferir tags
automáticamente a partir
de un texto?
¿Cómo se pueden eliminar palabras
comunes como artículos y
preposiciones (stop words)?
37. ¿Cuál es la estructura sintáctica
de una oración o proposición?
(part of speech)
¿Cómo se puede eliminar la
ambigüedad entre los distintos
significados de una misma palabra?
¿Es posible agregar
información del contexto
eficientemente?
38. ¿Cómo se puede mejorar la relación
señal-ruido (signal to noise ratio) de la
información que consume un usuario?
¿Cómo se pueden identificar
digramas en un texto?
¿Cuántas y cuáles son las categorías
apropiadas para clasificar contenidos
en una determinada ontología?
41. WEB 1.0 WEB 2.0
TAXONOMY FOLKSONOMY
(HIERARCHICAL CLASSIFICATION) (COLLABORATIVE TAGGING)
42.
43. PATTERN #8
COMMUNITY &
COLLECTIVE
INTELLIGENCE
44. WEB 1.0 WEB 2.0
CONSTRUIR PORTALES CONSTRUIR COMUNIDADES
45.
46. PATTERN #9
INTER-OPERABILITY &
DATA PORTABILITY
47. RSS
Atom
{json}
Widgets
JSON
<xml/>
RDF
XML-RPC
WEB CRAWLERS / SPIDERS / BOTS WEB SYNDICATION, WIDGETS,
(HTML SCRAPING) OPEN APIs, AGGREGATION
48.
49. Ejemplo: Atom feed
from feedparser import parse
url = 'http://blog.ianbicking.org/'
'feed/atom/'
feed = parse(url)
titles = [i['title'] for i in
feed['entries']]
print 'n'.join(titles)
50. Ejemplo: Twitter API
from urllib2 import urlopen
from simplejson import loads
url = 'http://twitter.com/statuses/'
'user_timeline/JohnCLeese.json'
raw_data = urlopen(url).read()
tweets = [i['text'] for i in
loads(raw_data)]
print 'n'.join(tweets)
51. Ejemplo: GData API
from gdata.service.youtube import
YoutubeService
url = 'http://gdata.youtube.com/feeds/'
'api/users/MontyPython/uploads'
client = YouTubeService()
feed = client.GetYouTubeVideoFeed(url)
titles = [i.title.text for i in
feed.entry]
print 'n'.join(titles)
52. Ejemplo: HTML Scraping
from urllib2 import urlopen
from lxml.html import fromstring
url = ...
html = urlopen(url).read()
root = fromstring(html)
• Demo con Microformats en LinkedIn
60.
WEB
TV
YOUR SYSTEM
IS THE
PLATFORM
THE WEB
IS THE
PLATFORM
PROPRIETARY SPECIFICATIONS WEB STANDARDS
PLATFORM DEPENDENCE DEVICE INDEPENDENCE
BROWSER WARS CROSS-PLATFORM DESIGN
La presentaci&#xF3;n que hoy tengo el honor de compartir con Uds. se trata de la web. De la evoluci&#xF3;n de la web.
Piensen lo siguiente: Hoy en d&#xED;a Internet es una tecnolog&#xED;a que ha transformado al mundo en muchos aspectos, econ&#xF3;micos, sociales, etc. y que BOOM! Hace 20 a&#xF1;os no exist&#xED;a.
&#xBF;Qu&#xE9; hicimos con Internet para que esto sea posible? La web 2.0. &#xBF;Y qu&#xE9; es la web 2.0? Bueno, en realidad deber&#xED;amos preguntarnos qu&#xE9; FUE la web 2.0. Porque la idea de esta charla es hablar un poco tambi&#xE9;n de las tendencias que se empiezan a vislumbrar en el futuro de la web.
La web 2.0 es una segunda generaci&#xF3;n del desarrollo y dise&#xF1;o web.
Entonces, tratemos de analizar cu&#xE1;les fueron esos cambios entre la vieja y la nueva forma de "hacer las cosas" en la web. Para simplificar vamos a referirnos a estas 2 formas de hacer las cosas como web 1.0 y 2.0 respectivamente.
Esto es como cuando alguien cocina algo que sale muy bien. &#xBF;Qu&#xE9; hizo para que le salga tan bien? O sea, &#xBF;cu&#xE1;l es la receta para una web 2.0?
Bueno, se pueden mencionar muchos ingredientes secretos.
Pero creo que se pueden resumir en 12 ingredientes. S&#xF3;lo que los ingenieros de software llaman a esos ingredientes patrones de dise&#xF1;o.
Web 1.0: Internet = Fuente de informaci&#xF3;n
Web 2.0: Internet = Fuente de informaci&#xF3;n <=> Sumidero de informaci&#xF3;n
PATTERN 1: INFORMATION SHARING
++ Ejemplos...
Todos pueden editar y colaborar. Participaci&#xF3;n con comentarios.
Recomendaci&#xF3;n = Valor agregado
++Meaningtool
Tags: Mejor clasificaci&#xF3;n. Colecciones emergentes.
Wisdom of crowds
++ RDF, DBPedia
++ Aprovechar otros servicios (ejemplo: Twitter: EC2 Amazon y URL shorteners, YouTube: CDN Akamai, Facebook: Google Images para thumbnails de links)
Publisher-Subscriber
Demo Microformats LinkedIn
Demo Microformats LinkedIn
Rich Internet Application. Sin cargar nueva p&#xE1;gina. Manejo de eventos por Javascript. Web sem&#xE1;ntica: Web OS?