Acorda pra Web!

Tecnologia que vai mudar nossas vidas, depois do café.

Identifique-se na Internet

Tuesday, April 10th, 2007

Sempre houveram na internet vários meios de se identificar. O primeiro e mais bem sucedido foi o email. Um email é uma identificação pessoal.

Carteira de Identidade NacionalMuitas outras formas de identificação derivadas do email surgiram depois, como o passport .Net, as Google Accounts e tantos outros. Também surgiram as formas de identificação que não são baseadas em emails, como o número de ICQ, screenames (nomes de tela) e usernames (nomes de usuário).

Dentro de determinados sistemas é fácil conseguir informações sobre uma pessoa, com a identificação por email dela. As aplicações do Google compartilham os dados que você digita pra sua Google Account, e você não precisa dizer pra elas qual é o seu nome, endereço, página na internet e tantas outras informações cada vez que se inscreve em um novo produto. O .Net Passport é similar.

O problema é que o email é algo privado, a única informação livre que ele carrega é seu próprio endereço, sua URI.

Pensando em uma maneira de acabar com isso, de fazer com que sistemas diferentes de várias origens saibam identificar pessoas, foram feitos vários esforços nessa área. Um deles é o FOAF Project, um vocabulário pra RDF que permite descrever pessoas e amigos. Também tem o vCard (que já foi citado aqui no blog) e seu irmão hCard.

Essas tecnologias permitem que você transforme sua identificação em algo além de apenas um endereço, fornece um meio de aplicações saberem mais sobre você sem que você tenha que digitar tudo. Isso é Web Semântica!

Um post legal sobre metainformação e URIs é o Give Yourself a URI.

O último passo pra tornar isso uma realidade e acabar com os emails, usernames e screenames para identificação foi o projeto OpenID. Com ele você pode transformar seu endereço de identificação em uma maneira de se autenticar em serviços, bem ao estilo de “usuário e senha”.

Quando você digita sua URI como nome de usuário, o sistema redireciona para o servidor onde você digita sua senha e é redirecionado de volta para o serviço, autenticado.

Pra saber como usar OpenID, dá uma olhada nesse post que explica tudinho.

Anti-blog

Friday, April 6th, 2007

Vi no blog da Ipê um vídeo sobre Web 2.0, que na verdade fala sobre o que eu acho ser Web Semântica. Fui ver a fonte e cheguei em um blog que falava um pouco sobre o vídeo. O nome do autor do vídeo estava lá. Para pesquisar sobre ele, bastava selecionar o nome, copiar e colar na busca. O Blog não deixou eu selecionar texto!

É um anti-blog. Merece um nofollow!

De qualquer maneira, vejam o vídeo. Muito bom.

Exemplos de Web Semântica

Wednesday, March 28th, 2007

Provavelmente você já ouviu falar de Web Semântica. É uma realidade próxima que estamos observando nascer. A melhor maneira de explicar como ela funciona é por exemplos:

Caso 1: O Blogueiro Semântico

650192_magnify.jpg

Como a Web Semântica poderia ajudar a escrever em um blog? Sem dúvida a imagem ideal que tenho é apenas digitar e o blog criar os links pra mim.

Ao citar o fictício Blog do Zé em um post, a minha aplicação de blogs deveria consultar a blogosfera e automaticamente linkar o texto citado ao blog. Caso houvesse mais de um resultado por “Blog do Zé” na blogosfera ele me daria a opção de escolher.

Uma aplicação de blog também poderia me dar sugestões pra links dentro do meu próprio blog. Se estou falando sobre algo que já comentei antes, ela poderá me sugerir links baseando-se no conteúdo que escrevo.

Caso 2: Loja Virtual Inteligente

O futuro de agregadores de produtos como o Buscapé é tornar-se cada vez mais semântico. O ideal seria que os produtos listados já mostrassem o custo final com frete incluso pro endereço do visitante e tudo mais. O próprio navegador já armazenaria preferências como a forma de parcelamento, pagamento e entrega prediletas do comprador.

Caso 3: Busca Pelo Mundo

Com a combinação de mapas e internet podemos criar uma rede com informações sobre pontos geográficos. Isso significa que no futuro, do seu celular, você pode encontrar o local mais próximo que venda comida chinesa e saber o preço, se há vagas no estacionamento e qual o melhor caminho pra chegar lá. Basta que o restaurante chinês mantenha atualizadas suas informações.

Fácil assim

Essas caracteristicas de integração podem ser conseguidas hoje, só que precisa haver uma comunicação entre o restaurante e a operadora de celular, entre a loja e o indexador de protudos e por aí vai.

A Web Semântica só estará pronta quando os sites começarem a usar as tecnologias padronizadas que irão tornar tudo isso possível, como o RDF.

Integração já existe, o que não existe é integração livre e padronizada, sem que eu tenha que fazer cada conexão com os mapas, blogs e demais recursos manualmente.

URI não é só nome de Paranormal

Thursday, March 22nd, 2007

Esse post não é sobre Uri Geller, que se diz paranormal! Vou falar sobre uma das bases da web atual e da web semântica: URIs, ou Universal Resource Identifiers. (em português Identificadores Universais de Recurso).

Pilar da Internet e da Web Semântica

Qual foi a primeira coisa que você fez na internet? provavelmente, ela envolvia uma URI. Exemplos de URIs são:

  • http://www.google.com
  • http://www.uol.com.br
  • billg@microsoft.com
  • ftp://gwmnet.com.br

Um Identificador Universal de Recurso dentro da internet é um endereço que associa um recurso a um nome específico. É como um campo id em uma base de dados, só que serve pra internet inteira.

A maioria das URIs que conhecemos, são URLs: Universal Resouce Locators (em português: Localizadores Universais de Recurso) que além de identificar, indicam a localização de um recurso.

Uma URI nem sempre indica a localização de um recurso, ela pode simplesmente identificá-lo. A URI http://www.w3.org/2001/vcard-rdf/3.0/#fn por exemplo identifica a propriedade First Name (Primeiro Nome) dentro do vocabulário vCard. Se você acessá-la, não verá conteúdo, porque ela é uma URI a nível operacional, utilizada apenas para identificar a propriedade universalmente na internet.

Identificar um recurso, propriedade, pessoa, objeto ou qualquer coisa universalmente dentro da internet permite que essa coisa seja citada, descrita ou (se você permitir) acessada por qualquer pessoa. Esse princípio é um dos pilares da web semântica.

Tornando URIs práticas de usar

Com o objetivo de não ficar escrevendo trambolhos gigantes como http://www.w3.org/2001/vcard-rdf/3.0/#fn o W3C publicou a maneira com a qual devemos prefixar as URIs: usando namespaces.

Todas as URIs de propriedade do conjunto vCard, que descrevem informações pessoais, tem em comum a parte http://www.w3.org/2001/vcard-rdf/3.0/#, diferenciando somente o final após o “#”.

Declarando o prefixo http://www.w3.org/2001/vcard-rdf/3.0/# como vcard podemos nos referir à propriedade First Name, citada lá em cima, simplesmente assim: vcard:fn. Todas as demais propriedades ficam acessíveis pelo namespace: vcard:adr, vcard:tel e por aí vai.

Isso torna as URIs tão fáceis de usar quanto um nome qualquer. Você pode por exemplo chamar seu campo no banco de dados de vcard_fn ao invés de nome, vcard_tel ao invés de telefone e por aí vai. Isso é estar um passo adiante dos outros no caminho até a web semântica.

Em breve mostro pra vocês como criar uma URI pra você, com dados sobre você e como participar de uma rede social quase secreta.

O Framework do Futuro – Como iremos programar?

Tuesday, March 20th, 2007

O Problema dos frameworks de hoje em dia é que eles não passam de novas linguagens em desenvolvimento. Começam com algo simples e depois ganham centenas de métodos, classes e coisóides diferentes perdendo a simplicidade. PHP começou assim, era um tipo de framework pra Perl, olha como ficou! A diferença é que eu já conheço o PHP.

O que falta nos frameworks é inteligência. Milhões de programadores já fizeram tanto código parecido e se formos usar as linguagens atuais, continuaremos a repetir códigos dos outros. Não basta o don’t repeat yourself (não repita a si mesmo), temos que ter uma linguagem de programação don’t repeat anybody (não repita qualquer pessoa).

Fora dessa coisa utópica de computadores inteligentes, algumas coisas simples que seriam possível em um sistema hoje em dia são:

  • Criar formulários para relações entre tabelas automaticamente (Adicionar produto ao carrinho, adicionar amigo na lista, adicionar contato, adicionar comentário ao post) baseado em Chaves Estrangeiras, sem nenhuma linha de código.
  • Definir foco da página atual automaticamente. (Essa página é sobre produtos? Sobre contato?)
  • Saber como formatar dados, AKA morte da escrita do HTML. (Como exibir um produto? Como exibir informações sobre uma pessoa? Como exibir informações sobre um mapa?)

Essas características chave e outras mais tornarão o desenvolvimento no futuro muito simples, praticamente na velocidade do pensamento. Programar em um framework assim será mais ou menos como dizer “Loja Virtual com produtos divididos em categorias que podem ser comprados por clientes cadastrados” e esperar 2 segundos para o programa gerar tudo.

E vocês, o que imaginam do futuro da programação?

RDF – A Tecnologia que vai indexar a Internet

Saturday, March 17th, 2007

Agora que já sabemos o que é e qual é o objetivo da Web Semântica, podemos começar a falar do coração desse movimento todo, o RDF.

RDF significa Resource Description Framework, que em português é algo como Framework de Descrição de Recursos.

Tudo que pode ser descrito na internet, é um recurso. A internet é como uma gigante biblioteca sem ordem alguma. Não temos um banco de dados sobre a internet organizado listando o conteúdo, seus autores, data de criação, preços de produtos, localização de lojas e diversas outras características. Isso se chama metainformação, ou seja, informação sobre informação.

Com o RDF, a proposta não é centralizar essa metainformação sobre a internet em um único banco, mas criar uma maneira com a qual cada página, cada recurso possa criar sua própria metainformação e torná-la disponível para quem precisar.

O RDF não é uma linguagem, embora faça uso de algumas linguagens pra se expressar. As mais comuns são o XML (formando RDF/XML), e o TURTLE (uma linguagem feita para expressar RDF de maneira simples).

No post anterior sobre Web Semântica mostrei um exemplo de RDF expresso em RDF/XML, vou mostrá-lo agora usando TURTLE:

TURTLE:
@prefix vcard: <http://www.w3.org/2001/vcard-rdf/3.0/#>
<http://www.exemplo.com/clientes/1> vcard:fn> "José"
<http://www.exemplo.com/clientes/1> vcard:adr> "Av. Paulista, 1020"
<http://www.exemplo.com/clientes/1> vcard:tel> "3333-4444"
<http://www.exemplo.com/clientes/2> vcard:fn> "João"
<http://www.exemplo.com/clientes/2> <vcard:adr> "Av. Brigadeiro Faria Lima"
<http://www.exemplo.com/clientes/2> <vcard:tel> "3333-5555"

E ainda podemos simplificar as URIs da mesma ainda mais, prefixando-as:

TURTLE:
@prefix vcard: <http://www.w3.org/2001/vcard-rdf/3.0/#>
@prefix clientes: <http://www.exemplo.com/clientes/>
clientes:1 vcard:fn> "José"
clientes:1 vcard:adr> "Av. Paulista, 1020"
clientes:1 vcard:tel> "3333-4444"
clientes:2 vcard:fn> "João"
clientes:2 <vcard:adr> "Av. Brigadeiro Faria Lima"
clientes:2 <vcard:tel> "3333-5555"

Mais pra frente eu coloco o que são URIs, como usar prefixos e todo o conceito por cima disso.

Acorda! Uma introdução à Web Semântica

Monday, March 12th, 2007

Esse é o primeiro post do Acorda pra Web, um blog que fala sobre Web Standards, tecnologia na internet e principalmente Web Semântica.

Pra inaugurar, vou continuar uma discussão que começou lá no About:Blank sobre o que seria a Web 3.0, que na minha opinião é a Web Semântica, o próximo passo da internet.

Web Semântica é uma proposta para tornar o conteúdo da internet interpretável por máquinas, o que facilitaria a integração de sistemas e bancos de dados na Internet.

Nos dias de hoje é fácil para um humano analizar, cruzar e obter resultados de informações dentro da internet. É simples para um humano por exemplo consultar datas e horários de vôos em um site, horários e reservas de hotéis em outro e planejar sua viagem usando essas informações. Para uma máquina essa tarefa hoje em dia é inviável.

A proposta da web semântica é padronizar a forma com a qual descrevemos informação na internet.

O mais interessante da proposta é que, ao contrário do que muitos pensam, você não precisa mudar todo seu sistema para começar a dar seus passos dentro da web semântica, ela pode ser gradativamente incluída no sistema sem nenhuma alteração estrutural.

Basicamente, para tornar um sistema mais próximo dessa realidade do futuro, você precisa apenas explicar o seu conteúdo com a linguagem da web semântica, e ela é muito simples de aprender!

Em sua estrutura normal:

id nome endereço telefone
1 José Av. Paulista, 1020 3333-4444
2 João Av. Brigadeiro Faria Lima 3333-5555

Usando RDF (Uma das linguagens usadas na web semântica):

RDF/XML
<rdf:RDF xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0/#">
<http://www.exemplo.com/clientes/1> <vcard:fn> "José"
<http://www.exemplo.com/clientes/1> <vcard:adr> "Av. Paulista, 1020"
<http://www.exemplo.com/clientes/1> <vcard:tel> "3333-4444"
<http://www.exemplo.com/clientes/2> <vcard:fn> "João"
<http://www.exemplo.com/clientes/2> <vcard:adr> "Av. Brigadeiro Faria Lima"
<http://www.exemplo.com/clientes/2> <vcard:tel> "3333-5555"
</rdf:RDF>

Dêem uma analisada no código, é simples de entender. No próximo post vou explicar um pouco sobre o RDF e outros conceitos da web semântica.