Dienstag, 22. Dezember 2009

Übungsaufgabe 7

Die neue Übungsaufgabe finden sie wie gewohnt rechts in der Seitenleiste. Sie ist bis zum 05.01.2010 abzugeben.

Donnerstag, 17. Dezember 2009

Prädikatenlogische Resolution

Da die Resolution in der Übung etwas holprig war, poste ich die Musterlösung für Aufgabe 7 von Blatt 6 (Musterlösung). In der nächsten Übungsstunde werden wir noch einmal eine Resolution durchführen.

Ausserdem werde ich im Januar/Februar ein paar Termine zur Konsultation bei mir im Büro anbieten. Dann können wir gern offenstehende Fragen zu den Übungen generell besprechen. Überlegt euch dafür die Fragen bitte vorher und sendet sie mir 2-3 Tage vorher, damit ich entsprechend darauf vorbereitet bin. Die genauen Termine werden noch bekannt gegeben.


Ergänzung:

Hier ein Hinweis, wie man Sachverhalte aus natürlichsprachlichen Formulierungen in Prädikatenlogik ausdrückt.
Es gilt die 'Faustregel' immer wenn ein Allquantor verwendet wird, wird die Implikation verwendet und immer wenn der Existenzquantor Verwendung findet, wird entsprechend ein UND oder ODER verwendet.

Mittwoch, 2. Dezember 2009

Vorlesung am 15.12.2009

Die Vorlesung am 15. Dezember 2009 (in 2 Wochen...) wird wie angekündigt ausfallen, da ich vom 13.-17.12.2009 auf dem IEEE International Symposium on Multimedia in San Diego (USA) sein werde und unsere Arbeit "Towards Exploratory Video Search by Using Linked Data" (im International Workshop on Data Semantics for Multimedia Systems and Applications (DSMSA 2009) präsentiere.

Entgegen anderslautenden Gerüchten wird die Vorlesung in der nächsten Woche am 8.12.2009 (Thema RDF(S) Semantik) natürlich stattfinden :)

Aufgabenblatt 6

In der Seitenspalte ist das neue Übungsblatt 6 hinterlegt.

Der Abgabetermin ist in 2 Wochen der 15.12.2009.

Dienstag, 1. Dezember 2009

Zum Thema 'Charles Babbage'...

Ich war doch etwas erstaunt in der gestrigen Vorlesung, dass Charles Babbage anscheinend (noch) nicht jedem Informatiker ein Begriff ist. Daher möchte ich für diesen Computer-Pionier des 19. Jahrhunderts an dieser Stelle eine Lanze brechen, und Ihnen einige Informationen und Links an die Hand geben, um sich über das Lebenswerk dieses 'ersten Informatikers' zu informieren -- die Difference Engine und die Analytical Engine -- sowie über seine bemerkenswerte Mitarbeiterin Ada Lovelace (der Tochter des berühmten englischen Dichters Lord Byron), deren Arbeiten zur Programmierung der Analytical Engine sie ebenfalls zu einer Berühmtheit unter Informatikern brachte.

Charles Babbage wurde seinerzeit (d.h. etwa um 1820) bekannt (und finanziell unabhängig), indem er das Geschäft mit Lebensversicherungen mit Hilfe von Sterbetabellen auf eine solide statistische Basis stellte. Allerdings ist die Statistik oftmals eine ziemlich monotone und mit großem manuellen Aufwand verbundene Angelegenheit:

"Eines Abends saß ich in den Räumen der Analytischen Gesellschaft in Cambridge, den Kopf in einer Art Wachtraum auf den Tisch gestützt und eine Logarithmentafel aufgeschlagen vor mir. Ein anderes Mitglied kam in den Raum, sah mich im Halbschlaf, und rief: 'Babbage sag, wovon träumst du?', worauf ich erwiderte: 'Ich denke daran, dass all diese Tafeln (worauf ich auf die Logarithmen deutete) von einer Maschine berechnet werden könnten."

Fortan beschäftige sich Babbage mit der Entwicklung von mechanischen Rechenmaschinen, insbesondere der Difference Engine zur Lösung polynomialer Funktionen und der Analytical Engine, eine mechanische Rechenmaschine für allgemeine Anwendungen und damit ein direkter Vorfahre des heutigen Computers, die aber aufgrund der mangelnden Präzision der Feinmechanik im 19. Jahrhundert noch nicht funktionsfähig konstruiert werden konnten.

"Die Analytical Engine sollte von einer Dampfmaschine angetrieben werden und wäre über 30 Meter lang und 10 Meter breit gewesen. Die Eingabe (Befehle und Daten) sollte über Lochkarten erfolgen, eine Methode, die in der damaligen Zeit der Steuerung mechanischer Webstühle diente. Für die Ausgabe waren ein Drucker, ein Kurvenplotter und eine Glocke geplant. Die Maschine sollte außerdem Zahlen in Lochkarten oder wahlweise Metallplatten stanzen können. Sie benutzte dezimale Gleitkommaarithmetik und es war Speicher für 1000 Wörter zu 50 Dezimalstellen vorgesehen (Entspricht etwa 20,7kB). Die Recheneinheit („Mühle“ genannt) sollte in der Lage sein, die vier Grundrechenarten durchzuführen."

Die Difference Engine dagegen wurde tatsächlich konstruiert, wurde aber zu Babbage Lebzeiten nie fertig. Erst zwischen 1989 und 1991 wurde im Londoner Science Museum die Difference Engine No. 2 funktionsfähig nachgebaut. Später haben auch Bastler diese Maschine sogar mit LEGO-Spielzeugbausätzen nachgebaut...




Links:

Anmerkungen zur letzten Übung

Nochmal kurz zum RDFS Sprachmodell:
Alles (auch rdfs:Class) ist eine Subklasse von rdfs:Resource.
Da rdfs:Resource eine Instanz von rdfs:Class ist, ist alles Andere auch eine Instanz von rdfs:Class.

D.h., alles hat den Typ Klasse UND ist eine Unterklasse von Ressource.

Folgendes gilt also immer:

:irgendwas rdf:type rdfs:Class .
:irgendwas rdfs:subClassOf rdfs:Ressource .



Mehrere rdfs:domain Angaben

Jedes Property kann mehrere rdfs:range Statements haben. Dabei ist jedoch zu beachten, dass dann der Wertebereich des Propertys auf die Schnittmenge der entsprechenden Klassen eingeschränkt ist.

Also ist in Ordnung:

ex:istMutterVon a rdfs:Property .
ex:istMutterVon rdfs:domain ex:Person .
ex:istMutterVon rdfs:domain ex:Female .


Das selbe gilt für rdfs:range.

Dennoch ist es damit nicht so einfach, denn es kann schnell zu Problemen kommen, z.B. macht folgendes keinen Sinn:

ex:weight rdfs:domain ex:Book .
ex:weight rdfs:domain ex:MotorVehicle .

Zwar haben Bücher und Autos ein Gewicht, jedoch gibt es zwischen ihnen keine Schnittmenge. RDF berücksichtigt also nicht die Disjunktheit der Klassen.




Mehrere rdfs:subClassOf Statements

Laut RDF-Primer:

"A class may be a subclass of more than one class ..."

Demnach ist auch vollkommen OK:

ex:MiniVan rdfs:subClassOf ex:Van .
ex:MiniVan rdfs:subClassOf ex:PassengerVehicle .

Montag, 30. November 2009

Zur Vorlesung morgen...

Wie bereits angekündigt, wird sich die morgige Vorlesung in der Hauptsache mit LOGIK beschäftigen. Da Logik eigentlich bereits Bestandteil Ihres Grund-/Bachelor-Studiums war (bzw. gewesen sein sollte...), werden wir in der Vorlesung nur knapp die wichtigsten Punkte mit direkten Bezug auf unsere Thematik "Semantic Web" wiederholen und vertiefen.


Dazu zählen Aussagenlogik und Prädikatenlogik, Normalisierungen und Resolutionsverfahren. Wichtige Punkte, die Sie aus der Vorlesung mitnehmen und ev. weiter vertiefen sollten sind:
  • Worin genau unterscheiden sich Aussagenlogik und Prädikatenlogik (Ausdrucksmächtigkeit, Berechnungskomplexität, etc.)?
  • Wie modelliere ich Wissen mit Hilfe von Aussagenlogik/Prädikatenlogik?
  • Wie überprüfe ich die Konsistenz (Widerspruchsfreiheit) einer Wissensbasis?
  • Wie überprüfe ich die Korrektheit einer Behauptung?
  • Wie funktioniert das Resolutionsverfahren (auch in der Prädikatenlogik) und wie effizient lässt es sich umsetzen (Komplexität?)
Die Punkte werden auch z.T. durch Übungsaufgaben weiter vertieft, bevor wir uns dann weiter mit der formalen Semantik von RDF(S) und anschließend mit Beschreibungslogiken und der Web Ontology Language (OWL) beschäftigen werden...