[Sebastian Thrun] Então, qual é a tua opinião sobre a construção de um motor de busca, já criaste um, certo? [Sergey Brin - co-fundador, Google] Sim. Eu acho que a coisa mais importante se fores construir um motor de busca é começar com um corpus (material) extremamente bom. No nosso caso, usámos a world wide web (WWW), que na época era significativamente menor do que é hoje. Mas também era muito nova e excitante. Havia todo o tipo de coisas inesperadas lá. [David Evans] O objectivo para as três primeiras aulas do curso é construir esse corpus. E queremos construir o corpus de nosso motor de busca rastreando a web e é isso o que um "web crawler" faz. Um "web crawler" é um programa que colhe o conteúdo da web. Se pensares numa página web que vês no teu navegador, tens uma página como esta. E vamos usar o sítio da Udacity como página web exemplificativa. Tem muito conteúdo, tem algumas imagens, tem algum texto. Tudo isto entra no teu navegador quando solicitas a página. O importante é que tem ligações (links). E uma ligação é algo que te leva para outra página. Portanto, temos uma ligação para as perguntas frequentes, temos uma ligação para a página do CS 101. Existem outras ligações na página. E essa ligação pode aparecer no teu navegador sublinhada, ou não, dependendo das preferências que escolheste para o navegador. Mas o importante, é que a ligação aponta para uma outra página web. E essas outras páginas, poderão também ter ligações, portanto, temos outra ligação nesta página. Talvez seja para o meu nome, poderás visitar a minha página. E todas as páginas que podemos encontrar com o nosso web crawler são encontradas seguindo as ligações. Não encontraremos necessariamente todas as páginas na web. Se começarmos com uma boa página-semente, iremos encontrar muitas outras páginas. E o que o crawler vai fazer é, a partir de uma única página, encontrar todas as ligações dessa página, segui-las para encontrar outras páginas e, em seguida, nessas outras páginas seguirá as respectivas ligações para encontrar outras páginas e haverão muitas mais ligações nessas páginas. E eventualmente vamos ter uma colecção de muitas páginas da web. Portanto é isso que queremos fazer para construir um web crawler. Queremos encontrar uma maneira de começar por uma página-semente, extrair as ligações dessa página, seguir as ligações para outras páginas, em seguida recolher as ligações nessas outras páginas, segui-las, recolher isto tudo. Parece muita coisa para fazer. Não iremos cobrir tudo isto nesta primeira aula. O que vamos fazer, nesta primeira aula, é extrair apenas uma ligação. Por isso vamos começar com um monte de texto. Nele vai existir uma ligação com uma URL. O que nós queremos encontrar é essa URL, de forma a podermos seguir para a próxima página. O objectivo para a segunda aula, é ser capaz de continuar este processo. Se houver muitas ligações numa página, quererás ser capaz de encontrá-las todas. E é isso que vamos fazer na aula 2, descobrir como continuar para extrair todas essas ligações. Bem, na terceira aula, queremos ir além de uma única página. Assim, até o final da aula dois poderemos apresentar todas as ligações duma página. Na aula 3 queremos colher todas essas ligações, para que possamos continuar, fazendo com que o nosso crawler colha muitas, muitas páginas. Assim, no final da aula três teremos construido um web crawler. Teremos uma forma de construir o nosso corpus. Em seguida, nas restantes três aulas veremos como responder realmente a consultas. Assim na aula quatro, iremos descobrir como dar uma boa resposta. Se pesquisares um termo no motor, vais querer como resposta uma lista com as páginas onde esse termo aparece. Iremos descobrir na aula cinco como fazer isso, de forma adaptável, se tivermos um corpus grande. E, em seguida, na aula seis o que queremos fazer é não apenas obter uma lista, mas sim encontrar a melhor página. Portanto iremos descobrir como classificar todas as páginas onde o termo aparece. Mas, estamos a pôr a carroça à frente dos bois, porque o que vamos fazer na aula um, é apenas descobrir como extrair uma ligação da página. E o motor de busca que vamos construir no fim será um motor de busca funcional. Terá os principais componentes que um motor de busca como o Google possui. Certamente não será tão poderoso como o Google, queremos manter as coisas simples. Queremos escrever apenas um pequeno número de linhas de código. E devemos lembrar-nos que nosso real objectivo não é tanto construir um motor de busca, mas sim usar a construção do motor como um veículo para aprender matéria de ciências informáticas e aprender programação, assim, o que aprendermos fazendo isto, permitir-nos-á resolver um montão de outros problemas.