YQL – Yahoo Query Language

27/5/2009 | Tags:, , , , , | Escrito por: Dirceu Pauka Jr.

YQL é uma linguagem que permite buscas nas bases de dados do Yahoo ou em documentos especificados pelo desenvolvedor.

Uma boa maneira de entender o uso dessa linguagem é ver um pouco de código.

JS-Placemaker – geolocate texts in JavaScript é uma demonstração de como utilizar a YQL para buscar informações em uma API do Yahoo chamada Placemaker.
Dê uma olhada no código.

O exemplo usou o Placemaker, porém as outras APIs do Yahoo também podem ser buscadas.

Vamos a outro exemplo, dessa vez utilizando dados de outra API.

API do Twitter pelo Yahoo! YQL

Para quem nunca usou a API do Twitter existe um guia sobre a API.

Twitts de Usuário

Para ver alguns twitts de um certo usuário existe o método statuses/user_timeline. A entrada para ele é o ID do usuário.

Como especificado, uma requisição HTTP para esse método se parece com:
http://twitter.com/statuses/user_timeline.xml?user_id=12345

No YQL é tão simples quanto:

select * from twitter.user.timeline where id=12345

Faça o teste YQL Console

twitter

Esse exemplo utilizou a tabela do Twitter que faz parte do projeto DataTables. Projeto que reúne várias tabelas criadas por outros desenvolvedores.

Então é possivel criar novas tabelas!?

É sim! É possivel até mandar o Yahoo fazer screen scraping e retornar o resultado em JSON!

Mais um exemplo!

Digamos que eu quero fazer um widget para retornar alguns produtos do Submarino.

Cumprindo seu papel de maior e-commerce brasileiro o Submarino não dá a minima para os desenvolvedores e não possui até hoje uma API. Vamos “hackear” uma ;D

A busca pelo site é feito pelo seguinte HTTP GET: http://www.submarino.com.br/busca?q=ipod
Usaremos essa URL para buscar dados no Submarino utilizando a YQL.

A primeira parte para fazer o YQL ler documentos é simples:

select * from html where url=”http://www.submarino.com.br/busca?q=ipod”

A segunda é um pouco complicada. Para entender é necessário o minimo de conhecimento sobre XPath.

Para extrair o XPath da parte desejada do conteúdo usei o Firebug, porém é possivel usar o XPather também.

No Firebug use o “Inspect” para encontrar o elemento desejado:
Firebug

Copie o XPath:
xpath

Com o XPath do elemento HTML “pai” do produto temos a chamada YQL completa.

select * from html where url=”http://www.submarino.com.br/busca?q=ipod” and xpath=’/html/body/div/div[2]/div/div/div/div/div/div/div[2]/div/div/div/ul/li/div/a[3]‘

Abra o Console do YQL e teste. Legal! Temos uma busca de produtos no Submarino retornando XML ou JSON e aprendemos a usar o YQL com APIs do Yahoo, com APIs do DataTables e com qualquer documento da Web ;D

Como fazer um widget de ofertas do Submarino com YQL

Outros artigos relacionados ao Yahoo Open Strategy:

Yahoo! Web Services – apresentação das APIs
SearchMonkey Monkey
Yahoo! SearchMonkey



Yahoo! Web Services – apresentação das APIs

23/5/2009 | Tags:, , , , , , , , , | Escrito por: Dirceu Pauka Jr.

No #brhackday08 o foco dos desenvolvedores do Y! já parecia ser o de abrir a sua API.

Parte do Yahoo Open Strategy, SearchMonkey e BOSS foram os destaques das apresentações, mas uma serie de outros serviços da empresa foram apresentados para os desenvolvedores.

API do Yahoo!

O termo é realmente vago para quem nunca olhou a lista de serviços (web services) que a empresa oferece.

Pipes e SearchMonkey são possivelmente os mais conhecidos. Mas outros produtos do Y! para desenvolvedores são interessantes.

Pipes

O serviço permite a criação de mashups entre outras fontes de dados. O fluxo de dados extraídos das paginas pode ser construído usando uma interface visual bem legalzinha.

yahoo pipes screenshot

SearchMonkey

SearchMonkey é a ferramenta que permite modificar o visual da busca do Yahoo!
As informações que aparecerão nos resultados da buscas podem ser extraídas das paginas usando XPath.

Exemplo de resultado da busca com SearchMonkey:

Search Monkey funcionando

BOSS

Busca aberta. API que retorna os resultados da busca do Yahoo! em JSON ou XML.
É possivel facilmente “re-rankear” os resultados antes de mostrar para o usuário adicionando novas regras.

Music

Essa API pouco conhecida abre possibilidades interessantes para criação de serviços em cima.
Ela dá acesso a informações sobre artistas, álbuns, músicas e vídeos e permite buscas com diversos parâmetros.

Weather

API usada pela Apple em sua aplicação “Weather” do iPhone OS.
Além é claro de poder ser usada em gadgets como iPods e Wii, mashups (principalmente com geodata) podem ser criados com essa ferramenta disponibilizada pelo Y!

Todas essas “fontes de dados” do Yahoo! podem ser usadas de uma melhor forma com geodata.

O Google Latitude está em funcionamento a algum tempo e sua proposta (geo location) vai ajudar muito a filtrar o que rola na real-time web.

O Yahoo! não quer ficar de fora.

Yahoo! Placemaker™ Beta

Lançado recentemente em conjunto junto com o Y! Geoplanet™ o Placemaker™ não é uma solução de geo location.

O que ele faz na verdade é buscar em um documento por informações sobre “locais”.

O exemplo dado pela pagina do projeto é ruim de se entender por não enviar um texto e sim o nome exato do local.
Mas esse exemplo é interessante. Não deixe de ver.

O documento de resposta do Yahoo! contem o que é chamado de woeids.

Mas e ai, o que fazer com um “woeid”?

O woeid é na verdade uma identificação numérica referente a um local no GeoPlanet™.

GeoPlanet™

GeoPlanet é outro webservice do Y!. Lançado junto com o Placemaker promete ser útil em todo futuro desenvolvimento com geodata.
A busca por um “woeid” retorna dados específicos sobre o lugar. Dados que são organizados e catalogados pelo Y! e não exigem nenhum grande trabalho para quem for utilizar o serviço.

YQL

A linguagem de buscas YQL (Yahoo Query Language) é uma grande idéia e códigos que facilitam o uso dela já comeram a serem criados.

Conheça outras APIs do Y! (sim, existem mais!) e saiba o que é YQL e como utilizar a linguagem do Yahoo!



SearchMonkey Monkey

10/11/2008 | Tags:, | Escrito por: Dirceu Pauka Jr.

Comecei a fazer algumas extensões para a busca do Yahoo! (SearchMonkey) lá no Y! Hackday. Decidi não submeter nenhuma delas ao concurso de hacks. Tinha até me arrependido mas passou quando percebi o quanto elas estavam cruas durante a tarde.

Apesar de algumas pessoas dizerem o contrario (em alguns pontos com razão), as possibilidades com o SearchMonkey são muito maiores do que se espera de um produto que abre ao usuário a customização dos resultados de busca. Com tantas possibilidades eu só fui descobrir algumas coisas agora, um tempão após o evento terminar.

Abaixo as 3 extensões que fiz entre ontem e hoje (para adicionar é necessário estar logado no Yahoo!).

GitHub


Adicionar

MySpace


Adicionar

Downloads


Adicionar

Mas a melhor de todas que vou mostrar não foi feita por mim. O Maurício vem trabalhando a algum tempo em cima dessa que ruleia bastante:

BuscaPé


Adicionar



Yahoo! SearchMonkey

21/5/2008 | Tags:, , | Escrito por: Dirceu Pauka Jr.

Escrever sobre tecnologias não estabelecidas é um problema, uma vez que se corre o risco de especular mais do que informar, veja o caso do Google Knol.

Se desinformação pode gerar um pouco de confusão, especular pelo menos faz bem aos neurônios…

Há algum tempo o Yahoo! anunciou que vai abrir sua plataforma para que usuários possam agregar semântica aos resultados da sua busca.

A Web semântica interliga significados de palavras e, neste âmbito, tem como finalidade conseguir atribuir um significado (sentido) aos conteúdos publicados na Internet de modo que seja perceptível tanto pelo humano como pelo computador.
Web Semântica, segundo a Wikipedia.

O que o Yahoo! quer dizer com abrir sua plataforma de busca para que os usuários adicionem informações de dominio específico aos resultados das buscas?

Significa que para mostrar resultados mais relevantes e com mais informações agregadas, em vez de se esforçar para entender todas milhões de maneiras que pessoas criativas usam para criar conteúdo ou forçar essas pessoas a organizarem todo tipo de informação de uma forma só (como muitos projetos de Web Semântica tentam fazer), o Yahoo! foi para um lado diferente. O lado dos Microformats.

E mais! Lógico que toda vez que um novo “formatinho” surgir eles não querem a dor de cabeça de alterar o motor da busca para entender a nova especificação. Por isso o SearchMonkey vai abrir a possibilidade para que desenvolvedores “ensinem” a ferramenta de buscas entender esses pequenos tipos de formatação para informações especificas.

Com a utilização dos Microformatos por uma ferramenta de busca do porte do Yahoo! o que se espera é que os produtores de conteúdo passem a utilizar e que desenvolvedores criem novos formatos. No dia que isso ocorrer e as ferramentas de busca entenderem melhor que tipo de informação estão tratando as buscas deixaram de mostrar resultados desse tipo:

E apresentarão algo mais parecido com isso: