927 resultados para Data processing Computer science
Resumo:
We study cooperating distributed systems (CD-systems) of stateless deterministic restarting automata with window size 1 that are governed by an external pushdown store. In this way we obtain an automata-theoretical characterization for the class of context-free trace languages.
Resumo:
It is known that cooperating distributed systems (CD-systems) of stateless deterministic restarting automata with window size 1 accept a class of semi-linear languages that properly includes all rational trace languages. Although the component automata of such a CD-system are all deterministic, in general the CD-system itself is not, as in each of its computations, the initial component and the successor components are still chosen nondeterministically. Here we study CD-systems of stateless deterministic restarting automata with window size 1 that are themselves completely deterministic. In fact, we consider two such types of CD-systems, the strictly deterministic systems and the globally deterministic systems.
Resumo:
Die vorliegende Diplomarbeit, befasst sich mit der Darstellung von TEI-Dokumenten im Content-Management-System „Drupal“. Dazu wird ein Modul entwickelt, welches das einfache Publizieren von Dokumenten in diesem, auf der Extensible Markup Language (XML) basierenden Format, in Drupal ermöglicht. Das Modul bietet eine Oberfläche zum Hochladen dieser Dokumente an und stellt zusätzlich Optionen bereit, die es ermöglichen die Darstellung der angezeigten Dokumente zu beeinflussen. Dabei ist es durch ein spezielles Menü möglich, Farben, Schriftgröße und -art festzulegen. Die Konvertierung der Dokumente geschieht per XSL Transformation und basiert auf dem Ergebnis eines vorangegangenen Projekts. Die Darstellung wird angereichert durch dynamische Elemente, wie Anmerkungen des Autors oder die Möglichkeit zur Umschaltung zwischen verschiedenen Textversionen wie z.B. einer originalen und einer korrigierten Fassung. Diese Funktion ist durch eine Werkzeugleiste zugänglich, die im unteren Bereich eingeblendet wird und es auch ermöglicht Seitenzahlen, die im Dokument als solche erkannt wurden, zu suchen oder direkt aufzurufen.
Resumo:
Die Diplomarbeit beschäftigt sich mit der erweiterten Suche innerhalb von Dokumenten, die im TEI-Lite kodierten Format im Content-Management-System Drupal vorliegen. Aufgrund des modularen Aufbaus von Drupal wird die erweiterte Suche in Form eines Moduls verwirklicht. In einem ersten Schritt werden die Merkmale der im TEI-Lite Format vorliegenden Dokumente beschrieben. Dies umfasst Angaben sowohl zur Definition des TEI-Standards als auch zu grundlegenden Dokumenteneingenschaften. Weiterhin wird auf das CMS Drupal eingegangen und die Konzepte bereits existierender Suchmodule betrachtet. Die Präsentation des entwickelten Konzeptes zur Implementierung eines Suchmoduls, das auf die Bedürfnisse von TEI-Lite standardisierten Dokumenten ausgerichtet ist, ergibt sich aus den vorangegangenen Arbeitsschritten. Daraus resultieren Ansätze zur Indexierung, Durchsuchbarkeit sowie der visuellen Präsentation der Suchergebnisse. Die Schilderung der Verwendung und der Funktionen, die das Modul nach abgeschlossenen Programmierarbeiten kennzeichnen, geht der Darstellung des Implementierungsvorgangs voran, der gleichsam den Kern der Diplomarbeit bildet. Unter Zuhilfenahme von Quelltext-Auszügen werden Details zu einzelnen Entwicklungsstadien präsentiert. Abschließend wird ein Ausblick auf weitere Optimierungsmöglichkeiten des erarbeiteten Suchmoduls gegeben.
Resumo:
Um der wachsenden Popularität der E-Books Rechnung zu tragen, befasst sich diese Arbeit mit der Entwicklung eines Drupal-Moduls, welches TEI-Dokumente als EPUB-Version für E-Reader zum Download anbietet. Eine Plain Text- als auch die TEI/XML-Version werden zusätzlich zum Herunterladen bereitgestellt. Ziel ist es, das Modul so zu konzipieren, dass die Wahl verschiedener Textvarianten (Originalfassung oder korrigierte Version) sowie eine Bestimmung des Textumfangs (Haupttext inklusive Anmerkungen des Autors oder Haupttext inklusive Anmerkungen des Autors und des Herausgebers) möglich sind. Eine Auswahlliste erlaubt es dem Benutzer darüber hinaus, ausschließlich die Kapitel seiner Wahl herunterzuladen. Das Modul wird als Block implementiert, um seine variable Positionierung auf der Webseite gewährleisten zu können. Zudem wird eine Konfigurationsseite im administrativen Bereich von Drupal implementiert, die eine Gestaltung des Blocks sowie zahlreiche Einstellungsoptionen zur Verfügung stellt. Hierzu gehört z.B. die Auswahl der Metadaten, die auf den ersten beiden Seiten des E-Books angezeigt werden.
Resumo:
Kern der vorliegenden Arbeit ist die Erforschung von Methoden, Techniken und Werkzeugen zur Fehlersuche in modellbasierten Softwareentwicklungsprozessen. Hierzu wird zuerst ein von mir mitentwickelter, neuartiger und modellbasierter Softwareentwicklungsprozess, der sogenannte Fujaba Process, vorgestellt. Dieser Prozess wird von Usecase Szenarien getrieben, die durch spezielle Kollaborationsdiagramme formalisiert werden. Auch die weiteren Artefakte des Prozess bishin zur fertigen Applikation werden durch UML Diagrammarten modelliert. Es ist keine Programmierung im Quelltext nötig. Werkzeugunterstützung für den vorgestellte Prozess wird von dem Fujaba CASE Tool bereitgestellt. Große Teile der Werkzeugunterstützung für den Fujaba Process, darunter die Toolunterstützung für das Testen und Debuggen, wurden im Rahmen dieser Arbeit entwickelt. Im ersten Teil der Arbeit wird der Fujaba Process im Detail erklärt und unsere Erfahrungen mit dem Einsatz des Prozesses in Industrieprojekten sowie in der Lehre dargestellt. Der zweite Teil beschreibt die im Rahmen dieser Arbeit entwickelte Testgenerierung, die zu einem wichtigen Teil des Fujaba Process geworden ist. Hierbei werden aus den formalisierten Usecase Szenarien ausführbare Testfälle generiert. Es wird das zugrunde liegende Konzept, die konkrete technische Umsetzung und die Erfahrungen aus der Praxis mit der entwickelten Testgenerierung dargestellt. Der letzte Teil beschäftigt sich mit dem Debuggen im Fujaba Process. Es werden verschiedene im Rahmen dieser Arbeit entwickelte Konzepte und Techniken vorgestellt, die die Fehlersuche während der Applikationsentwicklung vereinfachen. Hierbei wurde darauf geachtet, dass das Debuggen, wie alle anderen Schritte im Fujaba Process, ausschließlich auf Modellebene passiert. Unter anderem werden Techniken zur schrittweisen Ausführung von Modellen, ein Objekt Browser und ein Debugger, der die rückwärtige Ausführung von Programmen erlaubt (back-in-time debugging), vorgestellt. Alle beschriebenen Konzepte wurden in dieser Arbeit als Plugins für die Eclipse Version von Fujaba, Fujaba4Eclipse, implementiert und erprobt. Bei der Implementierung der Plugins wurde auf eine enge Integration mit Fujaba zum einen und mit Eclipse auf der anderen Seite geachtet. Zusammenfassend wird also ein Entwicklungsprozess vorgestellt, die Möglichkeit in diesem mit automatischen Tests Fehler zu identifizieren und diese Fehler dann mittels spezieller Debuggingtechniken im Programm zu lokalisieren und schließlich zu beheben. Dabei läuft der komplette Prozess auf Modellebene ab. Für die Test- und Debuggingtechniken wurden in dieser Arbeit Plugins für Fujaba4Eclipse entwickelt, die den Entwickler bestmöglich bei der zugehörigen Tätigkeit unterstützen.
Resumo:
Evolutionäre Algorithmen werden gerne für Optimierungsaufgaben mit sehr vielen Freiheitsgraden eingesetzt. Eine spezielle Konvergenzeigenschaft, daß nämlich der Rechenaufwand nur mit der Wurzel der Anzahl der Unbekannten steigt, prädestiniert sie dafür. Die evolutionären Algorithmen haben aber auch noch eine weitere interessante Eigenschaft: Von der Zielfunktion wird nur verlangt, daß sie monoton ist - nichts weiter. Speziell wird, im Gegensatz zu gradientenbasierten Verfahren, keinerlei Ableitung von der Zielfunktion benötigt. Dadurch können evolutionäre Algorithmen auch in solchen Fällen eingesetzt werden, in denen Ableitungen der Zielfunktion nicht oder nur schwierig zu beschaffen sind. Die evolutionären Algorithmen kommen deshalb mit so geringen Anforderungen an die Zielfunktion aus, weil nur absolute Bewertungen einzelner Punkte (hier Vektoren) im Lösungsraum durch die Zielfunktion vorgenommen werden. Dafür werden eine gewisse Anzahl Punkte gleichzeitig betrachtet. Im direkten Vergleich untereinander relativ günstig liegende Punkte werden für die weitere Rechnung übernommen, die anderen verworfen. Aus den Komponenten der übernommenen Punkte werden nun zufällig neue Punkte zusammengesetzt und ein wenig verschoben. Dann schließt sich der Kreis, indem diese neuen Punkte ebenfalls bewertet werden. Im Verlauf einer solchen Iteration konvergiert die Punktmenge in der Regel gegen ein Optimum. Oft kommt es gerade zu Beginn der Iteration zu schnellen Fortschritten. In dieser Arbeit wird ein Verfahren vorgestellt, bei dem mit Hilfe von evolutionären Algorithmen verbessernde Eingriffe in laufenden Echtzeitsystemen vorgenommen werden. Was gut oder schlecht ist, wird zu diesem Zweck über die Zielfunktion für die Optimierung definiert. Da von der Zielfunktion letztlich das Verhalten des Gesamtsystems abhängt, sollte sie sorgfältig ausgewählt werden. Die Eingriffe in das System sind zeitlich begrenzte Steuertrajektorien. Sie werden zusätzlich zur permanent wirkenden Regelung auf das System aufgebracht. Um die Anzahl der zu optimierenden Variablen in Grenzen zu halten, werden die Steuertrajektorien durch wenige Parameter repräsentiert. Da die Steuertrajektorien im voraus berechnet werden müssen, wird das Systemverhalten mittels eines Modells für eine gewisse, in der Zukunft liegende, Zeitspanne vorhergesagt. Wird die geforderte Qualität während dieser Zeitspanne unterschritten, kann so schon im Vorfeld ein Optimierungslauf des evolutionären Algorithmus durchgeführt werden. Allerdings ist die zur Verfügung stehende Rechenzeit von vornherein begrenzt. Daher ist es wesentlich, daß die mit evolutionären Algorithmen häufig assoziierte lange Rechenzeit nicht benötigt wird. Tatsächlich läßt sich unter Umständen mit wenig Rechenzeit auskommen. Erstens wird nur mit wenigen Variablen gerechnet, zweitens kommt es bei dem beschriebenen Verfahren - halbwegs gutmütige Systeme vorausgesetzt - gar nicht auf die letzte Nachkommastelle, sondern (ähnlich wie bei Sliding-Mode-Regelungen) mehr auf eine Tendenz an. Da evolutionäre Algorithmen aber gerade zu Beginn einer Iteration die größten Fortschritte in Richtung des Optimums machen, kann schon nach vergleichsweise wenigen Schritten eine deutliche Verbesserung der Gesamtsituation erreicht werden. Gerade um eine schnelle Konvergenz zu erreichen, sind die spezielle Ausprägung und die Parameter des evolutionären Algorithmus mit Bedacht zu wählen. Dafür werden im Rahmen der Arbeit einige Experimente durchgeführt. Anhand der Ergebnisse der Experimente können konkrete Empfehlungen für eine günstige Konfiguration des evolutionären Algorithmus gegeben werden. Um es vorwegzunehmen: Zuviel Aufwand beim evolutionären Algorithmus zu treiben, lohnt sich nicht. Schon mit einfachen Konfigurationen können gute Ergebnisse erzielt werden. Die einzige Maßnahme, die sich bei den Experimenten tatsächlich als vorteilhaft herausstellte, war die Aufteilung der Gesamtpopulation (betrachtete Punktmenge im Lösungsraum) in mehrere Subpopulationen. Schließlich wird noch ein Computerprogramm beschrieben, das die Arbeitsweise des vorgestellten Verfahrens am Bildschirm erlebbar macht. Die einzelnen Komponenten werden vom Programm während der Ausführung mit einigen wesentlichen Rechengrößen visualisiert. Der Betrachter erhält so einen besseren Eindruck vom Zusammenwirken der einzelnen Verfahrens-Teile.
Resumo:
Vorgestellt wird eine weltweit neue Methode, Schnittstellen zwischen Menschen und Maschinen für individuelle Bediener anzupassen. Durch Anwenden von Abstraktionen evolutionärer Mechanismen wie Selektion, Rekombination und Mutation in der EOGUI-Methodik (Evolutionary Optimization of Graphical User Interfaces) kann eine rechnergestützte Umsetzung der Methode für Graphische Bedienoberflächen, insbesondere für industrielle Prozesse, bereitgestellt werden. In die Evolutionäre Optimierung fließen sowohl die objektiven, d.h. messbaren Größen wie Auswahlhäufigkeiten und -zeiten, mit ein, als auch das anhand von Online-Fragebögen erfasste subjektive Empfinden der Bediener. Auf diese Weise wird die Visualisierung von Systemen den Bedürfnissen und Präferenzen einzelner Bedienern angepasst. Im Rahmen dieser Arbeit kann der Bediener aus vier Bedienoberflächen unterschiedlicher Abstraktionsgrade für den Beispielprozess MIPS ( MIschungsProzess-Simulation) die Objekte auswählen, die ihn bei der Prozessführung am besten unterstützen. Über den EOGUI-Algorithmus werden diese Objekte ausgewählt, ggf. verändert und in einer neuen, dem Bediener angepassten graphischen Bedienoberfläche zusammengefasst. Unter Verwendung des MIPS-Prozesses wurden Experimente mit der EOGUI-Methodik durchgeführt, um die Anwendbarkeit, Akzeptanz und Wirksamkeit der Methode für die Führung industrieller Prozesse zu überprüfen. Anhand der Untersuchungen kann zu großen Teilen gezeigt werden, dass die entwickelte Methodik zur Evolutionären Optimierung von Mensch-Maschine-Schnittstellen industrielle Prozessvisualisierungen tatsächlich an den einzelnen Bediener anpaßt und die Prozessführung verbessert.
Resumo:
Fujaba is an Open Source UML CASE tool project started at the software engineering group of Paderborn University in 1997. In 2002 Fujaba has been redesigned and became the Fujaba Tool Suite with a plug-in architecture allowing developers to add functionality easily while retaining full control over their contributions. Multiple Application Domains Fujaba followed the model-driven development philosophy right from its beginning in 1997. At the early days, Fujaba had a special focus on code generation from UML diagrams resulting in a visual programming language with a special emphasis on object structure manipulating rules. Today, at least six rather independent tool versions are under development in Paderborn, Kassel, and Darmstadt for supporting (1) reengineering, (2) embedded real-time systems, (3) education, (4) specification of distributed control systems, (5) integration with the ECLIPSE platform, and (6) MOF-based integration of system (re-) engineering tools. International Community According to our knowledge, quite a number of research groups have also chosen Fujaba as a platform for UML and MDA related research activities. In addition, quite a number of Fujaba users send requests for more functionality and extensions. Therefore, the 8th International Fujaba Days aimed at bringing together Fujaba develop- ers and Fujaba users from all over the world to present their ideas and projects and to discuss them with each other and with the Fujaba core development team.
Resumo:
Laut dem Statistischen Bundesamts ist die Zahl der im Straßenverkehr getöteten Personen zwar rückläufig, jedoch wurden in 2010 in Deutschland noch immer 3648 Personen bei Unfällen im Straßenverkehr getötet, 476 davon waren Fußgänger. In den letzten Dekaden lag der Schwerpunkt der Forschungsarbeiten zur Reduzierung der Verkehrstoten besonders im Bereich des Insassenschutzes. Erst in den letzten Jahren rückte die Thematik des Fußgängerschutzes mehr in den Fokus des öffentlichen Interesses und der Automobilhersteller. Forschungsarbeiten beschäftigen sich mit unterschiedlichen Ansätzen die Folgen einer Kollision zwischen einem Auto und einem Fußgänger zu reduzieren. Hierzu zählen z.B. weiche Aufprallzonen im Frontbereich eines Autos, aufstellende Motorhaube oder auch Fußgängerairbags im Bereich der Frontscheibe. Da passive Ansätze aber nur die Folgen eines Aufpralls am Fahrzeug, nicht aber die Folgen eines Sekundäraufpralls auf dem Boden verringern können, werden parallel Ansätze zur aktiven Kollisionsvermeidung untersucht. Die bisher verfolgten, ebenso wertvollen Ansätze, zeigen jedoch jeweils Schwachpunkte in Ihrer Lösung. So ist der Einsatz der bisherigen bordautonomen Ansätze auf Grund der Anforderungen der verschiedenen Systeme, wie der Notwendigkeit einer direkten, ungestörten Sichtverbindung zwischen Auto und Fußgänger, leider nur eingeschränkt möglich. Kooperative Systeme, die ein zusätzliches, vom Fußgänger mitzuführendes Sende-Empfänger Gerät zur Ermittlung der Fußgängerposition benötigen sind hingegen mit zusätzlichem Aufwand für den Fußgänger verbunden. Auch fehlen den bisher verfolgten Ansätzen Informationen über den Fußgänger, wodurch es schwierig ist, wenn nicht gar manchmal unmöglich, eine Situation korrekt bewerten zu können. Auch sehen diese Systeme keine Warnung des Fußgängers vor. In dieser Arbeit wird ein Verfahren zum Fußgängerschutz betrachtet, welches per Funk ausgetauschte Informationen zur Risikobewertung eines Szenarios nutzt. Hierbei werden neben den vom Auto bekannten Informationen und Parameter, die vom Smartphone des Fußgängers zur Verfügung gestellten Kontextinformationen verwendet. Es werden zum einen die Parameter, Bedingungen und Anforderungen analysiert und die Architektur des Systems betrachtet. Ferner wird das Ergbnis einer Untersuchung zur generellen Umsetzbarkeit mit bereits heute in Smartphone verfügbaren Funktechnolgien vorgestellt. Final werden die bereits vielversprechenden Ergebnisse eines ersten Experiments zur Nutzbarkeit von Sensorinformationen des Smartphones im Bereich der Kollisionsvermeidung vorgestellt und diskutiert.
Resumo:
Heutzutage haben selbst durchschnittliche Computersysteme mehrere unabhängige Recheneinheiten (Kerne). Wird ein rechenintensives Problem in mehrere Teilberechnungen unterteilt, können diese parallel und damit schneller verarbeitet werden. Obwohl die Entwicklung paralleler Programme mittels Abstraktionen vereinfacht werden kann, ist es selbst für Experten anspruchsvoll, effiziente und korrekte Programme zu schreiben. Während traditionelle Programmiersprachen auf einem eher geringen Abstraktionsniveau arbeiten, bieten funktionale Programmiersprachen wie z.B. Haskell, Möglichkeiten zur fortgeschrittenen Abstrahierung. Das Ziel der vorliegenden Dissertation war es, zu untersuchen, wie gut verschiedene Arten der Abstraktion das Programmieren mit Concurrent Haskell unterstützen. Concurrent Haskell ist eine Bibliothek für Haskell, die parallele Programmierung auf Systemen mit gemeinsamem Speicher ermöglicht. Im Mittelpunkt der Dissertation standen zwei Forschungsfragen. Erstens wurden verschiedene Synchronisierungsansätze verglichen, die sich in ihrem Abstraktionsgrad unterscheiden. Zweitens wurde untersucht, wie Abstraktionen verwendet werden können, um die Komplexität der Parallelisierung vor dem Entwickler zu verbergen. Bei dem Vergleich der Synchronisierungsansätze wurden Locks, Compare-and-Swap Operationen und Software Transactional Memory berücksichtigt. Die Ansätze wurden zunächst bezüglich ihrer Eignung für die Synchronisation einer Prioritätenwarteschlange auf Basis von Skiplists untersucht. Anschließend wurden verschiedene Varianten des Taskpool Entwurfsmusters implementiert (globale Taskpools sowie private Taskpools mit und ohne Taskdiebstahl). Zusätzlich wurde für das Entwurfsmuster eine Abstraktionsschicht entwickelt, welche eine einfache Formulierung von Taskpool-basierten Algorithmen erlaubt. Für die Untersuchung der Frage, ob Haskells Abstraktionsmethoden die Komplexität paralleler Programmierung verbergen können, wurden zunächst stencil-basierte Algorithmen betrachtet. Es wurde eine Bibliothek entwickelt, die eine deklarative Beschreibung von stencil-basierten Algorithmen sowie ihre parallele Ausführung erlaubt. Mit Hilfe dieses deklarativen Interfaces wurde die parallele Implementation vollständig vor dem Anwender verborgen. Anschließend wurde eine eingebettete domänenspezifische Sprache (EDSL) für Knoten-basierte Graphalgorithmen sowie eine entsprechende Ausführungsplattform entwickelt. Die Plattform erlaubt die automatische parallele Verarbeitung dieser Algorithmen. Verschiedene Beispiele zeigten, dass die EDSL eine knappe und dennoch verständliche Formulierung von Graphalgorithmen ermöglicht.
Resumo:
Die Auszeichnungssprache XML dient zur Annotation von Dokumenten und hat sich als Standard-Datenaustauschformat durchgesetzt. Dabei entsteht der Bedarf, XML-Dokumente nicht nur als reine Textdateien zu speichern und zu transferieren, sondern sie auch persistent in besser strukturierter Form abzulegen. Dies kann unter anderem in speziellen XML- oder relationalen Datenbanken geschehen. Relationale Datenbanken setzen dazu bisher auf zwei grundsätzlich verschiedene Verfahren: Die XML-Dokumente werden entweder unverändert als binäre oder Zeichenkettenobjekte gespeichert oder aber aufgespalten, sodass sie in herkömmlichen relationalen Tabellen normalisiert abgelegt werden können (so genanntes „Flachklopfen“ oder „Schreddern“ der hierarchischen Struktur). Diese Dissertation verfolgt einen neuen Ansatz, der einen Mittelweg zwischen den bisherigen Lösungen darstellt und die Möglichkeiten des weiterentwickelten SQL-Standards aufgreift. SQL:2003 definiert komplexe Struktur- und Kollektionstypen (Tupel, Felder, Listen, Mengen, Multimengen), die es erlauben, XML-Dokumente derart auf relationale Strukturen abzubilden, dass der hierarchische Aufbau erhalten bleibt. Dies bietet zwei Vorteile: Einerseits stehen bewährte Technologien, die aus dem Bereich der relationalen Datenbanken stammen, uneingeschränkt zur Verfügung. Andererseits lässt sich mit Hilfe der SQL:2003-Typen die inhärente Baumstruktur der XML-Dokumente bewahren, sodass es nicht erforderlich ist, diese im Bedarfsfall durch aufwendige Joins aus den meist normalisierten und auf mehrere Tabellen verteilten Tupeln zusammenzusetzen. In dieser Arbeit werden zunächst grundsätzliche Fragen zu passenden, effizienten Abbildungsformen von XML-Dokumenten auf SQL:2003-konforme Datentypen geklärt. Darauf aufbauend wird ein geeignetes, umkehrbares Umsetzungsverfahren entwickelt, das im Rahmen einer prototypischen Applikation implementiert und analysiert wird. Beim Entwurf des Abbildungsverfahrens wird besonderer Wert auf die Einsatzmöglichkeit in Verbindung mit einem existierenden, ausgereiften relationalen Datenbankmanagementsystem (DBMS) gelegt. Da die Unterstützung von SQL:2003 in den kommerziellen DBMS bisher nur unvollständig ist, muss untersucht werden, inwieweit sich die einzelnen Systeme für das zu implementierende Abbildungsverfahren eignen. Dabei stellt sich heraus, dass unter den betrachteten Produkten das DBMS IBM Informix die beste Unterstützung für komplexe Struktur- und Kollektionstypen bietet. Um die Leistungsfähigkeit des Verfahrens besser beurteilen zu können, nimmt die Arbeit Untersuchungen des nötigen Zeitbedarfs und des erforderlichen Arbeits- und Datenbankspeichers der Implementierung vor und bewertet die Ergebnisse.
Resumo:
The ongoing growth of the World Wide Web, catalyzed by the increasing possibility of ubiquitous access via a variety of devices, continues to strengthen its role as our prevalent information and commmunication medium. However, although tools like search engines facilitate retrieval, the task of finally making sense of Web content is still often left to human interpretation. The vision of supporting both humans and machines in such knowledge-based activities led to the development of different systems which allow to structure Web resources by metadata annotations. Interestingly, two major approaches which gained a considerable amount of attention are addressing the problem from nearly opposite directions: On the one hand, the idea of the Semantic Web suggests to formalize the knowledge within a particular domain by means of the "top-down" approach of defining ontologies. On the other hand, Social Annotation Systems as part of the so-called Web 2.0 movement implement a "bottom-up" style of categorization using arbitrary keywords. Experience as well as research in the characteristics of both systems has shown that their strengths and weaknesses seem to be inverse: While Social Annotation suffers from problems like, e. g., ambiguity or lack or precision, ontologies were especially designed to eliminate those. On the contrary, the latter suffer from a knowledge acquisition bottleneck, which is successfully overcome by the large user populations of Social Annotation Systems. Instead of being regarded as competing paradigms, the obvious potential synergies from a combination of both motivated approaches to "bridge the gap" between them. These were fostered by the evidence of emergent semantics, i. e., the self-organized evolution of implicit conceptual structures, within Social Annotation data. While several techniques to exploit the emergent patterns were proposed, a systematic analysis - especially regarding paradigms from the field of ontology learning - is still largely missing. This also includes a deeper understanding of the circumstances which affect the evolution processes. This work aims to address this gap by providing an in-depth study of methods and influencing factors to capture emergent semantics from Social Annotation Systems. We focus hereby on the acquisition of lexical semantics from the underlying networks of keywords, users and resources. Structured along different ontology learning tasks, we use a methodology of semantic grounding to characterize and evaluate the semantic relations captured by different methods. In all cases, our studies are based on datasets from several Social Annotation Systems. Specifically, we first analyze semantic relatedness among keywords, and identify measures which detect different notions of relatedness. These constitute the input of concept learning algorithms, which focus then on the discovery of synonymous and ambiguous keywords. Hereby, we assess the usefulness of various clustering techniques. As a prerequisite to induce hierarchical relationships, our next step is to study measures which quantify the level of generality of a particular keyword. We find that comparatively simple measures can approximate the generality information encoded in reference taxonomies. These insights are used to inform the final task, namely the creation of concept hierarchies. For this purpose, generality-based algorithms exhibit advantages compared to clustering approaches. In order to complement the identification of suitable methods to capture semantic structures, we analyze as a next step several factors which influence their emergence. Empirical evidence is provided that the amount of available data plays a crucial role for determining keyword meanings. From a different perspective, we examine pragmatic aspects by considering different annotation patterns among users. Based on a broad distinction between "categorizers" and "describers", we find that the latter produce more accurate results. This suggests a causal link between pragmatic and semantic aspects of keyword annotation. As a special kind of usage pattern, we then have a look at system abuse and spam. While observing a mixed picture, we suggest that an individual decision should be taken instead of disregarding spammers as a matter of principle. Finally, we discuss a set of applications which operationalize the results of our studies for enhancing both Social Annotation and semantic systems. These comprise on the one hand tools which foster the emergence of semantics, and on the one hand applications which exploit the socially induced relations to improve, e. g., searching, browsing, or user profiling facilities. In summary, the contributions of this work highlight viable methods and crucial aspects for designing enhanced knowledge-based services of a Social Semantic Web.
Resumo:
In the vision of Mark Weiser on ubiquitous computing, computers are disappearing from the focus of the users and are seamlessly interacting with other computers and users in order to provide information and services. This shift of computers away from direct computer interaction requires another way of applications to interact without bothering the user. Context is the information which can be used to characterize the situation of persons, locations, or other objects relevant for the applications. Context-aware applications are capable of monitoring and exploiting knowledge about external operating conditions. These applications can adapt their behaviour based on the retrieved information and thus to replace (at least a certain amount) the missing user interactions. Context awareness can be assumed to be an important ingredient for applications in ubiquitous computing environments. However, context management in ubiquitous computing environments must reflect the specific characteristics of these environments, for example distribution, mobility, resource-constrained devices, and heterogeneity of context sources. Modern mobile devices are equipped with fast processors, sufficient memory, and with several sensors, like Global Positioning System (GPS) sensor, light sensor, or accelerometer. Since many applications in ubiquitous computing environments can exploit context information for enhancing their service to the user, these devices are highly useful for context-aware applications in ubiquitous computing environments. Additionally, context reasoners and external context providers can be incorporated. It is possible that several context sensors, reasoners and context providers offer the same type of information. However, the information providers can differ in quality levels (e.g. accuracy), representations (e.g. position represented in coordinates and as an address) of the offered information, and costs (like battery consumption) for providing the information. In order to simplify the development of context-aware applications, the developers should be able to transparently access context information without bothering with underlying context accessing techniques and distribution aspects. They should rather be able to express which kind of information they require, which quality criteria this information should fulfil, and how much the provision of this information should cost (not only monetary cost but also energy or performance usage). For this purpose, application developers as well as developers of context providers need a common language and vocabulary to specify which information they require respectively they provide. These descriptions respectively criteria have to be matched. For a matching of these descriptions, it is likely that a transformation of the provided information is needed to fulfil the criteria of the context-aware application. As it is possible that more than one provider fulfils the criteria, a selection process is required. In this process the system has to trade off the provided quality of context and required costs of the context provider against the quality of context requested by the context consumer. This selection allows to turn on context sources only if required. Explicitly selecting context services and thereby dynamically activating and deactivating the local context provider has the advantage that also the resource consumption is reduced as especially unused context sensors are deactivated. One promising solution is a middleware providing appropriate support in consideration of the principles of service-oriented computing like loose coupling, abstraction, reusability, or discoverability of context providers. This allows us to abstract context sensors, context reasoners and also external context providers as context services. In this thesis we present our solution consisting of a context model and ontology, a context offer and query language, a comprehensive matching and mediation process and a selection service. Especially the matching and mediation process and the selection service differ from the existing works. The matching and mediation process allows an autonomous establishment of mediation processes in order to transfer information from an offered representation into a requested representation. In difference to other approaches, the selection service selects not only a service for a service request, it rather selects a set of services in order to fulfil all requests which also facilitates the sharing of services. The approach is extensively reviewed regarding the different requirements and a set of demonstrators shows its usability in real-world scenarios.