diff --git a/ss2013/1_Web Mining/Uebungen/5_Uebung/code/5_1.py b/ss2013/1_Web Mining/Uebungen/5_Uebung/code/5_1.py
new file mode 100644
index 00000000..7059cd72
--- /dev/null
+++ b/ss2013/1_Web Mining/Uebungen/5_Uebung/code/5_1.py
@@ -0,0 +1,100 @@
+# -*- coding: utf-8 -*-
+'''
+Aufgabenstellung Aufgabe 1:
+1. Laden Sie sich ausgehend von der Seite http://en.wikipedia.org/wiki/Category:Data_mining eine Datenbasis an Artikeln und Links zwischen den Artikeln herunter.
+Ignorieren Sie dabei alle Spezial-Seiten der Wikipedia, konzentrieren sie sich im Prinzip nur auf Links innerhalb des Artikeltextes,
+und bewegen Sie sich auch nur auf der englischen Wikipedia. Die Anzahl der heruntergeladenen Artikel sollte dabei nicht viel mehr als 100 betragen.
+Filtern Sie nochmals alle Spezialseiten (Im Grunde alle Artikel mit ":" im Namen, dies schließt Category:Data_Mining mit ein).
+Wenn Sie diese Hinweise befolgen, sollten sie bei Breitensuche und einer Tiefe von 1 auf unter 100 Artikel kommen.
+Sie können Ihre Suche auch durch die selektive Hinzunahme von weiteren Startseiten erweitern, falls Ihnen ihre Seitenbasis zu klein erscheint.
+Erklären Sie kurz Ihr Vorgehen.
+
+2. Erstellen Sie basierend auf den heruntergeladenen Daten eine Datei, die einen gerichteten Graphen beschreibt, welches die Linkstruktur
+innerhalb der Daten beschreibt. Diese Datei kann den Graphen z.B. als Liste von Kanten der Form P1 -> P2 enthalten, wobei die Knoten P1 und P2 Urls
+bzw. Artikelnamen und die Kante einen Link von der Seite P1 auf die Seite P2 repräsentieren. Beschränken Sie die Knoten (P1 und P2) auch nur auf die
+heruntergeladenen Artikel, alle anderen Kanten ignorieren Sie.
+
+Fügen Sie Ihrer Abgabe die verwendeten, heruntergeladenen Seiten bei und die resultierende Graphen-Datei.
+'''
+
+# imports
+import os
+import urllib2
+from bs4 import BeautifulSoup
+
+
+# config variables
+actualDir = os.path.dirname(os.path.realpath(__file__))
+wikipediaDir = os.path.join(actualDir, '../wikipedia_subgraph')
+
+
+'''
+################################################################################################################################
+ --> CLASS graph <--
+################################################################################################################################
+'''
+class graph:
+
+
+ def buildDirectedGraph(self):
+ return 0
+
+
+
+
+'''
+################################################################################################################################
+ --> CLASS crawlWikipediaStuff <--
+################################################################################################################################
+'''
+class crawlWikipediaStuff:
+
+ entrypoint = "http://en.wikipedia.org/wiki/Category:Data_mining";
+ #entrypoint = "http://www.google.de"
+
+ def crawlWiki(self):
+ req = urllib2.Request(self.entrypoint, headers={'User-Agent' : "Magic Browser"})
+ page = urllib2.urlopen(req, timeout = 5)
+ print "downloading url: "+self.entrypoint
+ f = open(wikipediaDir+'/test.html', "w")
+ f.write(page.read())
+ page.close()
+
+
+
+ def getPage(self):
+ return 0
+
+
+ def readPage(self):
+ return 0
+
+
+ def safePage(self):
+ return 0
+
+
+
+
+'''
+################################################################################################################################
+ --> Main method <--
+################################################################################################################################
+'''
+
+# main method
+if __name__ == '__main__':
+
+ #
+ wiki = crawlWikipediaStuff()
+ wiki.crawlWiki()
+
+ g = graph()
+ #g.builDirectedGraph()
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ss2013/1_Web Mining/Uebungen/5_Uebung/code/5_2.py b/ss2013/1_Web Mining/Uebungen/5_Uebung/code/5_2.py
new file mode 100644
index 00000000..7e56e5d5
--- /dev/null
+++ b/ss2013/1_Web Mining/Uebungen/5_Uebung/code/5_2.py
@@ -0,0 +1,77 @@
+# -*- coding: utf-8 -*-
+'''
+Aufgabenstellung Aufgabe 2:
+1. Schreiben Sie ein Programm, das sowohl den Page Rank als auch die von HITS verwendeten Hub und Authority Scores berechnet.
+Eingabe ist der gerichtete Graph aus Aufgabe 1, die Artikeltexte, und eine Query in Form einer Konjunktion von Keywords.
+Sie können sich aussuchen, ob Sie die iterative Methode aus der Vorlesung implementieren oder das Problem in ein Eigenvektor-Problem
+umformulieren und dieses mit Hilfe einer Linear-Algebra-Toolbox lösen. Für erstere Methode verwenden sie als Abbruch-Kriterium,
+dass die Summe der Veränderungen der Gewichte kleiner als 1/10000 ist oder bereits mehr als 10000 Iterationen durchlaufen wurden.
+Verwenden Sie beim Page Rank d=0.85 als Damping-Faktor. Beim HITS-Algorithmus enthält das Root-Set alle Artikel, die im Text alle
+Schlüsselwörter der Query enthalten. Das Base-Set wird wie in den Vorlesungsfolien konstruiert. Denken Sie auch daran, Links auf
+sich selbst bei der Berechnung zu ignorieren.
+Ausgabe des Programms ist ausgehend vom Graphen, den Artikeltexten und der Query jeweils für jeden Score ein Ranking auf den Knoten im
+Root-Set zusammen mit dem errechneten Score, den Inlinks und den Outlinks. (1P)
+
+2. Setzen Sie auf Ihren Daten die Query "machine learning" ab und vergleichen Sie den Page Rank, den Hub und den Authority Score derKnoten
+miteinander und mit den In- und Outlinks und interpretieren Sie dies. Vergleichen Sie auch die Anzahl der Iterationen bis zur Konvergenz. (2P)
+
+3. Wählen Sie eine geeignete Query und zeichnen Sie den Root-Set und den Base-Set. Geben Sie direkt im Graphen die drei erzielten Scores an.
+Die Query sollte eine übersichtliche Zeichnung erlauben. Decken sich die Scores und der Graph mit der Theorie hinter Page Rank und HITS ab? (2P)
+
+4. Setzen Sie für jedes der Wikipedia-Dokumente eine Query ab mit dem Titel als Query, also z.B. "machine learning" für das Dokument "Machine Learning".
+Berechnen Sie jeweils für Page Rank und beide HITS-Verfahren, an welcher Position das Dokument zu der Query im Ranking erschienen ist und bilden Sie
+den Durchschnitt über alle Querys. Wie interpretieren Sie die Ergebnisse, decken sie sich mit Ihren Erwartungen, insbesondere bezüglich der verschiedenen
+Ranking-Verfahren, und wie könnte man die Ergebnisse verbessern. (2P)
+
+5. Gegeben sei folgendes "wahre" Ranking von Artikeln für die Query "web mining":
+Web Mining, Information retrieval, Data mining, Text Mining, Natural language processing, Document Classification, Naive Bayes classifier,
+Structure mining, Data stream mining, Data Mining and Knowledge Discovery, Hyperlink.
+
+Dieses Ranking könnten Sie nun mit den Rankings von Page Rank und HITS vergleichen und somit bestimmen, welches Verfahren in diesem Fall
+am besten funktioniert. Welche der folgenden bekannten Maße eignet sich oder eignet sich nicht für diesen Vergleich und warum: Recall,
+Precision, Average Precision, und Normalized Discounted Cumulative Gain? (1P)
+'''
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+'''
+################################################################################################################################
+ --> Main method <--
+################################################################################################################################
+'''
+
+# main method
+if __name__ == '__main__':
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ss2013/1_Web Mining/Uebungen/5_Uebung/code/lib_parser.py b/ss2013/1_Web Mining/Uebungen/5_Uebung/code/lib_parser.py
new file mode 100644
index 00000000..99648542
--- /dev/null
+++ b/ss2013/1_Web Mining/Uebungen/5_Uebung/code/lib_parser.py
@@ -0,0 +1,622 @@
+
+
+