YQL: select * from internet
Mashups, det vil sige at blande data fra flere forskellige kilder for at sætte informationen i et nyt kontext, eller se den i et andet perspektiv, for eksempel placere nyhedsrubriker fra flere kilder eller vise husannoncer på et landkort, er næppe noget nyt begreb.
En af udfordringerne med at lave mashups er at de forskellige kilder kommunikerer på forskellige måder, via så kaldte APIer. Udviklere bliver nødt at spørge efter informationen på det rigtige sprog, samt også håndtere at svarene kommer i et format der skal omvandles før det bliver brugbart. Og til andre kilder eksisterer der måske ikke engang et API, uden der må opfindes en måde at hente informationen på.
YQL (Yahoo! Query Language) fungerer som en tolk og oversættere, og lader os spørge efter information på et sprog som ligner SQL (der bruges for at tilgå information i databaser) samt også vælge i hvilket format vi ønsker at modtage svarene på. Første gang jeg hørte om YQL var på Fronteers, en konference i Amsterdam i november 2009, hvor Chris Heilman holdt en meget imponerende præsentation.
Flickr.com har et velfungerende API, men samme funktionalitet er også bygget ind som en modul til YQL for at gøre det endnu nemmere at hente data fra. Og såden her ser syntaksen f eks. ud for at søge efter fotos med teksten “cat” i YQL:
SELECT * FROM flickr.photos.search WHERE text='cat'
Det er også muligt at bruge YQL til at hente information fra kilder hvor der ikke findes et API og heri ligger styrken i at have et fælles sprog for at håndtere informationen;
Hent overskrifterne på casebeskrivelserne fra forsiden på kraftvaerk.net (se resultat):
SELECT * FROM html where url="http://www.kraftvaerk.net" and xpath='//div[@class="panel"]//h3'
Udover disse simple forespørgsler, er det muligt at køre resultatet gennem flere services på en gang, før det returneres. Det er er nemt at f eks hente alle nyhedsheadlines fra New York Times og køre dem igennem Google Translate for at få dem leveret på tysk. Udover at bare hente information findes der også færdig funktionalitet for at opdatere indhold andre steder, for eksempel opdatere en twitter-status.
Læs mere om YQL og se nogle eksempler på applikationer:
- YQL Console – test dine YQL-forespørgsler her
- GooHooBi – Udfør en søgning på Google, Yahoo og Bing samtidlig (se hvordan den bygges)
- Samle data fra flere RSS-feeds på rekordtid
- YQL-the two-minute tutorial på Yahoo! Developer Network
- The web is your CMS – introartikel på 24ways.org af Chris Heilman
- Explaining what YQL is to non-technical people af Chris Heilman
Jeg kan forestille en mængde forskellige applikationsområder hvor YQL kan være brugbart, kan du?
Af:
Björn Rixman
Kategorier: Teknologi