Projekt Google-Algorithmus

Aus ITAWiki
Wechseln zu: Navigation, Suche
Projektinformationen
Aufwand (Ph) 12
Teamgröße 1-2
Schwierigkeitsgrad mittel-schwierig
Ansprechpartner Herr Bakera
Projekttag


Auftrag

Google ist die am meisten genutzte Suchmaschine in Deutschland. Doch wie kommen die Ergebnisse eigentlich zustande? Warum stehen die Seiten von Wikipedia und Spiegel-Online über denen von bakera.de und tbs1.de?

Der Grund hierfür ist der PageRank-Algorithmus. Er wurde von den Firmengründern Larry Page und Sergej Brim entwickelt. Durch den Algorithmus wird jeder Seite ein Wert zugewiesen. Wertvollere Seiten landen weiter vorne in den Suchergebnissen, Seiten mit einem niedrigeren Wert finden sich weiter hinten.

Ziel des Projektes ist es, den Algorithmus zu implementieren und für unser Wiki ablaufen zu lassen. Hierbei hilft dir eine Beschreibung des Algorithmus von Markus Sobek.

Es gibt eine Erklärung des Verfahrens bei YouTube.

Meilensteine

  1. Ich habe ein Klassendiagramm erstellt, das Klassen meiner Problemlösung enthält.
  2. Ich habe eine Anwendung geschrieben, die den Algorithmus für ein einfaches kleines Beispiel durchführt.
  3. Die Ergebnisse des kleinen Beispiels habe ich dokumentiert.
  4. Ich habe mit meinem Programm den Page-Rank-Wert für die Artikel in unsem Wiki berechnet - vgl. hierzu den unteren Bereich dieses Artikels.
  5. Die Ergebnisse habe ich dokumentiert.
  6. Der Quelltext ist in einer Dokumentation erläutert.
  7. (optional) Ich habe mir überlegt, wie man den Algorithmus noch verfeinern kann. Welche weiteren Kriterien sind noch wichtig für eine Seite - außer der Verlinkung?
  8. (optional) Ich habe die Verfeinerung in meiner Implementierung umgesetzt.
  9. (optional) Ich habe den Algorithmus auf anderen Datensätzen laufen lassen und meine Ergebnisse dokumentiert.
  10. (optional) YaCy ist eine Suchmaschine für den eigenen Server. Vergleiche deren Vorgehen mit dem Google-Algorithmus.

Verlinkungen im Wiki

Die folgenden Daten beschreiben die Verlinkung in einem Wiki. Klicke rechts auf den "Ausklappen"-Link, um alle Daten anzuzeigen. Der Aufbau folgt dem Muster "QUELLE","ZIEL".

"Abnahme_Spieleprogrammierung","Anforderungen"
"Abstrakte_Klasse","Dominik_Ruppert"
"Abstrakte_Klasse","Dominik_Ruppert"	
"Aggregatfunktiion_und_GROUP_BY","Aggregatfunktion"
"Aggregatfunktiion_und_GROUP_BY","Bedingung"
"Aggregatfunktiion_und_GROUP_BY","SELECT"
"Aggregatfunktiion_und_GROUP_BY","WHERE-Klausel"
"Anforderungen","Anforderungen_Weltraumspiel"
"Anforderungen_Weltraumspiel","Adams"
"Anforderungen_Weltraumspiel","Adams"
"DataGridView_mit_Listen_verknüpfen","List"
"Erstellen_einer_View","Wann_ist_eine_View_manipulierbar"
"Funktionen","Sichtbarkeiten"
"Hauptseite","Projekttag"
"Hauptseite","Scheunenbau-Workshop"
"Hauptseite","TODO"
"Hauptseite","TODO-Datenbanken"
"Hauptseite","TODO-Spieleprog"
"Invalidate()","Paint()"
"Kaskadierendes_löschen","Primärschlüssel"
"Kaskadierendes_löschen","Referentielle_Integrität"
"Kaskadierendes_löschen","Referenz"
"Pixelgenaue_Kollisionserkennung","Anforderungen_Weltraumspiel"
"Prinzip:_Aggregation","Prinzip:_Assoziation"
"Prinzip:_Aggregation","Prinzip:_Komposition"
"Prinzip:_Assoziation","Prinzip:_Aggregation"
"Prinzip:_Assoziation","Prinzip:_Komposition"
"Prinzip:_Datenkapselung","Objektkonsistenz"
"Prinzip:_Datenkapselung","Sichtbarkeiten"
"Prinzip:_Datenkapselung","Dominik_Ruppert"
"Prinzip:_Datenkapselung","Dominik_Ruppert"
"Prinzip:_Datenkaspelung","Prinzip:_Datenkapselung"
"Prinzip:_Komposition","Prinzip:_Aggregation"
"Prinzip:_Komposition","Prinzip:_Assoziation"
"Projekt_4-gewinnt","Projekttag"
"Projekt_4-gewinnt","Projektinfo"
"Projekt_Android_Counter","Projekte_von_Herrn_Bakera"
"Projekt_Android_Counter","Projektinfo"
"Projekt_Android_Kreisspiel","Projekt_Android_Counter"
"Projekt_Android_Kreisspiel","Projekte_von_Herrn_Bakera"
"Projekt_Android_Kreisspiel","Projektinfo"
"Projekt_Autonomer_Roboter","Projekt_Robotersteuerung"
"Projekt_Autonomer_Roboter","Projekte_von_Herrn_Bakera"
"Projekt_Autonomer_Roboter","Projektinfo"
"Projekt_Autos","Projekttag"
"Projekt_Autos","Projektinfo"
"Projekt_Biere_der_Welt","Projekttag"
"Projekt_Biere_der_Welt","Projektinfo"
"Projekt_Big_Data_-_Datenanalyse","Projektinfo"
"Projekt_CTA_Tools","Projekt_Chemie_Tools"
"Projekt_Chemie_Tools","Projekte_von_Herrn_Bakera"
"Projekt_Chemie_Tools","Projektinfo"
"Projekt_Cocktails","Projekttag"
"Projekt_Cocktails","Projektinfo"
"Projekt_Cryptoparty_E-Mail","Projekte_von_Herrn_Bakera"
"Projekt_Cryptoparty_E-Mail","Projektinfo"
"Projekt_EN50173","Projekttag"
"Projekt_EN50173","Projektinfo"
"Projekt_Kugelsammler_in_Unity","Projekte_von_Herrn_Bakera"
"Projekt_Kugelsammler_in_Unity","Projektinfo"
"Projekt_Life_Cam","Projekttag"
"Projekt_Life_Cam","Projektinfo"
"Projekt_Manic_Digger","Projekte_von_Herrn_Bakera"
"Projekt_Manic_Digger","Projektinfo"
"Projekt_Mathe_Tools","Projekte_von_Herrn_Bakera"
"Projekt_Mathe_Tools","Projekttag"
"Projekt_Mathe_Tools","Projektinfo"
"Projekt_Motorräder","Projekttag"
"Projekt_Motorräder","Projektinfo"
"Projekt_Nim-Spiel","Projekte_von_Herrn_Bakera"
"Projekt_Nim-Spiel","Projektinfo"
"Projekt_Pong","Projekte_von_Herrn_Bakera"
"Projekt_Pong","Projektinfo"
"Projekt_RAID-Performance","Projekttag"
"Projekt_Robotersteuerung","Projekt_Autonomer_Roboter"
"Projekt_Robotersteuerung","Projekte_von_Herrn_Bakera"
"Projekt_Robotersteuerung","Projektinfo"
"Projekt_Schiebepuzzle_mit_dem_A*-Algorithmus_lösen","Projekte_von_Herrn_Bakera"
"Projekt_Schiebepuzzle_mit_dem_A*-Algorithmus_lösen","Projektinfo"
"Projekt_Server-Hardware","Projekttag"
"Projekt_Server-RAID-Systeme","Projekttag"
"Projekt_Server-RAID-Systeme","Projektinfo"
"Projekt_Stimmungsbarometer","Projekt_Android_Counter"
"Projekt_Stimmungsbarometer","Projekte_von_Herrn_Bakera"
"Projekt_Stimmungsbarometer","Projektinfo"
"Projekt_Streaming_Server","Projekttag"
"Projekt_Streaming_Server","Projektinfo"
"Projekt_The_Big_Picture","Projekte_von_Herrn_Bakera"
"Projekt_The_Big_Picture","Projektinfo"
"Projekt_Toronto_Parking_Tickets","Projekte_von_Herrn_Bakera"
"Projekt_Toronto_Parking_Tickets","Projektinfo"
"Projekt_Trainingslager_Kommandozeile","Projekte_von_Herrn_Bakera"
"Projekt_Trainingslager_Kommandozeile","Projektinfo"
"Projekt_Virtualisierung","Projekttag"
"Projekt_Virtualisierung","Projektinfo"
"Projekt_Virtuelle_Maschine","Projekte_von_Herrn_Bakera"
"Projekt_Virtuelle_Maschine","Projektinfo"
"Projekt_Zeitansage","Projekte_von_Herrn_Bakera"
"Projekt_Zeitansage","Projektinfo"
"Projekt_Zeiterfassung","Projektinfo"
"Projekt_mysqlbackup_und_mysqlrestore","Projekttag"
"Projekt_mysqlbackup_und_mysqlrestore","Projektinfo"
"Projekte_von_Herrn_Bakera","Projekt_Pong"
"Projekte_von_Herrn_Bakera","Projekt_Zeitansage"
"Projekte_von_Herrn_Bakera","Projekttag"
"Projekttag","Projekt_4-gewinnt"
"Projekttag","Projekt_Android_Counter"
"Projekttag","Projekt_Android_Kreisspiel"
"Projekttag","Projekt_Autonomer_Roboter"
"Projekttag","Projekt_Autos"
"Projekttag","Projekt_Biere_der_Welt"
"Projekttag","Projekt_Chemie_Tools"
"Projekttag","Projekt_Cocktails"
"Projekttag","Projekt_Cryptoparty_E-Mail"
"Projekttag","Projekt_EN50173"
"Projekttag","Projekt_Kugelsammler_in_Unity"
"Projekttag","Projekt_Life_Cam"
"Projekttag","Projekt_Manic_Digger"
"Projekttag","Projekt_Mathe_Tools"
"Projekttag","Projekt_Motorräder"
"Projekttag","Projekt_Nim-Spiel"
"Projekttag","Projekt_Pong"
"Projekttag","Projekt_RAID-Performance"
"Projekttag","Projekt_Robotersteuerung"
"Projekttag","Projekt_Server-Hardware"
"Projekttag","Projekt_Server-RAID-Systeme"
"Projekttag","Projekt_Streaming_Server"
"Projekttag","Projekt_The_Big_Picture"
"Projekttag","Projekt_Toronto_Parking_Tickets"
"Projekttag","Projekt_Trainingslager_Kommandozeile"
"Projekttag","Projekt_Virtualisierung"
"Projekttag","Projekt_Virtuelle_Maschine"
"Projekttag","Projekt_Zeitansage"
"Projekttag","Projekt_Zeiterfassung"
"Projekttag","Projekt_mysqlbackup_und_mysqlrestore"
"Referentielle_Integrität","Fremdschlüssel"
"Referentielle_Integrität","Primärschlüssel"
"Referenz","Fremdschlüssel"
"Referenz","Primärschlüssel"
"Schleife_mit_for","Schleife_mit_while"
"TODO","Abstrakte_Klasse"
"TODO","Aktualisieren_über_ein_Verwalter-Objekt"
"TODO","Array_als_lookup_table_und_Massenspeicher"
"TODO","Array_mit_Schleife_durchwandern"
"TODO","Bedingte_Anweisung"
"TODO","Bedingungen_und_Vergleichsoperatoren"
"TODO","Button"
"TODO","Cast_bei_Eventfunktionen"
"TODO","Checkbox"
"TODO","Combobox"
"TODO","ContextMenuStrip"
"TODO","DataBindung_von_Textboxen_etc._mit_Listen"
"TODO","DataGridView_mit_Listen_verknüpfen"
"TODO","Datentypen"
"TODO","DrawString()"
"TODO","Einfügen_über_ein_Verwalter-Objekt"
"TODO","Enum"
"TODO","Funktionen"
"TODO","Grundrechenarten"
"TODO","Invalidate()"
"TODO","Klassen:_Aufbau"
"TODO","Konstruktor"
"TODO","Konvertierungen"
"TODO","Lambda-Ausdruck"
"TODO","List"
"TODO","Listbox"
"TODO","Lokale_und_nicht_lokale_Variablen_und_Konstanten"
"TODO","Mathematische_Funktionen"
"TODO","MeasureString()"
"TODO","Menü"
"TODO","NumericUpDown"
"TODO","Objekt-Relationen_Mapping_1._und_2._Stufe"
"TODO","Objekt_anlegen"
"TODO","Objektkonsistenz"
"TODO","Paint()"
"TODO","Polymorphie:_Horizontal"
"TODO","Polymorphie:_Inklusion"
"TODO","Polymorphie:_Parametrisiert"
"TODO","Polymorphie:_vertikal"
"TODO","Prinzip:_Aggregation"
"TODO","Prinzip:_Assoziation"
"TODO","Prinzip:_DRY"
"TODO","Prinzip:_Datenkapselung"
"TODO","Prinzip:_Komposition"
"TODO","Prinzip:_Vererbung/Generalisierung"
"TODO","Projektverwaltung_Visual_Studio"
"TODO","Radiobutton(gruppe)"
"TODO","Schleife_mit_for"
"TODO","Schleife_mit_foreach"
"TODO","Schleife_mit_while"
"TODO","Sichtbarkeiten"
"TODO","Textbox"
"TODO","Toolbar"
"TODO","TrackBar"
"TODO","UML:_Anwendungsfalldiagramm"
"TODO","UML:_Klassendiagramm"
"TODO","UML:_Objektdiagramm"
"TODO","Ungarische_Notation"
"TODO","Unterformulare"
"TODO","UserControl"
"TODO","Verbindung_zu_einer_MySQL_Datenbank_aufbauen"
"TODO","Verzweigungen_mit_if/else"
"TODO","Verzweigungen_mit_switch/case"
"TODO","Zeichnen_in_einer_PictureBox"
"TODO","Zusammenspiel_von_Schleifen_und_Verzweigungen"
"TODO","Adams"
"TODO","Adams"
"TODO-Datenbanken","1._Normalform"
"TODO-Datenbanken","1:1"
"TODO-Datenbanken","1:n"
"TODO-Datenbanken","2._Normalform"
"TODO-Datenbanken","3._Normalform"
"TODO-Datenbanken","Aggregatfunktiion_und_GROUP_BY"
"TODO-Datenbanken","Aggregatfunktion"
"TODO-Datenbanken","Atomar"
"TODO-Datenbanken","CSV"
"TODO-Datenbanken","Einfacher_SELECT"
"TODO-Datenbanken","Einfacher_SELECT_mit_Sortierung"
"TODO-Datenbanken","Erstellen_einer_View"
"TODO-Datenbanken","Fremdschlüssel"
"TODO-Datenbanken","INSERT_INTO"
"TODO-Datenbanken","Join_typen"
"TODO-Datenbanken","Kaskadierendes_löschen"
"TODO-Datenbanken","Korrelierende_Unterabfrage"
"TODO-Datenbanken","Load_data_infile"
"TODO-Datenbanken","Mengenoperation:_INTERSECT"
"TODO-Datenbanken","Mengenoperation:_MINUS"
"TODO-Datenbanken","Mengenoperation:_UNION"
"TODO-Datenbanken","N:m"
"TODO-Datenbanken","Primärschlüssel"
"TODO-Datenbanken","Projektionsansicht"
"TODO-Datenbanken","Referentielle_Integrität"
"TODO-Datenbanken","Referenz"
"TODO-Datenbanken","Replikation"
"TODO-Datenbanken","Schlüssel"
"TODO-Datenbanken","Schlüsselkandidat"
"TODO-Datenbanken","Selektionsansicht"
"TODO-Datenbanken","Sortierung"
"TODO-Datenbanken","Spalte"
"TODO-Datenbanken","Tabelle"
"TODO-Datenbanken","Transitiv"
"TODO-Datenbanken","Unterabfrage"
"TODO-Datenbanken","Unterschied_WHERE-Klausel_HAVING-Klausel"
"TODO-Datenbanken","Vemeidung_von_Mehrfachausgaben"
"TODO-Datenbanken","Verbundansicht"
"TODO-Datenbanken","Verknüpfung"
"TODO-Datenbanken","WHERE-Klausel"
"TODO-Datenbanken","Wann_ist_eine_View_manipulierbar?"
"TODO-Datenbanken","Wiederholungsgruppe/Wiederholungsgrupenfreiheit"
"TODO-Datenbanken","Zeilen_löschen"
"TODO-Spieleprog","Allgemeines"
"TODO-Spieleprog","Anforderungen"
"TODO-Spieleprog","Aufbau_eines_XNA-Spieles"
"TODO-Spieleprog","Beschreibung_Moonlander"
"TODO-Spieleprog","Grafiken_laden"
"TODO-Spieleprog","Hintergrund_scrollt"
"TODO-Spieleprog","Klassenmodell_des_Weltraumspiels"
"TODO-Spieleprog","Kollisionserkennung"
"TODO-Spieleprog","Pixelgenaue_Kollisionserkennung"
"TODO-Spieleprog","Raumschiff_bleibt_innerhalb_des_Bildschirms"
"TODO-Spieleprog","Raumschiff_mit_der_Tastatur_bewegen"
"TODO-Spieleprog","Sound_laden_und_abspielen"
"TODO-Spieleprog","SpriteDatabase.net"
"UML:_Objektdiagramm","Klassen:_Aufbau"
"UML:_Objektdiagramm","UML:_Klassendiagramm"
"Unterschied_WHERE-Klausel_HAVING-Klausel","HAVING-Klausel"
"Unterschied_WHERE-Klausel_HAVING-Klausel","WHERE-Klausel"
"Verknüpfung","1:1"
"Verknüpfung","1:n"
"Verknüpfung","Fremdschlüssel"
"Verknüpfung","N:m"
"Verknüpfung","Primärschlüssel"
"Zeichnen_in_einer_PictureBox","Paint()"

Projektgruppen

Bitte tragt euch für das Projekt auf der Seite Projekte von Herrn Bakera ein.