[Sebastian Thrun] Qual è la tua opinione su come si realizza un motore di ricerca,
tu ne hai già realizzato uno, vero ?
[Sergey Brin, Co-fondatore di Google] Si. Io credo che la cosa più importante,
se stai pensando di realizzare un motore di ricerca,
è avere una buona base di informazioni da cui partire.
Nel nostro caso abbiamo usato il world wide web, che al momento era certamente più piccolo di quanto lo sia oggi.
Era una cosa nuova e molto stimolante,
con molte parti ancora inesplorate.
[David Evans] L'obiettivo delle prime tre unità del corso è di costruire la base di informazioni
In particolare, vogliamo costruire una base di informazioni per il nostro motore di ricerca
analizzando il web, che è esattamente quello che fa un web crawler.
Un web crawler è un programma che colleziona i contenuti estratti dal web.
Prova a pensare ad una pagina web nel tuo browser, sarà una pagina tipo questa.
Usiamo il sito web di Udacity come esempio di pagina web.
E' una pagina piena di contenuti, con molte immagini e del testo.
Tutto questo appare nel tuo browser quando richiedi di visualizzare la pagina.
La cosa importante di una pagina sono i collegamenti ipertestuali.
Un collegamento ipertestuale è qualcosa che ci indirizza verso un'altra pagina.
Abbiamo, quindi, un collegamento alle domande più frequenti,
un collegamento alla pagina di CS 101,
più altri collegamenti verso altre pagine web.
Un collegamento può comparire, nel browser, come testo sottolineato
ma potrebbe anche comparire in altri modi, dipende dalle impostazioni del tuo browser.
Ma la cosa importante che un collegamento permette di fare
è di puntare verso altre pagine web
che, a loro volta, possono contenere altri collegamenti
e quindi abbiamo un altro collegamento verso questa pagina
Potrebbe essere il mio nome che ci indirizza alla mia home page,
Tutte le pagine che noi riusciamo a trovare con il nostro web crawler
sono ottenute seguendo i collegamenti
così non sarà necessario esplorare ogni pagina sul web.
Se si inizia da una buona pagina di partenza
troveremo molte pagine.
Ciò che un web crawler dovrà fare è partire da una pagina,
recuperare tutti i collegamenti all'interno di questa pagina, seguire i collegamenti per trovare altre pagine
e, su queste altre pagine, seguire i collegamenti presenti su queste pagine
per trovare ancora altre pagine, ci saranno molti altri collegamenti su queste pagine.
Ed infine, avremo una collezione di molte pagine presenti nel web.
Questo è quello che dovremmo fare per realizzare un web crawler.
In qualche modo noi dovremmo iniziare da una pagina di partenza,
estrarre i collegamenti dalla pagina,
seguire tutti i collegamenti individuati verso altre pagine,
collezionare i collegamenti di queste nuove pagine,
seguirli e collezionare tutti i collegamenti di tutte le pagine esplorate.
Sembra che ci sia molto da fare.
Non faremo tutta la procedura nella prima unità,
ma ciò su cui ci concentreremo nella prima unità sarà l'estrazione di un collegamento
Quindi, iniziamo con del testo
che ha un collegamento al suo interno specificato tramite un URL
Vogliamo cercare l'URL all'interno del testo
in modo da poter fare una richiesta per la pagina successiva
L'obiettivo per la seconda unità
è di essere in grado di continuare la ricerca,
se ci sono molti collegamenti in una pagina, dovremmo estrarli tutti.
Questo è ciò che faremo nella seconda unità,
cercare di capire come proseguire con la procedura per estrarre tutti i collegamenti
Nella terza unità, andremo oltre l'analisi della singola pagina.
Quindi, al termine della seconda unità, riusciremo a visualizzare tutti i collegamenti presenti in una pagina e
nella terza unità, collezioneremo tutti i collegamenti in modo da reiterare la procedura
e garantire che il nostro web crawler riesca a raccogliere molte pagine.
Quindi, al termine della terza unità, avremo costruito il web crawler.
Ci saranno molti modi per costruire la nostra base di informazioni
e quindi, per le restanti tre unità, analizzeremo come rispondere alle interrogazioni sulla base di informazioni
Nella quarta unità, capiremo come ottenere una buona risposta
in modo che se cerchi una parola chiave, tu possa ricevere in risposta la lista completa di tutte le pagine
in cui quella parola chiave compare.
E nella quinta unità vedremo un modo per poterlo fare, che sia estendibile nel caso di base di informazioni di grandi dimensioni.
E successivamente, nella sesta unità , quello che faremo sarà non solo trovare un elenco delle pagine,
ma ottenere come risultato la pagina migliore.
Quindi, cercheremo di capire come pesare le pagine in cui compare la parola chiave.
Bene, stiamo andando un pò oltre adesso,
perché tutto ciò che dobbiamo fare per la prima unità
è cercare di capire come estrarre un collegamento dalla pagina.
E il motore di ricerca che costruiremo alla fine del corso
sarà un motore di ricerca di tipo funzionale.
Avrà le componenti principali di cui dispone un motore di ricerca come Google.
Certamente non sarà potente come Google
dato che vogliamo mantenere le cose semplici e
avere una piccola quantità di codice da scrivere.
Non dobbiamo dimenticarci che il nostro vero scopo
non è tanto quello di costruire un motore di ricerca
ma di usare l'obiettivo di costruire un motore di ricerca come veicolo
per conoscere l'informatica
e approfondire il tema della programmazione.
E quindi, le cose che impareremo facendo tutto questo
ci torneranno utili per risolvere molti altri tipi di problemi.