Share Pastebin
Guest
Public paste!

code

By: a guest | Mar 22nd, 2010 | Syntax: None | Size: 3.95 KB | Hits: 123 | Expires: Never
Copy text to clipboard
  1. Project: Zoekmachine
  2.  
  3. Het project bestaat erin een eenvoudige zoekmachine te ontwerpen en te implementeren, die toelaat om op een efficiënte manier een corpus van één of meerdere online beschikbare tekstdocumenten te doorzoeken. Op basis van een gegeven trefwoord moet de zoekmachine snel de referenties weten terug te geven van alle documenten die het gegeven trefwoord bevatten. Ook als er meerdere trefwoorden gegeven worden, moet de zoekmachine in staat zijn om de documenten terug te geven die alle trefwoorden bevatten. De functionaliteit van de zoekmachine omvat twee belangrijke onderdelen. Eerst en vooral moet een gegeven corpus van webdocumenten kunnen geïndexeerd worden. Daarnaast moet het ook mogelijk zijn om de opgebouwde index online te bevragen. Een voorbeeldimplementatie is hier beschikbaar, waarbij alle documenten op de website van de Universiteit Gent werden geïndexeerd, vertrekkend vanaf de startpagina tot drie niveaus diep (zie verder).
  4.  
  5. Voor het verzamelen van een corpus van webdocumenten moet de zoekmachine een techniek gebruiken die web crawling genoemd wordt. Een crawler exploreert het Internet op een geautomatiseerde manier door te vertrekken van een initiële webpagina (of bij uitbreiding een lijst van webpagina's), die op een recursieve manier wordt doorzocht naar ingebedde hyperlinks naar andere webpagina's. Om de scope van de zoekmachine enigszins te beperken, moet deze kunnen geconfigureerd worden met een maximale recursiediepte voor het crawlen. Met een diepte nul wordt enkele de initiële webpagina doorzocht. Met een diepte één worden zowel de initiële webpagina als alle webpagina's die daarin gerefereerd worden doorzocht. Bij het indexeren van een corpus van webdocumenten moet de zoekmachine een index in twee niveaus opbouwen. De index op het eerste niveau wordt gebruikt om elk woord te koppelen aan een lijst van geassocieerde webdocumenten waarin het woord voorkomt. Voor elk individueel webdocument wordt daarnaast een afzonderlijke index bijgehouden, waarmee de regelnummers kunnen opgezocht worden waarop een bepaald woord voorkomt.
  6.  
  7. Het bevragen van de geïndexeerde corpus met een gegeven zoekterm gebeurt via een online clienttoepassing die gebruik maakt van een XHTML formulier waarin een zoekterm kan opgegeven worden, en een CGI script voor het bevragen van de index aan de serverzijde en het weergeven van de resultaten als een webpagina. De zoekmachine moet twee manieren ondersteunen om de zoekresultaten te rapporteren. Eerst en vooral moet er een korte samenvatting kunnen gegenereerd worden, die enkel hyperlinks naar de gevonden documenten weergeeft. Daarnaast moet ook een uitgebreide rapportering mogelijk zijn, die naast de hyperlinks ook de gedeeltelijke contekst van de gevonden documenten weergeeft waarin het gezochte woord werd aangetroffen.
  8.  
  9. Het spreekt vanzelf dat professionele zoekmachines heel wat  bijkomende zaken ondersteunen. Zo ondersteunen ze bijvoorbeeld het zoeken naar zinsneden die bestaan uit meerdere woorden. De eenvoudige zoekmachine die je in dit project moet ontwerpen, vormt echter wel een demonstratie van de belangrijkste basisprincipes die ook in de praktijk gebruikt worden. De projectomschrijving werd bewust beperkt gehouden tot de grote lijnen, aangezien het de bedoeling is dat je zelf ontwerpbeslissingen leert nemen over het invullen van de details. Een van deze belangrijke "details" die in deze omschrijving niet werd vermeld, is de scriptingtaal die moet gebruikt worden voor de implementatie van het project. Deze wordt immers in overleg door de studenten gekozen. Let wel, alle studenten moeten dezelfde scriptingtaal hanteren voor de implementatie van het project. Op Minerva werd een forum opengesteld waarin je kunt argumenteren welke scriptingtaal volgens jouw het meest geschikt is om een eenvoudige zoekmachine te implementeren zoals hierboven werd beschreven. Op basis van deze discussie zal op het einde van deze week worden beslist welke scriptingtaal voor dit project zal moeten gehanteerd worden.