Diploma Thesis
Refine
Year of publication
Document Type
- Diploma Thesis (46) (remove)
Language
- German (46)
Has Fulltext
- yes (46)
Is part of the Bibliography
- no (46)
Keywords
- Algebraische Gleichung (1)
- BMRT (1)
- BRDF (1)
- BTF (1)
- Beleuchtungsmodell (1)
- Computerlinguistik (1)
- Contextual Equivalence (1)
- Echtzeitprogrammierung (1)
- GPI (1)
- Gleichheitsanalyse (1)
Institute
- Informatik (46) (remove)
Visualisierung von E-Mail-Traffic mit Schwerpunkt auf eine inhaltliche Analyse von Wortmustern
(2010)
E-Mail hat sich zu einem sehr wichtigen Kommunikationsmittel entwickelt, leidet aber aktuell unter einer massiven Verbreitung unerwünschter und unverlangter Inhalte. Diese können für einen Anwender nicht nur lästig sein, sondern auch die vorhandene Netz- und Speicher-Infrastruktur enorm belasten.
Die Notwendigkeit einer Filterung des E-Mail-Traffic hat zu einer Reihe recht unterschiedlicher Methoden geführt, die computergesteuert eine E-Mail auf ihren Spam-Gehalt untersuchen.
Die Motivation hinter dieser Arbeit ist zu prüfen, ob die besonderen Eigenschaften der visuellen Wahrnehmung eines Menschen als unterstützendes Mittel eingesetzt werden können, um E-Mail-Inhalte zu überprüfen und eventuell vorhandene Wort-Muster, die auf Spam deuten, sichtbar zu machen.
Um dieses Ziel zu erreichen musste zuerst eine geeignete Auswahl spamspezifischer Merkmale getroffen werden. Danach wurden Methoden des Text Minings angewendet, um aus dem Inhalt einer E-Mail strukturierte Daten zu gewinnen, die sich zur Repräsentation einer Nachricht eignen und als Grundlage für eine Visualisierung herangezogen werden können. Basierend auf den vorab ausgewählten Spam-Charakteristika wurdenWorteigenschaften mit Hilfe extern angebundener Wortlisten, regulärer Ausdrücke und unter Einsatz eines Wörterbuches überprüft, und die erhaltenen Ergebnisse flossen neben einer einfachen Gewichtung von Worthäufigkeiten in Form einer anwendungsspezifischen Gewichtung mit ein.
Es wurden anschließend zwei verschiedene Sichten konzipiert, um einem Anwender einen Einblick in die extrahierten Daten zu ermöglichen. Es hat sich herausgestellt, dass besonders Treemaps geeignet sind um die anfallenden Datenmengen kompakt abzubilden, aber gleichzeitig einen notwendigen Detailgrad auf einzelne Worteigenschaften gewährleisten.
Das Konzept wurde prototypisch unter Verwendung des Mailservers Mercury/32 sowie einer MySQL-Datenbank implementiert und konnte teilweise aufzeigen, dass es anhand der von der Engine generierten Strukturen möglich ist, spamspezifische Merkmale einer E-Mail unter Verwendung der gewählten Visualisierungstechniken auf eine Weise sichtbar zu machen, die einem Anwender eine Mustererkennung erlauben.
Die Diplomarbeit wurde als Gemeinschaftsarbeit angefertigt und konnte sinnvoll in zwei Bereiche aufgeteilt werden: Die Engine und die Visualisierung. Die konzeptuellen Überlegungen für das Thema sind größtenteils gemeinsam erfolgt, jedoch liegt der Schwerpunkt von Pouneh Khayat Pour im Bereich der Analyse und der von Yvonne Neidert in der Visualisierung.
Die Arbeitsgruppe für Chemie und Physik der Atmosphäre am Institut für Meteorologie und Geophysik der Johann Wolfgang Goethe-Universität Frankfurt befasst sich unter anderem mit der Entwicklung einer Continous Flow Diffusion Chamber zur Erfassung und Klassifikation von CCN und IN. Diese Partikel besitzen eine Größe im Mikrometerbereich und sind somit nicht leicht zu erfassen und zu unterscheiden. Bei vergleichbaren Versuchen beschränkte sich bisher die automatische Auswertung auf die Anzahl der Partikel. Es gibt noch kein Verfahren, welches eine Klassifikation in CCN und IN videobasiert vornehmen kann. Es lag ebenfalls kein reales Bildmaterial vor, welches zu Testzwecken für die Klassifikation geeignet gewesen wäre. Basierend auf den physikalischen und meteorologischen Grundlagen wurde mittels Raytracing ein künstlicher Bilddatensatz mit kleinen Eiskristallen und Wassertröpfchen unter verschiedenen Betrachtungsverhältnissen erstellt. Anhand dieses Bilddatensatzes wurde dann ein Verfahren zur Klassifikation entwickelt und prototypisch implementiert, welches dies mittels Methoden aus der graphischen Datenverarbeitung und durch Berechnung der Momente vornimmt. Es war notwendig, Verfahren aus der Kameratechnik zu betrachten, die später in der realen Anwendung mit sehr kurzzeitiger Belichtung, geeigneter Optik und hochauflösender CCD-Kamera detaillierte Bilder von Objekten in der Größe von einigen 10µm liefern können.
In dieser Diplomarbeit wurde zunächst eine Einführung in das Gebiet der Unifikationstheorie gegeben, um dann zum Teilgebiet des Kontextmatchings zu kommen. Dieses wurde in das Gesamtgebiet der Unifikation eingeordnet. In Anlehnung an [Schm2003] wurde die Komplexität einiger Einschränkungen des Kontextmatchings betrachtet. Insbesondere wurde ein Algorithmus zur Lösung linearer Kontextmatchingprobleme in polynomieller Zeit vorgestellt. Es folgte die Einführung des Transformationsalgorithmus aus [Schm2003] zur Lösung allgemeiner Kontextmatchingprobleme, wobei nach und nach verbesserte Transformationsregeln für einzelne spezielle Problemsituationen vorgestellt wurden. Über [Schm2003] hinausgehend wurden die Regeln Split: Korrespondierende Lochpfade und Konstantenelimination vorgestellt. Im Rahmen der Diplomarbeit wurden die genannten Algorithmen in der funktionalen Programmiersprache Haskell implementiert, wobei auf eine einfache Erweiterbarkeit um neue Transformationsregeln sowie alternative Heuristiken zur Auswahl der in einem Schritt anzuwendenden Transformationsregel geachtet wurde. Die Implementierung (und damit auch die in ihr implementierten Algorithmen) wurde mit Hilfe von zufällig erzeugten Termen auf ihre Leistungsfähigkeit getestet. Hauptaugenmerk lag dabei darauf, inwiefern sich Regeln, die über die Basisregeln aus Tabelle 3.4.1 hinausgehen, positiv auf die Anzahl der Transformationsschritte auswirken. Das Ergebnis ist beeindruckend: durch die Einführung komplexerer Transformationsregeln ließen sich in unseren Testfällen bis zu 87% der Transformationsschritte einsparen, im Durchschnitt immerhin noch 83%. Speziell komplexere Kontextmatchingprobleme mit einer größeren Anzahl an Kontextvariablen profitieren hiervon. Insbesondere die Erkennung korrespondierender Positionen in Verbindung mit der Regel Split führte zu erheblichen Verbesserungen. Die implementierten Algorithmen zur Erkennung korrespondierender Positionen stellen teilweise nur ein notwendiges Kriterium für die Existenz korrespondierender Löcher dar. Dies kann zu fehlerhaften Erkennungen solcher Positionen führen. Wie sich in unseren Tests zeigte, scheint das jedoch kein gravierendes Problem zu sein, da die entsprechenden Split- Transformationen ohnehin äußerst sparsam eingesetzt werden.
In der vorliegenden Diplom-Arbeit wurde das in [19] vorgeschlagene Modell zur Partitionierung hybrider Systeme diskutiert und die Anwendbarkeit verschiedener verschiedener Optimierungsverfahren auf das Problem untersucht.
Hierbei wurde der Systemgraph um die Ein-/Ausgabe-Blöcke erweitert, damit der Systemgraph eine eine konsistente Erweiterung des des Graphen-Modells darstellt. Weiterhin wurden die Probleme und Einschränkungen aufgezeigt, die sich bei der Abbildung eines hybriden Systems auf den Systemgraphen ergeben.
In der heutigen Zeit werden viele Anwendungen als Webanwendungen entwickelt, weil man sie schneller auf den Markt werfen kann. Neue Methoden wurden entwickelt um den Softwareentwicklungsprozess zu verschlanken, um damit noch schneller und öfter eine Produkt auf den Markt zu bringen. Diese Methoden erschweren die Arbeit von manuellen Tester ungemein. Sie müssen jetzt noch schneller und noch öfter testen.
Um dieser Miesere entgegenzuwirken wurden Testautomatisierungsmechanismen und Testautomatisierungswerkzeuge entwickelt. In dieser Arbeit wollte ich zeigen, dass Testautomatisierung in bestehenden Projekten nachträglich noch eingefügt werden kann. Und das diese für eine verbesserte Qualität des Produktes sorgen kann.
Ich habe in dieser Arbeit den Testfallkatalog für das Produkt „Email4Tablet“ der Firma Deutsche Telekom AG zu 70% mit dem Testwerkzeug Selenium automatisiert.
Die Implementation der Striktheits-Analyse, die im Zuge dieser Arbeit vorgenommen wurde, stellt eine effiziente Approximation der abstrakten Reduktion mit Pfadanalyse dar. Durch die G#-Maschine, ein neues, auf der G-Maschine basierendes Maschinenmodell, wurde die verwendete Methode systematisch dargelegt. Die große Ähnlichkeit mit der G-Maschin, die in unserer Implementation beibehalten werden konnte, zeigt, wie natürlich die verwendete Methode der Reduktion in funktionalen Programmiersprachen entspricht. Obwohl die Umsetzung mehr Wert auf Nachvollziehbarkeit, als auf Effizienz legt, zeigt sie, daß die Methode der abstrakten Reduktion mit Pfadanalyse auch in einer funktionalen Implementierung durchaus alltagstauglich ist und Striktheits-Information findet, die Umsetzungen anderer Methoden nicht finden. Es bestehen Möglichkeiten zur Optimierung u. a. von Programmteilen, die für jede simulierte G#-Maschinen-Anweisung ausgeführt werden. Bei vorsichtiger Einschätzung erscheint eine Halbierung der Laufzeit mit vertretbarem Aufwand erreichbar.
Simulation von Prüfungsordnungen und Studiengängen mit Hilfe von Constraint-logischer Programmierung
(2006)
In dieser Arbeit wurde versucht die Prüfungsordnung des Bachelorstudiengangs Informatik mit Hilfe der Constraint-logischen Programmiersprache - genauer der Programmiersprache ECLiPSe e zu simulieren und diese auf logische Fehler zu überprüfen. Hierfür wurden die beiden deklarativen Programmierparadigmen, die logische Programmierung und die Constraint-Programmierung, getrennt erläutert, da sie unterschiedliche Techniken bei der Problembehandlung einsetzen. Zunächst wurde als Grundlage die Prädikatenlogik (Kapitel 2), erarbeitet und ausführlich dargestellt. Anschließend wurde die logische Programmierung mit der, auf Prädikatenlogik basierenden, Programmiersprache Prolog erläutert (Kapitel 3). Nach der Erläuterung des logischen Teils wurde die Constraint-Programmierung (Kapitel 4) eingehend erläutert. Damit wurde eine Basis geschaffen, um die Constraint-logische Programmierung zu erläutern. Die Constraint-logische Programmierung (Kapitel 5) wurde als eine Erweiterung der logischen Programmierung um Constraints und deren Behandlung dargestellt. Dabei wurde zunächst ein allgemeiner Ansatz der Constraint-logischen Programmierung (CLP-Paradigma) erläutert. Mit der Einführung der Programmiersprache ECLiPSe, wurden alle Werkzeuge behandelt, die für die Simulation benötigt wurden. Schließlich wurde genauer auf die Modellierung des Problems und seine Implementierung in der Sprache ECLiPSe eingegangen (Kapitel 6). Grundidee der Simulation war, die Regeln der Prüfungsordnung als Constraints zu formulieren, so dass sie formal bearbeitet werden konnten. Hier wurden zwei Arten von Tests durchgeführt: • Constraint-Erfüllbarkeitsproblem: Mit dem ersten Test wurde nach eine Lösung gesucht, in der alle Constraints erfüllt sind. • Constraint-Optimierungsproblem: Hier wurde nach einer optimalen Lösung gesucht unter mehreren Kandidaten, in der alle Constraints erfüllt sind. Fazit: Die Constraint-logische Programmierung ist ein viel versprechendes Gebiet, da sie ein Mittel zur Behandlung kombinatorischer Probleme darstellt. Solche Probleme treten in vielen verschiedenen Berufsfeldern auf und lassen sich sonst nur mit großem Aufwand bewältigen. Beim Auftreten solcher Probleme kann schnell ein konzeptuelles Modell erstellt werden, das sehr einfach in ein ausführbares Programm (Design-Modell) umgewandelt wird. Programm-Modifikation ist erheblich leichter als in den prozeduralen Programmiersprachen.
Funktionale Programmiersprachen weisen viele Eigenschaften auf, die zur modernen Softwareentwicklung benotigt werden: Zuverlässigkeit, Modularisierung, Wiederverwendbarkeit und Verifizierbarkeit. Als schwer vereinbar mit diesen Sprachen stellte sich die Einbettung von Seiteneffekten in diese Sprachen heraus. Nach einigen mehr oder weniger gescheiterten Ansätzen hat sich mittlerweile fur die nichtstrikte funktionale Sprache Haskell der monadische Ansatz durchgesetzt, bei dem die Seiteneffekte geschickt verpackt werden, so dass zumindest IO-behaftete Teile eines Haskell-Programms dem klassischen imperativen Programmierstil ähneln. S. Peyton Jones bringt dieses in [Pey01, Seite 3] auf den Punkt, indem er schreibt "...Haskell is the world's finest imperative programming language." Dies ist einerseits vorteilhaft, denn die klassischen Programmiertechniken können angewendet werden, andererseits bedeutet dies auch eine Rückkehr zu altbekannten Problemen in diesen Sprachen: Der Programmcode wird unverständlicher, die Wiederverwendbarkeit von Code verschlechtert sich, Änderungen im Programm sind aufwendig. Zudem erscheint die monadische Programmierung teilweise umständlich. Deshalb wurde im Zuge der Entwicklung in fast jede Implementierung von Haskell ein Konstrukt eingebaut, dass von monadischem IO zu direktem IO führt. Da dieses nicht mit dem bisherigen Ansatz vereinbar schien, wird es als "unsafe" bezeichnet, die entsprechende Funktion heißt "unsafePerformIO". Zahlreiche Anwendungen benutzten diese Funktion, teilweise scheint die Verwendung zumindest aus Effizienzgründen unabdingbar. Allerdings ist die Frage, wann dieses verwendet werden darf, d.h. so angewendet wird, dass es nicht "unsicher" ist, nur unzureichend geklärt. Das Zitat in Abbildung 1.1 gibt wenig Aufschluss über die korrekte Anwendung, zumal immer wieder Diskussionen entstehen, ob die Verwendung von unsafePerformIO in diesem oder jenem Spezialfall korrekt ist.
Grafik-Hardware ist programmierbar geworden. Graphic Processing Units (GPUs) der neuen Generation wie der GeForce3 von NVIDIA enthalten Prozessoren, die es dem Software-Entwickler erlauben kurze Routinen auf der Grafik-Hardware auszuführen. Ich gebe in dieser Arbeit einen umfassenden Überblick über die Architekur und Leistungsfähigkeit dieser neuen Chipgeneration, zeige deren Stärken und Schwächen auf und diskutiere Verbesserungsvorschläge. Als Teil der Arbeit präsentiere ich einige von mir entwickelte Schattierungsverfahren, sowie eine Wassersimulation. Diese Demonstratoren sind darauf ausgerichtet vollständig auf den Prozessoren der neuen Grafikchip- Generation zu laufen. Als Antwort auf die Mängel der zur Zeit verfügbaren Application Programming Interfaces stelle ich ein alternatives Interface zur Steuerung der neuen GPUKomponenten vor, das insbesondere die Austauschbarkeit und Kombinierbarkeit von GPU-Programmen unterstützt.
Raytracing und Szenengraphen
(2006)
Raytracing ist ein bekanntes Verfahren zur Erzeugung fotorealistischer Bilder. Globale Beleuchtungseffekte einer 3D-Szene werden durch das Raytracing-Verfahren physikalisch korrekt dargestellt. Erst aktuelle Forschungsarbeiten ermöglichen es, das sehr rechenintensive Verfahren bei interaktiven Bildraten in Echtzeit zu berechnen. Komplexe 3D-Szenen, wie sie beispielsweise in 3D-Spielen oder Simulationen vorkommen, können durch einen Szenengraphen modelliert und animiert werden. Damit die Rendering-Ergebnisse eines Szenengraphen näher an einem realen Bild liegen, ist es erforderlich das Raytracing-Verfahren in einen Szenengraphen einzugliedern. In dieser Arbeit werden die Möglichkeiten zur Integration eines Echtzeit-Raytracers in eine Szenengraph-API untersucht. Ziel dieser Diplomarbeit ist die Darstellung dynamischer Szenen bei interaktiven Bildraten unter Verwendung des Raytracing-Verfahrens auf einem herkömmlichen PC. Zunächst müssen bestehende Open Source Szenengraph-APIs und aktuelle Echtzeit-Raytracer auf ihre Eignung zur Integration hin überprüft werden. Bei der Verarbeitung dynamischer Szenen spielt die verwendete Beschleunigungsdatenstruktur des Raytracers eine entscheidende Rolle. Da eine komplette Neuerstellung der Datenstruktur in jedem Bild zuviel Zeit in Anspruch nimmt, ist eine schnelle und kostengünstige Aktualisierung erforderlich. Die in [LAM01] vorgestellte Lösung, eine Hüllkörperhierarchie (BVH) als Beschleunigungsdatenstruktur zu verwenden, fügt sich sehr gut in das Konzept eines Szenengraphen ein. Dadurch wird eine einfache Aktualisierung ermöglicht. Um das Ziel dieser Arbeit zu erreichen, ist es notwendig, die Parallelisierbarkeit des Raytracing-Verfahrens auszunutzen. Purcell zeigt in [Pur04], dass Grafikprozessoren (GPUs) neben ihrer eigentlichen Aufgabe auch für allgemeine, parallele Berechnungen wie das Raytracing verwendet werden können. Die in bisherigen Arbeiten über GPU-basiertes Raytracing entwickelten Systeme können dynamische Szenen nicht bei interaktiven Bildraten darstellen. Aus diesem Grund wird in dieser Diplomarbeit ein neues System konzipiert und implementiert, das den in [TS05] entwickelten Raytracer erweitert und in die Open Source Szenengraph-API OGRE 3D integriert. Das implementierte System ermöglicht die Darstellung statischer und dynamischer Szenen unter Verwendung einer Consumer-Grafikkarte bei interaktiven Bildraten. Durch seine Erweiterbarkeit bildet das System das Grundgerüst für ein Realtime-High-Quality-Rendering-System.
Raytracing und Szenegraphen
(2006)
Raytracing ist ein bekanntes Verfahren zur Erzeugung fotorealistischer Bilder. Globale Beleuchtungseffekte einer 3D-Szene werden durch das Raytracing-Verfahren physikalisch korrekt dargestellt. Erst aktuelle Forschungsarbeiten erm¨oglichen es, das sehr rechenintensive Verfahren bei interaktiven Bildraten in Echtzeit zu berechnen.
Komplexe 3D-Szenen, wie sie beispielsweise in 3D-Spielen oder Simulationen vorkommen, können durch einen Szenengraphen modelliert und animiert werden. Damit die Rendering-Ergebnisse eines Szenengraphen n¨aher an einem realen Bild liegen, ist es erforderlich das Raytracing-Verfahren in einen Szenengraphen einzugliedern.
In dieser Arbeit werden die Möglichkeiten zur Integration eines Echtzeit-Raytracers in eine Szenengraph-API untersucht. Ziel dieser Diplomarbeit ist die Darstellung dynamischer Szenen bei interaktiven Bildraten unter Verwendung des Raytracing-Verfahrens auf einem herk¨ommlichen PC. Zun¨achst m¨ussen bestehende Open Source Szenengraph-APIs und aktuelle Echtzeit-Raytracer auf ihre Eignung zur Integration hin überprüft werden.
Bei der Verarbeitung dynamischer Szenen spielt die verwendete Beschleunigungsdatenstruktur des Raytracers eine entscheidende Rolle. Da eine komplette Neuerstellung der Datenstruktur in jedem Bild zuviel Zeit in Anspruch nimmt, ist eine schnelle und kostengünstige Aktualisierung erforderlich. Die in [LAM01] vorgestellte Lösung, eine Hüllkörperhierarchie (BVH) als Beschleunigungsdatenstruktur zu verwenden, fügt sich sehr gut in das Konzept eines Szenengraphen ein. Dadurch wird eine einfache Aktualisierung ermöglicht.
Um das Ziel dieser Arbeit zu erreichen, ist es notwendig, die Parallelisierbarkeit des Raytracing-Verfahrens auszunutzen. Purcell zeigt in [Pur04], dass Grafikprozessoren (GPUs) neben ihrer eigentlichen Aufgabe auch für allgemeine, parallele Berechnungen wie das Raytracing verwendet werden können.
Die in bisherigen Arbeiten über GPU-basiertes Raytracing entwickelten Systeme können dynamische Szenen nicht bei interaktiven Bildraten darstellen. Aus diesem Grund wird in dieser Diplomarbeit ein neues System konzipiert und implementiert, das den in [TS05] entwickelten Raytracer erweitert und in die Open Source Szenengraph-API OGRE 3D integriert.
Das implementierte System ermöglicht die Darstellung statischer und dynamischer Szenen unter Verwendung einer Consumer-Grafikkarte bei interaktiven Bildraten. Durch seine Erweiterbarkeit bildet das System das Grundger¨ust für ein Realtime-High-Quality-Rendering-System.
Point-Based Animation
(2011)
Die punktbasierte Animation ist ein relativ neues Gebiet im Bereich der Animation. Der Unterschied zu den weit verbreiteten polygonnetzbasierten Verfahren liegt darin, dass zwischen den einzelnen Punkten, welche die Oberfläche des zu animierenden Objekts definieren, keine Topologieinformationen vorhanden sind. Mit polygonnetzbasierten Techniken ist keine Volumensimulation möglich, da keine Volumeninformationen vorhanden sind. Die aktuellen Verfahren im punktbasierten Feld ermöglichen die Animation von Flüssigkeiten, Rauch oder Explosionseffekten. In dieser Arbeit wird eine Animation auf Grundlage eines zur Verfügung gestellten Punktmodells ausgeführt. Um zu gewährleisten, dass die Animation korrekt nach den Gesetzen der Physik arbeitet, wird eine Physikengine zu Hilfe genommen. Diese beiden Bereiche werden in dieser Arbeit miteinander verknüpft. Zunächst werden einfache Simulationen im Sektor der starren Körperdynamik durchgeführt. Dabei werden einzelne Punkte unter Einfluss der Gravitation auf eine Ebene fallen gelassen. Vor allem die Berechnung der Kollision mit der Ebene und der Punkte untereinander ist hierbei interessant. Um sehenswerte physikalische Effekte animieren zu können, muss die Elastizität mit berücksichtigt werden. DesWeiteren wird in der Arbeit die Animation elastischer Körper verwirklicht. Hierbei wird eine an den Ecken fixierte elastische Ebene animiert. Einzelne Punkte können aus diesem elastischen Objekt herausgezogen werden, in Folge dessen sich das Objekt selbst repariert. Ebenfalls kann ein herausgeschnittner Punkt wieder in das Objekt eingefügt werden.
In Abschnitt 4.1 wurden Algebren auf Mengen und Relationen vorgestellt. Desweitern wurde in Abschnitt 4.2 eine zu ALC erweiterte terminologische Wissensrepräsentationssprache ALCX definiert und gezeigt, daß die in Abschnitt 4.1 vorgestellten Algebren zur Festlegung der odell-theoretischen Semantik der Sprache ALCX benutzt werden können. Als Ergebnis einer derartigen Festlegung kann jeder terminologische Ausdruck direkt mit einem algebraischen Term assoziiert werden. Desweitern können alle in den Algebren aufgeführten universellen Identitäten in semantisch äquivalente terminologische Identitäten überführt werden. Eine mittels ALCX repräsentierte Wissensbasis ist in meinem Programm mit Hilfe der in der funktionalen Programmiersprache Gofer (Version 2.28) gegebenen Möglichkeiten formuliert. Mein Programm bietet durch Simplifizierung von Anfrageausdrücken eine optimierte Lösung des aus dem Bereich der Wissensrepräsentation bekannten Retrieval-Problems. Die Simplifizierung von Anfrageausdrücken wird in meinem Programm erzielt, indem in den oben genannten Algebren erfüllte universelle Identitäten als Simplifikationshilfsmittel benutzt werden. Die in den Algebren aufgeführten universellen Identitäten bestehen stets aus zwei äquivalenten Termen, für die eine unterschiedliche Anzahl von Reduktionsschritten zur Evaluierung benötigt werden. Es existieren universelle Identitäten, bei denen unabhängig von den Instanzen der Argumentterme ein Term gegenüber einem anderen Term effizienter auswertbar ist. Bei diesen universellen Identitäten kann eine Simplifikation von einem Term zu einem anderen Term immer unproblematisch realisiert werden. Es gibt jedoch auch universelle Identitäten, bei denen die Unabhängigkeit von den Instanzen der Argumentterme nicht gegeben ist. In diesen Fällen wird ein von der Wissensbasis abhängiges Komplexitätsabschätzungsverfahren eingesetzt, um den effizienter auswertbaren Term von zwei an einer universellen Identität beteiligten Termen zu ermitteln. Daß die Simplifikation eines Anfrageausdrucks große Einsparungen bei dessen Auswertung nach sich ziehen kann, wurde an verschiedenen Beispielen in Abschnitt 5.4.4 gezeigt. Über eine weitere Möglichkeit, die zum Simplifizieren von Anfrageausdrucken verwendet werden kann, wurde in Abschnitt 5.4.5 berichtet. Die Genauigkeit der Komplexitätsabschätzung kann erhöht werden, indem das Komplexitätsabschätzungsverfahren erweitert wird. So kann beispielsweise die Komplexität der Funktion "oder" genauer abgeschätzt werden, indem für zu vereinigende Mengen überprüft wird, ob Teilmengenbeziehungen vorhanden sind. Durch eine genauere Abschätzung der Mächtigkeit entstehender Vereinigungsmengen wird die Komplexitätsabschätzung insgesamt in ihrer Genauigkeit gesteigert. Eine Änderung der Instanzen meiner terminologischen Datenbank erfordert eine Änderung des Skripts meines Programms. Indem die Instanzen-Daten in einer veränderlichen Datenbank festgehalten würden, könnte hier Abhilfe geschaffen werden. Dies könnte im Rahmen der Erstellung einer benutzterfreundlichen Ein- und Ausgabe-Schnittstelle realisiert werden.
In der Computergraphik werden immer wieder verschiedenste Objekte des realen Lebens modelliert. Dabei werden oft die Regeln ihres Aufbaus ausgenutzt, um diese Modelle automatisch zu erzeugen.
Gotische Architektur bietet daf¨ur gute Voraussetzungen. Auf Grund ihres hohen Grades an selbst¨ahnlichen Strukturen besteht die Möglichkeit, solche Regeln aus ihrem Aufbau abzuleiten. Wie bei vielen gotischen Elementen lassen sich auch bei den Pfeilern, die die Basis jedes gotischen Gewölbes bilden, solche Strukturen in ihrem teilweise komplexen Grundriss finden.
Die vorliegende Diplomarbeit stellt eine Methode vor, mit der die Grundrisse verschiedener gotischer Pfeiler beschrieben werden können. Die in dieser Arbeit entwickelte Querschnittsbeschreibung, wird die Darstellung der Grundrisse möglichst vieler verschiedener Pfeiler erlauben und automatisch erzeugbar sein. Der Aufbau der Beschreibung erm¨oglicht die Generierung eines 3D-Modells.
Um dies zu erreichen, wird zunächst eine Analyse der Querschnitte verschiedener gotischer Pfeiler vorgenommen. Mit den in der Analyse gewonnenen Informationen wird formal eine Querschnittsbeschreibung entwickelt, die die oben beschriebenen Anforderungen erf¨ullt. Die automatische Erzeugung erfolgt über ein parametrisches L-System. Aus der Beschreibung des Querschnitts wird schließlich das 3D-Modell erzeugt.
Die Implementierung erfolgt komplett in C++. Für die Erzeugung des 3D-Modells wird der Open Source Szenengraph Ogre3D verwendet, der die notwendige 3D-Grafik-Funktionalit¨at zur Verfügung stellt.
Mit der realisierten Anwendung ist es m¨oglich, mit wenigen Eingaben ein Modell eines komplexen gotischen Pfeilers zu erstellen.
Um in verschiedenen Anwendungsumgebungen eingesetzt werden zu können, lässt die CORBA-Spezifikation einen weiten Spielraum für Implementierungen. Sollte CORBA in einem speziellen Umfeld eingesetzt werden, so war bisher eine Neu-Implementierung notwendig, da herkämmliche CORBA-Implementierungen nicht oder nur sehr eingeschränkt an spezielle Anwendungsumgebungen anpassbar sind. In dieser Arbeit wurde ein Ansatz für eine erweiterbare CORBA-Implementierung vorgestellt und implementiert.
In erstem Teil der Arbeit wurde der Begriff Drehbuch in Hinsicht auf die Erstellung von eLearning Kursen erläutert und eLearning Inhalte auf ihre typischen Merkmale untersucht. Dabei war es wichtig zu verstehen, ob und wie die kooperative Arbeit an Inhalten in gängigen Textbearbeitungsprogrammen unterstützt wird und welche Vor- und Nachteile der jeweilige Editor aufweist. Wie sich herausgestellt hat, setzen bestehende Lösungen auf Auszeichnungen von Textbausteinen und der Kursstruktur mit Hilfe von speziellen Makros, so dass beim Transformieren des Kurses diese wiedererkannt werden können. Leider sind diese Lösungen auf einen bestimmten Editor spezialisiert und betrachten die kooperativen Aspekte der Arbeit an Inhalten nicht.
Da das Drehbuch in einem Textbearbeitungsprogramm erstellt wird, ist die Möglichkeit der Wahl von einem Editor für die Autoren vorteilhaft. Deshalb sieht der Lösungsansatz in meiner Arbeit vor, dass die Umsetzung des Drehbuches nicht auf einen bestimmten Editor beschränkt ist und dass für jeden Editor kooperative Bearbeitung ermöglicht wird. Dies wird zum einen durch Verwendung eines Versionskontrollesystems und zum anderen durch die kooperativen Eigenschaften der Editoren erreicht.
Das Transformieren eines Drehbuches zu einem eLearning Kurs wurde einheitlich gestaltet, da HTML als ein gemeinsames Format der Ausgabe von Editoren ausgewählt wurde. In der Implementierung des Lösungsansatzes konnte am Beispiel des Autorensprogramms LernBar die Unterstützung von bereits drei Editoren erreicht werden.
Einige Einschränkungen sind bei der Verwendung dieser Lösung zu beachten. Bei den Veränderungen in der HTML-Ausgabe der Editoren sind möglicherweise auch Anpassungen im Programm vorzunehmen. Die Verwendung von Tabellen impliziert, dass ihre Struktur durch den Autor nicht geändert wird, was durchaus auch versehentlich passieren kann. Bei der Erstellung von Tests ist eine umfassende Validierung empfehlenswert, damit die Tests wie erwartet durchgeführt werden können. Es wurden in der Implementierung nur einige Testtypen umgesetzt und möglicherweise sind einige Tests nicht für die Erfassung im Drehbuch geeignet. In dem Fall müssen sie in den verwendeten Autorenprogramm direkt erstellt werden.
Die rasante Entwicklung von Internettechnologien wird sicherlich neue Möglichkeiten sowohl für die kooperative Arbeit, als auch für Textbearbeitungsfunktionalitäten anbieten. Allein im Jahr 2010 wurden mehrere Neuerungen auf dem Markt von Online-Editoren eingeführt. Microsoft hat eine Online-Version1 von seiner Office-Suite veröffentlicht und damit eine neue Alternative zu Google Docs angeboten. In Google-Docs werden nahezu im monatlichen Takt neue nützliche Funktionen implementiert, die sowohl die Textverarbeitung als auch die Kooperation verbessern.